diff options
Diffstat (limited to 'node_modules/@babel')
441 files changed, 2713 insertions, 2707 deletions
diff --git a/node_modules/@babel/cli/lib/babel/options.js b/node_modules/@babel/cli/lib/babel/options.js index 48896fdb..68da925a 100644 --- a/node_modules/@babel/cli/lib/babel/options.js +++ b/node_modules/@babel/cli/lib/babel/options.js @@ -72,7 +72,7 @@ _commander().option("--verbose", "Log everything. This option conflicts with --q _commander().option("--quiet", "Don't log anything. This option conflicts with --verbose"); _commander().option("--delete-dir-on-start", "Delete the out directory before compilation."); _commander().option("--out-file-extension [string]", "Use a specific extension for the output files"); -_commander().version("7.23.0" + " (@babel/core " + _core().version + ")"); +_commander().version("7.23.4" + " (@babel/core " + _core().version + ")"); _commander().usage("[options] <files ...>"); _commander().action(() => {}); function parseArgv(args) { diff --git a/node_modules/@babel/cli/lib/babel/watcher.js.map b/node_modules/@babel/cli/lib/babel/watcher.js.map index bbfce1bc..86760280 100644 --- a/node_modules/@babel/cli/lib/babel/watcher.js.map +++ b/node_modules/@babel/cli/lib/babel/watcher.js.map @@ -1 +1 @@ -{"version":3,"names":["_path","data","require","fileToDeps","Map","depToFiles","isWatchMode","watcher","watchQueue","Set","hasStarted","enable","enableGlobbing","FSWatcher","requireChokidar","options","disableGlobbing","persistent","ignoreInitial","awaitWriteFinish","stabilityThreshold","pollInterval","on","unwatchFile","startWatcher","dep","add","clear","console","log","watch","filename","Error","path","resolve","onFilesChange","callback","event","_depToFiles$get","absoluteFile","get","updateExternalDependencies","dependencies","absFilename","absDependencies","Array","from","deps","has","removeFileDependency","set","delete","size","unwatch","parseInt","process","versions","node","err","error"],"sources":["../../src/babel/watcher.ts"],"sourcesContent":["import { createRequire } from \"module\";\nimport path from \"path\";\nimport type { WatchOptions, FSWatcher } from \"chokidar\";\n\nconst fileToDeps = new Map<string, Set<string>>();\nconst depToFiles = new Map<string, Set<string>>();\n\nlet isWatchMode = false;\nlet watcher: FSWatcher;\nconst watchQueue = new Set<string>();\nlet hasStarted = false;\n\nexport function enable({ enableGlobbing }: { enableGlobbing: boolean }) {\n isWatchMode = true;\n\n const { FSWatcher } = requireChokidar();\n\n const options: WatchOptions = {\n disableGlobbing: !enableGlobbing,\n persistent: true,\n ignoreInitial: true,\n awaitWriteFinish: {\n stabilityThreshold: 50,\n pollInterval: 10,\n },\n };\n watcher = new FSWatcher(options);\n\n watcher.on(\"unlink\", unwatchFile);\n}\n\nexport function startWatcher() {\n hasStarted = true;\n\n for (const dep of watchQueue) {\n watcher.add(dep);\n }\n watchQueue.clear();\n\n watcher.on(\"ready\", () => {\n console.log(\"The watcher is ready.\");\n });\n}\n\nexport function watch(filename: string): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .watch called when not in watch mode.\",\n );\n }\n\n if (!hasStarted) {\n watchQueue.add(path.resolve(filename));\n } else {\n watcher.add(path.resolve(filename));\n }\n}\n\n/**\n * Call @param callback whenever a dependency (source file)/\n * external dependency (non-source file) changes.\n *\n * Handles mapping external dependencies to their corresponding\n * dependencies.\n */\nexport function onFilesChange(\n callback: (filenames: string[], event: string, cause: string) => void,\n): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .onFilesChange called when not in watch mode.\",\n );\n }\n\n watcher.on(\"all\", (event, filename) => {\n if (event !== \"change\" && event !== \"add\") return;\n\n const absoluteFile = path.resolve(filename);\n callback(\n [absoluteFile, ...(depToFiles.get(absoluteFile) ?? [])],\n event,\n absoluteFile,\n );\n });\n}\n\nexport function updateExternalDependencies(\n filename: string,\n dependencies: Set<string>,\n) {\n if (!isWatchMode) return;\n\n // Use absolute paths\n const absFilename = path.resolve(filename);\n const absDependencies = new Set(\n Array.from(dependencies, dep => path.resolve(dep)),\n );\n\n const deps = fileToDeps.get(absFilename);\n if (deps) {\n for (const dep of deps) {\n if (!absDependencies.has(dep)) {\n removeFileDependency(absFilename, dep);\n }\n }\n }\n for (const dep of absDependencies) {\n let deps = depToFiles.get(dep);\n if (!deps) {\n depToFiles.set(dep, (deps = new Set()));\n\n if (!hasStarted) {\n watchQueue.add(dep);\n } else {\n watcher.add(dep);\n }\n }\n\n deps.add(absFilename);\n }\n\n fileToDeps.set(absFilename, absDependencies);\n}\n\nfunction removeFileDependency(filename: string, dep: string) {\n const deps = depToFiles.get(dep);\n deps.delete(filename);\n\n if (deps.size === 0) {\n depToFiles.delete(dep);\n\n if (!hasStarted) {\n watchQueue.delete(dep);\n } else {\n watcher.unwatch(dep);\n }\n }\n}\n\nfunction unwatchFile(filename: string) {\n const deps = fileToDeps.get(filename);\n if (!deps) return;\n\n for (const dep of deps) {\n removeFileDependency(filename, dep);\n }\n fileToDeps.delete(filename);\n}\n\nfunction requireChokidar(): any {\n const require = createRequire(import.meta.url);\n\n try {\n return process.env.BABEL_8_BREAKING\n ? require(\"chokidar\")\n : parseInt(process.versions.node) >= 8\n ? require(\"chokidar\")\n : require(\"@nicolo-ribaudo/chokidar-2\");\n } catch (err) {\n console.error(\n \"The optional dependency chokidar failed to install and is required for \" +\n \"--watch. Chokidar is likely not supported on your platform.\",\n );\n throw err;\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_path","data","require","fileToDeps","Map","depToFiles","isWatchMode","watcher","watchQueue","Set","hasStarted","enable","enableGlobbing","FSWatcher","requireChokidar","options","disableGlobbing","persistent","ignoreInitial","awaitWriteFinish","stabilityThreshold","pollInterval","on","unwatchFile","startWatcher","dep","add","clear","console","log","watch","filename","Error","path","resolve","onFilesChange","callback","event","_depToFiles$get","absoluteFile","get","updateExternalDependencies","dependencies","absFilename","absDependencies","Array","from","deps","has","removeFileDependency","set","delete","size","unwatch","parseInt","process","versions","node","err","error"],"sources":["../../src/babel/watcher.ts"],"sourcesContent":["import { createRequire } from \"module\";\nimport path from \"path\";\nimport type { WatchOptions, FSWatcher } from \"chokidar\";\n\nconst fileToDeps = new Map<string, Set<string>>();\nconst depToFiles = new Map<string, Set<string>>();\n\nlet isWatchMode = false;\nlet watcher: FSWatcher;\nconst watchQueue = new Set<string>();\nlet hasStarted = false;\n\nexport function enable({ enableGlobbing }: { enableGlobbing: boolean }) {\n isWatchMode = true;\n\n const { FSWatcher } = requireChokidar();\n\n const options: WatchOptions = {\n disableGlobbing: !enableGlobbing,\n persistent: true,\n ignoreInitial: true,\n awaitWriteFinish: {\n stabilityThreshold: 50,\n pollInterval: 10,\n },\n };\n watcher = new FSWatcher(options);\n\n watcher.on(\"unlink\", unwatchFile);\n}\n\nexport function startWatcher() {\n hasStarted = true;\n\n for (const dep of watchQueue) {\n watcher.add(dep);\n }\n watchQueue.clear();\n\n watcher.on(\"ready\", () => {\n console.log(\"The watcher is ready.\");\n });\n}\n\nexport function watch(filename: string): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .watch called when not in watch mode.\",\n );\n }\n\n if (!hasStarted) {\n watchQueue.add(path.resolve(filename));\n } else {\n watcher.add(path.resolve(filename));\n }\n}\n\n/**\n * Call @param callback whenever a dependency (source file)/\n * external dependency (non-source file) changes.\n *\n * Handles mapping external dependencies to their corresponding\n * dependencies.\n */\nexport function onFilesChange(\n callback: (filenames: string[], event: string, cause: string) => void,\n): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .onFilesChange called when not in watch mode.\",\n );\n }\n\n watcher.on(\"all\", (event, filename) => {\n if (event !== \"change\" && event !== \"add\") return;\n\n const absoluteFile = path.resolve(filename);\n callback(\n [absoluteFile, ...(depToFiles.get(absoluteFile) ?? [])],\n event,\n absoluteFile,\n );\n });\n}\n\nexport function updateExternalDependencies(\n filename: string,\n dependencies: Set<string>,\n) {\n if (!isWatchMode) return;\n\n // Use absolute paths\n const absFilename = path.resolve(filename);\n const absDependencies = new Set(\n Array.from(dependencies, dep => path.resolve(dep)),\n );\n\n const deps = fileToDeps.get(absFilename);\n if (deps) {\n for (const dep of deps) {\n if (!absDependencies.has(dep)) {\n removeFileDependency(absFilename, dep);\n }\n }\n }\n for (const dep of absDependencies) {\n let deps = depToFiles.get(dep);\n if (!deps) {\n depToFiles.set(dep, (deps = new Set()));\n\n if (!hasStarted) {\n watchQueue.add(dep);\n } else {\n watcher.add(dep);\n }\n }\n\n deps.add(absFilename);\n }\n\n fileToDeps.set(absFilename, absDependencies);\n}\n\nfunction removeFileDependency(filename: string, dep: string) {\n const deps = depToFiles.get(dep);\n deps.delete(filename);\n\n if (deps.size === 0) {\n depToFiles.delete(dep);\n\n if (!hasStarted) {\n watchQueue.delete(dep);\n } else {\n watcher.unwatch(dep);\n }\n }\n}\n\nfunction unwatchFile(filename: string) {\n const deps = fileToDeps.get(filename);\n if (!deps) return;\n\n for (const dep of deps) {\n removeFileDependency(filename, dep);\n }\n fileToDeps.delete(filename);\n}\n\nfunction requireChokidar(): any {\n const require = createRequire(import.meta.url);\n\n try {\n return process.env.BABEL_8_BREAKING\n ? require(\"chokidar\")\n : parseInt(process.versions.node) >= 8\n ? require(\"chokidar\")\n : require(\"@nicolo-ribaudo/chokidar-2\");\n } catch (err) {\n console.error(\n \"The optional dependency chokidar failed to install and is required for \" +\n \"--watch. Chokidar is likely not supported on your platform.\",\n );\n throw err;\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/cli/package.json b/node_modules/@babel/cli/package.json index 884313fe..1cf264a4 100644 --- a/node_modules/@babel/cli/package.json +++ b/node_modules/@babel/cli/package.json @@ -1,6 +1,6 @@ { "name": "@babel/cli", - "version": "7.23.0", + "version": "7.23.4", "description": "Babel command line.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-cli", @@ -40,8 +40,8 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.23.0", - "@babel/helper-fixtures": "^7.22.19", + "@babel/core": "^7.23.3", + "@babel/helper-fixtures": "^7.23.4", "@types/fs-readdir-recursive": "^1.1.0", "@types/glob": "^7.2.0", "rimraf": "^3.0.0", diff --git a/node_modules/@babel/code-frame/lib/index.js b/node_modules/@babel/code-frame/lib/index.js index 74495b0d..2f900eba 100644 --- a/node_modules/@babel/code-frame/lib/index.js +++ b/node_modules/@babel/code-frame/lib/index.js @@ -7,8 +7,8 @@ exports.codeFrameColumns = codeFrameColumns; exports.default = _default; var _highlight = require("@babel/highlight"); var _chalk = _interopRequireWildcard(require("chalk"), true); -function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } -function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } +function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } let chalkWithForcedColor = undefined; function getChalk(forceColor) { if (forceColor) { diff --git a/node_modules/@babel/code-frame/lib/index.js.map b/node_modules/@babel/code-frame/lib/index.js.map index 5e9a09d3..0882e00a 100644 --- a/node_modules/@babel/code-frame/lib/index.js.map +++ b/node_modules/@babel/code-frame/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_highlight","require","_chalk","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","chalkWithForcedColor","undefined","getChalk","forceColor","_chalkWithForcedColor","chalk","constructor","enabled","level","deprecationWarningShown","getDefs","gutter","grey","marker","red","bold","message","NEWLINE","getMarkerLines","loc","source","opts","startLoc","assign","column","line","start","endLoc","end","linesAbove","linesBelow","startLine","startColumn","endLine","endColumn","Math","max","min","length","lineDiff","markerLines","i","lineNumber","sourceLength","codeFrameColumns","rawLines","highlighted","highlightCode","shouldHighlight","defs","maybeHighlight","chalkFn","string","lines","split","hasColumns","numberMaxWidth","String","highlightedLines","highlight","frame","slice","map","index","number","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","join","reset","_default","colNumber","process","emitWarning","deprecationError","Error","name","console","warn","location"],"sources":["../src/index.ts"],"sourcesContent":["import highlight, { shouldHighlight } from \"@babel/highlight\";\n\nimport chalk, { Chalk as ChalkClass, type ChalkInstance as Chalk } from \"chalk\";\n\nlet chalkWithForcedColor: Chalk = undefined;\nfunction getChalk(forceColor: boolean) {\n if (forceColor) {\n chalkWithForcedColor ??= process.env.BABEL_8_BREAKING\n ? new ChalkClass({ level: 1 })\n : // @ts-expect-error .Instance was .constructor in chalk 2\n new chalk.constructor({ enabled: true, level: 1 });\n return chalkWithForcedColor;\n }\n return chalk;\n}\n\nlet deprecationWarningShown = false;\n\ntype Location = {\n column: number;\n line: number;\n};\n\ntype NodeLocation = {\n end?: Location;\n start: Location;\n};\n\nexport interface Options {\n /** Syntax highlight the code as JavaScript for terminals. default: false */\n highlightCode?: boolean;\n /** The number of lines to show above the error. default: 2 */\n linesAbove?: number;\n /** The number of lines to show below the error. default: 3 */\n linesBelow?: number;\n /**\n * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n * overrides highlightCode.\n * default: false\n */\n forceColor?: boolean;\n /**\n * Pass in a string to be displayed inline (if possible) next to the\n * highlighted location in the code. If it can't be positioned inline,\n * it will be placed above the code frame.\n * default: nothing\n */\n message?: string;\n}\n\n/**\n * Chalk styles for code frame token types.\n */\nfunction getDefs(chalk: Chalk) {\n return {\n gutter: chalk.grey,\n marker: chalk.red.bold,\n message: chalk.red.bold,\n };\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record<number, true | [number, number]>;\n\nfunction getMarkerLines(\n loc: NodeLocation,\n source: Array<string>,\n opts: Options,\n): {\n start: number;\n end: number;\n markerLines: MarkerLines;\n} {\n const startLoc: Location = {\n column: 0,\n line: -1,\n ...loc.start,\n };\n const endLoc: Location = {\n ...startLoc,\n ...loc.end,\n };\n const { linesAbove = 2, linesBelow = 3 } = opts || {};\n const startLine = startLoc.line;\n const startColumn = startLoc.column;\n const endLine = endLoc.line;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n for (let i = 0; i <= lineDiff; i++) {\n const lineNumber = i + startLine;\n\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source[lineNumber - 1].length;\n\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - i].length;\n\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n\n return { start, end, markerLines };\n}\n\nexport function codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n): string {\n const highlighted =\n (opts.highlightCode || opts.forceColor) && shouldHighlight(opts);\n const chalk = getChalk(opts.forceColor);\n const defs = getDefs(chalk);\n const maybeHighlight = (chalkFn: Chalk, string: string) => {\n return highlighted ? chalkFn(string) : string;\n };\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(loc, lines, opts);\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end).length;\n\n const highlightedLines = highlighted ? highlight(rawLines, opts) : rawLines;\n\n let frame = highlightedLines\n .split(NEWLINE, end)\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line\n .slice(0, Math.max(hasMarker[0] - 1, 0))\n .replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\n \"\\n \",\n maybeHighlight(defs.gutter, gutter.replace(/\\d/g, \" \")),\n \" \",\n markerSpacing,\n maybeHighlight(defs.marker, \"^\").repeat(numberOfMarkers),\n ].join(\"\");\n\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + maybeHighlight(defs.message, opts.message);\n }\n }\n return [\n maybeHighlight(defs.marker, \">\"),\n maybeHighlight(defs.gutter, gutter),\n line.length > 0 ? ` ${line}` : \"\",\n markerLine,\n ].join(\"\");\n } else {\n return ` ${maybeHighlight(defs.gutter, gutter)}${\n line.length > 0 ? ` ${line}` : \"\"\n }`;\n }\n })\n .join(\"\\n\");\n\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n }\n\n if (highlighted) {\n return chalk.reset(frame);\n } else {\n return frame;\n }\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n rawLines: string,\n lineNumber: number,\n colNumber?: number | null,\n opts: Options = {},\n): string {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n\n const message =\n \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n if (process.emitWarning) {\n // A string is directly supplied to emitWarning, because when supplying an\n // Error object node throws in the tests because of different contexts\n process.emitWarning(message, \"DeprecationWarning\");\n } else {\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n }\n\n colNumber = Math.max(colNumber, 0);\n\n const location: NodeLocation = {\n start: { column: colNumber, line: lineNumber },\n };\n\n return codeFrameColumns(rawLines, location, opts);\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEA,IAAAC,MAAA,GAAAC,uBAAA,CAAAF,OAAA;AAAgF,SAAAG,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAF,wBAAAM,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAEhF,IAAIW,oBAA2B,GAAGC,SAAS;AAC3C,SAASC,QAAQA,CAACC,UAAmB,EAAE;EACrC,IAAIA,UAAU,EAAE;IAAA,IAAAC,qBAAA;IACd,CAAAA,qBAAA,GAAAJ,oBAAoB,YAAAI,qBAAA,GAApBJ,oBAAoB,GAGhB,IAAIK,cAAK,CAACC,WAAW,CAAC;MAAEC,OAAO,EAAE,IAAI;MAAEC,KAAK,EAAE;IAAE,CAAC,CAAC;IACtD,OAAOR,oBAAoB;EAC7B;EACA,OAAOK,cAAK;AACd;AAEA,IAAII,uBAAuB,GAAG,KAAK;AAqCnC,SAASC,OAAOA,CAACL,KAAY,EAAE;EAC7B,OAAO;IACLM,MAAM,EAAEN,KAAK,CAACO,IAAI;IAClBC,MAAM,EAAER,KAAK,CAACS,GAAG,CAACC,IAAI;IACtBC,OAAO,EAAEX,KAAK,CAACS,GAAG,CAACC;EACrB,CAAC;AACH;AAMA,MAAME,OAAO,GAAG,yBAAyB;AAQzC,SAASC,cAAcA,CACrBC,GAAiB,EACjBC,MAAqB,EACrBC,IAAa,EAKb;EACA,MAAMC,QAAkB,GAAA/B,MAAA,CAAAgC,MAAA;IACtBC,MAAM,EAAE,CAAC;IACTC,IAAI,EAAE,CAAC;EAAC,GACLN,GAAG,CAACO,KAAK,CACb;EACD,MAAMC,MAAgB,GAAApC,MAAA,CAAAgC,MAAA,KACjBD,QAAQ,EACRH,GAAG,CAACS,GAAG,CACX;EACD,MAAM;IAAEC,UAAU,GAAG,CAAC;IAAEC,UAAU,GAAG;EAAE,CAAC,GAAGT,IAAI,IAAI,CAAC,CAAC;EACrD,MAAMU,SAAS,GAAGT,QAAQ,CAACG,IAAI;EAC/B,MAAMO,WAAW,GAAGV,QAAQ,CAACE,MAAM;EACnC,MAAMS,OAAO,GAAGN,MAAM,CAACF,IAAI;EAC3B,MAAMS,SAAS,GAAGP,MAAM,CAACH,MAAM;EAE/B,IAAIE,KAAK,GAAGS,IAAI,CAACC,GAAG,CAACL,SAAS,IAAIF,UAAU,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;EACrD,IAAID,GAAG,GAAGO,IAAI,CAACE,GAAG,CAACjB,MAAM,CAACkB,MAAM,EAAEL,OAAO,GAAGH,UAAU,CAAC;EAEvD,IAAIC,SAAS,KAAK,CAAC,CAAC,EAAE;IACpBL,KAAK,GAAG,CAAC;EACX;EAEA,IAAIO,OAAO,KAAK,CAAC,CAAC,EAAE;IAClBL,GAAG,GAAGR,MAAM,CAACkB,MAAM;EACrB;EAEA,MAAMC,QAAQ,GAAGN,OAAO,GAAGF,SAAS;EACpC,MAAMS,WAAwB,GAAG,CAAC,CAAC;EAEnC,IAAID,QAAQ,EAAE;IACZ,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIF,QAAQ,EAAEE,CAAC,EAAE,EAAE;MAClC,MAAMC,UAAU,GAAGD,CAAC,GAAGV,SAAS;MAEhC,IAAI,CAACC,WAAW,EAAE;QAChBQ,WAAW,CAACE,UAAU,CAAC,GAAG,IAAI;MAChC,CAAC,MAAM,IAAID,CAAC,KAAK,CAAC,EAAE;QAClB,MAAME,YAAY,GAAGvB,MAAM,CAACsB,UAAU,GAAG,CAAC,CAAC,CAACJ,MAAM;QAElDE,WAAW,CAACE,UAAU,CAAC,GAAG,CAACV,WAAW,EAAEW,YAAY,GAAGX,WAAW,GAAG,CAAC,CAAC;MACzE,CAAC,MAAM,IAAIS,CAAC,KAAKF,QAAQ,EAAE;QACzBC,WAAW,CAACE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAER,SAAS,CAAC;MAC1C,CAAC,MAAM;QACL,MAAMS,YAAY,GAAGvB,MAAM,CAACsB,UAAU,GAAGD,CAAC,CAAC,CAACH,MAAM;QAElDE,WAAW,CAACE,UAAU,CAAC,GAAG,CAAC,CAAC,EAAEC,YAAY,CAAC;MAC7C;IACF;EACF,CAAC,MAAM;IACL,IAAIX,WAAW,KAAKE,SAAS,EAAE;MAC7B,IAAIF,WAAW,EAAE;QACfQ,WAAW,CAACT,SAAS,CAAC,GAAG,CAACC,WAAW,EAAE,CAAC,CAAC;MAC3C,CAAC,MAAM;QACLQ,WAAW,CAACT,SAAS,CAAC,GAAG,IAAI;MAC/B;IACF,CAAC,MAAM;MACLS,WAAW,CAACT,SAAS,CAAC,GAAG,CAACC,WAAW,EAAEE,SAAS,GAAGF,WAAW,CAAC;IACjE;EACF;EAEA,OAAO;IAAEN,KAAK;IAAEE,GAAG;IAAEY;EAAY,CAAC;AACpC;AAEO,SAASI,gBAAgBA,CAC9BC,QAAgB,EAChB1B,GAAiB,EACjBE,IAAa,GAAG,CAAC,CAAC,EACV;EACR,MAAMyB,WAAW,GACf,CAACzB,IAAI,CAAC0B,aAAa,IAAI1B,IAAI,CAAClB,UAAU,KAAK,IAAA6C,0BAAe,EAAC3B,IAAI,CAAC;EAClE,MAAMhB,KAAK,GAAGH,QAAQ,CAACmB,IAAI,CAAClB,UAAU,CAAC;EACvC,MAAM8C,IAAI,GAAGvC,OAAO,CAACL,KAAK,CAAC;EAC3B,MAAM6C,cAAc,GAAGA,CAACC,OAAc,EAAEC,MAAc,KAAK;IACzD,OAAON,WAAW,GAAGK,OAAO,CAACC,MAAM,CAAC,GAAGA,MAAM;EAC/C,CAAC;EACD,MAAMC,KAAK,GAAGR,QAAQ,CAACS,KAAK,CAACrC,OAAO,CAAC;EACrC,MAAM;IAAES,KAAK;IAAEE,GAAG;IAAEY;EAAY,CAAC,GAAGtB,cAAc,CAACC,GAAG,EAAEkC,KAAK,EAAEhC,IAAI,CAAC;EACpE,MAAMkC,UAAU,GAAGpC,GAAG,CAACO,KAAK,IAAI,OAAOP,GAAG,CAACO,KAAK,CAACF,MAAM,KAAK,QAAQ;EAEpE,MAAMgC,cAAc,GAAGC,MAAM,CAAC7B,GAAG,CAAC,CAACU,MAAM;EAEzC,MAAMoB,gBAAgB,GAAGZ,WAAW,GAAG,IAAAa,kBAAS,EAACd,QAAQ,EAAExB,IAAI,CAAC,GAAGwB,QAAQ;EAE3E,IAAIe,KAAK,GAAGF,gBAAgB,CACzBJ,KAAK,CAACrC,OAAO,EAAEW,GAAG,CAAC,CACnBiC,KAAK,CAACnC,KAAK,EAAEE,GAAG,CAAC,CACjBkC,GAAG,CAAC,CAACrC,IAAI,EAAEsC,KAAK,KAAK;IACpB,MAAMC,MAAM,GAAGtC,KAAK,GAAG,CAAC,GAAGqC,KAAK;IAChC,MAAME,YAAY,GAAI,IAAGD,MAAO,EAAC,CAACH,KAAK,CAAC,CAACL,cAAc,CAAC;IACxD,MAAM7C,MAAM,GAAI,IAAGsD,YAAa,IAAG;IACnC,MAAMC,SAAS,GAAG1B,WAAW,CAACwB,MAAM,CAAC;IACrC,MAAMG,cAAc,GAAG,CAAC3B,WAAW,CAACwB,MAAM,GAAG,CAAC,CAAC;IAC/C,IAAIE,SAAS,EAAE;MACb,IAAIE,UAAU,GAAG,EAAE;MACnB,IAAIC,KAAK,CAACC,OAAO,CAACJ,SAAS,CAAC,EAAE;QAC5B,MAAMK,aAAa,GAAG9C,IAAI,CACvBoC,KAAK,CAAC,CAAC,EAAE1B,IAAI,CAACC,GAAG,CAAC8B,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CACvCM,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;QACzB,MAAMC,eAAe,GAAGP,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;QAEzCE,UAAU,GAAG,CACX,KAAK,EACLlB,cAAc,CAACD,IAAI,CAACtC,MAAM,EAAEA,MAAM,CAAC6D,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EACvD,GAAG,EACHD,aAAa,EACbrB,cAAc,CAACD,IAAI,CAACpC,MAAM,EAAE,GAAG,CAAC,CAAC6D,MAAM,CAACD,eAAe,CAAC,CACzD,CAACE,IAAI,CAAC,EAAE,CAAC;QAEV,IAAIR,cAAc,IAAI9C,IAAI,CAACL,OAAO,EAAE;UAClCoD,UAAU,IAAI,GAAG,GAAGlB,cAAc,CAACD,IAAI,CAACjC,OAAO,EAAEK,IAAI,CAACL,OAAO,CAAC;QAChE;MACF;MACA,OAAO,CACLkC,cAAc,CAACD,IAAI,CAACpC,MAAM,EAAE,GAAG,CAAC,EAChCqC,cAAc,CAACD,IAAI,CAACtC,MAAM,EAAEA,MAAM,CAAC,EACnCc,IAAI,CAACa,MAAM,GAAG,CAAC,GAAI,IAAGb,IAAK,EAAC,GAAG,EAAE,EACjC2C,UAAU,CACX,CAACO,IAAI,CAAC,EAAE,CAAC;IACZ,CAAC,MAAM;MACL,OAAQ,IAAGzB,cAAc,CAACD,IAAI,CAACtC,MAAM,EAAEA,MAAM,CAAE,GAC7Cc,IAAI,CAACa,MAAM,GAAG,CAAC,GAAI,IAAGb,IAAK,EAAC,GAAG,EAChC,EAAC;IACJ;EACF,CAAC,CAAC,CACDkD,IAAI,CAAC,IAAI,CAAC;EAEb,IAAItD,IAAI,CAACL,OAAO,IAAI,CAACuC,UAAU,EAAE;IAC/BK,KAAK,GAAI,GAAE,GAAG,CAACc,MAAM,CAAClB,cAAc,GAAG,CAAC,CAAE,GAAEnC,IAAI,CAACL,OAAQ,KAAI4C,KAAM,EAAC;EACtE;EAEA,IAAId,WAAW,EAAE;IACf,OAAOzC,KAAK,CAACuE,KAAK,CAAChB,KAAK,CAAC;EAC3B,CAAC,MAAM;IACL,OAAOA,KAAK;EACd;AACF;AAMe,SAAAiB,SACbhC,QAAgB,EAChBH,UAAkB,EAClBoC,SAAyB,EACzBzD,IAAa,GAAG,CAAC,CAAC,EACV;EACR,IAAI,CAACZ,uBAAuB,EAAE;IAC5BA,uBAAuB,GAAG,IAAI;IAE9B,MAAMO,OAAO,GACX,qGAAqG;IAEvG,IAAI+D,OAAO,CAACC,WAAW,EAAE;MAGvBD,OAAO,CAACC,WAAW,CAAChE,OAAO,EAAE,oBAAoB,CAAC;IACpD,CAAC,MAAM;MACL,MAAMiE,gBAAgB,GAAG,IAAIC,KAAK,CAAClE,OAAO,CAAC;MAC3CiE,gBAAgB,CAACE,IAAI,GAAG,oBAAoB;MAC5CC,OAAO,CAACC,IAAI,CAAC,IAAIH,KAAK,CAAClE,OAAO,CAAC,CAAC;IAClC;EACF;EAEA8D,SAAS,GAAG3C,IAAI,CAACC,GAAG,CAAC0C,SAAS,EAAE,CAAC,CAAC;EAElC,MAAMQ,QAAsB,GAAG;IAC7B5D,KAAK,EAAE;MAAEF,MAAM,EAAEsD,SAAS;MAAErD,IAAI,EAAEiB;IAAW;EAC/C,CAAC;EAED,OAAOE,gBAAgB,CAACC,QAAQ,EAAEyC,QAAQ,EAAEjE,IAAI,CAAC;AACnD"}
\ No newline at end of file +{"version":3,"names":["_highlight","require","_chalk","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","chalkWithForcedColor","undefined","getChalk","forceColor","_chalkWithForcedColor","chalk","constructor","enabled","level","deprecationWarningShown","getDefs","gutter","grey","marker","red","bold","message","NEWLINE","getMarkerLines","loc","source","opts","startLoc","assign","column","line","start","endLoc","end","linesAbove","linesBelow","startLine","startColumn","endLine","endColumn","Math","max","min","length","lineDiff","markerLines","lineNumber","sourceLength","codeFrameColumns","rawLines","highlighted","highlightCode","shouldHighlight","defs","maybeHighlight","chalkFn","string","lines","split","hasColumns","numberMaxWidth","String","highlightedLines","highlight","frame","slice","map","index","number","paddedNumber","hasMarker","lastMarkerLine","markerLine","Array","isArray","markerSpacing","replace","numberOfMarkers","repeat","join","reset","_default","colNumber","process","emitWarning","deprecationError","Error","name","console","warn","location"],"sources":["../src/index.ts"],"sourcesContent":["import highlight, { shouldHighlight } from \"@babel/highlight\";\n\nimport chalk, { Chalk as ChalkClass, type ChalkInstance as Chalk } from \"chalk\";\n\nlet chalkWithForcedColor: Chalk = undefined;\nfunction getChalk(forceColor: boolean) {\n if (forceColor) {\n chalkWithForcedColor ??= process.env.BABEL_8_BREAKING\n ? new ChalkClass({ level: 1 })\n : // @ts-expect-error .Instance was .constructor in chalk 2\n new chalk.constructor({ enabled: true, level: 1 });\n return chalkWithForcedColor;\n }\n return chalk;\n}\n\nlet deprecationWarningShown = false;\n\ntype Location = {\n column: number;\n line: number;\n};\n\ntype NodeLocation = {\n end?: Location;\n start: Location;\n};\n\nexport interface Options {\n /** Syntax highlight the code as JavaScript for terminals. default: false */\n highlightCode?: boolean;\n /** The number of lines to show above the error. default: 2 */\n linesAbove?: number;\n /** The number of lines to show below the error. default: 3 */\n linesBelow?: number;\n /**\n * Forcibly syntax highlight the code as JavaScript (for non-terminals);\n * overrides highlightCode.\n * default: false\n */\n forceColor?: boolean;\n /**\n * Pass in a string to be displayed inline (if possible) next to the\n * highlighted location in the code. If it can't be positioned inline,\n * it will be placed above the code frame.\n * default: nothing\n */\n message?: string;\n}\n\n/**\n * Chalk styles for code frame token types.\n */\nfunction getDefs(chalk: Chalk) {\n return {\n gutter: chalk.grey,\n marker: chalk.red.bold,\n message: chalk.red.bold,\n };\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\n\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * Extract what lines should be marked and highlighted.\n */\n\ntype MarkerLines = Record<number, true | [number, number]>;\n\nfunction getMarkerLines(\n loc: NodeLocation,\n source: Array<string>,\n opts: Options,\n): {\n start: number;\n end: number;\n markerLines: MarkerLines;\n} {\n const startLoc: Location = {\n column: 0,\n line: -1,\n ...loc.start,\n };\n const endLoc: Location = {\n ...startLoc,\n ...loc.end,\n };\n const { linesAbove = 2, linesBelow = 3 } = opts || {};\n const startLine = startLoc.line;\n const startColumn = startLoc.column;\n const endLine = endLoc.line;\n const endColumn = endLoc.column;\n\n let start = Math.max(startLine - (linesAbove + 1), 0);\n let end = Math.min(source.length, endLine + linesBelow);\n\n if (startLine === -1) {\n start = 0;\n }\n\n if (endLine === -1) {\n end = source.length;\n }\n\n const lineDiff = endLine - startLine;\n const markerLines: MarkerLines = {};\n\n if (lineDiff) {\n for (let i = 0; i <= lineDiff; i++) {\n const lineNumber = i + startLine;\n\n if (!startColumn) {\n markerLines[lineNumber] = true;\n } else if (i === 0) {\n const sourceLength = source[lineNumber - 1].length;\n\n markerLines[lineNumber] = [startColumn, sourceLength - startColumn + 1];\n } else if (i === lineDiff) {\n markerLines[lineNumber] = [0, endColumn];\n } else {\n const sourceLength = source[lineNumber - i].length;\n\n markerLines[lineNumber] = [0, sourceLength];\n }\n }\n } else {\n if (startColumn === endColumn) {\n if (startColumn) {\n markerLines[startLine] = [startColumn, 0];\n } else {\n markerLines[startLine] = true;\n }\n } else {\n markerLines[startLine] = [startColumn, endColumn - startColumn];\n }\n }\n\n return { start, end, markerLines };\n}\n\nexport function codeFrameColumns(\n rawLines: string,\n loc: NodeLocation,\n opts: Options = {},\n): string {\n const highlighted =\n (opts.highlightCode || opts.forceColor) && shouldHighlight(opts);\n const chalk = getChalk(opts.forceColor);\n const defs = getDefs(chalk);\n const maybeHighlight = (chalkFn: Chalk, string: string) => {\n return highlighted ? chalkFn(string) : string;\n };\n const lines = rawLines.split(NEWLINE);\n const { start, end, markerLines } = getMarkerLines(loc, lines, opts);\n const hasColumns = loc.start && typeof loc.start.column === \"number\";\n\n const numberMaxWidth = String(end).length;\n\n const highlightedLines = highlighted ? highlight(rawLines, opts) : rawLines;\n\n let frame = highlightedLines\n .split(NEWLINE, end)\n .slice(start, end)\n .map((line, index) => {\n const number = start + 1 + index;\n const paddedNumber = ` ${number}`.slice(-numberMaxWidth);\n const gutter = ` ${paddedNumber} |`;\n const hasMarker = markerLines[number];\n const lastMarkerLine = !markerLines[number + 1];\n if (hasMarker) {\n let markerLine = \"\";\n if (Array.isArray(hasMarker)) {\n const markerSpacing = line\n .slice(0, Math.max(hasMarker[0] - 1, 0))\n .replace(/[^\\t]/g, \" \");\n const numberOfMarkers = hasMarker[1] || 1;\n\n markerLine = [\n \"\\n \",\n maybeHighlight(defs.gutter, gutter.replace(/\\d/g, \" \")),\n \" \",\n markerSpacing,\n maybeHighlight(defs.marker, \"^\").repeat(numberOfMarkers),\n ].join(\"\");\n\n if (lastMarkerLine && opts.message) {\n markerLine += \" \" + maybeHighlight(defs.message, opts.message);\n }\n }\n return [\n maybeHighlight(defs.marker, \">\"),\n maybeHighlight(defs.gutter, gutter),\n line.length > 0 ? ` ${line}` : \"\",\n markerLine,\n ].join(\"\");\n } else {\n return ` ${maybeHighlight(defs.gutter, gutter)}${\n line.length > 0 ? ` ${line}` : \"\"\n }`;\n }\n })\n .join(\"\\n\");\n\n if (opts.message && !hasColumns) {\n frame = `${\" \".repeat(numberMaxWidth + 1)}${opts.message}\\n${frame}`;\n }\n\n if (highlighted) {\n return chalk.reset(frame);\n } else {\n return frame;\n }\n}\n\n/**\n * Create a code frame, adding line numbers, code highlighting, and pointing to a given position.\n */\n\nexport default function (\n rawLines: string,\n lineNumber: number,\n colNumber?: number | null,\n opts: Options = {},\n): string {\n if (!deprecationWarningShown) {\n deprecationWarningShown = true;\n\n const message =\n \"Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.\";\n\n if (process.emitWarning) {\n // A string is directly supplied to emitWarning, because when supplying an\n // Error object node throws in the tests because of different contexts\n process.emitWarning(message, \"DeprecationWarning\");\n } else {\n const deprecationError = new Error(message);\n deprecationError.name = \"DeprecationWarning\";\n console.warn(new Error(message));\n }\n }\n\n colNumber = Math.max(colNumber, 0);\n\n const location: NodeLocation = {\n start: { column: colNumber, line: lineNumber },\n };\n\n return codeFrameColumns(rawLines, location, opts);\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/code-frame/package.json b/node_modules/@babel/code-frame/package.json index c3afdc15..46a9ba9d 100644 --- a/node_modules/@babel/code-frame/package.json +++ b/node_modules/@babel/code-frame/package.json @@ -1,6 +1,6 @@ { "name": "@babel/code-frame", - "version": "7.22.13", + "version": "7.23.5", "description": "Generate errors that contain a code frame that point to source locations.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-code-frame", @@ -16,11 +16,11 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/highlight": "^7.22.13", + "@babel/highlight": "^7.23.4", "chalk": "^2.4.2" }, "devDependencies": { - "import-meta-resolve": "^3.0.0", + "import-meta-resolve": "^4.0.0", "strip-ansi": "^4.0.0" }, "engines": { diff --git a/node_modules/@babel/compat-data/data/overlapping-plugins.json b/node_modules/@babel/compat-data/data/overlapping-plugins.json index 94fda05d..8b348211 100644 --- a/node_modules/@babel/compat-data/data/overlapping-plugins.json +++ b/node_modules/@babel/compat-data/data/overlapping-plugins.json @@ -21,5 +21,11 @@ ], "proposal-optional-chaining": [ "bugfix/transform-v8-spread-parameters-in-optional-chaining" + ], + "transform-class-properties": [ + "bugfix/transform-v8-static-class-fields-redefine-readonly" + ], + "proposal-class-properties": [ + "bugfix/transform-v8-static-class-fields-redefine-readonly" ] } diff --git a/node_modules/@babel/compat-data/data/plugins.json b/node_modules/@babel/compat-data/data/plugins.json index 26642682..dcf37fdf 100644 --- a/node_modules/@babel/compat-data/data/plugins.json +++ b/node_modules/@babel/compat-data/data/plugins.json @@ -10,6 +10,19 @@ "opera_mobile": "75", "electron": "24.0" }, + "bugfix/transform-v8-static-class-fields-redefine-readonly": { + "chrome": "98", + "opera": "84", + "edge": "98", + "firefox": "95", + "safari": "15", + "node": "12", + "deno": "1.18", + "ios": "15", + "samsung": "11", + "opera_mobile": "52", + "electron": "17.0" + }, "transform-class-static-block": { "chrome": "94", "opera": "80", diff --git a/node_modules/@babel/compat-data/package.json b/node_modules/@babel/compat-data/package.json index 94f8b94a..a3d3f20c 100644 --- a/node_modules/@babel/compat-data/package.json +++ b/node_modules/@babel/compat-data/package.json @@ -1,6 +1,6 @@ { "name": "@babel/compat-data", - "version": "7.23.2", + "version": "7.23.5", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", "description": "", diff --git a/node_modules/@babel/core/lib/config/config-chain.js b/node_modules/@babel/core/lib/config/config-chain.js index cda396fe..59292a7e 100644 --- a/node_modules/@babel/core/lib/config/config-chain.js +++ b/node_modules/@babel/core/lib/config/config-chain.js @@ -39,14 +39,13 @@ function* buildPresetChain(arg, context) { files: new Set() }; } -const buildPresetChainWalker = makeChainWalker({ +const buildPresetChainWalker = exports.buildPresetChainWalker = makeChainWalker({ root: preset => loadPresetDescriptors(preset), env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName), overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index), overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName), createLogger: () => () => {} }); -exports.buildPresetChainWalker = buildPresetChainWalker; const loadPresetDescriptors = (0, _caching.makeWeakCacheSync)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors)); const loadPresetEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName))); const loadPresetOverridesDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index))); @@ -190,7 +189,7 @@ const loadFileChainWalker = makeChainWalker({ }); function* loadFileChain(input, context, files, baseLogger) { const chain = yield* loadFileChainWalker(input, context, files, baseLogger); - chain == null ? void 0 : chain.files.add(input.filepath); + chain == null || chain.files.add(input.filepath); return chain; } const loadFileDescriptors = (0, _caching.makeWeakCacheSync)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors)); diff --git a/node_modules/@babel/core/lib/config/config-chain.js.map b/node_modules/@babel/core/lib/config/config-chain.js.map index cd2f48c1..42951ff8 100644 --- a/node_modules/@babel/core/lib/config/config-chain.js.map +++ b/node_modules/@babel/core/lib/config/config-chain.js.map @@ -1 +1 @@ -{"version":3,"names":["_path","data","require","_debug","_options","_patternToRegex","_printer","_rewriteStackTrace","_configError","_index","_caching","_configDescriptors","debug","buildDebug","buildPresetChain","arg","context","chain","buildPresetChainWalker","plugins","dedupDescriptors","presets","options","map","o","normalizeOptions","files","Set","makeChainWalker","root","preset","loadPresetDescriptors","env","envName","loadPresetEnvDescriptors","overrides","index","loadPresetOverridesDescriptors","overridesEnv","loadPresetOverridesEnvDescriptors","createLogger","exports","makeWeakCacheSync","buildRootDescriptors","alias","createUncachedDescriptors","makeStrongCacheSync","buildEnvDescriptors","buildOverrideDescriptors","buildOverrideEnvDescriptors","buildRootChain","opts","configReport","babelRcReport","programmaticLogger","ConfigPrinter","programmaticChain","loadProgrammaticChain","dirname","cwd","undefined","programmaticReport","output","configFile","loadConfig","caller","findRootConfig","babelrc","babelrcRoots","babelrcRootsDirectory","configFileChain","emptyChain","configFileLogger","validatedFile","validateConfigFile","result","loadFileChain","mergeChain","ignoreFile","babelrcFile","isIgnored","fileChain","filename","pkgData","findPackageData","babelrcLoadEnabled","ignore","config","findRelativeConfig","add","filepath","shouldIgnore","validateBabelrcFile","babelrcLogger","showConfig","console","log","filter","x","join","fileHandling","absoluteRoot","directories","indexOf","babelrcPatterns","Array","isArray","pat","path","resolve","length","some","pathPatternToRegex","directory","matchPattern","file","validate","validateExtendFile","input","createCachedDescriptors","baseLogger","buildProgrammaticLogger","loadFileChainWalker","loadFileDescriptors","loadFileEnvDescriptors","loadFileOverridesDescriptors","loadFileOverridesEnvDescriptors","buildFileLogger","configure","ChainFormatter","Config","descriptors","_","_context$caller","Programmatic","callerName","name","_options$env","_options$overrides","Error","_options$overrides2","_override$env","override","chainWalker","flattenedConfigs","rootOpts","configIsApplicable","push","envOpts","forEach","overrideOps","overrideEnvOpts","only","logger","mergeExtendsChain","mergeChainOpts","extends","has","from","delete","target","source","Object","assign","passPerPreset","test","include","exclude","prototype","hasOwnProperty","call","sourceMaps","sourceMap","items","Map","item","value","fnKey","nameMap","get","set","desc","ownPass","reduce","acc","configName","configFieldIsApplicable","patterns","matchesPatterns","ignoreListReplacer","_key","RegExp","String","_context$filename","message","JSON","stringify","_context$filename2","pattern","pathToTest","endHiddenCallStack","ConfigError"],"sources":["../../src/config/config-chain.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport path from \"path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { validate } from \"./validation/options.ts\";\nimport type {\n ValidatedOptions,\n IgnoreList,\n ConfigApplicableTest,\n BabelrcSearch,\n CallerMetadata,\n IgnoreItem,\n} from \"./validation/options.ts\";\nimport pathPatternToRegex from \"./pattern-to-regex.ts\";\nimport { ConfigPrinter, ChainFormatter } from \"./printer.ts\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\n\nimport { endHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nconst debug = buildDebug(\"babel:config:config-chain\");\n\nimport {\n findPackageData,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile, FilePackageData } from \"./files/index.ts\";\n\nimport { makeWeakCacheSync, makeStrongCacheSync } from \"./caching.ts\";\n\nimport {\n createCachedDescriptors,\n createUncachedDescriptors,\n} from \"./config-descriptors.ts\";\nimport type {\n UnloadedDescriptor,\n OptionsAndDescriptors,\n ValidatedFile,\n} from \"./config-descriptors.ts\";\n\nexport type ConfigChain = {\n plugins: Array<UnloadedDescriptor<PluginAPI>>;\n presets: Array<UnloadedDescriptor<PresetAPI>>;\n options: Array<ValidatedOptions>;\n files: Set<string>;\n};\n\nexport type PresetInstance = {\n options: ValidatedOptions;\n alias: string;\n dirname: string;\n externalDependencies: ReadonlyDeepArray<string>;\n};\n\nexport type ConfigContext = {\n filename: string | undefined;\n cwd: string;\n root: string;\n envName: string;\n caller: CallerMetadata | undefined;\n showConfig: boolean;\n};\n\n/**\n * Build a config chain for a given preset.\n */\nexport function* buildPresetChain(\n arg: PresetInstance,\n context: any,\n): Handler<ConfigChain | null> {\n const chain = yield* buildPresetChainWalker(arg, context);\n if (!chain) return null;\n\n return {\n plugins: dedupDescriptors(chain.plugins),\n presets: dedupDescriptors(chain.presets),\n options: chain.options.map(o => normalizeOptions(o)),\n files: new Set(),\n };\n}\n\nexport const buildPresetChainWalker = makeChainWalker<PresetInstance>({\n root: preset => loadPresetDescriptors(preset),\n env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),\n overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),\n overridesEnv: (preset, index, envName) =>\n loadPresetOverridesEnvDescriptors(preset)(index)(envName),\n createLogger: () => () => {}, // Currently we don't support logging how preset is expanded\n});\nconst loadPresetDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n buildRootDescriptors(preset, preset.alias, createUncachedDescriptors),\n);\nconst loadPresetEnvDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadPresetOverridesDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadPresetOverridesEnvDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nexport type FileHandling = \"transpile\" | \"ignored\" | \"unsupported\";\nexport type RootConfigChain = ConfigChain & {\n babelrc: ConfigFile | void;\n config: ConfigFile | void;\n ignore: IgnoreFile | void;\n fileHandling: FileHandling;\n files: Set<string>;\n};\n\n/**\n * Build a config chain for Babel's full root configuration.\n */\nexport function* buildRootChain(\n opts: ValidatedOptions,\n context: ConfigContext,\n): Handler<RootConfigChain | null> {\n let configReport, babelRcReport;\n const programmaticLogger = new ConfigPrinter();\n const programmaticChain = yield* loadProgrammaticChain(\n {\n options: opts,\n dirname: context.cwd,\n },\n context,\n undefined,\n programmaticLogger,\n );\n if (!programmaticChain) return null;\n const programmaticReport = yield* programmaticLogger.output();\n\n let configFile;\n if (typeof opts.configFile === \"string\") {\n configFile = yield* loadConfig(\n opts.configFile,\n context.cwd,\n context.envName,\n context.caller,\n );\n } else if (opts.configFile !== false) {\n configFile = yield* findRootConfig(\n context.root,\n context.envName,\n context.caller,\n );\n }\n\n let { babelrc, babelrcRoots } = opts;\n let babelrcRootsDirectory = context.cwd;\n\n const configFileChain = emptyChain();\n const configFileLogger = new ConfigPrinter();\n if (configFile) {\n const validatedFile = validateConfigFile(configFile);\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n configFileLogger,\n );\n if (!result) return null;\n configReport = yield* configFileLogger.output();\n\n // Allow config files to toggle `.babelrc` resolution on and off and\n // specify where the roots are.\n if (babelrc === undefined) {\n babelrc = validatedFile.options.babelrc;\n }\n if (babelrcRoots === undefined) {\n babelrcRootsDirectory = validatedFile.dirname;\n babelrcRoots = validatedFile.options.babelrcRoots;\n }\n\n mergeChain(configFileChain, result);\n }\n\n let ignoreFile, babelrcFile;\n let isIgnored = false;\n const fileChain = emptyChain();\n // resolve all .babelrc files\n if (\n (babelrc === true || babelrc === undefined) &&\n typeof context.filename === \"string\"\n ) {\n const pkgData = yield* findPackageData(context.filename);\n\n if (\n pkgData &&\n babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)\n ) {\n ({ ignore: ignoreFile, config: babelrcFile } = yield* findRelativeConfig(\n pkgData,\n context.envName,\n context.caller,\n ));\n\n if (ignoreFile) {\n fileChain.files.add(ignoreFile.filepath);\n }\n\n if (\n ignoreFile &&\n shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)\n ) {\n isIgnored = true;\n }\n\n if (babelrcFile && !isIgnored) {\n const validatedFile = validateBabelrcFile(babelrcFile);\n const babelrcLogger = new ConfigPrinter();\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n babelrcLogger,\n );\n if (!result) {\n isIgnored = true;\n } else {\n babelRcReport = yield* babelrcLogger.output();\n mergeChain(fileChain, result);\n }\n }\n\n if (babelrcFile && isIgnored) {\n fileChain.files.add(babelrcFile.filepath);\n }\n }\n }\n\n if (context.showConfig) {\n console.log(\n `Babel configs on \"${context.filename}\" (ascending priority):\\n` +\n // print config by the order of ascending priority\n [configReport, babelRcReport, programmaticReport]\n .filter(x => !!x)\n .join(\"\\n\\n\") +\n \"\\n-----End Babel configs-----\",\n );\n }\n // Insert file chain in front so programmatic options have priority\n // over configuration file chain items.\n const chain = mergeChain(\n mergeChain(mergeChain(emptyChain(), configFileChain), fileChain),\n programmaticChain,\n );\n\n return {\n plugins: isIgnored ? [] : dedupDescriptors(chain.plugins),\n presets: isIgnored ? [] : dedupDescriptors(chain.presets),\n options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)),\n fileHandling: isIgnored ? \"ignored\" : \"transpile\",\n ignore: ignoreFile || undefined,\n babelrc: babelrcFile || undefined,\n config: configFile || undefined,\n files: chain.files,\n };\n}\n\nfunction babelrcLoadEnabled(\n context: ConfigContext,\n pkgData: FilePackageData,\n babelrcRoots: BabelrcSearch | undefined,\n babelrcRootsDirectory: string,\n): boolean {\n if (typeof babelrcRoots === \"boolean\") return babelrcRoots;\n\n const absoluteRoot = context.root;\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcRoots === undefined) {\n return pkgData.directories.indexOf(absoluteRoot) !== -1;\n }\n\n let babelrcPatterns = babelrcRoots;\n if (!Array.isArray(babelrcPatterns)) {\n babelrcPatterns = [babelrcPatterns as IgnoreItem];\n }\n babelrcPatterns = babelrcPatterns.map(pat => {\n return typeof pat === \"string\"\n ? path.resolve(babelrcRootsDirectory, pat)\n : pat;\n });\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {\n return pkgData.directories.indexOf(absoluteRoot) !== -1;\n }\n\n return babelrcPatterns.some(pat => {\n if (typeof pat === \"string\") {\n pat = pathPatternToRegex(pat, babelrcRootsDirectory);\n }\n\n return pkgData.directories.some(directory => {\n return matchPattern(pat, babelrcRootsDirectory, directory, context);\n });\n });\n}\n\nconst validateConfigFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"configfile\", file.options, file.filepath),\n }),\n);\n\nconst validateBabelrcFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"babelrcfile\", file.options, file.filepath),\n }),\n);\n\nconst validateExtendFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"extendsfile\", file.options, file.filepath),\n }),\n);\n\n/**\n * Build a config chain for just the programmatic options passed into Babel.\n */\nconst loadProgrammaticChain = makeChainWalker({\n root: input => buildRootDescriptors(input, \"base\", createCachedDescriptors),\n env: (input, envName) =>\n buildEnvDescriptors(input, \"base\", createCachedDescriptors, envName),\n overrides: (input, index) =>\n buildOverrideDescriptors(input, \"base\", createCachedDescriptors, index),\n overridesEnv: (input, index, envName) =>\n buildOverrideEnvDescriptors(\n input,\n \"base\",\n createCachedDescriptors,\n index,\n envName,\n ),\n createLogger: (input, context, baseLogger) =>\n buildProgrammaticLogger(input, context, baseLogger),\n});\n\n/**\n * Build a config chain for a given file.\n */\nconst loadFileChainWalker = makeChainWalker<ValidatedFile>({\n root: file => loadFileDescriptors(file),\n env: (file, envName) => loadFileEnvDescriptors(file)(envName),\n overrides: (file, index) => loadFileOverridesDescriptors(file)(index),\n overridesEnv: (file, index, envName) =>\n loadFileOverridesEnvDescriptors(file)(index)(envName),\n createLogger: (file, context, baseLogger) =>\n buildFileLogger(file.filepath, context, baseLogger),\n});\n\nfunction* loadFileChain(\n input: ValidatedFile,\n context: ConfigContext,\n files: Set<ConfigFile>,\n baseLogger: ConfigPrinter,\n) {\n const chain = yield* loadFileChainWalker(input, context, files, baseLogger);\n chain?.files.add(input.filepath);\n\n return chain;\n}\n\nconst loadFileDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n buildRootDescriptors(file, file.filepath, createUncachedDescriptors),\n);\nconst loadFileEnvDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadFileOverridesDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadFileOverridesEnvDescriptors = makeWeakCacheSync(\n (file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nfunction buildFileLogger(\n filepath: string,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Config, {\n filepath,\n });\n}\n\nfunction buildRootDescriptors(\n { dirname, options }: Partial<ValidatedFile>,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n) {\n return descriptors(dirname, options, alias);\n}\n\nfunction buildProgrammaticLogger(\n _: unknown,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Programmatic, {\n callerName: context.caller?.name,\n });\n}\n\nfunction buildEnvDescriptors(\n { dirname, options }: Partial<ValidatedFile>,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n envName: string,\n) {\n const opts = options.env?.[envName];\n return opts ? descriptors(dirname, opts, `${alias}.env[\"${envName}\"]`) : null;\n}\n\nfunction buildOverrideDescriptors(\n { dirname, options }: Partial<ValidatedFile>,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n) {\n const opts = options.overrides?.[index];\n if (!opts) throw new Error(\"Assertion failure - missing override\");\n\n return descriptors(dirname, opts, `${alias}.overrides[${index}]`);\n}\n\nfunction buildOverrideEnvDescriptors(\n { dirname, options }: Partial<ValidatedFile>,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n envName: string,\n) {\n const override = options.overrides?.[index];\n if (!override) throw new Error(\"Assertion failure - missing override\");\n\n const opts = override.env?.[envName];\n return opts\n ? descriptors(\n dirname,\n opts,\n `${alias}.overrides[${index}].env[\"${envName}\"]`,\n )\n : null;\n}\n\nfunction makeChainWalker<\n ArgT extends {\n options: ValidatedOptions;\n dirname: string;\n filepath?: string;\n },\n>({\n root,\n env,\n overrides,\n overridesEnv,\n createLogger,\n}: {\n root: (configEntry: ArgT) => OptionsAndDescriptors;\n env: (configEntry: ArgT, env: string) => OptionsAndDescriptors | null;\n overrides: (configEntry: ArgT, index: number) => OptionsAndDescriptors;\n overridesEnv: (\n configEntry: ArgT,\n index: number,\n env: string,\n ) => OptionsAndDescriptors | null;\n createLogger: (\n configEntry: ArgT,\n context: ConfigContext,\n printer: ConfigPrinter | void,\n ) => (\n opts: OptionsAndDescriptors,\n index?: number | null,\n env?: string | null,\n ) => void;\n}): (\n configEntry: ArgT,\n context: ConfigContext,\n files?: Set<ConfigFile>,\n baseLogger?: ConfigPrinter,\n) => Handler<ConfigChain | null> {\n return function* chainWalker(input, context, files = new Set(), baseLogger) {\n const { dirname } = input;\n\n const flattenedConfigs: Array<{\n config: OptionsAndDescriptors;\n index: number | undefined | null;\n envName: string | undefined | null;\n }> = [];\n\n const rootOpts = root(input);\n if (configIsApplicable(rootOpts, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: rootOpts,\n envName: undefined,\n index: undefined,\n });\n\n const envOpts = env(input, context.envName);\n if (\n envOpts &&\n configIsApplicable(envOpts, dirname, context, input.filepath)\n ) {\n flattenedConfigs.push({\n config: envOpts,\n envName: context.envName,\n index: undefined,\n });\n }\n\n (rootOpts.options.overrides || []).forEach((_, index) => {\n const overrideOps = overrides(input, index);\n if (configIsApplicable(overrideOps, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: overrideOps,\n index,\n envName: undefined,\n });\n\n const overrideEnvOpts = overridesEnv(input, index, context.envName);\n if (\n overrideEnvOpts &&\n configIsApplicable(\n overrideEnvOpts,\n dirname,\n context,\n input.filepath,\n )\n ) {\n flattenedConfigs.push({\n config: overrideEnvOpts,\n index,\n envName: context.envName,\n });\n }\n }\n });\n }\n\n // Process 'ignore' and 'only' before 'extends' items are processed so\n // that we don't do extra work loading extended configs if a file is\n // ignored.\n if (\n flattenedConfigs.some(\n ({\n config: {\n options: { ignore, only },\n },\n }) => shouldIgnore(context, ignore, only, dirname),\n )\n ) {\n return null;\n }\n\n const chain = emptyChain();\n const logger = createLogger(input, context, baseLogger);\n\n for (const { config, index, envName } of flattenedConfigs) {\n if (\n !(yield* mergeExtendsChain(\n chain,\n config.options,\n dirname,\n context,\n files,\n baseLogger,\n ))\n ) {\n return null;\n }\n\n logger(config, index, envName);\n yield* mergeChainOpts(chain, config);\n }\n return chain;\n };\n}\n\nfunction* mergeExtendsChain(\n chain: ConfigChain,\n opts: ValidatedOptions,\n dirname: string,\n context: ConfigContext,\n files: Set<ConfigFile>,\n baseLogger?: ConfigPrinter,\n): Handler<boolean> {\n if (opts.extends === undefined) return true;\n\n const file = yield* loadConfig(\n opts.extends,\n dirname,\n context.envName,\n context.caller,\n );\n\n if (files.has(file)) {\n throw new Error(\n `Configuration cycle detected loading ${file.filepath}.\\n` +\n `File already loaded following the config chain:\\n` +\n Array.from(files, file => ` - ${file.filepath}`).join(\"\\n\"),\n );\n }\n\n files.add(file);\n const fileChain = yield* loadFileChain(\n validateExtendFile(file),\n context,\n files,\n baseLogger,\n );\n files.delete(file);\n\n if (!fileChain) return false;\n\n mergeChain(chain, fileChain);\n\n return true;\n}\n\nfunction mergeChain(target: ConfigChain, source: ConfigChain): ConfigChain {\n target.options.push(...source.options);\n target.plugins.push(...source.plugins);\n target.presets.push(...source.presets);\n for (const file of source.files) {\n target.files.add(file);\n }\n\n return target;\n}\n\nfunction* mergeChainOpts(\n target: ConfigChain,\n { options, plugins, presets }: OptionsAndDescriptors,\n): Handler<ConfigChain> {\n target.options.push(options);\n target.plugins.push(...(yield* plugins()));\n target.presets.push(...(yield* presets()));\n\n return target;\n}\n\nfunction emptyChain(): ConfigChain {\n return {\n options: [],\n presets: [],\n plugins: [],\n files: new Set(),\n };\n}\n\nfunction normalizeOptions(opts: ValidatedOptions): ValidatedOptions {\n const options = {\n ...opts,\n };\n delete options.extends;\n delete options.env;\n delete options.overrides;\n delete options.plugins;\n delete options.presets;\n delete options.passPerPreset;\n delete options.ignore;\n delete options.only;\n delete options.test;\n delete options.include;\n delete options.exclude;\n\n // \"sourceMap\" is just aliased to sourceMap, so copy it over as\n // we merge the options together.\n if (Object.prototype.hasOwnProperty.call(options, \"sourceMap\")) {\n options.sourceMaps = options.sourceMap;\n delete options.sourceMap;\n }\n return options;\n}\n\nfunction dedupDescriptors<API>(\n items: Array<UnloadedDescriptor<API>>,\n): Array<UnloadedDescriptor<API>> {\n const map: Map<\n Function,\n Map<string | void, { value: UnloadedDescriptor<API> }>\n > = new Map();\n\n const descriptors = [];\n\n for (const item of items) {\n if (typeof item.value === \"function\") {\n const fnKey = item.value;\n let nameMap = map.get(fnKey);\n if (!nameMap) {\n nameMap = new Map();\n map.set(fnKey, nameMap);\n }\n let desc = nameMap.get(item.name);\n if (!desc) {\n desc = { value: item };\n descriptors.push(desc);\n\n // Treat passPerPreset presets as unique, skipping them\n // in the merge processing steps.\n if (!item.ownPass) nameMap.set(item.name, desc);\n } else {\n desc.value = item;\n }\n } else {\n descriptors.push({ value: item });\n }\n }\n\n return descriptors.reduce((acc, desc) => {\n acc.push(desc.value);\n return acc;\n }, []);\n}\n\nfunction configIsApplicable(\n { options }: OptionsAndDescriptors,\n dirname: string,\n context: ConfigContext,\n configName: string,\n): boolean {\n return (\n (options.test === undefined ||\n configFieldIsApplicable(context, options.test, dirname, configName)) &&\n (options.include === undefined ||\n configFieldIsApplicable(context, options.include, dirname, configName)) &&\n (options.exclude === undefined ||\n !configFieldIsApplicable(context, options.exclude, dirname, configName))\n );\n}\n\nfunction configFieldIsApplicable(\n context: ConfigContext,\n test: ConfigApplicableTest,\n dirname: string,\n configName: string,\n): boolean {\n const patterns = Array.isArray(test) ? test : [test];\n\n return matchesPatterns(context, patterns, dirname, configName);\n}\n\n/**\n * Print the ignoreList-values in a more helpful way than the default.\n */\nfunction ignoreListReplacer(\n _key: string,\n value: IgnoreList | IgnoreItem,\n): IgnoreList | IgnoreItem | string {\n if (value instanceof RegExp) {\n return String(value);\n }\n\n return value;\n}\n\n/**\n * Tests if a filename should be ignored based on \"ignore\" and \"only\" options.\n */\nfunction shouldIgnore(\n context: ConfigContext,\n ignore: IgnoreList | undefined | null,\n only: IgnoreList | undefined | null,\n dirname: string,\n): boolean {\n if (ignore && matchesPatterns(context, ignore, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it matches one of \\`ignore: ${JSON.stringify(\n ignore,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n if (only && !matchesPatterns(context, only, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it fails to match one of \\`only: ${JSON.stringify(\n only,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns result of calling function with filename if pattern is a function.\n * Otherwise returns result of matching pattern Regex with filename.\n */\nfunction matchesPatterns(\n context: ConfigContext,\n patterns: IgnoreList,\n dirname: string,\n configName?: string,\n): boolean {\n return patterns.some(pattern =>\n matchPattern(pattern, dirname, context.filename, context, configName),\n );\n}\n\nfunction matchPattern(\n pattern: IgnoreItem,\n dirname: string,\n pathToTest: string | undefined,\n context: ConfigContext,\n configName?: string,\n): boolean {\n if (typeof pattern === \"function\") {\n return !!endHiddenCallStack(pattern)(pathToTest, {\n dirname,\n envName: context.envName,\n caller: context.caller,\n });\n }\n\n if (typeof pathToTest !== \"string\") {\n throw new ConfigError(\n `Configuration contains string/RegExp pattern, but no filename was passed to Babel`,\n configName,\n );\n }\n\n if (typeof pattern === \"string\") {\n pattern = pathPatternToRegex(pattern, dirname);\n }\n return pattern.test(pathToTest);\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_path","data","require","_debug","_options","_patternToRegex","_printer","_rewriteStackTrace","_configError","_index","_caching","_configDescriptors","debug","buildDebug","buildPresetChain","arg","context","chain","buildPresetChainWalker","plugins","dedupDescriptors","presets","options","map","o","normalizeOptions","files","Set","exports","makeChainWalker","root","preset","loadPresetDescriptors","env","envName","loadPresetEnvDescriptors","overrides","index","loadPresetOverridesDescriptors","overridesEnv","loadPresetOverridesEnvDescriptors","createLogger","makeWeakCacheSync","buildRootDescriptors","alias","createUncachedDescriptors","makeStrongCacheSync","buildEnvDescriptors","buildOverrideDescriptors","buildOverrideEnvDescriptors","buildRootChain","opts","configReport","babelRcReport","programmaticLogger","ConfigPrinter","programmaticChain","loadProgrammaticChain","dirname","cwd","undefined","programmaticReport","output","configFile","loadConfig","caller","findRootConfig","babelrc","babelrcRoots","babelrcRootsDirectory","configFileChain","emptyChain","configFileLogger","validatedFile","validateConfigFile","result","loadFileChain","mergeChain","ignoreFile","babelrcFile","isIgnored","fileChain","filename","pkgData","findPackageData","babelrcLoadEnabled","ignore","config","findRelativeConfig","add","filepath","shouldIgnore","validateBabelrcFile","babelrcLogger","showConfig","console","log","filter","x","join","fileHandling","absoluteRoot","directories","indexOf","babelrcPatterns","Array","isArray","pat","path","resolve","length","some","pathPatternToRegex","directory","matchPattern","file","validate","validateExtendFile","input","createCachedDescriptors","baseLogger","buildProgrammaticLogger","loadFileChainWalker","loadFileDescriptors","loadFileEnvDescriptors","loadFileOverridesDescriptors","loadFileOverridesEnvDescriptors","buildFileLogger","configure","ChainFormatter","Config","descriptors","_","_context$caller","Programmatic","callerName","name","_options$env","_options$overrides","Error","_options$overrides2","_override$env","override","chainWalker","flattenedConfigs","rootOpts","configIsApplicable","push","envOpts","forEach","overrideOps","overrideEnvOpts","only","logger","mergeExtendsChain","mergeChainOpts","extends","has","from","delete","target","source","Object","assign","passPerPreset","test","include","exclude","prototype","hasOwnProperty","call","sourceMaps","sourceMap","items","Map","item","value","fnKey","nameMap","get","set","desc","ownPass","reduce","acc","configName","configFieldIsApplicable","patterns","matchesPatterns","ignoreListReplacer","_key","RegExp","String","_context$filename","message","JSON","stringify","_context$filename2","pattern","pathToTest","endHiddenCallStack","ConfigError"],"sources":["../../src/config/config-chain.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport path from \"path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { validate } from \"./validation/options.ts\";\nimport type {\n ValidatedOptions,\n IgnoreList,\n ConfigApplicableTest,\n BabelrcSearch,\n CallerMetadata,\n IgnoreItem,\n} from \"./validation/options.ts\";\nimport pathPatternToRegex from \"./pattern-to-regex.ts\";\nimport { ConfigPrinter, ChainFormatter } from \"./printer.ts\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\n\nimport { endHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nconst debug = buildDebug(\"babel:config:config-chain\");\n\nimport {\n findPackageData,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile, FilePackageData } from \"./files/index.ts\";\n\nimport { makeWeakCacheSync, makeStrongCacheSync } from \"./caching.ts\";\n\nimport {\n createCachedDescriptors,\n createUncachedDescriptors,\n} from \"./config-descriptors.ts\";\nimport type {\n UnloadedDescriptor,\n OptionsAndDescriptors,\n ValidatedFile,\n} from \"./config-descriptors.ts\";\n\nexport type ConfigChain = {\n plugins: Array<UnloadedDescriptor<PluginAPI>>;\n presets: Array<UnloadedDescriptor<PresetAPI>>;\n options: Array<ValidatedOptions>;\n files: Set<string>;\n};\n\nexport type PresetInstance = {\n options: ValidatedOptions;\n alias: string;\n dirname: string;\n externalDependencies: ReadonlyDeepArray<string>;\n};\n\nexport type ConfigContext = {\n filename: string | undefined;\n cwd: string;\n root: string;\n envName: string;\n caller: CallerMetadata | undefined;\n showConfig: boolean;\n};\n\n/**\n * Build a config chain for a given preset.\n */\nexport function* buildPresetChain(\n arg: PresetInstance,\n context: any,\n): Handler<ConfigChain | null> {\n const chain = yield* buildPresetChainWalker(arg, context);\n if (!chain) return null;\n\n return {\n plugins: dedupDescriptors(chain.plugins),\n presets: dedupDescriptors(chain.presets),\n options: chain.options.map(o => normalizeOptions(o)),\n files: new Set(),\n };\n}\n\nexport const buildPresetChainWalker = makeChainWalker<PresetInstance>({\n root: preset => loadPresetDescriptors(preset),\n env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),\n overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),\n overridesEnv: (preset, index, envName) =>\n loadPresetOverridesEnvDescriptors(preset)(index)(envName),\n createLogger: () => () => {}, // Currently we don't support logging how preset is expanded\n});\nconst loadPresetDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n buildRootDescriptors(preset, preset.alias, createUncachedDescriptors),\n);\nconst loadPresetEnvDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadPresetOverridesDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadPresetOverridesEnvDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nexport type FileHandling = \"transpile\" | \"ignored\" | \"unsupported\";\nexport type RootConfigChain = ConfigChain & {\n babelrc: ConfigFile | void;\n config: ConfigFile | void;\n ignore: IgnoreFile | void;\n fileHandling: FileHandling;\n files: Set<string>;\n};\n\n/**\n * Build a config chain for Babel's full root configuration.\n */\nexport function* buildRootChain(\n opts: ValidatedOptions,\n context: ConfigContext,\n): Handler<RootConfigChain | null> {\n let configReport, babelRcReport;\n const programmaticLogger = new ConfigPrinter();\n const programmaticChain = yield* loadProgrammaticChain(\n {\n options: opts,\n dirname: context.cwd,\n },\n context,\n undefined,\n programmaticLogger,\n );\n if (!programmaticChain) return null;\n const programmaticReport = yield* programmaticLogger.output();\n\n let configFile;\n if (typeof opts.configFile === \"string\") {\n configFile = yield* loadConfig(\n opts.configFile,\n context.cwd,\n context.envName,\n context.caller,\n );\n } else if (opts.configFile !== false) {\n configFile = yield* findRootConfig(\n context.root,\n context.envName,\n context.caller,\n );\n }\n\n let { babelrc, babelrcRoots } = opts;\n let babelrcRootsDirectory = context.cwd;\n\n const configFileChain = emptyChain();\n const configFileLogger = new ConfigPrinter();\n if (configFile) {\n const validatedFile = validateConfigFile(configFile);\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n configFileLogger,\n );\n if (!result) return null;\n configReport = yield* configFileLogger.output();\n\n // Allow config files to toggle `.babelrc` resolution on and off and\n // specify where the roots are.\n if (babelrc === undefined) {\n babelrc = validatedFile.options.babelrc;\n }\n if (babelrcRoots === undefined) {\n babelrcRootsDirectory = validatedFile.dirname;\n babelrcRoots = validatedFile.options.babelrcRoots;\n }\n\n mergeChain(configFileChain, result);\n }\n\n let ignoreFile, babelrcFile;\n let isIgnored = false;\n const fileChain = emptyChain();\n // resolve all .babelrc files\n if (\n (babelrc === true || babelrc === undefined) &&\n typeof context.filename === \"string\"\n ) {\n const pkgData = yield* findPackageData(context.filename);\n\n if (\n pkgData &&\n babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)\n ) {\n ({ ignore: ignoreFile, config: babelrcFile } = yield* findRelativeConfig(\n pkgData,\n context.envName,\n context.caller,\n ));\n\n if (ignoreFile) {\n fileChain.files.add(ignoreFile.filepath);\n }\n\n if (\n ignoreFile &&\n shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)\n ) {\n isIgnored = true;\n }\n\n if (babelrcFile && !isIgnored) {\n const validatedFile = validateBabelrcFile(babelrcFile);\n const babelrcLogger = new ConfigPrinter();\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n babelrcLogger,\n );\n if (!result) {\n isIgnored = true;\n } else {\n babelRcReport = yield* babelrcLogger.output();\n mergeChain(fileChain, result);\n }\n }\n\n if (babelrcFile && isIgnored) {\n fileChain.files.add(babelrcFile.filepath);\n }\n }\n }\n\n if (context.showConfig) {\n console.log(\n `Babel configs on \"${context.filename}\" (ascending priority):\\n` +\n // print config by the order of ascending priority\n [configReport, babelRcReport, programmaticReport]\n .filter(x => !!x)\n .join(\"\\n\\n\") +\n \"\\n-----End Babel configs-----\",\n );\n }\n // Insert file chain in front so programmatic options have priority\n // over configuration file chain items.\n const chain = mergeChain(\n mergeChain(mergeChain(emptyChain(), configFileChain), fileChain),\n programmaticChain,\n );\n\n return {\n plugins: isIgnored ? [] : dedupDescriptors(chain.plugins),\n presets: isIgnored ? [] : dedupDescriptors(chain.presets),\n options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)),\n fileHandling: isIgnored ? \"ignored\" : \"transpile\",\n ignore: ignoreFile || undefined,\n babelrc: babelrcFile || undefined,\n config: configFile || undefined,\n files: chain.files,\n };\n}\n\nfunction babelrcLoadEnabled(\n context: ConfigContext,\n pkgData: FilePackageData,\n babelrcRoots: BabelrcSearch | undefined,\n babelrcRootsDirectory: string,\n): boolean {\n if (typeof babelrcRoots === \"boolean\") return babelrcRoots;\n\n const absoluteRoot = context.root;\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcRoots === undefined) {\n return pkgData.directories.indexOf(absoluteRoot) !== -1;\n }\n\n let babelrcPatterns = babelrcRoots;\n if (!Array.isArray(babelrcPatterns)) {\n babelrcPatterns = [babelrcPatterns as IgnoreItem];\n }\n babelrcPatterns = babelrcPatterns.map(pat => {\n return typeof pat === \"string\"\n ? path.resolve(babelrcRootsDirectory, pat)\n : pat;\n });\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {\n return pkgData.directories.indexOf(absoluteRoot) !== -1;\n }\n\n return babelrcPatterns.some(pat => {\n if (typeof pat === \"string\") {\n pat = pathPatternToRegex(pat, babelrcRootsDirectory);\n }\n\n return pkgData.directories.some(directory => {\n return matchPattern(pat, babelrcRootsDirectory, directory, context);\n });\n });\n}\n\nconst validateConfigFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"configfile\", file.options, file.filepath),\n }),\n);\n\nconst validateBabelrcFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"babelrcfile\", file.options, file.filepath),\n }),\n);\n\nconst validateExtendFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"extendsfile\", file.options, file.filepath),\n }),\n);\n\n/**\n * Build a config chain for just the programmatic options passed into Babel.\n */\nconst loadProgrammaticChain = makeChainWalker({\n root: input => buildRootDescriptors(input, \"base\", createCachedDescriptors),\n env: (input, envName) =>\n buildEnvDescriptors(input, \"base\", createCachedDescriptors, envName),\n overrides: (input, index) =>\n buildOverrideDescriptors(input, \"base\", createCachedDescriptors, index),\n overridesEnv: (input, index, envName) =>\n buildOverrideEnvDescriptors(\n input,\n \"base\",\n createCachedDescriptors,\n index,\n envName,\n ),\n createLogger: (input, context, baseLogger) =>\n buildProgrammaticLogger(input, context, baseLogger),\n});\n\n/**\n * Build a config chain for a given file.\n */\nconst loadFileChainWalker = makeChainWalker<ValidatedFile>({\n root: file => loadFileDescriptors(file),\n env: (file, envName) => loadFileEnvDescriptors(file)(envName),\n overrides: (file, index) => loadFileOverridesDescriptors(file)(index),\n overridesEnv: (file, index, envName) =>\n loadFileOverridesEnvDescriptors(file)(index)(envName),\n createLogger: (file, context, baseLogger) =>\n buildFileLogger(file.filepath, context, baseLogger),\n});\n\nfunction* loadFileChain(\n input: ValidatedFile,\n context: ConfigContext,\n files: Set<ConfigFile>,\n baseLogger: ConfigPrinter,\n) {\n const chain = yield* loadFileChainWalker(input, context, files, baseLogger);\n chain?.files.add(input.filepath);\n\n return chain;\n}\n\nconst loadFileDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n buildRootDescriptors(file, file.filepath, createUncachedDescriptors),\n);\nconst loadFileEnvDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadFileOverridesDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadFileOverridesEnvDescriptors = makeWeakCacheSync(\n (file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nfunction buildFileLogger(\n filepath: string,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Config, {\n filepath,\n });\n}\n\nfunction buildRootDescriptors(\n { dirname, options }: Partial<ValidatedFile>,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n) {\n return descriptors(dirname, options, alias);\n}\n\nfunction buildProgrammaticLogger(\n _: unknown,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Programmatic, {\n callerName: context.caller?.name,\n });\n}\n\nfunction buildEnvDescriptors(\n { dirname, options }: Partial<ValidatedFile>,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n envName: string,\n) {\n const opts = options.env?.[envName];\n return opts ? descriptors(dirname, opts, `${alias}.env[\"${envName}\"]`) : null;\n}\n\nfunction buildOverrideDescriptors(\n { dirname, options }: Partial<ValidatedFile>,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n) {\n const opts = options.overrides?.[index];\n if (!opts) throw new Error(\"Assertion failure - missing override\");\n\n return descriptors(dirname, opts, `${alias}.overrides[${index}]`);\n}\n\nfunction buildOverrideEnvDescriptors(\n { dirname, options }: Partial<ValidatedFile>,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n envName: string,\n) {\n const override = options.overrides?.[index];\n if (!override) throw new Error(\"Assertion failure - missing override\");\n\n const opts = override.env?.[envName];\n return opts\n ? descriptors(\n dirname,\n opts,\n `${alias}.overrides[${index}].env[\"${envName}\"]`,\n )\n : null;\n}\n\nfunction makeChainWalker<\n ArgT extends {\n options: ValidatedOptions;\n dirname: string;\n filepath?: string;\n },\n>({\n root,\n env,\n overrides,\n overridesEnv,\n createLogger,\n}: {\n root: (configEntry: ArgT) => OptionsAndDescriptors;\n env: (configEntry: ArgT, env: string) => OptionsAndDescriptors | null;\n overrides: (configEntry: ArgT, index: number) => OptionsAndDescriptors;\n overridesEnv: (\n configEntry: ArgT,\n index: number,\n env: string,\n ) => OptionsAndDescriptors | null;\n createLogger: (\n configEntry: ArgT,\n context: ConfigContext,\n printer: ConfigPrinter | void,\n ) => (\n opts: OptionsAndDescriptors,\n index?: number | null,\n env?: string | null,\n ) => void;\n}): (\n configEntry: ArgT,\n context: ConfigContext,\n files?: Set<ConfigFile>,\n baseLogger?: ConfigPrinter,\n) => Handler<ConfigChain | null> {\n return function* chainWalker(input, context, files = new Set(), baseLogger) {\n const { dirname } = input;\n\n const flattenedConfigs: Array<{\n config: OptionsAndDescriptors;\n index: number | undefined | null;\n envName: string | undefined | null;\n }> = [];\n\n const rootOpts = root(input);\n if (configIsApplicable(rootOpts, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: rootOpts,\n envName: undefined,\n index: undefined,\n });\n\n const envOpts = env(input, context.envName);\n if (\n envOpts &&\n configIsApplicable(envOpts, dirname, context, input.filepath)\n ) {\n flattenedConfigs.push({\n config: envOpts,\n envName: context.envName,\n index: undefined,\n });\n }\n\n (rootOpts.options.overrides || []).forEach((_, index) => {\n const overrideOps = overrides(input, index);\n if (configIsApplicable(overrideOps, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: overrideOps,\n index,\n envName: undefined,\n });\n\n const overrideEnvOpts = overridesEnv(input, index, context.envName);\n if (\n overrideEnvOpts &&\n configIsApplicable(\n overrideEnvOpts,\n dirname,\n context,\n input.filepath,\n )\n ) {\n flattenedConfigs.push({\n config: overrideEnvOpts,\n index,\n envName: context.envName,\n });\n }\n }\n });\n }\n\n // Process 'ignore' and 'only' before 'extends' items are processed so\n // that we don't do extra work loading extended configs if a file is\n // ignored.\n if (\n flattenedConfigs.some(\n ({\n config: {\n options: { ignore, only },\n },\n }) => shouldIgnore(context, ignore, only, dirname),\n )\n ) {\n return null;\n }\n\n const chain = emptyChain();\n const logger = createLogger(input, context, baseLogger);\n\n for (const { config, index, envName } of flattenedConfigs) {\n if (\n !(yield* mergeExtendsChain(\n chain,\n config.options,\n dirname,\n context,\n files,\n baseLogger,\n ))\n ) {\n return null;\n }\n\n logger(config, index, envName);\n yield* mergeChainOpts(chain, config);\n }\n return chain;\n };\n}\n\nfunction* mergeExtendsChain(\n chain: ConfigChain,\n opts: ValidatedOptions,\n dirname: string,\n context: ConfigContext,\n files: Set<ConfigFile>,\n baseLogger?: ConfigPrinter,\n): Handler<boolean> {\n if (opts.extends === undefined) return true;\n\n const file = yield* loadConfig(\n opts.extends,\n dirname,\n context.envName,\n context.caller,\n );\n\n if (files.has(file)) {\n throw new Error(\n `Configuration cycle detected loading ${file.filepath}.\\n` +\n `File already loaded following the config chain:\\n` +\n Array.from(files, file => ` - ${file.filepath}`).join(\"\\n\"),\n );\n }\n\n files.add(file);\n const fileChain = yield* loadFileChain(\n validateExtendFile(file),\n context,\n files,\n baseLogger,\n );\n files.delete(file);\n\n if (!fileChain) return false;\n\n mergeChain(chain, fileChain);\n\n return true;\n}\n\nfunction mergeChain(target: ConfigChain, source: ConfigChain): ConfigChain {\n target.options.push(...source.options);\n target.plugins.push(...source.plugins);\n target.presets.push(...source.presets);\n for (const file of source.files) {\n target.files.add(file);\n }\n\n return target;\n}\n\nfunction* mergeChainOpts(\n target: ConfigChain,\n { options, plugins, presets }: OptionsAndDescriptors,\n): Handler<ConfigChain> {\n target.options.push(options);\n target.plugins.push(...(yield* plugins()));\n target.presets.push(...(yield* presets()));\n\n return target;\n}\n\nfunction emptyChain(): ConfigChain {\n return {\n options: [],\n presets: [],\n plugins: [],\n files: new Set(),\n };\n}\n\nfunction normalizeOptions(opts: ValidatedOptions): ValidatedOptions {\n const options = {\n ...opts,\n };\n delete options.extends;\n delete options.env;\n delete options.overrides;\n delete options.plugins;\n delete options.presets;\n delete options.passPerPreset;\n delete options.ignore;\n delete options.only;\n delete options.test;\n delete options.include;\n delete options.exclude;\n\n // \"sourceMap\" is just aliased to sourceMap, so copy it over as\n // we merge the options together.\n if (Object.prototype.hasOwnProperty.call(options, \"sourceMap\")) {\n options.sourceMaps = options.sourceMap;\n delete options.sourceMap;\n }\n return options;\n}\n\nfunction dedupDescriptors<API>(\n items: Array<UnloadedDescriptor<API>>,\n): Array<UnloadedDescriptor<API>> {\n const map: Map<\n Function,\n Map<string | void, { value: UnloadedDescriptor<API> }>\n > = new Map();\n\n const descriptors = [];\n\n for (const item of items) {\n if (typeof item.value === \"function\") {\n const fnKey = item.value;\n let nameMap = map.get(fnKey);\n if (!nameMap) {\n nameMap = new Map();\n map.set(fnKey, nameMap);\n }\n let desc = nameMap.get(item.name);\n if (!desc) {\n desc = { value: item };\n descriptors.push(desc);\n\n // Treat passPerPreset presets as unique, skipping them\n // in the merge processing steps.\n if (!item.ownPass) nameMap.set(item.name, desc);\n } else {\n desc.value = item;\n }\n } else {\n descriptors.push({ value: item });\n }\n }\n\n return descriptors.reduce((acc, desc) => {\n acc.push(desc.value);\n return acc;\n }, []);\n}\n\nfunction configIsApplicable(\n { options }: OptionsAndDescriptors,\n dirname: string,\n context: ConfigContext,\n configName: string,\n): boolean {\n return (\n (options.test === undefined ||\n configFieldIsApplicable(context, options.test, dirname, configName)) &&\n (options.include === undefined ||\n configFieldIsApplicable(context, options.include, dirname, configName)) &&\n (options.exclude === undefined ||\n !configFieldIsApplicable(context, options.exclude, dirname, configName))\n );\n}\n\nfunction configFieldIsApplicable(\n context: ConfigContext,\n test: ConfigApplicableTest,\n dirname: string,\n configName: string,\n): boolean {\n const patterns = Array.isArray(test) ? test : [test];\n\n return matchesPatterns(context, patterns, dirname, configName);\n}\n\n/**\n * Print the ignoreList-values in a more helpful way than the default.\n */\nfunction ignoreListReplacer(\n _key: string,\n value: IgnoreList | IgnoreItem,\n): IgnoreList | IgnoreItem | string {\n if (value instanceof RegExp) {\n return String(value);\n }\n\n return value;\n}\n\n/**\n * Tests if a filename should be ignored based on \"ignore\" and \"only\" options.\n */\nfunction shouldIgnore(\n context: ConfigContext,\n ignore: IgnoreList | undefined | null,\n only: IgnoreList | undefined | null,\n dirname: string,\n): boolean {\n if (ignore && matchesPatterns(context, ignore, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it matches one of \\`ignore: ${JSON.stringify(\n ignore,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n if (only && !matchesPatterns(context, only, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it fails to match one of \\`only: ${JSON.stringify(\n only,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns result of calling function with filename if pattern is a function.\n * Otherwise returns result of matching pattern Regex with filename.\n */\nfunction matchesPatterns(\n context: ConfigContext,\n patterns: IgnoreList,\n dirname: string,\n configName?: string,\n): boolean {\n return patterns.some(pattern =>\n matchPattern(pattern, dirname, context.filename, context, configName),\n );\n}\n\nfunction matchPattern(\n pattern: IgnoreItem,\n dirname: string,\n pathToTest: string | undefined,\n context: ConfigContext,\n configName?: string,\n): boolean {\n if (typeof pattern === \"function\") {\n return !!endHiddenCallStack(pattern)(pathToTest, {\n dirname,\n envName: context.envName,\n caller: context.caller,\n });\n }\n\n if (typeof pathToTest !== \"string\") {\n throw new ConfigError(\n `Configuration contains string/RegExp pattern, but no filename was passed to Babel`,\n configName,\n );\n }\n\n if (typeof pattern === \"string\") {\n pattern = pathPatternToRegex(pattern, dirname);\n }\n return pattern.test(pathToTest);\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/configuration.js b/node_modules/@babel/core/lib/config/files/configuration.js index 34327ee5..50adfd86 100644 --- a/node_modules/@babel/core/lib/config/files/configuration.js +++ b/node_modules/@babel/core/lib/config/files/configuration.js @@ -53,8 +53,7 @@ var _configError = require("../../errors/config-error.js"); var fs = require("../../gensync-utils/fs.js"); var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js"); const debug = _debug()("babel:config:loading:files:configuration"); -const ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json", "babel.config.cts"]; -exports.ROOT_CONFIG_FILENAMES = ROOT_CONFIG_FILENAMES; +const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json", "babel.config.cts"]; const RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json", ".babelrc.cts"]; const BABELIGNORE_FILENAME = ".babelignore"; const runConfig = (0, _caching.makeWeakCache)(function* runConfig(options, cache) { @@ -78,7 +77,7 @@ function* readConfigCode(filepath, data) { throw new _configError.default(`Configuration should be an exported JavaScript object.`, filepath); } if (typeof options.then === "function") { - options.catch == null ? void 0 : options.catch(() => {}); + options.catch == null || options.catch(() => {}); throw new _configError.default(`You appear to be using an async configuration, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously return your config.`, filepath); } if (cacheNeedsConfiguration) throwConfigError(filepath); diff --git a/node_modules/@babel/core/lib/config/files/configuration.js.map b/node_modules/@babel/core/lib/config/files/configuration.js.map index e8b35c29..4be4ed4a 100644 --- a/node_modules/@babel/core/lib/config/files/configuration.js.map +++ b/node_modules/@babel/core/lib/config/files/configuration.js.map @@ -1 +1 @@ -{"version":3,"names":["_debug","data","require","_fs","_path","_json","_gensync","_caching","_configApi","_utils","_moduleTypes","_patternToRegex","_configError","fs","_rewriteStackTrace","debug","buildDebug","ROOT_CONFIG_FILENAMES","exports","RELATIVE_CONFIG_FILENAMES","BABELIGNORE_FILENAME","runConfig","makeWeakCache","options","cache","endHiddenCallStack","makeConfigAPI","cacheNeedsConfiguration","configured","readConfigCode","filepath","nodeFs","existsSync","loadCodeDefault","Array","isArray","ConfigError","then","catch","throwConfigError","buildConfigFileObject","cfboaf","WeakMap","configFilesByFilepath","get","set","Map","configFile","dirname","path","packageToBabelConfig","makeWeakCacheSync","file","babel","readConfigJSON5","makeStaticFileCache","content","json5","parse","err","message","readIgnoreConfig","ignoreDir","ignorePatterns","split","map","line","replace","trim","filter","pattern","ignore","pathPatternToRegex","findConfigUpwards","rootDir","filename","join","nextDir","findRelativeConfig","packageData","envName","caller","config","loc","directories","_packageData$pkg","loadOneConfig","pkg","ignoreLoc","findRootConfig","names","previousConfig","configs","gensync","all","readConfig","reduce","basename","loadConfig","name","v","w","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","code","conf","ext","extname","resolveShowConfigPath","targetPath","env","BABEL_SHOW_CONFIG_FOR","absolutePath","stats","stat","isFile"],"sources":["../../../src/config/files/configuration.ts"],"sourcesContent":["import buildDebug from \"debug\";\nimport nodeFs from \"fs\";\nimport path from \"path\";\nimport json5 from \"json5\";\nimport gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport { makeWeakCache, makeWeakCacheSync } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport { makeConfigAPI } from \"../helpers/config-api.ts\";\nimport type { ConfigAPI } from \"../helpers/config-api.ts\";\nimport { makeStaticFileCache } from \"./utils.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport pathPatternToRegex from \"../pattern-to-regex.ts\";\nimport type { FilePackageData, RelativeConfig, ConfigFile } from \"./types.ts\";\nimport type { CallerMetadata, InputOptions } from \"../validation/options.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport * as fs from \"../../gensync-utils/fs.ts\";\n\nimport { createRequire } from \"module\";\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:configuration\");\n\nexport const ROOT_CONFIG_FILENAMES = [\n \"babel.config.js\",\n \"babel.config.cjs\",\n \"babel.config.mjs\",\n \"babel.config.json\",\n \"babel.config.cts\",\n];\nconst RELATIVE_CONFIG_FILENAMES = [\n \".babelrc\",\n \".babelrc.js\",\n \".babelrc.cjs\",\n \".babelrc.mjs\",\n \".babelrc.json\",\n \".babelrc.cts\",\n];\n\nconst BABELIGNORE_FILENAME = \".babelignore\";\n\ntype ConfigCacheData = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\n\nconst runConfig = makeWeakCache(function* runConfig(\n options: Function,\n cache: CacheConfigurator<ConfigCacheData>,\n): Handler<{\n options: InputOptions | null;\n cacheNeedsConfiguration: boolean;\n}> {\n // @ts-expect-error - if we want to make it possible to use async configs\n yield* [];\n\n return {\n options: endHiddenCallStack(options as any as (api: ConfigAPI) => {})(\n makeConfigAPI(cache),\n ),\n cacheNeedsConfiguration: !cache.configured(),\n };\n});\n\nfunction* readConfigCode(\n filepath: string,\n data: ConfigCacheData,\n): Handler<ConfigFile | null> {\n if (!nodeFs.existsSync(filepath)) return null;\n\n let options = yield* loadCodeDefault(\n filepath,\n \"You appear to be using a native ECMAScript module configuration \" +\n \"file, which is only supported when running Babel asynchronously.\",\n );\n\n let cacheNeedsConfiguration = false;\n if (typeof options === \"function\") {\n ({ options, cacheNeedsConfiguration } = yield* runConfig(options, data));\n }\n\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new ConfigError(\n `Configuration should be an exported JavaScript object.`,\n filepath,\n );\n }\n\n // @ts-expect-error todo(flow->ts)\n if (typeof options.then === \"function\") {\n // @ts-expect-error We use ?. in case options is a thenable\n // but not a promise\n options.catch?.(() => {});\n\n throw new ConfigError(\n `You appear to be using an async configuration, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously return your config.`,\n filepath,\n );\n }\n\n if (cacheNeedsConfiguration) throwConfigError(filepath);\n\n return buildConfigFileObject(options, filepath);\n}\n\n// We cache the generated ConfigFile object rather than creating a new one\n// every time, so that it can be used as a cache key in other functions.\nconst cfboaf /* configFilesByOptionsAndFilepath */ = new WeakMap<\n InputOptions,\n Map<string, ConfigFile>\n>();\nfunction buildConfigFileObject(\n options: InputOptions,\n filepath: string,\n): ConfigFile {\n let configFilesByFilepath = cfboaf.get(options);\n if (!configFilesByFilepath) {\n cfboaf.set(options, (configFilesByFilepath = new Map()));\n }\n\n let configFile = configFilesByFilepath.get(filepath);\n if (!configFile) {\n configFile = {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n configFilesByFilepath.set(filepath, configFile);\n }\n\n return configFile;\n}\n\nconst packageToBabelConfig = makeWeakCacheSync(\n (file: ConfigFile): ConfigFile | null => {\n const babel: unknown = file.options[\"babel\"];\n\n if (typeof babel === \"undefined\") return null;\n\n if (typeof babel !== \"object\" || Array.isArray(babel) || babel === null) {\n throw new ConfigError(`.babel property must be an object`, file.filepath);\n }\n\n return {\n filepath: file.filepath,\n dirname: file.dirname,\n options: babel,\n };\n },\n);\n\nconst readConfigJSON5 = makeStaticFileCache((filepath, content): ConfigFile => {\n let options;\n try {\n options = json5.parse(content);\n } catch (err) {\n throw new ConfigError(\n `Error while parsing config - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new ConfigError(`No config detected`, filepath);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(`Config returned typeof ${typeof options}`, filepath);\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n delete options[\"$schema\"];\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n});\n\nconst readIgnoreConfig = makeStaticFileCache((filepath, content) => {\n const ignoreDir = path.dirname(filepath);\n const ignorePatterns = content\n .split(\"\\n\")\n .map<string>(line => line.replace(/#(.*?)$/, \"\").trim())\n .filter(line => !!line);\n\n for (const pattern of ignorePatterns) {\n if (pattern[0] === \"!\") {\n throw new ConfigError(\n `Negation of file paths is not supported.`,\n filepath,\n );\n }\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n ignore: ignorePatterns.map(pattern =>\n pathPatternToRegex(pattern, ignoreDir),\n ),\n };\n});\n\nexport function findConfigUpwards(rootDir: string): string | null {\n let dirname = rootDir;\n for (;;) {\n for (const filename of ROOT_CONFIG_FILENAMES) {\n if (nodeFs.existsSync(path.join(dirname, filename))) {\n return dirname;\n }\n }\n\n const nextDir = path.dirname(dirname);\n if (dirname === nextDir) break;\n dirname = nextDir;\n }\n\n return null;\n}\n\nexport function* findRelativeConfig(\n packageData: FilePackageData,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<RelativeConfig> {\n let config = null;\n let ignore = null;\n\n const dirname = path.dirname(packageData.filepath);\n\n for (const loc of packageData.directories) {\n if (!config) {\n config = yield* loadOneConfig(\n RELATIVE_CONFIG_FILENAMES,\n loc,\n envName,\n caller,\n packageData.pkg?.dirname === loc\n ? packageToBabelConfig(packageData.pkg)\n : null,\n );\n }\n\n if (!ignore) {\n const ignoreLoc = path.join(loc, BABELIGNORE_FILENAME);\n ignore = yield* readIgnoreConfig(ignoreLoc);\n\n if (ignore) {\n debug(\"Found ignore %o from %o.\", ignore.filepath, dirname);\n }\n }\n }\n\n return { config, ignore };\n}\n\nexport function findRootConfig(\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller);\n}\n\nfunction* loadOneConfig(\n names: string[],\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n previousConfig: ConfigFile | null = null,\n): Handler<ConfigFile | null> {\n const configs = yield* gensync.all(\n names.map(filename =>\n readConfig(path.join(dirname, filename), envName, caller),\n ),\n );\n const config = configs.reduce((previousConfig: ConfigFile | null, config) => {\n if (config && previousConfig) {\n throw new ConfigError(\n `Multiple configuration files found. Please remove one:\\n` +\n ` - ${path.basename(previousConfig.filepath)}\\n` +\n ` - ${config.filepath}\\n` +\n `from ${dirname}`,\n );\n }\n\n return config || previousConfig;\n }, previousConfig);\n\n if (config) {\n debug(\"Found configuration %o from %o.\", config.filepath, dirname);\n }\n return config;\n}\n\nexport function* loadConfig(\n name: string,\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile> {\n const filepath = require.resolve(name, { paths: [dirname] });\n\n const conf = yield* readConfig(filepath, envName, caller);\n if (!conf) {\n throw new ConfigError(\n `Config file contains no configuration data`,\n filepath,\n );\n }\n\n debug(\"Loaded config %o from %o.\", name, dirname);\n return conf;\n}\n\n/**\n * Read the given config file, returning the result. Returns null if no config was found, but will\n * throw if there are parsing errors while loading a config.\n */\nfunction readConfig(\n filepath: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n const ext = path.extname(filepath);\n switch (ext) {\n case \".js\":\n case \".cjs\":\n case \".mjs\":\n case \".cts\":\n return readConfigCode(filepath, { envName, caller });\n default:\n return readConfigJSON5(filepath);\n }\n}\n\nexport function* resolveShowConfigPath(\n dirname: string,\n): Handler<string | null> {\n const targetPath = process.env.BABEL_SHOW_CONFIG_FOR;\n if (targetPath != null) {\n const absolutePath = path.resolve(dirname, targetPath);\n const stats = yield* fs.stat(absolutePath);\n if (!stats.isFile()) {\n throw new Error(\n `${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`,\n );\n }\n return absolutePath;\n }\n return null;\n}\n\nfunction throwConfigError(filepath: string): never {\n throw new ConfigError(\n `\\\nCaching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured\nfor various types of caching, using the first param of their handler functions:\n\nmodule.exports = function(api) {\n // The API exposes the following:\n\n // Cache the returned value forever and don't call this function again.\n api.cache(true);\n\n // Don't cache at all. Not recommended because it will be very slow.\n api.cache(false);\n\n // Cached based on the value of some function. If this function returns a value different from\n // a previously-encountered value, the plugins will re-evaluate.\n var env = api.cache(() => process.env.NODE_ENV);\n\n // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for\n // any possible NODE_ENV value that might come up during plugin execution.\n var isProd = api.cache(() => process.env.NODE_ENV === \"production\");\n\n // .cache(fn) will perform a linear search though instances to find the matching plugin based\n // based on previous instantiated plugins. If you want to recreate the plugin and discard the\n // previous instance whenever something changes, you may use:\n var isProd = api.cache.invalidate(() => process.env.NODE_ENV === \"production\");\n\n // Note, we also expose the following more-verbose versions of the above examples:\n api.cache.forever(); // api.cache(true)\n api.cache.never(); // api.cache(false)\n api.cache.using(fn); // api.cache(fn)\n\n // Return the value that will be cached.\n return { };\n};`,\n filepath,\n );\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_debug","data","require","_fs","_path","_json","_gensync","_caching","_configApi","_utils","_moduleTypes","_patternToRegex","_configError","fs","_rewriteStackTrace","debug","buildDebug","ROOT_CONFIG_FILENAMES","exports","RELATIVE_CONFIG_FILENAMES","BABELIGNORE_FILENAME","runConfig","makeWeakCache","options","cache","endHiddenCallStack","makeConfigAPI","cacheNeedsConfiguration","configured","readConfigCode","filepath","nodeFs","existsSync","loadCodeDefault","Array","isArray","ConfigError","then","catch","throwConfigError","buildConfigFileObject","cfboaf","WeakMap","configFilesByFilepath","get","set","Map","configFile","dirname","path","packageToBabelConfig","makeWeakCacheSync","file","babel","readConfigJSON5","makeStaticFileCache","content","json5","parse","err","message","readIgnoreConfig","ignoreDir","ignorePatterns","split","map","line","replace","trim","filter","pattern","ignore","pathPatternToRegex","findConfigUpwards","rootDir","filename","join","nextDir","findRelativeConfig","packageData","envName","caller","config","loc","directories","_packageData$pkg","loadOneConfig","pkg","ignoreLoc","findRootConfig","names","previousConfig","configs","gensync","all","readConfig","reduce","basename","loadConfig","name","v","w","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","code","conf","ext","extname","resolveShowConfigPath","targetPath","env","BABEL_SHOW_CONFIG_FOR","absolutePath","stats","stat","isFile"],"sources":["../../../src/config/files/configuration.ts"],"sourcesContent":["import buildDebug from \"debug\";\nimport nodeFs from \"fs\";\nimport path from \"path\";\nimport json5 from \"json5\";\nimport gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport { makeWeakCache, makeWeakCacheSync } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport { makeConfigAPI } from \"../helpers/config-api.ts\";\nimport type { ConfigAPI } from \"../helpers/config-api.ts\";\nimport { makeStaticFileCache } from \"./utils.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport pathPatternToRegex from \"../pattern-to-regex.ts\";\nimport type { FilePackageData, RelativeConfig, ConfigFile } from \"./types.ts\";\nimport type { CallerMetadata, InputOptions } from \"../validation/options.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport * as fs from \"../../gensync-utils/fs.ts\";\n\nimport { createRequire } from \"module\";\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:configuration\");\n\nexport const ROOT_CONFIG_FILENAMES = [\n \"babel.config.js\",\n \"babel.config.cjs\",\n \"babel.config.mjs\",\n \"babel.config.json\",\n \"babel.config.cts\",\n];\nconst RELATIVE_CONFIG_FILENAMES = [\n \".babelrc\",\n \".babelrc.js\",\n \".babelrc.cjs\",\n \".babelrc.mjs\",\n \".babelrc.json\",\n \".babelrc.cts\",\n];\n\nconst BABELIGNORE_FILENAME = \".babelignore\";\n\ntype ConfigCacheData = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\n\nconst runConfig = makeWeakCache(function* runConfig(\n options: Function,\n cache: CacheConfigurator<ConfigCacheData>,\n): Handler<{\n options: InputOptions | null;\n cacheNeedsConfiguration: boolean;\n}> {\n // @ts-expect-error - if we want to make it possible to use async configs\n yield* [];\n\n return {\n options: endHiddenCallStack(options as any as (api: ConfigAPI) => {})(\n makeConfigAPI(cache),\n ),\n cacheNeedsConfiguration: !cache.configured(),\n };\n});\n\nfunction* readConfigCode(\n filepath: string,\n data: ConfigCacheData,\n): Handler<ConfigFile | null> {\n if (!nodeFs.existsSync(filepath)) return null;\n\n let options = yield* loadCodeDefault(\n filepath,\n \"You appear to be using a native ECMAScript module configuration \" +\n \"file, which is only supported when running Babel asynchronously.\",\n );\n\n let cacheNeedsConfiguration = false;\n if (typeof options === \"function\") {\n ({ options, cacheNeedsConfiguration } = yield* runConfig(options, data));\n }\n\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new ConfigError(\n `Configuration should be an exported JavaScript object.`,\n filepath,\n );\n }\n\n // @ts-expect-error todo(flow->ts)\n if (typeof options.then === \"function\") {\n // @ts-expect-error We use ?. in case options is a thenable\n // but not a promise\n options.catch?.(() => {});\n\n throw new ConfigError(\n `You appear to be using an async configuration, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously return your config.`,\n filepath,\n );\n }\n\n if (cacheNeedsConfiguration) throwConfigError(filepath);\n\n return buildConfigFileObject(options, filepath);\n}\n\n// We cache the generated ConfigFile object rather than creating a new one\n// every time, so that it can be used as a cache key in other functions.\nconst cfboaf /* configFilesByOptionsAndFilepath */ = new WeakMap<\n InputOptions,\n Map<string, ConfigFile>\n>();\nfunction buildConfigFileObject(\n options: InputOptions,\n filepath: string,\n): ConfigFile {\n let configFilesByFilepath = cfboaf.get(options);\n if (!configFilesByFilepath) {\n cfboaf.set(options, (configFilesByFilepath = new Map()));\n }\n\n let configFile = configFilesByFilepath.get(filepath);\n if (!configFile) {\n configFile = {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n configFilesByFilepath.set(filepath, configFile);\n }\n\n return configFile;\n}\n\nconst packageToBabelConfig = makeWeakCacheSync(\n (file: ConfigFile): ConfigFile | null => {\n const babel: unknown = file.options[\"babel\"];\n\n if (typeof babel === \"undefined\") return null;\n\n if (typeof babel !== \"object\" || Array.isArray(babel) || babel === null) {\n throw new ConfigError(`.babel property must be an object`, file.filepath);\n }\n\n return {\n filepath: file.filepath,\n dirname: file.dirname,\n options: babel,\n };\n },\n);\n\nconst readConfigJSON5 = makeStaticFileCache((filepath, content): ConfigFile => {\n let options;\n try {\n options = json5.parse(content);\n } catch (err) {\n throw new ConfigError(\n `Error while parsing config - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new ConfigError(`No config detected`, filepath);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(`Config returned typeof ${typeof options}`, filepath);\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n delete options[\"$schema\"];\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n});\n\nconst readIgnoreConfig = makeStaticFileCache((filepath, content) => {\n const ignoreDir = path.dirname(filepath);\n const ignorePatterns = content\n .split(\"\\n\")\n .map<string>(line => line.replace(/#(.*?)$/, \"\").trim())\n .filter(line => !!line);\n\n for (const pattern of ignorePatterns) {\n if (pattern[0] === \"!\") {\n throw new ConfigError(\n `Negation of file paths is not supported.`,\n filepath,\n );\n }\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n ignore: ignorePatterns.map(pattern =>\n pathPatternToRegex(pattern, ignoreDir),\n ),\n };\n});\n\nexport function findConfigUpwards(rootDir: string): string | null {\n let dirname = rootDir;\n for (;;) {\n for (const filename of ROOT_CONFIG_FILENAMES) {\n if (nodeFs.existsSync(path.join(dirname, filename))) {\n return dirname;\n }\n }\n\n const nextDir = path.dirname(dirname);\n if (dirname === nextDir) break;\n dirname = nextDir;\n }\n\n return null;\n}\n\nexport function* findRelativeConfig(\n packageData: FilePackageData,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<RelativeConfig> {\n let config = null;\n let ignore = null;\n\n const dirname = path.dirname(packageData.filepath);\n\n for (const loc of packageData.directories) {\n if (!config) {\n config = yield* loadOneConfig(\n RELATIVE_CONFIG_FILENAMES,\n loc,\n envName,\n caller,\n packageData.pkg?.dirname === loc\n ? packageToBabelConfig(packageData.pkg)\n : null,\n );\n }\n\n if (!ignore) {\n const ignoreLoc = path.join(loc, BABELIGNORE_FILENAME);\n ignore = yield* readIgnoreConfig(ignoreLoc);\n\n if (ignore) {\n debug(\"Found ignore %o from %o.\", ignore.filepath, dirname);\n }\n }\n }\n\n return { config, ignore };\n}\n\nexport function findRootConfig(\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller);\n}\n\nfunction* loadOneConfig(\n names: string[],\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n previousConfig: ConfigFile | null = null,\n): Handler<ConfigFile | null> {\n const configs = yield* gensync.all(\n names.map(filename =>\n readConfig(path.join(dirname, filename), envName, caller),\n ),\n );\n const config = configs.reduce((previousConfig: ConfigFile | null, config) => {\n if (config && previousConfig) {\n throw new ConfigError(\n `Multiple configuration files found. Please remove one:\\n` +\n ` - ${path.basename(previousConfig.filepath)}\\n` +\n ` - ${config.filepath}\\n` +\n `from ${dirname}`,\n );\n }\n\n return config || previousConfig;\n }, previousConfig);\n\n if (config) {\n debug(\"Found configuration %o from %o.\", config.filepath, dirname);\n }\n return config;\n}\n\nexport function* loadConfig(\n name: string,\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile> {\n const filepath = require.resolve(name, { paths: [dirname] });\n\n const conf = yield* readConfig(filepath, envName, caller);\n if (!conf) {\n throw new ConfigError(\n `Config file contains no configuration data`,\n filepath,\n );\n }\n\n debug(\"Loaded config %o from %o.\", name, dirname);\n return conf;\n}\n\n/**\n * Read the given config file, returning the result. Returns null if no config was found, but will\n * throw if there are parsing errors while loading a config.\n */\nfunction readConfig(\n filepath: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n const ext = path.extname(filepath);\n switch (ext) {\n case \".js\":\n case \".cjs\":\n case \".mjs\":\n case \".cts\":\n return readConfigCode(filepath, { envName, caller });\n default:\n return readConfigJSON5(filepath);\n }\n}\n\nexport function* resolveShowConfigPath(\n dirname: string,\n): Handler<string | null> {\n const targetPath = process.env.BABEL_SHOW_CONFIG_FOR;\n if (targetPath != null) {\n const absolutePath = path.resolve(dirname, targetPath);\n const stats = yield* fs.stat(absolutePath);\n if (!stats.isFile()) {\n throw new Error(\n `${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`,\n );\n }\n return absolutePath;\n }\n return null;\n}\n\nfunction throwConfigError(filepath: string): never {\n throw new ConfigError(\n `\\\nCaching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured\nfor various types of caching, using the first param of their handler functions:\n\nmodule.exports = function(api) {\n // The API exposes the following:\n\n // Cache the returned value forever and don't call this function again.\n api.cache(true);\n\n // Don't cache at all. Not recommended because it will be very slow.\n api.cache(false);\n\n // Cached based on the value of some function. If this function returns a value different from\n // a previously-encountered value, the plugins will re-evaluate.\n var env = api.cache(() => process.env.NODE_ENV);\n\n // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for\n // any possible NODE_ENV value that might come up during plugin execution.\n var isProd = api.cache(() => process.env.NODE_ENV === \"production\");\n\n // .cache(fn) will perform a linear search though instances to find the matching plugin based\n // based on previous instantiated plugins. If you want to recreate the plugin and discard the\n // previous instance whenever something changes, you may use:\n var isProd = api.cache.invalidate(() => process.env.NODE_ENV === \"production\");\n\n // Note, we also expose the following more-verbose versions of the above examples:\n api.cache.forever(); // api.cache(true)\n api.cache.never(); // api.cache(false)\n api.cache.using(fn); // api.cache(fn)\n\n // Return the value that will be cached.\n return { };\n};`,\n filepath,\n );\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/import.cjs.map b/node_modules/@babel/core/lib/config/files/import.cjs.map index 90ec9681..1b6ff691 100644 --- a/node_modules/@babel/core/lib/config/files/import.cjs.map +++ b/node_modules/@babel/core/lib/config/files/import.cjs.map @@ -1 +1 @@ -{"version":3,"names":["module","exports","import_","filepath"],"sources":["../../../src/config/files/import.cjs"],"sourcesContent":["// We keep this in a separate file so that in older node versions, where\n// import() isn't supported, we can try/catch around the require() call\n// when loading this file.\n\nmodule.exports = function import_(filepath) {\n return import(filepath);\n};\n"],"mappings":"AAIAA,MAAM,CAACC,OAAO,GAAG,SAASC,OAAOA,CAACC,QAAQ,EAAE;EAC1C,OAAO,MAAM,CAACA,QAAQ,CAAC;AACzB,CAAC;AAAC"}
\ No newline at end of file +{"version":3,"names":["module","exports","import_","filepath"],"sources":["../../../src/config/files/import.cjs"],"sourcesContent":["// We keep this in a separate file so that in older node versions, where\n// import() isn't supported, we can try/catch around the require() call\n// when loading this file.\n\nmodule.exports = function import_(filepath) {\n return import(filepath);\n};\n"],"mappings":"AAIAA,MAAM,CAACC,OAAO,GAAG,SAASC,OAAOA,CAACC,QAAQ,EAAE;EAC1C,OAAO,OAAOA,QAAQ,CAAC;AACzB,CAAC;AAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/index-browser.js b/node_modules/@babel/core/lib/config/files/index-browser.js index 903b7957..d8ba7dbc 100644 --- a/node_modules/@babel/core/lib/config/files/index-browser.js +++ b/node_modules/@babel/core/lib/config/files/index-browser.js @@ -40,8 +40,7 @@ function* loadConfig(name, dirname, envName, caller) { function* resolveShowConfigPath(dirname) { return null; } -const ROOT_CONFIG_FILENAMES = []; -exports.ROOT_CONFIG_FILENAMES = ROOT_CONFIG_FILENAMES; +const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = []; function resolvePlugin(name, dirname) { return null; } diff --git a/node_modules/@babel/core/lib/config/files/index-browser.js.map b/node_modules/@babel/core/lib/config/files/index-browser.js.map index 3052897e..90fbcc8a 100644 --- a/node_modules/@babel/core/lib/config/files/index-browser.js.map +++ b/node_modules/@babel/core/lib/config/files/index-browser.js.map @@ -1 +1 @@ -{"version":3,"names":["findConfigUpwards","rootDir","findPackageData","filepath","directories","pkg","isPackage","findRelativeConfig","pkgData","envName","caller","config","ignore","findRootConfig","dirname","loadConfig","name","Error","resolveShowConfigPath","ROOT_CONFIG_FILENAMES","exports","resolvePlugin","resolvePreset","loadPlugin","loadPreset"],"sources":["../../../src/config/files/index-browser.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types.ts\";\n\nimport type { CallerMetadata } from \"../validation/options.ts\";\n\nexport type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData };\n\nexport function findConfigUpwards(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n rootDir: string,\n): string | null {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* findPackageData(filepath: string): Handler<FilePackageData> {\n return {\n filepath,\n directories: [],\n pkg: null,\n isPackage: false,\n };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRelativeConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n pkgData: FilePackageData,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler<RelativeConfig> {\n return { config: null, ignore: null };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRootConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* loadConfig(\n name: string,\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile> {\n throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);\n}\n\n// eslint-disable-next-line require-yield\nexport function* resolveShowConfigPath(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n): Handler<string | null> {\n return null;\n}\n\nexport const ROOT_CONFIG_FILENAMES: string[] = [];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): string | null {\n return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): string | null {\n return null;\n}\n\nexport function loadPlugin(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load plugin ${name} relative to ${dirname} in a browser`,\n );\n}\n\nexport function loadPreset(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load preset ${name} relative to ${dirname} in a browser`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAaO,SAASA,iBAAiBA,CAE/BC,OAAe,EACA;EACf,OAAO,IAAI;AACb;AAGO,UAAUC,eAAeA,CAACC,QAAgB,EAA4B;EAC3E,OAAO;IACLA,QAAQ;IACRC,WAAW,EAAE,EAAE;IACfC,GAAG,EAAE,IAAI;IACTC,SAAS,EAAE;EACb,CAAC;AACH;AAGO,UAAUC,kBAAkBA,CAEjCC,OAAwB,EAExBC,OAAe,EAEfC,MAAkC,EACT;EACzB,OAAO;IAAEC,MAAM,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;AACvC;AAGO,UAAUC,cAAcA,CAE7BC,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACN;EAC5B,OAAO,IAAI;AACb;AAGO,UAAUK,UAAUA,CACzBC,IAAY,EACZF,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACb;EACrB,MAAM,IAAIO,KAAK,CAAE,eAAcD,IAAK,gBAAeF,OAAQ,eAAc,CAAC;AAC5E;AAGO,UAAUI,qBAAqBA,CAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAG,EAAE;AAACC,OAAA,CAAAD,qBAAA,GAAAA,qBAAA;AAG3C,SAASE,aAAaA,CAACL,IAAY,EAAEF,OAAe,EAAiB;EAC1E,OAAO,IAAI;AACb;AAGO,SAASQ,aAAaA,CAACN,IAAY,EAAEF,OAAe,EAAiB;EAC1E,OAAO,IAAI;AACb;AAEO,SAASS,UAAUA,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACZ,sBAAqBD,IAAK,gBAAeF,OAAQ,eACpD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACZ,sBAAqBD,IAAK,gBAAeF,OAAQ,eACpD,CAAC;AACH;AAAC"}
\ No newline at end of file +{"version":3,"names":["findConfigUpwards","rootDir","findPackageData","filepath","directories","pkg","isPackage","findRelativeConfig","pkgData","envName","caller","config","ignore","findRootConfig","dirname","loadConfig","name","Error","resolveShowConfigPath","ROOT_CONFIG_FILENAMES","exports","resolvePlugin","resolvePreset","loadPlugin","loadPreset"],"sources":["../../../src/config/files/index-browser.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types.ts\";\n\nimport type { CallerMetadata } from \"../validation/options.ts\";\n\nexport type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData };\n\nexport function findConfigUpwards(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n rootDir: string,\n): string | null {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* findPackageData(filepath: string): Handler<FilePackageData> {\n return {\n filepath,\n directories: [],\n pkg: null,\n isPackage: false,\n };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRelativeConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n pkgData: FilePackageData,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler<RelativeConfig> {\n return { config: null, ignore: null };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRootConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* loadConfig(\n name: string,\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile> {\n throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);\n}\n\n// eslint-disable-next-line require-yield\nexport function* resolveShowConfigPath(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n): Handler<string | null> {\n return null;\n}\n\nexport const ROOT_CONFIG_FILENAMES: string[] = [];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): string | null {\n return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): string | null {\n return null;\n}\n\nexport function loadPlugin(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load plugin ${name} relative to ${dirname} in a browser`,\n );\n}\n\nexport function loadPreset(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load preset ${name} relative to ${dirname} in a browser`,\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAaO,SAASA,iBAAiBA,CAE/BC,OAAe,EACA;EACf,OAAO,IAAI;AACb;AAGO,UAAUC,eAAeA,CAACC,QAAgB,EAA4B;EAC3E,OAAO;IACLA,QAAQ;IACRC,WAAW,EAAE,EAAE;IACfC,GAAG,EAAE,IAAI;IACTC,SAAS,EAAE;EACb,CAAC;AACH;AAGO,UAAUC,kBAAkBA,CAEjCC,OAAwB,EAExBC,OAAe,EAEfC,MAAkC,EACT;EACzB,OAAO;IAAEC,MAAM,EAAE,IAAI;IAAEC,MAAM,EAAE;EAAK,CAAC;AACvC;AAGO,UAAUC,cAAcA,CAE7BC,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACN;EAC5B,OAAO,IAAI;AACb;AAGO,UAAUK,UAAUA,CACzBC,IAAY,EACZF,OAAe,EAEfL,OAAe,EAEfC,MAAkC,EACb;EACrB,MAAM,IAAIO,KAAK,CAAE,eAAcD,IAAK,gBAAeF,OAAQ,eAAc,CAAC;AAC5E;AAGO,UAAUI,qBAAqBA,CAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAAC,OAAA,CAAAD,qBAAA,GAAG,EAAE;AAG1C,SAASE,aAAaA,CAACL,IAAY,EAAEF,OAAe,EAAiB;EAC1E,OAAO,IAAI;AACb;AAGO,SAASQ,aAAaA,CAACN,IAAY,EAAEF,OAAe,EAAiB;EAC1E,OAAO,IAAI;AACb;AAEO,SAASS,UAAUA,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACZ,sBAAqBD,IAAK,gBAAeF,OAAQ,eACpD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACZ,sBAAqBD,IAAK,gBAAeF,OAAQ,eACpD,CAAC;AACH;AAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/module-types.js b/node_modules/@babel/core/lib/config/files/module-types.js index 473100e7..e27f4429 100644 --- a/node_modules/@babel/core/lib/config/files/module-types.js +++ b/node_modules/@babel/core/lib/config/files/module-types.js @@ -44,8 +44,7 @@ let import_; try { import_ = require("./import.cjs"); } catch (_unused) {} -const supportsESM = _semver().satisfies(process.versions.node, "^12.17 || >=13.2"); -exports.supportsESM = supportsESM; +const supportsESM = exports.supportsESM = _semver().satisfies(process.versions.node, "^12.17 || >=13.2"); function* loadCodeDefault(filepath, asyncError) { switch (_path().extname(filepath)) { case ".cjs": diff --git a/node_modules/@babel/core/lib/config/files/module-types.js.map b/node_modules/@babel/core/lib/config/files/module-types.js.map index 12789a32..2fd6367b 100644 --- a/node_modules/@babel/core/lib/config/files/module-types.js.map +++ b/node_modules/@babel/core/lib/config/files/module-types.js.map @@ -1 +1 @@ -{"version":3,"names":["_async","require","_path","data","_url","_semver","_debug","_rewriteStackTrace","_configError","_transformFile","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","debug","buildDebug","import_","_unused","supportsESM","semver","satisfies","process","versions","node","exports","loadCodeDefault","filepath","asyncError","path","extname","loadCjsDefault","loadCtsDefault","e","code","isAsync","waitFor","loadMjsDefault","ConfigError","ext","hasTsSupport","extensions","handler","opts","babelrc","configFile","sourceType","sourceMaps","sourceFileName","basename","presets","getTSPreset","Object","assign","onlyRemoveTypeImports","optimizeConstEnums","allowDeclareFields","m","filename","endsWith","_compile","transformFileSync","packageJson","lt","version","console","LOADING_CJS_FILES","Set","has","module","add","endHiddenCallStack","delete","_module","__esModule","default","_x","_loadMjsDefault","pathToFileURL","message","pnp"],"sources":["../../../src/config/files/module-types.ts"],"sourcesContent":["import { isAsync, waitFor } from \"../../gensync-utils/async.ts\";\nimport type { Handler } from \"gensync\";\nimport path from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { createRequire } from \"module\";\nimport semver from \"semver\";\nimport buildDebug from \"debug\";\n\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport type { InputOptions } from \"../index.ts\";\nimport { transformFileSync } from \"../../transform-file.ts\";\n\nconst debug = buildDebug(\"babel:config:loading:files:module-types\");\n\nconst require = createRequire(import.meta.url);\n\nlet import_: ((specifier: string | URL) => any) | undefined;\ntry {\n // Old Node.js versions don't support import() syntax.\n import_ = require(\"./import.cjs\");\n} catch {}\n\nexport const supportsESM = semver.satisfies(\n process.versions.node,\n // older versions, starting from 10, support the dynamic\n // import syntax but always return a rejected promise.\n \"^12.17 || >=13.2\",\n);\n\nexport default function* loadCodeDefault(\n filepath: string,\n asyncError: string,\n): Handler<unknown> {\n switch (path.extname(filepath)) {\n case \".cjs\":\n if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n case \".mjs\":\n break;\n case \".cts\":\n return loadCtsDefault(filepath);\n default:\n try {\n if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n } catch (e) {\n if (e.code !== \"ERR_REQUIRE_ESM\") throw e;\n }\n }\n if (yield* isAsync()) {\n return yield* waitFor(loadMjsDefault(filepath));\n }\n throw new ConfigError(asyncError, filepath);\n}\n\nfunction loadCtsDefault(filepath: string) {\n const ext = \".cts\";\n const hasTsSupport = !!(\n require.extensions[\".ts\"] ||\n require.extensions[\".cts\"] ||\n require.extensions[\".mts\"]\n );\n\n let handler: NodeJS.RequireExtensions[\"\"];\n\n if (!hasTsSupport) {\n const opts: InputOptions = {\n babelrc: false,\n configFile: false,\n sourceType: \"unambiguous\",\n sourceMaps: \"inline\",\n sourceFileName: path.basename(filepath),\n presets: [\n [\n getTSPreset(filepath),\n {\n onlyRemoveTypeImports: true,\n optimizeConstEnums: true,\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : { allowDeclareFields: true }),\n },\n ],\n ],\n };\n\n handler = function (m, filename) {\n // If we want to support `.ts`, `.d.ts` must be handled specially.\n if (handler && filename.endsWith(ext)) {\n try {\n // @ts-expect-error Undocumented API\n return m._compile(\n transformFileSync(filename, {\n ...opts,\n filename,\n }).code,\n filename,\n );\n } catch (error) {\n if (!hasTsSupport) {\n const packageJson = require(\"@babel/preset-typescript/package.json\");\n if (semver.lt(packageJson.version, \"7.21.4\")) {\n console.error(\n \"`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`.\",\n );\n }\n }\n throw error;\n }\n }\n return require.extensions[\".js\"](m, filename);\n };\n require.extensions[ext] = handler;\n }\n try {\n return loadCjsDefault(filepath);\n } finally {\n if (!hasTsSupport) {\n if (require.extensions[ext] === handler) delete require.extensions[ext];\n handler = undefined;\n }\n }\n}\n\nconst LOADING_CJS_FILES = new Set();\n\nfunction loadCjsDefault(filepath: string) {\n // The `require()` call below can make this code reentrant if a require hook\n // like @babel/register has been loaded into the system. That would cause\n // Babel to attempt to compile the `.babelrc.js` file as it loads below. To\n // cover this case, we auto-ignore re-entrant config processing. ESM loaders\n // do not have this problem, because loaders do not apply to themselves.\n if (LOADING_CJS_FILES.has(filepath)) {\n debug(\"Auto-ignoring usage of config %o.\", filepath);\n return {};\n }\n\n let module;\n try {\n LOADING_CJS_FILES.add(filepath);\n module = endHiddenCallStack(require)(filepath);\n } finally {\n LOADING_CJS_FILES.delete(filepath);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return module?.__esModule ? module.default : module;\n } else {\n return module?.__esModule\n ? module.default ||\n /* fallbackToTranspiledModule */ (arguments[1] ? module : undefined)\n : module;\n }\n}\n\nasync function loadMjsDefault(filepath: string) {\n if (!import_) {\n throw new ConfigError(\n \"Internal error: Native ECMAScript modules aren't supported by this platform.\\n\",\n filepath,\n );\n }\n\n // import() expects URLs, not file paths.\n // https://github.com/nodejs/node/issues/31710\n const module = await endHiddenCallStack(import_)(pathToFileURL(filepath));\n return module.default;\n}\n\nfunction getTSPreset(filepath: string) {\n try {\n // eslint-disable-next-line import/no-extraneous-dependencies\n return require(\"@babel/preset-typescript\");\n } catch (error) {\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n let message =\n \"You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!\";\n\n if (!process.env.BABEL_8_BREAKING) {\n if (process.versions.pnp) {\n // Using Yarn PnP, which doesn't allow requiring packages that are not\n // explicitly specified as dependencies.\n message += `\nIf you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file:\n\npackageExtensions:\n\\t\"@babel/core@*\":\n\\t\\tpeerDependencies:\n\\t\\t\\t\"@babel/preset-typescript\": \"*\"\n`;\n }\n }\n\n throw new ConfigError(message, filepath);\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_async","require","_path","data","_url","_semver","_debug","_rewriteStackTrace","_configError","_transformFile","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","debug","buildDebug","import_","_unused","supportsESM","exports","semver","satisfies","process","versions","node","loadCodeDefault","filepath","asyncError","path","extname","loadCjsDefault","loadCtsDefault","e","code","isAsync","waitFor","loadMjsDefault","ConfigError","ext","hasTsSupport","extensions","handler","opts","babelrc","configFile","sourceType","sourceMaps","sourceFileName","basename","presets","getTSPreset","Object","assign","onlyRemoveTypeImports","optimizeConstEnums","allowDeclareFields","m","filename","endsWith","_compile","transformFileSync","packageJson","lt","version","console","LOADING_CJS_FILES","Set","has","module","add","endHiddenCallStack","delete","_module","__esModule","default","_x","_loadMjsDefault","pathToFileURL","message","pnp"],"sources":["../../../src/config/files/module-types.ts"],"sourcesContent":["import { isAsync, waitFor } from \"../../gensync-utils/async.ts\";\nimport type { Handler } from \"gensync\";\nimport path from \"path\";\nimport { pathToFileURL } from \"url\";\nimport { createRequire } from \"module\";\nimport semver from \"semver\";\nimport buildDebug from \"debug\";\n\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport type { InputOptions } from \"../index.ts\";\nimport { transformFileSync } from \"../../transform-file.ts\";\n\nconst debug = buildDebug(\"babel:config:loading:files:module-types\");\n\nconst require = createRequire(import.meta.url);\n\nlet import_: ((specifier: string | URL) => any) | undefined;\ntry {\n // Old Node.js versions don't support import() syntax.\n import_ = require(\"./import.cjs\");\n} catch {}\n\nexport const supportsESM = semver.satisfies(\n process.versions.node,\n // older versions, starting from 10, support the dynamic\n // import syntax but always return a rejected promise.\n \"^12.17 || >=13.2\",\n);\n\nexport default function* loadCodeDefault(\n filepath: string,\n asyncError: string,\n): Handler<unknown> {\n switch (path.extname(filepath)) {\n case \".cjs\":\n if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n case \".mjs\":\n break;\n case \".cts\":\n return loadCtsDefault(filepath);\n default:\n try {\n if (process.env.BABEL_8_BREAKING) {\n return loadCjsDefault(filepath);\n } else {\n return loadCjsDefault(\n filepath,\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n /* fallbackToTranspiledModule */ arguments[2],\n );\n }\n } catch (e) {\n if (e.code !== \"ERR_REQUIRE_ESM\") throw e;\n }\n }\n if (yield* isAsync()) {\n return yield* waitFor(loadMjsDefault(filepath));\n }\n throw new ConfigError(asyncError, filepath);\n}\n\nfunction loadCtsDefault(filepath: string) {\n const ext = \".cts\";\n const hasTsSupport = !!(\n require.extensions[\".ts\"] ||\n require.extensions[\".cts\"] ||\n require.extensions[\".mts\"]\n );\n\n let handler: NodeJS.RequireExtensions[\"\"];\n\n if (!hasTsSupport) {\n const opts: InputOptions = {\n babelrc: false,\n configFile: false,\n sourceType: \"unambiguous\",\n sourceMaps: \"inline\",\n sourceFileName: path.basename(filepath),\n presets: [\n [\n getTSPreset(filepath),\n {\n onlyRemoveTypeImports: true,\n optimizeConstEnums: true,\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : { allowDeclareFields: true }),\n },\n ],\n ],\n };\n\n handler = function (m, filename) {\n // If we want to support `.ts`, `.d.ts` must be handled specially.\n if (handler && filename.endsWith(ext)) {\n try {\n // @ts-expect-error Undocumented API\n return m._compile(\n transformFileSync(filename, {\n ...opts,\n filename,\n }).code,\n filename,\n );\n } catch (error) {\n if (!hasTsSupport) {\n const packageJson = require(\"@babel/preset-typescript/package.json\");\n if (semver.lt(packageJson.version, \"7.21.4\")) {\n console.error(\n \"`.cts` configuration file failed to load, please try to update `@babel/preset-typescript`.\",\n );\n }\n }\n throw error;\n }\n }\n return require.extensions[\".js\"](m, filename);\n };\n require.extensions[ext] = handler;\n }\n try {\n return loadCjsDefault(filepath);\n } finally {\n if (!hasTsSupport) {\n if (require.extensions[ext] === handler) delete require.extensions[ext];\n handler = undefined;\n }\n }\n}\n\nconst LOADING_CJS_FILES = new Set();\n\nfunction loadCjsDefault(filepath: string) {\n // The `require()` call below can make this code reentrant if a require hook\n // like @babel/register has been loaded into the system. That would cause\n // Babel to attempt to compile the `.babelrc.js` file as it loads below. To\n // cover this case, we auto-ignore re-entrant config processing. ESM loaders\n // do not have this problem, because loaders do not apply to themselves.\n if (LOADING_CJS_FILES.has(filepath)) {\n debug(\"Auto-ignoring usage of config %o.\", filepath);\n return {};\n }\n\n let module;\n try {\n LOADING_CJS_FILES.add(filepath);\n module = endHiddenCallStack(require)(filepath);\n } finally {\n LOADING_CJS_FILES.delete(filepath);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return module?.__esModule ? module.default : module;\n } else {\n return module?.__esModule\n ? module.default ||\n /* fallbackToTranspiledModule */ (arguments[1] ? module : undefined)\n : module;\n }\n}\n\nasync function loadMjsDefault(filepath: string) {\n if (!import_) {\n throw new ConfigError(\n \"Internal error: Native ECMAScript modules aren't supported by this platform.\\n\",\n filepath,\n );\n }\n\n // import() expects URLs, not file paths.\n // https://github.com/nodejs/node/issues/31710\n const module = await endHiddenCallStack(import_)(pathToFileURL(filepath));\n return module.default;\n}\n\nfunction getTSPreset(filepath: string) {\n try {\n // eslint-disable-next-line import/no-extraneous-dependencies\n return require(\"@babel/preset-typescript\");\n } catch (error) {\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n let message =\n \"You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!\";\n\n if (!process.env.BABEL_8_BREAKING) {\n if (process.versions.pnp) {\n // Using Yarn PnP, which doesn't allow requiring packages that are not\n // explicitly specified as dependencies.\n message += `\nIf you are using Yarn Plug'n'Play, you may also need to add the following configuration to your .yarnrc.yml file:\n\npackageExtensions:\n\\t\"@babel/core@*\":\n\\t\\tpeerDependencies:\n\\t\\t\\t\"@babel/preset-typescript\": \"*\"\n`;\n }\n }\n\n throw new ConfigError(message, filepath);\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/plugins.js b/node_modules/@babel/core/lib/config/files/plugins.js index 6fbe8db1..25435ae4 100644 --- a/node_modules/@babel/core/lib/config/files/plugins.js +++ b/node_modules/@babel/core/lib/config/files/plugins.js @@ -30,6 +30,13 @@ function _url() { return data; } var _importMetaResolve = require("../../vendor/import-meta-resolve.js"); +function _fs() { + const data = require("fs"); + _fs = function () { + return data; + }; + return data; +} const debug = _debug()("babel:config:loading:files:plugins"); const EXACT_RE = /^module:/; const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/; @@ -39,10 +46,8 @@ const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/; const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/; const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/; const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/; -const resolvePlugin = resolveStandardizedName.bind(null, "plugin"); -exports.resolvePlugin = resolvePlugin; -const resolvePreset = resolveStandardizedName.bind(null, "preset"); -exports.resolvePreset = resolvePreset; +const resolvePlugin = exports.resolvePlugin = resolveStandardizedName.bind(null, "plugin"); +const resolvePreset = exports.resolvePreset = resolveStandardizedName.bind(null, "preset"); function* loadPlugin(name, dirname) { const filepath = resolvePlugin(name, dirname, yield* (0, _async.isAsync)()); const value = yield* requireModule("plugin", filepath); @@ -165,7 +170,13 @@ function resolveStandardizedName(type, name, dirname, resolveESM) { return resolveStandardizedNameForRequire(type, name, dirname); } try { - return resolveStandardizedNameForImport(type, name, dirname); + const resolved = resolveStandardizedNameForImport(type, name, dirname); + if (!(0, _fs().existsSync)(resolved)) { + throw Object.assign(new Error(`Could not resolve "${name}" in file ${dirname}.`), { + type: "MODULE_NOT_FOUND" + }); + } + return resolved; } catch (e) { try { return resolveStandardizedNameForRequire(type, name, dirname); diff --git a/node_modules/@babel/core/lib/config/files/plugins.js.map b/node_modules/@babel/core/lib/config/files/plugins.js.map index 2c33c996..3dcef9f4 100644 --- a/node_modules/@babel/core/lib/config/files/plugins.js.map +++ b/node_modules/@babel/core/lib/config/files/plugins.js.map @@ -1 +1 @@ -{"version":3,"names":["_debug","data","require","_path","_async","_moduleTypes","_url","_importMetaResolve","debug","buildDebug","EXACT_RE","BABEL_PLUGIN_PREFIX_RE","BABEL_PRESET_PREFIX_RE","BABEL_PLUGIN_ORG_RE","BABEL_PRESET_ORG_RE","OTHER_PLUGIN_ORG_RE","OTHER_PRESET_ORG_RE","OTHER_ORG_DEFAULT_RE","resolvePlugin","resolveStandardizedName","bind","exports","resolvePreset","loadPlugin","name","dirname","filepath","isAsync","value","requireModule","loadPreset","standardizeName","type","path","isAbsolute","isPreset","replace","resolveAlternativesHelper","standardizedName","error","code","message","oppositeType","transformName","tryRequireResolve","id","v","w","split","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","tryImportMetaResolve","options","importMetaResolve","resolveStandardizedNameForRequire","it","res","next","done","resolveStandardizedNameForImport","parentUrl","pathToFileURL","join","href","fileURLToPath","resolveESM","supportsESM","e","e2","LOADING_MODULES","Set","has","add","loadCodeDefault","err","delete"],"sources":["../../../src/config/files/plugins.ts"],"sourcesContent":["/**\n * This file handles all logic for converting string-based configuration references into loaded objects.\n */\n\nimport buildDebug from \"debug\";\nimport path from \"path\";\nimport type { Handler } from \"gensync\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nimport loadCodeDefault, { supportsESM } from \"./module-types.ts\";\nimport { fileURLToPath, pathToFileURL } from \"url\";\n\nimport { resolve as importMetaResolve } from \"../../vendor/import-meta-resolve.js\";\n\nimport { createRequire } from \"module\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:plugins\");\n\nconst EXACT_RE = /^module:/;\nconst BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-plugin-)/;\nconst BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-preset-)/;\nconst BABEL_PLUGIN_ORG_RE = /^(@babel\\/)(?!plugin-|[^/]+\\/)/;\nconst BABEL_PRESET_ORG_RE = /^(@babel\\/)(?!preset-|[^/]+\\/)/;\nconst OTHER_PLUGIN_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-plugin(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_PRESET_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-preset(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;\n\nexport const resolvePlugin = resolveStandardizedName.bind(null, \"plugin\");\nexport const resolvePreset = resolveStandardizedName.bind(null, \"preset\");\n\nexport function* loadPlugin(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const filepath = resolvePlugin(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"plugin\", filepath);\n debug(\"Loaded plugin %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nexport function* loadPreset(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const filepath = resolvePreset(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"preset\", filepath);\n\n debug(\"Loaded preset %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nfunction standardizeName(type: \"plugin\" | \"preset\", name: string) {\n // Let absolute and relative paths through.\n if (path.isAbsolute(name)) return name;\n\n const isPreset = type === \"preset\";\n\n return (\n name\n // foo -> babel-preset-foo\n .replace(\n isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE,\n `babel-${type}-`,\n )\n // @babel/es2015 -> @babel/preset-es2015\n .replace(\n isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE,\n `$1${type}-`,\n )\n // @foo/mypreset -> @foo/babel-preset-mypreset\n .replace(\n isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE,\n `$1babel-${type}-`,\n )\n // @foo -> @foo/babel-preset\n .replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`)\n // module:mypreset -> mypreset\n .replace(EXACT_RE, \"\")\n );\n}\n\ntype Result<T> = { error: Error; value: null } | { error: null; value: T };\n\nfunction* resolveAlternativesHelper(\n type: \"plugin\" | \"preset\",\n name: string,\n): Iterator<string, string, Result<string>> {\n const standardizedName = standardizeName(type, name);\n const { error, value } = yield standardizedName;\n if (!error) return value;\n\n // @ts-expect-error code may not index error\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n if (standardizedName !== name && !(yield name).error) {\n error.message += `\\n- If you want to resolve \"${name}\", use \"module:${name}\"`;\n }\n\n if (!(yield standardizeName(type, \"@babel/\" + name)).error) {\n error.message += `\\n- Did you mean \"@babel/${name}\"?`;\n }\n\n const oppositeType = type === \"preset\" ? \"plugin\" : \"preset\";\n if (!(yield standardizeName(oppositeType, name)).error) {\n error.message += `\\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;\n }\n\n if (type === \"plugin\") {\n const transformName = standardizedName.replace(\"-proposal-\", \"-transform-\");\n if (transformName !== standardizedName && !(yield transformName).error) {\n error.message += `\\n- Did you mean \"${transformName}\"?`;\n }\n }\n\n error.message += `\\n\nMake sure that all the Babel plugins and presets you are using\nare defined as dependencies or devDependencies in your package.json\nfile. It's possible that the missing plugin is loaded by a preset\nyou are using that forgot to add the plugin to its dependencies: you\ncan workaround this problem by explicitly adding the missing package\nto your top-level package.json.\n`;\n\n throw error;\n}\n\nfunction tryRequireResolve(\n id: string,\n dirname: string | undefined,\n): Result<string> {\n try {\n if (dirname) {\n return { error: null, value: require.resolve(id, { paths: [dirname] }) };\n } else {\n return { error: null, value: require.resolve(id) };\n }\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction tryImportMetaResolve(\n id: Parameters<typeof importMetaResolve>[0],\n options: Parameters<typeof importMetaResolve>[1],\n): Result<string> {\n try {\n return { error: null, value: importMetaResolve(id, options) };\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction resolveStandardizedNameForRequire(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryRequireResolve(res.value, dirname));\n }\n return res.value;\n}\nfunction resolveStandardizedNameForImport(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const parentUrl = pathToFileURL(\n path.join(dirname, \"./babel-virtual-resolve-base.js\"),\n ).href;\n\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryImportMetaResolve(res.value, parentUrl));\n }\n return fileURLToPath(res.value);\n}\n\nfunction resolveStandardizedName(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n resolveESM: boolean,\n) {\n if (!supportsESM || !resolveESM) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n }\n\n try {\n return resolveStandardizedNameForImport(type, name, dirname);\n } catch (e) {\n try {\n return resolveStandardizedNameForRequire(type, name, dirname);\n } catch (e2) {\n if (e.type === \"MODULE_NOT_FOUND\") throw e;\n if (e2.type === \"MODULE_NOT_FOUND\") throw e2;\n throw e;\n }\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var LOADING_MODULES = new Set();\n}\nfunction* requireModule(type: string, name: string): Handler<unknown> {\n if (!process.env.BABEL_8_BREAKING) {\n if (!(yield* isAsync()) && LOADING_MODULES.has(name)) {\n throw new Error(\n `Reentrant ${type} detected trying to load \"${name}\". This module is not ignored ` +\n \"and is trying to load itself while compiling itself, leading to a dependency cycle. \" +\n 'We recommend adding it to your \"ignore\" list in your babelrc, or to a .babelignore.',\n );\n }\n }\n\n try {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.add(name);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return yield* loadCodeDefault(\n name,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously.\",\n );\n } else {\n return yield* loadCodeDefault(\n name,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously.\",\n // For backward compatibility, we need to support malformed presets\n // defined as separate named exports rather than a single default\n // export.\n // See packages/babel-core/test/fixtures/option-manager/presets/es2015_named.js\n // @ts-ignore(Babel 7 vs Babel 8) This param has been removed\n true,\n );\n }\n } catch (err) {\n err.message = `[BABEL]: ${err.message} (While processing: ${name})`;\n throw err;\n } finally {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.delete(name);\n }\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_debug","data","require","_path","_async","_moduleTypes","_url","_importMetaResolve","_fs","debug","buildDebug","EXACT_RE","BABEL_PLUGIN_PREFIX_RE","BABEL_PRESET_PREFIX_RE","BABEL_PLUGIN_ORG_RE","BABEL_PRESET_ORG_RE","OTHER_PLUGIN_ORG_RE","OTHER_PRESET_ORG_RE","OTHER_ORG_DEFAULT_RE","resolvePlugin","exports","resolveStandardizedName","bind","resolvePreset","loadPlugin","name","dirname","filepath","isAsync","value","requireModule","loadPreset","standardizeName","type","path","isAbsolute","isPreset","replace","resolveAlternativesHelper","standardizedName","error","code","message","oppositeType","transformName","tryRequireResolve","id","v","w","split","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","tryImportMetaResolve","options","importMetaResolve","resolveStandardizedNameForRequire","it","res","next","done","resolveStandardizedNameForImport","parentUrl","pathToFileURL","join","href","fileURLToPath","resolveESM","supportsESM","resolved","existsSync","Object","assign","e","e2","LOADING_MODULES","Set","has","add","loadCodeDefault","err","delete"],"sources":["../../../src/config/files/plugins.ts"],"sourcesContent":["/**\n * This file handles all logic for converting string-based configuration references into loaded objects.\n */\n\nimport buildDebug from \"debug\";\nimport path from \"path\";\nimport type { Handler } from \"gensync\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nimport loadCodeDefault, { supportsESM } from \"./module-types.ts\";\nimport { fileURLToPath, pathToFileURL } from \"url\";\n\nimport { resolve as importMetaResolve } from \"../../vendor/import-meta-resolve.js\";\n\nimport { createRequire } from \"module\";\nimport { existsSync } from \"fs\";\nconst require = createRequire(import.meta.url);\n\nconst debug = buildDebug(\"babel:config:loading:files:plugins\");\n\nconst EXACT_RE = /^module:/;\nconst BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-plugin-)/;\nconst BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-preset-)/;\nconst BABEL_PLUGIN_ORG_RE = /^(@babel\\/)(?!plugin-|[^/]+\\/)/;\nconst BABEL_PRESET_ORG_RE = /^(@babel\\/)(?!preset-|[^/]+\\/)/;\nconst OTHER_PLUGIN_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-plugin(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_PRESET_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-preset(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;\n\nexport const resolvePlugin = resolveStandardizedName.bind(null, \"plugin\");\nexport const resolvePreset = resolveStandardizedName.bind(null, \"preset\");\n\nexport function* loadPlugin(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const filepath = resolvePlugin(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"plugin\", filepath);\n debug(\"Loaded plugin %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nexport function* loadPreset(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const filepath = resolvePreset(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"preset\", filepath);\n\n debug(\"Loaded preset %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nfunction standardizeName(type: \"plugin\" | \"preset\", name: string) {\n // Let absolute and relative paths through.\n if (path.isAbsolute(name)) return name;\n\n const isPreset = type === \"preset\";\n\n return (\n name\n // foo -> babel-preset-foo\n .replace(\n isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE,\n `babel-${type}-`,\n )\n // @babel/es2015 -> @babel/preset-es2015\n .replace(\n isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE,\n `$1${type}-`,\n )\n // @foo/mypreset -> @foo/babel-preset-mypreset\n .replace(\n isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE,\n `$1babel-${type}-`,\n )\n // @foo -> @foo/babel-preset\n .replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`)\n // module:mypreset -> mypreset\n .replace(EXACT_RE, \"\")\n );\n}\n\ntype Result<T> = { error: Error; value: null } | { error: null; value: T };\n\nfunction* resolveAlternativesHelper(\n type: \"plugin\" | \"preset\",\n name: string,\n): Iterator<string, string, Result<string>> {\n const standardizedName = standardizeName(type, name);\n const { error, value } = yield standardizedName;\n if (!error) return value;\n\n // @ts-expect-error code may not index error\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n if (standardizedName !== name && !(yield name).error) {\n error.message += `\\n- If you want to resolve \"${name}\", use \"module:${name}\"`;\n }\n\n if (!(yield standardizeName(type, \"@babel/\" + name)).error) {\n error.message += `\\n- Did you mean \"@babel/${name}\"?`;\n }\n\n const oppositeType = type === \"preset\" ? \"plugin\" : \"preset\";\n if (!(yield standardizeName(oppositeType, name)).error) {\n error.message += `\\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;\n }\n\n if (type === \"plugin\") {\n const transformName = standardizedName.replace(\"-proposal-\", \"-transform-\");\n if (transformName !== standardizedName && !(yield transformName).error) {\n error.message += `\\n- Did you mean \"${transformName}\"?`;\n }\n }\n\n error.message += `\\n\nMake sure that all the Babel plugins and presets you are using\nare defined as dependencies or devDependencies in your package.json\nfile. It's possible that the missing plugin is loaded by a preset\nyou are using that forgot to add the plugin to its dependencies: you\ncan workaround this problem by explicitly adding the missing package\nto your top-level package.json.\n`;\n\n throw error;\n}\n\nfunction tryRequireResolve(\n id: string,\n dirname: string | undefined,\n): Result<string> {\n try {\n if (dirname) {\n return { error: null, value: require.resolve(id, { paths: [dirname] }) };\n } else {\n return { error: null, value: require.resolve(id) };\n }\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction tryImportMetaResolve(\n id: Parameters<typeof importMetaResolve>[0],\n options: Parameters<typeof importMetaResolve>[1],\n): Result<string> {\n try {\n return { error: null, value: importMetaResolve(id, options) };\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction resolveStandardizedNameForRequire(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryRequireResolve(res.value, dirname));\n }\n return res.value;\n}\nfunction resolveStandardizedNameForImport(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const parentUrl = pathToFileURL(\n path.join(dirname, \"./babel-virtual-resolve-base.js\"),\n ).href;\n\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryImportMetaResolve(res.value, parentUrl));\n }\n return fileURLToPath(res.value);\n}\n\nfunction resolveStandardizedName(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n resolveESM: boolean,\n) {\n if (!supportsESM || !resolveESM) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n }\n\n try {\n const resolved = resolveStandardizedNameForImport(type, name, dirname);\n // import-meta-resolve 4.0 does not throw if the module is not found.\n if (!existsSync(resolved)) {\n throw Object.assign(\n new Error(`Could not resolve \"${name}\" in file ${dirname}.`),\n { type: \"MODULE_NOT_FOUND\" },\n );\n }\n return resolved;\n } catch (e) {\n try {\n return resolveStandardizedNameForRequire(type, name, dirname);\n } catch (e2) {\n if (e.type === \"MODULE_NOT_FOUND\") throw e;\n if (e2.type === \"MODULE_NOT_FOUND\") throw e2;\n throw e;\n }\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var LOADING_MODULES = new Set();\n}\nfunction* requireModule(type: string, name: string): Handler<unknown> {\n if (!process.env.BABEL_8_BREAKING) {\n if (!(yield* isAsync()) && LOADING_MODULES.has(name)) {\n throw new Error(\n `Reentrant ${type} detected trying to load \"${name}\". This module is not ignored ` +\n \"and is trying to load itself while compiling itself, leading to a dependency cycle. \" +\n 'We recommend adding it to your \"ignore\" list in your babelrc, or to a .babelignore.',\n );\n }\n }\n\n try {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.add(name);\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return yield* loadCodeDefault(\n name,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously.\",\n );\n } else {\n return yield* loadCodeDefault(\n name,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously.\",\n // For backward compatibility, we need to support malformed presets\n // defined as separate named exports rather than a single default\n // export.\n // See packages/babel-core/test/fixtures/option-manager/presets/es2015_named.js\n // @ts-ignore(Babel 7 vs Babel 8) This param has been removed\n true,\n );\n }\n } catch (err) {\n err.message = `[BABEL]: ${err.message} (While processing: ${name})`;\n throw err;\n } finally {\n if (!process.env.BABEL_8_BREAKING) {\n LOADING_MODULES.delete(name);\n }\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/full.js b/node_modules/@babel/core/lib/config/full.js index 3c1e6f78..6b8c2959 100644 --- a/node_modules/@babel/core/lib/config/full.js +++ b/node_modules/@babel/core/lib/config/full.js @@ -31,7 +31,7 @@ var _plugins = require("./validation/plugins.js"); var _configApi = require("./helpers/config-api.js"); var _partial = require("./partial.js"); var _configError = require("../errors/config-error.js"); -var _default = _gensync()(function* loadFullConfig(inputOpts) { +var _default = exports.default = _gensync()(function* loadFullConfig(inputOpts) { var _opts$assumptions; const result = yield* (0, _partial.default)(inputOpts); if (!result) { @@ -150,7 +150,6 @@ var _default = _gensync()(function* loadFullConfig(inputOpts) { externalDependencies: (0, _deepArray.finalize)(externalDependencies) }; }); -exports.default = _default; function enhanceError(context, fn) { return function* (arg1, arg2) { try { @@ -273,7 +272,7 @@ const validatePreset = (preset, context, descriptor) => { options } = preset; validateIfOptionNeedsFilename(options, descriptor); - (_options$overrides = options.overrides) == null ? void 0 : _options$overrides.forEach(overrideOptions => validateIfOptionNeedsFilename(overrideOptions, descriptor)); + (_options$overrides = options.overrides) == null || _options$overrides.forEach(overrideOptions => validateIfOptionNeedsFilename(overrideOptions, descriptor)); } }; const instantiatePreset = (0, _caching.makeWeakCacheSync)(({ diff --git a/node_modules/@babel/core/lib/config/full.js.map b/node_modules/@babel/core/lib/config/full.js.map index fd2a7a6e..b4458b90 100644 --- a/node_modules/@babel/core/lib/config/full.js.map +++ b/node_modules/@babel/core/lib/config/full.js.map @@ -1 +1 @@ -{"version":3,"names":["_gensync","data","require","_async","_util","context","_plugin","_item","_configChain","_deepArray","_traverse","_caching","_options","_plugins","_configApi","_partial","_configError","_default","gensync","loadFullConfig","inputOpts","_opts$assumptions","result","loadPrivatePartialConfig","options","fileHandling","optionDefaults","plugins","presets","Error","presetContext","Object","assign","targets","toDescriptor","item","desc","getItemDescriptor","presetsDescriptors","map","initialPluginsDescriptors","pluginDescriptorsByPass","passes","externalDependencies","ignored","enhanceError","recursePresetDescriptors","rawPresets","pluginDescriptorsPass","i","length","descriptor","preset","loadPresetDescriptor","e","code","checkNoUnwrappedItemOptionPairs","push","ownPass","chain","pass","unshift","splice","o","filter","p","forEach","opts","mergeOptions","pluginContext","assumptions","loadPluginDescriptors","descs","plugin","loadPluginDescriptor","slice","passPerPreset","freezeDeepArray","exports","default","fn","arg1","arg2","test","message","_context$filename","filename","makeDescriptorLoader","apiFactory","makeWeakCache","value","dirname","alias","cache","factory","maybeAsync","api","JSON","stringify","isThenable","configured","mode","error","pluginDescriptorLoader","makePluginAPI","presetDescriptorLoader","makePresetAPI","instantiatePlugin","pluginObj","validatePluginObject","visitor","traverse","explode","inherits","inheritsDescriptor","name","undefined","forwardAsync","run","invalidate","pre","post","manipulateOptions","visitors","merge","Plugin","needsFilename","val","validateIfOptionNeedsFilename","include","exclude","formattedPresetName","ConfigError","join","validatePreset","_options$overrides","overrides","overrideOptions","instantiatePreset","makeWeakCacheSync","validate","buildPresetChain","a","b","fns","Boolean","args","apply"],"sources":["../../src/config/full.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\nimport {\n forwardAsync,\n maybeAsync,\n isThenable,\n} from \"../gensync-utils/async.ts\";\n\nimport { mergeOptions } from \"./util.ts\";\nimport * as context from \"../index.ts\";\nimport Plugin from \"./plugin.ts\";\nimport { getItemDescriptor } from \"./item.ts\";\nimport { buildPresetChain } from \"./config-chain.ts\";\nimport { finalize as freezeDeepArray } from \"./helpers/deep-array.ts\";\nimport type { DeepArray, ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type {\n ConfigContext,\n ConfigChain,\n PresetInstance,\n} from \"./config-chain.ts\";\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\nimport traverse from \"@babel/traverse\";\nimport { makeWeakCache, makeWeakCacheSync } from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\nimport {\n validate,\n checkNoUnwrappedItemOptionPairs,\n} from \"./validation/options.ts\";\nimport type { PluginItem } from \"./validation/options.ts\";\nimport { validatePluginObject } from \"./validation/plugins.ts\";\nimport { makePluginAPI, makePresetAPI } from \"./helpers/config-api.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nimport loadPrivatePartialConfig from \"./partial.ts\";\nimport type { ValidatedOptions } from \"./validation/options.ts\";\n\nimport type * as Context from \"./cache-contexts.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\n\ntype LoadedDescriptor = {\n value: {};\n options: {};\n dirname: string;\n alias: string;\n externalDependencies: ReadonlyDeepArray<string>;\n};\n\nexport type { InputOptions } from \"./validation/options.ts\";\n\nexport type ResolvedConfig = {\n options: any;\n passes: PluginPasses;\n externalDependencies: ReadonlyDeepArray<string>;\n};\n\nexport type { Plugin };\nexport type PluginPassList = Array<Plugin>;\nexport type PluginPasses = Array<PluginPassList>;\n\nexport default gensync(function* loadFullConfig(\n inputOpts: unknown,\n): Handler<ResolvedConfig | null> {\n const result = yield* loadPrivatePartialConfig(inputOpts);\n if (!result) {\n return null;\n }\n const { options, context, fileHandling } = result;\n\n if (fileHandling === \"ignored\") {\n return null;\n }\n\n const optionDefaults = {};\n\n const { plugins, presets } = options;\n\n if (!plugins || !presets) {\n throw new Error(\"Assertion failure - plugins and presets exist\");\n }\n\n const presetContext: Context.FullPreset = {\n ...context,\n targets: options.targets,\n };\n\n const toDescriptor = (item: PluginItem) => {\n const desc = getItemDescriptor(item);\n if (!desc) {\n throw new Error(\"Assertion failure - must be config item\");\n }\n\n return desc;\n };\n\n const presetsDescriptors = presets.map(toDescriptor);\n const initialPluginsDescriptors = plugins.map(toDescriptor);\n const pluginDescriptorsByPass: Array<Array<UnloadedDescriptor<PluginAPI>>> = [\n [],\n ];\n const passes: Array<Array<Plugin>> = [];\n\n const externalDependencies: DeepArray<string> = [];\n\n const ignored = yield* enhanceError(\n context,\n function* recursePresetDescriptors(\n rawPresets: Array<UnloadedDescriptor<PresetAPI>>,\n pluginDescriptorsPass: Array<UnloadedDescriptor<PluginAPI>>,\n ): Handler<true | void> {\n const presets: Array<{\n preset: ConfigChain | null;\n pass: Array<UnloadedDescriptor<PluginAPI>>;\n }> = [];\n\n for (let i = 0; i < rawPresets.length; i++) {\n const descriptor = rawPresets[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var preset = yield* loadPresetDescriptor(descriptor, presetContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_OPTION\") {\n checkNoUnwrappedItemOptionPairs(rawPresets, i, \"preset\", e);\n }\n throw e;\n }\n\n externalDependencies.push(preset.externalDependencies);\n\n // Presets normally run in reverse order, but if they\n // have their own pass they run after the presets\n // in the previous pass.\n if (descriptor.ownPass) {\n presets.push({ preset: preset.chain, pass: [] });\n } else {\n presets.unshift({\n preset: preset.chain,\n pass: pluginDescriptorsPass,\n });\n }\n }\n }\n\n // resolve presets\n if (presets.length > 0) {\n // The passes are created in the same order as the preset list, but are inserted before any\n // existing additional passes.\n pluginDescriptorsByPass.splice(\n 1,\n 0,\n ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass),\n );\n\n for (const { preset, pass } of presets) {\n if (!preset) return true;\n\n pass.push(...preset.plugins);\n\n const ignored = yield* recursePresetDescriptors(preset.presets, pass);\n if (ignored) return true;\n\n preset.options.forEach(opts => {\n mergeOptions(optionDefaults, opts);\n });\n }\n }\n },\n )(presetsDescriptors, pluginDescriptorsByPass[0]);\n\n if (ignored) return null;\n\n const opts: any = optionDefaults;\n mergeOptions(opts, options);\n\n const pluginContext: Context.FullPlugin = {\n ...presetContext,\n assumptions: opts.assumptions ?? {},\n };\n\n yield* enhanceError(context, function* loadPluginDescriptors() {\n pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors);\n\n for (const descs of pluginDescriptorsByPass) {\n const pass: Plugin[] = [];\n passes.push(pass);\n\n for (let i = 0; i < descs.length; i++) {\n const descriptor = descs[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var plugin = yield* loadPluginDescriptor(descriptor, pluginContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_PLUGIN_PROPERTY\") {\n // print special message for `plugins: [\"@babel/foo\", { foo: \"option\" }]`\n checkNoUnwrappedItemOptionPairs(descs, i, \"plugin\", e);\n }\n throw e;\n }\n pass.push(plugin);\n\n externalDependencies.push(plugin.externalDependencies);\n }\n }\n }\n })();\n\n opts.plugins = passes[0];\n opts.presets = passes\n .slice(1)\n .filter(plugins => plugins.length > 0)\n .map(plugins => ({ plugins }));\n opts.passPerPreset = opts.presets.length > 0;\n\n return {\n options: opts,\n passes: passes,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n});\n\nfunction enhanceError<T extends Function>(context: ConfigContext, fn: T): T {\n return function* (arg1: unknown, arg2: unknown) {\n try {\n return yield* fn(arg1, arg2);\n } catch (e) {\n // There are a few case where thrown errors will try to annotate themselves multiple times, so\n // to keep things simple we just bail out if re-wrapping the message.\n if (!/^\\[BABEL\\]/.test(e.message)) {\n e.message = `[BABEL] ${context.filename ?? \"unknown file\"}: ${\n e.message\n }`;\n }\n\n throw e;\n }\n } as any;\n}\n\n/**\n * Load a generic plugin/preset from the given descriptor loaded from the config object.\n */\nconst makeDescriptorLoader = <Context, API>(\n apiFactory: (\n cache: CacheConfigurator<Context>,\n externalDependencies: Array<string>,\n ) => API,\n) =>\n makeWeakCache(function* (\n { value, options, dirname, alias }: UnloadedDescriptor<API>,\n cache: CacheConfigurator<Context>,\n ): Handler<LoadedDescriptor> {\n // Disabled presets should already have been filtered out\n if (options === false) throw new Error(\"Assertion failure\");\n\n options = options || {};\n\n const externalDependencies: Array<string> = [];\n\n let item: unknown = value;\n if (typeof value === \"function\") {\n const factory = maybeAsync(\n value as (api: API, options: {}, dirname: string) => unknown,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n const api = {\n ...context,\n ...apiFactory(cache, externalDependencies),\n };\n try {\n item = yield* factory(api, options, dirname);\n } catch (e) {\n if (alias) {\n e.message += ` (While processing: ${JSON.stringify(alias)})`;\n }\n throw e;\n }\n }\n\n if (!item || typeof item !== \"object\") {\n throw new Error(\"Plugin/Preset did not return an object.\");\n }\n\n if (isThenable(item)) {\n // @ts-expect-error - if we want to support async plugins\n yield* [];\n\n throw new Error(\n `You appear to be using a promise as a plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version. ` +\n `As an alternative, you can prefix the promise with \"await\". ` +\n `(While processing: ${JSON.stringify(alias)})`,\n );\n }\n\n if (\n externalDependencies.length > 0 &&\n (!cache.configured() || cache.mode() === \"forever\")\n ) {\n let error =\n `A plugin/preset has external untracked dependencies ` +\n `(${externalDependencies[0]}), but the cache `;\n if (!cache.configured()) {\n error += `has not been configured to be invalidated when the external dependencies change. `;\n } else {\n error += ` has been configured to never be invalidated. `;\n }\n error +=\n `Plugins/presets should configure their cache to be invalidated when the external ` +\n `dependencies change, for example using \\`api.cache.invalidate(() => ` +\n `statSync(filepath).mtimeMs)\\` or \\`api.cache.never()\\`\\n` +\n `(While processing: ${JSON.stringify(alias)})`;\n\n throw new Error(error);\n }\n\n return {\n value: item,\n options,\n dirname,\n alias,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n });\n\nconst pluginDescriptorLoader = makeDescriptorLoader<\n Context.SimplePlugin,\n PluginAPI\n>(makePluginAPI);\nconst presetDescriptorLoader = makeDescriptorLoader<\n Context.SimplePreset,\n PresetAPI\n>(makePresetAPI);\n\nconst instantiatePlugin = makeWeakCache(function* (\n { value, options, dirname, alias, externalDependencies }: LoadedDescriptor,\n cache: CacheConfigurator<Context.SimplePlugin>,\n): Handler<Plugin> {\n const pluginObj = validatePluginObject(value);\n\n const plugin = {\n ...pluginObj,\n };\n if (plugin.visitor) {\n plugin.visitor = traverse.explode({\n ...plugin.visitor,\n });\n }\n\n if (plugin.inherits) {\n const inheritsDescriptor: UnloadedDescriptor<PluginAPI> = {\n name: undefined,\n alias: `${alias}$inherits`,\n value: plugin.inherits,\n options,\n dirname,\n };\n\n const inherits = yield* forwardAsync(loadPluginDescriptor, run => {\n // If the inherited plugin changes, reinstantiate this plugin.\n return cache.invalidate(data => run(inheritsDescriptor, data));\n });\n\n plugin.pre = chain(inherits.pre, plugin.pre);\n plugin.post = chain(inherits.post, plugin.post);\n plugin.manipulateOptions = chain(\n inherits.manipulateOptions,\n plugin.manipulateOptions,\n );\n plugin.visitor = traverse.visitors.merge([\n inherits.visitor || {},\n plugin.visitor || {},\n ]);\n\n if (inherits.externalDependencies.length > 0) {\n if (externalDependencies.length === 0) {\n externalDependencies = inherits.externalDependencies;\n } else {\n externalDependencies = freezeDeepArray([\n externalDependencies,\n inherits.externalDependencies,\n ]);\n }\n }\n }\n\n return new Plugin(plugin, options, alias, externalDependencies);\n});\n\n/**\n * Instantiate a plugin for the given descriptor, returning the plugin/options pair.\n */\nfunction* loadPluginDescriptor(\n descriptor: UnloadedDescriptor<PluginAPI>,\n context: Context.SimplePlugin,\n): Handler<Plugin> {\n if (descriptor.value instanceof Plugin) {\n if (descriptor.options) {\n throw new Error(\n \"Passed options to an existing Plugin instance will not work.\",\n );\n }\n\n return descriptor.value;\n }\n\n return yield* instantiatePlugin(\n yield* pluginDescriptorLoader(descriptor, context),\n context,\n );\n}\n\nconst needsFilename = (val: unknown) => val && typeof val !== \"function\";\n\nconst validateIfOptionNeedsFilename = (\n options: ValidatedOptions,\n descriptor: UnloadedDescriptor<PresetAPI>,\n): void => {\n if (\n needsFilename(options.test) ||\n needsFilename(options.include) ||\n needsFilename(options.exclude)\n ) {\n const formattedPresetName = descriptor.name\n ? `\"${descriptor.name}\"`\n : \"/* your preset */\";\n throw new ConfigError(\n [\n `Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`,\n `\\`\\`\\``,\n `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`,\n `\\`\\`\\``,\n `See https://babeljs.io/docs/en/options#filename for more information.`,\n ].join(\"\\n\"),\n );\n }\n};\n\nconst validatePreset = (\n preset: PresetInstance,\n context: ConfigContext,\n descriptor: UnloadedDescriptor<PresetAPI>,\n): void => {\n if (!context.filename) {\n const { options } = preset;\n validateIfOptionNeedsFilename(options, descriptor);\n options.overrides?.forEach(overrideOptions =>\n validateIfOptionNeedsFilename(overrideOptions, descriptor),\n );\n }\n};\n\nconst instantiatePreset = makeWeakCacheSync(\n ({\n value,\n dirname,\n alias,\n externalDependencies,\n }: LoadedDescriptor): PresetInstance => {\n return {\n options: validate(\"preset\", value),\n alias,\n dirname,\n externalDependencies,\n };\n },\n);\n\n/**\n * Generate a config object that will act as the root of a new nested config.\n */\nfunction* loadPresetDescriptor(\n descriptor: UnloadedDescriptor<PresetAPI>,\n context: Context.FullPreset,\n): Handler<{\n chain: ConfigChain | null;\n externalDependencies: ReadonlyDeepArray<string>;\n}> {\n const preset = instantiatePreset(\n yield* presetDescriptorLoader(descriptor, context),\n );\n validatePreset(preset, context, descriptor);\n return {\n chain: yield* buildPresetChain(preset, context),\n externalDependencies: preset.externalDependencies,\n };\n}\n\nfunction chain<Args extends any[]>(\n a: undefined | ((...args: Args) => void),\n b: undefined | ((...args: Args) => void),\n) {\n const fns = [a, b].filter(Boolean);\n if (fns.length <= 1) return fns[0];\n\n return function (this: unknown, ...args: unknown[]) {\n for (const fn of fns) {\n fn.apply(this, args);\n }\n };\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_gensync","data","require","_async","_util","context","_plugin","_item","_configChain","_deepArray","_traverse","_caching","_options","_plugins","_configApi","_partial","_configError","_default","exports","default","gensync","loadFullConfig","inputOpts","_opts$assumptions","result","loadPrivatePartialConfig","options","fileHandling","optionDefaults","plugins","presets","Error","presetContext","Object","assign","targets","toDescriptor","item","desc","getItemDescriptor","presetsDescriptors","map","initialPluginsDescriptors","pluginDescriptorsByPass","passes","externalDependencies","ignored","enhanceError","recursePresetDescriptors","rawPresets","pluginDescriptorsPass","i","length","descriptor","preset","loadPresetDescriptor","e","code","checkNoUnwrappedItemOptionPairs","push","ownPass","chain","pass","unshift","splice","o","filter","p","forEach","opts","mergeOptions","pluginContext","assumptions","loadPluginDescriptors","descs","plugin","loadPluginDescriptor","slice","passPerPreset","freezeDeepArray","fn","arg1","arg2","test","message","_context$filename","filename","makeDescriptorLoader","apiFactory","makeWeakCache","value","dirname","alias","cache","factory","maybeAsync","api","JSON","stringify","isThenable","configured","mode","error","pluginDescriptorLoader","makePluginAPI","presetDescriptorLoader","makePresetAPI","instantiatePlugin","pluginObj","validatePluginObject","visitor","traverse","explode","inherits","inheritsDescriptor","name","undefined","forwardAsync","run","invalidate","pre","post","manipulateOptions","visitors","merge","Plugin","needsFilename","val","validateIfOptionNeedsFilename","include","exclude","formattedPresetName","ConfigError","join","validatePreset","_options$overrides","overrides","overrideOptions","instantiatePreset","makeWeakCacheSync","validate","buildPresetChain","a","b","fns","Boolean","args","apply"],"sources":["../../src/config/full.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\nimport {\n forwardAsync,\n maybeAsync,\n isThenable,\n} from \"../gensync-utils/async.ts\";\n\nimport { mergeOptions } from \"./util.ts\";\nimport * as context from \"../index.ts\";\nimport Plugin from \"./plugin.ts\";\nimport { getItemDescriptor } from \"./item.ts\";\nimport { buildPresetChain } from \"./config-chain.ts\";\nimport { finalize as freezeDeepArray } from \"./helpers/deep-array.ts\";\nimport type { DeepArray, ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type {\n ConfigContext,\n ConfigChain,\n PresetInstance,\n} from \"./config-chain.ts\";\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\nimport traverse from \"@babel/traverse\";\nimport { makeWeakCache, makeWeakCacheSync } from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\nimport {\n validate,\n checkNoUnwrappedItemOptionPairs,\n} from \"./validation/options.ts\";\nimport type { PluginItem } from \"./validation/options.ts\";\nimport { validatePluginObject } from \"./validation/plugins.ts\";\nimport { makePluginAPI, makePresetAPI } from \"./helpers/config-api.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nimport loadPrivatePartialConfig from \"./partial.ts\";\nimport type { ValidatedOptions } from \"./validation/options.ts\";\n\nimport type * as Context from \"./cache-contexts.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\n\ntype LoadedDescriptor = {\n value: {};\n options: {};\n dirname: string;\n alias: string;\n externalDependencies: ReadonlyDeepArray<string>;\n};\n\nexport type { InputOptions } from \"./validation/options.ts\";\n\nexport type ResolvedConfig = {\n options: any;\n passes: PluginPasses;\n externalDependencies: ReadonlyDeepArray<string>;\n};\n\nexport type { Plugin };\nexport type PluginPassList = Array<Plugin>;\nexport type PluginPasses = Array<PluginPassList>;\n\nexport default gensync(function* loadFullConfig(\n inputOpts: unknown,\n): Handler<ResolvedConfig | null> {\n const result = yield* loadPrivatePartialConfig(inputOpts);\n if (!result) {\n return null;\n }\n const { options, context, fileHandling } = result;\n\n if (fileHandling === \"ignored\") {\n return null;\n }\n\n const optionDefaults = {};\n\n const { plugins, presets } = options;\n\n if (!plugins || !presets) {\n throw new Error(\"Assertion failure - plugins and presets exist\");\n }\n\n const presetContext: Context.FullPreset = {\n ...context,\n targets: options.targets,\n };\n\n const toDescriptor = (item: PluginItem) => {\n const desc = getItemDescriptor(item);\n if (!desc) {\n throw new Error(\"Assertion failure - must be config item\");\n }\n\n return desc;\n };\n\n const presetsDescriptors = presets.map(toDescriptor);\n const initialPluginsDescriptors = plugins.map(toDescriptor);\n const pluginDescriptorsByPass: Array<Array<UnloadedDescriptor<PluginAPI>>> = [\n [],\n ];\n const passes: Array<Array<Plugin>> = [];\n\n const externalDependencies: DeepArray<string> = [];\n\n const ignored = yield* enhanceError(\n context,\n function* recursePresetDescriptors(\n rawPresets: Array<UnloadedDescriptor<PresetAPI>>,\n pluginDescriptorsPass: Array<UnloadedDescriptor<PluginAPI>>,\n ): Handler<true | void> {\n const presets: Array<{\n preset: ConfigChain | null;\n pass: Array<UnloadedDescriptor<PluginAPI>>;\n }> = [];\n\n for (let i = 0; i < rawPresets.length; i++) {\n const descriptor = rawPresets[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var preset = yield* loadPresetDescriptor(descriptor, presetContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_OPTION\") {\n checkNoUnwrappedItemOptionPairs(rawPresets, i, \"preset\", e);\n }\n throw e;\n }\n\n externalDependencies.push(preset.externalDependencies);\n\n // Presets normally run in reverse order, but if they\n // have their own pass they run after the presets\n // in the previous pass.\n if (descriptor.ownPass) {\n presets.push({ preset: preset.chain, pass: [] });\n } else {\n presets.unshift({\n preset: preset.chain,\n pass: pluginDescriptorsPass,\n });\n }\n }\n }\n\n // resolve presets\n if (presets.length > 0) {\n // The passes are created in the same order as the preset list, but are inserted before any\n // existing additional passes.\n pluginDescriptorsByPass.splice(\n 1,\n 0,\n ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass),\n );\n\n for (const { preset, pass } of presets) {\n if (!preset) return true;\n\n pass.push(...preset.plugins);\n\n const ignored = yield* recursePresetDescriptors(preset.presets, pass);\n if (ignored) return true;\n\n preset.options.forEach(opts => {\n mergeOptions(optionDefaults, opts);\n });\n }\n }\n },\n )(presetsDescriptors, pluginDescriptorsByPass[0]);\n\n if (ignored) return null;\n\n const opts: any = optionDefaults;\n mergeOptions(opts, options);\n\n const pluginContext: Context.FullPlugin = {\n ...presetContext,\n assumptions: opts.assumptions ?? {},\n };\n\n yield* enhanceError(context, function* loadPluginDescriptors() {\n pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors);\n\n for (const descs of pluginDescriptorsByPass) {\n const pass: Plugin[] = [];\n passes.push(pass);\n\n for (let i = 0; i < descs.length; i++) {\n const descriptor = descs[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var plugin = yield* loadPluginDescriptor(descriptor, pluginContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_PLUGIN_PROPERTY\") {\n // print special message for `plugins: [\"@babel/foo\", { foo: \"option\" }]`\n checkNoUnwrappedItemOptionPairs(descs, i, \"plugin\", e);\n }\n throw e;\n }\n pass.push(plugin);\n\n externalDependencies.push(plugin.externalDependencies);\n }\n }\n }\n })();\n\n opts.plugins = passes[0];\n opts.presets = passes\n .slice(1)\n .filter(plugins => plugins.length > 0)\n .map(plugins => ({ plugins }));\n opts.passPerPreset = opts.presets.length > 0;\n\n return {\n options: opts,\n passes: passes,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n});\n\nfunction enhanceError<T extends Function>(context: ConfigContext, fn: T): T {\n return function* (arg1: unknown, arg2: unknown) {\n try {\n return yield* fn(arg1, arg2);\n } catch (e) {\n // There are a few case where thrown errors will try to annotate themselves multiple times, so\n // to keep things simple we just bail out if re-wrapping the message.\n if (!/^\\[BABEL\\]/.test(e.message)) {\n e.message = `[BABEL] ${context.filename ?? \"unknown file\"}: ${\n e.message\n }`;\n }\n\n throw e;\n }\n } as any;\n}\n\n/**\n * Load a generic plugin/preset from the given descriptor loaded from the config object.\n */\nconst makeDescriptorLoader = <Context, API>(\n apiFactory: (\n cache: CacheConfigurator<Context>,\n externalDependencies: Array<string>,\n ) => API,\n) =>\n makeWeakCache(function* (\n { value, options, dirname, alias }: UnloadedDescriptor<API>,\n cache: CacheConfigurator<Context>,\n ): Handler<LoadedDescriptor> {\n // Disabled presets should already have been filtered out\n if (options === false) throw new Error(\"Assertion failure\");\n\n options = options || {};\n\n const externalDependencies: Array<string> = [];\n\n let item: unknown = value;\n if (typeof value === \"function\") {\n const factory = maybeAsync(\n value as (api: API, options: {}, dirname: string) => unknown,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n const api = {\n ...context,\n ...apiFactory(cache, externalDependencies),\n };\n try {\n item = yield* factory(api, options, dirname);\n } catch (e) {\n if (alias) {\n e.message += ` (While processing: ${JSON.stringify(alias)})`;\n }\n throw e;\n }\n }\n\n if (!item || typeof item !== \"object\") {\n throw new Error(\"Plugin/Preset did not return an object.\");\n }\n\n if (isThenable(item)) {\n // @ts-expect-error - if we want to support async plugins\n yield* [];\n\n throw new Error(\n `You appear to be using a promise as a plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version. ` +\n `As an alternative, you can prefix the promise with \"await\". ` +\n `(While processing: ${JSON.stringify(alias)})`,\n );\n }\n\n if (\n externalDependencies.length > 0 &&\n (!cache.configured() || cache.mode() === \"forever\")\n ) {\n let error =\n `A plugin/preset has external untracked dependencies ` +\n `(${externalDependencies[0]}), but the cache `;\n if (!cache.configured()) {\n error += `has not been configured to be invalidated when the external dependencies change. `;\n } else {\n error += ` has been configured to never be invalidated. `;\n }\n error +=\n `Plugins/presets should configure their cache to be invalidated when the external ` +\n `dependencies change, for example using \\`api.cache.invalidate(() => ` +\n `statSync(filepath).mtimeMs)\\` or \\`api.cache.never()\\`\\n` +\n `(While processing: ${JSON.stringify(alias)})`;\n\n throw new Error(error);\n }\n\n return {\n value: item,\n options,\n dirname,\n alias,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n });\n\nconst pluginDescriptorLoader = makeDescriptorLoader<\n Context.SimplePlugin,\n PluginAPI\n>(makePluginAPI);\nconst presetDescriptorLoader = makeDescriptorLoader<\n Context.SimplePreset,\n PresetAPI\n>(makePresetAPI);\n\nconst instantiatePlugin = makeWeakCache(function* (\n { value, options, dirname, alias, externalDependencies }: LoadedDescriptor,\n cache: CacheConfigurator<Context.SimplePlugin>,\n): Handler<Plugin> {\n const pluginObj = validatePluginObject(value);\n\n const plugin = {\n ...pluginObj,\n };\n if (plugin.visitor) {\n plugin.visitor = traverse.explode({\n ...plugin.visitor,\n });\n }\n\n if (plugin.inherits) {\n const inheritsDescriptor: UnloadedDescriptor<PluginAPI> = {\n name: undefined,\n alias: `${alias}$inherits`,\n value: plugin.inherits,\n options,\n dirname,\n };\n\n const inherits = yield* forwardAsync(loadPluginDescriptor, run => {\n // If the inherited plugin changes, reinstantiate this plugin.\n return cache.invalidate(data => run(inheritsDescriptor, data));\n });\n\n plugin.pre = chain(inherits.pre, plugin.pre);\n plugin.post = chain(inherits.post, plugin.post);\n plugin.manipulateOptions = chain(\n inherits.manipulateOptions,\n plugin.manipulateOptions,\n );\n plugin.visitor = traverse.visitors.merge([\n inherits.visitor || {},\n plugin.visitor || {},\n ]);\n\n if (inherits.externalDependencies.length > 0) {\n if (externalDependencies.length === 0) {\n externalDependencies = inherits.externalDependencies;\n } else {\n externalDependencies = freezeDeepArray([\n externalDependencies,\n inherits.externalDependencies,\n ]);\n }\n }\n }\n\n return new Plugin(plugin, options, alias, externalDependencies);\n});\n\n/**\n * Instantiate a plugin for the given descriptor, returning the plugin/options pair.\n */\nfunction* loadPluginDescriptor(\n descriptor: UnloadedDescriptor<PluginAPI>,\n context: Context.SimplePlugin,\n): Handler<Plugin> {\n if (descriptor.value instanceof Plugin) {\n if (descriptor.options) {\n throw new Error(\n \"Passed options to an existing Plugin instance will not work.\",\n );\n }\n\n return descriptor.value;\n }\n\n return yield* instantiatePlugin(\n yield* pluginDescriptorLoader(descriptor, context),\n context,\n );\n}\n\nconst needsFilename = (val: unknown) => val && typeof val !== \"function\";\n\nconst validateIfOptionNeedsFilename = (\n options: ValidatedOptions,\n descriptor: UnloadedDescriptor<PresetAPI>,\n): void => {\n if (\n needsFilename(options.test) ||\n needsFilename(options.include) ||\n needsFilename(options.exclude)\n ) {\n const formattedPresetName = descriptor.name\n ? `\"${descriptor.name}\"`\n : \"/* your preset */\";\n throw new ConfigError(\n [\n `Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`,\n `\\`\\`\\``,\n `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`,\n `\\`\\`\\``,\n `See https://babeljs.io/docs/en/options#filename for more information.`,\n ].join(\"\\n\"),\n );\n }\n};\n\nconst validatePreset = (\n preset: PresetInstance,\n context: ConfigContext,\n descriptor: UnloadedDescriptor<PresetAPI>,\n): void => {\n if (!context.filename) {\n const { options } = preset;\n validateIfOptionNeedsFilename(options, descriptor);\n options.overrides?.forEach(overrideOptions =>\n validateIfOptionNeedsFilename(overrideOptions, descriptor),\n );\n }\n};\n\nconst instantiatePreset = makeWeakCacheSync(\n ({\n value,\n dirname,\n alias,\n externalDependencies,\n }: LoadedDescriptor): PresetInstance => {\n return {\n options: validate(\"preset\", value),\n alias,\n dirname,\n externalDependencies,\n };\n },\n);\n\n/**\n * Generate a config object that will act as the root of a new nested config.\n */\nfunction* loadPresetDescriptor(\n descriptor: UnloadedDescriptor<PresetAPI>,\n context: Context.FullPreset,\n): Handler<{\n chain: ConfigChain | null;\n externalDependencies: ReadonlyDeepArray<string>;\n}> {\n const preset = instantiatePreset(\n yield* presetDescriptorLoader(descriptor, context),\n );\n validatePreset(preset, context, descriptor);\n return {\n chain: yield* buildPresetChain(preset, context),\n externalDependencies: preset.externalDependencies,\n };\n}\n\nfunction chain<Args extends any[]>(\n a: undefined | ((...args: Args) => void),\n b: undefined | ((...args: Args) => void),\n) {\n const fns = [a, b].filter(Boolean);\n if (fns.length <= 1) return fns[0];\n\n return function (this: unknown, ...args: unknown[]) {\n for (const fn of fns) {\n fn.apply(this, args);\n }\n };\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/helpers/config-api.js b/node_modules/@babel/core/lib/config/helpers/config-api.js index c59bb594..c3d55cea 100644 --- a/node_modules/@babel/core/lib/config/helpers/config-api.js +++ b/node_modules/@babel/core/lib/config/helpers/config-api.js @@ -64,7 +64,6 @@ function assertVersion(range) { if (typeof range !== "string") { throw new Error("Expected string or integer value."); } - ; if (_semver().satisfies(_index.version, range)) return; const limit = Error.stackTraceLimit; if (typeof limit === "number" && limit < 25) { diff --git a/node_modules/@babel/core/lib/config/helpers/config-api.js.map b/node_modules/@babel/core/lib/config/helpers/config-api.js.map index 2b9dfd42..48c6c111 100644 --- a/node_modules/@babel/core/lib/config/helpers/config-api.js.map +++ b/node_modules/@babel/core/lib/config/helpers/config-api.js.map @@ -1 +1 @@ -{"version":3,"names":["_semver","data","require","_index","_caching","makeConfigAPI","cache","env","value","using","envName","assertSimpleType","Array","isArray","some","entry","Error","caller","cb","version","coreVersion","simple","async","assertVersion","makePresetAPI","externalDependencies","targets","JSON","parse","stringify","addExternalDependency","ref","push","Object","assign","makePluginAPI","assumption","name","assumptions","range","Number","isInteger","semver","satisfies","limit","stackTraceLimit","err","code"],"sources":["../../../src/config/helpers/config-api.ts"],"sourcesContent":["import semver from \"semver\";\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nimport { version as coreVersion } from \"../../index.ts\";\nimport { assertSimpleType } from \"../caching.ts\";\nimport type {\n CacheConfigurator,\n SimpleCacheConfigurator,\n SimpleType,\n} from \"../caching.ts\";\n\nimport type { AssumptionName, CallerMetadata } from \"../validation/options.ts\";\n\nimport type * as Context from \"../cache-contexts\";\n\ntype EnvFunction = {\n (): string;\n <T>(extractor: (babelEnv: string) => T): T;\n (envVar: string): boolean;\n (envVars: Array<string>): boolean;\n};\n\ntype CallerFactory = (\n extractor: (callerMetadata: CallerMetadata | undefined) => unknown,\n) => SimpleType;\ntype TargetsFunction = () => Targets;\ntype AssumptionFunction = (name: AssumptionName) => boolean | undefined;\n\nexport type ConfigAPI = {\n version: string;\n cache: SimpleCacheConfigurator;\n env: EnvFunction;\n async: () => boolean;\n assertVersion: typeof assertVersion;\n caller?: CallerFactory;\n};\n\nexport type PresetAPI = {\n targets: TargetsFunction;\n addExternalDependency: (ref: string) => void;\n} & ConfigAPI;\n\nexport type PluginAPI = {\n assumption: AssumptionFunction;\n} & PresetAPI;\n\nexport function makeConfigAPI<SideChannel extends Context.SimpleConfig>(\n cache: CacheConfigurator<SideChannel>,\n): ConfigAPI {\n // TODO(@nicolo-ribaudo): If we remove the explicit type from `value`\n // and the `as any` type cast, TypeScript crashes in an infinite\n // recursion. After upgrading to TS4.7 and finishing the noImplicitAny\n // PR, we should check if it still crashes and report it to the TS team.\n const env: EnvFunction = ((\n value: string | string[] | (<T>(babelEnv: string) => T),\n ) =>\n cache.using(data => {\n if (typeof value === \"undefined\") return data.envName;\n if (typeof value === \"function\") {\n return assertSimpleType(value(data.envName));\n }\n return (Array.isArray(value) ? value : [value]).some(entry => {\n if (typeof entry !== \"string\") {\n throw new Error(\"Unexpected non-string value\");\n }\n return entry === data.envName;\n });\n })) as any;\n\n const caller = (cb: {\n (CallerMetadata: CallerMetadata | undefined): SimpleType;\n }) => cache.using(data => assertSimpleType(cb(data.caller)));\n\n return {\n version: coreVersion,\n cache: cache.simple(),\n // Expose \".env()\" so people can easily get the same env that we expose using the \"env\" key.\n env,\n async: () => false,\n caller,\n assertVersion,\n };\n}\n\nexport function makePresetAPI<SideChannel extends Context.SimplePreset>(\n cache: CacheConfigurator<SideChannel>,\n externalDependencies: Array<string>,\n): PresetAPI {\n const targets = () =>\n // We are using JSON.parse/JSON.stringify because it's only possible to cache\n // primitive values. We can safely stringify the targets object because it\n // only contains strings as its properties.\n // Please make the Record and Tuple proposal happen!\n JSON.parse(cache.using(data => JSON.stringify(data.targets)));\n\n const addExternalDependency = (ref: string) => {\n externalDependencies.push(ref);\n };\n\n return { ...makeConfigAPI(cache), targets, addExternalDependency };\n}\n\nexport function makePluginAPI<SideChannel extends Context.SimplePlugin>(\n cache: CacheConfigurator<SideChannel>,\n externalDependencies: Array<string>,\n): PluginAPI {\n const assumption = (name: string) =>\n cache.using(data => data.assumptions[name]);\n\n return { ...makePresetAPI(cache, externalDependencies), assumption };\n}\n\nfunction assertVersion(range: string | number): void {\n if (typeof range === \"number\") {\n if (!Number.isInteger(range)) {\n throw new Error(\"Expected string or integer value.\");\n }\n range = `^${range}.0.0-0`;\n }\n if (typeof range !== \"string\") {\n throw new Error(\"Expected string or integer value.\");\n }\n // TODO(Babel 8): Update all the version checks\n if (process.env.BABEL_8_BREAKING) {\n range += ` || ^8.0.0-0`;\n }\n\n if (semver.satisfies(coreVersion, range)) return;\n\n const limit = Error.stackTraceLimit;\n\n if (typeof limit === \"number\" && limit < 25) {\n // Bump up the limit if needed so that users are more likely\n // to be able to see what is calling Babel.\n Error.stackTraceLimit = 25;\n }\n\n const err = new Error(\n `Requires Babel \"${range}\", but was loaded with \"${coreVersion}\". ` +\n `If you are sure you have a compatible version of @babel/core, ` +\n `it is likely that something in your build process is loading the ` +\n `wrong version. Inspect the stack trace of this error to look for ` +\n `the first entry that doesn't mention \"@babel/core\" or \"babel-core\" ` +\n `to see what is calling Babel.`,\n );\n\n if (typeof limit === \"number\") {\n Error.stackTraceLimit = limit;\n }\n\n throw Object.assign(err, {\n code: \"BABEL_VERSION_UNSUPPORTED\",\n version: coreVersion,\n range,\n });\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_semver","data","require","_index","_caching","makeConfigAPI","cache","env","value","using","envName","assertSimpleType","Array","isArray","some","entry","Error","caller","cb","version","coreVersion","simple","async","assertVersion","makePresetAPI","externalDependencies","targets","JSON","parse","stringify","addExternalDependency","ref","push","Object","assign","makePluginAPI","assumption","name","assumptions","range","Number","isInteger","semver","satisfies","limit","stackTraceLimit","err","code"],"sources":["../../../src/config/helpers/config-api.ts"],"sourcesContent":["import semver from \"semver\";\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nimport { version as coreVersion } from \"../../index.ts\";\nimport { assertSimpleType } from \"../caching.ts\";\nimport type {\n CacheConfigurator,\n SimpleCacheConfigurator,\n SimpleType,\n} from \"../caching.ts\";\n\nimport type { AssumptionName, CallerMetadata } from \"../validation/options.ts\";\n\nimport type * as Context from \"../cache-contexts\";\n\ntype EnvFunction = {\n (): string;\n <T>(extractor: (babelEnv: string) => T): T;\n (envVar: string): boolean;\n (envVars: Array<string>): boolean;\n};\n\ntype CallerFactory = {\n <T extends SimpleType>(\n extractor: (callerMetadata: CallerMetadata | undefined) => T,\n ): T;\n (\n extractor: (callerMetadata: CallerMetadata | undefined) => unknown,\n ): SimpleType;\n};\ntype TargetsFunction = () => Targets;\ntype AssumptionFunction = (name: AssumptionName) => boolean | undefined;\n\nexport type ConfigAPI = {\n version: string;\n cache: SimpleCacheConfigurator;\n env: EnvFunction;\n async: () => boolean;\n assertVersion: typeof assertVersion;\n caller?: CallerFactory;\n};\n\nexport type PresetAPI = {\n targets: TargetsFunction;\n addExternalDependency: (ref: string) => void;\n} & ConfigAPI;\n\nexport type PluginAPI = {\n assumption: AssumptionFunction;\n} & PresetAPI;\n\nexport function makeConfigAPI<SideChannel extends Context.SimpleConfig>(\n cache: CacheConfigurator<SideChannel>,\n): ConfigAPI {\n // TODO(@nicolo-ribaudo): If we remove the explicit type from `value`\n // and the `as any` type cast, TypeScript crashes in an infinite\n // recursion. After upgrading to TS4.7 and finishing the noImplicitAny\n // PR, we should check if it still crashes and report it to the TS team.\n const env: EnvFunction = ((\n value: string | string[] | (<T>(babelEnv: string) => T),\n ) =>\n cache.using(data => {\n if (typeof value === \"undefined\") return data.envName;\n if (typeof value === \"function\") {\n return assertSimpleType(value(data.envName));\n }\n return (Array.isArray(value) ? value : [value]).some(entry => {\n if (typeof entry !== \"string\") {\n throw new Error(\"Unexpected non-string value\");\n }\n return entry === data.envName;\n });\n })) as any;\n\n const caller = (cb: {\n (CallerMetadata: CallerMetadata | undefined): SimpleType;\n }) => cache.using(data => assertSimpleType(cb(data.caller)));\n\n return {\n version: coreVersion,\n cache: cache.simple(),\n // Expose \".env()\" so people can easily get the same env that we expose using the \"env\" key.\n env,\n async: () => false,\n caller,\n assertVersion,\n };\n}\n\nexport function makePresetAPI<SideChannel extends Context.SimplePreset>(\n cache: CacheConfigurator<SideChannel>,\n externalDependencies: Array<string>,\n): PresetAPI {\n const targets = () =>\n // We are using JSON.parse/JSON.stringify because it's only possible to cache\n // primitive values. We can safely stringify the targets object because it\n // only contains strings as its properties.\n // Please make the Record and Tuple proposal happen!\n JSON.parse(cache.using(data => JSON.stringify(data.targets)));\n\n const addExternalDependency = (ref: string) => {\n externalDependencies.push(ref);\n };\n\n return { ...makeConfigAPI(cache), targets, addExternalDependency };\n}\n\nexport function makePluginAPI<SideChannel extends Context.SimplePlugin>(\n cache: CacheConfigurator<SideChannel>,\n externalDependencies: Array<string>,\n): PluginAPI {\n const assumption = (name: string) =>\n cache.using(data => data.assumptions[name]);\n\n return { ...makePresetAPI(cache, externalDependencies), assumption };\n}\n\nfunction assertVersion(range: string | number): void {\n if (typeof range === \"number\") {\n if (!Number.isInteger(range)) {\n throw new Error(\"Expected string or integer value.\");\n }\n range = `^${range}.0.0-0`;\n }\n if (typeof range !== \"string\") {\n throw new Error(\"Expected string or integer value.\");\n }\n\n if (semver.satisfies(coreVersion, range)) return;\n\n const limit = Error.stackTraceLimit;\n\n if (typeof limit === \"number\" && limit < 25) {\n // Bump up the limit if needed so that users are more likely\n // to be able to see what is calling Babel.\n Error.stackTraceLimit = 25;\n }\n\n const err = new Error(\n `Requires Babel \"${range}\", but was loaded with \"${coreVersion}\". ` +\n `If you are sure you have a compatible version of @babel/core, ` +\n `it is likely that something in your build process is loading the ` +\n `wrong version. Inspect the stack trace of this error to look for ` +\n `the first entry that doesn't mention \"@babel/core\" or \"babel-core\" ` +\n `to see what is calling Babel.`,\n );\n\n if (typeof limit === \"number\") {\n Error.stackTraceLimit = limit;\n }\n\n throw Object.assign(err, {\n code: \"BABEL_VERSION_UNSUPPORTED\",\n version: coreVersion,\n range,\n });\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/printer.js b/node_modules/@babel/core/lib/config/printer.js index 3fb9ced3..3ac2c075 100644 --- a/node_modules/@babel/core/lib/config/printer.js +++ b/node_modules/@babel/core/lib/config/printer.js @@ -11,11 +11,10 @@ function _gensync() { }; return data; } -const ChainFormatter = { +const ChainFormatter = exports.ChainFormatter = { Programmatic: 0, Config: 1 }; -exports.ChainFormatter = ChainFormatter; const Formatter = { title(type, callerName, filepath) { let title = ""; diff --git a/node_modules/@babel/core/lib/config/printer.js.map b/node_modules/@babel/core/lib/config/printer.js.map index 0804a1da..7c64c29a 100644 --- a/node_modules/@babel/core/lib/config/printer.js.map +++ b/node_modules/@babel/core/lib/config/printer.js.map @@ -1 +1 @@ -{"version":3,"names":["_gensync","data","require","ChainFormatter","Programmatic","Config","exports","Formatter","title","type","callerName","filepath","loc","index","envName","optionsAndDescriptors","opt","content","Object","assign","options","overrides","env","pluginDescriptors","plugins","length","map","d","descriptorToConfig","presetDescriptors","presets","JSON","stringify","undefined","_d$file","name","file","request","value","toString","slice","ConfigPrinter","constructor","_stack","configure","enabled","push","format","config","output","configs","gensync","all","s","join"],"sources":["../../src/config/printer.ts"],"sourcesContent":["import gensync from \"gensync\";\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n OptionsAndDescriptors,\n UnloadedDescriptor,\n} from \"./config-descriptors.ts\";\n\n// todo: Use flow enums when @babel/transform-flow-types supports it\nexport const ChainFormatter = {\n Programmatic: 0,\n Config: 1,\n};\n\ntype PrintableConfig = {\n content: OptionsAndDescriptors;\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter];\n callerName: string | undefined | null;\n filepath: string | undefined | null;\n index: number | undefined | null;\n envName: string | undefined | null;\n};\n\nconst Formatter = {\n title(\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n callerName?: string | null,\n filepath?: string | null,\n ): string {\n let title = \"\";\n if (type === ChainFormatter.Programmatic) {\n title = \"programmatic options\";\n if (callerName) {\n title += \" from \" + callerName;\n }\n } else {\n title = \"config \" + filepath;\n }\n return title;\n },\n loc(index?: number | null, envName?: string | null): string {\n let loc = \"\";\n if (index != null) {\n loc += `.overrides[${index}]`;\n }\n if (envName != null) {\n loc += `.env[\"${envName}\"]`;\n }\n return loc;\n },\n\n *optionsAndDescriptors(opt: OptionsAndDescriptors) {\n const content = { ...opt.options };\n // overrides and env will be printed as separated config items\n delete content.overrides;\n delete content.env;\n // resolve to descriptors\n const pluginDescriptors = [...(yield* opt.plugins())];\n if (pluginDescriptors.length) {\n content.plugins = pluginDescriptors.map(d => descriptorToConfig(d));\n }\n const presetDescriptors = [...(yield* opt.presets())];\n if (presetDescriptors.length) {\n content.presets = [...presetDescriptors].map(d => descriptorToConfig(d));\n }\n return JSON.stringify(content, undefined, 2);\n },\n};\n\nfunction descriptorToConfig<API>(\n d: UnloadedDescriptor<API>,\n): object | string | [string, unknown] | [string, unknown, string] {\n let name: object | string = d.file?.request;\n if (name == null) {\n if (typeof d.value === \"object\") {\n name = d.value;\n } else if (typeof d.value === \"function\") {\n // If the unloaded descriptor is a function, i.e. `plugins: [ require(\"my-plugin\") ]`,\n // we print the first 50 characters of the function source code and hopefully we can see\n // `name: 'my-plugin'` in the source\n name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`;\n }\n }\n if (name == null) {\n name = \"[Unknown]\";\n }\n if (d.options === undefined) {\n return name;\n } else if (d.name == null) {\n return [name, d.options];\n } else {\n return [name, d.options, d.name];\n }\n}\n\nexport class ConfigPrinter {\n _stack: Array<PrintableConfig> = [];\n configure(\n enabled: boolean,\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n {\n callerName,\n filepath,\n }: {\n callerName?: string;\n filepath?: string;\n },\n ) {\n if (!enabled) return () => {};\n return (\n content: OptionsAndDescriptors,\n index?: number | null,\n envName?: string | null,\n ) => {\n this._stack.push({\n type,\n callerName,\n filepath,\n content,\n index,\n envName,\n });\n };\n }\n static *format(config: PrintableConfig): Handler<string> {\n let title = Formatter.title(\n config.type,\n config.callerName,\n config.filepath,\n );\n const loc = Formatter.loc(config.index, config.envName);\n if (loc) title += ` ${loc}`;\n const content = yield* Formatter.optionsAndDescriptors(config.content);\n return `${title}\\n${content}`;\n }\n\n *output(): Handler<string> {\n if (this._stack.length === 0) return \"\";\n const configs = yield* gensync.all(\n this._stack.map(s => ConfigPrinter.format(s)),\n );\n return configs.join(\"\\n\\n\");\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_gensync","data","require","ChainFormatter","exports","Programmatic","Config","Formatter","title","type","callerName","filepath","loc","index","envName","optionsAndDescriptors","opt","content","Object","assign","options","overrides","env","pluginDescriptors","plugins","length","map","d","descriptorToConfig","presetDescriptors","presets","JSON","stringify","undefined","_d$file","name","file","request","value","toString","slice","ConfigPrinter","constructor","_stack","configure","enabled","push","format","config","output","configs","gensync","all","s","join"],"sources":["../../src/config/printer.ts"],"sourcesContent":["import gensync from \"gensync\";\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n OptionsAndDescriptors,\n UnloadedDescriptor,\n} from \"./config-descriptors.ts\";\n\n// todo: Use flow enums when @babel/transform-flow-types supports it\nexport const ChainFormatter = {\n Programmatic: 0,\n Config: 1,\n};\n\ntype PrintableConfig = {\n content: OptionsAndDescriptors;\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter];\n callerName: string | undefined | null;\n filepath: string | undefined | null;\n index: number | undefined | null;\n envName: string | undefined | null;\n};\n\nconst Formatter = {\n title(\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n callerName?: string | null,\n filepath?: string | null,\n ): string {\n let title = \"\";\n if (type === ChainFormatter.Programmatic) {\n title = \"programmatic options\";\n if (callerName) {\n title += \" from \" + callerName;\n }\n } else {\n title = \"config \" + filepath;\n }\n return title;\n },\n loc(index?: number | null, envName?: string | null): string {\n let loc = \"\";\n if (index != null) {\n loc += `.overrides[${index}]`;\n }\n if (envName != null) {\n loc += `.env[\"${envName}\"]`;\n }\n return loc;\n },\n\n *optionsAndDescriptors(opt: OptionsAndDescriptors) {\n const content = { ...opt.options };\n // overrides and env will be printed as separated config items\n delete content.overrides;\n delete content.env;\n // resolve to descriptors\n const pluginDescriptors = [...(yield* opt.plugins())];\n if (pluginDescriptors.length) {\n content.plugins = pluginDescriptors.map(d => descriptorToConfig(d));\n }\n const presetDescriptors = [...(yield* opt.presets())];\n if (presetDescriptors.length) {\n content.presets = [...presetDescriptors].map(d => descriptorToConfig(d));\n }\n return JSON.stringify(content, undefined, 2);\n },\n};\n\nfunction descriptorToConfig<API>(\n d: UnloadedDescriptor<API>,\n): object | string | [string, unknown] | [string, unknown, string] {\n let name: object | string = d.file?.request;\n if (name == null) {\n if (typeof d.value === \"object\") {\n name = d.value;\n } else if (typeof d.value === \"function\") {\n // If the unloaded descriptor is a function, i.e. `plugins: [ require(\"my-plugin\") ]`,\n // we print the first 50 characters of the function source code and hopefully we can see\n // `name: 'my-plugin'` in the source\n name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`;\n }\n }\n if (name == null) {\n name = \"[Unknown]\";\n }\n if (d.options === undefined) {\n return name;\n } else if (d.name == null) {\n return [name, d.options];\n } else {\n return [name, d.options, d.name];\n }\n}\n\nexport class ConfigPrinter {\n _stack: Array<PrintableConfig> = [];\n configure(\n enabled: boolean,\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n {\n callerName,\n filepath,\n }: {\n callerName?: string;\n filepath?: string;\n },\n ) {\n if (!enabled) return () => {};\n return (\n content: OptionsAndDescriptors,\n index?: number | null,\n envName?: string | null,\n ) => {\n this._stack.push({\n type,\n callerName,\n filepath,\n content,\n index,\n envName,\n });\n };\n }\n static *format(config: PrintableConfig): Handler<string> {\n let title = Formatter.title(\n config.type,\n config.callerName,\n config.filepath,\n );\n const loc = Formatter.loc(config.index, config.envName);\n if (loc) title += ` ${loc}`;\n const content = yield* Formatter.optionsAndDescriptors(config.content);\n return `${title}\\n${content}`;\n }\n\n *output(): Handler<string> {\n if (this._stack.length === 0) return \"\";\n const configs = yield* gensync.all(\n this._stack.map(s => ConfigPrinter.format(s)),\n );\n return configs.join(\"\\n\\n\");\n }\n}\n"],"mappings":";;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAUO,MAAME,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG;EAC5BE,YAAY,EAAE,CAAC;EACfC,MAAM,EAAE;AACV,CAAC;AAWD,MAAMC,SAAS,GAAG;EAChBC,KAAKA,CACHC,IAA0D,EAC1DC,UAA0B,EAC1BC,QAAwB,EAChB;IACR,IAAIH,KAAK,GAAG,EAAE;IACd,IAAIC,IAAI,KAAKN,cAAc,CAACE,YAAY,EAAE;MACxCG,KAAK,GAAG,sBAAsB;MAC9B,IAAIE,UAAU,EAAE;QACdF,KAAK,IAAI,QAAQ,GAAGE,UAAU;MAChC;IACF,CAAC,MAAM;MACLF,KAAK,GAAG,SAAS,GAAGG,QAAQ;IAC9B;IACA,OAAOH,KAAK;EACd,CAAC;EACDI,GAAGA,CAACC,KAAqB,EAAEC,OAAuB,EAAU;IAC1D,IAAIF,GAAG,GAAG,EAAE;IACZ,IAAIC,KAAK,IAAI,IAAI,EAAE;MACjBD,GAAG,IAAK,cAAaC,KAAM,GAAE;IAC/B;IACA,IAAIC,OAAO,IAAI,IAAI,EAAE;MACnBF,GAAG,IAAK,SAAQE,OAAQ,IAAG;IAC7B;IACA,OAAOF,GAAG;EACZ,CAAC;EAED,CAACG,qBAAqBA,CAACC,GAA0B,EAAE;IACjD,MAAMC,OAAO,GAAAC,MAAA,CAAAC,MAAA,KAAQH,GAAG,CAACI,OAAO,CAAE;IAElC,OAAOH,OAAO,CAACI,SAAS;IACxB,OAAOJ,OAAO,CAACK,GAAG;IAElB,MAAMC,iBAAiB,GAAG,CAAC,IAAI,OAAOP,GAAG,CAACQ,OAAO,CAAC,CAAC,CAAC,CAAC;IACrD,IAAID,iBAAiB,CAACE,MAAM,EAAE;MAC5BR,OAAO,CAACO,OAAO,GAAGD,iBAAiB,CAACG,GAAG,CAACC,CAAC,IAAIC,kBAAkB,CAACD,CAAC,CAAC,CAAC;IACrE;IACA,MAAME,iBAAiB,GAAG,CAAC,IAAI,OAAOb,GAAG,CAACc,OAAO,CAAC,CAAC,CAAC,CAAC;IACrD,IAAID,iBAAiB,CAACJ,MAAM,EAAE;MAC5BR,OAAO,CAACa,OAAO,GAAG,CAAC,GAAGD,iBAAiB,CAAC,CAACH,GAAG,CAACC,CAAC,IAAIC,kBAAkB,CAACD,CAAC,CAAC,CAAC;IAC1E;IACA,OAAOI,IAAI,CAACC,SAAS,CAACf,OAAO,EAAEgB,SAAS,EAAE,CAAC,CAAC;EAC9C;AACF,CAAC;AAED,SAASL,kBAAkBA,CACzBD,CAA0B,EACuC;EAAA,IAAAO,OAAA;EACjE,IAAIC,IAAqB,IAAAD,OAAA,GAAGP,CAAC,CAACS,IAAI,qBAANF,OAAA,CAAQG,OAAO;EAC3C,IAAIF,IAAI,IAAI,IAAI,EAAE;IAChB,IAAI,OAAOR,CAAC,CAACW,KAAK,KAAK,QAAQ,EAAE;MAC/BH,IAAI,GAAGR,CAAC,CAACW,KAAK;IAChB,CAAC,MAAM,IAAI,OAAOX,CAAC,CAACW,KAAK,KAAK,UAAU,EAAE;MAIxCH,IAAI,GAAI,cAAaR,CAAC,CAACW,KAAK,CAACC,QAAQ,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAE,QAAO;IAC9D;EACF;EACA,IAAIL,IAAI,IAAI,IAAI,EAAE;IAChBA,IAAI,GAAG,WAAW;EACpB;EACA,IAAIR,CAAC,CAACP,OAAO,KAAKa,SAAS,EAAE;IAC3B,OAAOE,IAAI;EACb,CAAC,MAAM,IAAIR,CAAC,CAACQ,IAAI,IAAI,IAAI,EAAE;IACzB,OAAO,CAACA,IAAI,EAAER,CAAC,CAACP,OAAO,CAAC;EAC1B,CAAC,MAAM;IACL,OAAO,CAACe,IAAI,EAAER,CAAC,CAACP,OAAO,EAAEO,CAAC,CAACQ,IAAI,CAAC;EAClC;AACF;AAEO,MAAMM,aAAa,CAAC;EAAAC,YAAA;IAAA,KACzBC,MAAM,GAA2B,EAAE;EAAA;EACnCC,SAASA,CACPC,OAAgB,EAChBpC,IAA0D,EAC1D;IACEC,UAAU;IACVC;EAIF,CAAC,EACD;IACA,IAAI,CAACkC,OAAO,EAAE,OAAO,MAAM,CAAC,CAAC;IAC7B,OAAO,CACL5B,OAA8B,EAC9BJ,KAAqB,EACrBC,OAAuB,KACpB;MACH,IAAI,CAAC6B,MAAM,CAACG,IAAI,CAAC;QACfrC,IAAI;QACJC,UAAU;QACVC,QAAQ;QACRM,OAAO;QACPJ,KAAK;QACLC;MACF,CAAC,CAAC;IACJ,CAAC;EACH;EACA,QAAQiC,MAAMA,CAACC,MAAuB,EAAmB;IACvD,IAAIxC,KAAK,GAAGD,SAAS,CAACC,KAAK,CACzBwC,MAAM,CAACvC,IAAI,EACXuC,MAAM,CAACtC,UAAU,EACjBsC,MAAM,CAACrC,QACT,CAAC;IACD,MAAMC,GAAG,GAAGL,SAAS,CAACK,GAAG,CAACoC,MAAM,CAACnC,KAAK,EAAEmC,MAAM,CAAClC,OAAO,CAAC;IACvD,IAAIF,GAAG,EAAEJ,KAAK,IAAK,IAAGI,GAAI,EAAC;IAC3B,MAAMK,OAAO,GAAG,OAAOV,SAAS,CAACQ,qBAAqB,CAACiC,MAAM,CAAC/B,OAAO,CAAC;IACtE,OAAQ,GAAET,KAAM,KAAIS,OAAQ,EAAC;EAC/B;EAEA,CAACgC,MAAMA,CAAA,EAAoB;IACzB,IAAI,IAAI,CAACN,MAAM,CAAClB,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE;IACvC,MAAMyB,OAAO,GAAG,OAAOC,SAAMA,CAAC,CAACC,GAAG,CAChC,IAAI,CAACT,MAAM,CAACjB,GAAG,CAAC2B,CAAC,IAAIZ,aAAa,CAACM,MAAM,CAACM,CAAC,CAAC,CAC9C,CAAC;IACD,OAAOH,OAAO,CAACI,IAAI,CAAC,MAAM,CAAC;EAC7B;AACF;AAAClD,OAAA,CAAAqC,aAAA,GAAAA,aAAA;AAAA"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/option-assertions.js b/node_modules/@babel/core/lib/config/validation/option-assertions.js index db245b45..4cecb99c 100644 --- a/node_modules/@babel/core/lib/config/validation/option-assertions.js +++ b/node_modules/@babel/core/lib/config/validation/option-assertions.js @@ -132,7 +132,7 @@ function assertArray(loc, value) { } function assertIgnoreList(loc, value) { const arr = assertArray(loc, value); - arr == null ? void 0 : arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item)); + arr == null || arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item)); return arr; } function assertIgnoreItem(loc, value) { diff --git a/node_modules/@babel/core/lib/config/validation/option-assertions.js.map b/node_modules/@babel/core/lib/config/validation/option-assertions.js.map index 3201f132..284f2ea3 100644 --- a/node_modules/@babel/core/lib/config/validation/option-assertions.js.map +++ b/node_modules/@babel/core/lib/config/validation/option-assertions.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperCompilationTargets","data","require","_options","msg","loc","type","parent","name","index","JSON","stringify","Error","access","assertRootMode","value","undefined","assertSourceMaps","assertCompact","assertSourceType","assertCallerMetadata","obj","assertObject","prop","Object","keys","propLoc","assertInputSourceMap","assertString","assertFunction","assertBoolean","Array","isArray","assertArray","assertIgnoreList","arr","forEach","item","i","assertIgnoreItem","RegExp","assertConfigApplicableTest","checkValidTest","assertConfigFileSearch","assertBabelrcSearch","assertPluginList","assertPluginItem","length","assertPluginTarget","opts","assertTargets","isBrowsersQueryValid","browsersLoc","esmodulesLoc","assertBrowsersList","browsers","esmodules","key","val","subLoc","hasOwnProperty","call","TargetNames","validTargets","join","assertBrowserVersion","Math","round","assertAssumptions","root","inPreset","source","assumptionsNames","has"],"sources":["../../../src/config/validation/option-assertions.ts"],"sourcesContent":["import {\n isBrowsersQueryValid,\n TargetNames,\n} from \"@babel/helper-compilation-targets\";\n\nimport type {\n ConfigFileSearch,\n BabelrcSearch,\n IgnoreList,\n IgnoreItem,\n PluginList,\n PluginItem,\n PluginTarget,\n ConfigApplicableTest,\n SourceMapsOption,\n SourceTypeOption,\n CompactOption,\n RootInputSourceMapOption,\n NestingPath,\n CallerMetadata,\n RootMode,\n TargetsListOrObject,\n AssumptionName,\n} from \"./options.ts\";\n\nimport { assumptionsNames } from \"./options.ts\";\n\nexport type { RootPath } from \"./options.ts\";\n\nexport type ValidatorSet = {\n [name: string]: Validator<any>;\n};\n\nexport type Validator<T> = (loc: OptionPath, value: unknown) => T;\n\nexport function msg(loc: NestingPath | GeneralPath): string {\n switch (loc.type) {\n case \"root\":\n return ``;\n case \"env\":\n return `${msg(loc.parent)}.env[\"${loc.name}\"]`;\n case \"overrides\":\n return `${msg(loc.parent)}.overrides[${loc.index}]`;\n case \"option\":\n return `${msg(loc.parent)}.${loc.name}`;\n case \"access\":\n return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;\n default:\n // @ts-expect-error should not happen when code is type checked\n throw new Error(`Assertion failure: Unknown type ${loc.type}`);\n }\n}\n\nexport function access(loc: GeneralPath, name: string | number): AccessPath {\n return {\n type: \"access\",\n name,\n parent: loc,\n };\n}\n\nexport type OptionPath = Readonly<{\n type: \"option\";\n name: string;\n parent: NestingPath;\n}>;\ntype AccessPath = Readonly<{\n type: \"access\";\n name: string | number;\n parent: GeneralPath;\n}>;\ntype GeneralPath = OptionPath | AccessPath;\n\nexport function assertRootMode(\n loc: OptionPath,\n value: unknown,\n): RootMode | void {\n if (\n value !== undefined &&\n value !== \"root\" &&\n value !== \"upward\" &&\n value !== \"upward-optional\"\n ) {\n throw new Error(\n `${msg(loc)} must be a \"root\", \"upward\", \"upward-optional\" or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceMaps(\n loc: OptionPath,\n value: unknown,\n): SourceMapsOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n value !== \"inline\" &&\n value !== \"both\"\n ) {\n throw new Error(\n `${msg(loc)} must be a boolean, \"inline\", \"both\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCompact(\n loc: OptionPath,\n value: unknown,\n): CompactOption | void {\n if (value !== undefined && typeof value !== \"boolean\" && value !== \"auto\") {\n throw new Error(`${msg(loc)} must be a boolean, \"auto\", or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceType(\n loc: OptionPath,\n value: unknown,\n): SourceTypeOption | void {\n if (\n value !== undefined &&\n value !== \"module\" &&\n value !== \"script\" &&\n value !== \"unambiguous\"\n ) {\n throw new Error(\n `${msg(loc)} must be \"module\", \"script\", \"unambiguous\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCallerMetadata(\n loc: OptionPath,\n value: unknown,\n): CallerMetadata | undefined {\n const obj = assertObject(loc, value);\n if (obj) {\n if (typeof obj.name !== \"string\") {\n throw new Error(\n `${msg(loc)} set but does not contain \"name\" property string`,\n );\n }\n\n for (const prop of Object.keys(obj)) {\n const propLoc = access(loc, prop);\n const value = obj[prop];\n if (\n value != null &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\" &&\n typeof value !== \"number\"\n ) {\n // NOTE(logan): I'm limiting the type here so that we can guarantee that\n // the \"caller\" value will serialize to JSON nicely. We can always\n // allow more complex structures later though.\n throw new Error(\n `${msg(\n propLoc,\n )} must be null, undefined, a boolean, a string, or a number.`,\n );\n }\n }\n }\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n\nexport function assertInputSourceMap(\n loc: OptionPath,\n value: unknown,\n): RootInputSourceMapOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n (typeof value !== \"object\" || !value)\n ) {\n throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);\n }\n return value;\n}\n\nexport function assertString(loc: GeneralPath, value: unknown): string | void {\n if (value !== undefined && typeof value !== \"string\") {\n throw new Error(`${msg(loc)} must be a string, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertFunction(\n loc: GeneralPath,\n value: unknown,\n): Function | void {\n if (value !== undefined && typeof value !== \"function\") {\n throw new Error(`${msg(loc)} must be a function, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBoolean(\n loc: GeneralPath,\n value: unknown,\n): boolean | void {\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new Error(`${msg(loc)} must be a boolean, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertObject(\n loc: GeneralPath,\n value: unknown,\n): { readonly [key: string]: unknown } | void {\n if (\n value !== undefined &&\n (typeof value !== \"object\" || Array.isArray(value) || !value)\n ) {\n throw new Error(`${msg(loc)} must be an object, or undefined`);\n }\n // @ts-expect-error todo(flow->ts) value is still typed as unknown, also assert function typically should not return a value\n return value;\n}\n\nexport function assertArray<T>(\n loc: GeneralPath,\n value: Array<T> | undefined | null,\n): ReadonlyArray<T> | undefined | null {\n if (value != null && !Array.isArray(value)) {\n throw new Error(`${msg(loc)} must be an array, or undefined`);\n }\n return value;\n}\n\nexport function assertIgnoreList(\n loc: OptionPath,\n value: unknown[] | undefined,\n): IgnoreList | void {\n const arr = assertArray(loc, value);\n arr?.forEach((item, i) => assertIgnoreItem(access(loc, i), item));\n // @ts-expect-error todo(flow->ts)\n return arr;\n}\nfunction assertIgnoreItem(loc: GeneralPath, value: unknown): IgnoreItem {\n if (\n typeof value !== \"string\" &&\n typeof value !== \"function\" &&\n !(value instanceof RegExp)\n ) {\n throw new Error(\n `${msg(\n loc,\n )} must be an array of string/Function/RegExp values, or undefined`,\n );\n }\n return value as IgnoreItem;\n}\n\nexport function assertConfigApplicableTest(\n loc: OptionPath,\n value: unknown,\n): ConfigApplicableTest | void {\n if (value === undefined) {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a string/Function/RegExp, or an array of those`,\n );\n }\n return value as ConfigApplicableTest;\n}\n\nfunction checkValidTest(value: unknown): value is string | Function | RegExp {\n return (\n typeof value === \"string\" ||\n typeof value === \"function\" ||\n value instanceof RegExp\n );\n}\n\nexport function assertConfigFileSearch(\n loc: OptionPath,\n value: unknown,\n): ConfigFileSearch | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\"\n ) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string, ` +\n `got ${JSON.stringify(value)}`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBabelrcSearch(\n loc: OptionPath,\n value: unknown,\n): BabelrcSearch | void {\n if (value === undefined || typeof value === \"boolean\") {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` +\n `or an array of those, got ${JSON.stringify(value as any)}`,\n );\n }\n return value as BabelrcSearch;\n}\n\nexport function assertPluginList(\n loc: OptionPath,\n value: unknown[] | null | undefined,\n): PluginList | void {\n const arr = assertArray(loc, value);\n if (arr) {\n // Loop instead of using `.map` in order to preserve object identity\n // for plugin array for use during config chain processing.\n arr.forEach((item, i) => assertPluginItem(access(loc, i), item));\n }\n return arr as any;\n}\nfunction assertPluginItem(loc: GeneralPath, value: unknown): PluginItem {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n throw new Error(`${msg(loc)} must include an object`);\n }\n\n if (value.length > 3) {\n throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);\n }\n\n assertPluginTarget(access(loc, 0), value[0]);\n\n if (value.length > 1) {\n const opts = value[1];\n if (\n opts !== undefined &&\n opts !== false &&\n (typeof opts !== \"object\" || Array.isArray(opts) || opts === null)\n ) {\n throw new Error(\n `${msg(access(loc, 1))} must be an object, false, or undefined`,\n );\n }\n }\n if (value.length === 3) {\n const name = value[2];\n if (name !== undefined && typeof name !== \"string\") {\n throw new Error(\n `${msg(access(loc, 2))} must be a string, or undefined`,\n );\n }\n }\n } else {\n assertPluginTarget(loc, value);\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\nfunction assertPluginTarget(loc: GeneralPath, value: unknown): PluginTarget {\n if (\n (typeof value !== \"object\" || !value) &&\n typeof value !== \"string\" &&\n typeof value !== \"function\"\n ) {\n throw new Error(`${msg(loc)} must be a string, object, function`);\n }\n return value;\n}\n\nexport function assertTargets(\n loc: GeneralPath,\n value: any,\n): TargetsListOrObject {\n if (isBrowsersQueryValid(value)) return value;\n\n if (typeof value !== \"object\" || !value || Array.isArray(value)) {\n throw new Error(\n `${msg(loc)} must be a string, an array of strings or an object`,\n );\n }\n\n const browsersLoc = access(loc, \"browsers\");\n const esmodulesLoc = access(loc, \"esmodules\");\n\n assertBrowsersList(browsersLoc, value.browsers);\n assertBoolean(esmodulesLoc, value.esmodules);\n\n for (const key of Object.keys(value)) {\n const val = value[key];\n const subLoc = access(loc, key);\n\n if (key === \"esmodules\") assertBoolean(subLoc, val);\n else if (key === \"browsers\") assertBrowsersList(subLoc, val);\n else if (!Object.hasOwnProperty.call(TargetNames, key)) {\n const validTargets = Object.keys(TargetNames).join(\", \");\n throw new Error(\n `${msg(\n subLoc,\n )} is not a valid target. Supported targets are ${validTargets}`,\n );\n } else assertBrowserVersion(subLoc, val);\n }\n\n return value;\n}\n\nfunction assertBrowsersList(loc: GeneralPath, value: unknown) {\n if (value !== undefined && !isBrowsersQueryValid(value)) {\n throw new Error(\n `${msg(loc)} must be undefined, a string or an array of strings`,\n );\n }\n}\n\nfunction assertBrowserVersion(loc: GeneralPath, value: unknown) {\n if (typeof value === \"number\" && Math.round(value) === value) return;\n if (typeof value === \"string\") return;\n\n throw new Error(`${msg(loc)} must be a string or an integer number`);\n}\n\nexport function assertAssumptions(\n loc: GeneralPath,\n value: { [key: string]: unknown },\n): { [name: string]: boolean } | void {\n if (value === undefined) return;\n\n if (typeof value !== \"object\" || value === null) {\n throw new Error(`${msg(loc)} must be an object or undefined.`);\n }\n\n // todo(flow->ts): remove any\n let root: any = loc;\n do {\n root = root.parent;\n } while (root.type !== \"root\");\n const inPreset = root.source === \"preset\";\n\n for (const name of Object.keys(value)) {\n const subLoc = access(loc, name);\n if (!assumptionsNames.has(name as AssumptionName)) {\n throw new Error(`${msg(subLoc)} is not a supported assumption.`);\n }\n if (typeof value[name] !== \"boolean\") {\n throw new Error(`${msg(subLoc)} must be a boolean.`);\n }\n if (inPreset && value[name] === false) {\n throw new Error(\n `${msg(subLoc)} cannot be set to 'false' inside presets.`,\n );\n }\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperCompilationTargets","data","require","_options","msg","loc","type","parent","name","index","JSON","stringify","Error","access","assertRootMode","value","undefined","assertSourceMaps","assertCompact","assertSourceType","assertCallerMetadata","obj","assertObject","prop","Object","keys","propLoc","assertInputSourceMap","assertString","assertFunction","assertBoolean","Array","isArray","assertArray","assertIgnoreList","arr","forEach","item","i","assertIgnoreItem","RegExp","assertConfigApplicableTest","checkValidTest","assertConfigFileSearch","assertBabelrcSearch","assertPluginList","assertPluginItem","length","assertPluginTarget","opts","assertTargets","isBrowsersQueryValid","browsersLoc","esmodulesLoc","assertBrowsersList","browsers","esmodules","key","val","subLoc","hasOwnProperty","call","TargetNames","validTargets","join","assertBrowserVersion","Math","round","assertAssumptions","root","inPreset","source","assumptionsNames","has"],"sources":["../../../src/config/validation/option-assertions.ts"],"sourcesContent":["import {\n isBrowsersQueryValid,\n TargetNames,\n} from \"@babel/helper-compilation-targets\";\n\nimport type {\n ConfigFileSearch,\n BabelrcSearch,\n IgnoreList,\n IgnoreItem,\n PluginList,\n PluginItem,\n PluginTarget,\n ConfigApplicableTest,\n SourceMapsOption,\n SourceTypeOption,\n CompactOption,\n RootInputSourceMapOption,\n NestingPath,\n CallerMetadata,\n RootMode,\n TargetsListOrObject,\n AssumptionName,\n} from \"./options.ts\";\n\nimport { assumptionsNames } from \"./options.ts\";\n\nexport type { RootPath } from \"./options.ts\";\n\nexport type ValidatorSet = {\n [name: string]: Validator<any>;\n};\n\nexport type Validator<T> = (loc: OptionPath, value: unknown) => T;\n\nexport function msg(loc: NestingPath | GeneralPath): string {\n switch (loc.type) {\n case \"root\":\n return ``;\n case \"env\":\n return `${msg(loc.parent)}.env[\"${loc.name}\"]`;\n case \"overrides\":\n return `${msg(loc.parent)}.overrides[${loc.index}]`;\n case \"option\":\n return `${msg(loc.parent)}.${loc.name}`;\n case \"access\":\n return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;\n default:\n // @ts-expect-error should not happen when code is type checked\n throw new Error(`Assertion failure: Unknown type ${loc.type}`);\n }\n}\n\nexport function access(loc: GeneralPath, name: string | number): AccessPath {\n return {\n type: \"access\",\n name,\n parent: loc,\n };\n}\n\nexport type OptionPath = Readonly<{\n type: \"option\";\n name: string;\n parent: NestingPath;\n}>;\ntype AccessPath = Readonly<{\n type: \"access\";\n name: string | number;\n parent: GeneralPath;\n}>;\ntype GeneralPath = OptionPath | AccessPath;\n\nexport function assertRootMode(\n loc: OptionPath,\n value: unknown,\n): RootMode | void {\n if (\n value !== undefined &&\n value !== \"root\" &&\n value !== \"upward\" &&\n value !== \"upward-optional\"\n ) {\n throw new Error(\n `${msg(loc)} must be a \"root\", \"upward\", \"upward-optional\" or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceMaps(\n loc: OptionPath,\n value: unknown,\n): SourceMapsOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n value !== \"inline\" &&\n value !== \"both\"\n ) {\n throw new Error(\n `${msg(loc)} must be a boolean, \"inline\", \"both\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCompact(\n loc: OptionPath,\n value: unknown,\n): CompactOption | void {\n if (value !== undefined && typeof value !== \"boolean\" && value !== \"auto\") {\n throw new Error(`${msg(loc)} must be a boolean, \"auto\", or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceType(\n loc: OptionPath,\n value: unknown,\n): SourceTypeOption | void {\n if (\n value !== undefined &&\n value !== \"module\" &&\n value !== \"script\" &&\n value !== \"unambiguous\"\n ) {\n throw new Error(\n `${msg(loc)} must be \"module\", \"script\", \"unambiguous\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCallerMetadata(\n loc: OptionPath,\n value: unknown,\n): CallerMetadata | undefined {\n const obj = assertObject(loc, value);\n if (obj) {\n if (typeof obj.name !== \"string\") {\n throw new Error(\n `${msg(loc)} set but does not contain \"name\" property string`,\n );\n }\n\n for (const prop of Object.keys(obj)) {\n const propLoc = access(loc, prop);\n const value = obj[prop];\n if (\n value != null &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\" &&\n typeof value !== \"number\"\n ) {\n // NOTE(logan): I'm limiting the type here so that we can guarantee that\n // the \"caller\" value will serialize to JSON nicely. We can always\n // allow more complex structures later though.\n throw new Error(\n `${msg(\n propLoc,\n )} must be null, undefined, a boolean, a string, or a number.`,\n );\n }\n }\n }\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n\nexport function assertInputSourceMap(\n loc: OptionPath,\n value: unknown,\n): RootInputSourceMapOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n (typeof value !== \"object\" || !value)\n ) {\n throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);\n }\n return value;\n}\n\nexport function assertString(loc: GeneralPath, value: unknown): string | void {\n if (value !== undefined && typeof value !== \"string\") {\n throw new Error(`${msg(loc)} must be a string, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertFunction(\n loc: GeneralPath,\n value: unknown,\n): Function | void {\n if (value !== undefined && typeof value !== \"function\") {\n throw new Error(`${msg(loc)} must be a function, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBoolean(\n loc: GeneralPath,\n value: unknown,\n): boolean | void {\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new Error(`${msg(loc)} must be a boolean, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertObject(\n loc: GeneralPath,\n value: unknown,\n): { readonly [key: string]: unknown } | void {\n if (\n value !== undefined &&\n (typeof value !== \"object\" || Array.isArray(value) || !value)\n ) {\n throw new Error(`${msg(loc)} must be an object, or undefined`);\n }\n // @ts-expect-error todo(flow->ts) value is still typed as unknown, also assert function typically should not return a value\n return value;\n}\n\nexport function assertArray<T>(\n loc: GeneralPath,\n value: Array<T> | undefined | null,\n): ReadonlyArray<T> | undefined | null {\n if (value != null && !Array.isArray(value)) {\n throw new Error(`${msg(loc)} must be an array, or undefined`);\n }\n return value;\n}\n\nexport function assertIgnoreList(\n loc: OptionPath,\n value: unknown[] | undefined,\n): IgnoreList | void {\n const arr = assertArray(loc, value);\n arr?.forEach((item, i) => assertIgnoreItem(access(loc, i), item));\n // @ts-expect-error todo(flow->ts)\n return arr;\n}\nfunction assertIgnoreItem(loc: GeneralPath, value: unknown): IgnoreItem {\n if (\n typeof value !== \"string\" &&\n typeof value !== \"function\" &&\n !(value instanceof RegExp)\n ) {\n throw new Error(\n `${msg(\n loc,\n )} must be an array of string/Function/RegExp values, or undefined`,\n );\n }\n return value as IgnoreItem;\n}\n\nexport function assertConfigApplicableTest(\n loc: OptionPath,\n value: unknown,\n): ConfigApplicableTest | void {\n if (value === undefined) {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a string/Function/RegExp, or an array of those`,\n );\n }\n return value as ConfigApplicableTest;\n}\n\nfunction checkValidTest(value: unknown): value is string | Function | RegExp {\n return (\n typeof value === \"string\" ||\n typeof value === \"function\" ||\n value instanceof RegExp\n );\n}\n\nexport function assertConfigFileSearch(\n loc: OptionPath,\n value: unknown,\n): ConfigFileSearch | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\"\n ) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string, ` +\n `got ${JSON.stringify(value)}`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBabelrcSearch(\n loc: OptionPath,\n value: unknown,\n): BabelrcSearch | void {\n if (value === undefined || typeof value === \"boolean\") {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` +\n `or an array of those, got ${JSON.stringify(value as any)}`,\n );\n }\n return value as BabelrcSearch;\n}\n\nexport function assertPluginList(\n loc: OptionPath,\n value: unknown[] | null | undefined,\n): PluginList | void {\n const arr = assertArray(loc, value);\n if (arr) {\n // Loop instead of using `.map` in order to preserve object identity\n // for plugin array for use during config chain processing.\n arr.forEach((item, i) => assertPluginItem(access(loc, i), item));\n }\n return arr as any;\n}\nfunction assertPluginItem(loc: GeneralPath, value: unknown): PluginItem {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n throw new Error(`${msg(loc)} must include an object`);\n }\n\n if (value.length > 3) {\n throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);\n }\n\n assertPluginTarget(access(loc, 0), value[0]);\n\n if (value.length > 1) {\n const opts = value[1];\n if (\n opts !== undefined &&\n opts !== false &&\n (typeof opts !== \"object\" || Array.isArray(opts) || opts === null)\n ) {\n throw new Error(\n `${msg(access(loc, 1))} must be an object, false, or undefined`,\n );\n }\n }\n if (value.length === 3) {\n const name = value[2];\n if (name !== undefined && typeof name !== \"string\") {\n throw new Error(\n `${msg(access(loc, 2))} must be a string, or undefined`,\n );\n }\n }\n } else {\n assertPluginTarget(loc, value);\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\nfunction assertPluginTarget(loc: GeneralPath, value: unknown): PluginTarget {\n if (\n (typeof value !== \"object\" || !value) &&\n typeof value !== \"string\" &&\n typeof value !== \"function\"\n ) {\n throw new Error(`${msg(loc)} must be a string, object, function`);\n }\n return value;\n}\n\nexport function assertTargets(\n loc: GeneralPath,\n value: any,\n): TargetsListOrObject {\n if (isBrowsersQueryValid(value)) return value;\n\n if (typeof value !== \"object\" || !value || Array.isArray(value)) {\n throw new Error(\n `${msg(loc)} must be a string, an array of strings or an object`,\n );\n }\n\n const browsersLoc = access(loc, \"browsers\");\n const esmodulesLoc = access(loc, \"esmodules\");\n\n assertBrowsersList(browsersLoc, value.browsers);\n assertBoolean(esmodulesLoc, value.esmodules);\n\n for (const key of Object.keys(value)) {\n const val = value[key];\n const subLoc = access(loc, key);\n\n if (key === \"esmodules\") assertBoolean(subLoc, val);\n else if (key === \"browsers\") assertBrowsersList(subLoc, val);\n else if (!Object.hasOwnProperty.call(TargetNames, key)) {\n const validTargets = Object.keys(TargetNames).join(\", \");\n throw new Error(\n `${msg(\n subLoc,\n )} is not a valid target. Supported targets are ${validTargets}`,\n );\n } else assertBrowserVersion(subLoc, val);\n }\n\n return value;\n}\n\nfunction assertBrowsersList(loc: GeneralPath, value: unknown) {\n if (value !== undefined && !isBrowsersQueryValid(value)) {\n throw new Error(\n `${msg(loc)} must be undefined, a string or an array of strings`,\n );\n }\n}\n\nfunction assertBrowserVersion(loc: GeneralPath, value: unknown) {\n if (typeof value === \"number\" && Math.round(value) === value) return;\n if (typeof value === \"string\") return;\n\n throw new Error(`${msg(loc)} must be a string or an integer number`);\n}\n\nexport function assertAssumptions(\n loc: GeneralPath,\n value: { [key: string]: unknown },\n): { [name: string]: boolean } | void {\n if (value === undefined) return;\n\n if (typeof value !== \"object\" || value === null) {\n throw new Error(`${msg(loc)} must be an object or undefined.`);\n }\n\n // todo(flow->ts): remove any\n let root: any = loc;\n do {\n root = root.parent;\n } while (root.type !== \"root\");\n const inPreset = root.source === \"preset\";\n\n for (const name of Object.keys(value)) {\n const subLoc = access(loc, name);\n if (!assumptionsNames.has(name as AssumptionName)) {\n throw new Error(`${msg(subLoc)} is not a supported assumption.`);\n }\n if (typeof value[name] !== \"boolean\") {\n throw new Error(`${msg(subLoc)} must be a boolean.`);\n }\n if (inPreset && value[name] === false) {\n throw new Error(\n `${msg(subLoc)} cannot be set to 'false' inside presets.`,\n );\n }\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/options.js b/node_modules/@babel/core/lib/config/validation/options.js index f8f17039..e8af7f23 100644 --- a/node_modules/@babel/core/lib/config/validation/options.js +++ b/node_modules/@babel/core/lib/config/validation/options.js @@ -71,8 +71,7 @@ const COMMON_VALIDATORS = { }); } const knownAssumptions = ["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "objectRestNoSymbols", "privateFieldsAsSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]; -const assumptionsNames = new Set(knownAssumptions); -exports.assumptionsNames = assumptionsNames; +const assumptionsNames = exports.assumptionsNames = new Set(knownAssumptions); function getSource(loc) { return loc.type === "root" ? loc.source : getSource(loc.parent); } diff --git a/node_modules/@babel/core/lib/config/validation/options.js.map b/node_modules/@babel/core/lib/config/validation/options.js.map index d3f2059b..0d5c4355 100644 --- a/node_modules/@babel/core/lib/config/validation/options.js.map +++ b/node_modules/@babel/core/lib/config/validation/options.js.map @@ -1 +1 @@ -{"version":3,"names":["_removed","require","_optionAssertions","_configError","ROOT_VALIDATORS","cwd","assertString","root","rootMode","assertRootMode","configFile","assertConfigFileSearch","caller","assertCallerMetadata","filename","filenameRelative","code","assertBoolean","ast","cloneInputAst","envName","BABELRC_VALIDATORS","babelrc","babelrcRoots","assertBabelrcSearch","NONPRESET_VALIDATORS","extends","ignore","assertIgnoreList","only","targets","assertTargets","browserslistConfigFile","browserslistEnv","COMMON_VALIDATORS","inputSourceMap","assertInputSourceMap","presets","assertPluginList","plugins","passPerPreset","assumptions","assertAssumptions","env","assertEnvSet","overrides","assertOverridesList","test","assertConfigApplicableTest","include","exclude","retainLines","comments","shouldPrintComment","assertFunction","compact","assertCompact","minified","auxiliaryCommentBefore","auxiliaryCommentAfter","sourceType","assertSourceType","wrapPluginVisitorMethod","highlightCode","sourceMaps","assertSourceMaps","sourceMap","sourceFileName","sourceRoot","parserOpts","assertObject","generatorOpts","Object","assign","getModuleId","moduleRoot","moduleIds","moduleId","knownAssumptions","assumptionsNames","Set","exports","getSource","loc","type","source","parent","validate","opts","validateNested","error","configError","ConfigError","message","assertNoDuplicateSourcemap","keys","forEach","key","optLoc","name","Error","msg","validator","throwUnknownError","removed","version","unknownOptErr","has","obj","prototype","hasOwnProperty","call","value","access","envLoc","arr","assertArray","index","item","entries","objLoc","overridesLoc","checkNoUnwrappedItemOptionPairs","items","e","lastItem","thisItem","file","options","undefined","request","JSON","stringify"],"sources":["../../../src/config/validation/options.ts"],"sourcesContent":["import type { InputTargets, Targets } from \"@babel/helper-compilation-targets\";\n\nimport type { ConfigItem } from \"../item.ts\";\nimport type Plugin from \"../plugin.ts\";\n\nimport removed from \"./removed.ts\";\nimport {\n msg,\n access,\n assertString,\n assertBoolean,\n assertObject,\n assertArray,\n assertCallerMetadata,\n assertInputSourceMap,\n assertIgnoreList,\n assertPluginList,\n assertConfigApplicableTest,\n assertConfigFileSearch,\n assertBabelrcSearch,\n assertFunction,\n assertRootMode,\n assertSourceMaps,\n assertCompact,\n assertSourceType,\n assertTargets,\n assertAssumptions,\n} from \"./option-assertions.ts\";\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n} from \"./option-assertions.ts\";\nimport type { UnloadedDescriptor } from \"../config-descriptors.ts\";\nimport type { PluginAPI } from \"../helpers/config-api.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { GeneratorOptions } from \"@babel/generator\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst ROOT_VALIDATORS: ValidatorSet = {\n cwd: assertString as Validator<ValidatedOptions[\"cwd\"]>,\n root: assertString as Validator<ValidatedOptions[\"root\"]>,\n rootMode: assertRootMode as Validator<ValidatedOptions[\"rootMode\"]>,\n configFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"configFile\"]\n >,\n\n caller: assertCallerMetadata as Validator<ValidatedOptions[\"caller\"]>,\n filename: assertString as Validator<ValidatedOptions[\"filename\"]>,\n filenameRelative: assertString as Validator<\n ValidatedOptions[\"filenameRelative\"]\n >,\n code: assertBoolean as Validator<ValidatedOptions[\"code\"]>,\n ast: assertBoolean as Validator<ValidatedOptions[\"ast\"]>,\n\n cloneInputAst: assertBoolean as Validator<ValidatedOptions[\"cloneInputAst\"]>,\n\n envName: assertString as Validator<ValidatedOptions[\"envName\"]>,\n};\n\nconst BABELRC_VALIDATORS: ValidatorSet = {\n babelrc: assertBoolean as Validator<ValidatedOptions[\"babelrc\"]>,\n babelrcRoots: assertBabelrcSearch as Validator<\n ValidatedOptions[\"babelrcRoots\"]\n >,\n};\n\nconst NONPRESET_VALIDATORS: ValidatorSet = {\n extends: assertString as Validator<ValidatedOptions[\"extends\"]>,\n ignore: assertIgnoreList as Validator<ValidatedOptions[\"ignore\"]>,\n only: assertIgnoreList as Validator<ValidatedOptions[\"only\"]>,\n\n targets: assertTargets as Validator<ValidatedOptions[\"targets\"]>,\n browserslistConfigFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"browserslistConfigFile\"]\n >,\n browserslistEnv: assertString as Validator<\n ValidatedOptions[\"browserslistEnv\"]\n >,\n};\n\nconst COMMON_VALIDATORS: ValidatorSet = {\n // TODO: Should 'inputSourceMap' be moved to be a root-only option?\n // We may want a boolean-only version to be a common option, with the\n // object only allowed as a root config argument.\n inputSourceMap: assertInputSourceMap as Validator<\n ValidatedOptions[\"inputSourceMap\"]\n >,\n presets: assertPluginList as Validator<ValidatedOptions[\"presets\"]>,\n plugins: assertPluginList as Validator<ValidatedOptions[\"plugins\"]>,\n passPerPreset: assertBoolean as Validator<ValidatedOptions[\"passPerPreset\"]>,\n assumptions: assertAssumptions as Validator<ValidatedOptions[\"assumptions\"]>,\n\n env: assertEnvSet as Validator<ValidatedOptions[\"env\"]>,\n overrides: assertOverridesList as Validator<ValidatedOptions[\"overrides\"]>,\n\n // We could limit these to 'overrides' blocks, but it's not clear why we'd\n // bother, when the ability to limit a config to a specific set of files\n // is a fairly general useful feature.\n test: assertConfigApplicableTest as Validator<ValidatedOptions[\"test\"]>,\n include: assertConfigApplicableTest as Validator<ValidatedOptions[\"include\"]>,\n exclude: assertConfigApplicableTest as Validator<ValidatedOptions[\"exclude\"]>,\n\n retainLines: assertBoolean as Validator<ValidatedOptions[\"retainLines\"]>,\n comments: assertBoolean as Validator<ValidatedOptions[\"comments\"]>,\n shouldPrintComment: assertFunction as Validator<\n ValidatedOptions[\"shouldPrintComment\"]\n >,\n compact: assertCompact as Validator<ValidatedOptions[\"compact\"]>,\n minified: assertBoolean as Validator<ValidatedOptions[\"minified\"]>,\n auxiliaryCommentBefore: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentBefore\"]\n >,\n auxiliaryCommentAfter: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentAfter\"]\n >,\n sourceType: assertSourceType as Validator<ValidatedOptions[\"sourceType\"]>,\n wrapPluginVisitorMethod: assertFunction as Validator<\n ValidatedOptions[\"wrapPluginVisitorMethod\"]\n >,\n highlightCode: assertBoolean as Validator<ValidatedOptions[\"highlightCode\"]>,\n sourceMaps: assertSourceMaps as Validator<ValidatedOptions[\"sourceMaps\"]>,\n sourceMap: assertSourceMaps as Validator<ValidatedOptions[\"sourceMap\"]>,\n sourceFileName: assertString as Validator<ValidatedOptions[\"sourceFileName\"]>,\n sourceRoot: assertString as Validator<ValidatedOptions[\"sourceRoot\"]>,\n parserOpts: assertObject as Validator<ValidatedOptions[\"parserOpts\"]>,\n generatorOpts: assertObject as Validator<ValidatedOptions[\"generatorOpts\"]>,\n};\nif (!process.env.BABEL_8_BREAKING) {\n Object.assign(COMMON_VALIDATORS, {\n getModuleId: assertFunction,\n moduleRoot: assertString,\n moduleIds: assertBoolean,\n moduleId: assertString,\n });\n}\n\nexport type InputOptions = ValidatedOptions;\n\nexport type ValidatedOptions = {\n cwd?: string;\n filename?: string;\n filenameRelative?: string;\n babelrc?: boolean;\n babelrcRoots?: BabelrcSearch;\n configFile?: ConfigFileSearch;\n root?: string;\n rootMode?: RootMode;\n code?: boolean;\n ast?: boolean;\n cloneInputAst?: boolean;\n inputSourceMap?: RootInputSourceMapOption;\n envName?: string;\n caller?: CallerMetadata;\n extends?: string;\n env?: EnvSet<ValidatedOptions>;\n ignore?: IgnoreList;\n only?: IgnoreList;\n overrides?: OverridesList;\n // Generally verify if a given config object should be applied to the given file.\n test?: ConfigApplicableTest;\n include?: ConfigApplicableTest;\n exclude?: ConfigApplicableTest;\n presets?: PluginList;\n plugins?: PluginList;\n passPerPreset?: boolean;\n assumptions?: {\n [name: string]: boolean;\n };\n // browserslists-related options\n targets?: TargetsListOrObject;\n browserslistConfigFile?: ConfigFileSearch;\n browserslistEnv?: string;\n // Options for @babel/generator\n retainLines?: boolean;\n comments?: boolean;\n shouldPrintComment?: Function;\n compact?: CompactOption;\n minified?: boolean;\n auxiliaryCommentBefore?: string;\n auxiliaryCommentAfter?: string;\n // Parser\n sourceType?: SourceTypeOption;\n wrapPluginVisitorMethod?: Function;\n highlightCode?: boolean;\n // Sourcemap generation options.\n sourceMaps?: SourceMapsOption;\n sourceMap?: SourceMapsOption;\n sourceFileName?: string;\n sourceRoot?: string;\n // Deprecate top level parserOpts\n parserOpts?: ParserOptions;\n // Deprecate top level generatorOpts\n generatorOpts?: GeneratorOptions;\n};\n\nexport type NormalizedOptions = {\n readonly targets: Targets;\n} & Omit<ValidatedOptions, \"targets\">;\n\nexport type CallerMetadata = {\n // If 'caller' is specified, require that the name is given for debugging\n // messages.\n name: string;\n};\nexport type EnvSet<T> = {\n [x: string]: T;\n};\nexport type IgnoreItem =\n | string\n | RegExp\n | ((\n path: string | undefined,\n context: { dirname: string; caller: CallerMetadata; envName: string },\n ) => unknown);\nexport type IgnoreList = ReadonlyArray<IgnoreItem>;\n\nexport type PluginOptions = object | void | false;\nexport type PluginTarget = string | object | Function;\nexport type PluginItem =\n | ConfigItem<PluginAPI>\n | Plugin\n | PluginTarget\n | [PluginTarget, PluginOptions]\n | [PluginTarget, PluginOptions, string | void];\nexport type PluginList = ReadonlyArray<PluginItem>;\n\nexport type OverridesList = Array<ValidatedOptions>;\nexport type ConfigApplicableTest = IgnoreItem | Array<IgnoreItem>;\n\nexport type ConfigFileSearch = string | boolean;\nexport type BabelrcSearch = boolean | IgnoreItem | IgnoreList;\nexport type SourceMapsOption = boolean | \"inline\" | \"both\";\nexport type SourceTypeOption = \"module\" | \"script\" | \"unambiguous\";\nexport type CompactOption = boolean | \"auto\";\nexport type RootInputSourceMapOption = {} | boolean;\nexport type RootMode = \"root\" | \"upward\" | \"upward-optional\";\n\nexport type TargetsListOrObject =\n | Targets\n | InputTargets\n | InputTargets[\"browsers\"];\n\nexport type OptionsSource =\n | \"arguments\"\n | \"configfile\"\n | \"babelrcfile\"\n | \"extendsfile\"\n | \"preset\"\n | \"plugin\";\n\nexport type RootPath = Readonly<{\n type: \"root\";\n source: OptionsSource;\n}>;\n\ntype OverridesPath = Readonly<{\n type: \"overrides\";\n index: number;\n parent: RootPath;\n}>;\n\ntype EnvPath = Readonly<{\n type: \"env\";\n name: string;\n parent: RootPath | OverridesPath;\n}>;\n\nexport type NestingPath = RootPath | OverridesPath | EnvPath;\n\nconst knownAssumptions = [\n \"arrayLikeIsIterable\",\n \"constantReexports\",\n \"constantSuper\",\n \"enumerableModuleMeta\",\n \"ignoreFunctionLength\",\n \"ignoreToPrimitiveHint\",\n \"iterableIsArray\",\n \"mutableTemplateObject\",\n \"noClassCalls\",\n \"noDocumentAll\",\n \"noIncompleteNsImportDetection\",\n \"noNewArrows\",\n \"objectRestNoSymbols\",\n \"privateFieldsAsSymbols\",\n \"privateFieldsAsProperties\",\n \"pureGetters\",\n \"setClassMethods\",\n \"setComputedProperties\",\n \"setPublicClassFields\",\n \"setSpreadProperties\",\n \"skipForOfIteratorClosing\",\n \"superIsCallableConstructor\",\n] as const;\nexport type AssumptionName = (typeof knownAssumptions)[number];\nexport const assumptionsNames = new Set(knownAssumptions);\n\nfunction getSource(loc: NestingPath): OptionsSource {\n return loc.type === \"root\" ? loc.source : getSource(loc.parent);\n}\n\nexport function validate(\n type: OptionsSource,\n opts: {},\n filename?: string,\n): ValidatedOptions {\n try {\n return validateNested(\n {\n type: \"root\",\n source: type,\n },\n opts,\n );\n } catch (error) {\n const configError = new ConfigError(error.message, filename);\n // @ts-expect-error TODO: .code is not defined on ConfigError or Error\n if (error.code) configError.code = error.code;\n throw configError;\n }\n}\n\nfunction validateNested(loc: NestingPath, opts: { [key: string]: unknown }) {\n const type = getSource(loc);\n\n assertNoDuplicateSourcemap(opts);\n\n Object.keys(opts).forEach((key: string) => {\n const optLoc = {\n type: \"option\",\n name: key,\n parent: loc,\n } as const;\n\n if (type === \"preset\" && NONPRESET_VALIDATORS[key]) {\n throw new Error(`${msg(optLoc)} is not allowed in preset options`);\n }\n if (type !== \"arguments\" && ROOT_VALIDATORS[key]) {\n throw new Error(\n `${msg(optLoc)} is only allowed in root programmatic options`,\n );\n }\n if (\n type !== \"arguments\" &&\n type !== \"configfile\" &&\n BABELRC_VALIDATORS[key]\n ) {\n if (type === \"babelrcfile\" || type === \"extendsfile\") {\n throw new Error(\n `${msg(\n optLoc,\n )} is not allowed in .babelrc or \"extends\"ed files, only in root programmatic options, ` +\n `or babel.config.js/config file options`,\n );\n }\n\n throw new Error(\n `${msg(\n optLoc,\n )} is only allowed in root programmatic options, or babel.config.js/config file options`,\n );\n }\n\n const validator =\n COMMON_VALIDATORS[key] ||\n NONPRESET_VALIDATORS[key] ||\n BABELRC_VALIDATORS[key] ||\n ROOT_VALIDATORS[key] ||\n (throwUnknownError as Validator<void>);\n\n validator(optLoc, opts[key]);\n });\n\n return opts;\n}\n\nfunction throwUnknownError(loc: OptionPath) {\n const key = loc.name;\n\n if (removed[key]) {\n const { message, version = 5 } = removed[key];\n\n throw new Error(\n `Using removed Babel ${version} option: ${msg(loc)} - ${message}`,\n );\n } else {\n const unknownOptErr = new Error(\n `Unknown option: ${msg(\n loc,\n )}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`,\n );\n // @ts-expect-error todo(flow->ts): consider creating something like BabelConfigError with code field in it\n unknownOptErr.code = \"BABEL_UNKNOWN_OPTION\";\n\n throw unknownOptErr;\n }\n}\n\nfunction has(obj: {}, key: string) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction assertNoDuplicateSourcemap(opts: {}): void {\n if (has(opts, \"sourceMap\") && has(opts, \"sourceMaps\")) {\n throw new Error(\".sourceMap is an alias for .sourceMaps, cannot use both\");\n }\n}\n\nfunction assertEnvSet(\n loc: OptionPath,\n value: unknown,\n): void | EnvSet<ValidatedOptions> {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside of another .env block`);\n }\n const parent: RootPath | OverridesPath = loc.parent;\n\n const obj = assertObject(loc, value);\n if (obj) {\n // Validate but don't copy the .env object in order to preserve\n // object identity for use during config chain processing.\n for (const envName of Object.keys(obj)) {\n const env = assertObject(access(loc, envName), obj[envName]);\n if (!env) continue;\n\n const envLoc = {\n type: \"env\",\n name: envName,\n parent,\n } as const;\n validateNested(envLoc, env);\n }\n }\n return obj;\n}\n\nfunction assertOverridesList(\n loc: OptionPath,\n value: unknown[],\n): undefined | OverridesList {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside an .env block`);\n }\n if (loc.parent.type === \"overrides\") {\n throw new Error(`${msg(loc)} is not allowed inside an .overrides block`);\n }\n const parent: RootPath = loc.parent;\n\n const arr = assertArray(loc, value);\n if (arr) {\n for (const [index, item] of arr.entries()) {\n const objLoc = access(loc, index);\n const env = assertObject(objLoc, item);\n if (!env) throw new Error(`${msg(objLoc)} must be an object`);\n\n const overridesLoc = {\n type: \"overrides\",\n index,\n parent,\n } as const;\n validateNested(overridesLoc, env);\n }\n }\n return arr as OverridesList;\n}\n\nexport function checkNoUnwrappedItemOptionPairs<API>(\n items: Array<UnloadedDescriptor<API>>,\n index: number,\n type: \"plugin\" | \"preset\",\n e: Error,\n): void {\n if (index === 0) return;\n\n const lastItem = items[index - 1];\n const thisItem = items[index];\n\n if (\n lastItem.file &&\n lastItem.options === undefined &&\n typeof thisItem.value === \"object\"\n ) {\n e.message +=\n `\\n- Maybe you meant to use\\n` +\n `\"${type}s\": [\\n [\"${lastItem.file.request}\", ${JSON.stringify(\n thisItem.value,\n undefined,\n 2,\n )}]\\n]\\n` +\n `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`;\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_removed","require","_optionAssertions","_configError","ROOT_VALIDATORS","cwd","assertString","root","rootMode","assertRootMode","configFile","assertConfigFileSearch","caller","assertCallerMetadata","filename","filenameRelative","code","assertBoolean","ast","cloneInputAst","envName","BABELRC_VALIDATORS","babelrc","babelrcRoots","assertBabelrcSearch","NONPRESET_VALIDATORS","extends","ignore","assertIgnoreList","only","targets","assertTargets","browserslistConfigFile","browserslistEnv","COMMON_VALIDATORS","inputSourceMap","assertInputSourceMap","presets","assertPluginList","plugins","passPerPreset","assumptions","assertAssumptions","env","assertEnvSet","overrides","assertOverridesList","test","assertConfigApplicableTest","include","exclude","retainLines","comments","shouldPrintComment","assertFunction","compact","assertCompact","minified","auxiliaryCommentBefore","auxiliaryCommentAfter","sourceType","assertSourceType","wrapPluginVisitorMethod","highlightCode","sourceMaps","assertSourceMaps","sourceMap","sourceFileName","sourceRoot","parserOpts","assertObject","generatorOpts","Object","assign","getModuleId","moduleRoot","moduleIds","moduleId","knownAssumptions","assumptionsNames","exports","Set","getSource","loc","type","source","parent","validate","opts","validateNested","error","configError","ConfigError","message","assertNoDuplicateSourcemap","keys","forEach","key","optLoc","name","Error","msg","validator","throwUnknownError","removed","version","unknownOptErr","has","obj","prototype","hasOwnProperty","call","value","access","envLoc","arr","assertArray","index","item","entries","objLoc","overridesLoc","checkNoUnwrappedItemOptionPairs","items","e","lastItem","thisItem","file","options","undefined","request","JSON","stringify"],"sources":["../../../src/config/validation/options.ts"],"sourcesContent":["import type { InputTargets, Targets } from \"@babel/helper-compilation-targets\";\n\nimport type { ConfigItem } from \"../item.ts\";\nimport type Plugin from \"../plugin.ts\";\n\nimport removed from \"./removed.ts\";\nimport {\n msg,\n access,\n assertString,\n assertBoolean,\n assertObject,\n assertArray,\n assertCallerMetadata,\n assertInputSourceMap,\n assertIgnoreList,\n assertPluginList,\n assertConfigApplicableTest,\n assertConfigFileSearch,\n assertBabelrcSearch,\n assertFunction,\n assertRootMode,\n assertSourceMaps,\n assertCompact,\n assertSourceType,\n assertTargets,\n assertAssumptions,\n} from \"./option-assertions.ts\";\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n} from \"./option-assertions.ts\";\nimport type { UnloadedDescriptor } from \"../config-descriptors.ts\";\nimport type { PluginAPI } from \"../helpers/config-api.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { GeneratorOptions } from \"@babel/generator\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst ROOT_VALIDATORS: ValidatorSet = {\n cwd: assertString as Validator<ValidatedOptions[\"cwd\"]>,\n root: assertString as Validator<ValidatedOptions[\"root\"]>,\n rootMode: assertRootMode as Validator<ValidatedOptions[\"rootMode\"]>,\n configFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"configFile\"]\n >,\n\n caller: assertCallerMetadata as Validator<ValidatedOptions[\"caller\"]>,\n filename: assertString as Validator<ValidatedOptions[\"filename\"]>,\n filenameRelative: assertString as Validator<\n ValidatedOptions[\"filenameRelative\"]\n >,\n code: assertBoolean as Validator<ValidatedOptions[\"code\"]>,\n ast: assertBoolean as Validator<ValidatedOptions[\"ast\"]>,\n\n cloneInputAst: assertBoolean as Validator<ValidatedOptions[\"cloneInputAst\"]>,\n\n envName: assertString as Validator<ValidatedOptions[\"envName\"]>,\n};\n\nconst BABELRC_VALIDATORS: ValidatorSet = {\n babelrc: assertBoolean as Validator<ValidatedOptions[\"babelrc\"]>,\n babelrcRoots: assertBabelrcSearch as Validator<\n ValidatedOptions[\"babelrcRoots\"]\n >,\n};\n\nconst NONPRESET_VALIDATORS: ValidatorSet = {\n extends: assertString as Validator<ValidatedOptions[\"extends\"]>,\n ignore: assertIgnoreList as Validator<ValidatedOptions[\"ignore\"]>,\n only: assertIgnoreList as Validator<ValidatedOptions[\"only\"]>,\n\n targets: assertTargets as Validator<ValidatedOptions[\"targets\"]>,\n browserslistConfigFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"browserslistConfigFile\"]\n >,\n browserslistEnv: assertString as Validator<\n ValidatedOptions[\"browserslistEnv\"]\n >,\n};\n\nconst COMMON_VALIDATORS: ValidatorSet = {\n // TODO: Should 'inputSourceMap' be moved to be a root-only option?\n // We may want a boolean-only version to be a common option, with the\n // object only allowed as a root config argument.\n inputSourceMap: assertInputSourceMap as Validator<\n ValidatedOptions[\"inputSourceMap\"]\n >,\n presets: assertPluginList as Validator<ValidatedOptions[\"presets\"]>,\n plugins: assertPluginList as Validator<ValidatedOptions[\"plugins\"]>,\n passPerPreset: assertBoolean as Validator<ValidatedOptions[\"passPerPreset\"]>,\n assumptions: assertAssumptions as Validator<ValidatedOptions[\"assumptions\"]>,\n\n env: assertEnvSet as Validator<ValidatedOptions[\"env\"]>,\n overrides: assertOverridesList as Validator<ValidatedOptions[\"overrides\"]>,\n\n // We could limit these to 'overrides' blocks, but it's not clear why we'd\n // bother, when the ability to limit a config to a specific set of files\n // is a fairly general useful feature.\n test: assertConfigApplicableTest as Validator<ValidatedOptions[\"test\"]>,\n include: assertConfigApplicableTest as Validator<ValidatedOptions[\"include\"]>,\n exclude: assertConfigApplicableTest as Validator<ValidatedOptions[\"exclude\"]>,\n\n retainLines: assertBoolean as Validator<ValidatedOptions[\"retainLines\"]>,\n comments: assertBoolean as Validator<ValidatedOptions[\"comments\"]>,\n shouldPrintComment: assertFunction as Validator<\n ValidatedOptions[\"shouldPrintComment\"]\n >,\n compact: assertCompact as Validator<ValidatedOptions[\"compact\"]>,\n minified: assertBoolean as Validator<ValidatedOptions[\"minified\"]>,\n auxiliaryCommentBefore: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentBefore\"]\n >,\n auxiliaryCommentAfter: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentAfter\"]\n >,\n sourceType: assertSourceType as Validator<ValidatedOptions[\"sourceType\"]>,\n wrapPluginVisitorMethod: assertFunction as Validator<\n ValidatedOptions[\"wrapPluginVisitorMethod\"]\n >,\n highlightCode: assertBoolean as Validator<ValidatedOptions[\"highlightCode\"]>,\n sourceMaps: assertSourceMaps as Validator<ValidatedOptions[\"sourceMaps\"]>,\n sourceMap: assertSourceMaps as Validator<ValidatedOptions[\"sourceMap\"]>,\n sourceFileName: assertString as Validator<ValidatedOptions[\"sourceFileName\"]>,\n sourceRoot: assertString as Validator<ValidatedOptions[\"sourceRoot\"]>,\n parserOpts: assertObject as Validator<ValidatedOptions[\"parserOpts\"]>,\n generatorOpts: assertObject as Validator<ValidatedOptions[\"generatorOpts\"]>,\n};\nif (!process.env.BABEL_8_BREAKING) {\n Object.assign(COMMON_VALIDATORS, {\n getModuleId: assertFunction,\n moduleRoot: assertString,\n moduleIds: assertBoolean,\n moduleId: assertString,\n });\n}\n\nexport type InputOptions = ValidatedOptions;\n\nexport type ValidatedOptions = {\n cwd?: string;\n filename?: string;\n filenameRelative?: string;\n babelrc?: boolean;\n babelrcRoots?: BabelrcSearch;\n configFile?: ConfigFileSearch;\n root?: string;\n rootMode?: RootMode;\n code?: boolean;\n ast?: boolean;\n cloneInputAst?: boolean;\n inputSourceMap?: RootInputSourceMapOption;\n envName?: string;\n caller?: CallerMetadata;\n extends?: string;\n env?: EnvSet<ValidatedOptions>;\n ignore?: IgnoreList;\n only?: IgnoreList;\n overrides?: OverridesList;\n // Generally verify if a given config object should be applied to the given file.\n test?: ConfigApplicableTest;\n include?: ConfigApplicableTest;\n exclude?: ConfigApplicableTest;\n presets?: PluginList;\n plugins?: PluginList;\n passPerPreset?: boolean;\n assumptions?: {\n [name: string]: boolean;\n };\n // browserslists-related options\n targets?: TargetsListOrObject;\n browserslistConfigFile?: ConfigFileSearch;\n browserslistEnv?: string;\n // Options for @babel/generator\n retainLines?: boolean;\n comments?: boolean;\n shouldPrintComment?: Function;\n compact?: CompactOption;\n minified?: boolean;\n auxiliaryCommentBefore?: string;\n auxiliaryCommentAfter?: string;\n // Parser\n sourceType?: SourceTypeOption;\n wrapPluginVisitorMethod?: Function;\n highlightCode?: boolean;\n // Sourcemap generation options.\n sourceMaps?: SourceMapsOption;\n sourceMap?: SourceMapsOption;\n sourceFileName?: string;\n sourceRoot?: string;\n // Deprecate top level parserOpts\n parserOpts?: ParserOptions;\n // Deprecate top level generatorOpts\n generatorOpts?: GeneratorOptions;\n};\n\nexport type NormalizedOptions = {\n readonly targets: Targets;\n} & Omit<ValidatedOptions, \"targets\">;\n\nexport type CallerMetadata = {\n // If 'caller' is specified, require that the name is given for debugging\n // messages.\n name: string;\n};\nexport type EnvSet<T> = {\n [x: string]: T;\n};\nexport type IgnoreItem =\n | string\n | RegExp\n | ((\n path: string | undefined,\n context: { dirname: string; caller: CallerMetadata; envName: string },\n ) => unknown);\nexport type IgnoreList = ReadonlyArray<IgnoreItem>;\n\nexport type PluginOptions = object | void | false;\nexport type PluginTarget = string | object | Function;\nexport type PluginItem =\n | ConfigItem<PluginAPI>\n | Plugin\n | PluginTarget\n | [PluginTarget, PluginOptions]\n | [PluginTarget, PluginOptions, string | void];\nexport type PluginList = ReadonlyArray<PluginItem>;\n\nexport type OverridesList = Array<ValidatedOptions>;\nexport type ConfigApplicableTest = IgnoreItem | Array<IgnoreItem>;\n\nexport type ConfigFileSearch = string | boolean;\nexport type BabelrcSearch = boolean | IgnoreItem | IgnoreList;\nexport type SourceMapsOption = boolean | \"inline\" | \"both\";\nexport type SourceTypeOption = \"module\" | \"script\" | \"unambiguous\";\nexport type CompactOption = boolean | \"auto\";\nexport type RootInputSourceMapOption = {} | boolean;\nexport type RootMode = \"root\" | \"upward\" | \"upward-optional\";\n\nexport type TargetsListOrObject =\n | Targets\n | InputTargets\n | InputTargets[\"browsers\"];\n\nexport type OptionsSource =\n | \"arguments\"\n | \"configfile\"\n | \"babelrcfile\"\n | \"extendsfile\"\n | \"preset\"\n | \"plugin\";\n\nexport type RootPath = Readonly<{\n type: \"root\";\n source: OptionsSource;\n}>;\n\ntype OverridesPath = Readonly<{\n type: \"overrides\";\n index: number;\n parent: RootPath;\n}>;\n\ntype EnvPath = Readonly<{\n type: \"env\";\n name: string;\n parent: RootPath | OverridesPath;\n}>;\n\nexport type NestingPath = RootPath | OverridesPath | EnvPath;\n\nconst knownAssumptions = [\n \"arrayLikeIsIterable\",\n \"constantReexports\",\n \"constantSuper\",\n \"enumerableModuleMeta\",\n \"ignoreFunctionLength\",\n \"ignoreToPrimitiveHint\",\n \"iterableIsArray\",\n \"mutableTemplateObject\",\n \"noClassCalls\",\n \"noDocumentAll\",\n \"noIncompleteNsImportDetection\",\n \"noNewArrows\",\n \"objectRestNoSymbols\",\n \"privateFieldsAsSymbols\",\n \"privateFieldsAsProperties\",\n \"pureGetters\",\n \"setClassMethods\",\n \"setComputedProperties\",\n \"setPublicClassFields\",\n \"setSpreadProperties\",\n \"skipForOfIteratorClosing\",\n \"superIsCallableConstructor\",\n] as const;\nexport type AssumptionName = (typeof knownAssumptions)[number];\nexport const assumptionsNames = new Set(knownAssumptions);\n\nfunction getSource(loc: NestingPath): OptionsSource {\n return loc.type === \"root\" ? loc.source : getSource(loc.parent);\n}\n\nexport function validate(\n type: OptionsSource,\n opts: {},\n filename?: string,\n): ValidatedOptions {\n try {\n return validateNested(\n {\n type: \"root\",\n source: type,\n },\n opts,\n );\n } catch (error) {\n const configError = new ConfigError(error.message, filename);\n // @ts-expect-error TODO: .code is not defined on ConfigError or Error\n if (error.code) configError.code = error.code;\n throw configError;\n }\n}\n\nfunction validateNested(loc: NestingPath, opts: { [key: string]: unknown }) {\n const type = getSource(loc);\n\n assertNoDuplicateSourcemap(opts);\n\n Object.keys(opts).forEach((key: string) => {\n const optLoc = {\n type: \"option\",\n name: key,\n parent: loc,\n } as const;\n\n if (type === \"preset\" && NONPRESET_VALIDATORS[key]) {\n throw new Error(`${msg(optLoc)} is not allowed in preset options`);\n }\n if (type !== \"arguments\" && ROOT_VALIDATORS[key]) {\n throw new Error(\n `${msg(optLoc)} is only allowed in root programmatic options`,\n );\n }\n if (\n type !== \"arguments\" &&\n type !== \"configfile\" &&\n BABELRC_VALIDATORS[key]\n ) {\n if (type === \"babelrcfile\" || type === \"extendsfile\") {\n throw new Error(\n `${msg(\n optLoc,\n )} is not allowed in .babelrc or \"extends\"ed files, only in root programmatic options, ` +\n `or babel.config.js/config file options`,\n );\n }\n\n throw new Error(\n `${msg(\n optLoc,\n )} is only allowed in root programmatic options, or babel.config.js/config file options`,\n );\n }\n\n const validator =\n COMMON_VALIDATORS[key] ||\n NONPRESET_VALIDATORS[key] ||\n BABELRC_VALIDATORS[key] ||\n ROOT_VALIDATORS[key] ||\n (throwUnknownError as Validator<void>);\n\n validator(optLoc, opts[key]);\n });\n\n return opts;\n}\n\nfunction throwUnknownError(loc: OptionPath) {\n const key = loc.name;\n\n if (removed[key]) {\n const { message, version = 5 } = removed[key];\n\n throw new Error(\n `Using removed Babel ${version} option: ${msg(loc)} - ${message}`,\n );\n } else {\n const unknownOptErr = new Error(\n `Unknown option: ${msg(\n loc,\n )}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`,\n );\n // @ts-expect-error todo(flow->ts): consider creating something like BabelConfigError with code field in it\n unknownOptErr.code = \"BABEL_UNKNOWN_OPTION\";\n\n throw unknownOptErr;\n }\n}\n\nfunction has(obj: {}, key: string) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction assertNoDuplicateSourcemap(opts: {}): void {\n if (has(opts, \"sourceMap\") && has(opts, \"sourceMaps\")) {\n throw new Error(\".sourceMap is an alias for .sourceMaps, cannot use both\");\n }\n}\n\nfunction assertEnvSet(\n loc: OptionPath,\n value: unknown,\n): void | EnvSet<ValidatedOptions> {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside of another .env block`);\n }\n const parent: RootPath | OverridesPath = loc.parent;\n\n const obj = assertObject(loc, value);\n if (obj) {\n // Validate but don't copy the .env object in order to preserve\n // object identity for use during config chain processing.\n for (const envName of Object.keys(obj)) {\n const env = assertObject(access(loc, envName), obj[envName]);\n if (!env) continue;\n\n const envLoc = {\n type: \"env\",\n name: envName,\n parent,\n } as const;\n validateNested(envLoc, env);\n }\n }\n return obj;\n}\n\nfunction assertOverridesList(\n loc: OptionPath,\n value: unknown[],\n): undefined | OverridesList {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside an .env block`);\n }\n if (loc.parent.type === \"overrides\") {\n throw new Error(`${msg(loc)} is not allowed inside an .overrides block`);\n }\n const parent: RootPath = loc.parent;\n\n const arr = assertArray(loc, value);\n if (arr) {\n for (const [index, item] of arr.entries()) {\n const objLoc = access(loc, index);\n const env = assertObject(objLoc, item);\n if (!env) throw new Error(`${msg(objLoc)} must be an object`);\n\n const overridesLoc = {\n type: \"overrides\",\n index,\n parent,\n } as const;\n validateNested(overridesLoc, env);\n }\n }\n return arr as OverridesList;\n}\n\nexport function checkNoUnwrappedItemOptionPairs<API>(\n items: Array<UnloadedDescriptor<API>>,\n index: number,\n type: \"plugin\" | \"preset\",\n e: Error,\n): void {\n if (index === 0) return;\n\n const lastItem = items[index - 1];\n const thisItem = items[index];\n\n if (\n lastItem.file &&\n lastItem.options === undefined &&\n typeof thisItem.value === \"object\"\n ) {\n e.message +=\n `\\n- Maybe you meant to use\\n` +\n `\"${type}s\": [\\n [\"${lastItem.file.request}\", ${JSON.stringify(\n thisItem.value,\n undefined,\n 2,\n )}]\\n]\\n` +\n `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`;\n }\n}\n"],"mappings":";;;;;;;;AAKA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AA+BA,IAAAE,YAAA,GAAAF,OAAA;AAEA,MAAMG,eAA6B,GAAG;EACpCC,GAAG,EAAEC,8BAAkD;EACvDC,IAAI,EAAED,8BAAmD;EACzDE,QAAQ,EAAEC,gCAAyD;EACnEC,UAAU,EAAEC,wCAEX;EAEDC,MAAM,EAAEC,sCAA6D;EACrEC,QAAQ,EAAER,8BAAuD;EACjES,gBAAgB,EAAET,8BAEjB;EACDU,IAAI,EAAEC,+BAAoD;EAC1DC,GAAG,EAAED,+BAAmD;EAExDE,aAAa,EAAEF,+BAA6D;EAE5EG,OAAO,EAAEd;AACX,CAAC;AAED,MAAMe,kBAAgC,GAAG;EACvCC,OAAO,EAAEL,+BAAuD;EAChEM,YAAY,EAAEC;AAGhB,CAAC;AAED,MAAMC,oBAAkC,GAAG;EACzCC,OAAO,EAAEpB,8BAAsD;EAC/DqB,MAAM,EAAEC,kCAAyD;EACjEC,IAAI,EAAED,kCAAuD;EAE7DE,OAAO,EAAEC,+BAAuD;EAChEC,sBAAsB,EAAErB,wCAEvB;EACDsB,eAAe,EAAE3B;AAGnB,CAAC;AAED,MAAM4B,iBAA+B,GAAG;EAItCC,cAAc,EAAEC,sCAEf;EACDC,OAAO,EAAEC,kCAA0D;EACnEC,OAAO,EAAED,kCAA0D;EACnEE,aAAa,EAAEvB,+BAA6D;EAC5EwB,WAAW,EAAEC,mCAA+D;EAE5EC,GAAG,EAAEC,YAAkD;EACvDC,SAAS,EAAEC,mBAA+D;EAK1EC,IAAI,EAAEC,4CAAiE;EACvEC,OAAO,EAAED,4CAAoE;EAC7EE,OAAO,EAAEF,4CAAoE;EAE7EG,WAAW,EAAElC,+BAA2D;EACxEmC,QAAQ,EAAEnC,+BAAwD;EAClEoC,kBAAkB,EAAEC,gCAEnB;EACDC,OAAO,EAAEC,+BAAuD;EAChEC,QAAQ,EAAExC,+BAAwD;EAClEyC,sBAAsB,EAAEpD,8BAEvB;EACDqD,qBAAqB,EAAErD,8BAEtB;EACDsD,UAAU,EAAEC,kCAA6D;EACzEC,uBAAuB,EAAER,gCAExB;EACDS,aAAa,EAAE9C,+BAA6D;EAC5E+C,UAAU,EAAEC,kCAA6D;EACzEC,SAAS,EAAED,kCAA4D;EACvEE,cAAc,EAAE7D,8BAA6D;EAC7E8D,UAAU,EAAE9D,8BAAyD;EACrE+D,UAAU,EAAEC,8BAAyD;EACrEC,aAAa,EAAED;AACjB,CAAC;AACkC;EACjCE,MAAM,CAACC,MAAM,CAACvC,iBAAiB,EAAE;IAC/BwC,WAAW,EAAEpB,gCAAc;IAC3BqB,UAAU,EAAErE,8BAAY;IACxBsE,SAAS,EAAE3D,+BAAa;IACxB4D,QAAQ,EAAEvE;EACZ,CAAC,CAAC;AACJ;AAuIA,MAAMwE,gBAAgB,GAAG,CACvB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,EACjB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,+BAA+B,EAC/B,aAAa,EACb,qBAAqB,EACrB,wBAAwB,EACxB,2BAA2B,EAC3B,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,0BAA0B,EAC1B,4BAA4B,CACpB;AAEH,MAAMC,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG,IAAIE,GAAG,CAACH,gBAAgB,CAAC;AAEzD,SAASI,SAASA,CAACC,GAAgB,EAAiB;EAClD,OAAOA,GAAG,CAACC,IAAI,KAAK,MAAM,GAAGD,GAAG,CAACE,MAAM,GAAGH,SAAS,CAACC,GAAG,CAACG,MAAM,CAAC;AACjE;AAEO,SAASC,QAAQA,CACtBH,IAAmB,EACnBI,IAAQ,EACR1E,QAAiB,EACC;EAClB,IAAI;IACF,OAAO2E,cAAc,CACnB;MACEL,IAAI,EAAE,MAAM;MACZC,MAAM,EAAED;IACV,CAAC,EACDI,IACF,CAAC;EACH,CAAC,CAAC,OAAOE,KAAK,EAAE;IACd,MAAMC,WAAW,GAAG,IAAIC,oBAAW,CAACF,KAAK,CAACG,OAAO,EAAE/E,QAAQ,CAAC;IAE5D,IAAI4E,KAAK,CAAC1E,IAAI,EAAE2E,WAAW,CAAC3E,IAAI,GAAG0E,KAAK,CAAC1E,IAAI;IAC7C,MAAM2E,WAAW;EACnB;AACF;AAEA,SAASF,cAAcA,CAACN,GAAgB,EAAEK,IAAgC,EAAE;EAC1E,MAAMJ,IAAI,GAAGF,SAAS,CAACC,GAAG,CAAC;EAE3BW,0BAA0B,CAACN,IAAI,CAAC;EAEhChB,MAAM,CAACuB,IAAI,CAACP,IAAI,CAAC,CAACQ,OAAO,CAAEC,GAAW,IAAK;IACzC,MAAMC,MAAM,GAAG;MACbd,IAAI,EAAE,QAAQ;MACde,IAAI,EAAEF,GAAG;MACTX,MAAM,EAAEH;IACV,CAAU;IAEV,IAAIC,IAAI,KAAK,QAAQ,IAAI3D,oBAAoB,CAACwE,GAAG,CAAC,EAAE;MAClD,MAAM,IAAIG,KAAK,CAAE,GAAE,IAAAC,qBAAG,EAACH,MAAM,CAAE,mCAAkC,CAAC;IACpE;IACA,IAAId,IAAI,KAAK,WAAW,IAAIhF,eAAe,CAAC6F,GAAG,CAAC,EAAE;MAChD,MAAM,IAAIG,KAAK,CACZ,GAAE,IAAAC,qBAAG,EAACH,MAAM,CAAE,+CACjB,CAAC;IACH;IACA,IACEd,IAAI,KAAK,WAAW,IACpBA,IAAI,KAAK,YAAY,IACrB/D,kBAAkB,CAAC4E,GAAG,CAAC,EACvB;MACA,IAAIb,IAAI,KAAK,aAAa,IAAIA,IAAI,KAAK,aAAa,EAAE;QACpD,MAAM,IAAIgB,KAAK,CACZ,GAAE,IAAAC,qBAAG,EACJH,MACF,CAAE,uFAAsF,GACrF,wCACL,CAAC;MACH;MAEA,MAAM,IAAIE,KAAK,CACZ,GAAE,IAAAC,qBAAG,EACJH,MACF,CAAE,uFACJ,CAAC;IACH;IAEA,MAAMI,SAAS,GACbpE,iBAAiB,CAAC+D,GAAG,CAAC,IACtBxE,oBAAoB,CAACwE,GAAG,CAAC,IACzB5E,kBAAkB,CAAC4E,GAAG,CAAC,IACvB7F,eAAe,CAAC6F,GAAG,CAAC,IACnBM,iBAAqC;IAExCD,SAAS,CAACJ,MAAM,EAAEV,IAAI,CAACS,GAAG,CAAC,CAAC;EAC9B,CAAC,CAAC;EAEF,OAAOT,IAAI;AACb;AAEA,SAASe,iBAAiBA,CAACpB,GAAe,EAAE;EAC1C,MAAMc,GAAG,GAAGd,GAAG,CAACgB,IAAI;EAEpB,IAAIK,gBAAO,CAACP,GAAG,CAAC,EAAE;IAChB,MAAM;MAAEJ,OAAO;MAAEY,OAAO,GAAG;IAAE,CAAC,GAAGD,gBAAO,CAACP,GAAG,CAAC;IAE7C,MAAM,IAAIG,KAAK,CACZ,uBAAsBK,OAAQ,YAAW,IAAAJ,qBAAG,EAAClB,GAAG,CAAE,MAAKU,OAAQ,EAClE,CAAC;EACH,CAAC,MAAM;IACL,MAAMa,aAAa,GAAG,IAAIN,KAAK,CAC5B,mBAAkB,IAAAC,qBAAG,EACpBlB,GACF,CAAE,gGACJ,CAAC;IAEDuB,aAAa,CAAC1F,IAAI,GAAG,sBAAsB;IAE3C,MAAM0F,aAAa;EACrB;AACF;AAEA,SAASC,GAAGA,CAACC,GAAO,EAAEX,GAAW,EAAE;EACjC,OAAOzB,MAAM,CAACqC,SAAS,CAACC,cAAc,CAACC,IAAI,CAACH,GAAG,EAAEX,GAAG,CAAC;AACvD;AAEA,SAASH,0BAA0BA,CAACN,IAAQ,EAAQ;EAClD,IAAImB,GAAG,CAACnB,IAAI,EAAE,WAAW,CAAC,IAAImB,GAAG,CAACnB,IAAI,EAAE,YAAY,CAAC,EAAE;IACrD,MAAM,IAAIY,KAAK,CAAC,yDAAyD,CAAC;EAC5E;AACF;AAEA,SAASxD,YAAYA,CACnBuC,GAAe,EACf6B,KAAc,EACmB;EACjC,IAAI7B,GAAG,CAACG,MAAM,CAACF,IAAI,KAAK,KAAK,EAAE;IAC7B,MAAM,IAAIgB,KAAK,CAAE,GAAE,IAAAC,qBAAG,EAAClB,GAAG,CAAE,8CAA6C,CAAC;EAC5E;EACA,MAAMG,MAAgC,GAAGH,GAAG,CAACG,MAAM;EAEnD,MAAMsB,GAAG,GAAG,IAAAtC,8BAAY,EAACa,GAAG,EAAE6B,KAAK,CAAC;EACpC,IAAIJ,GAAG,EAAE;IAGP,KAAK,MAAMxF,OAAO,IAAIoD,MAAM,CAACuB,IAAI,CAACa,GAAG,CAAC,EAAE;MACtC,MAAMjE,GAAG,GAAG,IAAA2B,8BAAY,EAAC,IAAA2C,wBAAM,EAAC9B,GAAG,EAAE/D,OAAO,CAAC,EAAEwF,GAAG,CAACxF,OAAO,CAAC,CAAC;MAC5D,IAAI,CAACuB,GAAG,EAAE;MAEV,MAAMuE,MAAM,GAAG;QACb9B,IAAI,EAAE,KAAK;QACXe,IAAI,EAAE/E,OAAO;QACbkE;MACF,CAAU;MACVG,cAAc,CAACyB,MAAM,EAAEvE,GAAG,CAAC;IAC7B;EACF;EACA,OAAOiE,GAAG;AACZ;AAEA,SAAS9D,mBAAmBA,CAC1BqC,GAAe,EACf6B,KAAgB,EACW;EAC3B,IAAI7B,GAAG,CAACG,MAAM,CAACF,IAAI,KAAK,KAAK,EAAE;IAC7B,MAAM,IAAIgB,KAAK,CAAE,GAAE,IAAAC,qBAAG,EAAClB,GAAG,CAAE,sCAAqC,CAAC;EACpE;EACA,IAAIA,GAAG,CAACG,MAAM,CAACF,IAAI,KAAK,WAAW,EAAE;IACnC,MAAM,IAAIgB,KAAK,CAAE,GAAE,IAAAC,qBAAG,EAAClB,GAAG,CAAE,4CAA2C,CAAC;EAC1E;EACA,MAAMG,MAAgB,GAAGH,GAAG,CAACG,MAAM;EAEnC,MAAM6B,GAAG,GAAG,IAAAC,6BAAW,EAACjC,GAAG,EAAE6B,KAAK,CAAC;EACnC,IAAIG,GAAG,EAAE;IACP,KAAK,MAAM,CAACE,KAAK,EAAEC,IAAI,CAAC,IAAIH,GAAG,CAACI,OAAO,CAAC,CAAC,EAAE;MACzC,MAAMC,MAAM,GAAG,IAAAP,wBAAM,EAAC9B,GAAG,EAAEkC,KAAK,CAAC;MACjC,MAAM1E,GAAG,GAAG,IAAA2B,8BAAY,EAACkD,MAAM,EAAEF,IAAI,CAAC;MACtC,IAAI,CAAC3E,GAAG,EAAE,MAAM,IAAIyD,KAAK,CAAE,GAAE,IAAAC,qBAAG,EAACmB,MAAM,CAAE,oBAAmB,CAAC;MAE7D,MAAMC,YAAY,GAAG;QACnBrC,IAAI,EAAE,WAAW;QACjBiC,KAAK;QACL/B;MACF,CAAU;MACVG,cAAc,CAACgC,YAAY,EAAE9E,GAAG,CAAC;IACnC;EACF;EACA,OAAOwE,GAAG;AACZ;AAEO,SAASO,+BAA+BA,CAC7CC,KAAqC,EACrCN,KAAa,EACbjC,IAAyB,EACzBwC,CAAQ,EACF;EACN,IAAIP,KAAK,KAAK,CAAC,EAAE;EAEjB,MAAMQ,QAAQ,GAAGF,KAAK,CAACN,KAAK,GAAG,CAAC,CAAC;EACjC,MAAMS,QAAQ,GAAGH,KAAK,CAACN,KAAK,CAAC;EAE7B,IACEQ,QAAQ,CAACE,IAAI,IACbF,QAAQ,CAACG,OAAO,KAAKC,SAAS,IAC9B,OAAOH,QAAQ,CAACd,KAAK,KAAK,QAAQ,EAClC;IACAY,CAAC,CAAC/B,OAAO,IACN,8BAA6B,GAC7B,IAAGT,IAAK,cAAayC,QAAQ,CAACE,IAAI,CAACG,OAAQ,MAAKC,IAAI,CAACC,SAAS,CAC7DN,QAAQ,CAACd,KAAK,EACdiB,SAAS,EACT,CACF,CAAE,QAAO,GACR,iBAAgB7C,IAAK,gEAA+D;EACzF;AACF;AAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/removed.js b/node_modules/@babel/core/lib/config/validation/removed.js index 57270ea9..9bd436e8 100644 --- a/node_modules/@babel/core/lib/config/validation/removed.js +++ b/node_modules/@babel/core/lib/config/validation/removed.js @@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; -var _default = { +var _default = exports.default = { auxiliaryComment: { message: "Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`" }, @@ -63,7 +63,6 @@ var _default = { message: "The `sourceMapTarget` option has been removed because it makes more sense for the tooling " + "that calls Babel to assign `map.file` themselves." } }; -exports.default = _default; 0 && 0; //# sourceMappingURL=removed.js.map diff --git a/node_modules/@babel/core/lib/config/validation/removed.js.map b/node_modules/@babel/core/lib/config/validation/removed.js.map index 51bffd2e..04441b5e 100644 --- a/node_modules/@babel/core/lib/config/validation/removed.js.map +++ b/node_modules/@babel/core/lib/config/validation/removed.js.map @@ -1 +1 @@ -{"version":3,"names":["auxiliaryComment","message","blacklist","breakConfig","experimental","externalHelpers","extra","jsxPragma","loose","metadataUsedHelpers","modules","nonStandard","optional","sourceMapName","stage","whitelist","resolveModuleSource","version","metadata","sourceMapTarget","exports","default","_default"],"sources":["../../../src/config/validation/removed.ts"],"sourcesContent":["export default {\n auxiliaryComment: {\n message: \"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`\",\n },\n blacklist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n breakConfig: {\n message: \"This is not a necessary option in Babel 6\",\n },\n experimental: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n externalHelpers: {\n message:\n \"Use the `external-helpers` plugin instead. \" +\n \"Check out http://babeljs.io/docs/plugins/external-helpers/\",\n },\n extra: {\n message: \"\",\n },\n jsxPragma: {\n message:\n \"use the `pragma` option in the `react-jsx` plugin. \" +\n \"Check out http://babeljs.io/docs/plugins/transform-react-jsx/\",\n },\n loose: {\n message:\n \"Specify the `loose` option for the relevant plugin you are using \" +\n \"or use a preset that sets the option.\",\n },\n metadataUsedHelpers: {\n message: \"Not required anymore as this is enabled by default\",\n },\n modules: {\n message:\n \"Use the corresponding module transform plugin in the `plugins` option. \" +\n \"Check out http://babeljs.io/docs/plugins/#modules\",\n },\n nonStandard: {\n message:\n \"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. \" +\n \"Also check out the react preset http://babeljs.io/docs/plugins/preset-react/\",\n },\n optional: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n sourceMapName: {\n message:\n \"The `sourceMapName` option has been removed because it makes more sense for the \" +\n \"tooling that calls Babel to assign `map.file` themselves.\",\n },\n stage: {\n message:\n \"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets\",\n },\n whitelist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n\n resolveModuleSource: {\n version: 6,\n message: \"Use `babel-plugin-module-resolver@3`'s 'resolvePath' options\",\n },\n metadata: {\n version: 6,\n message:\n \"Generated plugin metadata is always included in the output result\",\n },\n sourceMapTarget: {\n version: 6,\n message:\n \"The `sourceMapTarget` option has been removed because it makes more sense for the tooling \" +\n \"that calls Babel to assign `map.file` themselves.\",\n },\n} as { [name: string]: { version?: number; message: string } };\n"],"mappings":";;;;;;eAAe;EACbA,gBAAgB,EAAE;IAChBC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTD,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAE;IACXF,OAAO,EAAE;EACX,CAAC;EACDG,YAAY,EAAE;IACZH,OAAO,EAAE;EACX,CAAC;EACDI,eAAe,EAAE;IACfJ,OAAO,EACL,6CAA6C,GAC7C;EACJ,CAAC;EACDK,KAAK,EAAE;IACLL,OAAO,EAAE;EACX,CAAC;EACDM,SAAS,EAAE;IACTN,OAAO,EACL,qDAAqD,GACrD;EACJ,CAAC;EACDO,KAAK,EAAE;IACLP,OAAO,EACL,mEAAmE,GACnE;EACJ,CAAC;EACDQ,mBAAmB,EAAE;IACnBR,OAAO,EAAE;EACX,CAAC;EACDS,OAAO,EAAE;IACPT,OAAO,EACL,yEAAyE,GACzE;EACJ,CAAC;EACDU,WAAW,EAAE;IACXV,OAAO,EACL,8EAA8E,GAC9E;EACJ,CAAC;EACDW,QAAQ,EAAE;IACRX,OAAO,EAAE;EACX,CAAC;EACDY,aAAa,EAAE;IACbZ,OAAO,EACL,kFAAkF,GAClF;EACJ,CAAC;EACDa,KAAK,EAAE;IACLb,OAAO,EACL;EACJ,CAAC;EACDc,SAAS,EAAE;IACTd,OAAO,EAAE;EACX,CAAC;EAEDe,mBAAmB,EAAE;IACnBC,OAAO,EAAE,CAAC;IACVhB,OAAO,EAAE;EACX,CAAC;EACDiB,QAAQ,EAAE;IACRD,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL;EACJ,CAAC;EACDkB,eAAe,EAAE;IACfF,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL,4FAA4F,GAC5F;EACJ;AACF,CAAC;AAAAmB,OAAA,CAAAC,OAAA,GAAAC,QAAA;AAAA"}
\ No newline at end of file +{"version":3,"names":["auxiliaryComment","message","blacklist","breakConfig","experimental","externalHelpers","extra","jsxPragma","loose","metadataUsedHelpers","modules","nonStandard","optional","sourceMapName","stage","whitelist","resolveModuleSource","version","metadata","sourceMapTarget"],"sources":["../../../src/config/validation/removed.ts"],"sourcesContent":["export default {\n auxiliaryComment: {\n message: \"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`\",\n },\n blacklist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n breakConfig: {\n message: \"This is not a necessary option in Babel 6\",\n },\n experimental: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n externalHelpers: {\n message:\n \"Use the `external-helpers` plugin instead. \" +\n \"Check out http://babeljs.io/docs/plugins/external-helpers/\",\n },\n extra: {\n message: \"\",\n },\n jsxPragma: {\n message:\n \"use the `pragma` option in the `react-jsx` plugin. \" +\n \"Check out http://babeljs.io/docs/plugins/transform-react-jsx/\",\n },\n loose: {\n message:\n \"Specify the `loose` option for the relevant plugin you are using \" +\n \"or use a preset that sets the option.\",\n },\n metadataUsedHelpers: {\n message: \"Not required anymore as this is enabled by default\",\n },\n modules: {\n message:\n \"Use the corresponding module transform plugin in the `plugins` option. \" +\n \"Check out http://babeljs.io/docs/plugins/#modules\",\n },\n nonStandard: {\n message:\n \"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. \" +\n \"Also check out the react preset http://babeljs.io/docs/plugins/preset-react/\",\n },\n optional: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n sourceMapName: {\n message:\n \"The `sourceMapName` option has been removed because it makes more sense for the \" +\n \"tooling that calls Babel to assign `map.file` themselves.\",\n },\n stage: {\n message:\n \"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets\",\n },\n whitelist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n\n resolveModuleSource: {\n version: 6,\n message: \"Use `babel-plugin-module-resolver@3`'s 'resolvePath' options\",\n },\n metadata: {\n version: 6,\n message:\n \"Generated plugin metadata is always included in the output result\",\n },\n sourceMapTarget: {\n version: 6,\n message:\n \"The `sourceMapTarget` option has been removed because it makes more sense for the tooling \" +\n \"that calls Babel to assign `map.file` themselves.\",\n },\n} as { [name: string]: { version?: number; message: string } };\n"],"mappings":";;;;;;iCAAe;EACbA,gBAAgB,EAAE;IAChBC,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTD,OAAO,EAAE;EACX,CAAC;EACDE,WAAW,EAAE;IACXF,OAAO,EAAE;EACX,CAAC;EACDG,YAAY,EAAE;IACZH,OAAO,EAAE;EACX,CAAC;EACDI,eAAe,EAAE;IACfJ,OAAO,EACL,6CAA6C,GAC7C;EACJ,CAAC;EACDK,KAAK,EAAE;IACLL,OAAO,EAAE;EACX,CAAC;EACDM,SAAS,EAAE;IACTN,OAAO,EACL,qDAAqD,GACrD;EACJ,CAAC;EACDO,KAAK,EAAE;IACLP,OAAO,EACL,mEAAmE,GACnE;EACJ,CAAC;EACDQ,mBAAmB,EAAE;IACnBR,OAAO,EAAE;EACX,CAAC;EACDS,OAAO,EAAE;IACPT,OAAO,EACL,yEAAyE,GACzE;EACJ,CAAC;EACDU,WAAW,EAAE;IACXV,OAAO,EACL,8EAA8E,GAC9E;EACJ,CAAC;EACDW,QAAQ,EAAE;IACRX,OAAO,EAAE;EACX,CAAC;EACDY,aAAa,EAAE;IACbZ,OAAO,EACL,kFAAkF,GAClF;EACJ,CAAC;EACDa,KAAK,EAAE;IACLb,OAAO,EACL;EACJ,CAAC;EACDc,SAAS,EAAE;IACTd,OAAO,EAAE;EACX,CAAC;EAEDe,mBAAmB,EAAE;IACnBC,OAAO,EAAE,CAAC;IACVhB,OAAO,EAAE;EACX,CAAC;EACDiB,QAAQ,EAAE;IACRD,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL;EACJ,CAAC;EACDkB,eAAe,EAAE;IACfF,OAAO,EAAE,CAAC;IACVhB,OAAO,EACL,4FAA4F,GAC5F;EACJ;AACF,CAAC;AAAA"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/gensync-utils/async.js b/node_modules/@babel/core/lib/gensync-utils/async.js index 9cbe3dc3..9e00fde8 100644 --- a/node_modules/@babel/core/lib/gensync-utils/async.js +++ b/node_modules/@babel/core/lib/gensync-utils/async.js @@ -20,11 +20,10 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar const runGenerator = _gensync()(function* (item) { return yield* item; }); -const isAsync = _gensync()({ +const isAsync = exports.isAsync = _gensync()({ sync: () => false, errback: cb => cb(null, true) }); -exports.isAsync = isAsync; function maybeAsync(fn, message) { return _gensync()({ sync(...args) { @@ -55,7 +54,7 @@ function forwardAsync(action, cb) { return cb(adapted); }); } -const onFirstPause = _gensync()({ +const onFirstPause = exports.onFirstPause = _gensync()({ name: "onFirstPause", arity: 2, sync: function (item) { @@ -72,8 +71,7 @@ const onFirstPause = _gensync()({ } } }); -exports.onFirstPause = onFirstPause; -const waitFor = _gensync()({ +const waitFor = exports.waitFor = _gensync()({ sync: x => x, async: function () { var _ref2 = _asyncToGenerator(function* (x) { @@ -84,7 +82,6 @@ const waitFor = _gensync()({ }; }() }); -exports.waitFor = waitFor; function isThenable(val) { return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; } diff --git a/node_modules/@babel/core/lib/gensync-utils/async.js.map b/node_modules/@babel/core/lib/gensync-utils/async.js.map index 7c49063c..8c7d46cc 100644 --- a/node_modules/@babel/core/lib/gensync-utils/async.js.map +++ b/node_modules/@babel/core/lib/gensync-utils/async.js.map @@ -1 +1 @@ -{"version":3,"names":["_gensync","data","require","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","runGenerator","gensync","item","isAsync","sync","errback","cb","exports","maybeAsync","message","result","isThenable","Error","async","withKind","_ref","_x","forwardAsync","action","g","kind","adapted","onFirstPause","name","arity","firstPause","completed","waitFor","x","_ref2","_x2","val"],"sources":["../../src/gensync-utils/async.ts"],"sourcesContent":["import gensync, { type Gensync, type Handler, type Callback } from \"gensync\";\n\ntype MaybePromise<T> = T | Promise<T>;\n\nconst runGenerator: {\n sync<Return>(gen: Handler<Return>): Return;\n async<Return>(gen: Handler<Return>): Promise<Return>;\n errback<Return>(gen: Handler<Return>, cb: Callback<Return>): void;\n} = gensync(function* (item: Handler<any>): Handler<any> {\n return yield* item;\n});\n\n// This Gensync returns true if the current execution context is\n// asynchronous, otherwise it returns false.\nexport const isAsync = gensync({\n sync: () => false,\n errback: cb => cb(null, true),\n});\n\n// This function wraps any functions (which could be either synchronous or\n// asynchronous) with a Gensync. If the wrapped function returns a promise\n// but the current execution context is synchronous, it will throw the\n// provided error.\n// This is used to handle user-provided functions which could be asynchronous.\nexport function maybeAsync<Args extends unknown[], Return>(\n fn: (...args: Args) => Return,\n message: string,\n): Gensync<Args, Return> {\n return gensync({\n sync(...args) {\n const result = fn.apply(this, args);\n if (isThenable(result)) throw new Error(message);\n return result;\n },\n async(...args) {\n return Promise.resolve(fn.apply(this, args));\n },\n });\n}\n\nconst withKind = gensync({\n sync: cb => cb(\"sync\"),\n async: async cb => cb(\"async\"),\n}) as <T>(cb: (kind: \"sync\" | \"async\") => MaybePromise<T>) => Handler<T>;\n\n// This function wraps a generator (or a Gensync) into another function which,\n// when called, will run the provided generator in a sync or async way, depending\n// on the execution context where this forwardAsync function is called.\n// This is useful, for example, when passing a callback to a function which isn't\n// aware of gensync, but it only knows about synchronous and asynchronous functions.\n// An example is cache.using, which being exposed to the user must be as simple as\n// possible:\n// yield* forwardAsync(gensyncFn, wrappedFn =>\n// cache.using(x => {\n// // Here we don't know about gensync. wrappedFn is a\n// // normal sync or async function\n// return wrappedFn(x);\n// })\n// )\nexport function forwardAsync<Args extends unknown[], Return>(\n action: (...args: Args) => Handler<Return>,\n cb: (\n adapted: (...args: Args) => MaybePromise<Return>,\n ) => MaybePromise<Return>,\n): Handler<Return> {\n const g = gensync(action);\n return withKind(kind => {\n const adapted = g[kind];\n return cb(adapted);\n });\n}\n\n// If the given generator is executed asynchronously, the first time that it\n// is paused (i.e. When it yields a gensync generator which can't be run\n// synchronously), call the \"firstPause\" callback.\nexport const onFirstPause = gensync<\n [gen: Handler<unknown>, firstPause: () => void],\n unknown\n>({\n name: \"onFirstPause\",\n arity: 2,\n sync: function (item) {\n return runGenerator.sync(item);\n },\n errback: function (item, firstPause, cb) {\n let completed = false;\n\n runGenerator.errback(item, (err, value) => {\n completed = true;\n cb(err, value);\n });\n\n if (!completed) {\n firstPause();\n }\n },\n}) as <T>(gen: Handler<T>, firstPause: () => void) => Handler<T>;\n\n// Wait for the given promise to be resolved\nexport const waitFor = gensync({\n sync: x => x,\n async: async x => x,\n}) as <T>(p: T | Promise<T>) => Handler<T>;\n\nexport function isThenable<T = any>(val: any): val is PromiseLike<T> {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_gensync","data","require","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","done","Promise","then","_asyncToGenerator","fn","self","args","arguments","apply","err","undefined","runGenerator","gensync","item","isAsync","exports","sync","errback","cb","maybeAsync","message","result","isThenable","Error","async","withKind","_ref","_x","forwardAsync","action","g","kind","adapted","onFirstPause","name","arity","firstPause","completed","waitFor","x","_ref2","_x2","val"],"sources":["../../src/gensync-utils/async.ts"],"sourcesContent":["import gensync, { type Gensync, type Handler, type Callback } from \"gensync\";\n\ntype MaybePromise<T> = T | Promise<T>;\n\nconst runGenerator: {\n sync<Return>(gen: Handler<Return>): Return;\n async<Return>(gen: Handler<Return>): Promise<Return>;\n errback<Return>(gen: Handler<Return>, cb: Callback<Return>): void;\n} = gensync(function* (item: Handler<any>): Handler<any> {\n return yield* item;\n});\n\n// This Gensync returns true if the current execution context is\n// asynchronous, otherwise it returns false.\nexport const isAsync = gensync({\n sync: () => false,\n errback: cb => cb(null, true),\n});\n\n// This function wraps any functions (which could be either synchronous or\n// asynchronous) with a Gensync. If the wrapped function returns a promise\n// but the current execution context is synchronous, it will throw the\n// provided error.\n// This is used to handle user-provided functions which could be asynchronous.\nexport function maybeAsync<Args extends unknown[], Return>(\n fn: (...args: Args) => Return,\n message: string,\n): Gensync<Args, Return> {\n return gensync({\n sync(...args) {\n const result = fn.apply(this, args);\n if (isThenable(result)) throw new Error(message);\n return result;\n },\n async(...args) {\n return Promise.resolve(fn.apply(this, args));\n },\n });\n}\n\nconst withKind = gensync({\n sync: cb => cb(\"sync\"),\n async: async cb => cb(\"async\"),\n}) as <T>(cb: (kind: \"sync\" | \"async\") => MaybePromise<T>) => Handler<T>;\n\n// This function wraps a generator (or a Gensync) into another function which,\n// when called, will run the provided generator in a sync or async way, depending\n// on the execution context where this forwardAsync function is called.\n// This is useful, for example, when passing a callback to a function which isn't\n// aware of gensync, but it only knows about synchronous and asynchronous functions.\n// An example is cache.using, which being exposed to the user must be as simple as\n// possible:\n// yield* forwardAsync(gensyncFn, wrappedFn =>\n// cache.using(x => {\n// // Here we don't know about gensync. wrappedFn is a\n// // normal sync or async function\n// return wrappedFn(x);\n// })\n// )\nexport function forwardAsync<Args extends unknown[], Return>(\n action: (...args: Args) => Handler<Return>,\n cb: (\n adapted: (...args: Args) => MaybePromise<Return>,\n ) => MaybePromise<Return>,\n): Handler<Return> {\n const g = gensync(action);\n return withKind(kind => {\n const adapted = g[kind];\n return cb(adapted);\n });\n}\n\n// If the given generator is executed asynchronously, the first time that it\n// is paused (i.e. When it yields a gensync generator which can't be run\n// synchronously), call the \"firstPause\" callback.\nexport const onFirstPause = gensync<\n [gen: Handler<unknown>, firstPause: () => void],\n unknown\n>({\n name: \"onFirstPause\",\n arity: 2,\n sync: function (item) {\n return runGenerator.sync(item);\n },\n errback: function (item, firstPause, cb) {\n let completed = false;\n\n runGenerator.errback(item, (err, value) => {\n completed = true;\n cb(err, value);\n });\n\n if (!completed) {\n firstPause();\n }\n },\n}) as <T>(gen: Handler<T>, firstPause: () => void) => Handler<T>;\n\n// Wait for the given promise to be resolved\nexport const waitFor = gensync({\n sync: x => x,\n async: async x => x,\n}) as <T>(p: T | Promise<T>) => Handler<T>;\n\nexport function isThenable<T = any>(val: any): val is PromiseLike<T> {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n"],"mappings":";;;;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAA6E,SAAAE,mBAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,EAAAC,GAAA,EAAAC,GAAA,cAAAC,IAAA,GAAAP,GAAA,CAAAK,GAAA,EAAAC,GAAA,OAAAE,KAAA,GAAAD,IAAA,CAAAC,KAAA,WAAAC,KAAA,IAAAP,MAAA,CAAAO,KAAA,iBAAAF,IAAA,CAAAG,IAAA,IAAAT,OAAA,CAAAO,KAAA,YAAAG,OAAA,CAAAV,OAAA,CAAAO,KAAA,EAAAI,IAAA,CAAAT,KAAA,EAAAC,MAAA;AAAA,SAAAS,kBAAAC,EAAA,6BAAAC,IAAA,SAAAC,IAAA,GAAAC,SAAA,aAAAN,OAAA,WAAAV,OAAA,EAAAC,MAAA,QAAAF,GAAA,GAAAc,EAAA,CAAAI,KAAA,CAAAH,IAAA,EAAAC,IAAA,YAAAb,MAAAK,KAAA,IAAAT,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,UAAAI,KAAA,cAAAJ,OAAAe,GAAA,IAAApB,kBAAA,CAAAC,GAAA,EAAAC,OAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,MAAA,WAAAe,GAAA,KAAAhB,KAAA,CAAAiB,SAAA;AAI7E,MAAMC,YAIL,GAAGC,SAAMA,CAAC,CAAC,WAAWC,IAAkB,EAAgB;EACvD,OAAO,OAAOA,IAAI;AACpB,CAAC,CAAC;AAIK,MAAMC,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGF,SAAMA,CAAC,CAAC;EAC7BI,IAAI,EAAEA,CAAA,KAAM,KAAK;EACjBC,OAAO,EAAEC,EAAE,IAAIA,EAAE,CAAC,IAAI,EAAE,IAAI;AAC9B,CAAC,CAAC;AAOK,SAASC,UAAUA,CACxBf,EAA6B,EAC7BgB,OAAe,EACQ;EACvB,OAAOR,SAAMA,CAAC,CAAC;IACbI,IAAIA,CAAC,GAAGV,IAAI,EAAE;MACZ,MAAMe,MAAM,GAAGjB,EAAE,CAACI,KAAK,CAAC,IAAI,EAAEF,IAAI,CAAC;MACnC,IAAIgB,UAAU,CAACD,MAAM,CAAC,EAAE,MAAM,IAAIE,KAAK,CAACH,OAAO,CAAC;MAChD,OAAOC,MAAM;IACf,CAAC;IACDG,KAAKA,CAAC,GAAGlB,IAAI,EAAE;MACb,OAAOL,OAAO,CAACV,OAAO,CAACa,EAAE,CAACI,KAAK,CAAC,IAAI,EAAEF,IAAI,CAAC,CAAC;IAC9C;EACF,CAAC,CAAC;AACJ;AAEA,MAAMmB,QAAQ,GAAGb,SAAMA,CAAC,CAAC;EACvBI,IAAI,EAAEE,EAAE,IAAIA,EAAE,CAAC,MAAM,CAAC;EACtBM,KAAK;IAAA,IAAAE,IAAA,GAAAvB,iBAAA,CAAE,WAAMe,EAAE;MAAA,OAAIA,EAAE,CAAC,OAAO,CAAC;IAAA;IAAA,gBAAAM,MAAAG,EAAA;MAAA,OAAAD,IAAA,CAAAlB,KAAA,OAAAD,SAAA;IAAA;EAAA;AAChC,CAAC,CAAuE;AAgBjE,SAASqB,YAAYA,CAC1BC,MAA0C,EAC1CX,EAEyB,EACR;EACjB,MAAMY,CAAC,GAAGlB,SAAMA,CAAC,CAACiB,MAAM,CAAC;EACzB,OAAOJ,QAAQ,CAACM,IAAI,IAAI;IACtB,MAAMC,OAAO,GAAGF,CAAC,CAACC,IAAI,CAAC;IACvB,OAAOb,EAAE,CAACc,OAAO,CAAC;EACpB,CAAC,CAAC;AACJ;AAKO,MAAMC,YAAY,GAAAlB,OAAA,CAAAkB,YAAA,GAAGrB,SAAMA,CAAC,CAGjC;EACAsB,IAAI,EAAE,cAAc;EACpBC,KAAK,EAAE,CAAC;EACRnB,IAAI,EAAE,SAAAA,CAAUH,IAAI,EAAE;IACpB,OAAOF,YAAY,CAACK,IAAI,CAACH,IAAI,CAAC;EAChC,CAAC;EACDI,OAAO,EAAE,SAAAA,CAAUJ,IAAI,EAAEuB,UAAU,EAAElB,EAAE,EAAE;IACvC,IAAImB,SAAS,GAAG,KAAK;IAErB1B,YAAY,CAACM,OAAO,CAACJ,IAAI,EAAE,CAACJ,GAAG,EAAEX,KAAK,KAAK;MACzCuC,SAAS,GAAG,IAAI;MAChBnB,EAAE,CAACT,GAAG,EAAEX,KAAK,CAAC;IAChB,CAAC,CAAC;IAEF,IAAI,CAACuC,SAAS,EAAE;MACdD,UAAU,CAAC,CAAC;IACd;EACF;AACF,CAAC,CAA+D;AAGzD,MAAME,OAAO,GAAAvB,OAAA,CAAAuB,OAAA,GAAG1B,SAAMA,CAAC,CAAC;EAC7BI,IAAI,EAAEuB,CAAC,IAAIA,CAAC;EACZf,KAAK;IAAA,IAAAgB,KAAA,GAAArC,iBAAA,CAAE,WAAMoC,CAAC;MAAA,OAAIA,CAAC;IAAA;IAAA,gBAAAf,MAAAiB,GAAA;MAAA,OAAAD,KAAA,CAAAhC,KAAA,OAAAD,SAAA;IAAA;EAAA;AACrB,CAAC,CAAyC;AAEnC,SAASe,UAAUA,CAAUoB,GAAQ,EAAyB;EACnE,OACE,CAAC,CAACA,GAAG,KACJ,OAAOA,GAAG,KAAK,QAAQ,IAAI,OAAOA,GAAG,KAAK,UAAU,CAAC,IACtD,CAAC,CAACA,GAAG,CAACxC,IAAI,IACV,OAAOwC,GAAG,CAACxC,IAAI,KAAK,UAAU;AAElC;AAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/gensync-utils/fs.js b/node_modules/@babel/core/lib/gensync-utils/fs.js index db7f3d1d..b842df84 100644 --- a/node_modules/@babel/core/lib/gensync-utils/fs.js +++ b/node_modules/@babel/core/lib/gensync-utils/fs.js @@ -18,16 +18,14 @@ function _gensync() { }; return data; } -const readFile = _gensync()({ +const readFile = exports.readFile = _gensync()({ sync: _fs().readFileSync, errback: _fs().readFile }); -exports.readFile = readFile; -const stat = _gensync()({ +const stat = exports.stat = _gensync()({ sync: _fs().statSync, errback: _fs().stat }); -exports.stat = stat; 0 && 0; //# sourceMappingURL=fs.js.map diff --git a/node_modules/@babel/core/lib/gensync-utils/fs.js.map b/node_modules/@babel/core/lib/gensync-utils/fs.js.map index 6d1a50a5..403a0741 100644 --- a/node_modules/@babel/core/lib/gensync-utils/fs.js.map +++ b/node_modules/@babel/core/lib/gensync-utils/fs.js.map @@ -1 +1 @@ -{"version":3,"names":["_fs","data","require","_gensync","readFile","gensync","sync","fs","readFileSync","errback","exports","stat","statSync"],"sources":["../../src/gensync-utils/fs.ts"],"sourcesContent":["import fs from \"fs\";\nimport gensync from \"gensync\";\n\nexport const readFile = gensync<[filepath: string, encoding: \"utf8\"], string>({\n sync: fs.readFileSync,\n errback: fs.readFile,\n});\n\nexport const stat = gensync({\n sync: fs.statSync,\n errback: fs.stat,\n});\n"],"mappings":";;;;;;AAAA,SAAAA,IAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,GAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,QAAQ,GAAGC,SAAMA,CAAC,CAA+C;EAC5EC,IAAI,EAAEC,IAACA,CAAC,CAACC,YAAY;EACrBC,OAAO,EAAEF,IAACA,CAAC,CAACH;AACd,CAAC,CAAC;AAACM,OAAA,CAAAN,QAAA,GAAAA,QAAA;AAEI,MAAMO,IAAI,GAAGN,SAAMA,CAAC,CAAC;EAC1BC,IAAI,EAAEC,IAACA,CAAC,CAACK,QAAQ;EACjBH,OAAO,EAAEF,IAACA,CAAC,CAACI;AACd,CAAC,CAAC;AAACD,OAAA,CAAAC,IAAA,GAAAA,IAAA;AAAA"}
\ No newline at end of file +{"version":3,"names":["_fs","data","require","_gensync","readFile","exports","gensync","sync","fs","readFileSync","errback","stat","statSync"],"sources":["../../src/gensync-utils/fs.ts"],"sourcesContent":["import fs from \"fs\";\nimport gensync from \"gensync\";\n\nexport const readFile = gensync<[filepath: string, encoding: \"utf8\"], string>({\n sync: fs.readFileSync,\n errback: fs.readFile,\n});\n\nexport const stat = gensync({\n sync: fs.statSync,\n errback: fs.stat,\n});\n"],"mappings":";;;;;;AAAA,SAAAA,IAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,GAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,SAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,QAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEO,MAAMG,QAAQ,GAAAC,OAAA,CAAAD,QAAA,GAAGE,SAAMA,CAAC,CAA+C;EAC5EC,IAAI,EAAEC,IAACA,CAAC,CAACC,YAAY;EACrBC,OAAO,EAAEF,IAACA,CAAC,CAACJ;AACd,CAAC,CAAC;AAEK,MAAMO,IAAI,GAAAN,OAAA,CAAAM,IAAA,GAAGL,SAAMA,CAAC,CAAC;EAC1BC,IAAI,EAAEC,IAACA,CAAC,CAACI,QAAQ;EACjBF,OAAO,EAAEF,IAACA,CAAC,CAACG;AACd,CAAC,CAAC;AAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/index.js b/node_modules/@babel/core/lib/index.js index 64ff8344..7c3fbe20 100644 --- a/node_modules/@babel/core/lib/index.js +++ b/node_modules/@babel/core/lib/index.js @@ -224,10 +224,8 @@ var _transformAst = require("./transform-ast.js"); var _parse = require("./parse.js"); var thisFile = require("./index.js"); ; -const version = "7.23.2"; -exports.version = version; -const DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); -exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS; +const version = exports.version = "7.23.6"; +const DEFAULT_EXTENSIONS = exports.DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); ; { exports.OptionManager = class OptionManager { diff --git a/node_modules/@babel/core/lib/index.js.map b/node_modules/@babel/core/lib/index.js.map index 4bf6e6af..8c4453fd 100644 --- a/node_modules/@babel/core/lib/index.js.map +++ b/node_modules/@babel/core/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_file","require","_buildExternalHelpers","_index","_environment","_types","data","Object","defineProperty","exports","enumerable","get","_parser","_traverse","_template","_index2","_transform","_transformFile","_transformAst","_parse","thisFile","version","DEFAULT_EXTENSIONS","freeze","OptionManager","init","opts","loadOptionsSync","Plugin","alias","Error","types","traverse","tokTypes","template"],"sources":["../src/index.ts"],"sourcesContent":["if (!process.env.IS_PUBLISH && !USE_ESM && process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"BABEL_8_BREAKING is only supported in ESM. Please run `make use-esm`.\",\n );\n}\n\nexport const version = PACKAGE_JSON.version;\n\nexport { default as File } from \"./transformation/file/file.ts\";\nexport type { default as PluginPass } from \"./transformation/plugin-pass.ts\";\nexport { default as buildExternalHelpers } from \"./tools/build-external-helpers.ts\";\nexport { resolvePlugin, resolvePreset } from \"./config/files/index.ts\";\n\nexport { getEnv } from \"./config/helpers/environment.ts\";\n\n// NOTE: Lazy re-exports aren't detected by the Node.js CJS-ESM interop.\n// These are handled by pluginInjectNodeReexportsHints in our babel.config.js\n// so that they can work well.\nexport * as types from \"@babel/types\";\nexport { tokTypes } from \"@babel/parser\";\nexport { default as traverse } from \"@babel/traverse\";\nexport { default as template } from \"@babel/template\";\n\nexport {\n createConfigItem,\n createConfigItemSync,\n createConfigItemAsync,\n} from \"./config/index.ts\";\n\nexport {\n loadPartialConfig,\n loadPartialConfigSync,\n loadPartialConfigAsync,\n loadOptions,\n loadOptionsAsync,\n} from \"./config/index.ts\";\nimport { loadOptionsSync } from \"./config/index.ts\";\nexport { loadOptionsSync };\n\nexport type {\n CallerMetadata,\n InputOptions,\n PluginAPI,\n PluginObject,\n PresetAPI,\n PresetObject,\n} from \"./config/index.ts\";\n\nexport {\n transform,\n transformSync,\n transformAsync,\n type FileResult,\n} from \"./transform.ts\";\nexport {\n transformFile,\n transformFileSync,\n transformFileAsync,\n} from \"./transform-file.ts\";\nexport {\n transformFromAst,\n transformFromAstSync,\n transformFromAstAsync,\n} from \"./transform-ast.ts\";\nexport { parse, parseSync, parseAsync } from \"./parse.ts\";\n\n/**\n * Recommended set of compilable extensions. Not used in @babel/core directly, but meant as\n * as an easy source for tooling making use of @babel/core.\n */\nexport const DEFAULT_EXTENSIONS = Object.freeze([\n \".js\",\n \".jsx\",\n \".es6\",\n \".es\",\n \".mjs\",\n \".cjs\",\n] as const);\n\nimport Module from \"module\";\nimport * as thisFile from \"./index.ts\";\nif (USE_ESM && !IS_STANDALONE) {\n // Pass this module to the CJS proxy, so that it can be synchronously accessed.\n const cjsProxy = Module.createRequire(import.meta.url)(\"../cjs-proxy.cjs\");\n cjsProxy[\"__ initialize @babel/core cjs proxy __\"] = thisFile;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // For easier backward-compatibility, provide an API like the one we exposed in Babel 6.\n // eslint-disable-next-line no-restricted-globals\n exports.OptionManager = class OptionManager {\n init(opts: {}) {\n return loadOptionsSync(opts);\n }\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.Plugin = function Plugin(alias: string) {\n throw new Error(\n `The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`,\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAH,OAAA;AAAyD,SAAAI,OAAA;EAAA,MAAAC,IAAA,GAAAL,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAAC,MAAA,CAAAC,cAAA,KAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA;EAAA;AAAA;AAMzD,SAAAO,QAAA;EAAA,MAAAN,IAAA,GAAAL,OAAA;EAAAW,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,UAAA;EAAA,MAAAP,IAAA,GAAAL,OAAA;EAAAY,SAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,UAAA;EAAA,MAAAR,IAAA,GAAAL,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAS,OAAA,GAAAd,OAAA;AAyBA,IAAAe,UAAA,GAAAf,OAAA;AAMA,IAAAgB,cAAA,GAAAhB,OAAA;AAKA,IAAAiB,aAAA,GAAAjB,OAAA;AAKA,IAAAkB,MAAA,GAAAlB,OAAA;AAgBA,IAAAmB,QAAA,GAAAnB,OAAA;AAAuC;AA1EhC,MAAMoB,OAAO,WAAuB;AAACZ,OAAA,CAAAY,OAAA,GAAAA,OAAA;AAgErC,MAAMC,kBAAkB,GAAGf,MAAM,CAACgB,MAAM,CAAC,CAC9C,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,CACE,CAAC;AAACd,OAAA,CAAAa,kBAAA,GAAAA,kBAAA;AAAA;AAUmC;EAG7Cb,OAAO,CAACe,aAAa,GAAG,MAAMA,aAAa,CAAC;IAC1CC,IAAIA,CAACC,IAAQ,EAAE;MACb,OAAO,IAAAC,uBAAe,EAACD,IAAI,CAAC;IAC9B;EACF,CAAC;EAGDjB,OAAO,CAACmB,MAAM,GAAG,SAASA,MAAMA,CAACC,KAAa,EAAE;IAC9C,MAAM,IAAIC,KAAK,CACZ,QAAOD,KAAM,kEAChB,CAAC;EACH,CAAC;AACH;AAAC,MAAApB,OAAA,CAAAsB,KAAA,GAAAtB,OAAA,CAAAuB,QAAA,GAAAvB,OAAA,CAAAwB,QAAA,GAAAxB,OAAA,CAAAyB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_file","require","_buildExternalHelpers","_index","_environment","_types","data","Object","defineProperty","exports","enumerable","get","_parser","_traverse","_template","_index2","_transform","_transformFile","_transformAst","_parse","thisFile","version","DEFAULT_EXTENSIONS","freeze","OptionManager","init","opts","loadOptionsSync","Plugin","alias","Error","types","traverse","tokTypes","template"],"sources":["../src/index.ts"],"sourcesContent":["if (!process.env.IS_PUBLISH && !USE_ESM && process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"BABEL_8_BREAKING is only supported in ESM. Please run `make use-esm`.\",\n );\n}\n\nexport const version = PACKAGE_JSON.version;\n\nexport { default as File } from \"./transformation/file/file.ts\";\nexport type { default as PluginPass } from \"./transformation/plugin-pass.ts\";\nexport { default as buildExternalHelpers } from \"./tools/build-external-helpers.ts\";\nexport { resolvePlugin, resolvePreset } from \"./config/files/index.ts\";\n\nexport { getEnv } from \"./config/helpers/environment.ts\";\n\n// NOTE: Lazy re-exports aren't detected by the Node.js CJS-ESM interop.\n// These are handled by pluginInjectNodeReexportsHints in our babel.config.js\n// so that they can work well.\nexport * as types from \"@babel/types\";\nexport { tokTypes } from \"@babel/parser\";\nexport { default as traverse } from \"@babel/traverse\";\nexport { default as template } from \"@babel/template\";\n\nexport {\n createConfigItem,\n createConfigItemSync,\n createConfigItemAsync,\n} from \"./config/index.ts\";\n\nexport {\n loadPartialConfig,\n loadPartialConfigSync,\n loadPartialConfigAsync,\n loadOptions,\n loadOptionsAsync,\n} from \"./config/index.ts\";\nimport { loadOptionsSync } from \"./config/index.ts\";\nexport { loadOptionsSync };\n\nexport type {\n CallerMetadata,\n InputOptions,\n PluginAPI,\n PluginObject,\n PresetAPI,\n PresetObject,\n} from \"./config/index.ts\";\n\nexport {\n transform,\n transformSync,\n transformAsync,\n type FileResult,\n} from \"./transform.ts\";\nexport {\n transformFile,\n transformFileSync,\n transformFileAsync,\n} from \"./transform-file.ts\";\nexport {\n transformFromAst,\n transformFromAstSync,\n transformFromAstAsync,\n} from \"./transform-ast.ts\";\nexport { parse, parseSync, parseAsync } from \"./parse.ts\";\n\n/**\n * Recommended set of compilable extensions. Not used in @babel/core directly, but meant as\n * as an easy source for tooling making use of @babel/core.\n */\nexport const DEFAULT_EXTENSIONS = Object.freeze([\n \".js\",\n \".jsx\",\n \".es6\",\n \".es\",\n \".mjs\",\n \".cjs\",\n] as const);\n\nimport Module from \"module\";\nimport * as thisFile from \"./index.ts\";\nif (USE_ESM && !IS_STANDALONE) {\n // Pass this module to the CJS proxy, so that it can be synchronously accessed.\n const cjsProxy = Module.createRequire(import.meta.url)(\"../cjs-proxy.cjs\");\n cjsProxy[\"__ initialize @babel/core cjs proxy __\"] = thisFile;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // For easier backward-compatibility, provide an API like the one we exposed in Babel 6.\n // eslint-disable-next-line no-restricted-globals\n exports.OptionManager = class OptionManager {\n init(opts: {}) {\n return loadOptionsSync(opts);\n }\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.Plugin = function Plugin(alias: string) {\n throw new Error(\n `The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`,\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,YAAA,GAAAH,OAAA;AAAyD,SAAAI,OAAA;EAAA,MAAAC,IAAA,GAAAL,OAAA;EAAAI,MAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAAAC,MAAA,CAAAC,cAAA,KAAAC,OAAA;EAAAC,UAAA;EAAAC,GAAA,WAAAA,CAAA;IAAA,OAAAN,MAAA;EAAA;AAAA;AAMzD,SAAAO,QAAA;EAAA,MAAAN,IAAA,GAAAL,OAAA;EAAAW,OAAA,YAAAA,CAAA;IAAA,OAAAN,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAO,UAAA;EAAA,MAAAP,IAAA,GAAAL,OAAA;EAAAY,SAAA,YAAAA,CAAA;IAAA,OAAAP,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAQ,UAAA;EAAA,MAAAR,IAAA,GAAAL,OAAA;EAAAa,SAAA,YAAAA,CAAA;IAAA,OAAAR,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAS,OAAA,GAAAd,OAAA;AAyBA,IAAAe,UAAA,GAAAf,OAAA;AAMA,IAAAgB,cAAA,GAAAhB,OAAA;AAKA,IAAAiB,aAAA,GAAAjB,OAAA;AAKA,IAAAkB,MAAA,GAAAlB,OAAA;AAgBA,IAAAmB,QAAA,GAAAnB,OAAA;AAAuC;AA1EhC,MAAMoB,OAAO,GAAAZ,OAAA,CAAAY,OAAA,WAAuB;AAgEpC,MAAMC,kBAAkB,GAAAb,OAAA,CAAAa,kBAAA,GAAGf,MAAM,CAACgB,MAAM,CAAC,CAC9C,KAAK,EACL,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,MAAM,CACE,CAAC;AAAC;AAUmC;EAG7Cd,OAAO,CAACe,aAAa,GAAG,MAAMA,aAAa,CAAC;IAC1CC,IAAIA,CAACC,IAAQ,EAAE;MACb,OAAO,IAAAC,uBAAe,EAACD,IAAI,CAAC;IAC9B;EACF,CAAC;EAGDjB,OAAO,CAACmB,MAAM,GAAG,SAASA,MAAMA,CAACC,KAAa,EAAE;IAC9C,MAAM,IAAIC,KAAK,CACZ,QAAOD,KAAM,kEAChB,CAAC;EACH,CAAC;AACH;AAAC,MAAApB,OAAA,CAAAsB,KAAA,GAAAtB,OAAA,CAAAuB,QAAA,GAAAvB,OAAA,CAAAwB,QAAA,GAAAxB,OAAA,CAAAyB,QAAA"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/parse.js b/node_modules/@babel/core/lib/parse.js index 0aaa535e..7e411424 100644 --- a/node_modules/@babel/core/lib/parse.js +++ b/node_modules/@babel/core/lib/parse.js @@ -24,7 +24,7 @@ const parseRunner = _gensync()(function* parse(code, opts) { } return yield* (0, _index2.default)(config.passes, (0, _normalizeOpts.default)(config), code); }); -const parse = function parse(code, opts, callback) { +const parse = exports.parse = function parse(code, opts, callback) { if (typeof opts === "function") { callback = opts; opts = undefined; @@ -36,7 +36,6 @@ const parse = function parse(code, opts, callback) { } (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.errback)(code, opts, callback); }; -exports.parse = parse; function parseSync(...args) { return (0, _rewriteStackTrace.beginHiddenCallStack)(parseRunner.sync)(...args); } diff --git a/node_modules/@babel/core/lib/parse.js.map b/node_modules/@babel/core/lib/parse.js.map index 8c90d199..cf6e53cb 100644 --- a/node_modules/@babel/core/lib/parse.js.map +++ b/node_modules/@babel/core/lib/parse.js.map @@ -1 +1 @@ -{"version":3,"names":["_gensync","data","require","_index","_index2","_normalizeOpts","_rewriteStackTrace","parseRunner","gensync","parse","code","opts","config","loadConfig","parser","passes","normalizeOptions","callback","undefined","beginHiddenCallStack","sync","errback","exports","parseSync","args","parseAsync","async"],"sources":["../src/parse.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig, { type InputOptions } from \"./config/index.ts\";\nimport parser, { type ParseResult } from \"./parser/index.ts\";\nimport normalizeOptions from \"./transformation/normalize-opts.ts\";\nimport type { ValidatedOptions } from \"./config/validation/options.ts\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\ntype FileParseCallback = {\n (err: Error, ast: null): void;\n (err: null, ast: ParseResult | null): void;\n};\n\ntype Parse = {\n (code: string, callback: FileParseCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileParseCallback,\n ): void;\n (code: string, opts?: InputOptions | null): ParseResult | null;\n};\n\nconst parseRunner = gensync(function* parse(\n code: string,\n opts: InputOptions | undefined | null,\n): Handler<ParseResult | null> {\n const config = yield* loadConfig(opts);\n\n if (config === null) {\n return null;\n }\n\n return yield* parser(config.passes, normalizeOptions(config), code);\n});\n\nexport const parse: Parse = function parse(\n code,\n opts?,\n callback?: FileParseCallback,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n opts = undefined as ValidatedOptions;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'parse' function expects a callback. If you need to call it synchronously, please use 'parseSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'parse' function will expect a callback. If you need to call it synchronously, please use 'parseSync'.\",\n // );\n return beginHiddenCallStack(parseRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(parseRunner.errback)(code, opts, callback);\n};\n\nexport function parseSync(...args: Parameters<typeof parseRunner.sync>) {\n return beginHiddenCallStack(parseRunner.sync)(...args);\n}\nexport function parseAsync(...args: Parameters<typeof parseRunner.async>) {\n return beginHiddenCallStack(parseRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAGA,IAAAI,kBAAA,GAAAJ,OAAA;AAiBA,MAAMK,WAAW,GAAGC,SAAMA,CAAC,CAAC,UAAUC,KAAKA,CACzCC,IAAY,EACZC,IAAqC,EACR;EAC7B,MAAMC,MAAM,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAEtC,IAAIC,MAAM,KAAK,IAAI,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,OAAO,OAAO,IAAAE,eAAM,EAACF,MAAM,CAACG,MAAM,EAAE,IAAAC,sBAAgB,EAACJ,MAAM,CAAC,EAAEF,IAAI,CAAC;AACrE,CAAC,CAAC;AAEK,MAAMD,KAAY,GAAG,SAASA,KAAKA,CACxCC,IAAI,EACJC,IAAK,EACLM,QAA4B,EAC5B;EACA,IAAI,OAAON,IAAI,KAAK,UAAU,EAAE;IAC9BM,QAAQ,GAAGN,IAAI;IACfA,IAAI,GAAGO,SAA6B;EACtC;EAEA,IAAID,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACZ,WAAW,CAACa,IAAI,CAAC,CAACV,IAAI,EAAEC,IAAI,CAAC;IAC3D;EACF;EAEA,IAAAQ,uCAAoB,EAACZ,WAAW,CAACc,OAAO,CAAC,CAACX,IAAI,EAAEC,IAAI,EAAEM,QAAQ,CAAC;AACjE,CAAC;AAACK,OAAA,CAAAb,KAAA,GAAAA,KAAA;AAEK,SAASc,SAASA,CAAC,GAAGC,IAAyC,EAAE;EACtE,OAAO,IAAAL,uCAAoB,EAACZ,WAAW,CAACa,IAAI,CAAC,CAAC,GAAGI,IAAI,CAAC;AACxD;AACO,SAASC,UAAUA,CAAC,GAAGD,IAA0C,EAAE;EACxE,OAAO,IAAAL,uCAAoB,EAACZ,WAAW,CAACmB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACzD;AAAC"}
\ No newline at end of file +{"version":3,"names":["_gensync","data","require","_index","_index2","_normalizeOpts","_rewriteStackTrace","parseRunner","gensync","parse","code","opts","config","loadConfig","parser","passes","normalizeOptions","exports","callback","undefined","beginHiddenCallStack","sync","errback","parseSync","args","parseAsync","async"],"sources":["../src/parse.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig, { type InputOptions } from \"./config/index.ts\";\nimport parser, { type ParseResult } from \"./parser/index.ts\";\nimport normalizeOptions from \"./transformation/normalize-opts.ts\";\nimport type { ValidatedOptions } from \"./config/validation/options.ts\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\ntype FileParseCallback = {\n (err: Error, ast: null): void;\n (err: null, ast: ParseResult | null): void;\n};\n\ntype Parse = {\n (code: string, callback: FileParseCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileParseCallback,\n ): void;\n (code: string, opts?: InputOptions | null): ParseResult | null;\n};\n\nconst parseRunner = gensync(function* parse(\n code: string,\n opts: InputOptions | undefined | null,\n): Handler<ParseResult | null> {\n const config = yield* loadConfig(opts);\n\n if (config === null) {\n return null;\n }\n\n return yield* parser(config.passes, normalizeOptions(config), code);\n});\n\nexport const parse: Parse = function parse(\n code,\n opts?,\n callback?: FileParseCallback,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n opts = undefined as ValidatedOptions;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'parse' function expects a callback. If you need to call it synchronously, please use 'parseSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'parse' function will expect a callback. If you need to call it synchronously, please use 'parseSync'.\",\n // );\n return beginHiddenCallStack(parseRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(parseRunner.errback)(code, opts, callback);\n};\n\nexport function parseSync(...args: Parameters<typeof parseRunner.sync>) {\n return beginHiddenCallStack(parseRunner.sync)(...args);\n}\nexport function parseAsync(...args: Parameters<typeof parseRunner.async>) {\n return beginHiddenCallStack(parseRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,cAAA,GAAAH,OAAA;AAGA,IAAAI,kBAAA,GAAAJ,OAAA;AAiBA,MAAMK,WAAW,GAAGC,SAAMA,CAAC,CAAC,UAAUC,KAAKA,CACzCC,IAAY,EACZC,IAAqC,EACR;EAC7B,MAAMC,MAAM,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAEtC,IAAIC,MAAM,KAAK,IAAI,EAAE;IACnB,OAAO,IAAI;EACb;EAEA,OAAO,OAAO,IAAAE,eAAM,EAACF,MAAM,CAACG,MAAM,EAAE,IAAAC,sBAAgB,EAACJ,MAAM,CAAC,EAAEF,IAAI,CAAC;AACrE,CAAC,CAAC;AAEK,MAAMD,KAAY,GAAAQ,OAAA,CAAAR,KAAA,GAAG,SAASA,KAAKA,CACxCC,IAAI,EACJC,IAAK,EACLO,QAA4B,EAC5B;EACA,IAAI,OAAOP,IAAI,KAAK,UAAU,EAAE;IAC9BO,QAAQ,GAAGP,IAAI;IACfA,IAAI,GAAGQ,SAA6B;EACtC;EAEA,IAAID,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACb,WAAW,CAACc,IAAI,CAAC,CAACX,IAAI,EAAEC,IAAI,CAAC;IAC3D;EACF;EAEA,IAAAS,uCAAoB,EAACb,WAAW,CAACe,OAAO,CAAC,CAACZ,IAAI,EAAEC,IAAI,EAAEO,QAAQ,CAAC;AACjE,CAAC;AAEM,SAASK,SAASA,CAAC,GAAGC,IAAyC,EAAE;EACtE,OAAO,IAAAJ,uCAAoB,EAACb,WAAW,CAACc,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AACxD;AACO,SAASC,UAAUA,CAAC,GAAGD,IAA0C,EAAE;EACxE,OAAO,IAAAJ,uCAAoB,EAACb,WAAW,CAACmB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACzD;AAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform-ast.js b/node_modules/@babel/core/lib/transform-ast.js index 0aad9351..0a86cd10 100644 --- a/node_modules/@babel/core/lib/transform-ast.js +++ b/node_modules/@babel/core/lib/transform-ast.js @@ -22,7 +22,7 @@ const transformFromAstRunner = _gensync()(function* (ast, code, opts) { if (!ast) throw new Error("No AST given"); return yield* (0, _index2.run)(config, code, ast); }); -const transformFromAst = function transformFromAst(ast, code, optsOrCallback, maybeCallback) { +const transformFromAst = exports.transformFromAst = function transformFromAst(ast, code, optsOrCallback, maybeCallback) { let opts; let callback; if (typeof optsOrCallback === "function") { @@ -39,7 +39,6 @@ const transformFromAst = function transformFromAst(ast, code, optsOrCallback, ma } (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.errback)(ast, code, opts, callback); }; -exports.transformFromAst = transformFromAst; function transformFromAstSync(...args) { return (0, _rewriteStackTrace.beginHiddenCallStack)(transformFromAstRunner.sync)(...args); } diff --git a/node_modules/@babel/core/lib/transform-ast.js.map b/node_modules/@babel/core/lib/transform-ast.js.map index 8cea709f..c73217c3 100644 --- a/node_modules/@babel/core/lib/transform-ast.js.map +++ b/node_modules/@babel/core/lib/transform-ast.js.map @@ -1 +1 @@ -{"version":3,"names":["_gensync","data","require","_index","_index2","_rewriteStackTrace","transformFromAstRunner","gensync","ast","code","opts","config","loadConfig","Error","run","transformFromAst","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","exports","transformFromAstSync","args","transformFromAstAsync","async"],"sources":["../src/transform-ast.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\nimport type * as t from \"@babel/types\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\ntype AstRoot = t.File | t.Program;\n\ntype TransformFromAst = {\n (ast: AstRoot, code: string, callback: FileResultCallback): void;\n (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (ast: AstRoot, code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformFromAstRunner = gensync(function* (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n): Handler<FileResult | null> {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n if (!ast) throw new Error(\"No AST given\");\n\n return yield* run(config, code, ast);\n});\n\nexport const transformFromAst: TransformFromAst = function transformFromAst(\n ast,\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transformFromAst' function expects a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transformFromAst' function will expect a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n // );\n return beginHiddenCallStack(transformFromAstRunner.sync)(ast, code, opts);\n }\n }\n\n beginHiddenCallStack(transformFromAstRunner.errback)(\n ast,\n code,\n opts,\n callback,\n );\n};\n\nexport function transformFromAstSync(\n ...args: Parameters<typeof transformFromAstRunner.sync>\n) {\n return beginHiddenCallStack(transformFromAstRunner.sync)(...args);\n}\n\nexport function transformFromAstAsync(\n ...args: Parameters<typeof transformFromAstRunner.async>\n) {\n return beginHiddenCallStack(transformFromAstRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,kBAAA,GAAAH,OAAA;AAgBA,MAAMI,sBAAsB,GAAGC,SAAMA,CAAC,CAAC,WACrCC,GAAY,EACZC,IAAY,EACZC,IAAqC,EACT;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,IAAI,CAACH,GAAG,EAAE,MAAM,IAAIK,KAAK,CAAC,cAAc,CAAC;EAEzC,OAAO,OAAO,IAAAC,WAAG,EAACH,MAAM,EAAEF,IAAI,EAAED,GAAG,CAAC;AACtC,CAAC,CAAC;AAEK,MAAMO,gBAAkC,GAAG,SAASA,gBAAgBA,CACzEP,GAAG,EACHC,IAAI,EACJO,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIP,IAAqC;EACzC,IAAIQ,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBN,IAAI,GAAGS,SAAS;EAClB,CAAC,MAAM;IACLT,IAAI,GAAGM,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACd,sBAAsB,CAACe,IAAI,CAAC,CAACb,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC;IAC3E;EACF;EAEA,IAAAU,uCAAoB,EAACd,sBAAsB,CAACgB,OAAO,CAAC,CAClDd,GAAG,EACHC,IAAI,EACJC,IAAI,EACJQ,QACF,CAAC;AACH,CAAC;AAACK,OAAA,CAAAR,gBAAA,GAAAA,gBAAA;AAEK,SAASS,oBAAoBA,CAClC,GAAGC,IAAoD,EACvD;EACA,OAAO,IAAAL,uCAAoB,EAACd,sBAAsB,CAACe,IAAI,CAAC,CAAC,GAAGI,IAAI,CAAC;AACnE;AAEO,SAASC,qBAAqBA,CACnC,GAAGD,IAAqD,EACxD;EACA,OAAO,IAAAL,uCAAoB,EAACd,sBAAsB,CAACqB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACpE;AAAC"}
\ No newline at end of file +{"version":3,"names":["_gensync","data","require","_index","_index2","_rewriteStackTrace","transformFromAstRunner","gensync","ast","code","opts","config","loadConfig","Error","run","transformFromAst","exports","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","transformFromAstSync","args","transformFromAstAsync","async"],"sources":["../src/transform-ast.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\nimport type * as t from \"@babel/types\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\ntype AstRoot = t.File | t.Program;\n\ntype TransformFromAst = {\n (ast: AstRoot, code: string, callback: FileResultCallback): void;\n (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (ast: AstRoot, code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformFromAstRunner = gensync(function* (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n): Handler<FileResult | null> {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n if (!ast) throw new Error(\"No AST given\");\n\n return yield* run(config, code, ast);\n});\n\nexport const transformFromAst: TransformFromAst = function transformFromAst(\n ast,\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transformFromAst' function expects a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transformFromAst' function will expect a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n // );\n return beginHiddenCallStack(transformFromAstRunner.sync)(ast, code, opts);\n }\n }\n\n beginHiddenCallStack(transformFromAstRunner.errback)(\n ast,\n code,\n opts,\n callback,\n );\n};\n\nexport function transformFromAstSync(\n ...args: Parameters<typeof transformFromAstRunner.sync>\n) {\n return beginHiddenCallStack(transformFromAstRunner.sync)(...args);\n}\n\nexport function transformFromAstAsync(\n ...args: Parameters<typeof transformFromAstRunner.async>\n) {\n return beginHiddenCallStack(transformFromAstRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,kBAAA,GAAAH,OAAA;AAgBA,MAAMI,sBAAsB,GAAGC,SAAMA,CAAC,CAAC,WACrCC,GAAY,EACZC,IAAY,EACZC,IAAqC,EACT;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,IAAI,CAACH,GAAG,EAAE,MAAM,IAAIK,KAAK,CAAC,cAAc,CAAC;EAEzC,OAAO,OAAO,IAAAC,WAAG,EAACH,MAAM,EAAEF,IAAI,EAAED,GAAG,CAAC;AACtC,CAAC,CAAC;AAEK,MAAMO,gBAAkC,GAAAC,OAAA,CAAAD,gBAAA,GAAG,SAASA,gBAAgBA,CACzEP,GAAG,EACHC,IAAI,EACJQ,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIR,IAAqC;EACzC,IAAIS,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBP,IAAI,GAAGU,SAAS;EAClB,CAAC,MAAM;IACLV,IAAI,GAAGO,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACf,sBAAsB,CAACgB,IAAI,CAAC,CAACd,GAAG,EAAEC,IAAI,EAAEC,IAAI,CAAC;IAC3E;EACF;EAEA,IAAAW,uCAAoB,EAACf,sBAAsB,CAACiB,OAAO,CAAC,CAClDf,GAAG,EACHC,IAAI,EACJC,IAAI,EACJS,QACF,CAAC;AACH,CAAC;AAEM,SAASK,oBAAoBA,CAClC,GAAGC,IAAoD,EACvD;EACA,OAAO,IAAAJ,uCAAoB,EAACf,sBAAsB,CAACgB,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AACnE;AAEO,SAASC,qBAAqBA,CACnC,GAAGD,IAAqD,EACxD;EACA,OAAO,IAAAJ,uCAAoB,EAACf,sBAAsB,CAACqB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AACpE;AAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform-file-browser.js b/node_modules/@babel/core/lib/transform-file-browser.js index f81925ad..85768097 100644 --- a/node_modules/@babel/core/lib/transform-file-browser.js +++ b/node_modules/@babel/core/lib/transform-file-browser.js @@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", { exports.transformFile = void 0; exports.transformFileAsync = transformFileAsync; exports.transformFileSync = transformFileSync; -const transformFile = function transformFile(filename, opts, callback) { +const transformFile = exports.transformFile = function transformFile(filename, opts, callback) { if (typeof opts === "function") { callback = opts; } callback(new Error("Transforming files is not supported in browsers"), null); }; -exports.transformFile = transformFile; function transformFileSync() { throw new Error("Transforming files is not supported in browsers"); } diff --git a/node_modules/@babel/core/lib/transform-file-browser.js.map b/node_modules/@babel/core/lib/transform-file-browser.js.map index 8a44fb75..9d43573b 100644 --- a/node_modules/@babel/core/lib/transform-file-browser.js.map +++ b/node_modules/@babel/core/lib/transform-file-browser.js.map @@ -1 +1 @@ -{"version":3,"names":["transformFile","filename","opts","callback","Error","exports","transformFileSync","transformFileAsync","Promise","reject"],"sources":["../src/transform-file-browser.ts"],"sourcesContent":["// duplicated from transform-file so we do not have to import anything here\ntype TransformFile = {\n (filename: string, callback: (error: Error, file: null) => void): void;\n (\n filename: string,\n opts: any,\n callback: (error: Error, file: null) => void,\n ): void;\n};\n\nexport const transformFile: TransformFile = function transformFile(\n filename,\n opts,\n callback?: (error: Error, file: null) => void,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n }\n\n callback(new Error(\"Transforming files is not supported in browsers\"), null);\n};\n\nexport function transformFileSync(): never {\n throw new Error(\"Transforming files is not supported in browsers\");\n}\n\nexport function transformFileAsync() {\n return Promise.reject(\n new Error(\"Transforming files is not supported in browsers\"),\n );\n}\n"],"mappings":";;;;;;;;AAUO,MAAMA,aAA4B,GAAG,SAASA,aAAaA,CAChEC,QAAQ,EACRC,IAAI,EACJC,QAA6C,EAC7C;EACA,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9BC,QAAQ,GAAGD,IAAI;EACjB;EAEAC,QAAQ,CAAC,IAAIC,KAAK,CAAC,iDAAiD,CAAC,EAAE,IAAI,CAAC;AAC9E,CAAC;AAACC,OAAA,CAAAL,aAAA,GAAAA,aAAA;AAEK,SAASM,iBAAiBA,CAAA,EAAU;EACzC,MAAM,IAAIF,KAAK,CAAC,iDAAiD,CAAC;AACpE;AAEO,SAASG,kBAAkBA,CAAA,EAAG;EACnC,OAAOC,OAAO,CAACC,MAAM,CACnB,IAAIL,KAAK,CAAC,iDAAiD,CAC7D,CAAC;AACH;AAAC"}
\ No newline at end of file +{"version":3,"names":["transformFile","exports","filename","opts","callback","Error","transformFileSync","transformFileAsync","Promise","reject"],"sources":["../src/transform-file-browser.ts"],"sourcesContent":["// duplicated from transform-file so we do not have to import anything here\ntype TransformFile = {\n (filename: string, callback: (error: Error, file: null) => void): void;\n (\n filename: string,\n opts: any,\n callback: (error: Error, file: null) => void,\n ): void;\n};\n\nexport const transformFile: TransformFile = function transformFile(\n filename,\n opts,\n callback?: (error: Error, file: null) => void,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n }\n\n callback(new Error(\"Transforming files is not supported in browsers\"), null);\n};\n\nexport function transformFileSync(): never {\n throw new Error(\"Transforming files is not supported in browsers\");\n}\n\nexport function transformFileAsync() {\n return Promise.reject(\n new Error(\"Transforming files is not supported in browsers\"),\n );\n}\n"],"mappings":";;;;;;;;AAUO,MAAMA,aAA4B,GAAAC,OAAA,CAAAD,aAAA,GAAG,SAASA,aAAaA,CAChEE,QAAQ,EACRC,IAAI,EACJC,QAA6C,EAC7C;EACA,IAAI,OAAOD,IAAI,KAAK,UAAU,EAAE;IAC9BC,QAAQ,GAAGD,IAAI;EACjB;EAEAC,QAAQ,CAAC,IAAIC,KAAK,CAAC,iDAAiD,CAAC,EAAE,IAAI,CAAC;AAC9E,CAAC;AAEM,SAASC,iBAAiBA,CAAA,EAAU;EACzC,MAAM,IAAID,KAAK,CAAC,iDAAiD,CAAC;AACpE;AAEO,SAASE,kBAAkBA,CAAA,EAAG;EACnC,OAAOC,OAAO,CAACC,MAAM,CACnB,IAAIJ,KAAK,CAAC,iDAAiD,CAC7D,CAAC;AACH;AAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform.js b/node_modules/@babel/core/lib/transform.js index bc1a2c07..be557055 100644 --- a/node_modules/@babel/core/lib/transform.js +++ b/node_modules/@babel/core/lib/transform.js @@ -21,7 +21,7 @@ const transformRunner = _gensync()(function* transform(code, opts) { if (config === null) return null; return yield* (0, _index2.run)(config, code); }); -const transform = function transform(code, optsOrCallback, maybeCallback) { +const transform = exports.transform = function transform(code, optsOrCallback, maybeCallback) { let opts; let callback; if (typeof optsOrCallback === "function") { @@ -38,7 +38,6 @@ const transform = function transform(code, optsOrCallback, maybeCallback) { } (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.errback)(code, opts, callback); }; -exports.transform = transform; function transformSync(...args) { return (0, _rewriteStackTrace.beginHiddenCallStack)(transformRunner.sync)(...args); } diff --git a/node_modules/@babel/core/lib/transform.js.map b/node_modules/@babel/core/lib/transform.js.map index 6be60c5b..f0d79184 100644 --- a/node_modules/@babel/core/lib/transform.js.map +++ b/node_modules/@babel/core/lib/transform.js.map @@ -1 +1 @@ -{"version":3,"names":["_gensync","data","require","_index","_index2","_rewriteStackTrace","transformRunner","gensync","transform","code","opts","config","loadConfig","run","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","exports","transformSync","args","transformAsync","async"],"sources":["../src/transform.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nexport type { FileResult } from \"./transformation/index.ts\";\n\ntype Transform = {\n (code: string, callback: FileResultCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformRunner = gensync(function* transform(\n code: string,\n opts?: InputOptions,\n): Handler<FileResult | null> {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n return yield* run(config, code);\n});\n\nexport const transform: Transform = function transform(\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transform' function expects a callback. If you need to call it synchronously, please use 'transformSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transform' function will expect a callback. If you need to call it synchronously, please use 'transformSync'.\",\n // );\n return beginHiddenCallStack(transformRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(transformRunner.errback)(code, opts, callback);\n};\n\nexport function transformSync(\n ...args: Parameters<typeof transformRunner.sync>\n) {\n return beginHiddenCallStack(transformRunner.sync)(...args);\n}\nexport function transformAsync(\n ...args: Parameters<typeof transformRunner.async>\n) {\n return beginHiddenCallStack(transformRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,kBAAA,GAAAH,OAAA;AAcA,MAAMI,eAAe,GAAGC,SAAMA,CAAC,CAAC,UAAUC,SAASA,CACjDC,IAAY,EACZC,IAAmB,EACS;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,OAAO,OAAO,IAAAE,WAAG,EAACF,MAAM,EAAEF,IAAI,CAAC;AACjC,CAAC,CAAC;AAEK,MAAMD,SAAoB,GAAG,SAASA,SAASA,CACpDC,IAAI,EACJK,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIL,IAAqC;EACzC,IAAIM,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBJ,IAAI,GAAGO,SAAS;EAClB,CAAC,MAAM;IACLP,IAAI,GAAGI,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACZ,eAAe,CAACa,IAAI,CAAC,CAACV,IAAI,EAAEC,IAAI,CAAC;IAC/D;EACF;EAEA,IAAAQ,uCAAoB,EAACZ,eAAe,CAACc,OAAO,CAAC,CAACX,IAAI,EAAEC,IAAI,EAAEM,QAAQ,CAAC;AACrE,CAAC;AAACK,OAAA,CAAAb,SAAA,GAAAA,SAAA;AAEK,SAASc,aAAaA,CAC3B,GAAGC,IAA6C,EAChD;EACA,OAAO,IAAAL,uCAAoB,EAACZ,eAAe,CAACa,IAAI,CAAC,CAAC,GAAGI,IAAI,CAAC;AAC5D;AACO,SAASC,cAAcA,CAC5B,GAAGD,IAA8C,EACjD;EACA,OAAO,IAAAL,uCAAoB,EAACZ,eAAe,CAACmB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AAC7D;AAAC"}
\ No newline at end of file +{"version":3,"names":["_gensync","data","require","_index","_index2","_rewriteStackTrace","transformRunner","gensync","transform","code","opts","config","loadConfig","run","exports","optsOrCallback","maybeCallback","callback","undefined","beginHiddenCallStack","sync","errback","transformSync","args","transformAsync","async"],"sources":["../src/transform.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nexport type { FileResult } from \"./transformation/index.ts\";\n\ntype Transform = {\n (code: string, callback: FileResultCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformRunner = gensync(function* transform(\n code: string,\n opts?: InputOptions,\n): Handler<FileResult | null> {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n return yield* run(config, code);\n});\n\nexport const transform: Transform = function transform(\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transform' function expects a callback. If you need to call it synchronously, please use 'transformSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transform' function will expect a callback. If you need to call it synchronously, please use 'transformSync'.\",\n // );\n return beginHiddenCallStack(transformRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(transformRunner.errback)(code, opts, callback);\n};\n\nexport function transformSync(\n ...args: Parameters<typeof transformRunner.sync>\n) {\n return beginHiddenCallStack(transformRunner.sync)(...args);\n}\nexport function transformAsync(\n ...args: Parameters<typeof transformRunner.async>\n) {\n return beginHiddenCallStack(transformRunner.async)(...args);\n}\n"],"mappings":";;;;;;;;AAAA,SAAAA,SAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,QAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AAEA,IAAAE,MAAA,GAAAD,OAAA;AAEA,IAAAE,OAAA,GAAAF,OAAA;AAGA,IAAAG,kBAAA,GAAAH,OAAA;AAcA,MAAMI,eAAe,GAAGC,SAAMA,CAAC,CAAC,UAAUC,SAASA,CACjDC,IAAY,EACZC,IAAmB,EACS;EAC5B,MAAMC,MAA6B,GAAG,OAAO,IAAAC,cAAU,EAACF,IAAI,CAAC;EAC7D,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,OAAO,OAAO,IAAAE,WAAG,EAACF,MAAM,EAAEF,IAAI,CAAC;AACjC,CAAC,CAAC;AAEK,MAAMD,SAAoB,GAAAM,OAAA,CAAAN,SAAA,GAAG,SAASA,SAASA,CACpDC,IAAI,EACJM,cAAqE,EACrEC,aAAkC,EAClC;EACA,IAAIN,IAAqC;EACzC,IAAIO,QAAwC;EAC5C,IAAI,OAAOF,cAAc,KAAK,UAAU,EAAE;IACxCE,QAAQ,GAAGF,cAAc;IACzBL,IAAI,GAAGQ,SAAS;EAClB,CAAC,MAAM;IACLR,IAAI,GAAGK,cAAc;IACrBE,QAAQ,GAAGD,aAAa;EAC1B;EAEA,IAAIC,QAAQ,KAAKC,SAAS,EAAE;IAKnB;MAIL,OAAO,IAAAC,uCAAoB,EAACb,eAAe,CAACc,IAAI,CAAC,CAACX,IAAI,EAAEC,IAAI,CAAC;IAC/D;EACF;EAEA,IAAAS,uCAAoB,EAACb,eAAe,CAACe,OAAO,CAAC,CAACZ,IAAI,EAAEC,IAAI,EAAEO,QAAQ,CAAC;AACrE,CAAC;AAEM,SAASK,aAAaA,CAC3B,GAAGC,IAA6C,EAChD;EACA,OAAO,IAAAJ,uCAAoB,EAACb,eAAe,CAACc,IAAI,CAAC,CAAC,GAAGG,IAAI,CAAC;AAC5D;AACO,SAASC,cAAcA,CAC5B,GAAGD,IAA8C,EACjD;EACA,OAAO,IAAAJ,uCAAoB,EAACb,eAAe,CAACmB,KAAK,CAAC,CAAC,GAAGF,IAAI,CAAC;AAC7D;AAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/vendor/import-meta-resolve.js b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js index 52d20975..eae3148c 100644 --- a/node_modules/@babel/core/lib/vendor/import-meta-resolve.js +++ b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js @@ -61,9 +61,8 @@ function _util() { }; return data; } -function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } -function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } -const isWindows = _process().platform === 'win32'; +function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } +function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } const own$1 = {}.hasOwnProperty; const classRegExp = /^([A-Z][a-z\d]*)+$/; const kTypes = new Set(['string', 'function', 'number', 'object', 'Function', 'Object', 'boolean', 'bigint', 'symbol']); @@ -141,8 +140,8 @@ codes.ERR_INVALID_PACKAGE_TARGET = createError('ERR_INVALID_PACKAGE_TARGET', (pk } return `Invalid "${isImport ? 'imports' : 'exports'}" target ${JSON.stringify(target)} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ''}${relError ? '; targets must start with "./"' : ''}`; }, Error); -codes.ERR_MODULE_NOT_FOUND = createError('ERR_MODULE_NOT_FOUND', (path, base, type = 'package') => { - return `Cannot find ${type} '${path}' imported from ${base}`; +codes.ERR_MODULE_NOT_FOUND = createError('ERR_MODULE_NOT_FOUND', (path, base, exactUrl = false) => { + return `Cannot find ${exactUrl ? 'module' : 'package'} '${path}' imported from ${base}`; }, Error); codes.ERR_NETWORK_IMPORT_DISALLOWED = createError('ERR_NETWORK_IMPORT_DISALLOWED', "import of '%s' by %s is not supported: %s", Error); codes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError('ERR_PACKAGE_IMPORT_NOT_DEFINED', (specifier, packagePath, base) => { @@ -164,14 +163,6 @@ codes.ERR_INVALID_ARG_VALUE = createError('ERR_INVALID_ARG_VALUE', (name, value, const type = name.includes('.') ? 'property' : 'argument'; return `The ${type} '${name}' ${reason}. Received ${inspected}`; }, TypeError); -codes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError('ERR_UNSUPPORTED_ESM_URL_SCHEME', (url, supported) => { - let message = `Only URLs with a scheme in: ${formatList(supported)} are supported by the default ESM loader`; - if (isWindows && url.protocol.length === 2) { - message += '. On Windows, absolute paths must be valid file:// URLs'; - } - message += `. Received protocol '${url.protocol}'`; - return message; -}, Error); function createError(sym, value, def) { messages.set(sym, value); return makeNodeErrorWithCode(def, sym); @@ -272,89 +263,93 @@ function determineSpecificType(value) { } return `type ${typeof value} (${inspected})`; } +const hasOwnProperty$1 = {}.hasOwnProperty; +const { + ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG$1 +} = codes; +const cache = new Map(); const reader = { read }; var packageJsonReader = reader; -function read(jsonPath) { - try { - const string = _fs().default.readFileSync(_path().toNamespacedPath(_path().join(_path().dirname(jsonPath), 'package.json')), 'utf8'); - return { - string - }; - } catch (error) { - const exception = error; - if (exception.code === 'ENOENT') { - return { - string: undefined - }; - } - throw exception; - } -} -const { - ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG$1 -} = codes; -const packageJsonCache = new Map(); -function getPackageConfig(path, specifier, base) { - const existing = packageJsonCache.get(path); - if (existing !== undefined) { +function read(jsonPath, { + base, + specifier +}) { + const existing = cache.get(jsonPath); + if (existing) { return existing; } - const source = packageJsonReader.read(path).string; - if (source === undefined) { - const packageConfig = { - pjsonPath: path, - exists: false, - main: undefined, - name: undefined, - type: 'none', - exports: undefined, - imports: undefined - }; - packageJsonCache.set(path, packageConfig); - return packageConfig; - } - let packageJson; + let string; try { - packageJson = JSON.parse(source); + string = _fs().default.readFileSync(_path().toNamespacedPath(jsonPath), 'utf8'); } catch (error) { const exception = error; - throw new ERR_INVALID_PACKAGE_CONFIG$1(path, (base ? `"${specifier}" from ` : '') + (0, _url().fileURLToPath)(base || specifier), exception.message); + if (exception.code !== 'ENOENT') { + throw exception; + } } - const { - exports, - imports, - main, - name, - type - } = packageJson; - const packageConfig = { - pjsonPath: path, - exists: true, - main: typeof main === 'string' ? main : undefined, - name: typeof name === 'string' ? name : undefined, - type: type === 'module' || type === 'commonjs' ? type : 'none', - exports, - imports: imports && typeof imports === 'object' ? imports : undefined + const result = { + exists: false, + pjsonPath: jsonPath, + main: undefined, + name: undefined, + type: 'none', + exports: undefined, + imports: undefined }; - packageJsonCache.set(path, packageConfig); - return packageConfig; + if (string !== undefined) { + let parsed; + try { + parsed = JSON.parse(string); + } catch (error_) { + const cause = error_; + const error = new ERR_INVALID_PACKAGE_CONFIG$1(jsonPath, (base ? `"${specifier}" from ` : '') + (0, _url().fileURLToPath)(base || specifier), cause.message); + error.cause = cause; + throw error; + } + result.exists = true; + if (hasOwnProperty$1.call(parsed, 'name') && typeof parsed.name === 'string') { + result.name = parsed.name; + } + if (hasOwnProperty$1.call(parsed, 'main') && typeof parsed.main === 'string') { + result.main = parsed.main; + } + if (hasOwnProperty$1.call(parsed, 'exports')) { + result.exports = parsed.exports; + } + if (hasOwnProperty$1.call(parsed, 'imports')) { + result.imports = parsed.imports; + } + if (hasOwnProperty$1.call(parsed, 'type') && (parsed.type === 'commonjs' || parsed.type === 'module')) { + result.type = parsed.type; + } + } + cache.set(jsonPath, result); + return result; } function getPackageScopeConfig(resolved) { - let packageJsonUrl = new (_url().URL)('package.json', resolved); + let packageJSONUrl = new (_url().URL)('package.json', resolved); while (true) { - const packageJsonPath = packageJsonUrl.pathname; - if (packageJsonPath.endsWith('node_modules/package.json')) break; - const packageConfig = getPackageConfig((0, _url().fileURLToPath)(packageJsonUrl), resolved); - if (packageConfig.exists) return packageConfig; - const lastPackageJsonUrl = packageJsonUrl; - packageJsonUrl = new (_url().URL)('../package.json', packageJsonUrl); - if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) break; - } - const packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); - const packageConfig = { - pjsonPath: packageJsonPath, + const packageJSONPath = packageJSONUrl.pathname; + if (packageJSONPath.endsWith('node_modules/package.json')) { + break; + } + const packageConfig = packageJsonReader.read((0, _url().fileURLToPath)(packageJSONUrl), { + specifier: resolved + }); + if (packageConfig.exists) { + return packageConfig; + } + const lastPackageJSONUrl = packageJSONUrl; + packageJSONUrl = new (_url().URL)('../package.json', packageJSONUrl); + if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { + break; + } + } + const packageJSONPath = (0, _url().fileURLToPath)(packageJSONUrl); + return { + pjsonPath: packageJSONPath, exists: false, main: undefined, name: undefined, @@ -362,8 +357,6 @@ function getPackageScopeConfig(resolved) { exports: undefined, imports: undefined }; - packageJsonCache.set(packageJsonPath, packageConfig); - return packageConfig; } function getPackageType(url) { const packageConfig = getPackageScopeConfig(url); @@ -418,7 +411,18 @@ function extname(url) { function getFileProtocolModuleFormat(url, _context, ignoreErrors) { const ext = extname(url); if (ext === '.js') { - return getPackageType(url) === 'module' ? 'module' : 'commonjs'; + const packageType = getPackageType(url); + if (packageType !== 'none') { + return packageType; + } + return 'commonjs'; + } + if (ext === '') { + const packageType = getPackageType(url); + if (packageType === 'none' || packageType === 'commonjs') { + return 'commonjs'; + } + return 'module'; } const format = extensionFormatMap[ext]; if (format) return format; @@ -430,10 +434,11 @@ function getFileProtocolModuleFormat(url, _context, ignoreErrors) { } function getHttpProtocolModuleFormat() {} function defaultGetFormatWithoutErrors(url, context) { - if (!hasOwnProperty.call(protocolHandlers, url.protocol)) { + const protocol = url.protocol; + if (!hasOwnProperty.call(protocolHandlers, protocol)) { return null; } - return protocolHandlers[url.protocol](url, context, true) || null; + return protocolHandlers[protocol](url, context, true) || null; } const { ERR_INVALID_ARG_VALUE @@ -456,7 +461,6 @@ function getConditionsSet(conditions) { return getDefaultConditionsSet(); } const RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace]; -const experimentalNetworkImports = false; const { ERR_NETWORK_IMPORT_DISALLOWED, ERR_INVALID_MODULE_SPECIFIER, @@ -465,8 +469,7 @@ const { ERR_MODULE_NOT_FOUND, ERR_PACKAGE_IMPORT_NOT_DEFINED, ERR_PACKAGE_PATH_NOT_EXPORTED, - ERR_UNSUPPORTED_DIR_IMPORT, - ERR_UNSUPPORTED_ESM_URL_SCHEME + ERR_UNSUPPORTED_DIR_IMPORT } = codes; const own = {}.hasOwnProperty; const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\|\/|$)/i; @@ -477,19 +480,29 @@ const encodedSepRegEx = /%2f|%5c/i; const emittedPackageWarnings = new Set(); const doubleSlashRegEx = /[/\\]{2}/; function emitInvalidSegmentDeprecation(target, request, match, packageJsonUrl, internal, base, isTarget) { + if (_process().noDeprecation) { + return; + } const pjsonPath = (0, _url().fileURLToPath)(packageJsonUrl); const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null; _process().emitWarning(`Use of deprecated ${double ? 'double slash' : 'leading or trailing slash matching'} resolving "${target}" for module ` + `request "${request}" ${request === match ? '' : `matched to "${match}" `}in the "${internal ? 'imports' : 'exports'}" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, _url().fileURLToPath)(base)}` : ''}.`, 'DeprecationWarning', 'DEP0166'); } function emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) { + if (_process().noDeprecation) { + return; + } const format = defaultGetFormatWithoutErrors(url, { parentURL: base.href }); if (format !== 'module') return; - const path = (0, _url().fileURLToPath)(url.href); + const urlPath = (0, _url().fileURLToPath)(url.href); const pkgPath = (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)); const basePath = (0, _url().fileURLToPath)(base); - if (main) _process().emitWarning(`Package ${pkgPath} has a "main" field set to ${JSON.stringify(main)}, ` + `excluding the full filename and extension to the resolved file at "${path.slice(pkgPath.length)}", imported from ${basePath}.\n Automatic extension resolution of the "main" field is` + 'deprecated for ES modules.', 'DeprecationWarning', 'DEP0151');else _process().emitWarning(`No "main" or "exports" field defined in the package.json for ${pkgPath} resolving the main entry point "${path.slice(pkgPath.length)}", imported from ${basePath}.\nDefault "index" lookups for the main are deprecated for ES modules.`, 'DeprecationWarning', 'DEP0151'); + if (!main) { + _process().emitWarning(`No "main" or "exports" field defined in the package.json for ${pkgPath} resolving the main entry point "${urlPath.slice(pkgPath.length)}", imported from ${basePath}.\nDefault "index" lookups for the main are deprecated for ES modules.`, 'DeprecationWarning', 'DEP0151'); + } else if (_path().resolve(pkgPath, main) !== urlPath) { + _process().emitWarning(`Package ${pkgPath} has a "main" field set to "${main}", ` + `excluding the full filename and extension to the resolved file at "${urlPath.slice(pkgPath.length)}", imported from ${basePath}.\n Automatic extension resolution of the "main" field is ` + 'deprecated for ES modules.', 'DeprecationWarning', 'DEP0151'); + } } function tryStatSync(path) { try { @@ -536,8 +549,22 @@ function legacyMainResolve(packageJsonUrl, packageConfig, base) { throw new ERR_MODULE_NOT_FOUND((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); } function finalizeResolution(resolved, base, preserveSymlinks) { - if (encodedSepRegEx.exec(resolved.pathname) !== null) throw new ERR_INVALID_MODULE_SPECIFIER(resolved.pathname, 'must not include encoded "/" or "\\" characters', (0, _url().fileURLToPath)(base)); - const filePath = (0, _url().fileURLToPath)(resolved); + if (encodedSepRegEx.exec(resolved.pathname) !== null) { + throw new ERR_INVALID_MODULE_SPECIFIER(resolved.pathname, 'must not include encoded "/" or "\\" characters', (0, _url().fileURLToPath)(base)); + } + let filePath; + try { + filePath = (0, _url().fileURLToPath)(resolved); + } catch (error) { + const cause = error; + Object.defineProperty(cause, 'input', { + value: String(resolved) + }); + Object.defineProperty(cause, 'module', { + value: String(base) + }); + throw cause; + } const stats = tryStatSync(filePath.endsWith('/') ? filePath.slice(-1) : filePath); if (stats.isDirectory()) { const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, (0, _url().fileURLToPath)(base)); @@ -545,7 +572,9 @@ function finalizeResolution(resolved, base, preserveSymlinks) { throw error; } if (!stats.isFile()) { - throw new ERR_MODULE_NOT_FOUND(filePath || resolved.pathname, base && (0, _url().fileURLToPath)(base), 'module'); + const error = new ERR_MODULE_NOT_FOUND(filePath || resolved.pathname, base && (0, _url().fileURLToPath)(base), true); + error.url = String(resolved); + throw error; } if (!preserveSymlinks) { const real = (0, _fs().realpathSync)(filePath); @@ -703,6 +732,9 @@ function isConditionalExportsMainSugar(exports, packageJsonUrl, base) { return isConditionalSugar; } function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { + if (_process().noDeprecation) { + return; + } const pjsonPath = (0, _url().fileURLToPath)(pjsonUrl); if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return; emittedPackageWarnings.add(pjsonPath + '|' + match); @@ -861,7 +893,10 @@ function packageResolve(specifier, base, conditions) { packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); continue; } - const packageConfig = getPackageConfig(packageJsonPath, specifier, base); + const packageConfig = packageJsonReader.read(packageJsonPath, { + base, + specifier + }); if (packageConfig.exports !== undefined && packageConfig.exports !== null) { return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions); } @@ -870,7 +905,7 @@ function packageResolve(specifier, base, conditions) { } return new (_url().URL)(packageSubpath, packageJsonUrl); } while (packageJsonPath.length !== lastPath.length); - throw new ERR_MODULE_NOT_FOUND(packageName, (0, _url().fileURLToPath)(base)); + throw new ERR_MODULE_NOT_FOUND(packageName, (0, _url().fileURLToPath)(base), false); } function isRelativeSpecifier(specifier) { if (specifier[0] === '.') { @@ -940,18 +975,6 @@ function throwIfInvalidParentURL(parentURL) { throw new codes.ERR_INVALID_ARG_TYPE('parentURL', ['string', 'URL'], parentURL); } } -function throwIfUnsupportedURLProtocol(url) { - const protocol = url.protocol; - if (protocol !== 'file:' && protocol !== 'data:' && protocol !== 'node:') { - throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(url); - } -} -function throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) { - const protocol = parsed == null ? void 0 : parsed.protocol; - if (protocol && protocol !== 'file:' && protocol !== 'data:' && (!experimentalNetworkImports || protocol !== 'https:' && protocol !== 'http:')) { - throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed, ['file', 'data'].concat(experimentalNetworkImports ? ['https', 'http'] : [])); - } -} function defaultResolve(specifier, context = {}) { const { parentURL @@ -968,7 +991,7 @@ function defaultResolve(specifier, context = {}) { try { parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier) ? new (_url().URL)(specifier, parsedParentURL) : new (_url().URL)(specifier); const protocol = parsed.protocol; - if (protocol === 'data:' || experimentalNetworkImports && (protocol === 'https:' || protocol === 'http:')) { + if (protocol === 'data:') { return { url: parsed.href, format: null @@ -980,10 +1003,8 @@ function defaultResolve(specifier, context = {}) { if (parsed && parsed.protocol === 'node:') return { url: specifier }; - throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports); const conditions = getConditionsSet(context.conditions); const url = moduleResolve(specifier, new (_url().URL)(parentURL), conditions, false); - throwIfUnsupportedURLProtocol(url); return { url: url.href, format: defaultGetFormatWithoutErrors(url, { @@ -1001,7 +1022,7 @@ function resolve(specifier, parent) { }).url; } catch (error) { const exception = error; - if (exception.code === 'ERR_UNSUPPORTED_DIR_IMPORT' && typeof exception.url === 'string') { + if ((exception.code === 'ERR_UNSUPPORTED_DIR_IMPORT' || exception.code === 'ERR_MODULE_NOT_FOUND') && typeof exception.url === 'string') { return exception.url; } throw error; diff --git a/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map index 6afdbae6..093d01b0 100644 --- a/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map +++ b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js.map @@ -1 +1 @@ -{"version":3,"names":["_assert","data","require","_fs","_interopRequireWildcard","_process","_url","_path","_module","_v","_util","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","isWindows","process","platform","own$1","classRegExp","kTypes","Set","codes","formatList","array","type","length","join","slice","messages","Map","nodeInternalPrefix","userStackTraceLimit","ERR_INVALID_ARG_TYPE","createError","name","expected","actual","assert","Array","isArray","message","endsWith","includes","types","instances","other","value","push","toLowerCase","exec","pos","indexOf","determineSpecificType","TypeError","ERR_INVALID_MODULE_SPECIFIER","request","reason","base","undefined","ERR_INVALID_PACKAGE_CONFIG","path","Error","ERR_INVALID_PACKAGE_TARGET","pkgPath","target","isImport","relError","startsWith","JSON","stringify","ERR_MODULE_NOT_FOUND","ERR_NETWORK_IMPORT_DISALLOWED","ERR_PACKAGE_IMPORT_NOT_DEFINED","specifier","packagePath","ERR_PACKAGE_PATH_NOT_EXPORTED","subpath","ERR_UNSUPPORTED_DIR_IMPORT","ERR_UNKNOWN_FILE_EXTENSION","ext","ERR_INVALID_ARG_VALUE","inspected","inspect","ERR_UNSUPPORTED_ESM_URL_SCHEME","url","supported","protocol","sym","def","makeNodeErrorWithCode","Base","NodeError","args","limit","stackTraceLimit","isErrorStackTraceLimitWritable","error","getMessage","defineProperties","enumerable","writable","configurable","toString","captureLargerStackTrace","code","v8","startupSnapshot","isBuildingSnapshot","_unused","isExtensible","hideStackFrames","fn","hidden","stackTraceLimitIsWritable","Number","POSITIVE_INFINITY","captureStackTrace","self","Reflect","apply","regex","expectedLength","unshift","format","String","constructor","depth","colors","reader","read","packageJsonReader","jsonPath","string","fs","readFileSync","toNamespacedPath","dirname","exception","ERR_INVALID_PACKAGE_CONFIG$1","packageJsonCache","getPackageConfig","existing","source","packageConfig","pjsonPath","exists","main","exports","imports","packageJson","parse","fileURLToPath","getPackageScopeConfig","resolved","packageJsonUrl","URL","packageJsonPath","pathname","lastPackageJsonUrl","getPackageType","extensionFormatMap","__proto__","mimeToFormat","mime","test","protocolHandlers","getDataProtocolModuleFormat","getFileProtocolModuleFormat","getHttpProtocolModuleFormat","node:","parsed","extname","index","codePointAt","_context","ignoreErrors","filepath","defaultGetFormatWithoutErrors","context","DEFAULT_CONDITIONS","freeze","DEFAULT_CONDITIONS_SET","getDefaultConditions","getDefaultConditionsSet","getConditionsSet","conditions","RegExpPrototypeSymbolReplace","RegExp","Symbol","replace","experimentalNetworkImports","own","invalidSegmentRegEx","deprecatedInvalidSegmentRegEx","invalidPackageNameRegEx","patternRegEx","encodedSepRegEx","emittedPackageWarnings","doubleSlashRegEx","emitInvalidSegmentDeprecation","match","internal","isTarget","double","emitWarning","emitLegacyIndexDeprecation","parentURL","href","basePath","tryStatSync","statSync","_unused2","Stats","fileExists","stats","throwIfNoEntry","isFile","legacyMainResolve","guess","tries","i","finalizeResolution","preserveSymlinks","filePath","isDirectory","real","realpathSync","search","hash","pathToFileURL","sep","importNotDefined","exportsNotFound","throwInvalidSubpath","invalidPackageTarget","resolvePackageTargetString","pattern","isPathMap","isURL","_unused3","exportTarget","packageResolve","resolvedTarget","resolvedPath","isArrayIndex","keyNumber","resolvePackageTarget","packageSubpath","targetList","lastException","targetItem","resolveResult","keys","getOwnPropertyNames","conditionalTarget","isConditionalExportsMainSugar","isConditionalSugar","j","curIsConditionalSugar","emitTrailingSlashPatternDeprecation","pjsonUrl","add","packageExportsResolve","bestMatch","bestMatchSubpath","patternIndex","patternTrailer","patternKeyCompare","lastIndexOf","a","b","aPatternIndex","bPatternIndex","baseLengthA","baseLengthB","packageImportsResolve","parsePackageName","separatorIndex","validPackageName","isScoped","packageName","builtinModules","lastPath","stat","isRelativeSpecifier","shouldBeTreatedAsRelativeOrAbsolutePath","moduleResolve","isRemote","_unused4","checkIfDisallowedImport","parsedParentURL","parentProtocol","parsedProtocol","Boolean","throwIfInvalidParentURL","throwIfUnsupportedURLProtocol","throwIfUnsupportedURLScheme","concat","defaultResolve","_unused5","_unused6","maybeReturn","resolve","parent"],"sources":["../../src/vendor/import-meta-resolve.js"],"sourcesContent":["\n/****************************************************************************\\\n * NOTE FROM BABEL AUTHORS *\n * This file is inlined from https://github.com/wooorm/import-meta-resolve, *\n * because we need to compile it to CommonJS. *\n\\****************************************************************************/\n\n/*\n(The MIT License)\n\nCopyright (c) 2021 Titus Wormer <mailto:tituswormer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n---\n\nThis is a derivative work based on:\n<https://github.com/nodejs/node>.\nWhich is licensed:\n\n\"\"\"\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\nThis license applies to parts of Node.js originating from the\nhttps://github.com/joyent/node repository:\n\n\"\"\"\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n*/\n\nimport assert from 'assert';\nimport fs, { realpathSync, statSync, Stats } from 'fs';\nimport process from 'process';\nimport { fileURLToPath, URL, pathToFileURL } from 'url';\nimport path from 'path';\nimport { builtinModules } from 'module';\nimport v8 from 'v8';\nimport { format, inspect } from 'util';\n\n/**\n * @typedef ErrnoExceptionFields\n * @property {number | undefined} [errnode]\n * @property {string | undefined} [code]\n * @property {string | undefined} [path]\n * @property {string | undefined} [syscall]\n * @property {string | undefined} [url]\n *\n * @typedef {Error & ErrnoExceptionFields} ErrnoException\n */\n\n\nconst isWindows = process.platform === 'win32';\n\nconst own$1 = {}.hasOwnProperty;\n\nconst classRegExp = /^([A-Z][a-z\\d]*)+$/;\n// Sorted by a rough estimate on most frequently used entries.\nconst kTypes = new Set([\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]);\n\nconst codes = {};\n\n/**\n * Create a list string in the form like 'A and B' or 'A, B, ..., and Z'.\n * We cannot use Intl.ListFormat because it's not available in\n * --without-intl builds.\n *\n * @param {Array<string>} array\n * An array of strings.\n * @param {string} [type]\n * The list type to be inserted before the last element.\n * @returns {string}\n */\nfunction formatList(array, type = 'and') {\n return array.length < 3\n ? array.join(` ${type} `)\n : `${array.slice(0, -1).join(', ')}, ${type} ${array[array.length - 1]}`\n}\n\n/** @type {Map<string, MessageFunction | string>} */\nconst messages = new Map();\nconst nodeInternalPrefix = '__node_internal_';\n/** @type {number} */\nlet userStackTraceLimit;\n\ncodes.ERR_INVALID_ARG_TYPE = createError(\n 'ERR_INVALID_ARG_TYPE',\n /**\n * @param {string} name\n * @param {Array<string> | string} expected\n * @param {unknown} actual\n */\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\");\n if (!Array.isArray(expected)) {\n expected = [expected];\n }\n\n let message = 'The ';\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n message += `${name} `;\n } else {\n const type = name.includes('.') ? 'property' : 'argument';\n message += `\"${name}\" ${type} `;\n }\n\n message += 'must be ';\n\n /** @type {Array<string>} */\n const types = [];\n /** @type {Array<string>} */\n const instances = [];\n /** @type {Array<string>} */\n const other = [];\n\n for (const value of expected) {\n assert(\n typeof value === 'string',\n 'All expected entries have to be of type string'\n );\n\n if (kTypes.has(value)) {\n types.push(value.toLowerCase());\n } else if (classRegExp.exec(value) === null) {\n assert(\n value !== 'object',\n 'The value \"object\" should be written as \"Object\"'\n );\n other.push(value);\n } else {\n instances.push(value);\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object');\n if (pos !== -1) {\n types.slice(pos, 1);\n instances.push('Object');\n }\n }\n\n if (types.length > 0) {\n message += `${types.length > 1 ? 'one of type' : 'of type'} ${formatList(\n types,\n 'or'\n )}`;\n if (instances.length > 0 || other.length > 0) message += ' or ';\n }\n\n if (instances.length > 0) {\n message += `an instance of ${formatList(instances, 'or')}`;\n if (other.length > 0) message += ' or ';\n }\n\n if (other.length > 0) {\n if (other.length > 1) {\n message += `one of ${formatList(other, 'or')}`;\n } else {\n if (other[0].toLowerCase() !== other[0]) message += 'an ';\n message += `${other[0]}`;\n }\n }\n\n message += `. Received ${determineSpecificType(actual)}`;\n\n return message\n },\n TypeError\n);\n\ncodes.ERR_INVALID_MODULE_SPECIFIER = createError(\n 'ERR_INVALID_MODULE_SPECIFIER',\n /**\n * @param {string} request\n * @param {string} reason\n * @param {string} [base]\n */\n (request, reason, base = undefined) => {\n return `Invalid module \"${request}\" ${reason}${\n base ? ` imported from ${base}` : ''\n }`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_PACKAGE_CONFIG = createError(\n 'ERR_INVALID_PACKAGE_CONFIG',\n /**\n * @param {string} path\n * @param {string} [base]\n * @param {string} [message]\n */\n (path, base, message) => {\n return `Invalid package config ${path}${\n base ? ` while importing ${base}` : ''\n }${message ? `. ${message}` : ''}`\n },\n Error\n);\n\ncodes.ERR_INVALID_PACKAGE_TARGET = createError(\n 'ERR_INVALID_PACKAGE_TARGET',\n /**\n * @param {string} pkgPath\n * @param {string} key\n * @param {unknown} target\n * @param {boolean} [isImport=false]\n * @param {string} [base]\n */\n (pkgPath, key, target, isImport = false, base = undefined) => {\n const relError =\n typeof target === 'string' &&\n !isImport &&\n target.length > 0 &&\n !target.startsWith('./');\n if (key === '.') {\n assert(isImport === false);\n return (\n `Invalid \"exports\" main target ${JSON.stringify(target)} defined ` +\n `in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n )\n }\n\n return `Invalid \"${\n isImport ? 'imports' : 'exports'\n }\" target ${JSON.stringify(\n target\n )} defined for '${key}' in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n },\n Error\n);\n\ncodes.ERR_MODULE_NOT_FOUND = createError(\n 'ERR_MODULE_NOT_FOUND',\n /**\n * @param {string} path\n * @param {string} base\n * @param {string} [type]\n */\n (path, base, type = 'package') => {\n return `Cannot find ${type} '${path}' imported from ${base}`\n },\n Error\n);\n\ncodes.ERR_NETWORK_IMPORT_DISALLOWED = createError(\n 'ERR_NETWORK_IMPORT_DISALLOWED',\n \"import of '%s' by %s is not supported: %s\",\n Error\n);\n\ncodes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(\n 'ERR_PACKAGE_IMPORT_NOT_DEFINED',\n /**\n * @param {string} specifier\n * @param {string} packagePath\n * @param {string} base\n */\n (specifier, packagePath, base) => {\n return `Package import specifier \"${specifier}\" is not defined${\n packagePath ? ` in package ${packagePath}package.json` : ''\n } imported from ${base}`\n },\n TypeError\n);\n\ncodes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(\n 'ERR_PACKAGE_PATH_NOT_EXPORTED',\n /**\n * @param {string} pkgPath\n * @param {string} subpath\n * @param {string} [base]\n */\n (pkgPath, subpath, base = undefined) => {\n if (subpath === '.')\n return `No \"exports\" main defined in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n return `Package subpath '${subpath}' is not defined by \"exports\" in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n },\n Error\n);\n\ncodes.ERR_UNSUPPORTED_DIR_IMPORT = createError(\n 'ERR_UNSUPPORTED_DIR_IMPORT',\n \"Directory import '%s' is not supported \" +\n 'resolving ES modules imported from %s',\n Error\n);\n\ncodes.ERR_UNKNOWN_FILE_EXTENSION = createError(\n 'ERR_UNKNOWN_FILE_EXTENSION',\n /**\n * @param {string} ext\n * @param {string} path\n */\n (ext, path) => {\n return `Unknown file extension \"${ext}\" for ${path}`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_ARG_VALUE = createError(\n 'ERR_INVALID_ARG_VALUE',\n /**\n * @param {string} name\n * @param {unknown} value\n * @param {string} [reason='is invalid']\n */\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value);\n\n if (inspected.length > 128) {\n inspected = `${inspected.slice(0, 128)}...`;\n }\n\n const type = name.includes('.') ? 'property' : 'argument';\n\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n // Note: extra classes have been shaken out.\n // , RangeError\n);\n\ncodes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError(\n 'ERR_UNSUPPORTED_ESM_URL_SCHEME',\n /**\n * @param {URL} url\n * @param {Array<string>} supported\n */\n (url, supported) => {\n let message = `Only URLs with a scheme in: ${formatList(\n supported\n )} are supported by the default ESM loader`;\n\n if (isWindows && url.protocol.length === 2) {\n message += '. On Windows, absolute paths must be valid file:// URLs';\n }\n\n message += `. Received protocol '${url.protocol}'`;\n return message\n },\n Error\n);\n\n/**\n * Utility function for registering the error codes. Only used here. Exported\n * *only* to allow for testing.\n * @param {string} sym\n * @param {MessageFunction | string} value\n * @param {ErrorConstructor} def\n * @returns {new (...args: Array<any>) => Error}\n */\nfunction createError(sym, value, def) {\n // Special case for SystemError that formats the error message differently\n // The SystemErrors only have SystemError as their base classes.\n messages.set(sym, value);\n\n return makeNodeErrorWithCode(def, sym)\n}\n\n/**\n * @param {ErrorConstructor} Base\n * @param {string} key\n * @returns {ErrorConstructor}\n */\nfunction makeNodeErrorWithCode(Base, key) {\n // @ts-expect-error It’s a Node error.\n return NodeError\n /**\n * @param {Array<unknown>} args\n */\n function NodeError(...args) {\n const limit = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n const error = new Base();\n // Reset the limit and setting the name property.\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n const message = getMessage(key, args, error);\n Object.defineProperties(error, {\n // Note: no need to implement `kIsNodeError` symbol, would be hard,\n // probably.\n message: {\n value: message,\n enumerable: false,\n writable: true,\n configurable: true\n },\n toString: {\n /** @this {Error} */\n value() {\n return `${this.name} [${key}]: ${this.message}`\n },\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n captureLargerStackTrace(error);\n // @ts-expect-error It’s a Node error.\n error.code = key;\n return error\n }\n}\n\n/**\n * @returns {boolean}\n */\nfunction isErrorStackTraceLimitWritable() {\n // Do no touch Error.stackTraceLimit as V8 would attempt to install\n // it again during deserialization.\n try {\n // @ts-expect-error: not in types?\n if (v8.startupSnapshot.isBuildingSnapshot()) {\n return false\n }\n } catch {}\n\n const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit');\n if (desc === undefined) {\n return Object.isExtensible(Error)\n }\n\n return own$1.call(desc, 'writable') && desc.writable !== undefined\n ? desc.writable\n : desc.set !== undefined\n}\n\n/**\n * This function removes unnecessary frames from Node.js core errors.\n * @template {(...args: unknown[]) => unknown} T\n * @param {T} fn\n * @returns {T}\n */\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name;\n Object.defineProperty(fn, 'name', {value: hidden});\n return fn\n}\n\nconst captureLargerStackTrace = hideStackFrames(\n /**\n * @param {Error} error\n * @returns {Error}\n */\n // @ts-expect-error: fine\n function (error) {\n const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n if (stackTraceLimitIsWritable) {\n userStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Number.POSITIVE_INFINITY;\n }\n\n Error.captureStackTrace(error);\n\n // Reset the limit\n if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n\n return error\n }\n);\n\n/**\n * @param {string} key\n * @param {Array<unknown>} args\n * @param {Error} self\n * @returns {string}\n */\nfunction getMessage(key, args, self) {\n const message = messages.get(key);\n assert(message !== undefined, 'expected `message` to be found');\n\n if (typeof message === 'function') {\n assert(\n message.length <= args.length, // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${message.length}).`\n );\n return Reflect.apply(message, self, args)\n }\n\n const regex = /%[dfijoOs]/g;\n let expectedLength = 0;\n while (regex.exec(message) !== null) expectedLength++;\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${expectedLength}).`\n );\n if (args.length === 0) return message\n\n args.unshift(message);\n return Reflect.apply(format, null, args)\n}\n\n/**\n * Determine the specific type of a value for type-mismatch errors.\n * @param {unknown} value\n * @returns {string}\n */\nfunction determineSpecificType(value) {\n if (value === null || value === undefined) {\n return String(value)\n }\n\n if (typeof value === 'function' && value.name) {\n return `function ${value.name}`\n }\n\n if (typeof value === 'object') {\n if (value.constructor && value.constructor.name) {\n return `an instance of ${value.constructor.name}`\n }\n\n return `${inspect(value, {depth: -1})}`\n }\n\n let inspected = inspect(value, {colors: false});\n\n if (inspected.length > 28) {\n inspected = `${inspected.slice(0, 25)}...`;\n }\n\n return `type ${typeof value} (${inspected})`\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/3e74590/lib/internal/modules/package_json_reader.js>\n// Last checked on: Apr 24, 2023.\n// Removed the native dependency.\n// Also: no need to cache, we do that in resolve already.\n\n\nconst reader = {read};\nvar packageJsonReader = reader;\n\n/**\n * @param {string} jsonPath\n * @returns {{string: string | undefined}}\n */\nfunction read(jsonPath) {\n try {\n const string = fs.readFileSync(\n path.toNamespacedPath(path.join(path.dirname(jsonPath), 'package.json')),\n 'utf8'\n );\n return {string}\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n\n if (exception.code === 'ENOENT') {\n return {string: undefined}\n // Throw all other errors.\n /* c8 ignore next 4 */\n }\n\n throw exception\n }\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/3e74590/lib/internal/modules/esm/package_config.js>\n// Last checked on: Apr 24, 2023.\n\n\nconst {ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG$1} = codes;\n\n/** @type {Map<string, PackageConfig>} */\nconst packageJsonCache = new Map();\n\n/**\n * @param {string} path\n * @param {URL | string} specifier Note: `specifier` is actually optional, not base.\n * @param {URL} [base]\n * @returns {PackageConfig}\n */\nfunction getPackageConfig(path, specifier, base) {\n const existing = packageJsonCache.get(path);\n if (existing !== undefined) {\n return existing\n }\n\n const source = packageJsonReader.read(path).string;\n\n if (source === undefined) {\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: path,\n exists: false,\n main: undefined,\n name: undefined,\n type: 'none',\n exports: undefined,\n imports: undefined\n };\n packageJsonCache.set(path, packageConfig);\n return packageConfig\n }\n\n /** @type {Record<string, unknown>} */\n let packageJson;\n try {\n packageJson = JSON.parse(source);\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n\n throw new ERR_INVALID_PACKAGE_CONFIG$1(\n path,\n (base ? `\"${specifier}\" from ` : '') + fileURLToPath(base || specifier),\n exception.message\n )\n }\n\n const {exports, imports, main, name, type} = packageJson;\n\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: path,\n exists: true,\n main: typeof main === 'string' ? main : undefined,\n name: typeof name === 'string' ? name : undefined,\n type: type === 'module' || type === 'commonjs' ? type : 'none',\n // @ts-expect-error Assume `Record<string, unknown>`.\n exports,\n // @ts-expect-error Assume `Record<string, unknown>`.\n imports: imports && typeof imports === 'object' ? imports : undefined\n };\n packageJsonCache.set(path, packageConfig);\n return packageConfig\n}\n\n/**\n * @param {URL} resolved\n * @returns {PackageConfig}\n */\nfunction getPackageScopeConfig(resolved) {\n let packageJsonUrl = new URL('package.json', resolved);\n\n while (true) {\n const packageJsonPath = packageJsonUrl.pathname;\n\n if (packageJsonPath.endsWith('node_modules/package.json')) break\n\n const packageConfig = getPackageConfig(\n fileURLToPath(packageJsonUrl),\n resolved\n );\n if (packageConfig.exists) return packageConfig\n\n const lastPackageJsonUrl = packageJsonUrl;\n packageJsonUrl = new URL('../package.json', packageJsonUrl);\n\n // Terminates at root where ../package.json equals ../../package.json\n // (can't just check \"/package.json\" for Windows support).\n if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) break\n }\n\n const packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {PackageConfig} */\n const packageConfig = {\n pjsonPath: packageJsonPath,\n exists: false,\n main: undefined,\n name: undefined,\n type: 'none',\n exports: undefined,\n imports: undefined\n };\n packageJsonCache.set(packageJsonPath, packageConfig);\n return packageConfig\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/3e74590/lib/internal/modules/esm/resolve.js>\n// Last checked on: Apr 24, 2023.\n//\n// This file solves a circular dependency.\n// In Node.js, `getPackageType` is in `resolve.js`.\n// `resolve.js` imports `get-format.js`, which needs `getPackageType`.\n// We split that up so that bundlers don’t fail.\n\n\n/**\n * @param {URL} url\n * @returns {PackageType}\n */\nfunction getPackageType(url) {\n const packageConfig = getPackageScopeConfig(url);\n return packageConfig.type\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/3e74590/lib/internal/modules/esm/get_format.js>\n// Last checked on: Apr 24, 2023.\n\n\nconst {ERR_UNKNOWN_FILE_EXTENSION} = codes;\n\nconst hasOwnProperty = {}.hasOwnProperty;\n\n/** @type {Record<string, string>} */\nconst extensionFormatMap = {\n // @ts-expect-error: hush.\n __proto__: null,\n '.cjs': 'commonjs',\n '.js': 'module',\n '.json': 'json',\n '.mjs': 'module'\n};\n\n/**\n * @param {string | null} mime\n * @returns {string | null}\n */\nfunction mimeToFormat(mime) {\n if (\n mime &&\n /\\s*(text|application)\\/javascript\\s*(;\\s*charset=utf-?8\\s*)?/i.test(mime)\n )\n return 'module'\n if (mime === 'application/json') return 'json'\n return null\n}\n\n/**\n * @callback ProtocolHandler\n * @param {URL} parsed\n * @param {{parentURL: string}} context\n * @param {boolean} ignoreErrors\n * @returns {string | null | void}\n */\n\n/**\n * @type {Record<string, ProtocolHandler>}\n */\nconst protocolHandlers = {\n // @ts-expect-error: hush.\n __proto__: null,\n 'data:': getDataProtocolModuleFormat,\n 'file:': getFileProtocolModuleFormat,\n 'http:': getHttpProtocolModuleFormat,\n 'https:': getHttpProtocolModuleFormat,\n 'node:'() {\n return 'builtin'\n }\n};\n\n/**\n * @param {URL} parsed\n */\nfunction getDataProtocolModuleFormat(parsed) {\n const {1: mime} = /^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(\n parsed.pathname\n ) || [null, null, null];\n return mimeToFormat(mime)\n}\n\n/**\n * Returns the file extension from a URL.\n *\n * Should give similar result to\n * `require('node:path').extname(require('node:url').fileURLToPath(url))`\n * when used with a `file:` URL.\n *\n * @param {URL} url\n * @returns {string}\n */\nfunction extname(url) {\n const pathname = url.pathname;\n let index = pathname.length;\n\n while (index--) {\n const code = pathname.codePointAt(index);\n\n if (code === 47 /* `/` */) {\n return ''\n }\n\n if (code === 46 /* `.` */) {\n return pathname.codePointAt(index - 1) === 47 /* `/` */\n ? ''\n : pathname.slice(index)\n }\n }\n\n return ''\n}\n\n/**\n * @type {ProtocolHandler}\n */\nfunction getFileProtocolModuleFormat(url, _context, ignoreErrors) {\n const ext = extname(url);\n\n if (ext === '.js') {\n return getPackageType(url) === 'module' ? 'module' : 'commonjs'\n }\n\n const format = extensionFormatMap[ext];\n if (format) return format\n\n // Explicit undefined return indicates load hook should rerun format check\n if (ignoreErrors) {\n return undefined\n }\n\n const filepath = fileURLToPath(url);\n throw new ERR_UNKNOWN_FILE_EXTENSION(ext, filepath)\n}\n\nfunction getHttpProtocolModuleFormat() {\n // To do: HTTPS imports.\n}\n\n/**\n * @param {URL} url\n * @param {{parentURL: string}} context\n * @returns {string | null}\n */\nfunction defaultGetFormatWithoutErrors(url, context) {\n if (!hasOwnProperty.call(protocolHandlers, url.protocol)) {\n return null\n }\n\n return protocolHandlers[url.protocol](url, context, true) || null\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/3e74590/lib/internal/modules/esm/utils.js>\n// Last checked on: Apr 24, 2023.\n\n\nconst {ERR_INVALID_ARG_VALUE} = codes;\n\n// In Node itself these values are populated from CLI arguments, before any\n// user code runs.\n// Here we just define the defaults.\nconst DEFAULT_CONDITIONS = Object.freeze(['node', 'import']);\nconst DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS);\n\nfunction getDefaultConditions() {\n return DEFAULT_CONDITIONS\n}\n\nfunction getDefaultConditionsSet() {\n return DEFAULT_CONDITIONS_SET\n}\n\n/**\n * @param {Array<string>} [conditions]\n * @returns {Set<string>}\n */\nfunction getConditionsSet(conditions) {\n if (conditions !== undefined && conditions !== getDefaultConditions()) {\n if (!Array.isArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE(\n 'conditions',\n conditions,\n 'expected an array'\n )\n }\n\n return new Set(conditions)\n }\n\n return getDefaultConditionsSet()\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/3e74590/lib/internal/modules/esm/resolve.js>\n// Last checked on: Apr 24, 2023.\n\n\nconst RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace];\n\n// To do: potentially enable?\nconst experimentalNetworkImports = false;\n\nconst {\n ERR_NETWORK_IMPORT_DISALLOWED,\n ERR_INVALID_MODULE_SPECIFIER,\n ERR_INVALID_PACKAGE_CONFIG,\n ERR_INVALID_PACKAGE_TARGET,\n ERR_MODULE_NOT_FOUND,\n ERR_PACKAGE_IMPORT_NOT_DEFINED,\n ERR_PACKAGE_PATH_NOT_EXPORTED,\n ERR_UNSUPPORTED_DIR_IMPORT,\n ERR_UNSUPPORTED_ESM_URL_SCHEME\n} = codes;\n\nconst own = {}.hasOwnProperty;\n\nconst invalidSegmentRegEx =\n /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\\\|\\/|$)/i;\nconst deprecatedInvalidSegmentRegEx =\n /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\\\|\\/|$)/i;\nconst invalidPackageNameRegEx = /^\\.|%|\\\\/;\nconst patternRegEx = /\\*/g;\nconst encodedSepRegEx = /%2f|%5c/i;\n/** @type {Set<string>} */\nconst emittedPackageWarnings = new Set();\n\nconst doubleSlashRegEx = /[/\\\\]{2}/;\n\n/**\n *\n * @param {string} target\n * @param {string} request\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} base\n * @param {boolean} isTarget\n */\nfunction emitInvalidSegmentDeprecation(\n target,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n isTarget\n) {\n const pjsonPath = fileURLToPath(packageJsonUrl);\n const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null;\n process.emitWarning(\n `Use of deprecated ${\n double ? 'double slash' : 'leading or trailing slash matching'\n } resolving \"${target}\" for module ` +\n `request \"${request}\" ${\n request === match ? '' : `matched to \"${match}\" `\n }in the \"${\n internal ? 'imports' : 'exports'\n }\" field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }.`,\n 'DeprecationWarning',\n 'DEP0166'\n );\n}\n\n/**\n * @param {URL} url\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {unknown} [main]\n * @returns {void}\n */\nfunction emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) {\n const format = defaultGetFormatWithoutErrors(url, {parentURL: base.href});\n if (format !== 'module') return\n const path = fileURLToPath(url.href);\n const pkgPath = fileURLToPath(new URL('.', packageJsonUrl));\n const basePath = fileURLToPath(base);\n if (main)\n process.emitWarning(\n `Package ${pkgPath} has a \"main\" field set to ${JSON.stringify(main)}, ` +\n `excluding the full filename and extension to the resolved file at \"${path.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\n Automatic extension resolution of the \"main\" field is` +\n 'deprecated for ES modules.',\n 'DeprecationWarning',\n 'DEP0151'\n );\n else\n process.emitWarning(\n `No \"main\" or \"exports\" field defined in the package.json for ${pkgPath} resolving the main entry point \"${path.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\n 'DeprecationWarning',\n 'DEP0151'\n );\n}\n\n/**\n * @param {string} path\n * @returns {Stats}\n */\nfunction tryStatSync(path) {\n // Note: from Node 15 onwards we can use `throwIfNoEntry: false` instead.\n try {\n return statSync(path)\n } catch {\n return new Stats()\n }\n}\n\n/**\n * Legacy CommonJS main resolution:\n * 1. let M = pkg_url + (json main field)\n * 2. TRY(M, M.js, M.json, M.node)\n * 3. TRY(M/index.js, M/index.json, M/index.node)\n * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node)\n * 5. NOT_FOUND\n *\n * @param {URL} url\n * @returns {boolean}\n */\nfunction fileExists(url) {\n const stats = statSync(url, {throwIfNoEntry: false});\n const isFile = stats ? stats.isFile() : undefined;\n return isFile === null || isFile === undefined ? false : isFile\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {PackageConfig} packageConfig\n * @param {URL} base\n * @returns {URL}\n */\nfunction legacyMainResolve(packageJsonUrl, packageConfig, base) {\n /** @type {URL | undefined} */\n let guess;\n if (packageConfig.main !== undefined) {\n guess = new URL(packageConfig.main, packageJsonUrl);\n // Note: fs check redundances will be handled by Descriptor cache here.\n if (fileExists(guess)) return guess\n\n const tries = [\n `./${packageConfig.main}.js`,\n `./${packageConfig.main}.json`,\n `./${packageConfig.main}.node`,\n `./${packageConfig.main}/index.js`,\n `./${packageConfig.main}/index.json`,\n `./${packageConfig.main}/index.node`\n ];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(\n guess,\n packageJsonUrl,\n base,\n packageConfig.main\n );\n return guess\n }\n // Fallthrough.\n }\n\n const tries = ['./index.js', './index.json', './index.node'];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);\n return guess\n }\n\n // Not found.\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {URL} resolved\n * @param {URL} base\n * @param {boolean} [preserveSymlinks]\n * @returns {URL}\n */\nfunction finalizeResolution(resolved, base, preserveSymlinks) {\n if (encodedSepRegEx.exec(resolved.pathname) !== null)\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname,\n 'must not include encoded \"/\" or \"\\\\\" characters',\n fileURLToPath(base)\n )\n\n const filePath = fileURLToPath(resolved);\n\n const stats = tryStatSync(\n filePath.endsWith('/') ? filePath.slice(-1) : filePath\n );\n\n if (stats.isDirectory()) {\n const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, fileURLToPath(base));\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!stats.isFile()) {\n throw new ERR_MODULE_NOT_FOUND(\n filePath || resolved.pathname,\n base && fileURLToPath(base),\n 'module'\n )\n }\n\n if (!preserveSymlinks) {\n const real = realpathSync(filePath);\n const {search, hash} = resolved;\n resolved = pathToFileURL(real + (filePath.endsWith(path.sep) ? '/' : ''));\n resolved.search = search;\n resolved.hash = hash;\n }\n\n return resolved\n}\n\n/**\n * @param {string} specifier\n * @param {URL | undefined} packageJsonUrl\n * @param {URL} base\n * @returns {Error}\n */\nfunction importNotDefined(specifier, packageJsonUrl, base) {\n return new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier,\n packageJsonUrl && fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {Error}\n */\nfunction exportsNotFound(subpath, packageJsonUrl, base) {\n return new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} request\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidSubpath(request, match, packageJsonUrl, internal, base) {\n const reason = `request is not a valid match in pattern \"${match}\" for the \"${\n internal ? 'imports' : 'exports'\n }\" resolution of ${fileURLToPath(packageJsonUrl)}`;\n throw new ERR_INVALID_MODULE_SPECIFIER(\n request,\n reason,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {unknown} target\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {Error}\n */\nfunction invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) {\n target =\n typeof target === 'object' && target !== null\n ? JSON.stringify(target, null, '')\n : `${target}`;\n\n return new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n target,\n internal,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} target\n * @param {string} subpath\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {boolean} isPathMap\n * @param {Set<string> | undefined} conditions\n * @returns {URL}\n */\nfunction resolvePackageTargetString(\n target,\n subpath,\n match,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n) {\n if (subpath !== '' && !pattern && target[target.length - 1] !== '/')\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n\n if (!target.startsWith('./')) {\n if (internal && !target.startsWith('../') && !target.startsWith('/')) {\n let isURL = false;\n\n try {\n new URL(target);\n isURL = true;\n } catch {\n // Continue regardless of error.\n }\n\n if (!isURL) {\n const exportTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target + subpath;\n\n return packageResolve(exportTarget, packageJsonUrl, conditions)\n }\n }\n\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n }\n\n if (invalidSegmentRegEx.exec(target.slice(2)) !== null) {\n if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) {\n if (!isPathMap) {\n const request = pattern\n ? match.replace('*', () => subpath)\n : match + subpath;\n const resolvedTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n true\n );\n }\n } else {\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n }\n }\n\n const resolved = new URL(target, packageJsonUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL('.', packageJsonUrl).pathname;\n\n if (!resolvedPath.startsWith(packagePath))\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n\n if (subpath === '') return resolved\n\n if (invalidSegmentRegEx.exec(subpath) !== null) {\n const request = pattern\n ? match.replace('*', () => subpath)\n : match + subpath;\n if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) {\n if (!isPathMap) {\n const resolvedTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n false\n );\n }\n } else {\n throwInvalidSubpath(request, match, packageJsonUrl, internal, base);\n }\n }\n\n if (pattern) {\n return new URL(\n RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n resolved.href,\n () => subpath\n )\n )\n }\n\n return new URL(subpath, resolved)\n}\n\n/**\n * @param {string} key\n * @returns {boolean}\n */\nfunction isArrayIndex(key) {\n const keyNumber = Number(key);\n if (`${keyNumber}` !== key) return false\n return keyNumber >= 0 && keyNumber < 0xff_ff_ff_ff\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {unknown} target\n * @param {string} subpath\n * @param {string} packageSubpath\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {boolean} isPathMap\n * @param {Set<string> | undefined} conditions\n * @returns {URL | null}\n */\nfunction resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n) {\n if (typeof target === 'string') {\n return resolvePackageTargetString(\n target,\n subpath,\n packageSubpath,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n )\n }\n\n if (Array.isArray(target)) {\n /** @type {Array<unknown>} */\n const targetList = target;\n if (targetList.length === 0) return null\n\n /** @type {ErrnoException | null | undefined} */\n let lastException;\n let i = -1;\n\n while (++i < targetList.length) {\n const targetItem = targetList[i];\n /** @type {URL | null} */\n let resolveResult;\n try {\n resolveResult = resolvePackageTarget(\n packageJsonUrl,\n targetItem,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n lastException = exception;\n if (exception.code === 'ERR_INVALID_PACKAGE_TARGET') continue\n throw error\n }\n\n if (resolveResult === undefined) continue\n\n if (resolveResult === null) {\n lastException = null;\n continue\n }\n\n return resolveResult\n }\n\n if (lastException === undefined || lastException === null) {\n return null\n }\n\n throw lastException\n }\n\n if (typeof target === 'object' && target !== null) {\n const keys = Object.getOwnPropertyNames(target);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (isArrayIndex(key)) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain numeric property keys.'\n )\n }\n }\n\n i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (key === 'default' || (conditions && conditions.has(key))) {\n // @ts-expect-error: indexable.\n const conditionalTarget = /** @type {unknown} */ (target[key]);\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n conditionalTarget,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n if (resolveResult === undefined) continue\n return resolveResult\n }\n }\n\n return null\n }\n\n if (target === null) {\n return null\n }\n\n throw invalidPackageTarget(\n packageSubpath,\n target,\n packageJsonUrl,\n internal,\n base\n )\n}\n\n/**\n * @param {unknown} exports\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {boolean}\n */\nfunction isConditionalExportsMainSugar(exports, packageJsonUrl, base) {\n if (typeof exports === 'string' || Array.isArray(exports)) return true\n if (typeof exports !== 'object' || exports === null) return false\n\n const keys = Object.getOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n let j = -1;\n while (++j < keys.length) {\n const key = keys[j];\n const curIsConditionalSugar = key === '' || key[0] !== '.';\n if (i++ === 0) {\n isConditionalSugar = curIsConditionalSugar;\n } else if (isConditionalSugar !== curIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain some keys starting with \\'.\\' and some not.' +\n ' The exports object must either be an object of package subpath keys' +\n ' or an object of main entry condition name keys only.'\n )\n }\n }\n\n return isConditionalSugar\n}\n\n/**\n * @param {string} match\n * @param {URL} pjsonUrl\n * @param {URL} base\n */\nfunction emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) {\n const pjsonPath = fileURLToPath(pjsonUrl);\n if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return\n emittedPackageWarnings.add(pjsonPath + '|' + match);\n process.emitWarning(\n `Use of deprecated trailing slash pattern mapping \"${match}\" in the ` +\n `\"exports\" field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }. Mapping specifiers ending in \"/\" is no longer supported.`,\n 'DeprecationWarning',\n 'DEP0155'\n );\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {string} packageSubpath\n * @param {Record<string, unknown>} packageConfig\n * @param {URL} base\n * @param {Set<string> | undefined} conditions\n * @returns {URL}\n */\nfunction packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n) {\n let exports = packageConfig.exports;\n\n if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) {\n exports = {'.': exports};\n }\n\n if (\n own.call(exports, packageSubpath) &&\n !packageSubpath.includes('*') &&\n !packageSubpath.endsWith('/')\n ) {\n // @ts-expect-error: indexable.\n const target = exports[packageSubpath];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n '',\n packageSubpath,\n base,\n false,\n false,\n false,\n conditions\n );\n if (resolveResult === null || resolveResult === undefined) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n }\n\n return resolveResult\n }\n\n let bestMatch = '';\n let bestMatchSubpath = '';\n const keys = Object.getOwnPropertyNames(exports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n const patternIndex = key.indexOf('*');\n\n if (\n patternIndex !== -1 &&\n packageSubpath.startsWith(key.slice(0, patternIndex))\n ) {\n // When this reaches EOL, this can throw at the top of the whole function:\n //\n // if (StringPrototypeEndsWith(packageSubpath, '/'))\n // throwInvalidSubpath(packageSubpath)\n //\n // To match \"imports\" and the spec.\n if (packageSubpath.endsWith('/')) {\n emitTrailingSlashPatternDeprecation(\n packageSubpath,\n packageJsonUrl,\n base\n );\n }\n\n const patternTrailer = key.slice(patternIndex + 1);\n\n if (\n packageSubpath.length >= key.length &&\n packageSubpath.endsWith(patternTrailer) &&\n patternKeyCompare(bestMatch, key) === 1 &&\n key.lastIndexOf('*') === patternIndex\n ) {\n bestMatch = key;\n bestMatchSubpath = packageSubpath.slice(\n patternIndex,\n packageSubpath.length - patternTrailer.length\n );\n }\n }\n }\n\n if (bestMatch) {\n // @ts-expect-error: indexable.\n const target = /** @type {unknown} */ (exports[bestMatch]);\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n false,\n packageSubpath.endsWith('/'),\n conditions\n );\n\n if (resolveResult === null || resolveResult === undefined) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n }\n\n return resolveResult\n }\n\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n}\n\n/**\n * @param {string} a\n * @param {string} b\n */\nfunction patternKeyCompare(a, b) {\n const aPatternIndex = a.indexOf('*');\n const bPatternIndex = b.indexOf('*');\n const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n const baseLengthB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n if (baseLengthA > baseLengthB) return -1\n if (baseLengthB > baseLengthA) return 1\n if (aPatternIndex === -1) return 1\n if (bPatternIndex === -1) return -1\n if (a.length > b.length) return -1\n if (b.length > a.length) return 1\n return 0\n}\n\n/**\n * @param {string} name\n * @param {URL} base\n * @param {Set<string>} [conditions]\n * @returns {URL}\n */\nfunction packageImportsResolve(name, base, conditions) {\n if (name === '#' || name.startsWith('#/') || name.endsWith('/')) {\n const reason = 'is not a valid internal imports specifier name';\n throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base))\n }\n\n /** @type {URL | undefined} */\n let packageJsonUrl;\n\n const packageConfig = getPackageScopeConfig(base);\n\n if (packageConfig.exists) {\n packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (own.call(imports, name) && !name.includes('*')) {\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n imports[name],\n '',\n name,\n base,\n false,\n true,\n false,\n conditions\n );\n if (resolveResult !== null && resolveResult !== undefined) {\n return resolveResult\n }\n } else {\n let bestMatch = '';\n let bestMatchSubpath = '';\n const keys = Object.getOwnPropertyNames(imports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n const patternIndex = key.indexOf('*');\n\n if (patternIndex !== -1 && name.startsWith(key.slice(0, -1))) {\n const patternTrailer = key.slice(patternIndex + 1);\n if (\n name.length >= key.length &&\n name.endsWith(patternTrailer) &&\n patternKeyCompare(bestMatch, key) === 1 &&\n key.lastIndexOf('*') === patternIndex\n ) {\n bestMatch = key;\n bestMatchSubpath = name.slice(\n patternIndex,\n name.length - patternTrailer.length\n );\n }\n }\n }\n\n if (bestMatch) {\n const target = imports[bestMatch];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n true,\n false,\n conditions\n );\n\n if (resolveResult !== null && resolveResult !== undefined) {\n return resolveResult\n }\n }\n }\n }\n }\n\n throw importNotDefined(name, packageJsonUrl, base)\n}\n\n// Note: In Node.js, `getPackageType` is here.\n// To prevent a circular dependency, we move it to\n// `resolve-get-package-type.js`.\n\n/**\n * @param {string} specifier\n * @param {URL} base\n */\nfunction parsePackageName(specifier, base) {\n let separatorIndex = specifier.indexOf('/');\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === '@') {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = specifier.indexOf('/', separatorIndex + 1);\n }\n }\n\n const packageName =\n separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);\n\n // Package name cannot have leading . and cannot have percent-encoding or\n // \\\\ separators.\n if (invalidPackageNameRegEx.exec(packageName) !== null) {\n validPackageName = false;\n }\n\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier,\n 'is not a valid package name',\n fileURLToPath(base)\n )\n }\n\n const packageSubpath =\n '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex));\n\n return {packageName, packageSubpath, isScoped}\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n * @param {Set<string> | undefined} conditions\n * @returns {URL}\n */\nfunction packageResolve(specifier, base, conditions) {\n if (builtinModules.includes(specifier)) {\n return new URL('node:' + specifier)\n }\n\n const {packageName, packageSubpath, isScoped} = parsePackageName(\n specifier,\n base\n );\n\n // ResolveSelf\n const packageConfig = getPackageScopeConfig(base);\n\n // Can’t test.\n /* c8 ignore next 16 */\n if (packageConfig.exists) {\n const packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n if (\n packageConfig.name === packageName &&\n packageConfig.exports !== undefined &&\n packageConfig.exports !== null\n ) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n )\n }\n }\n\n let packageJsonUrl = new URL(\n './node_modules/' + packageName + '/package.json',\n base\n );\n let packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {string} */\n let lastPath;\n do {\n const stat = tryStatSync(packageJsonPath.slice(0, -13));\n if (!stat.isDirectory()) {\n lastPath = packageJsonPath;\n packageJsonUrl = new URL(\n (isScoped ? '../../../../node_modules/' : '../../../node_modules/') +\n packageName +\n '/package.json',\n packageJsonUrl\n );\n packageJsonPath = fileURLToPath(packageJsonUrl);\n continue\n }\n\n // Package match.\n const packageConfig = getPackageConfig(packageJsonPath, specifier, base);\n if (packageConfig.exports !== undefined && packageConfig.exports !== null) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n )\n }\n\n if (packageSubpath === '.') {\n return legacyMainResolve(packageJsonUrl, packageConfig, base)\n }\n\n return new URL(packageSubpath, packageJsonUrl)\n // Cross-platform root check.\n } while (packageJsonPath.length !== lastPath.length)\n\n throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base))\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === '.') {\n if (specifier.length === 1 || specifier[1] === '/') return true\n if (\n specifier[1] === '.' &&\n (specifier.length === 2 || specifier[2] === '/')\n ) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === '') return false\n if (specifier[0] === '/') return true\n return isRelativeSpecifier(specifier)\n}\n\n/**\n * The “Resolver Algorithm Specification” as detailed in the Node docs (which is\n * sync and slightly lower-level than `resolve`).\n *\n * @param {string} specifier\n * `/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`, etc.\n * @param {URL} base\n * Full URL (to a file) that `specifier` is resolved relative from.\n * @param {Set<string>} [conditions]\n * Conditions.\n * @param {boolean} [preserveSymlinks]\n * Keep symlinks instead of resolving them.\n * @returns {URL}\n * A URL object to the found thing.\n */\nfunction moduleResolve(specifier, base, conditions, preserveSymlinks) {\n const protocol = base.protocol;\n const isRemote = protocol === 'http:' || protocol === 'https:';\n // Order swapped from spec for minor perf gain.\n // Ok since relative URLs cannot parse as URLs.\n /** @type {URL | undefined} */\n let resolved;\n\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n resolved = new URL(specifier, base);\n } else if (!isRemote && specifier[0] === '#') {\n resolved = packageImportsResolve(specifier, base, conditions);\n } else {\n try {\n resolved = new URL(specifier);\n } catch {\n if (!isRemote) {\n resolved = packageResolve(specifier, base, conditions);\n }\n }\n }\n\n assert(resolved !== undefined, 'expected to be defined');\n\n if (resolved.protocol !== 'file:') {\n return resolved\n }\n\n return finalizeResolution(resolved, base, preserveSymlinks)\n}\n\n/**\n * @param {string} specifier\n * @param {URL | undefined} parsed\n * @param {URL | undefined} parsedParentURL\n */\nfunction checkIfDisallowedImport(specifier, parsed, parsedParentURL) {\n if (parsedParentURL) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const parentProtocol = parsedParentURL.protocol;\n\n if (parentProtocol === 'http:' || parentProtocol === 'https:') {\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const parsedProtocol = parsed?.protocol;\n\n // `data:` and `blob:` disallowed due to allowing file: access via\n // indirection\n if (\n parsedProtocol &&\n parsedProtocol !== 'https:' &&\n parsedProtocol !== 'http:'\n ) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'remote imports cannot import from a local location.'\n )\n }\n\n return {url: parsed?.href || ''}\n }\n\n if (builtinModules.includes(specifier)) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'remote imports cannot import from a local location.'\n )\n }\n\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'only relative and absolute specifiers are supported.'\n )\n }\n }\n}\n\n// Note: this is from:\n// <https://github.com/nodejs/node/blob/3e74590/lib/internal/url.js#L687>\n/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * @template {unknown} Value\n * @param {Value} self\n * @returns {Value is URL}\n */\nfunction isURL(self) {\n return Boolean(\n self &&\n typeof self === 'object' &&\n 'href' in self &&\n typeof self.href === 'string' &&\n 'protocol' in self &&\n typeof self.protocol === 'string' &&\n self.href &&\n self.protocol\n )\n}\n\n/**\n * Validate user-input in `context` supplied by a custom loader.\n *\n * @param {unknown} parentURL\n * @returns {asserts parentURL is URL | string | undefined}\n */\nfunction throwIfInvalidParentURL(parentURL) {\n if (parentURL === undefined) {\n return // Main entry point, so no parent\n }\n\n if (typeof parentURL !== 'string' && !isURL(parentURL)) {\n throw new codes.ERR_INVALID_ARG_TYPE(\n 'parentURL',\n ['string', 'URL'],\n parentURL\n )\n }\n}\n\n/**\n * @param {URL} url\n */\nfunction throwIfUnsupportedURLProtocol(url) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const protocol = url.protocol;\n\n if (protocol !== 'file:' && protocol !== 'data:' && protocol !== 'node:') {\n throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(url)\n }\n}\n\n/**\n * @param {URL | undefined} parsed\n * @param {boolean} experimentalNetworkImports\n */\nfunction throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const protocol = parsed?.protocol;\n\n if (\n protocol &&\n protocol !== 'file:' &&\n protocol !== 'data:' &&\n (!experimentalNetworkImports ||\n (protocol !== 'https:' && protocol !== 'http:'))\n ) {\n throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(\n parsed,\n ['file', 'data'].concat(\n experimentalNetworkImports ? ['https', 'http'] : []\n )\n )\n }\n}\n\n/**\n * @param {string} specifier\n * @param {{parentURL?: string, conditions?: Array<string>}} context\n * @returns {{url: string, format?: string | null}}\n */\nfunction defaultResolve(specifier, context = {}) {\n const {parentURL} = context;\n assert(parentURL !== undefined, 'expected `parentURL` to be defined');\n throwIfInvalidParentURL(parentURL);\n\n /** @type {URL | undefined} */\n let parsedParentURL;\n if (parentURL) {\n try {\n parsedParentURL = new URL(parentURL);\n } catch {\n // Ignore exception\n }\n }\n\n /** @type {URL | undefined} */\n let parsed;\n try {\n parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier)\n ? new URL(specifier, parsedParentURL)\n : new URL(specifier);\n\n // Avoid accessing the `protocol` property due to the lazy getters.\n const protocol = parsed.protocol;\n\n if (\n protocol === 'data:' ||\n (experimentalNetworkImports &&\n (protocol === 'https:' || protocol === 'http:'))\n ) {\n return {url: parsed.href, format: null}\n }\n } catch {\n // Ignore exception\n }\n\n // There are multiple deep branches that can either throw or return; instead\n // of duplicating that deeply nested logic for the possible returns, DRY and\n // check for a return. This seems the least gnarly.\n const maybeReturn = checkIfDisallowedImport(\n specifier,\n parsed,\n parsedParentURL\n );\n\n if (maybeReturn) return maybeReturn\n\n // This must come after checkIfDisallowedImport\n if (parsed && parsed.protocol === 'node:') return {url: specifier}\n\n throwIfUnsupportedURLScheme(parsed, experimentalNetworkImports);\n\n const conditions = getConditionsSet(context.conditions);\n\n const url = moduleResolve(specifier, new URL(parentURL), conditions, false);\n\n throwIfUnsupportedURLProtocol(url);\n\n return {\n // Do NOT cast `url` to a string: that will work even when there are real\n // problems, silencing them\n url: url.href,\n format: defaultGetFormatWithoutErrors(url, {parentURL})\n }\n}\n\n/**\n * @typedef {import('./lib/errors.js').ErrnoException} ErrnoException\n */\n\n\n/**\n * Match `import.meta.resolve` except that `parent` is required (you can pass\n * `import.meta.url`).\n *\n * @param {string} specifier\n * The module specifier to resolve relative to parent\n * (`/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`,\n * etc).\n * @param {string} parent\n * The absolute parent module URL to resolve from.\n * You must pass `import.meta.url` or something else.\n * @returns {string}\n * Returns a string to a full `file:`, `data:`, or `node:` URL\n * to the found thing.\n */\nfunction resolve(specifier, parent) {\n if (!parent) {\n throw new Error(\n 'Please pass `parent`: `import-meta-resolve` cannot ponyfill that'\n )\n }\n\n try {\n return defaultResolve(specifier, {parentURL: parent}).url\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n\n if (\n exception.code === 'ERR_UNSUPPORTED_DIR_IMPORT' &&\n typeof exception.url === 'string'\n ) {\n return exception.url\n }\n\n throw error\n }\n}\n\nexport { moduleResolve, resolve };\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_assert","data","require","_fs","_interopRequireWildcard","_process","_url","_path","_module","_v","_util","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","own$1","classRegExp","kTypes","Set","codes","formatList","array","type","length","join","slice","messages","Map","nodeInternalPrefix","userStackTraceLimit","ERR_INVALID_ARG_TYPE","createError","name","expected","actual","assert","Array","isArray","message","endsWith","includes","types","instances","other","value","push","toLowerCase","exec","pos","indexOf","determineSpecificType","TypeError","ERR_INVALID_MODULE_SPECIFIER","request","reason","base","undefined","ERR_INVALID_PACKAGE_CONFIG","path","Error","ERR_INVALID_PACKAGE_TARGET","pkgPath","key","target","isImport","relError","startsWith","JSON","stringify","ERR_MODULE_NOT_FOUND","exactUrl","ERR_NETWORK_IMPORT_DISALLOWED","ERR_PACKAGE_IMPORT_NOT_DEFINED","specifier","packagePath","ERR_PACKAGE_PATH_NOT_EXPORTED","subpath","ERR_UNSUPPORTED_DIR_IMPORT","ERR_UNKNOWN_FILE_EXTENSION","ext","ERR_INVALID_ARG_VALUE","inspected","inspect","sym","def","makeNodeErrorWithCode","Base","NodeError","args","limit","stackTraceLimit","isErrorStackTraceLimitWritable","error","getMessage","defineProperties","enumerable","writable","configurable","toString","captureLargerStackTrace","code","v8","startupSnapshot","isBuildingSnapshot","_unused","desc","isExtensible","hideStackFrames","fn","hidden","stackTraceLimitIsWritable","Number","POSITIVE_INFINITY","captureStackTrace","self","Reflect","apply","regex","expectedLength","unshift","format","String","constructor","depth","colors","hasOwnProperty$1","ERR_INVALID_PACKAGE_CONFIG$1","cache","reader","read","packageJsonReader","jsonPath","existing","string","fs","readFileSync","toNamespacedPath","exception","result","exists","pjsonPath","main","exports","imports","parsed","parse","error_","cause","fileURLToPath","getPackageScopeConfig","resolved","packageJSONUrl","URL","packageJSONPath","pathname","packageConfig","lastPackageJSONUrl","getPackageType","url","extensionFormatMap","mimeToFormat","mime","test","protocolHandlers","getDataProtocolModuleFormat","getFileProtocolModuleFormat","getHttpProtocolModuleFormat","node:","extname","index","codePointAt","_context","ignoreErrors","packageType","filepath","defaultGetFormatWithoutErrors","context","protocol","DEFAULT_CONDITIONS","freeze","DEFAULT_CONDITIONS_SET","getDefaultConditions","getDefaultConditionsSet","getConditionsSet","conditions","RegExpPrototypeSymbolReplace","RegExp","Symbol","replace","own","invalidSegmentRegEx","deprecatedInvalidSegmentRegEx","invalidPackageNameRegEx","patternRegEx","encodedSepRegEx","emittedPackageWarnings","doubleSlashRegEx","emitInvalidSegmentDeprecation","match","packageJsonUrl","internal","isTarget","process","noDeprecation","double","emitWarning","emitLegacyIndexDeprecation","parentURL","href","urlPath","basePath","resolve","tryStatSync","statSync","_unused2","Stats","fileExists","stats","throwIfNoEntry","isFile","legacyMainResolve","guess","tries","finalizeResolution","preserveSymlinks","filePath","isDirectory","real","realpathSync","search","hash","pathToFileURL","sep","importNotDefined","exportsNotFound","throwInvalidSubpath","invalidPackageTarget","resolvePackageTargetString","pattern","isPathMap","isURL","_unused3","exportTarget","packageResolve","resolvedTarget","resolvedPath","isArrayIndex","keyNumber","resolvePackageTarget","packageSubpath","targetList","lastException","targetItem","resolveResult","keys","getOwnPropertyNames","conditionalTarget","isConditionalExportsMainSugar","isConditionalSugar","j","curIsConditionalSugar","emitTrailingSlashPatternDeprecation","pjsonUrl","add","packageExportsResolve","bestMatch","bestMatchSubpath","patternIndex","patternTrailer","patternKeyCompare","lastIndexOf","b","aPatternIndex","bPatternIndex","baseLengthA","baseLengthB","packageImportsResolve","parsePackageName","separatorIndex","validPackageName","isScoped","packageName","builtinModules","packageJsonPath","lastPath","stat","isRelativeSpecifier","shouldBeTreatedAsRelativeOrAbsolutePath","moduleResolve","isRemote","_unused4","checkIfDisallowedImport","parsedParentURL","parentProtocol","parsedProtocol","Boolean","throwIfInvalidParentURL","defaultResolve","_unused5","_unused6","maybeReturn","parent"],"sources":["../../src/vendor/import-meta-resolve.js"],"sourcesContent":["\n/****************************************************************************\\\n * NOTE FROM BABEL AUTHORS *\n * This file is inlined from https://github.com/wooorm/import-meta-resolve, *\n * because we need to compile it to CommonJS. *\n\\****************************************************************************/\n\n/*\n(The MIT License)\n\nCopyright (c) 2021 Titus Wormer <mailto:tituswormer@gmail.com>\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n'Software'), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n---\n\nThis is a derivative work based on:\n<https://github.com/nodejs/node>.\nWhich is licensed:\n\n\"\"\"\nCopyright Node.js contributors. All rights reserved.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n\nThis license applies to parts of Node.js originating from the\nhttps://github.com/joyent/node repository:\n\n\"\"\"\nCopyright Joyent, Inc. and other Node contributors. All rights reserved.\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to\ndeal in the Software without restriction, including without limitation the\nrights to use, copy, modify, merge, publish, distribute, sublicense, and/or\nsell copies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\nIN THE SOFTWARE.\n\"\"\"\n*/\n\nimport assert from 'assert';\nimport fs, { realpathSync, statSync, Stats } from 'fs';\nimport process from 'process';\nimport { fileURLToPath, URL, pathToFileURL } from 'url';\nimport path from 'path';\nimport { builtinModules } from 'module';\nimport v8 from 'v8';\nimport { format, inspect } from 'util';\n\n/**\n * @typedef ErrnoExceptionFields\n * @property {number | undefined} [errnode]\n * @property {string | undefined} [code]\n * @property {string | undefined} [path]\n * @property {string | undefined} [syscall]\n * @property {string | undefined} [url]\n *\n * @typedef {Error & ErrnoExceptionFields} ErrnoException\n */\n\n\nconst own$1 = {}.hasOwnProperty;\n\nconst classRegExp = /^([A-Z][a-z\\d]*)+$/;\n// Sorted by a rough estimate on most frequently used entries.\nconst kTypes = new Set([\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]);\n\nconst codes = {};\n\n/**\n * Create a list string in the form like 'A and B' or 'A, B, ..., and Z'.\n * We cannot use Intl.ListFormat because it's not available in\n * --without-intl builds.\n *\n * @param {Array<string>} array\n * An array of strings.\n * @param {string} [type]\n * The list type to be inserted before the last element.\n * @returns {string}\n */\nfunction formatList(array, type = 'and') {\n return array.length < 3\n ? array.join(` ${type} `)\n : `${array.slice(0, -1).join(', ')}, ${type} ${array[array.length - 1]}`\n}\n\n/** @type {Map<string, MessageFunction | string>} */\nconst messages = new Map();\nconst nodeInternalPrefix = '__node_internal_';\n/** @type {number} */\nlet userStackTraceLimit;\n\ncodes.ERR_INVALID_ARG_TYPE = createError(\n 'ERR_INVALID_ARG_TYPE',\n /**\n * @param {string} name\n * @param {Array<string> | string} expected\n * @param {unknown} actual\n */\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\");\n if (!Array.isArray(expected)) {\n expected = [expected];\n }\n\n let message = 'The ';\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n message += `${name} `;\n } else {\n const type = name.includes('.') ? 'property' : 'argument';\n message += `\"${name}\" ${type} `;\n }\n\n message += 'must be ';\n\n /** @type {Array<string>} */\n const types = [];\n /** @type {Array<string>} */\n const instances = [];\n /** @type {Array<string>} */\n const other = [];\n\n for (const value of expected) {\n assert(\n typeof value === 'string',\n 'All expected entries have to be of type string'\n );\n\n if (kTypes.has(value)) {\n types.push(value.toLowerCase());\n } else if (classRegExp.exec(value) === null) {\n assert(\n value !== 'object',\n 'The value \"object\" should be written as \"Object\"'\n );\n other.push(value);\n } else {\n instances.push(value);\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object');\n if (pos !== -1) {\n types.slice(pos, 1);\n instances.push('Object');\n }\n }\n\n if (types.length > 0) {\n message += `${types.length > 1 ? 'one of type' : 'of type'} ${formatList(\n types,\n 'or'\n )}`;\n if (instances.length > 0 || other.length > 0) message += ' or ';\n }\n\n if (instances.length > 0) {\n message += `an instance of ${formatList(instances, 'or')}`;\n if (other.length > 0) message += ' or ';\n }\n\n if (other.length > 0) {\n if (other.length > 1) {\n message += `one of ${formatList(other, 'or')}`;\n } else {\n if (other[0].toLowerCase() !== other[0]) message += 'an ';\n message += `${other[0]}`;\n }\n }\n\n message += `. Received ${determineSpecificType(actual)}`;\n\n return message\n },\n TypeError\n);\n\ncodes.ERR_INVALID_MODULE_SPECIFIER = createError(\n 'ERR_INVALID_MODULE_SPECIFIER',\n /**\n * @param {string} request\n * @param {string} reason\n * @param {string} [base]\n */\n (request, reason, base = undefined) => {\n return `Invalid module \"${request}\" ${reason}${\n base ? ` imported from ${base}` : ''\n }`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_PACKAGE_CONFIG = createError(\n 'ERR_INVALID_PACKAGE_CONFIG',\n /**\n * @param {string} path\n * @param {string} [base]\n * @param {string} [message]\n */\n (path, base, message) => {\n return `Invalid package config ${path}${\n base ? ` while importing ${base}` : ''\n }${message ? `. ${message}` : ''}`\n },\n Error\n);\n\ncodes.ERR_INVALID_PACKAGE_TARGET = createError(\n 'ERR_INVALID_PACKAGE_TARGET',\n /**\n * @param {string} pkgPath\n * @param {string} key\n * @param {unknown} target\n * @param {boolean} [isImport=false]\n * @param {string} [base]\n */\n (pkgPath, key, target, isImport = false, base = undefined) => {\n const relError =\n typeof target === 'string' &&\n !isImport &&\n target.length > 0 &&\n !target.startsWith('./');\n if (key === '.') {\n assert(isImport === false);\n return (\n `Invalid \"exports\" main target ${JSON.stringify(target)} defined ` +\n `in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n )\n }\n\n return `Invalid \"${\n isImport ? 'imports' : 'exports'\n }\" target ${JSON.stringify(\n target\n )} defined for '${key}' in the package config ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }${relError ? '; targets must start with \"./\"' : ''}`\n },\n Error\n);\n\ncodes.ERR_MODULE_NOT_FOUND = createError(\n 'ERR_MODULE_NOT_FOUND',\n /**\n * @param {string} path\n * @param {string} base\n * @param {boolean} [exactUrl]\n */\n (path, base, exactUrl = false) => {\n return `Cannot find ${\n exactUrl ? 'module' : 'package'\n } '${path}' imported from ${base}`\n },\n Error\n);\n\ncodes.ERR_NETWORK_IMPORT_DISALLOWED = createError(\n 'ERR_NETWORK_IMPORT_DISALLOWED',\n \"import of '%s' by %s is not supported: %s\",\n Error\n);\n\ncodes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError(\n 'ERR_PACKAGE_IMPORT_NOT_DEFINED',\n /**\n * @param {string} specifier\n * @param {string} packagePath\n * @param {string} base\n */\n (specifier, packagePath, base) => {\n return `Package import specifier \"${specifier}\" is not defined${\n packagePath ? ` in package ${packagePath}package.json` : ''\n } imported from ${base}`\n },\n TypeError\n);\n\ncodes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError(\n 'ERR_PACKAGE_PATH_NOT_EXPORTED',\n /**\n * @param {string} pkgPath\n * @param {string} subpath\n * @param {string} [base]\n */\n (pkgPath, subpath, base = undefined) => {\n if (subpath === '.')\n return `No \"exports\" main defined in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n return `Package subpath '${subpath}' is not defined by \"exports\" in ${pkgPath}package.json${\n base ? ` imported from ${base}` : ''\n }`\n },\n Error\n);\n\ncodes.ERR_UNSUPPORTED_DIR_IMPORT = createError(\n 'ERR_UNSUPPORTED_DIR_IMPORT',\n \"Directory import '%s' is not supported \" +\n 'resolving ES modules imported from %s',\n Error\n);\n\ncodes.ERR_UNKNOWN_FILE_EXTENSION = createError(\n 'ERR_UNKNOWN_FILE_EXTENSION',\n /**\n * @param {string} ext\n * @param {string} path\n */\n (ext, path) => {\n return `Unknown file extension \"${ext}\" for ${path}`\n },\n TypeError\n);\n\ncodes.ERR_INVALID_ARG_VALUE = createError(\n 'ERR_INVALID_ARG_VALUE',\n /**\n * @param {string} name\n * @param {unknown} value\n * @param {string} [reason='is invalid']\n */\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value);\n\n if (inspected.length > 128) {\n inspected = `${inspected.slice(0, 128)}...`;\n }\n\n const type = name.includes('.') ? 'property' : 'argument';\n\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n // Note: extra classes have been shaken out.\n // , RangeError\n);\n\n/**\n * Utility function for registering the error codes. Only used here. Exported\n * *only* to allow for testing.\n * @param {string} sym\n * @param {MessageFunction | string} value\n * @param {ErrorConstructor} def\n * @returns {new (...args: Array<any>) => Error}\n */\nfunction createError(sym, value, def) {\n // Special case for SystemError that formats the error message differently\n // The SystemErrors only have SystemError as their base classes.\n messages.set(sym, value);\n\n return makeNodeErrorWithCode(def, sym)\n}\n\n/**\n * @param {ErrorConstructor} Base\n * @param {string} key\n * @returns {ErrorConstructor}\n */\nfunction makeNodeErrorWithCode(Base, key) {\n // @ts-expect-error It’s a Node error.\n return NodeError\n /**\n * @param {Array<unknown>} args\n */\n function NodeError(...args) {\n const limit = Error.stackTraceLimit;\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0;\n const error = new Base();\n // Reset the limit and setting the name property.\n if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit;\n const message = getMessage(key, args, error);\n Object.defineProperties(error, {\n // Note: no need to implement `kIsNodeError` symbol, would be hard,\n // probably.\n message: {\n value: message,\n enumerable: false,\n writable: true,\n configurable: true\n },\n toString: {\n /** @this {Error} */\n value() {\n return `${this.name} [${key}]: ${this.message}`\n },\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n captureLargerStackTrace(error);\n // @ts-expect-error It’s a Node error.\n error.code = key;\n return error\n }\n}\n\n/**\n * @returns {boolean}\n */\nfunction isErrorStackTraceLimitWritable() {\n // Do no touch Error.stackTraceLimit as V8 would attempt to install\n // it again during deserialization.\n try {\n // @ts-expect-error: not in types?\n if (v8.startupSnapshot.isBuildingSnapshot()) {\n return false\n }\n } catch {}\n\n const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit');\n if (desc === undefined) {\n return Object.isExtensible(Error)\n }\n\n return own$1.call(desc, 'writable') && desc.writable !== undefined\n ? desc.writable\n : desc.set !== undefined\n}\n\n/**\n * This function removes unnecessary frames from Node.js core errors.\n * @template {(...args: unknown[]) => unknown} T\n * @param {T} fn\n * @returns {T}\n */\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name;\n Object.defineProperty(fn, 'name', {value: hidden});\n return fn\n}\n\nconst captureLargerStackTrace = hideStackFrames(\n /**\n * @param {Error} error\n * @returns {Error}\n */\n // @ts-expect-error: fine\n function (error) {\n const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable();\n if (stackTraceLimitIsWritable) {\n userStackTraceLimit = Error.stackTraceLimit;\n Error.stackTraceLimit = Number.POSITIVE_INFINITY;\n }\n\n Error.captureStackTrace(error);\n\n // Reset the limit\n if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit;\n\n return error\n }\n);\n\n/**\n * @param {string} key\n * @param {Array<unknown>} args\n * @param {Error} self\n * @returns {string}\n */\nfunction getMessage(key, args, self) {\n const message = messages.get(key);\n assert(message !== undefined, 'expected `message` to be found');\n\n if (typeof message === 'function') {\n assert(\n message.length <= args.length, // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${message.length}).`\n );\n return Reflect.apply(message, self, args)\n }\n\n const regex = /%[dfijoOs]/g;\n let expectedLength = 0;\n while (regex.exec(message) !== null) expectedLength++;\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not ` +\n `match the required ones (${expectedLength}).`\n );\n if (args.length === 0) return message\n\n args.unshift(message);\n return Reflect.apply(format, null, args)\n}\n\n/**\n * Determine the specific type of a value for type-mismatch errors.\n * @param {unknown} value\n * @returns {string}\n */\nfunction determineSpecificType(value) {\n if (value === null || value === undefined) {\n return String(value)\n }\n\n if (typeof value === 'function' && value.name) {\n return `function ${value.name}`\n }\n\n if (typeof value === 'object') {\n if (value.constructor && value.constructor.name) {\n return `an instance of ${value.constructor.name}`\n }\n\n return `${inspect(value, {depth: -1})}`\n }\n\n let inspected = inspect(value, {colors: false});\n\n if (inspected.length > 28) {\n inspected = `${inspected.slice(0, 25)}...`;\n }\n\n return `type ${typeof value} (${inspected})`\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/45f5c9b/lib/internal/modules/package_json_reader.js>\n// Last checked on: Nov 2, 2023.\n// Removed the native dependency.\n// Also: no need to cache, we do that in resolve already.\n\n\nconst hasOwnProperty$1 = {}.hasOwnProperty;\n\nconst {ERR_INVALID_PACKAGE_CONFIG: ERR_INVALID_PACKAGE_CONFIG$1} = codes;\n\n/** @type {Map<string, PackageConfig>} */\nconst cache = new Map();\n\nconst reader = {read};\nvar packageJsonReader = reader;\n\n/**\n * @param {string} jsonPath\n * @param {{specifier: URL | string, base?: URL}} options\n * @returns {PackageConfig}\n */\nfunction read(jsonPath, {base, specifier}) {\n const existing = cache.get(jsonPath);\n\n if (existing) {\n return existing\n }\n\n /** @type {string | undefined} */\n let string;\n\n try {\n string = fs.readFileSync(path.toNamespacedPath(jsonPath), 'utf8');\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n\n if (exception.code !== 'ENOENT') {\n throw exception\n }\n }\n\n /** @type {PackageConfig} */\n const result = {\n exists: false,\n pjsonPath: jsonPath,\n main: undefined,\n name: undefined,\n type: 'none', // Ignore unknown types for forwards compatibility\n exports: undefined,\n imports: undefined\n };\n\n if (string !== undefined) {\n /** @type {Record<string, unknown>} */\n let parsed;\n\n try {\n parsed = JSON.parse(string);\n } catch (error_) {\n const cause = /** @type {ErrnoException} */ (error_);\n const error = new ERR_INVALID_PACKAGE_CONFIG$1(\n jsonPath,\n (base ? `\"${specifier}\" from ` : '') + fileURLToPath(base || specifier),\n cause.message\n );\n // @ts-expect-error: fine.\n error.cause = cause;\n throw error\n }\n\n result.exists = true;\n\n if (\n hasOwnProperty$1.call(parsed, 'name') &&\n typeof parsed.name === 'string'\n ) {\n result.name = parsed.name;\n }\n\n if (\n hasOwnProperty$1.call(parsed, 'main') &&\n typeof parsed.main === 'string'\n ) {\n result.main = parsed.main;\n }\n\n if (hasOwnProperty$1.call(parsed, 'exports')) {\n // @ts-expect-error: assume valid.\n result.exports = parsed.exports;\n }\n\n if (hasOwnProperty$1.call(parsed, 'imports')) {\n // @ts-expect-error: assume valid.\n result.imports = parsed.imports;\n }\n\n // Ignore unknown types for forwards compatibility\n if (\n hasOwnProperty$1.call(parsed, 'type') &&\n (parsed.type === 'commonjs' || parsed.type === 'module')\n ) {\n result.type = parsed.type;\n }\n }\n\n cache.set(jsonPath, result);\n\n return result\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/45f5c9b/lib/internal/modules/esm/package_config.js>\n// Last checked on: Nov 2, 2023.\n\n\n/**\n * @param {URL | string} resolved\n * @returns {PackageConfig}\n */\nfunction getPackageScopeConfig(resolved) {\n let packageJSONUrl = new URL('package.json', resolved);\n\n while (true) {\n const packageJSONPath = packageJSONUrl.pathname;\n if (packageJSONPath.endsWith('node_modules/package.json')) {\n break\n }\n\n const packageConfig = packageJsonReader.read(\n fileURLToPath(packageJSONUrl),\n {specifier: resolved}\n );\n\n if (packageConfig.exists) {\n return packageConfig\n }\n\n const lastPackageJSONUrl = packageJSONUrl;\n packageJSONUrl = new URL('../package.json', packageJSONUrl);\n\n // Terminates at root where ../package.json equals ../../package.json\n // (can't just check \"/package.json\" for Windows support).\n if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) {\n break\n }\n }\n\n const packageJSONPath = fileURLToPath(packageJSONUrl);\n\n return {\n pjsonPath: packageJSONPath,\n exists: false,\n main: undefined,\n name: undefined,\n type: 'none',\n exports: undefined,\n imports: undefined\n }\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/45f5c9b/lib/internal/modules/esm/resolve.js>\n// Last checked on: Nov 2, 2023.\n//\n// This file solves a circular dependency.\n// In Node.js, `getPackageType` is in `resolve.js`.\n// `resolve.js` imports `get-format.js`, which needs `getPackageType`.\n// We split that up so that bundlers don’t fail.\n\n\n/**\n * @param {URL} url\n * @returns {PackageType}\n */\nfunction getPackageType(url) {\n const packageConfig = getPackageScopeConfig(url);\n return packageConfig.type\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/45f5c9b/lib/internal/modules/esm/get_format.js>\n// Last checked on: Nov 2, 2023.\n\n\nconst {ERR_UNKNOWN_FILE_EXTENSION} = codes;\n\nconst hasOwnProperty = {}.hasOwnProperty;\n\n/** @type {Record<string, string>} */\nconst extensionFormatMap = {\n // @ts-expect-error: hush.\n __proto__: null,\n '.cjs': 'commonjs',\n '.js': 'module',\n '.json': 'json',\n '.mjs': 'module'\n};\n\n/**\n * @param {string | null} mime\n * @returns {string | null}\n */\nfunction mimeToFormat(mime) {\n if (\n mime &&\n /\\s*(text|application)\\/javascript\\s*(;\\s*charset=utf-?8\\s*)?/i.test(mime)\n )\n return 'module'\n if (mime === 'application/json') return 'json'\n return null\n}\n\n/**\n * @callback ProtocolHandler\n * @param {URL} parsed\n * @param {{parentURL: string, source?: Buffer}} context\n * @param {boolean} ignoreErrors\n * @returns {string | null | void}\n */\n\n/**\n * @type {Record<string, ProtocolHandler>}\n */\nconst protocolHandlers = {\n // @ts-expect-error: hush.\n __proto__: null,\n 'data:': getDataProtocolModuleFormat,\n 'file:': getFileProtocolModuleFormat,\n 'http:': getHttpProtocolModuleFormat,\n 'https:': getHttpProtocolModuleFormat,\n 'node:'() {\n return 'builtin'\n }\n};\n\n/**\n * @param {URL} parsed\n */\nfunction getDataProtocolModuleFormat(parsed) {\n const {1: mime} = /^([^/]+\\/[^;,]+)[^,]*?(;base64)?,/.exec(\n parsed.pathname\n ) || [null, null, null];\n return mimeToFormat(mime)\n}\n\n/**\n * Returns the file extension from a URL.\n *\n * Should give similar result to\n * `require('node:path').extname(require('node:url').fileURLToPath(url))`\n * when used with a `file:` URL.\n *\n * @param {URL} url\n * @returns {string}\n */\nfunction extname(url) {\n const pathname = url.pathname;\n let index = pathname.length;\n\n while (index--) {\n const code = pathname.codePointAt(index);\n\n if (code === 47 /* `/` */) {\n return ''\n }\n\n if (code === 46 /* `.` */) {\n return pathname.codePointAt(index - 1) === 47 /* `/` */\n ? ''\n : pathname.slice(index)\n }\n }\n\n return ''\n}\n\n/**\n * @type {ProtocolHandler}\n */\nfunction getFileProtocolModuleFormat(url, _context, ignoreErrors) {\n const ext = extname(url);\n\n if (ext === '.js') {\n const packageType = getPackageType(url);\n\n if (packageType !== 'none') {\n return packageType\n }\n\n return 'commonjs'\n }\n\n if (ext === '') {\n const packageType = getPackageType(url);\n\n // Legacy behavior\n if (packageType === 'none' || packageType === 'commonjs') {\n return 'commonjs'\n }\n\n // Note: we don’t implement WASM, so we don’t need\n // `getFormatOfExtensionlessFile` from `formats`.\n return 'module'\n }\n\n const format = extensionFormatMap[ext];\n if (format) return format\n\n // Explicit undefined return indicates load hook should rerun format check\n if (ignoreErrors) {\n return undefined\n }\n\n const filepath = fileURLToPath(url);\n throw new ERR_UNKNOWN_FILE_EXTENSION(ext, filepath)\n}\n\nfunction getHttpProtocolModuleFormat() {\n // To do: HTTPS imports.\n}\n\n/**\n * @param {URL} url\n * @param {{parentURL: string}} context\n * @returns {string | null}\n */\nfunction defaultGetFormatWithoutErrors(url, context) {\n const protocol = url.protocol;\n\n if (!hasOwnProperty.call(protocolHandlers, protocol)) {\n return null\n }\n\n return protocolHandlers[protocol](url, context, true) || null\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/45f5c9b/lib/internal/modules/esm/utils.js>\n// Last checked on: Nov 2, 2023.\n\n\nconst {ERR_INVALID_ARG_VALUE} = codes;\n\n// In Node itself these values are populated from CLI arguments, before any\n// user code runs.\n// Here we just define the defaults.\nconst DEFAULT_CONDITIONS = Object.freeze(['node', 'import']);\nconst DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS);\n\n/**\n * Returns the default conditions for ES module loading.\n */\nfunction getDefaultConditions() {\n return DEFAULT_CONDITIONS\n}\n\n/**\n * Returns the default conditions for ES module loading, as a Set.\n */\nfunction getDefaultConditionsSet() {\n return DEFAULT_CONDITIONS_SET\n}\n\n/**\n * @param {Array<string>} [conditions]\n * @returns {Set<string>}\n */\nfunction getConditionsSet(conditions) {\n if (conditions !== undefined && conditions !== getDefaultConditions()) {\n if (!Array.isArray(conditions)) {\n throw new ERR_INVALID_ARG_VALUE(\n 'conditions',\n conditions,\n 'expected an array'\n )\n }\n\n return new Set(conditions)\n }\n\n return getDefaultConditionsSet()\n}\n\n// Manually “tree shaken” from:\n// <https://github.com/nodejs/node/blob/45f5c9b/lib/internal/modules/esm/resolve.js>\n// Last checked on: Nov 2, 2023.\n\n\nconst RegExpPrototypeSymbolReplace = RegExp.prototype[Symbol.replace];\n\nconst {\n ERR_NETWORK_IMPORT_DISALLOWED,\n ERR_INVALID_MODULE_SPECIFIER,\n ERR_INVALID_PACKAGE_CONFIG,\n ERR_INVALID_PACKAGE_TARGET,\n ERR_MODULE_NOT_FOUND,\n ERR_PACKAGE_IMPORT_NOT_DEFINED,\n ERR_PACKAGE_PATH_NOT_EXPORTED,\n ERR_UNSUPPORTED_DIR_IMPORT\n} = codes;\n\nconst own = {}.hasOwnProperty;\n\nconst invalidSegmentRegEx =\n /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))?(\\\\|\\/|$)/i;\nconst deprecatedInvalidSegmentRegEx =\n /(^|\\\\|\\/)((\\.|%2e)(\\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\\\|\\/|$)/i;\nconst invalidPackageNameRegEx = /^\\.|%|\\\\/;\nconst patternRegEx = /\\*/g;\nconst encodedSepRegEx = /%2f|%5c/i;\n/** @type {Set<string>} */\nconst emittedPackageWarnings = new Set();\n\nconst doubleSlashRegEx = /[/\\\\]{2}/;\n\n/**\n *\n * @param {string} target\n * @param {string} request\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} base\n * @param {boolean} isTarget\n */\nfunction emitInvalidSegmentDeprecation(\n target,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n isTarget\n) {\n // @ts-expect-error: apparently it does exist, TS.\n if (process.noDeprecation) {\n return\n }\n\n const pjsonPath = fileURLToPath(packageJsonUrl);\n const double = doubleSlashRegEx.exec(isTarget ? target : request) !== null;\n process.emitWarning(\n `Use of deprecated ${\n double ? 'double slash' : 'leading or trailing slash matching'\n } resolving \"${target}\" for module ` +\n `request \"${request}\" ${\n request === match ? '' : `matched to \"${match}\" `\n }in the \"${\n internal ? 'imports' : 'exports'\n }\" field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }.`,\n 'DeprecationWarning',\n 'DEP0166'\n );\n}\n\n/**\n * @param {URL} url\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {string} [main]\n * @returns {void}\n */\nfunction emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) {\n // @ts-expect-error: apparently it does exist, TS.\n if (process.noDeprecation) {\n return\n }\n\n const format = defaultGetFormatWithoutErrors(url, {parentURL: base.href});\n if (format !== 'module') return\n const urlPath = fileURLToPath(url.href);\n const pkgPath = fileURLToPath(new URL('.', packageJsonUrl));\n const basePath = fileURLToPath(base);\n if (!main) {\n process.emitWarning(\n `No \"main\" or \"exports\" field defined in the package.json for ${pkgPath} resolving the main entry point \"${urlPath.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\nDefault \"index\" lookups for the main are deprecated for ES modules.`,\n 'DeprecationWarning',\n 'DEP0151'\n );\n } else if (path.resolve(pkgPath, main) !== urlPath) {\n process.emitWarning(\n `Package ${pkgPath} has a \"main\" field set to \"${main}\", ` +\n `excluding the full filename and extension to the resolved file at \"${urlPath.slice(\n pkgPath.length\n )}\", imported from ${basePath}.\\n Automatic extension resolution of the \"main\" field is ` +\n 'deprecated for ES modules.',\n 'DeprecationWarning',\n 'DEP0151'\n );\n }\n}\n\n/**\n * @param {string} path\n * @returns {Stats}\n */\nfunction tryStatSync(path) {\n // Note: from Node 15 onwards we can use `throwIfNoEntry: false` instead.\n try {\n return statSync(path)\n } catch {\n return new Stats()\n }\n}\n\n/**\n * Legacy CommonJS main resolution:\n * 1. let M = pkg_url + (json main field)\n * 2. TRY(M, M.js, M.json, M.node)\n * 3. TRY(M/index.js, M/index.json, M/index.node)\n * 4. TRY(pkg_url/index.js, pkg_url/index.json, pkg_url/index.node)\n * 5. NOT_FOUND\n *\n * @param {URL} url\n * @returns {boolean}\n */\nfunction fileExists(url) {\n const stats = statSync(url, {throwIfNoEntry: false});\n const isFile = stats ? stats.isFile() : undefined;\n return isFile === null || isFile === undefined ? false : isFile\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {PackageConfig} packageConfig\n * @param {URL} base\n * @returns {URL}\n */\nfunction legacyMainResolve(packageJsonUrl, packageConfig, base) {\n /** @type {URL | undefined} */\n let guess;\n if (packageConfig.main !== undefined) {\n guess = new URL(packageConfig.main, packageJsonUrl);\n // Note: fs check redundances will be handled by Descriptor cache here.\n if (fileExists(guess)) return guess\n\n const tries = [\n `./${packageConfig.main}.js`,\n `./${packageConfig.main}.json`,\n `./${packageConfig.main}.node`,\n `./${packageConfig.main}/index.js`,\n `./${packageConfig.main}/index.json`,\n `./${packageConfig.main}/index.node`\n ];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(\n guess,\n packageJsonUrl,\n base,\n packageConfig.main\n );\n return guess\n }\n // Fallthrough.\n }\n\n const tries = ['./index.js', './index.json', './index.node'];\n let i = -1;\n\n while (++i < tries.length) {\n guess = new URL(tries[i], packageJsonUrl);\n if (fileExists(guess)) break\n guess = undefined;\n }\n\n if (guess) {\n emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main);\n return guess\n }\n\n // Not found.\n throw new ERR_MODULE_NOT_FOUND(\n fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {URL} resolved\n * @param {URL} base\n * @param {boolean} [preserveSymlinks]\n * @returns {URL}\n */\nfunction finalizeResolution(resolved, base, preserveSymlinks) {\n if (encodedSepRegEx.exec(resolved.pathname) !== null) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n resolved.pathname,\n 'must not include encoded \"/\" or \"\\\\\" characters',\n fileURLToPath(base)\n )\n }\n\n /** @type {string} */\n let filePath;\n\n try {\n filePath = fileURLToPath(resolved);\n } catch (error) {\n const cause = /** @type {ErrnoException} */ (error);\n Object.defineProperty(cause, 'input', {value: String(resolved)});\n Object.defineProperty(cause, 'module', {value: String(base)});\n throw cause\n }\n\n const stats = tryStatSync(\n filePath.endsWith('/') ? filePath.slice(-1) : filePath\n );\n\n if (stats.isDirectory()) {\n const error = new ERR_UNSUPPORTED_DIR_IMPORT(filePath, fileURLToPath(base));\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!stats.isFile()) {\n const error = new ERR_MODULE_NOT_FOUND(\n filePath || resolved.pathname,\n base && fileURLToPath(base),\n true\n );\n // @ts-expect-error Add this for `import.meta.resolve`.\n error.url = String(resolved);\n throw error\n }\n\n if (!preserveSymlinks) {\n const real = realpathSync(filePath);\n const {search, hash} = resolved;\n resolved = pathToFileURL(real + (filePath.endsWith(path.sep) ? '/' : ''));\n resolved.search = search;\n resolved.hash = hash;\n }\n\n return resolved\n}\n\n/**\n * @param {string} specifier\n * @param {URL | undefined} packageJsonUrl\n * @param {URL} base\n * @returns {Error}\n */\nfunction importNotDefined(specifier, packageJsonUrl, base) {\n return new ERR_PACKAGE_IMPORT_NOT_DEFINED(\n specifier,\n packageJsonUrl && fileURLToPath(new URL('.', packageJsonUrl)),\n fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {Error}\n */\nfunction exportsNotFound(subpath, packageJsonUrl, base) {\n return new ERR_PACKAGE_PATH_NOT_EXPORTED(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} request\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {never}\n */\nfunction throwInvalidSubpath(request, match, packageJsonUrl, internal, base) {\n const reason = `request is not a valid match in pattern \"${match}\" for the \"${\n internal ? 'imports' : 'exports'\n }\" resolution of ${fileURLToPath(packageJsonUrl)}`;\n throw new ERR_INVALID_MODULE_SPECIFIER(\n request,\n reason,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} subpath\n * @param {unknown} target\n * @param {URL} packageJsonUrl\n * @param {boolean} internal\n * @param {URL} [base]\n * @returns {Error}\n */\nfunction invalidPackageTarget(subpath, target, packageJsonUrl, internal, base) {\n target =\n typeof target === 'object' && target !== null\n ? JSON.stringify(target, null, '')\n : `${target}`;\n\n return new ERR_INVALID_PACKAGE_TARGET(\n fileURLToPath(new URL('.', packageJsonUrl)),\n subpath,\n target,\n internal,\n base && fileURLToPath(base)\n )\n}\n\n/**\n * @param {string} target\n * @param {string} subpath\n * @param {string} match\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {boolean} isPathMap\n * @param {Set<string> | undefined} conditions\n * @returns {URL}\n */\nfunction resolvePackageTargetString(\n target,\n subpath,\n match,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n) {\n if (subpath !== '' && !pattern && target[target.length - 1] !== '/')\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n\n if (!target.startsWith('./')) {\n if (internal && !target.startsWith('../') && !target.startsWith('/')) {\n let isURL = false;\n\n try {\n new URL(target);\n isURL = true;\n } catch {\n // Continue regardless of error.\n }\n\n if (!isURL) {\n const exportTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target + subpath;\n\n return packageResolve(exportTarget, packageJsonUrl, conditions)\n }\n }\n\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n }\n\n if (invalidSegmentRegEx.exec(target.slice(2)) !== null) {\n if (deprecatedInvalidSegmentRegEx.exec(target.slice(2)) === null) {\n if (!isPathMap) {\n const request = pattern\n ? match.replace('*', () => subpath)\n : match + subpath;\n const resolvedTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n true\n );\n }\n } else {\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n }\n }\n\n const resolved = new URL(target, packageJsonUrl);\n const resolvedPath = resolved.pathname;\n const packagePath = new URL('.', packageJsonUrl).pathname;\n\n if (!resolvedPath.startsWith(packagePath))\n throw invalidPackageTarget(match, target, packageJsonUrl, internal, base)\n\n if (subpath === '') return resolved\n\n if (invalidSegmentRegEx.exec(subpath) !== null) {\n const request = pattern\n ? match.replace('*', () => subpath)\n : match + subpath;\n if (deprecatedInvalidSegmentRegEx.exec(subpath) === null) {\n if (!isPathMap) {\n const resolvedTarget = pattern\n ? RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n target,\n () => subpath\n )\n : target;\n emitInvalidSegmentDeprecation(\n resolvedTarget,\n request,\n match,\n packageJsonUrl,\n internal,\n base,\n false\n );\n }\n } else {\n throwInvalidSubpath(request, match, packageJsonUrl, internal, base);\n }\n }\n\n if (pattern) {\n return new URL(\n RegExpPrototypeSymbolReplace.call(\n patternRegEx,\n resolved.href,\n () => subpath\n )\n )\n }\n\n return new URL(subpath, resolved)\n}\n\n/**\n * @param {string} key\n * @returns {boolean}\n */\nfunction isArrayIndex(key) {\n const keyNumber = Number(key);\n if (`${keyNumber}` !== key) return false\n return keyNumber >= 0 && keyNumber < 0xff_ff_ff_ff\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {unknown} target\n * @param {string} subpath\n * @param {string} packageSubpath\n * @param {URL} base\n * @param {boolean} pattern\n * @param {boolean} internal\n * @param {boolean} isPathMap\n * @param {Set<string> | undefined} conditions\n * @returns {URL | null}\n */\nfunction resolvePackageTarget(\n packageJsonUrl,\n target,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n) {\n if (typeof target === 'string') {\n return resolvePackageTargetString(\n target,\n subpath,\n packageSubpath,\n packageJsonUrl,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n )\n }\n\n if (Array.isArray(target)) {\n /** @type {Array<unknown>} */\n const targetList = target;\n if (targetList.length === 0) return null\n\n /** @type {ErrnoException | null | undefined} */\n let lastException;\n let i = -1;\n\n while (++i < targetList.length) {\n const targetItem = targetList[i];\n /** @type {URL | null} */\n let resolveResult;\n try {\n resolveResult = resolvePackageTarget(\n packageJsonUrl,\n targetItem,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n } catch (error) {\n const exception = /** @type {ErrnoException} */ (error);\n lastException = exception;\n if (exception.code === 'ERR_INVALID_PACKAGE_TARGET') continue\n throw error\n }\n\n if (resolveResult === undefined) continue\n\n if (resolveResult === null) {\n lastException = null;\n continue\n }\n\n return resolveResult\n }\n\n if (lastException === undefined || lastException === null) {\n return null\n }\n\n throw lastException\n }\n\n if (typeof target === 'object' && target !== null) {\n const keys = Object.getOwnPropertyNames(target);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (isArrayIndex(key)) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain numeric property keys.'\n )\n }\n }\n\n i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n if (key === 'default' || (conditions && conditions.has(key))) {\n // @ts-expect-error: indexable.\n const conditionalTarget = /** @type {unknown} */ (target[key]);\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n conditionalTarget,\n subpath,\n packageSubpath,\n base,\n pattern,\n internal,\n isPathMap,\n conditions\n );\n if (resolveResult === undefined) continue\n return resolveResult\n }\n }\n\n return null\n }\n\n if (target === null) {\n return null\n }\n\n throw invalidPackageTarget(\n packageSubpath,\n target,\n packageJsonUrl,\n internal,\n base\n )\n}\n\n/**\n * @param {unknown} exports\n * @param {URL} packageJsonUrl\n * @param {URL} base\n * @returns {boolean}\n */\nfunction isConditionalExportsMainSugar(exports, packageJsonUrl, base) {\n if (typeof exports === 'string' || Array.isArray(exports)) return true\n if (typeof exports !== 'object' || exports === null) return false\n\n const keys = Object.getOwnPropertyNames(exports);\n let isConditionalSugar = false;\n let i = 0;\n let j = -1;\n while (++j < keys.length) {\n const key = keys[j];\n const curIsConditionalSugar = key === '' || key[0] !== '.';\n if (i++ === 0) {\n isConditionalSugar = curIsConditionalSugar;\n } else if (isConditionalSugar !== curIsConditionalSugar) {\n throw new ERR_INVALID_PACKAGE_CONFIG(\n fileURLToPath(packageJsonUrl),\n base,\n '\"exports\" cannot contain some keys starting with \\'.\\' and some not.' +\n ' The exports object must either be an object of package subpath keys' +\n ' or an object of main entry condition name keys only.'\n )\n }\n }\n\n return isConditionalSugar\n}\n\n/**\n * @param {string} match\n * @param {URL} pjsonUrl\n * @param {URL} base\n */\nfunction emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) {\n // @ts-expect-error: apparently it does exist, TS.\n if (process.noDeprecation) {\n return\n }\n\n const pjsonPath = fileURLToPath(pjsonUrl);\n if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return\n emittedPackageWarnings.add(pjsonPath + '|' + match);\n process.emitWarning(\n `Use of deprecated trailing slash pattern mapping \"${match}\" in the ` +\n `\"exports\" field module resolution of the package at ${pjsonPath}${\n base ? ` imported from ${fileURLToPath(base)}` : ''\n }. Mapping specifiers ending in \"/\" is no longer supported.`,\n 'DeprecationWarning',\n 'DEP0155'\n );\n}\n\n/**\n * @param {URL} packageJsonUrl\n * @param {string} packageSubpath\n * @param {Record<string, unknown>} packageConfig\n * @param {URL} base\n * @param {Set<string> | undefined} conditions\n * @returns {URL}\n */\nfunction packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n) {\n let exports = packageConfig.exports;\n\n if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) {\n exports = {'.': exports};\n }\n\n if (\n own.call(exports, packageSubpath) &&\n !packageSubpath.includes('*') &&\n !packageSubpath.endsWith('/')\n ) {\n // @ts-expect-error: indexable.\n const target = exports[packageSubpath];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n '',\n packageSubpath,\n base,\n false,\n false,\n false,\n conditions\n );\n if (resolveResult === null || resolveResult === undefined) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n }\n\n return resolveResult\n }\n\n let bestMatch = '';\n let bestMatchSubpath = '';\n const keys = Object.getOwnPropertyNames(exports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n const patternIndex = key.indexOf('*');\n\n if (\n patternIndex !== -1 &&\n packageSubpath.startsWith(key.slice(0, patternIndex))\n ) {\n // When this reaches EOL, this can throw at the top of the whole function:\n //\n // if (StringPrototypeEndsWith(packageSubpath, '/'))\n // throwInvalidSubpath(packageSubpath)\n //\n // To match \"imports\" and the spec.\n if (packageSubpath.endsWith('/')) {\n emitTrailingSlashPatternDeprecation(\n packageSubpath,\n packageJsonUrl,\n base\n );\n }\n\n const patternTrailer = key.slice(patternIndex + 1);\n\n if (\n packageSubpath.length >= key.length &&\n packageSubpath.endsWith(patternTrailer) &&\n patternKeyCompare(bestMatch, key) === 1 &&\n key.lastIndexOf('*') === patternIndex\n ) {\n bestMatch = key;\n bestMatchSubpath = packageSubpath.slice(\n patternIndex,\n packageSubpath.length - patternTrailer.length\n );\n }\n }\n }\n\n if (bestMatch) {\n // @ts-expect-error: indexable.\n const target = /** @type {unknown} */ (exports[bestMatch]);\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n false,\n packageSubpath.endsWith('/'),\n conditions\n );\n\n if (resolveResult === null || resolveResult === undefined) {\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n }\n\n return resolveResult\n }\n\n throw exportsNotFound(packageSubpath, packageJsonUrl, base)\n}\n\n/**\n * @param {string} a\n * @param {string} b\n */\nfunction patternKeyCompare(a, b) {\n const aPatternIndex = a.indexOf('*');\n const bPatternIndex = b.indexOf('*');\n const baseLengthA = aPatternIndex === -1 ? a.length : aPatternIndex + 1;\n const baseLengthB = bPatternIndex === -1 ? b.length : bPatternIndex + 1;\n if (baseLengthA > baseLengthB) return -1\n if (baseLengthB > baseLengthA) return 1\n if (aPatternIndex === -1) return 1\n if (bPatternIndex === -1) return -1\n if (a.length > b.length) return -1\n if (b.length > a.length) return 1\n return 0\n}\n\n/**\n * @param {string} name\n * @param {URL} base\n * @param {Set<string>} [conditions]\n * @returns {URL}\n */\nfunction packageImportsResolve(name, base, conditions) {\n if (name === '#' || name.startsWith('#/') || name.endsWith('/')) {\n const reason = 'is not a valid internal imports specifier name';\n throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base))\n }\n\n /** @type {URL | undefined} */\n let packageJsonUrl;\n\n const packageConfig = getPackageScopeConfig(base);\n\n if (packageConfig.exists) {\n packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n const imports = packageConfig.imports;\n if (imports) {\n if (own.call(imports, name) && !name.includes('*')) {\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n imports[name],\n '',\n name,\n base,\n false,\n true,\n false,\n conditions\n );\n if (resolveResult !== null && resolveResult !== undefined) {\n return resolveResult\n }\n } else {\n let bestMatch = '';\n let bestMatchSubpath = '';\n const keys = Object.getOwnPropertyNames(imports);\n let i = -1;\n\n while (++i < keys.length) {\n const key = keys[i];\n const patternIndex = key.indexOf('*');\n\n if (patternIndex !== -1 && name.startsWith(key.slice(0, -1))) {\n const patternTrailer = key.slice(patternIndex + 1);\n if (\n name.length >= key.length &&\n name.endsWith(patternTrailer) &&\n patternKeyCompare(bestMatch, key) === 1 &&\n key.lastIndexOf('*') === patternIndex\n ) {\n bestMatch = key;\n bestMatchSubpath = name.slice(\n patternIndex,\n name.length - patternTrailer.length\n );\n }\n }\n }\n\n if (bestMatch) {\n const target = imports[bestMatch];\n const resolveResult = resolvePackageTarget(\n packageJsonUrl,\n target,\n bestMatchSubpath,\n bestMatch,\n base,\n true,\n true,\n false,\n conditions\n );\n\n if (resolveResult !== null && resolveResult !== undefined) {\n return resolveResult\n }\n }\n }\n }\n }\n\n throw importNotDefined(name, packageJsonUrl, base)\n}\n\n// Note: In Node.js, `getPackageType` is here.\n// To prevent a circular dependency, we move it to\n// `resolve-get-package-type.js`.\n\n/**\n * @param {string} specifier\n * @param {URL} base\n */\nfunction parsePackageName(specifier, base) {\n let separatorIndex = specifier.indexOf('/');\n let validPackageName = true;\n let isScoped = false;\n if (specifier[0] === '@') {\n isScoped = true;\n if (separatorIndex === -1 || specifier.length === 0) {\n validPackageName = false;\n } else {\n separatorIndex = specifier.indexOf('/', separatorIndex + 1);\n }\n }\n\n const packageName =\n separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex);\n\n // Package name cannot have leading . and cannot have percent-encoding or\n // \\\\ separators.\n if (invalidPackageNameRegEx.exec(packageName) !== null) {\n validPackageName = false;\n }\n\n if (!validPackageName) {\n throw new ERR_INVALID_MODULE_SPECIFIER(\n specifier,\n 'is not a valid package name',\n fileURLToPath(base)\n )\n }\n\n const packageSubpath =\n '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex));\n\n return {packageName, packageSubpath, isScoped}\n}\n\n/**\n * @param {string} specifier\n * @param {URL} base\n * @param {Set<string> | undefined} conditions\n * @returns {URL}\n */\nfunction packageResolve(specifier, base, conditions) {\n if (builtinModules.includes(specifier)) {\n return new URL('node:' + specifier)\n }\n\n const {packageName, packageSubpath, isScoped} = parsePackageName(\n specifier,\n base\n );\n\n // ResolveSelf\n const packageConfig = getPackageScopeConfig(base);\n\n // Can’t test.\n /* c8 ignore next 16 */\n if (packageConfig.exists) {\n const packageJsonUrl = pathToFileURL(packageConfig.pjsonPath);\n if (\n packageConfig.name === packageName &&\n packageConfig.exports !== undefined &&\n packageConfig.exports !== null\n ) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n )\n }\n }\n\n let packageJsonUrl = new URL(\n './node_modules/' + packageName + '/package.json',\n base\n );\n let packageJsonPath = fileURLToPath(packageJsonUrl);\n /** @type {string} */\n let lastPath;\n do {\n const stat = tryStatSync(packageJsonPath.slice(0, -13));\n if (!stat.isDirectory()) {\n lastPath = packageJsonPath;\n packageJsonUrl = new URL(\n (isScoped ? '../../../../node_modules/' : '../../../node_modules/') +\n packageName +\n '/package.json',\n packageJsonUrl\n );\n packageJsonPath = fileURLToPath(packageJsonUrl);\n continue\n }\n\n // Package match.\n const packageConfig = packageJsonReader.read(packageJsonPath, {\n base,\n specifier\n });\n if (packageConfig.exports !== undefined && packageConfig.exports !== null) {\n return packageExportsResolve(\n packageJsonUrl,\n packageSubpath,\n packageConfig,\n base,\n conditions\n )\n }\n\n if (packageSubpath === '.') {\n return legacyMainResolve(packageJsonUrl, packageConfig, base)\n }\n\n return new URL(packageSubpath, packageJsonUrl)\n // Cross-platform root check.\n } while (packageJsonPath.length !== lastPath.length)\n\n throw new ERR_MODULE_NOT_FOUND(packageName, fileURLToPath(base), false)\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction isRelativeSpecifier(specifier) {\n if (specifier[0] === '.') {\n if (specifier.length === 1 || specifier[1] === '/') return true\n if (\n specifier[1] === '.' &&\n (specifier.length === 2 || specifier[2] === '/')\n ) {\n return true\n }\n }\n\n return false\n}\n\n/**\n * @param {string} specifier\n * @returns {boolean}\n */\nfunction shouldBeTreatedAsRelativeOrAbsolutePath(specifier) {\n if (specifier === '') return false\n if (specifier[0] === '/') return true\n return isRelativeSpecifier(specifier)\n}\n\n/**\n * The “Resolver Algorithm Specification” as detailed in the Node docs (which is\n * sync and slightly lower-level than `resolve`).\n *\n * @param {string} specifier\n * `/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`, etc.\n * @param {URL} base\n * Full URL (to a file) that `specifier` is resolved relative from.\n * @param {Set<string>} [conditions]\n * Conditions.\n * @param {boolean} [preserveSymlinks]\n * Keep symlinks instead of resolving them.\n * @returns {URL}\n * A URL object to the found thing.\n */\nfunction moduleResolve(specifier, base, conditions, preserveSymlinks) {\n const protocol = base.protocol;\n const isRemote = protocol === 'http:' || protocol === 'https:';\n // Order swapped from spec for minor perf gain.\n // Ok since relative URLs cannot parse as URLs.\n /** @type {URL | undefined} */\n let resolved;\n\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n resolved = new URL(specifier, base);\n } else if (!isRemote && specifier[0] === '#') {\n resolved = packageImportsResolve(specifier, base, conditions);\n } else {\n try {\n resolved = new URL(specifier);\n } catch {\n if (!isRemote) {\n resolved = packageResolve(specifier, base, conditions);\n }\n }\n }\n\n assert(resolved !== undefined, 'expected to be defined');\n\n if (resolved.protocol !== 'file:') {\n return resolved\n }\n\n return finalizeResolution(resolved, base, preserveSymlinks)\n}\n\n/**\n * @param {string} specifier\n * @param {URL | undefined} parsed\n * @param {URL | undefined} parsedParentURL\n */\nfunction checkIfDisallowedImport(specifier, parsed, parsedParentURL) {\n if (parsedParentURL) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const parentProtocol = parsedParentURL.protocol;\n\n if (parentProtocol === 'http:' || parentProtocol === 'https:') {\n if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) {\n // Avoid accessing the `protocol` property due to the lazy getters.\n const parsedProtocol = parsed?.protocol;\n\n // `data:` and `blob:` disallowed due to allowing file: access via\n // indirection\n if (\n parsedProtocol &&\n parsedProtocol !== 'https:' &&\n parsedProtocol !== 'http:'\n ) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'remote imports cannot import from a local location.'\n )\n }\n\n return {url: parsed?.href || ''}\n }\n\n if (builtinModules.includes(specifier)) {\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'remote imports cannot import from a local location.'\n )\n }\n\n throw new ERR_NETWORK_IMPORT_DISALLOWED(\n specifier,\n parsedParentURL,\n 'only relative and absolute specifiers are supported.'\n )\n }\n }\n}\n\n// Note: this is from:\n// <https://github.com/nodejs/node/blob/3e74590/lib/internal/url.js#L687>\n/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * @template {unknown} Value\n * @param {Value} self\n * @returns {Value is URL}\n */\nfunction isURL(self) {\n return Boolean(\n self &&\n typeof self === 'object' &&\n 'href' in self &&\n typeof self.href === 'string' &&\n 'protocol' in self &&\n typeof self.protocol === 'string' &&\n self.href &&\n self.protocol\n )\n}\n\n/**\n * Validate user-input in `context` supplied by a custom loader.\n *\n * @param {unknown} parentURL\n * @returns {asserts parentURL is URL | string | undefined}\n */\nfunction throwIfInvalidParentURL(parentURL) {\n if (parentURL === undefined) {\n return // Main entry point, so no parent\n }\n\n if (typeof parentURL !== 'string' && !isURL(parentURL)) {\n throw new codes.ERR_INVALID_ARG_TYPE(\n 'parentURL',\n ['string', 'URL'],\n parentURL\n )\n }\n}\n\n/**\n * @param {string} specifier\n * @param {{parentURL?: string, conditions?: Array<string>}} context\n * @returns {{url: string, format?: string | null}}\n */\nfunction defaultResolve(specifier, context = {}) {\n const {parentURL} = context;\n assert(parentURL !== undefined, 'expected `parentURL` to be defined');\n throwIfInvalidParentURL(parentURL);\n\n /** @type {URL | undefined} */\n let parsedParentURL;\n if (parentURL) {\n try {\n parsedParentURL = new URL(parentURL);\n } catch {\n // Ignore exception\n }\n }\n\n /** @type {URL | undefined} */\n let parsed;\n try {\n parsed = shouldBeTreatedAsRelativeOrAbsolutePath(specifier)\n ? new URL(specifier, parsedParentURL)\n : new URL(specifier);\n\n // Avoid accessing the `protocol` property due to the lazy getters.\n const protocol = parsed.protocol;\n\n if (protocol === 'data:') {\n return {url: parsed.href, format: null}\n }\n } catch {\n // Ignore exception\n }\n\n // There are multiple deep branches that can either throw or return; instead\n // of duplicating that deeply nested logic for the possible returns, DRY and\n // check for a return. This seems the least gnarly.\n const maybeReturn = checkIfDisallowedImport(\n specifier,\n parsed,\n parsedParentURL\n );\n\n if (maybeReturn) return maybeReturn\n\n // This must come after checkIfDisallowedImport\n if (parsed && parsed.protocol === 'node:') return {url: specifier}\n\n const conditions = getConditionsSet(context.conditions);\n\n const url = moduleResolve(specifier, new URL(parentURL), conditions, false);\n\n return {\n // Do NOT cast `url` to a string: that will work even when there are real\n // problems, silencing them\n url: url.href,\n format: defaultGetFormatWithoutErrors(url, {parentURL})\n }\n}\n\n/**\n * @typedef {import('./lib/errors.js').ErrnoException} ErrnoException\n */\n\n\n/**\n * Match `import.meta.resolve` except that `parent` is required (you can pass\n * `import.meta.url`).\n *\n * @param {string} specifier\n * The module specifier to resolve relative to parent\n * (`/example.js`, `./example.js`, `../example.js`, `some-package`, `fs`,\n * etc).\n * @param {string} parent\n * The absolute parent module URL to resolve from.\n * You must pass `import.meta.url` or something else.\n * @returns {string}\n * Returns a string to a full `file:`, `data:`, or `node:` URL\n * to the found thing.\n */\nfunction resolve(specifier, parent) {\n if (!parent) {\n throw new Error(\n 'Please pass `parent`: `import-meta-resolve` cannot ponyfill that'\n )\n }\n\n try {\n return defaultResolve(specifier, {parentURL: parent}).url\n } catch (error) {\n // See: <https://github.com/nodejs/node/blob/45f5c9b/lib/internal/modules/esm/initialize_import_meta.js#L34>\n const exception = /** @type {ErrnoException} */ (error);\n\n if (\n (exception.code === 'ERR_UNSUPPORTED_DIR_IMPORT' ||\n exception.code === 'ERR_MODULE_NOT_FOUND') &&\n typeof exception.url === 'string'\n ) {\n return exception.url\n }\n\n throw error\n }\n}\n\nexport { moduleResolve, resolve };\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/core/package.json b/node_modules/@babel/core/package.json index bd8a0102..8caea33b 100644 --- a/node_modules/@babel/core/package.json +++ b/node_modules/@babel/core/package.json @@ -1,6 +1,6 @@ { "name": "@babel/core", - "version": "7.23.2", + "version": "7.23.6", "description": "Babel compiler core.", "main": "./lib/index.js", "author": "The Babel Team (https://babel.dev/team)", @@ -47,15 +47,15 @@ }, "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", - "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-module-transforms": "^7.23.0", - "@babel/helpers": "^7.23.2", - "@babel/parser": "^7.23.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", + "@babel/helper-compilation-targets": "^7.23.6", + "@babel/helper-module-transforms": "^7.23.3", + "@babel/helpers": "^7.23.6", + "@babel/parser": "^7.23.6", "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0", + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -64,11 +64,11 @@ }, "devDependencies": { "@babel/helper-transform-fixture-test-runner": "^7.22.19", - "@babel/plugin-syntax-flow": "^7.22.5", - "@babel/plugin-transform-flow-strip-types": "^7.22.5", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/preset-env": "^7.23.2", - "@babel/preset-typescript": "^7.23.2", + "@babel/plugin-syntax-flow": "^7.23.3", + "@babel/plugin-transform-flow-strip-types": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/preset-env": "^7.23.6", + "@babel/preset-typescript": "^7.23.3", "@jridgewell/trace-mapping": "^0.3.17", "@types/convert-source-map": "^2.0.0", "@types/debug": "^4.1.0", diff --git a/node_modules/@babel/generator/lib/buffer.js b/node_modules/@babel/generator/lib/buffer.js index b9574f87..aad6c0bf 100644 --- a/node_modules/@babel/generator/lib/buffer.js +++ b/node_modules/@babel/generator/lib/buffer.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; class Buffer { - constructor(map) { + constructor(map, indentChar) { this._map = null; this._buf = ""; this._str = ""; @@ -14,6 +14,8 @@ class Buffer { this._queue = []; this._queueCursor = 0; this._canMarkIdName = true; + this._indentChar = ""; + this._fastIndentations = []; this._position = { line: 1, column: 0 @@ -26,6 +28,10 @@ class Buffer { filename: undefined }; this._map = map; + this._indentChar = indentChar; + for (let i = 0; i < 64; i++) { + this._fastIndentations.push(indentChar.repeat(i)); + } this._allocQueue(); } _allocQueue() { @@ -116,8 +122,9 @@ class Buffer { const sourcePosition = this._sourcePosition; this._pushQueue(char, 1, sourcePosition.line, sourcePosition.column, sourcePosition.filename); } - queueIndentation(char, repeat) { - this._pushQueue(char, repeat, undefined, undefined, undefined); + queueIndentation(repeat) { + if (repeat === 0) return; + this._pushQueue(-1, repeat, undefined, undefined, undefined); } _flush() { const queueCursor = this._queueCursor; @@ -130,7 +137,16 @@ class Buffer { } _appendChar(char, repeat, sourcePos) { this._last = char; - this._str += repeat > 1 ? String.fromCharCode(char).repeat(repeat) : String.fromCharCode(char); + if (char === -1) { + const fastIndentation = this._fastIndentations[repeat]; + if (fastIndentation !== undefined) { + this._str += fastIndentation; + } else { + this._str += repeat > 1 ? this._indentChar.repeat(repeat) : this._indentChar; + } + } else { + this._str += repeat > 1 ? String.fromCharCode(char).repeat(repeat) : String.fromCharCode(char); + } if (char !== 10) { this._mark(sourcePos.line, sourcePos.column, sourcePos.identifierName, sourcePos.identifierNamePos, sourcePos.filename); this._position.column += repeat; @@ -188,7 +204,7 @@ class Buffer { } _mark(line, column, identifierName, identifierNamePos, filename) { var _this$_map; - (_this$_map = this._map) == null ? void 0 : _this$_map.mark(this._position, line, column, identifierName, identifierNamePos, filename); + (_this$_map = this._map) == null || _this$_map.mark(this._position, line, column, identifierName, identifierNamePos, filename); } removeTrailingNewline() { const queueCursor = this._queueCursor; diff --git a/node_modules/@babel/generator/lib/buffer.js.map b/node_modules/@babel/generator/lib/buffer.js.map index 6bc916be..3605a058 100644 --- a/node_modules/@babel/generator/lib/buffer.js.map +++ b/node_modules/@babel/generator/lib/buffer.js.map @@ -1 +1 @@ -{"version":3,"names":["Buffer","constructor","map","_map","_buf","_str","_appendCount","_last","_queue","_queueCursor","_canMarkIdName","_position","line","column","_sourcePosition","identifierName","undefined","identifierNamePos","filename","_allocQueue","queue","i","push","char","repeat","_pushQueue","cursor","length","item","_popQueue","Error","get","_flush","result","code","trimRight","decodedMap","getDecoded","__mergedMap","resultMap","value","Object","defineProperty","writable","rawMappings","mappings","getRawMappings","append","str","maybeNewline","_append","appendChar","_appendChar","sourcePosition","queueIndentation","queueCursor","sourcePos","String","fromCharCode","_mark","len","position","charCodeAt","indexOf","last","_this$_map","mark","removeTrailingNewline","removeLastSemicolon","getLastChar","getNewlineCount","count","endsWithCharAndNewline","lastCp","hasContent","exactSource","loc","cb","source","prop","_normalizePosition","sourceWithOffset","columnOffset","withSource","pos","target","Math","max","getCurrentColumn","lastIndex","getCurrentLine","exports","default"],"sources":["../src/buffer.ts"],"sourcesContent":["import type SourceMap from \"./source-map.ts\";\nimport * as charcodes from \"charcodes\";\n\nexport type Pos = {\n line: number;\n column: number;\n};\nexport type Loc = {\n start?: Pos;\n end?: Pos;\n filename?: string;\n};\ntype SourcePos = {\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n filename: string | undefined;\n};\ntype InternalSourcePos = SourcePos & { identifierNamePos: Pos };\n\ntype QueueItem = {\n char: number;\n repeat: number;\n line: number | undefined;\n column: number | undefined;\n identifierName: undefined; // Not used, it always undefined.\n identifierNamePos: undefined; // Not used, it always undefined.\n filename: string | undefined;\n};\n\nexport default class Buffer {\n constructor(map?: SourceMap | null) {\n this._map = map;\n\n this._allocQueue();\n }\n\n _map: SourceMap = null;\n _buf = \"\";\n _str = \"\";\n _appendCount = 0;\n _last = 0;\n _queue: QueueItem[] = [];\n _queueCursor = 0;\n _canMarkIdName = true;\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: InternalSourcePos = {\n identifierName: undefined,\n identifierNamePos: undefined,\n line: undefined,\n column: undefined,\n filename: undefined,\n };\n\n _allocQueue() {\n const queue = this._queue;\n\n for (let i = 0; i < 16; i++) {\n queue.push({\n char: 0,\n repeat: 1,\n line: undefined,\n column: undefined,\n identifierName: undefined,\n identifierNamePos: undefined,\n filename: \"\",\n });\n }\n }\n\n _pushQueue(\n char: number,\n repeat: number,\n line: number | undefined,\n column: number | undefined,\n filename: string | undefined,\n ) {\n const cursor = this._queueCursor;\n if (cursor === this._queue.length) {\n this._allocQueue();\n }\n const item = this._queue[cursor];\n item.char = char;\n item.repeat = repeat;\n item.line = line;\n item.column = column;\n item.filename = filename;\n\n this._queueCursor++;\n }\n\n _popQueue(): QueueItem {\n if (this._queueCursor === 0) {\n throw new Error(\"Cannot pop from empty queue\");\n }\n return this._queue[--this._queueCursor];\n }\n\n /**\n * Get the final string output from the buffer, along with the sourcemap if one exists.\n */\n\n get() {\n this._flush();\n\n const map = this._map;\n const result = {\n // Whatever trim is used here should not execute a regex against the\n // source string since it may be arbitrarily large after all transformations\n code: (this._buf + this._str).trimRight(),\n // Decoded sourcemap is free to generate.\n decodedMap: map?.getDecoded(),\n // Used as a marker for backwards compatibility. We moved input map merging\n // into the generator. We cannot merge the input map a second time, so the\n // presence of this field tells us we've already done the work.\n get __mergedMap() {\n return this.map;\n },\n // Encoding the sourcemap is moderately CPU expensive.\n get map() {\n const resultMap = map ? map.get() : null;\n result.map = resultMap;\n return resultMap;\n },\n set map(value) {\n Object.defineProperty(result, \"map\", { value, writable: true });\n },\n // Retrieving the raw mappings is very memory intensive.\n get rawMappings() {\n const mappings = map?.getRawMappings();\n result.rawMappings = mappings;\n return mappings;\n },\n set rawMappings(value) {\n Object.defineProperty(result, \"rawMappings\", { value, writable: true });\n },\n };\n\n return result;\n }\n\n /**\n * Add a string to the buffer that cannot be reverted.\n */\n\n append(str: string, maybeNewline: boolean): void {\n this._flush();\n\n this._append(str, this._sourcePosition, maybeNewline);\n }\n\n appendChar(char: number): void {\n this._flush();\n this._appendChar(char, 1, this._sourcePosition);\n }\n\n /**\n * Add a string to the buffer than can be reverted.\n */\n queue(char: number): void {\n // Drop trailing spaces when a newline is inserted.\n if (char === charcodes.lineFeed) {\n while (this._queueCursor !== 0) {\n const char = this._queue[this._queueCursor - 1].char;\n if (char !== charcodes.space && char !== charcodes.tab) {\n break;\n }\n\n this._queueCursor--;\n }\n }\n\n const sourcePosition = this._sourcePosition;\n this._pushQueue(\n char,\n 1,\n sourcePosition.line,\n sourcePosition.column,\n sourcePosition.filename,\n );\n }\n\n /**\n * Same as queue, but this indentation will never have a sourcemap marker.\n */\n queueIndentation(char: number, repeat: number): void {\n this._pushQueue(char, repeat, undefined, undefined, undefined);\n }\n\n _flush(): void {\n const queueCursor = this._queueCursor;\n const queue = this._queue;\n for (let i = 0; i < queueCursor; i++) {\n const item: QueueItem = queue[i];\n this._appendChar(item.char, item.repeat, item);\n }\n this._queueCursor = 0;\n }\n\n _appendChar(\n char: number,\n repeat: number,\n sourcePos: InternalSourcePos,\n ): void {\n this._last = char;\n\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n\n if (char !== charcodes.lineFeed) {\n this._mark(\n sourcePos.line,\n sourcePos.column,\n sourcePos.identifierName,\n sourcePos.identifierNamePos,\n sourcePos.filename,\n );\n this._position.column += repeat;\n } else {\n this._position.line++;\n this._position.column = 0;\n }\n\n if (this._canMarkIdName) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n }\n\n _append(\n str: string,\n sourcePos: InternalSourcePos,\n maybeNewline: boolean,\n ): void {\n const len = str.length;\n const position = this._position;\n\n this._last = str.charCodeAt(len - 1);\n\n if (++this._appendCount > 4096) {\n +this._str; // Unexplainable huge performance boost. Ref: https://github.com/davidmarkclements/flatstr License: MIT\n this._buf += this._str;\n this._str = str;\n this._appendCount = 0;\n } else {\n this._str += str;\n }\n\n if (!maybeNewline && !this._map) {\n position.column += len;\n return;\n }\n\n const { column, identifierName, identifierNamePos, filename } = sourcePos;\n let line = sourcePos.line;\n\n if (\n (identifierName != null || identifierNamePos != null) &&\n this._canMarkIdName\n ) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n\n // Search for newline chars. We search only for `\\n`, since both `\\r` and\n // `\\r\\n` are normalized to `\\n` during parse. We exclude `\\u2028` and\n // `\\u2029` for performance reasons, they're so uncommon that it's probably\n // ok. It's also unclear how other sourcemap utilities handle them...\n let i = str.indexOf(\"\\n\");\n let last = 0;\n\n // If the string starts with a newline char, then adding a mark is redundant.\n // This catches both \"no newlines\" and \"newline after several chars\".\n if (i !== 0) {\n this._mark(line, column, identifierName, identifierNamePos, filename);\n }\n\n // Now, find each remaining newline char in the string.\n while (i !== -1) {\n position.line++;\n position.column = 0;\n last = i + 1;\n\n // We mark the start of each line, which happens directly after this newline char\n // unless this is the last char.\n // When manually adding multi-line content (such as a comment), `line` will be `undefined`.\n if (last < len && line !== undefined) {\n this._mark(++line, 0, null, null, filename);\n }\n i = str.indexOf(\"\\n\", last);\n }\n position.column += len - last;\n }\n\n _mark(\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n identifierNamePos: Pos | undefined,\n filename: string | undefined,\n ): void {\n this._map?.mark(\n this._position,\n line,\n column,\n identifierName,\n identifierNamePos,\n filename,\n );\n }\n\n removeTrailingNewline(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.lineFeed\n ) {\n this._queueCursor--;\n }\n }\n\n removeLastSemicolon(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.semicolon\n ) {\n this._queueCursor--;\n }\n }\n\n getLastChar(): number {\n const queueCursor = this._queueCursor;\n return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last;\n }\n\n /**\n * This will only detect at most 1 newline after a call to `flush()`,\n * but this has not been found so far, and an accurate count can be achieved if needed later.\n */\n getNewlineCount(): number {\n const queueCursor = this._queueCursor;\n let count = 0;\n if (queueCursor === 0) return this._last === charcodes.lineFeed ? 1 : 0;\n for (let i = queueCursor - 1; i >= 0; i--) {\n if (this._queue[i].char !== charcodes.lineFeed) {\n break;\n }\n count++;\n }\n return count === queueCursor && this._last === charcodes.lineFeed\n ? count + 1\n : count;\n }\n\n /**\n * check if current _last + queue ends with newline, return the character before newline\n *\n * @param {*} ch\n * @memberof Buffer\n */\n endsWithCharAndNewline(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n if (queueCursor !== 0) {\n // every element in queue is one-length whitespace string\n const lastCp = queue[queueCursor - 1].char;\n if (lastCp !== charcodes.lineFeed) return;\n if (queueCursor > 1) {\n return queue[queueCursor - 2].char;\n } else {\n return this._last;\n }\n }\n // We assume that everything being matched is at most a single token plus some whitespace,\n // which everything currently is, but otherwise we'd have to expand _last or check _buf.\n }\n\n hasContent(): boolean {\n return this._queueCursor !== 0 || !!this._last;\n }\n\n /**\n * Certain sourcemap usecases expect mappings to be more accurate than\n * Babel's generic sourcemap handling allows. For now, we special-case\n * identifiers to allow for the primary cases to work.\n * The goal of this line is to ensure that the map output from Babel will\n * have an exact range on identifiers in the output code. Without this\n * line, Babel would potentially include some number of trailing tokens\n * that are printed after the identifier, but before another location has\n * been assigned.\n * This allows tooling like Rollup and Webpack to more accurately perform\n * their own transformations. Most importantly, this allows the import/export\n * transformations performed by those tools to loose less information when\n * applying their own transformations on top of the code and map results\n * generated by Babel itself.\n *\n * The primary example of this is the snippet:\n *\n * import mod from \"mod\";\n * mod();\n *\n * With this line, there will be one mapping range over \"mod\" and another\n * over \"();\", where previously it would have been a single mapping.\n */\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!this._map) {\n cb();\n return;\n }\n\n this.source(\"start\", loc);\n // @ts-expect-error identifierName is not defined\n const identifierName = loc.identifierName;\n const sourcePos = this._sourcePosition;\n if (identifierName) {\n this._canMarkIdName = false;\n sourcePos.identifierName = identifierName;\n }\n cb();\n\n if (identifierName) {\n this._canMarkIdName = true;\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n this.source(\"end\", loc);\n }\n\n /**\n * Sets a given position as the current source location so generated code after this call\n * will be given this position in the sourcemap.\n */\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!this._map) return;\n\n // Since this is called extremely often, we reuse the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, columnOffset);\n }\n\n /**\n * Call a callback with a specific source location\n */\n\n withSource(prop: \"start\" | \"end\", loc: Loc, cb: () => void): void {\n if (this._map) {\n this.source(prop, loc);\n }\n\n cb();\n }\n\n _normalizePosition(prop: \"start\" | \"end\", loc: Loc, columnOffset: number) {\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n if (pos) {\n target.line = pos.line;\n // TODO: Fix https://github.com/babel/babel/issues/15712 in downstream\n target.column = Math.max(pos.column + columnOffset, 0);\n target.filename = loc.filename;\n }\n }\n\n getCurrentColumn(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n\n let lastIndex = -1;\n let len = 0;\n for (let i = 0; i < queueCursor; i++) {\n const item = queue[i];\n if (item.char === charcodes.lineFeed) {\n lastIndex = len;\n }\n len += item.repeat;\n }\n\n return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex;\n }\n\n getCurrentLine(): number {\n let count = 0;\n\n const queue = this._queue;\n for (let i = 0; i < this._queueCursor; i++) {\n if (queue[i].char === charcodes.lineFeed) {\n count++;\n }\n }\n\n return this._position.line + count;\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["Buffer","constructor","map","indentChar","_map","_buf","_str","_appendCount","_last","_queue","_queueCursor","_canMarkIdName","_indentChar","_fastIndentations","_position","line","column","_sourcePosition","identifierName","undefined","identifierNamePos","filename","i","push","repeat","_allocQueue","queue","char","_pushQueue","cursor","length","item","_popQueue","Error","get","_flush","result","code","trimRight","decodedMap","getDecoded","__mergedMap","resultMap","value","Object","defineProperty","writable","rawMappings","mappings","getRawMappings","append","str","maybeNewline","_append","appendChar","_appendChar","sourcePosition","queueIndentation","queueCursor","sourcePos","fastIndentation","String","fromCharCode","_mark","len","position","charCodeAt","indexOf","last","_this$_map","mark","removeTrailingNewline","removeLastSemicolon","getLastChar","getNewlineCount","count","endsWithCharAndNewline","lastCp","hasContent","exactSource","loc","cb","source","prop","_normalizePosition","sourceWithOffset","columnOffset","withSource","pos","target","Math","max","getCurrentColumn","lastIndex","getCurrentLine","exports","default"],"sources":["../src/buffer.ts"],"sourcesContent":["import type SourceMap from \"./source-map.ts\";\nimport * as charcodes from \"charcodes\";\n\nexport type Pos = {\n line: number;\n column: number;\n};\nexport type Loc = {\n start?: Pos;\n end?: Pos;\n filename?: string;\n};\ntype SourcePos = {\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n filename: string | undefined;\n};\ntype InternalSourcePos = SourcePos & { identifierNamePos: Pos };\n\ntype QueueItem = {\n char: number;\n repeat: number;\n line: number | undefined;\n column: number | undefined;\n identifierName: undefined; // Not used, it always undefined.\n identifierNamePos: undefined; // Not used, it always undefined.\n filename: string | undefined;\n};\n\nexport default class Buffer {\n constructor(map: SourceMap | null, indentChar: string) {\n this._map = map;\n this._indentChar = indentChar;\n\n for (let i = 0; i < 64; i++) {\n this._fastIndentations.push(indentChar.repeat(i));\n }\n\n this._allocQueue();\n }\n\n _map: SourceMap = null;\n _buf = \"\";\n _str = \"\";\n _appendCount = 0;\n _last = 0;\n _queue: QueueItem[] = [];\n _queueCursor = 0;\n _canMarkIdName = true;\n _indentChar = \"\";\n _fastIndentations: string[] = [];\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: InternalSourcePos = {\n identifierName: undefined,\n identifierNamePos: undefined,\n line: undefined,\n column: undefined,\n filename: undefined,\n };\n\n _allocQueue() {\n const queue = this._queue;\n\n for (let i = 0; i < 16; i++) {\n queue.push({\n char: 0,\n repeat: 1,\n line: undefined,\n column: undefined,\n identifierName: undefined,\n identifierNamePos: undefined,\n filename: \"\",\n });\n }\n }\n\n _pushQueue(\n char: number,\n repeat: number,\n line: number | undefined,\n column: number | undefined,\n filename: string | undefined,\n ) {\n const cursor = this._queueCursor;\n if (cursor === this._queue.length) {\n this._allocQueue();\n }\n const item = this._queue[cursor];\n item.char = char;\n item.repeat = repeat;\n item.line = line;\n item.column = column;\n item.filename = filename;\n\n this._queueCursor++;\n }\n\n _popQueue(): QueueItem {\n if (this._queueCursor === 0) {\n throw new Error(\"Cannot pop from empty queue\");\n }\n return this._queue[--this._queueCursor];\n }\n\n /**\n * Get the final string output from the buffer, along with the sourcemap if one exists.\n */\n\n get() {\n this._flush();\n\n const map = this._map;\n const result = {\n // Whatever trim is used here should not execute a regex against the\n // source string since it may be arbitrarily large after all transformations\n code: (this._buf + this._str).trimRight(),\n // Decoded sourcemap is free to generate.\n decodedMap: map?.getDecoded(),\n // Used as a marker for backwards compatibility. We moved input map merging\n // into the generator. We cannot merge the input map a second time, so the\n // presence of this field tells us we've already done the work.\n get __mergedMap() {\n return this.map;\n },\n // Encoding the sourcemap is moderately CPU expensive.\n get map() {\n const resultMap = map ? map.get() : null;\n result.map = resultMap;\n return resultMap;\n },\n set map(value) {\n Object.defineProperty(result, \"map\", { value, writable: true });\n },\n // Retrieving the raw mappings is very memory intensive.\n get rawMappings() {\n const mappings = map?.getRawMappings();\n result.rawMappings = mappings;\n return mappings;\n },\n set rawMappings(value) {\n Object.defineProperty(result, \"rawMappings\", { value, writable: true });\n },\n };\n\n return result;\n }\n\n /**\n * Add a string to the buffer that cannot be reverted.\n */\n\n append(str: string, maybeNewline: boolean): void {\n this._flush();\n\n this._append(str, this._sourcePosition, maybeNewline);\n }\n\n appendChar(char: number): void {\n this._flush();\n this._appendChar(char, 1, this._sourcePosition);\n }\n\n /**\n * Add a string to the buffer than can be reverted.\n */\n queue(char: number): void {\n // Drop trailing spaces when a newline is inserted.\n if (char === charcodes.lineFeed) {\n while (this._queueCursor !== 0) {\n const char = this._queue[this._queueCursor - 1].char;\n if (char !== charcodes.space && char !== charcodes.tab) {\n break;\n }\n\n this._queueCursor--;\n }\n }\n\n const sourcePosition = this._sourcePosition;\n this._pushQueue(\n char,\n 1,\n sourcePosition.line,\n sourcePosition.column,\n sourcePosition.filename,\n );\n }\n\n /**\n * Same as queue, but this indentation will never have a sourcemap marker.\n */\n queueIndentation(repeat: number): void {\n if (repeat === 0) return;\n this._pushQueue(-1, repeat, undefined, undefined, undefined);\n }\n\n _flush(): void {\n const queueCursor = this._queueCursor;\n const queue = this._queue;\n for (let i = 0; i < queueCursor; i++) {\n const item: QueueItem = queue[i];\n this._appendChar(item.char, item.repeat, item);\n }\n this._queueCursor = 0;\n }\n\n _appendChar(\n char: number,\n repeat: number,\n sourcePos: InternalSourcePos,\n ): void {\n this._last = char;\n\n if (char === -1) {\n const fastIndentation = this._fastIndentations[repeat];\n if (fastIndentation !== undefined) {\n this._str += fastIndentation;\n } else {\n this._str +=\n repeat > 1 ? this._indentChar.repeat(repeat) : this._indentChar;\n }\n } else {\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n }\n\n if (char !== charcodes.lineFeed) {\n this._mark(\n sourcePos.line,\n sourcePos.column,\n sourcePos.identifierName,\n sourcePos.identifierNamePos,\n sourcePos.filename,\n );\n this._position.column += repeat;\n } else {\n this._position.line++;\n this._position.column = 0;\n }\n\n if (this._canMarkIdName) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n }\n\n _append(\n str: string,\n sourcePos: InternalSourcePos,\n maybeNewline: boolean,\n ): void {\n const len = str.length;\n const position = this._position;\n\n this._last = str.charCodeAt(len - 1);\n\n if (++this._appendCount > 4096) {\n +this._str; // Unexplainable huge performance boost. Ref: https://github.com/davidmarkclements/flatstr License: MIT\n this._buf += this._str;\n this._str = str;\n this._appendCount = 0;\n } else {\n this._str += str;\n }\n\n if (!maybeNewline && !this._map) {\n position.column += len;\n return;\n }\n\n const { column, identifierName, identifierNamePos, filename } = sourcePos;\n let line = sourcePos.line;\n\n if (\n (identifierName != null || identifierNamePos != null) &&\n this._canMarkIdName\n ) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n\n // Search for newline chars. We search only for `\\n`, since both `\\r` and\n // `\\r\\n` are normalized to `\\n` during parse. We exclude `\\u2028` and\n // `\\u2029` for performance reasons, they're so uncommon that it's probably\n // ok. It's also unclear how other sourcemap utilities handle them...\n let i = str.indexOf(\"\\n\");\n let last = 0;\n\n // If the string starts with a newline char, then adding a mark is redundant.\n // This catches both \"no newlines\" and \"newline after several chars\".\n if (i !== 0) {\n this._mark(line, column, identifierName, identifierNamePos, filename);\n }\n\n // Now, find each remaining newline char in the string.\n while (i !== -1) {\n position.line++;\n position.column = 0;\n last = i + 1;\n\n // We mark the start of each line, which happens directly after this newline char\n // unless this is the last char.\n // When manually adding multi-line content (such as a comment), `line` will be `undefined`.\n if (last < len && line !== undefined) {\n this._mark(++line, 0, null, null, filename);\n }\n i = str.indexOf(\"\\n\", last);\n }\n position.column += len - last;\n }\n\n _mark(\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n identifierNamePos: Pos | undefined,\n filename: string | undefined,\n ): void {\n this._map?.mark(\n this._position,\n line,\n column,\n identifierName,\n identifierNamePos,\n filename,\n );\n }\n\n removeTrailingNewline(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.lineFeed\n ) {\n this._queueCursor--;\n }\n }\n\n removeLastSemicolon(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.semicolon\n ) {\n this._queueCursor--;\n }\n }\n\n getLastChar(): number {\n const queueCursor = this._queueCursor;\n return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last;\n }\n\n /**\n * This will only detect at most 1 newline after a call to `flush()`,\n * but this has not been found so far, and an accurate count can be achieved if needed later.\n */\n getNewlineCount(): number {\n const queueCursor = this._queueCursor;\n let count = 0;\n if (queueCursor === 0) return this._last === charcodes.lineFeed ? 1 : 0;\n for (let i = queueCursor - 1; i >= 0; i--) {\n if (this._queue[i].char !== charcodes.lineFeed) {\n break;\n }\n count++;\n }\n return count === queueCursor && this._last === charcodes.lineFeed\n ? count + 1\n : count;\n }\n\n /**\n * check if current _last + queue ends with newline, return the character before newline\n */\n endsWithCharAndNewline(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n if (queueCursor !== 0) {\n // every element in queue is one-length whitespace string\n const lastCp = queue[queueCursor - 1].char;\n if (lastCp !== charcodes.lineFeed) return;\n if (queueCursor > 1) {\n return queue[queueCursor - 2].char;\n } else {\n return this._last;\n }\n }\n // We assume that everything being matched is at most a single token plus some whitespace,\n // which everything currently is, but otherwise we'd have to expand _last or check _buf.\n }\n\n hasContent(): boolean {\n return this._queueCursor !== 0 || !!this._last;\n }\n\n /**\n * Certain sourcemap usecases expect mappings to be more accurate than\n * Babel's generic sourcemap handling allows. For now, we special-case\n * identifiers to allow for the primary cases to work.\n * The goal of this line is to ensure that the map output from Babel will\n * have an exact range on identifiers in the output code. Without this\n * line, Babel would potentially include some number of trailing tokens\n * that are printed after the identifier, but before another location has\n * been assigned.\n * This allows tooling like Rollup and Webpack to more accurately perform\n * their own transformations. Most importantly, this allows the import/export\n * transformations performed by those tools to loose less information when\n * applying their own transformations on top of the code and map results\n * generated by Babel itself.\n *\n * The primary example of this is the snippet:\n *\n * import mod from \"mod\";\n * mod();\n *\n * With this line, there will be one mapping range over \"mod\" and another\n * over \"();\", where previously it would have been a single mapping.\n */\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!this._map) {\n cb();\n return;\n }\n\n this.source(\"start\", loc);\n // @ts-expect-error identifierName is not defined\n const identifierName = loc.identifierName;\n const sourcePos = this._sourcePosition;\n if (identifierName) {\n this._canMarkIdName = false;\n sourcePos.identifierName = identifierName;\n }\n cb();\n\n if (identifierName) {\n this._canMarkIdName = true;\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n this.source(\"end\", loc);\n }\n\n /**\n * Sets a given position as the current source location so generated code after this call\n * will be given this position in the sourcemap.\n */\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!this._map) return;\n\n // Since this is called extremely often, we reuse the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, columnOffset);\n }\n\n /**\n * Call a callback with a specific source location\n */\n\n withSource(prop: \"start\" | \"end\", loc: Loc, cb: () => void): void {\n if (this._map) {\n this.source(prop, loc);\n }\n\n cb();\n }\n\n _normalizePosition(prop: \"start\" | \"end\", loc: Loc, columnOffset: number) {\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n if (pos) {\n target.line = pos.line;\n // TODO: Fix https://github.com/babel/babel/issues/15712 in downstream\n target.column = Math.max(pos.column + columnOffset, 0);\n target.filename = loc.filename;\n }\n }\n\n getCurrentColumn(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n\n let lastIndex = -1;\n let len = 0;\n for (let i = 0; i < queueCursor; i++) {\n const item = queue[i];\n if (item.char === charcodes.lineFeed) {\n lastIndex = len;\n }\n len += item.repeat;\n }\n\n return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex;\n }\n\n getCurrentLine(): number {\n let count = 0;\n\n const queue = this._queue;\n for (let i = 0; i < this._queueCursor; i++) {\n if (queue[i].char === charcodes.lineFeed) {\n count++;\n }\n }\n\n return this._position.line + count;\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/statements.js b/node_modules/@babel/generator/lib/generators/statements.js index dee0ad81..4364c951 100644 --- a/node_modules/@babel/generator/lib/generators/statements.js +++ b/node_modules/@babel/generator/lib/generators/statements.js @@ -117,10 +117,8 @@ function ForXStatement(node) { this.tokenChar(41); this.printBlock(node); } -const ForInStatement = ForXStatement; -exports.ForInStatement = ForInStatement; -const ForOfStatement = ForXStatement; -exports.ForOfStatement = ForOfStatement; +const ForInStatement = exports.ForInStatement = ForXStatement; +const ForOfStatement = exports.ForOfStatement = ForXStatement; function DoWhileStatement(node) { this.word("do"); this.space(); diff --git a/node_modules/@babel/generator/lib/generators/statements.js.map b/node_modules/@babel/generator/lib/generators/statements.js.map index 2055ed75..1870309f 100644 --- a/node_modules/@babel/generator/lib/generators/statements.js.map +++ b/node_modules/@babel/generator/lib/generators/statements.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","isFor","isForStatement","isIfStatement","isStatement","WithStatement","node","word","space","token","print","object","printBlock","IfStatement","test","needsBlock","alternate","getLastStatement","consequent","newline","indent","printAndIndentOnComments","dedent","endsWith","statement","body","ForStatement","inForStatementInitCounter","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","left","right","ForInStatement","exports","ForOfStatement","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","parent","isLabel","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","addNewlines","leading","cas","length","rightBrace","SwitchCase","DebuggerStatement","VariableDeclaration","declare","kind","hasInits","declar","declarations","printList","separator","undefined","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent, node);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate, node);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n this.inForStatementInitCounter++;\n this.print(node.init, node);\n this.inForStatementInitCounter--;\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test, node);\n }\n this.token(\";\");\n\n if (node.update) {\n this.space();\n this.print(node.update, node);\n }\n\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nfunction ForXStatement(this: Printer, node: t.ForXStatement) {\n this.word(\"for\");\n this.space();\n const isForOf = node.type === \"ForOfStatement\";\n if (isForOf && node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.print(node.left, node);\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport const ForInStatement = ForXStatement;\nexport const ForOfStatement = ForXStatement;\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(\n printer: Printer,\n node: t.Node,\n parent: t.Node,\n isLabel: boolean,\n) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node, parent, isLabel);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label, node);\n this.token(\":\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block, node);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0], node);\n } else {\n this.print(node.handler, node);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer, node);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param, node);\n this.print(node.param.typeAnnotation, node);\n this.token(\")\");\n this.space();\n }\n this.print(node.body, node);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant, node);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, node, {\n indent: true,\n addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n });\n\n this.rightBrace(node);\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test, node);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, node, { indent: true });\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n this.word(kind, kind === \"using\" || kind === \"await using\");\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n this.printList(node.declarations, node, {\n separator: hasInits\n ? function (this: Printer) {\n this.token(\",\");\n this.newline();\n }\n : undefined,\n indent: node.declarations.length > 1 ? true : false,\n });\n\n if (isFor(parent)) {\n // don't give semicolons to these nodes since they'll be inserted in the parent generator\n if (isForStatement(parent)) {\n if (parent.init === node) return;\n } else {\n if (parent.left === node) return;\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id, node);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-expect-error todo(flow-ts) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation, node);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init, node);\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_t","require","isFor","isForStatement","isIfStatement","isStatement","WithStatement","node","word","space","token","print","object","printBlock","IfStatement","test","needsBlock","alternate","getLastStatement","consequent","newline","indent","printAndIndentOnComments","dedent","endsWith","statement","body","ForStatement","inForStatementInitCounter","init","update","WhileStatement","ForXStatement","isForOf","type","await","noIndentInnerCommentsHere","left","right","ForInStatement","exports","ForOfStatement","DoWhileStatement","semicolon","printStatementAfterKeyword","printer","parent","isLabel","printTerminatorless","BreakStatement","label","ContinueStatement","ReturnStatement","argument","ThrowStatement","LabeledStatement","TryStatement","block","handlers","handler","finalizer","CatchClause","param","typeAnnotation","SwitchStatement","discriminant","printSequence","cases","addNewlines","leading","cas","length","rightBrace","SwitchCase","DebuggerStatement","VariableDeclaration","declare","kind","hasInits","declar","declarations","printList","separator","undefined","VariableDeclarator","id","definite"],"sources":["../../src/generators/statements.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent, node);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate, node);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n this.inForStatementInitCounter++;\n this.print(node.init, node);\n this.inForStatementInitCounter--;\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test, node);\n }\n this.token(\";\");\n\n if (node.update) {\n this.space();\n this.print(node.update, node);\n }\n\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nfunction ForXStatement(this: Printer, node: t.ForXStatement) {\n this.word(\"for\");\n this.space();\n const isForOf = node.type === \"ForOfStatement\";\n if (isForOf && node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.print(node.left, node);\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport const ForInStatement = ForXStatement;\nexport const ForOfStatement = ForXStatement;\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(\n printer: Printer,\n node: t.Node,\n parent: t.Node,\n isLabel: boolean,\n) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node, parent, isLabel);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label, node);\n this.token(\":\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block, node);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0], node);\n } else {\n this.print(node.handler, node);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer, node);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param, node);\n this.print(node.param.typeAnnotation, node);\n this.token(\")\");\n this.space();\n }\n this.print(node.body, node);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant, node);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, node, {\n indent: true,\n addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n });\n\n this.rightBrace(node);\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test, node);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, node, { indent: true });\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n this.word(kind, kind === \"using\" || kind === \"await using\");\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n this.printList(node.declarations, node, {\n separator: hasInits\n ? function (this: Printer) {\n this.token(\",\");\n this.newline();\n }\n : undefined,\n indent: node.declarations.length > 1 ? true : false,\n });\n\n if (isFor(parent)) {\n // don't give semicolons to these nodes since they'll be inserted in the parent generator\n if (isForStatement(parent)) {\n if (parent.init === node) return;\n } else {\n if (parent.left === node) return;\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id, node);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-expect-error todo(flow-ts) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation, node);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init, node);\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/types.js b/node_modules/@babel/generator/lib/generators/types.js index a9ddea2f..191db56c 100644 --- a/node_modules/@babel/generator/lib/generators/types.js +++ b/node_modules/@babel/generator/lib/generators/types.js @@ -158,15 +158,16 @@ function NullLiteral() { function NumericLiteral(node) { const raw = this.getPossibleRaw(node); const opts = this.format.jsescOption; - const value = node.value + ""; + const value = node.value; + const str = value + ""; if (opts.numbers) { - this.number(_jsesc(node.value, opts)); + this.number(_jsesc(value, opts), value); } else if (raw == null) { - this.number(value); + this.number(str, value); } else if (this.format.minified) { - this.number(raw.length < value.length ? raw : value); + this.number(raw.length < str.length ? raw : str, value); } else { - this.number(raw); + this.number(raw, value); } } function StringLiteral(node) { diff --git a/node_modules/@babel/generator/lib/generators/types.js.map b/node_modules/@babel/generator/lib/generators/types.js.map index a75d08e1..510a5f89 100644 --- a/node_modules/@babel/generator/lib/generators/types.js.map +++ b/node_modules/@babel/generator/lib/generators/types.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","_jsesc","isAssignmentPattern","isIdentifier","Identifier","node","_node$loc","sourceIdentifierName","loc","identifierName","name","word","ArgumentPlaceholder","token","RestElement","print","argument","ObjectExpression","props","properties","length","space","printList","indent","statement","sourceWithOffset","ObjectMethod","printJoin","decorators","_methodHead","body","ObjectProperty","computed","key","value","left","shorthand","ArrayExpression","elems","elements","len","i","elem","RecordExpression","startToken","endToken","format","recordAndTupleSyntaxType","Error","JSON","stringify","TupleExpression","RegExpLiteral","pattern","flags","BooleanLiteral","NullLiteral","NumericLiteral","raw","getPossibleRaw","opts","jsescOption","numbers","number","jsesc","minified","StringLiteral","undefined","val","BigIntLiteral","DecimalLiteral","validTopicTokenSet","Set","TopicReference","topicToken","has","givenTopicTokenJSON","validTopics","Array","from","v","join","PipelineTopicExpression","expression","PipelineBareFunction","callee","PipelinePrimaryTopicReference"],"sources":["../../src/generators/types.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport { isAssignmentPattern, isIdentifier } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport jsesc from \"jsesc\";\n\nexport function Identifier(this: Printer, node: t.Identifier) {\n this.sourceIdentifierName(node.loc?.identifierName || node.name);\n this.word(node.name);\n}\n\nexport function ArgumentPlaceholder(this: Printer) {\n this.token(\"?\");\n}\n\nexport function RestElement(this: Printer, node: t.RestElement) {\n this.token(\"...\");\n this.print(node.argument, node);\n}\n\nexport { RestElement as SpreadElement };\n\nexport function ObjectExpression(this: Printer, node: t.ObjectExpression) {\n const props = node.properties;\n\n this.token(\"{\");\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n\n this.sourceWithOffset(\"end\", node.loc, -1);\n\n this.token(\"}\");\n}\n\nexport { ObjectExpression as ObjectPattern };\n\nexport function ObjectMethod(this: Printer, node: t.ObjectMethod) {\n this.printJoin(node.decorators, node);\n this._methodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function ObjectProperty(this: Printer, node: t.ObjectProperty) {\n this.printJoin(node.decorators, node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});`\n if (\n isAssignmentPattern(node.value) &&\n isIdentifier(node.key) &&\n // @ts-expect-error todo(flow->ts) `.name` does not exist on some types in union\n node.key.name === node.value.left.name\n ) {\n this.print(node.value, node);\n return;\n }\n\n this.print(node.key, node);\n\n // shorthand!\n if (\n node.shorthand &&\n isIdentifier(node.key) &&\n isIdentifier(node.value) &&\n node.key.name === node.value.name\n ) {\n return;\n }\n }\n\n this.token(\":\");\n this.space();\n this.print(node.value, node);\n}\n\nexport function ArrayExpression(this: Printer, node: t.ArrayExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n this.token(\"[\");\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n } else {\n // If the array expression ends with a hole, that hole\n // will be ignored by the interpreter, but if it ends with\n // two (or more) holes, we need to write out two (or more)\n // commas so that the resulting code is interpreted with\n // both (all) of the holes.\n this.token(\",\");\n }\n }\n\n this.token(\"]\");\n}\n\nexport { ArrayExpression as ArrayPattern };\n\nexport function RecordExpression(this: Printer, node: t.RecordExpression) {\n const props = node.properties;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"{|\";\n endToken = \"|}\";\n } else if (\n this.format.recordAndTupleSyntaxType !== \"hash\" &&\n this.format.recordAndTupleSyntaxType != null\n ) {\n throw new Error(\n `The \"recordAndTupleSyntaxType\" generator option must be \"bar\" or \"hash\" (${JSON.stringify(\n this.format.recordAndTupleSyntaxType,\n )} received).`,\n );\n } else {\n startToken = \"#{\";\n endToken = \"}\";\n }\n\n this.token(startToken);\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n this.token(endToken);\n}\n\nexport function TupleExpression(this: Printer, node: t.TupleExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"[|\";\n endToken = \"|]\";\n } else if (this.format.recordAndTupleSyntaxType === \"hash\") {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\n throw new Error(\n `${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`,\n );\n }\n\n this.token(startToken);\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n }\n }\n\n this.token(endToken);\n}\n\nexport function RegExpLiteral(this: Printer, node: t.RegExpLiteral) {\n this.word(`/${node.pattern}/${node.flags}`);\n}\n\nexport function BooleanLiteral(this: Printer, node: t.BooleanLiteral) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteral(this: Printer) {\n this.word(\"null\");\n}\n\nexport function NumericLiteral(this: Printer, node: t.NumericLiteral) {\n const raw = this.getPossibleRaw(node);\n const opts = this.format.jsescOption;\n const value = node.value + \"\";\n if (opts.numbers) {\n this.number(jsesc(node.value, opts));\n } else if (raw == null) {\n this.number(value); // normalize\n } else if (this.format.minified) {\n this.number(raw.length < value.length ? raw : value);\n } else {\n this.number(raw);\n }\n}\n\nexport function StringLiteral(this: Printer, node: t.StringLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const val = jsesc(node.value, this.format.jsescOption);\n\n this.token(val);\n}\n\nexport function BigIntLiteral(this: Printer, node: t.BigIntLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"n\");\n}\n\nexport function DecimalLiteral(this: Printer, node: t.DecimalLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"m\");\n}\n\n// Hack pipe operator\nconst validTopicTokenSet = new Set([\"^^\", \"@@\", \"^\", \"%\", \"#\"]);\nexport function TopicReference(this: Printer) {\n const { topicToken } = this.format;\n\n if (validTopicTokenSet.has(topicToken)) {\n this.token(topicToken);\n } else {\n const givenTopicTokenJSON = JSON.stringify(topicToken);\n const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v));\n throw new Error(\n `The \"topicToken\" generator option must be one of ` +\n `${validTopics.join(\", \")} (${givenTopicTokenJSON} received instead).`,\n );\n }\n}\n\n// Smart-mix pipe operator\nexport function PipelineTopicExpression(\n this: Printer,\n node: t.PipelineTopicExpression,\n) {\n this.print(node.expression, node);\n}\n\nexport function PipelineBareFunction(\n this: Printer,\n node: t.PipelineBareFunction,\n) {\n this.print(node.callee, node);\n}\n\nexport function PipelinePrimaryTopicReference(this: Printer) {\n this.token(\"#\");\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_t","require","_jsesc","isAssignmentPattern","isIdentifier","Identifier","node","_node$loc","sourceIdentifierName","loc","identifierName","name","word","ArgumentPlaceholder","token","RestElement","print","argument","ObjectExpression","props","properties","length","space","printList","indent","statement","sourceWithOffset","ObjectMethod","printJoin","decorators","_methodHead","body","ObjectProperty","computed","key","value","left","shorthand","ArrayExpression","elems","elements","len","i","elem","RecordExpression","startToken","endToken","format","recordAndTupleSyntaxType","Error","JSON","stringify","TupleExpression","RegExpLiteral","pattern","flags","BooleanLiteral","NullLiteral","NumericLiteral","raw","getPossibleRaw","opts","jsescOption","str","numbers","number","jsesc","minified","StringLiteral","undefined","val","BigIntLiteral","DecimalLiteral","validTopicTokenSet","Set","TopicReference","topicToken","has","givenTopicTokenJSON","validTopics","Array","from","v","join","PipelineTopicExpression","expression","PipelineBareFunction","callee","PipelinePrimaryTopicReference"],"sources":["../../src/generators/types.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport { isAssignmentPattern, isIdentifier } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport jsesc from \"jsesc\";\n\nexport function Identifier(this: Printer, node: t.Identifier) {\n this.sourceIdentifierName(node.loc?.identifierName || node.name);\n this.word(node.name);\n}\n\nexport function ArgumentPlaceholder(this: Printer) {\n this.token(\"?\");\n}\n\nexport function RestElement(this: Printer, node: t.RestElement) {\n this.token(\"...\");\n this.print(node.argument, node);\n}\n\nexport { RestElement as SpreadElement };\n\nexport function ObjectExpression(this: Printer, node: t.ObjectExpression) {\n const props = node.properties;\n\n this.token(\"{\");\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n\n this.sourceWithOffset(\"end\", node.loc, -1);\n\n this.token(\"}\");\n}\n\nexport { ObjectExpression as ObjectPattern };\n\nexport function ObjectMethod(this: Printer, node: t.ObjectMethod) {\n this.printJoin(node.decorators, node);\n this._methodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function ObjectProperty(this: Printer, node: t.ObjectProperty) {\n this.printJoin(node.decorators, node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n // print `({ foo: foo = 5 } = {})` as `({ foo = 5 } = {});`\n if (\n isAssignmentPattern(node.value) &&\n isIdentifier(node.key) &&\n // @ts-expect-error todo(flow->ts) `.name` does not exist on some types in union\n node.key.name === node.value.left.name\n ) {\n this.print(node.value, node);\n return;\n }\n\n this.print(node.key, node);\n\n // shorthand!\n if (\n node.shorthand &&\n isIdentifier(node.key) &&\n isIdentifier(node.value) &&\n node.key.name === node.value.name\n ) {\n return;\n }\n }\n\n this.token(\":\");\n this.space();\n this.print(node.value, node);\n}\n\nexport function ArrayExpression(this: Printer, node: t.ArrayExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n this.token(\"[\");\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n } else {\n // If the array expression ends with a hole, that hole\n // will be ignored by the interpreter, but if it ends with\n // two (or more) holes, we need to write out two (or more)\n // commas so that the resulting code is interpreted with\n // both (all) of the holes.\n this.token(\",\");\n }\n }\n\n this.token(\"]\");\n}\n\nexport { ArrayExpression as ArrayPattern };\n\nexport function RecordExpression(this: Printer, node: t.RecordExpression) {\n const props = node.properties;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"{|\";\n endToken = \"|}\";\n } else if (\n this.format.recordAndTupleSyntaxType !== \"hash\" &&\n this.format.recordAndTupleSyntaxType != null\n ) {\n throw new Error(\n `The \"recordAndTupleSyntaxType\" generator option must be \"bar\" or \"hash\" (${JSON.stringify(\n this.format.recordAndTupleSyntaxType,\n )} received).`,\n );\n } else {\n startToken = \"#{\";\n endToken = \"}\";\n }\n\n this.token(startToken);\n\n if (props.length) {\n this.space();\n this.printList(props, node, { indent: true, statement: true });\n this.space();\n }\n this.token(endToken);\n}\n\nexport function TupleExpression(this: Printer, node: t.TupleExpression) {\n const elems = node.elements;\n const len = elems.length;\n\n let startToken;\n let endToken;\n if (this.format.recordAndTupleSyntaxType === \"bar\") {\n startToken = \"[|\";\n endToken = \"|]\";\n } else if (this.format.recordAndTupleSyntaxType === \"hash\") {\n startToken = \"#[\";\n endToken = \"]\";\n } else {\n throw new Error(\n `${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`,\n );\n }\n\n this.token(startToken);\n\n for (let i = 0; i < elems.length; i++) {\n const elem = elems[i];\n if (elem) {\n if (i > 0) this.space();\n this.print(elem, node);\n if (i < len - 1) this.token(\",\");\n }\n }\n\n this.token(endToken);\n}\n\nexport function RegExpLiteral(this: Printer, node: t.RegExpLiteral) {\n this.word(`/${node.pattern}/${node.flags}`);\n}\n\nexport function BooleanLiteral(this: Printer, node: t.BooleanLiteral) {\n this.word(node.value ? \"true\" : \"false\");\n}\n\nexport function NullLiteral(this: Printer) {\n this.word(\"null\");\n}\n\nexport function NumericLiteral(this: Printer, node: t.NumericLiteral) {\n const raw = this.getPossibleRaw(node);\n const opts = this.format.jsescOption;\n const value = node.value;\n const str = value + \"\";\n if (opts.numbers) {\n this.number(jsesc(value, opts), value);\n } else if (raw == null) {\n this.number(str, value); // normalize\n } else if (this.format.minified) {\n this.number(raw.length < str.length ? raw : str, value);\n } else {\n this.number(raw, value);\n }\n}\n\nexport function StringLiteral(this: Printer, node: t.StringLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.token(raw);\n return;\n }\n\n const val = jsesc(node.value, this.format.jsescOption);\n\n this.token(val);\n}\n\nexport function BigIntLiteral(this: Printer, node: t.BigIntLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"n\");\n}\n\nexport function DecimalLiteral(this: Printer, node: t.DecimalLiteral) {\n const raw = this.getPossibleRaw(node);\n if (!this.format.minified && raw !== undefined) {\n this.word(raw);\n return;\n }\n this.word(node.value + \"m\");\n}\n\n// Hack pipe operator\nconst validTopicTokenSet = new Set([\"^^\", \"@@\", \"^\", \"%\", \"#\"]);\nexport function TopicReference(this: Printer) {\n const { topicToken } = this.format;\n\n if (validTopicTokenSet.has(topicToken)) {\n this.token(topicToken);\n } else {\n const givenTopicTokenJSON = JSON.stringify(topicToken);\n const validTopics = Array.from(validTopicTokenSet, v => JSON.stringify(v));\n throw new Error(\n `The \"topicToken\" generator option must be one of ` +\n `${validTopics.join(\", \")} (${givenTopicTokenJSON} received instead).`,\n );\n }\n}\n\n// Smart-mix pipe operator\nexport function PipelineTopicExpression(\n this: Printer,\n node: t.PipelineTopicExpression,\n) {\n this.print(node.expression, node);\n}\n\nexport function PipelineBareFunction(\n this: Printer,\n node: t.PipelineBareFunction,\n) {\n this.print(node.callee, node);\n}\n\nexport function PipelinePrimaryTopicReference(this: Printer) {\n this.token(\"#\");\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/generator/lib/generators/typescript.js b/node_modules/@babel/generator/lib/generators/typescript.js index 9d621d23..2f04734c 100644 --- a/node_modules/@babel/generator/lib/generators/typescript.js +++ b/node_modules/@babel/generator/lib/generators/typescript.js @@ -148,8 +148,7 @@ function TSConstructSignatureDeclaration(node) { } function TSPropertySignature(node) { const { - readonly, - initializer + readonly } = node; if (readonly) { this.word("readonly"); @@ -157,12 +156,6 @@ function TSPropertySignature(node) { } this.tsPrintPropertyOrMethodName(node); this.print(node.typeAnnotation, node); - if (initializer) { - this.space(); - this.tokenChar(61); - this.space(); - this.print(initializer, node); - } this.tokenChar(59); } function tsPrintPropertyOrMethodName(node) { diff --git a/node_modules/@babel/generator/lib/generators/typescript.js.map b/node_modules/@babel/generator/lib/generators/typescript.js.map index a0e2deb4..db695abf 100644 --- a/node_modules/@babel/generator/lib/generators/typescript.js.map +++ b/node_modules/@babel/generator/lib/generators/typescript.js.map @@ -1 +1 @@ -{"version":3,"names":["TSTypeAnnotation","node","token","space","optional","print","typeAnnotation","TSTypeParameterInstantiation","parent","printList","params","type","length","TSTypeParameter","in","word","out","name","constraint","default","TSParameterProperty","accessibility","readonly","_param","parameter","TSDeclareFunction","declare","_functionHead","TSDeclareMethod","_classMethodHead","TSQualifiedName","left","right","TSCallSignatureDeclaration","tsPrintSignatureDeclarationBase","TSConstructSignatureDeclaration","TSPropertySignature","initializer","tsPrintPropertyOrMethodName","computed","key","TSMethodSignature","kind","TSIndexSignature","static","isStatic","_parameters","parameters","TSAnyKeyword","TSBigIntKeyword","TSUnknownKeyword","TSNumberKeyword","TSObjectKeyword","TSBooleanKeyword","TSStringKeyword","TSSymbolKeyword","TSVoidKeyword","TSUndefinedKeyword","TSNullKeyword","TSNeverKeyword","TSIntrinsicKeyword","TSThisType","TSFunctionType","tsPrintFunctionOrConstructorType","TSConstructorType","abstract","typeParameters","returnType","TSTypeReference","typeName","TSTypePredicate","asserts","parameterName","TSTypeQuery","exprName","TSTypeLiteral","tsPrintTypeLiteralOrInterfaceBody","members","tsPrintBraced","printer","indent","newline","member","dedent","rightBrace","TSArrayType","elementType","TSTupleType","elementTypes","TSOptionalType","TSRestType","TSNamedTupleMember","label","TSUnionType","tsPrintUnionOrIntersectionType","TSIntersectionType","sep","printJoin","types","separator","TSConditionalType","checkType","extendsType","trueType","falseType","TSInferType","typeParameter","TSParenthesizedType","TSTypeOperator","operator","TSIndexedAccessType","objectType","indexType","TSMappedType","nameType","tokenIfPlusMinus","self","tok","TSLiteralType","literal","TSExpressionWithTypeArguments","expression","TSInterfaceDeclaration","id","extends","extendz","body","TSInterfaceBody","TSTypeAliasDeclaration","TSTypeExpression","_expression$trailingC","forceParens","trailingComments","undefined","TSTypeAssertion","TSInstantiationExpression","TSEnumDeclaration","const","isConst","TSEnumMember","TSModuleDeclaration","global","TSModuleBlock","TSImportType","argument","qualifier","TSImportEqualsDeclaration","isExport","moduleReference","TSExternalModuleReference","TSNonNullExpression","TSExportAssignment","TSNamespaceExportDeclaration","tsPrintClassMemberModifiers","isField","override"],"sources":["../../src/generators/typescript.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport function TSTypeAnnotation(this: Printer, node: t.TSTypeAnnotation) {\n this.token(\":\");\n this.space();\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n if (node.optional) this.token(\"?\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSTypeParameterInstantiation(\n this: Printer,\n node: t.TSTypeParameterInstantiation,\n parent: t.Node,\n): void {\n this.token(\"<\");\n this.printList(node.params, node, {});\n if (parent.type === \"ArrowFunctionExpression\" && node.params.length === 1) {\n this.token(\",\");\n }\n this.token(\">\");\n}\n\nexport { TSTypeParameterInstantiation as TSTypeParameterDeclaration };\n\nexport function TSTypeParameter(this: Printer, node: t.TSTypeParameter) {\n if (node.in) {\n this.word(\"in\");\n this.space();\n }\n\n if (node.out) {\n this.word(\"out\");\n this.space();\n }\n\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (node.name as unknown as string)\n : (node.name as unknown as t.Identifier).name,\n );\n\n if (node.constraint) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.constraint, node);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default, node);\n }\n}\n\nexport function TSParameterProperty(\n this: Printer,\n node: t.TSParameterProperty,\n) {\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n\n if (node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n\n this._param(node.parameter);\n}\n\nexport function TSDeclareFunction(\n this: Printer,\n node: t.TSDeclareFunction,\n parent: NodePath<t.TSDeclareFunction>[\"parent\"],\n) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n this._functionHead(node, parent);\n this.token(\";\");\n}\n\nexport function TSDeclareMethod(this: Printer, node: t.TSDeclareMethod) {\n this._classMethodHead(node);\n this.token(\";\");\n}\n\nexport function TSQualifiedName(this: Printer, node: t.TSQualifiedName) {\n this.print(node.left, node);\n this.token(\".\");\n this.print(node.right, node);\n}\n\nexport function TSCallSignatureDeclaration(\n this: Printer,\n node: t.TSCallSignatureDeclaration,\n) {\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSConstructSignatureDeclaration(\n this: Printer,\n node: t.TSConstructSignatureDeclaration,\n) {\n this.word(\"new\");\n this.space();\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSPropertySignature(\n this: Printer,\n node: t.TSPropertySignature,\n) {\n const { readonly, initializer } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.print(node.typeAnnotation, node);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer, node);\n }\n this.token(\";\");\n}\n\nexport function tsPrintPropertyOrMethodName(\n this: Printer,\n node: t.TSPropertySignature | t.TSMethodSignature,\n) {\n if (node.computed) {\n this.token(\"[\");\n }\n this.print(node.key, node);\n if (node.computed) {\n this.token(\"]\");\n }\n if (node.optional) {\n this.token(\"?\");\n }\n}\n\nexport function TSMethodSignature(this: Printer, node: t.TSMethodSignature) {\n const { kind } = node;\n if (kind === \"set\" || kind === \"get\") {\n this.word(kind);\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSIndexSignature(this: Printer, node: t.TSIndexSignature) {\n const { readonly, static: isStatic } = node;\n if (isStatic) {\n this.word(\"static\");\n this.space();\n }\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.token(\"[\");\n this._parameters(node.parameters, node);\n this.token(\"]\");\n this.print(node.typeAnnotation, node);\n this.token(\";\");\n}\n\nexport function TSAnyKeyword(this: Printer) {\n this.word(\"any\");\n}\nexport function TSBigIntKeyword(this: Printer) {\n this.word(\"bigint\");\n}\nexport function TSUnknownKeyword(this: Printer) {\n this.word(\"unknown\");\n}\nexport function TSNumberKeyword(this: Printer) {\n this.word(\"number\");\n}\nexport function TSObjectKeyword(this: Printer) {\n this.word(\"object\");\n}\nexport function TSBooleanKeyword(this: Printer) {\n this.word(\"boolean\");\n}\nexport function TSStringKeyword(this: Printer) {\n this.word(\"string\");\n}\nexport function TSSymbolKeyword(this: Printer) {\n this.word(\"symbol\");\n}\nexport function TSVoidKeyword(this: Printer) {\n this.word(\"void\");\n}\nexport function TSUndefinedKeyword(this: Printer) {\n this.word(\"undefined\");\n}\nexport function TSNullKeyword(this: Printer) {\n this.word(\"null\");\n}\nexport function TSNeverKeyword(this: Printer) {\n this.word(\"never\");\n}\nexport function TSIntrinsicKeyword(this: Printer) {\n this.word(\"intrinsic\");\n}\n\nexport function TSThisType(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TSFunctionType(this: Printer, node: t.TSFunctionType) {\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function TSConstructorType(this: Printer, node: t.TSConstructorType) {\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n this.word(\"new\");\n this.space();\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function tsPrintFunctionOrConstructorType(\n this: Printer,\n node: t.TSFunctionType | t.TSConstructorType,\n) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.params\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n this.space();\n this.token(\"=>\");\n this.space();\n const returnType = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.typeAnnotation;\n this.print(returnType.typeAnnotation, node);\n}\n\nexport function TSTypeReference(this: Printer, node: t.TSTypeReference) {\n this.print(node.typeName, node, true);\n this.print(node.typeParameters, node, true);\n}\n\nexport function TSTypePredicate(this: Printer, node: t.TSTypePredicate) {\n if (node.asserts) {\n this.word(\"asserts\");\n this.space();\n }\n this.print(node.parameterName);\n if (node.typeAnnotation) {\n this.space();\n this.word(\"is\");\n this.space();\n this.print(node.typeAnnotation.typeAnnotation);\n }\n}\n\nexport function TSTypeQuery(this: Printer, node: t.TSTypeQuery) {\n this.word(\"typeof\");\n this.space();\n this.print(node.exprName);\n\n if (node.typeParameters) {\n this.print(node.typeParameters, node);\n }\n}\n\nexport function TSTypeLiteral(this: Printer, node: t.TSTypeLiteral) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.members, node);\n}\n\nexport function tsPrintTypeLiteralOrInterfaceBody(\n this: Printer,\n members: t.TSTypeElement[],\n node: t.TSType | t.TSInterfaceBody,\n) {\n tsPrintBraced(this, members, node);\n}\n\nfunction tsPrintBraced(printer: Printer, members: t.Node[], node: t.Node) {\n printer.token(\"{\");\n if (members.length) {\n printer.indent();\n printer.newline();\n for (const member of members) {\n printer.print(member, node);\n //this.token(sep);\n printer.newline();\n }\n printer.dedent();\n }\n\n printer.rightBrace(node);\n}\n\nexport function TSArrayType(this: Printer, node: t.TSArrayType) {\n this.print(node.elementType, node, true);\n\n this.token(\"[]\");\n}\n\nexport function TSTupleType(this: Printer, node: t.TSTupleType) {\n this.token(\"[\");\n this.printList(node.elementTypes, node);\n this.token(\"]\");\n}\n\nexport function TSOptionalType(this: Printer, node: t.TSOptionalType) {\n this.print(node.typeAnnotation, node);\n this.token(\"?\");\n}\n\nexport function TSRestType(this: Printer, node: t.TSRestType) {\n this.token(\"...\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSNamedTupleMember(this: Printer, node: t.TSNamedTupleMember) {\n this.print(node.label, node);\n if (node.optional) this.token(\"?\");\n this.token(\":\");\n this.space();\n this.print(node.elementType, node);\n}\n\nexport function TSUnionType(this: Printer, node: t.TSUnionType) {\n tsPrintUnionOrIntersectionType(this, node, \"|\");\n}\n\nexport function TSIntersectionType(this: Printer, node: t.TSIntersectionType) {\n tsPrintUnionOrIntersectionType(this, node, \"&\");\n}\n\nfunction tsPrintUnionOrIntersectionType(\n printer: Printer,\n node: t.TSUnionType | t.TSIntersectionType,\n sep: \"|\" | \"&\",\n) {\n printer.printJoin(node.types, node, {\n separator() {\n this.space();\n this.token(sep);\n this.space();\n },\n });\n}\n\nexport function TSConditionalType(this: Printer, node: t.TSConditionalType) {\n this.print(node.checkType);\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.extendsType);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.trueType);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.falseType);\n}\n\nexport function TSInferType(this: Printer, node: t.TSInferType) {\n this.token(\"infer\");\n this.space();\n this.print(node.typeParameter);\n}\n\nexport function TSParenthesizedType(\n this: Printer,\n node: t.TSParenthesizedType,\n) {\n this.token(\"(\");\n this.print(node.typeAnnotation, node);\n this.token(\")\");\n}\n\nexport function TSTypeOperator(this: Printer, node: t.TSTypeOperator) {\n this.word(node.operator);\n this.space();\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSIndexedAccessType(\n this: Printer,\n node: t.TSIndexedAccessType,\n) {\n this.print(node.objectType, node, true);\n this.token(\"[\");\n this.print(node.indexType, node);\n this.token(\"]\");\n}\n\nexport function TSMappedType(this: Printer, node: t.TSMappedType) {\n const { nameType, optional, readonly, typeParameter } = node;\n this.token(\"{\");\n this.space();\n if (readonly) {\n tokenIfPlusMinus(this, readonly);\n this.word(\"readonly\");\n this.space();\n }\n\n this.token(\"[\");\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (typeParameter.name as unknown as string)\n : (typeParameter.name as unknown as t.Identifier).name,\n );\n this.space();\n this.word(\"in\");\n this.space();\n this.print(typeParameter.constraint, typeParameter);\n\n if (nameType) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(nameType, node);\n }\n\n this.token(\"]\");\n\n if (optional) {\n tokenIfPlusMinus(this, optional);\n this.token(\"?\");\n }\n this.token(\":\");\n this.space();\n this.print(node.typeAnnotation, node);\n this.space();\n this.token(\"}\");\n}\n\nfunction tokenIfPlusMinus(self: Printer, tok: true | \"+\" | \"-\") {\n if (tok !== true) {\n self.token(tok);\n }\n}\n\nexport function TSLiteralType(this: Printer, node: t.TSLiteralType) {\n this.print(node.literal, node);\n}\n\nexport function TSExpressionWithTypeArguments(\n this: Printer,\n node: t.TSExpressionWithTypeArguments,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSInterfaceDeclaration(\n this: Printer,\n node: t.TSInterfaceDeclaration,\n) {\n const { declare, id, typeParameters, extends: extendz, body } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"interface\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n if (extendz?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(extendz, node);\n }\n this.space();\n this.print(body, node);\n}\n\nexport function TSInterfaceBody(this: Printer, node: t.TSInterfaceBody) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.body, node);\n}\n\nexport function TSTypeAliasDeclaration(\n this: Printer,\n node: t.TSTypeAliasDeclaration,\n) {\n const { declare, id, typeParameters, typeAnnotation } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"type\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(typeAnnotation, node);\n this.token(\";\");\n}\n\nfunction TSTypeExpression(\n this: Printer,\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n) {\n const { type, expression, typeAnnotation } = node;\n const forceParens = !!expression.trailingComments?.length;\n this.print(expression, node, true, undefined, forceParens);\n this.space();\n this.word(type === \"TSAsExpression\" ? \"as\" : \"satisfies\");\n this.space();\n this.print(typeAnnotation, node);\n}\n\nexport {\n TSTypeExpression as TSAsExpression,\n TSTypeExpression as TSSatisfiesExpression,\n};\n\nexport function TSTypeAssertion(this: Printer, node: t.TSTypeAssertion) {\n const { typeAnnotation, expression } = node;\n this.token(\"<\");\n this.print(typeAnnotation, node);\n this.token(\">\");\n this.space();\n this.print(expression, node);\n}\n\nexport function TSInstantiationExpression(\n this: Printer,\n node: t.TSInstantiationExpression,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSEnumDeclaration(this: Printer, node: t.TSEnumDeclaration) {\n const { declare, const: isConst, id, members } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n if (isConst) {\n this.word(\"const\");\n this.space();\n }\n this.word(\"enum\");\n this.space();\n this.print(id, node);\n this.space();\n tsPrintBraced(this, members, node);\n}\n\nexport function TSEnumMember(this: Printer, node: t.TSEnumMember) {\n const { id, initializer } = node;\n this.print(id, node);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer, node);\n }\n this.token(\",\");\n}\n\nexport function TSModuleDeclaration(\n this: Printer,\n node: t.TSModuleDeclaration,\n) {\n const { declare, id } = node;\n\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n\n if (!node.global) {\n this.word(id.type === \"Identifier\" ? \"namespace\" : \"module\");\n this.space();\n }\n this.print(id, node);\n\n if (!node.body) {\n this.token(\";\");\n return;\n }\n\n let body = node.body;\n while (body.type === \"TSModuleDeclaration\") {\n this.token(\".\");\n this.print(body.id, body);\n body = body.body;\n }\n\n this.space();\n this.print(body, node);\n}\n\nexport function TSModuleBlock(this: Printer, node: t.TSModuleBlock) {\n tsPrintBraced(this, node.body, node);\n}\n\nexport function TSImportType(this: Printer, node: t.TSImportType) {\n const { argument, qualifier, typeParameters } = node;\n this.word(\"import\");\n this.token(\"(\");\n this.print(argument, node);\n this.token(\")\");\n if (qualifier) {\n this.token(\".\");\n this.print(qualifier, node);\n }\n if (typeParameters) {\n this.print(typeParameters, node);\n }\n}\n\nexport function TSImportEqualsDeclaration(\n this: Printer,\n node: t.TSImportEqualsDeclaration,\n) {\n const { isExport, id, moduleReference } = node;\n if (isExport) {\n this.word(\"export\");\n this.space();\n }\n this.word(\"import\");\n this.space();\n this.print(id, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(moduleReference, node);\n this.token(\";\");\n}\n\nexport function TSExternalModuleReference(\n this: Printer,\n node: t.TSExternalModuleReference,\n) {\n this.token(\"require(\");\n this.print(node.expression, node);\n this.token(\")\");\n}\n\nexport function TSNonNullExpression(\n this: Printer,\n node: t.TSNonNullExpression,\n) {\n this.print(node.expression, node);\n this.token(\"!\");\n}\n\nexport function TSExportAssignment(this: Printer, node: t.TSExportAssignment) {\n this.word(\"export\");\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.expression, node);\n this.token(\";\");\n}\n\nexport function TSNamespaceExportDeclaration(\n this: Printer,\n node: t.TSNamespaceExportDeclaration,\n) {\n this.word(\"export\");\n this.space();\n this.word(\"as\");\n this.space();\n this.word(\"namespace\");\n this.space();\n this.print(node.id, node);\n}\n\nexport function tsPrintSignatureDeclarationBase(this: Printer, node: any) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? node.params\n : node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n const returnType = process.env.BABEL_8_BREAKING\n ? node.returnType\n : node.typeAnnotation;\n this.print(returnType, node);\n}\n\nexport function tsPrintClassMemberModifiers(\n this: Printer,\n node:\n | t.ClassProperty\n | t.ClassAccessorProperty\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.TSDeclareMethod,\n) {\n const isField =\n node.type === \"ClassAccessorProperty\" || node.type === \"ClassProperty\";\n if (isField && node.declare) {\n this.word(\"declare\");\n this.space();\n }\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n if (node.override) {\n this.word(\"override\");\n this.space();\n }\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n if (isField && node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["TSTypeAnnotation","node","token","space","optional","print","typeAnnotation","TSTypeParameterInstantiation","parent","printList","params","type","length","TSTypeParameter","in","word","out","name","constraint","default","TSParameterProperty","accessibility","readonly","_param","parameter","TSDeclareFunction","declare","_functionHead","TSDeclareMethod","_classMethodHead","TSQualifiedName","left","right","TSCallSignatureDeclaration","tsPrintSignatureDeclarationBase","TSConstructSignatureDeclaration","TSPropertySignature","tsPrintPropertyOrMethodName","computed","key","TSMethodSignature","kind","TSIndexSignature","static","isStatic","_parameters","parameters","TSAnyKeyword","TSBigIntKeyword","TSUnknownKeyword","TSNumberKeyword","TSObjectKeyword","TSBooleanKeyword","TSStringKeyword","TSSymbolKeyword","TSVoidKeyword","TSUndefinedKeyword","TSNullKeyword","TSNeverKeyword","TSIntrinsicKeyword","TSThisType","TSFunctionType","tsPrintFunctionOrConstructorType","TSConstructorType","abstract","typeParameters","returnType","TSTypeReference","typeName","TSTypePredicate","asserts","parameterName","TSTypeQuery","exprName","TSTypeLiteral","tsPrintTypeLiteralOrInterfaceBody","members","tsPrintBraced","printer","indent","newline","member","dedent","rightBrace","TSArrayType","elementType","TSTupleType","elementTypes","TSOptionalType","TSRestType","TSNamedTupleMember","label","TSUnionType","tsPrintUnionOrIntersectionType","TSIntersectionType","sep","printJoin","types","separator","TSConditionalType","checkType","extendsType","trueType","falseType","TSInferType","typeParameter","TSParenthesizedType","TSTypeOperator","operator","TSIndexedAccessType","objectType","indexType","TSMappedType","nameType","tokenIfPlusMinus","self","tok","TSLiteralType","literal","TSExpressionWithTypeArguments","expression","TSInterfaceDeclaration","id","extends","extendz","body","TSInterfaceBody","TSTypeAliasDeclaration","TSTypeExpression","_expression$trailingC","forceParens","trailingComments","undefined","TSTypeAssertion","TSInstantiationExpression","TSEnumDeclaration","const","isConst","TSEnumMember","initializer","TSModuleDeclaration","global","TSModuleBlock","TSImportType","argument","qualifier","TSImportEqualsDeclaration","isExport","moduleReference","TSExternalModuleReference","TSNonNullExpression","TSExportAssignment","TSNamespaceExportDeclaration","tsPrintClassMemberModifiers","isField","override"],"sources":["../../src/generators/typescript.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport function TSTypeAnnotation(this: Printer, node: t.TSTypeAnnotation) {\n this.token(\":\");\n this.space();\n // @ts-expect-error todo(flow->ts) can this be removed? `.optional` looks to be not existing property\n if (node.optional) this.token(\"?\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSTypeParameterInstantiation(\n this: Printer,\n node: t.TSTypeParameterInstantiation,\n parent: t.Node,\n): void {\n this.token(\"<\");\n this.printList(node.params, node, {});\n if (parent.type === \"ArrowFunctionExpression\" && node.params.length === 1) {\n this.token(\",\");\n }\n this.token(\">\");\n}\n\nexport { TSTypeParameterInstantiation as TSTypeParameterDeclaration };\n\nexport function TSTypeParameter(this: Printer, node: t.TSTypeParameter) {\n if (node.in) {\n this.word(\"in\");\n this.space();\n }\n\n if (node.out) {\n this.word(\"out\");\n this.space();\n }\n\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (node.name as unknown as string)\n : (node.name as unknown as t.Identifier).name,\n );\n\n if (node.constraint) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.constraint, node);\n }\n\n if (node.default) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.default, node);\n }\n}\n\nexport function TSParameterProperty(\n this: Printer,\n node: t.TSParameterProperty,\n) {\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n\n if (node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n\n this._param(node.parameter);\n}\n\nexport function TSDeclareFunction(\n this: Printer,\n node: t.TSDeclareFunction,\n parent: NodePath<t.TSDeclareFunction>[\"parent\"],\n) {\n if (node.declare) {\n this.word(\"declare\");\n this.space();\n }\n this._functionHead(node, parent);\n this.token(\";\");\n}\n\nexport function TSDeclareMethod(this: Printer, node: t.TSDeclareMethod) {\n this._classMethodHead(node);\n this.token(\";\");\n}\n\nexport function TSQualifiedName(this: Printer, node: t.TSQualifiedName) {\n this.print(node.left, node);\n this.token(\".\");\n this.print(node.right, node);\n}\n\nexport function TSCallSignatureDeclaration(\n this: Printer,\n node: t.TSCallSignatureDeclaration,\n) {\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSConstructSignatureDeclaration(\n this: Printer,\n node: t.TSConstructSignatureDeclaration,\n) {\n this.word(\"new\");\n this.space();\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSPropertySignature(\n this: Printer,\n node: t.TSPropertySignature,\n) {\n const { readonly } = node;\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.print(node.typeAnnotation, node);\n this.token(\";\");\n}\n\nexport function tsPrintPropertyOrMethodName(\n this: Printer,\n node: t.TSPropertySignature | t.TSMethodSignature,\n) {\n if (node.computed) {\n this.token(\"[\");\n }\n this.print(node.key, node);\n if (node.computed) {\n this.token(\"]\");\n }\n if (node.optional) {\n this.token(\"?\");\n }\n}\n\nexport function TSMethodSignature(this: Printer, node: t.TSMethodSignature) {\n const { kind } = node;\n if (kind === \"set\" || kind === \"get\") {\n this.word(kind);\n this.space();\n }\n this.tsPrintPropertyOrMethodName(node);\n this.tsPrintSignatureDeclarationBase(node);\n this.token(\";\");\n}\n\nexport function TSIndexSignature(this: Printer, node: t.TSIndexSignature) {\n const { readonly, static: isStatic } = node;\n if (isStatic) {\n this.word(\"static\");\n this.space();\n }\n if (readonly) {\n this.word(\"readonly\");\n this.space();\n }\n this.token(\"[\");\n this._parameters(node.parameters, node);\n this.token(\"]\");\n this.print(node.typeAnnotation, node);\n this.token(\";\");\n}\n\nexport function TSAnyKeyword(this: Printer) {\n this.word(\"any\");\n}\nexport function TSBigIntKeyword(this: Printer) {\n this.word(\"bigint\");\n}\nexport function TSUnknownKeyword(this: Printer) {\n this.word(\"unknown\");\n}\nexport function TSNumberKeyword(this: Printer) {\n this.word(\"number\");\n}\nexport function TSObjectKeyword(this: Printer) {\n this.word(\"object\");\n}\nexport function TSBooleanKeyword(this: Printer) {\n this.word(\"boolean\");\n}\nexport function TSStringKeyword(this: Printer) {\n this.word(\"string\");\n}\nexport function TSSymbolKeyword(this: Printer) {\n this.word(\"symbol\");\n}\nexport function TSVoidKeyword(this: Printer) {\n this.word(\"void\");\n}\nexport function TSUndefinedKeyword(this: Printer) {\n this.word(\"undefined\");\n}\nexport function TSNullKeyword(this: Printer) {\n this.word(\"null\");\n}\nexport function TSNeverKeyword(this: Printer) {\n this.word(\"never\");\n}\nexport function TSIntrinsicKeyword(this: Printer) {\n this.word(\"intrinsic\");\n}\n\nexport function TSThisType(this: Printer) {\n this.word(\"this\");\n}\n\nexport function TSFunctionType(this: Printer, node: t.TSFunctionType) {\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function TSConstructorType(this: Printer, node: t.TSConstructorType) {\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n this.word(\"new\");\n this.space();\n this.tsPrintFunctionOrConstructorType(node);\n}\n\nexport function tsPrintFunctionOrConstructorType(\n this: Printer,\n node: t.TSFunctionType | t.TSConstructorType,\n) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.params\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n this.space();\n this.token(\"=>\");\n this.space();\n const returnType = process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Babel 8 AST shape\n node.returnType\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST shape\n node.typeAnnotation;\n this.print(returnType.typeAnnotation, node);\n}\n\nexport function TSTypeReference(this: Printer, node: t.TSTypeReference) {\n this.print(node.typeName, node, true);\n this.print(node.typeParameters, node, true);\n}\n\nexport function TSTypePredicate(this: Printer, node: t.TSTypePredicate) {\n if (node.asserts) {\n this.word(\"asserts\");\n this.space();\n }\n this.print(node.parameterName);\n if (node.typeAnnotation) {\n this.space();\n this.word(\"is\");\n this.space();\n this.print(node.typeAnnotation.typeAnnotation);\n }\n}\n\nexport function TSTypeQuery(this: Printer, node: t.TSTypeQuery) {\n this.word(\"typeof\");\n this.space();\n this.print(node.exprName);\n\n if (node.typeParameters) {\n this.print(node.typeParameters, node);\n }\n}\n\nexport function TSTypeLiteral(this: Printer, node: t.TSTypeLiteral) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.members, node);\n}\n\nexport function tsPrintTypeLiteralOrInterfaceBody(\n this: Printer,\n members: t.TSTypeElement[],\n node: t.TSType | t.TSInterfaceBody,\n) {\n tsPrintBraced(this, members, node);\n}\n\nfunction tsPrintBraced(printer: Printer, members: t.Node[], node: t.Node) {\n printer.token(\"{\");\n if (members.length) {\n printer.indent();\n printer.newline();\n for (const member of members) {\n printer.print(member, node);\n //this.token(sep);\n printer.newline();\n }\n printer.dedent();\n }\n\n printer.rightBrace(node);\n}\n\nexport function TSArrayType(this: Printer, node: t.TSArrayType) {\n this.print(node.elementType, node, true);\n\n this.token(\"[]\");\n}\n\nexport function TSTupleType(this: Printer, node: t.TSTupleType) {\n this.token(\"[\");\n this.printList(node.elementTypes, node);\n this.token(\"]\");\n}\n\nexport function TSOptionalType(this: Printer, node: t.TSOptionalType) {\n this.print(node.typeAnnotation, node);\n this.token(\"?\");\n}\n\nexport function TSRestType(this: Printer, node: t.TSRestType) {\n this.token(\"...\");\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSNamedTupleMember(this: Printer, node: t.TSNamedTupleMember) {\n this.print(node.label, node);\n if (node.optional) this.token(\"?\");\n this.token(\":\");\n this.space();\n this.print(node.elementType, node);\n}\n\nexport function TSUnionType(this: Printer, node: t.TSUnionType) {\n tsPrintUnionOrIntersectionType(this, node, \"|\");\n}\n\nexport function TSIntersectionType(this: Printer, node: t.TSIntersectionType) {\n tsPrintUnionOrIntersectionType(this, node, \"&\");\n}\n\nfunction tsPrintUnionOrIntersectionType(\n printer: Printer,\n node: t.TSUnionType | t.TSIntersectionType,\n sep: \"|\" | \"&\",\n) {\n printer.printJoin(node.types, node, {\n separator() {\n this.space();\n this.token(sep);\n this.space();\n },\n });\n}\n\nexport function TSConditionalType(this: Printer, node: t.TSConditionalType) {\n this.print(node.checkType);\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.extendsType);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.trueType);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.falseType);\n}\n\nexport function TSInferType(this: Printer, node: t.TSInferType) {\n this.token(\"infer\");\n this.space();\n this.print(node.typeParameter);\n}\n\nexport function TSParenthesizedType(\n this: Printer,\n node: t.TSParenthesizedType,\n) {\n this.token(\"(\");\n this.print(node.typeAnnotation, node);\n this.token(\")\");\n}\n\nexport function TSTypeOperator(this: Printer, node: t.TSTypeOperator) {\n this.word(node.operator);\n this.space();\n this.print(node.typeAnnotation, node);\n}\n\nexport function TSIndexedAccessType(\n this: Printer,\n node: t.TSIndexedAccessType,\n) {\n this.print(node.objectType, node, true);\n this.token(\"[\");\n this.print(node.indexType, node);\n this.token(\"]\");\n}\n\nexport function TSMappedType(this: Printer, node: t.TSMappedType) {\n const { nameType, optional, readonly, typeParameter } = node;\n this.token(\"{\");\n this.space();\n if (readonly) {\n tokenIfPlusMinus(this, readonly);\n this.word(\"readonly\");\n this.space();\n }\n\n this.token(\"[\");\n this.word(\n !process.env.BABEL_8_BREAKING\n ? (typeParameter.name as unknown as string)\n : (typeParameter.name as unknown as t.Identifier).name,\n );\n this.space();\n this.word(\"in\");\n this.space();\n this.print(typeParameter.constraint, typeParameter);\n\n if (nameType) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(nameType, node);\n }\n\n this.token(\"]\");\n\n if (optional) {\n tokenIfPlusMinus(this, optional);\n this.token(\"?\");\n }\n this.token(\":\");\n this.space();\n this.print(node.typeAnnotation, node);\n this.space();\n this.token(\"}\");\n}\n\nfunction tokenIfPlusMinus(self: Printer, tok: true | \"+\" | \"-\") {\n if (tok !== true) {\n self.token(tok);\n }\n}\n\nexport function TSLiteralType(this: Printer, node: t.TSLiteralType) {\n this.print(node.literal, node);\n}\n\nexport function TSExpressionWithTypeArguments(\n this: Printer,\n node: t.TSExpressionWithTypeArguments,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSInterfaceDeclaration(\n this: Printer,\n node: t.TSInterfaceDeclaration,\n) {\n const { declare, id, typeParameters, extends: extendz, body } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"interface\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n if (extendz?.length) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.printList(extendz, node);\n }\n this.space();\n this.print(body, node);\n}\n\nexport function TSInterfaceBody(this: Printer, node: t.TSInterfaceBody) {\n this.tsPrintTypeLiteralOrInterfaceBody(node.body, node);\n}\n\nexport function TSTypeAliasDeclaration(\n this: Printer,\n node: t.TSTypeAliasDeclaration,\n) {\n const { declare, id, typeParameters, typeAnnotation } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n this.word(\"type\");\n this.space();\n this.print(id, node);\n this.print(typeParameters, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(typeAnnotation, node);\n this.token(\";\");\n}\n\nfunction TSTypeExpression(\n this: Printer,\n node: t.TSAsExpression | t.TSSatisfiesExpression,\n) {\n const { type, expression, typeAnnotation } = node;\n const forceParens = !!expression.trailingComments?.length;\n this.print(expression, node, true, undefined, forceParens);\n this.space();\n this.word(type === \"TSAsExpression\" ? \"as\" : \"satisfies\");\n this.space();\n this.print(typeAnnotation, node);\n}\n\nexport {\n TSTypeExpression as TSAsExpression,\n TSTypeExpression as TSSatisfiesExpression,\n};\n\nexport function TSTypeAssertion(this: Printer, node: t.TSTypeAssertion) {\n const { typeAnnotation, expression } = node;\n this.token(\"<\");\n this.print(typeAnnotation, node);\n this.token(\">\");\n this.space();\n this.print(expression, node);\n}\n\nexport function TSInstantiationExpression(\n this: Printer,\n node: t.TSInstantiationExpression,\n) {\n this.print(node.expression, node);\n this.print(node.typeParameters, node);\n}\n\nexport function TSEnumDeclaration(this: Printer, node: t.TSEnumDeclaration) {\n const { declare, const: isConst, id, members } = node;\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n if (isConst) {\n this.word(\"const\");\n this.space();\n }\n this.word(\"enum\");\n this.space();\n this.print(id, node);\n this.space();\n tsPrintBraced(this, members, node);\n}\n\nexport function TSEnumMember(this: Printer, node: t.TSEnumMember) {\n const { id, initializer } = node;\n this.print(id, node);\n if (initializer) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(initializer, node);\n }\n this.token(\",\");\n}\n\nexport function TSModuleDeclaration(\n this: Printer,\n node: t.TSModuleDeclaration,\n) {\n const { declare, id } = node;\n\n if (declare) {\n this.word(\"declare\");\n this.space();\n }\n\n if (!node.global) {\n this.word(id.type === \"Identifier\" ? \"namespace\" : \"module\");\n this.space();\n }\n this.print(id, node);\n\n if (!node.body) {\n this.token(\";\");\n return;\n }\n\n let body = node.body;\n while (body.type === \"TSModuleDeclaration\") {\n this.token(\".\");\n this.print(body.id, body);\n body = body.body;\n }\n\n this.space();\n this.print(body, node);\n}\n\nexport function TSModuleBlock(this: Printer, node: t.TSModuleBlock) {\n tsPrintBraced(this, node.body, node);\n}\n\nexport function TSImportType(this: Printer, node: t.TSImportType) {\n const { argument, qualifier, typeParameters } = node;\n this.word(\"import\");\n this.token(\"(\");\n this.print(argument, node);\n this.token(\")\");\n if (qualifier) {\n this.token(\".\");\n this.print(qualifier, node);\n }\n if (typeParameters) {\n this.print(typeParameters, node);\n }\n}\n\nexport function TSImportEqualsDeclaration(\n this: Printer,\n node: t.TSImportEqualsDeclaration,\n) {\n const { isExport, id, moduleReference } = node;\n if (isExport) {\n this.word(\"export\");\n this.space();\n }\n this.word(\"import\");\n this.space();\n this.print(id, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(moduleReference, node);\n this.token(\";\");\n}\n\nexport function TSExternalModuleReference(\n this: Printer,\n node: t.TSExternalModuleReference,\n) {\n this.token(\"require(\");\n this.print(node.expression, node);\n this.token(\")\");\n}\n\nexport function TSNonNullExpression(\n this: Printer,\n node: t.TSNonNullExpression,\n) {\n this.print(node.expression, node);\n this.token(\"!\");\n}\n\nexport function TSExportAssignment(this: Printer, node: t.TSExportAssignment) {\n this.word(\"export\");\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.expression, node);\n this.token(\";\");\n}\n\nexport function TSNamespaceExportDeclaration(\n this: Printer,\n node: t.TSNamespaceExportDeclaration,\n) {\n this.word(\"export\");\n this.space();\n this.word(\"as\");\n this.space();\n this.word(\"namespace\");\n this.space();\n this.print(node.id, node);\n}\n\nexport function tsPrintSignatureDeclarationBase(this: Printer, node: any) {\n const { typeParameters } = node;\n const parameters = process.env.BABEL_8_BREAKING\n ? node.params\n : node.parameters;\n this.print(typeParameters, node);\n this.token(\"(\");\n this._parameters(parameters, node);\n this.token(\")\");\n const returnType = process.env.BABEL_8_BREAKING\n ? node.returnType\n : node.typeAnnotation;\n this.print(returnType, node);\n}\n\nexport function tsPrintClassMemberModifiers(\n this: Printer,\n node:\n | t.ClassProperty\n | t.ClassAccessorProperty\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.TSDeclareMethod,\n) {\n const isField =\n node.type === \"ClassAccessorProperty\" || node.type === \"ClassProperty\";\n if (isField && node.declare) {\n this.word(\"declare\");\n this.space();\n }\n if (node.accessibility) {\n this.word(node.accessibility);\n this.space();\n }\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n if (node.override) {\n this.word(\"override\");\n this.space();\n }\n if (node.abstract) {\n this.word(\"abstract\");\n this.space();\n }\n if (isField && node.readonly) {\n this.word(\"readonly\");\n this.space();\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/generator/lib/index.js b/node_modules/@babel/generator/lib/index.js index cf7d0b7b..f49be786 100644 --- a/node_modules/@babel/generator/lib/index.js +++ b/node_modules/@babel/generator/lib/index.js @@ -3,22 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.CodeGenerator = void 0; exports.default = generate; var _sourceMap = require("./source-map.js"); var _printer = require("./printer.js"); -class Generator extends _printer.default { - constructor(ast, opts = {}, code) { - const format = normalizeOptions(code, opts); - const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; - super(format, map); - this.ast = void 0; - this.ast = ast; - } - generate() { - return super.generate(this.ast); - } -} function normalizeOptions(code, opts) { var _opts$recordAndTupleS; const format = { @@ -76,19 +63,27 @@ function normalizeOptions(code, opts) { } return format; } -class CodeGenerator { - constructor(ast, opts, code) { - this._generator = void 0; - this._generator = new Generator(ast, opts, code); - } - generate() { - return this._generator.generate(); - } +{ + exports.CodeGenerator = class CodeGenerator { + constructor(ast, opts = {}, code) { + this._ast = void 0; + this._format = void 0; + this._map = void 0; + this._ast = ast; + this._format = normalizeOptions(code, opts); + this._map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; + } + generate() { + const printer = new _printer.default(this._format, this._map); + return printer.generate(this._ast); + } + }; } -exports.CodeGenerator = CodeGenerator; -function generate(ast, opts, code) { - const gen = new Generator(ast, opts, code); - return gen.generate(); +function generate(ast, opts = {}, code) { + const format = normalizeOptions(code, opts); + const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; + const printer = new _printer.default(format, map); + return printer.generate(ast); } //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/generator/lib/index.js.map b/node_modules/@babel/generator/lib/index.js.map index b36ed14c..de38d1b8 100644 --- a/node_modules/@babel/generator/lib/index.js.map +++ b/node_modules/@babel/generator/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_sourceMap","require","_printer","Generator","Printer","constructor","ast","opts","code","format","normalizeOptions","map","sourceMaps","SourceMap","generate","_opts$recordAndTupleS","auxiliaryCommentBefore","auxiliaryCommentAfter","shouldPrintComment","retainLines","retainFunctionParens","comments","compact","minified","concise","indent","adjustMultilineComment","style","jsescOption","Object","assign","quotes","wrap","minimal","recordAndTupleSyntaxType","topicToken","importAttributesKeyword","decoratorsBeforeExport","json","jsonCompatibleStrings","value","includes","length","console","error","filename","undefined","CodeGenerator","_generator","exports","gen"],"sources":["../src/index.ts"],"sourcesContent":["import SourceMap from \"./source-map.ts\";\nimport Printer from \"./printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\nimport type { Format } from \"./printer.ts\";\nimport type {\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"@babel/parser\";\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\n\n/**\n * Babel's code generator, turns an ast into code, maintaining sourcemaps,\n * user preferences, and valid output.\n */\n\nclass Generator extends Printer {\n constructor(\n ast: t.Node,\n opts: GeneratorOptions = {},\n code: string | { [filename: string]: string },\n ) {\n const format = normalizeOptions(code, opts);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n super(format, map);\n\n this.ast = ast;\n }\n\n ast: t.Node;\n\n /**\n * Generate code and sourcemap from ast.\n *\n * Appends comments that weren't attached to any node to the end of the generated output.\n */\n\n generate() {\n return super.generate(this.ast);\n }\n}\n\n/**\n * Normalize generator options, setting defaults.\n *\n * - Detects code indentation.\n * - If `opts.compact = \"auto\"` and the code is over 500KB, `compact` will be set to `true`.\n */\n\nfunction normalizeOptions(\n code: string | { [filename: string]: string },\n opts: GeneratorOptions,\n): Format {\n const format: Format = {\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n shouldPrintComment: opts.shouldPrintComment,\n retainLines: opts.retainLines,\n retainFunctionParens: opts.retainFunctionParens,\n comments: opts.comments == null || opts.comments,\n compact: opts.compact,\n minified: opts.minified,\n concise: opts.concise,\n indent: {\n adjustMultilineComment: true,\n style: \" \",\n },\n jsescOption: {\n quotes: \"double\",\n wrap: true,\n minimal: process.env.BABEL_8_BREAKING ? true : false,\n ...opts.jsescOption,\n },\n recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType ?? \"hash\",\n topicToken: opts.topicToken,\n importAttributesKeyword: opts.importAttributesKeyword,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n format.decoratorsBeforeExport = opts.decoratorsBeforeExport;\n format.jsescOption.json = opts.jsonCompatibleStrings;\n }\n\n if (format.minified) {\n format.compact = true;\n\n format.shouldPrintComment =\n format.shouldPrintComment || (() => format.comments);\n } else {\n format.shouldPrintComment =\n format.shouldPrintComment ||\n (value =>\n format.comments ||\n value.includes(\"@license\") ||\n value.includes(\"@preserve\"));\n }\n\n if (format.compact === \"auto\") {\n format.compact = typeof code === \"string\" && code.length > 500_000; // 500KB\n\n if (format.compact) {\n console.error(\n \"[BABEL] Note: The code generator has deoptimised the styling of \" +\n `${opts.filename} as it exceeds the max of ${\"500KB\"}.`,\n );\n }\n }\n\n if (format.compact) {\n format.indent.adjustMultilineComment = false;\n }\n\n const { auxiliaryCommentBefore, auxiliaryCommentAfter, shouldPrintComment } =\n format;\n\n if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) {\n format.auxiliaryCommentBefore = undefined;\n }\n if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) {\n format.auxiliaryCommentAfter = undefined;\n }\n\n return format;\n}\n\nexport interface GeneratorOptions {\n /**\n * Optional string to add as a block comment at the start of the output file.\n */\n auxiliaryCommentBefore?: string;\n\n /**\n * Optional string to add as a block comment at the end of the output file.\n */\n auxiliaryCommentAfter?: string;\n\n /**\n * Function that takes a comment (as a string) and returns true if the comment should be included in the output.\n * By default, comments are included if `opts.comments` is `true` or if `opts.minified` is `false` and the comment\n * contains `@preserve` or `@license`.\n */\n shouldPrintComment?(comment: string): boolean;\n\n /**\n * Attempt to use the same line numbers in the output code as in the source code (helps preserve stack traces).\n * Defaults to `false`.\n */\n retainLines?: boolean;\n\n /**\n * Retain parens around function expressions (could be used to change engine parsing behavior)\n * Defaults to `false`.\n */\n retainFunctionParens?: boolean;\n\n /**\n * Should comments be included in output? Defaults to `true`.\n */\n comments?: boolean;\n\n /**\n * Set to true to avoid adding whitespace for formatting. Defaults to the value of `opts.minified`.\n */\n compact?: boolean | \"auto\";\n\n /**\n * Should the output be minified. Defaults to `false`.\n */\n minified?: boolean;\n\n /**\n * Set to true to reduce whitespace (but not as much as opts.compact). Defaults to `false`.\n */\n concise?: boolean;\n\n /**\n * Used in warning messages\n */\n filename?: string;\n\n /**\n * Enable generating source maps. Defaults to `false`.\n */\n sourceMaps?: boolean;\n\n inputSourceMap?: any;\n\n /**\n * A root for all relative URLs in the source map.\n */\n sourceRoot?: string;\n\n /**\n * The filename for the source code (i.e. the code in the `code` argument).\n * This will only be used if `code` is a string.\n */\n sourceFileName?: string;\n\n /**\n * Set to true to run jsesc with \"json\": true to print \"\\u00A9\" vs. \"©\";\n * @deprecated use `jsescOptions: { json: true }` instead\n */\n jsonCompatibleStrings?: boolean;\n\n /**\n * Set to true to enable support for experimental decorators syntax before\n * module exports. If not specified, decorators will be printed in the same\n * position as they were in the input source code.\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n\n /**\n * Options for outputting jsesc representation.\n */\n jsescOption?: jsescOptions;\n\n /**\n * For use with the recordAndTuple token.\n */\n recordAndTupleSyntaxType?: RecordAndTuplePluginOptions[\"syntaxType\"];\n\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: PipelineOperatorPluginOptions[\"topicToken\"];\n\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n}\n\nexport interface GeneratorResult {\n code: string;\n map: EncodedSourceMap | null;\n decodedMap: DecodedSourceMap | undefined;\n rawMappings: Mapping[] | undefined;\n}\n\n/**\n * We originally exported the Generator class above, but to make it extra clear that it is a private API,\n * we have moved that to an internal class instance and simplified the interface to the two public methods\n * that we wish to support.\n */\n\nexport class CodeGenerator {\n private _generator: Generator;\n constructor(ast: t.Node, opts?: GeneratorOptions, code?: string) {\n this._generator = new Generator(ast, opts, code);\n }\n generate(): GeneratorResult {\n return this._generator.generate();\n }\n}\n\n/**\n * Turns an AST into code, maintaining sourcemaps, user preferences, and valid output.\n * @param ast - the abstract syntax tree from which to generate output code.\n * @param opts - used for specifying options for code generation.\n * @param code - the original source code, used for source maps.\n * @returns - an object containing the output code and source map.\n */\nexport default function generate(\n ast: t.Node,\n opts?: GeneratorOptions,\n code?: string | { [filename: string]: string },\n) {\n const gen = new Generator(ast, opts, code);\n return gen.generate();\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_sourceMap","require","_printer","normalizeOptions","code","opts","_opts$recordAndTupleS","format","auxiliaryCommentBefore","auxiliaryCommentAfter","shouldPrintComment","retainLines","retainFunctionParens","comments","compact","minified","concise","indent","adjustMultilineComment","style","jsescOption","Object","assign","quotes","wrap","minimal","recordAndTupleSyntaxType","topicToken","importAttributesKeyword","decoratorsBeforeExport","json","jsonCompatibleStrings","value","includes","length","console","error","filename","undefined","exports","CodeGenerator","constructor","ast","_ast","_format","_map","sourceMaps","SourceMap","generate","printer","Printer","map"],"sources":["../src/index.ts"],"sourcesContent":["import SourceMap from \"./source-map.ts\";\nimport Printer from \"./printer.ts\";\nimport type * as t from \"@babel/types\";\nimport type { Opts as jsescOptions } from \"jsesc\";\nimport type { Format } from \"./printer.ts\";\nimport type {\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"@babel/parser\";\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\n\n/**\n * Normalize generator options, setting defaults.\n *\n * - Detects code indentation.\n * - If `opts.compact = \"auto\"` and the code is over 500KB, `compact` will be set to `true`.\n */\n\nfunction normalizeOptions(\n code: string | { [filename: string]: string },\n opts: GeneratorOptions,\n): Format {\n const format: Format = {\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n shouldPrintComment: opts.shouldPrintComment,\n retainLines: opts.retainLines,\n retainFunctionParens: opts.retainFunctionParens,\n comments: opts.comments == null || opts.comments,\n compact: opts.compact,\n minified: opts.minified,\n concise: opts.concise,\n indent: {\n adjustMultilineComment: true,\n style: \" \",\n },\n jsescOption: {\n quotes: \"double\",\n wrap: true,\n minimal: process.env.BABEL_8_BREAKING ? true : false,\n ...opts.jsescOption,\n },\n recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType ?? \"hash\",\n topicToken: opts.topicToken,\n importAttributesKeyword: opts.importAttributesKeyword,\n };\n\n if (!process.env.BABEL_8_BREAKING) {\n format.decoratorsBeforeExport = opts.decoratorsBeforeExport;\n format.jsescOption.json = opts.jsonCompatibleStrings;\n }\n\n if (format.minified) {\n format.compact = true;\n\n format.shouldPrintComment =\n format.shouldPrintComment || (() => format.comments);\n } else {\n format.shouldPrintComment =\n format.shouldPrintComment ||\n (value =>\n format.comments ||\n value.includes(\"@license\") ||\n value.includes(\"@preserve\"));\n }\n\n if (format.compact === \"auto\") {\n format.compact = typeof code === \"string\" && code.length > 500_000; // 500KB\n\n if (format.compact) {\n console.error(\n \"[BABEL] Note: The code generator has deoptimised the styling of \" +\n `${opts.filename} as it exceeds the max of ${\"500KB\"}.`,\n );\n }\n }\n\n if (format.compact) {\n format.indent.adjustMultilineComment = false;\n }\n\n const { auxiliaryCommentBefore, auxiliaryCommentAfter, shouldPrintComment } =\n format;\n\n if (auxiliaryCommentBefore && !shouldPrintComment(auxiliaryCommentBefore)) {\n format.auxiliaryCommentBefore = undefined;\n }\n if (auxiliaryCommentAfter && !shouldPrintComment(auxiliaryCommentAfter)) {\n format.auxiliaryCommentAfter = undefined;\n }\n\n return format;\n}\n\nexport interface GeneratorOptions {\n /**\n * Optional string to add as a block comment at the start of the output file.\n */\n auxiliaryCommentBefore?: string;\n\n /**\n * Optional string to add as a block comment at the end of the output file.\n */\n auxiliaryCommentAfter?: string;\n\n /**\n * Function that takes a comment (as a string) and returns true if the comment should be included in the output.\n * By default, comments are included if `opts.comments` is `true` or if `opts.minified` is `false` and the comment\n * contains `@preserve` or `@license`.\n */\n shouldPrintComment?(comment: string): boolean;\n\n /**\n * Attempt to use the same line numbers in the output code as in the source code (helps preserve stack traces).\n * Defaults to `false`.\n */\n retainLines?: boolean;\n\n /**\n * Retain parens around function expressions (could be used to change engine parsing behavior)\n * Defaults to `false`.\n */\n retainFunctionParens?: boolean;\n\n /**\n * Should comments be included in output? Defaults to `true`.\n */\n comments?: boolean;\n\n /**\n * Set to true to avoid adding whitespace for formatting. Defaults to the value of `opts.minified`.\n */\n compact?: boolean | \"auto\";\n\n /**\n * Should the output be minified. Defaults to `false`.\n */\n minified?: boolean;\n\n /**\n * Set to true to reduce whitespace (but not as much as opts.compact). Defaults to `false`.\n */\n concise?: boolean;\n\n /**\n * Used in warning messages\n */\n filename?: string;\n\n /**\n * Enable generating source maps. Defaults to `false`.\n */\n sourceMaps?: boolean;\n\n inputSourceMap?: any;\n\n /**\n * A root for all relative URLs in the source map.\n */\n sourceRoot?: string;\n\n /**\n * The filename for the source code (i.e. the code in the `code` argument).\n * This will only be used if `code` is a string.\n */\n sourceFileName?: string;\n\n /**\n * Set to true to run jsesc with \"json\": true to print \"\\u00A9\" vs. \"©\";\n * @deprecated use `jsescOptions: { json: true }` instead\n */\n jsonCompatibleStrings?: boolean;\n\n /**\n * Set to true to enable support for experimental decorators syntax before\n * module exports. If not specified, decorators will be printed in the same\n * position as they were in the input source code.\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n\n /**\n * Options for outputting jsesc representation.\n */\n jsescOption?: jsescOptions;\n\n /**\n * For use with the recordAndTuple token.\n */\n recordAndTupleSyntaxType?: RecordAndTuplePluginOptions[\"syntaxType\"];\n\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: PipelineOperatorPluginOptions[\"topicToken\"];\n\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n}\n\nexport interface GeneratorResult {\n code: string;\n map: EncodedSourceMap | null;\n decodedMap: DecodedSourceMap | undefined;\n rawMappings: Mapping[] | undefined;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n /**\n * We originally exported the Generator class above, but to make it extra clear that it is a private API,\n * we have moved that to an internal class instance and simplified the interface to the two public methods\n * that we wish to support.\n */\n\n // eslint-disable-next-line no-restricted-globals\n exports.CodeGenerator = class CodeGenerator {\n private _ast: t.Node;\n private _format: Format | undefined;\n private _map: SourceMap | null;\n constructor(ast: t.Node, opts: GeneratorOptions = {}, code?: string) {\n this._ast = ast;\n this._format = normalizeOptions(code, opts);\n this._map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n }\n generate(): GeneratorResult {\n const printer = new Printer(this._format, this._map);\n\n return printer.generate(this._ast);\n }\n };\n}\n\n/**\n * Turns an AST into code, maintaining sourcemaps, user preferences, and valid output.\n * @param ast - the abstract syntax tree from which to generate output code.\n * @param opts - used for specifying options for code generation.\n * @param code - the original source code, used for source maps.\n * @returns - an object containing the output code and source map.\n */\nexport default function generate(\n ast: t.Node,\n opts: GeneratorOptions = {},\n code?: string | { [filename: string]: string },\n): GeneratorResult {\n const format = normalizeOptions(code, opts);\n const map = opts.sourceMaps ? new SourceMap(opts, code) : null;\n\n const printer = new Printer(format, map);\n\n return printer.generate(ast);\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/generator/lib/node/index.js b/node_modules/@babel/generator/lib/node/index.js index 70106ba0..385a7ad1 100644 --- a/node_modules/@babel/generator/lib/node/index.js +++ b/node_modules/@babel/generator/lib/node/index.js @@ -18,13 +18,13 @@ const { isNewExpression } = _t; function expandAliases(obj) { - const newObj = {}; + const map = new Map(); function add(type, func) { - const fn = newObj[type]; - newObj[type] = fn ? function (node, parent, stack) { - const result = fn(node, parent, stack); - return result == null ? func(node, parent, stack) : result; - } : func; + const fn = map.get(type); + map.set(type, fn ? function (node, parent, stack) { + var _fn; + return (_fn = fn(node, parent, stack)) != null ? _fn : func(node, parent, stack); + } : func); } for (const type of Object.keys(obj)) { const aliases = FLIPPED_ALIAS_KEYS[type]; @@ -36,14 +36,10 @@ function expandAliases(obj) { add(type, obj[type]); } } - return newObj; + return map; } const expandedParens = expandAliases(parens); const expandedWhitespaceNodes = expandAliases(whitespace.nodes); -function find(obj, node, parent, printStack) { - const fn = obj[node.type]; - return fn ? fn(node, parent, printStack) : null; -} function isOrHasCallExpression(node) { if (isCallExpression(node)) { return true; @@ -51,11 +47,12 @@ function isOrHasCallExpression(node) { return isMemberExpression(node) && isOrHasCallExpression(node.object); } function needsWhitespace(node, parent, type) { + var _expandedWhitespaceNo; if (!node) return false; if (isExpressionStatement(node)) { node = node.expression; } - const flag = find(expandedWhitespaceNodes, node, parent); + const flag = (_expandedWhitespaceNo = expandedWhitespaceNodes.get(node.type)) == null ? void 0 : _expandedWhitespaceNo(node, parent); if (typeof flag === "number") { return (flag & type) !== 0; } @@ -68,11 +65,12 @@ function needsWhitespaceAfter(node, parent) { return needsWhitespace(node, parent, 2); } function needsParens(node, parent, printStack) { + var _expandedParens$get; if (!parent) return false; if (isNewExpression(parent) && parent.callee === node) { if (isOrHasCallExpression(node)) return true; } - return find(expandedParens, node, parent, printStack); + return (_expandedParens$get = expandedParens.get(node.type)) == null ? void 0 : _expandedParens$get(node, parent, printStack); } //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/generator/lib/node/index.js.map b/node_modules/@babel/generator/lib/node/index.js.map index 0d5683f1..7a00e4ad 100644 --- a/node_modules/@babel/generator/lib/node/index.js.map +++ b/node_modules/@babel/generator/lib/node/index.js.map @@ -1 +1 @@ -{"version":3,"names":["whitespace","require","parens","_t","FLIPPED_ALIAS_KEYS","isCallExpression","isExpressionStatement","isMemberExpression","isNewExpression","expandAliases","obj","newObj","add","type","func","fn","node","parent","stack","result","Object","keys","aliases","alias","expandedParens","expandedWhitespaceNodes","nodes","find","printStack","isOrHasCallExpression","object","needsWhitespace","expression","flag","needsWhitespaceBefore","needsWhitespaceAfter","needsParens","callee"],"sources":["../../src/node/index.ts"],"sourcesContent":["import * as whitespace from \"./whitespace.ts\";\nimport * as parens from \"./parentheses.ts\";\nimport {\n FLIPPED_ALIAS_KEYS,\n isCallExpression,\n isExpressionStatement,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport type { WhitespaceFlag } from \"./whitespace.ts\";\n\nexport type NodeHandlers<R> = {\n [K in string]?: (\n node: K extends t.Node[\"type\"] ? Extract<t.Node, { type: K }> : t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract<typeof t[K], { type: \"string\" }>\n // : t.Node,\n parent: t.Node,\n stack: t.Node[],\n ) => R;\n};\n\nfunction expandAliases<R>(obj: NodeHandlers<R>) {\n const newObj: NodeHandlers<R> = {};\n\n function add(\n type: string,\n func: (node: t.Node, parent: t.Node, stack: t.Node[]) => R,\n ) {\n const fn = newObj[type];\n newObj[type] = fn\n ? function (node, parent, stack) {\n const result = fn(node, parent, stack);\n\n return result == null ? func(node, parent, stack) : result;\n }\n : func;\n }\n\n for (const type of Object.keys(obj)) {\n const aliases = FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n for (const alias of aliases) {\n add(alias, obj[type]);\n }\n } else {\n add(type, obj[type]);\n }\n }\n\n return newObj;\n}\n\n// Rather than using `t.is` on each object property, we pre-expand any type aliases\n// into concrete types so that the 'find' call below can be as fast as possible.\nconst expandedParens = expandAliases(parens);\nconst expandedWhitespaceNodes = expandAliases(whitespace.nodes);\n\nfunction find<R>(\n obj: NodeHandlers<R>,\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n): R | null {\n const fn = obj[node.type];\n return fn ? fn(node, parent, printStack) : null;\n}\n\nfunction isOrHasCallExpression(node: t.Node): boolean {\n if (isCallExpression(node)) {\n return true;\n }\n\n return isMemberExpression(node) && isOrHasCallExpression(node.object);\n}\n\nexport function needsWhitespace(\n node: t.Node,\n parent: t.Node,\n type: WhitespaceFlag,\n): boolean {\n if (!node) return false;\n\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n const flag = find(expandedWhitespaceNodes, node, parent);\n\n if (typeof flag === \"number\") {\n return (flag & type) !== 0;\n }\n\n return false;\n}\n\nexport function needsWhitespaceBefore(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 1);\n}\n\nexport function needsWhitespaceAfter(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 2);\n}\n\nexport function needsParens(\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n) {\n if (!parent) return false;\n\n if (isNewExpression(parent) && parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n\n return find(expandedParens, node, parent, printStack);\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["whitespace","require","parens","_t","FLIPPED_ALIAS_KEYS","isCallExpression","isExpressionStatement","isMemberExpression","isNewExpression","expandAliases","obj","map","Map","add","type","func","fn","get","set","node","parent","stack","_fn","Object","keys","aliases","alias","expandedParens","expandedWhitespaceNodes","nodes","isOrHasCallExpression","object","needsWhitespace","_expandedWhitespaceNo","expression","flag","needsWhitespaceBefore","needsWhitespaceAfter","needsParens","printStack","_expandedParens$get","callee"],"sources":["../../src/node/index.ts"],"sourcesContent":["import * as whitespace from \"./whitespace.ts\";\nimport * as parens from \"./parentheses.ts\";\nimport {\n FLIPPED_ALIAS_KEYS,\n isCallExpression,\n isExpressionStatement,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport type { WhitespaceFlag } from \"./whitespace.ts\";\n\ntype NodeHandler<R> = (\n node: t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract<typeof t[K], { type: \"string\" }>\n // : t.Node,\n parent: t.Node,\n stack?: t.Node[],\n) => R;\n\nexport type NodeHandlers<R> = {\n [K in string]?: NodeHandler<R>;\n};\n\nfunction expandAliases<R>(obj: NodeHandlers<R>) {\n const map = new Map<string, NodeHandler<R>>();\n\n function add(type: string, func: NodeHandler<R>) {\n const fn = map.get(type);\n map.set(\n type,\n fn\n ? function (node, parent, stack) {\n return fn(node, parent, stack) ?? func(node, parent, stack);\n }\n : func,\n );\n }\n\n for (const type of Object.keys(obj)) {\n const aliases = FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n for (const alias of aliases) {\n add(alias, obj[type]);\n }\n } else {\n add(type, obj[type]);\n }\n }\n\n return map;\n}\n\n// Rather than using `t.is` on each object property, we pre-expand any type aliases\n// into concrete types so that the 'find' call below can be as fast as possible.\nconst expandedParens = expandAliases(parens);\nconst expandedWhitespaceNodes = expandAliases(whitespace.nodes);\n\nfunction isOrHasCallExpression(node: t.Node): boolean {\n if (isCallExpression(node)) {\n return true;\n }\n\n return isMemberExpression(node) && isOrHasCallExpression(node.object);\n}\n\nexport function needsWhitespace(\n node: t.Node,\n parent: t.Node,\n type: WhitespaceFlag,\n): boolean {\n if (!node) return false;\n\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n const flag = expandedWhitespaceNodes.get(node.type)?.(node, parent);\n\n if (typeof flag === \"number\") {\n return (flag & type) !== 0;\n }\n\n return false;\n}\n\nexport function needsWhitespaceBefore(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 1);\n}\n\nexport function needsWhitespaceAfter(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 2);\n}\n\nexport function needsParens(\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n) {\n if (!parent) return false;\n\n if (isNewExpression(parent) && parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n\n return expandedParens.get(node.type)?.(node, parent, printStack);\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/generator/lib/node/parentheses.js b/node_modules/@babel/generator/lib/node/parentheses.js index 4656a67c..475e33ac 100644 --- a/node_modules/@babel/generator/lib/node/parentheses.js +++ b/node_modules/@babel/generator/lib/node/parentheses.js @@ -31,97 +31,35 @@ var _t = require("@babel/types"); const { isArrayTypeAnnotation, isArrowFunctionExpression, - isAssignmentExpression, - isAwaitExpression, - isBinary, isBinaryExpression, - isUpdateExpression, isCallExpression, - isClass, - isClassExpression, - isConditional, - isConditionalExpression, isExportDeclaration, - isExportDefaultDeclaration, - isExpressionStatement, - isFor, - isForInStatement, isForOfStatement, - isForStatement, - isFunctionExpression, - isIfStatement, isIndexedAccessType, - isIntersectionTypeAnnotation, - isLogicalExpression, isMemberExpression, - isNewExpression, - isNullableTypeAnnotation, isObjectPattern, - isOptionalCallExpression, isOptionalMemberExpression, - isReturnStatement, - isSequenceExpression, - isSwitchStatement, - isTSArrayType, - isTSAsExpression, - isTSInstantiationExpression, - isTSIntersectionType, - isTSNonNullExpression, - isTSOptionalType, - isTSRestType, - isTSTypeAssertion, - isTSUnionType, - isTaggedTemplateExpression, - isThrowStatement, - isTypeAnnotation, - isUnaryLike, - isUnionTypeAnnotation, - isVariableDeclarator, - isWhileStatement, - isYieldExpression, - isTSSatisfiesExpression + isYieldExpression } = _t; -const PRECEDENCE = { - "||": 0, - "??": 0, - "|>": 0, - "&&": 1, - "|": 2, - "^": 3, - "&": 4, - "==": 5, - "===": 5, - "!=": 5, - "!==": 5, - "<": 6, - ">": 6, - "<=": 6, - ">=": 6, - in: 6, - instanceof: 6, - ">>": 7, - "<<": 7, - ">>>": 7, - "+": 8, - "-": 8, - "*": 9, - "/": 9, - "%": 9, - "**": 10 -}; -function isTSTypeExpression(node) { - return isTSAsExpression(node) || isTSSatisfiesExpression(node) || isTSTypeAssertion(node); +const PRECEDENCE = new Map([["||", 0], ["??", 0], ["|>", 0], ["&&", 1], ["|", 2], ["^", 3], ["&", 4], ["==", 5], ["===", 5], ["!=", 5], ["!==", 5], ["<", 6], [">", 6], ["<=", 6], [">=", 6], ["in", 6], ["instanceof", 6], [">>", 7], ["<<", 7], [">>>", 7], ["+", 8], ["-", 8], ["*", 9], ["/", 9], ["%", 9], ["**", 10]]); +function isTSTypeExpression(nodeType) { + return nodeType === "TSAsExpression" || nodeType === "TSSatisfiesExpression" || nodeType === "TSTypeAssertion"; } -const isClassExtendsClause = (node, parent) => isClass(parent, { - superClass: node -}); -const hasPostfixPart = (node, parent) => (isMemberExpression(parent) || isOptionalMemberExpression(parent)) && parent.object === node || (isCallExpression(parent) || isOptionalCallExpression(parent) || isNewExpression(parent)) && parent.callee === node || isTaggedTemplateExpression(parent) && parent.tag === node || isTSNonNullExpression(parent); +const isClassExtendsClause = (node, parent) => { + const parentType = parent.type; + return (parentType === "ClassDeclaration" || parentType === "ClassExpression") && parent.superClass === node; +}; +const hasPostfixPart = (node, parent) => { + const parentType = parent.type; + return (parentType === "MemberExpression" || parentType === "OptionalMemberExpression") && parent.object === node || (parentType === "CallExpression" || parentType === "OptionalCallExpression" || parentType === "NewExpression") && parent.callee === node || parentType === "TaggedTemplateExpression" && parent.tag === node || parentType === "TSNonNullExpression"; +}; function NullableTypeAnnotation(node, parent) { return isArrayTypeAnnotation(parent); } function FunctionTypeAnnotation(node, parent, printStack) { if (printStack.length < 3) return; - return isUnionTypeAnnotation(parent) || isIntersectionTypeAnnotation(parent) || isArrayTypeAnnotation(parent) || isTypeAnnotation(parent) && isArrowFunctionExpression(printStack[printStack.length - 3]); + const parentType = parent.type; + return parentType === "UnionTypeAnnotation" || parentType === "IntersectionTypeAnnotation" || parentType === "ArrayTypeAnnotation" || parentType === "TypeAnnotation" && isArrowFunctionExpression(printStack[printStack.length - 3]); } function UpdateExpression(node, parent) { return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent); @@ -133,67 +71,70 @@ function DoExpression(node, parent, printStack) { return !node.async && isFirstInContext(printStack, 1); } function Binary(node, parent) { - if (node.operator === "**" && isBinaryExpression(parent, { - operator: "**" - })) { + const parentType = parent.type; + if (node.operator === "**" && parentType === "BinaryExpression" && parent.operator === "**") { return parent.left === node; } if (isClassExtendsClause(node, parent)) { return true; } - if (hasPostfixPart(node, parent) || isUnaryLike(parent) || isAwaitExpression(parent)) { + if (hasPostfixPart(node, parent) || parentType === "UnaryExpression" || parentType === "SpreadElement" || parentType === "AwaitExpression") { return true; } - if (isBinary(parent)) { - const parentOp = parent.operator; - const parentPos = PRECEDENCE[parentOp]; - const nodeOp = node.operator; - const nodePos = PRECEDENCE[nodeOp]; - if (parentPos === nodePos && parent.right === node && !isLogicalExpression(parent) || parentPos > nodePos) { + if (parentType === "BinaryExpression" || parentType === "LogicalExpression") { + const parentPos = PRECEDENCE.get(parent.operator); + const nodePos = PRECEDENCE.get(node.operator); + if (parentPos === nodePos && parent.right === node && parentType !== "LogicalExpression" || parentPos > nodePos) { return true; } } + return undefined; } function UnionTypeAnnotation(node, parent) { - return isArrayTypeAnnotation(parent) || isNullableTypeAnnotation(parent) || isIntersectionTypeAnnotation(parent) || isUnionTypeAnnotation(parent); + const parentType = parent.type; + return parentType === "ArrayTypeAnnotation" || parentType === "NullableTypeAnnotation" || parentType === "IntersectionTypeAnnotation" || parentType === "UnionTypeAnnotation"; } function OptionalIndexedAccessType(node, parent) { - return isIndexedAccessType(parent, { - objectType: node - }); + return isIndexedAccessType(parent) && parent.objectType === node; } function TSAsExpression() { return true; } function TSUnionType(node, parent) { - return isTSArrayType(parent) || isTSOptionalType(parent) || isTSIntersectionType(parent) || isTSUnionType(parent) || isTSRestType(parent); + const parentType = parent.type; + return parentType === "TSArrayType" || parentType === "TSOptionalType" || parentType === "TSIntersectionType" || parentType === "TSUnionType" || parentType === "TSRestType"; } function TSInferType(node, parent) { - return isTSArrayType(parent) || isTSOptionalType(parent); + const parentType = parent.type; + return parentType === "TSArrayType" || parentType === "TSOptionalType"; } function TSInstantiationExpression(node, parent) { - return (isCallExpression(parent) || isOptionalCallExpression(parent) || isNewExpression(parent) || isTSInstantiationExpression(parent)) && !!parent.typeParameters; + const parentType = parent.type; + return (parentType === "CallExpression" || parentType === "OptionalCallExpression" || parentType === "NewExpression" || parentType === "TSInstantiationExpression") && !!parent.typeParameters; } function BinaryExpression(node, parent) { - return node.operator === "in" && (isVariableDeclarator(parent) || isFor(parent)); + if (node.operator === "in") { + const parentType = parent.type; + return parentType === "VariableDeclarator" || parentType === "ForStatement" || parentType === "ForInStatement" || parentType === "ForOfStatement"; + } + return false; } function SequenceExpression(node, parent) { - if (isForStatement(parent) || isThrowStatement(parent) || isReturnStatement(parent) || isIfStatement(parent) && parent.test === node || isWhileStatement(parent) && parent.test === node || isForInStatement(parent) && parent.right === node || isSwitchStatement(parent) && parent.discriminant === node || isExpressionStatement(parent) && parent.expression === node) { + const parentType = parent.type; + if (parentType === "ForStatement" || parentType === "ThrowStatement" || parentType === "ReturnStatement" || parentType === "IfStatement" && parent.test === node || parentType === "WhileStatement" && parent.test === node || parentType === "ForInStatement" && parent.right === node || parentType === "SwitchStatement" && parent.discriminant === node || parentType === "ExpressionStatement" && parent.expression === node) { return false; } return true; } function YieldExpression(node, parent) { - return isBinary(parent) || isUnaryLike(parent) || hasPostfixPart(node, parent) || isAwaitExpression(parent) && isYieldExpression(node) || isConditionalExpression(parent) && node === parent.test || isClassExtendsClause(node, parent); + const parentType = parent.type; + return parentType === "BinaryExpression" || parentType === "LogicalExpression" || parentType === "UnaryExpression" || parentType === "SpreadElement" || hasPostfixPart(node, parent) || parentType === "AwaitExpression" && isYieldExpression(node) || parentType === "ConditionalExpression" && node === parent.test || isClassExtendsClause(node, parent); } function ClassExpression(node, parent, printStack) { return isFirstInContext(printStack, 1 | 4); } function UnaryLike(node, parent) { - return hasPostfixPart(node, parent) || isBinaryExpression(parent, { - operator: "**", - left: node - }) || isClassExtendsClause(node, parent); + return hasPostfixPart(node, parent) || isBinaryExpression(parent) && parent.operator === "**" && parent.left === node || isClassExtendsClause(node, parent); } function FunctionExpression(node, parent, printStack) { return isFirstInContext(printStack, 1 | 4); @@ -202,19 +143,14 @@ function ArrowFunctionExpression(node, parent) { return isExportDeclaration(parent) || ConditionalExpression(node, parent); } function ConditionalExpression(node, parent) { - if (isUnaryLike(parent) || isBinary(parent) || isConditionalExpression(parent, { - test: node - }) || isAwaitExpression(parent) || isTSTypeExpression(parent)) { + const parentType = parent.type; + if (parentType === "UnaryExpression" || parentType === "SpreadElement" || parentType === "BinaryExpression" || parentType === "LogicalExpression" || parentType === "ConditionalExpression" && parent.test === node || parentType === "AwaitExpression" || isTSTypeExpression(parentType)) { return true; } return UnaryLike(node, parent); } function OptionalMemberExpression(node, parent) { - return isCallExpression(parent, { - callee: node - }) || isMemberExpression(parent, { - object: node - }); + return isCallExpression(parent) && parent.callee === node || isMemberExpression(parent) && parent.object === node; } function AssignmentExpression(node, parent) { if (isObjectPattern(node.left)) { @@ -224,25 +160,26 @@ function AssignmentExpression(node, parent) { } } function LogicalExpression(node, parent) { - if (isTSTypeExpression(parent)) return true; + const parentType = parent.type; + if (isTSTypeExpression(parentType)) return true; + if (parentType !== "LogicalExpression") return false; switch (node.operator) { case "||": - if (!isLogicalExpression(parent)) return false; return parent.operator === "??" || parent.operator === "&&"; case "&&": - return isLogicalExpression(parent, { - operator: "??" - }); + return parent.operator === "??"; case "??": - return isLogicalExpression(parent) && parent.operator !== "??"; + return parent.operator !== "??"; } } function Identifier(node, parent, printStack) { var _node$extra; - if ((_node$extra = node.extra) != null && _node$extra.parenthesized && isAssignmentExpression(parent, { - left: node - }) && (isFunctionExpression(parent.right) || isClassExpression(parent.right)) && parent.right.id == null) { - return true; + const parentType = parent.type; + if ((_node$extra = node.extra) != null && _node$extra.parenthesized && parentType === "AssignmentExpression" && parent.left === node) { + const rightType = parent.right.type; + if ((rightType === "FunctionExpression" || rightType === "ClassExpression") && parent.right.id == null) { + return true; + } } if (node.name === "let") { const isFollowedByBracket = isMemberExpression(parent, { @@ -270,28 +207,11 @@ function isFirstInContext(printStack, checkParam) { i--; let parent = printStack[i]; while (i >= 0) { - if (expressionStatement && isExpressionStatement(parent, { - expression: node - }) || exportDefault && isExportDefaultDeclaration(parent, { - declaration: node - }) || arrowBody && isArrowFunctionExpression(parent, { - body: node - }) || forHead && isForStatement(parent, { - init: node - }) || forInHead && isForInStatement(parent, { - left: node - }) || forOfHead && isForOfStatement(parent, { - left: node - })) { + const parentType = parent.type; + if (expressionStatement && parentType === "ExpressionStatement" && parent.expression === node || exportDefault && parentType === "ExportDefaultDeclaration" && node === parent.declaration || arrowBody && parentType === "ArrowFunctionExpression" && parent.body === node || forHead && parentType === "ForStatement" && parent.init === node || forInHead && parentType === "ForInStatement" && parent.left === node || forOfHead && parentType === "ForOfStatement" && parent.left === node) { return true; } - if (i > 0 && (hasPostfixPart(node, parent) && !isNewExpression(parent) || isSequenceExpression(parent) && parent.expressions[0] === node || isUpdateExpression(parent) && !parent.prefix || isConditional(parent, { - test: node - }) || isBinary(parent, { - left: node - }) || isAssignmentExpression(parent, { - left: node - }))) { + if (i > 0 && (hasPostfixPart(node, parent) && parentType !== "NewExpression" || parentType === "SequenceExpression" && parent.expressions[0] === node || parentType === "UpdateExpression" && !parent.prefix || parentType === "ConditionalExpression" && parent.test === node || (parentType === "BinaryExpression" || parentType === "LogicalExpression") && parent.left === node || parentType === "AssignmentExpression" && parent.left === node)) { node = parent; i--; parent = printStack[i]; diff --git a/node_modules/@babel/generator/lib/node/parentheses.js.map b/node_modules/@babel/generator/lib/node/parentheses.js.map index b300fc57..eb1d44e0 100644 --- a/node_modules/@babel/generator/lib/node/parentheses.js.map +++ b/node_modules/@babel/generator/lib/node/parentheses.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","isArrayTypeAnnotation","isArrowFunctionExpression","isAssignmentExpression","isAwaitExpression","isBinary","isBinaryExpression","isUpdateExpression","isCallExpression","isClass","isClassExpression","isConditional","isConditionalExpression","isExportDeclaration","isExportDefaultDeclaration","isExpressionStatement","isFor","isForInStatement","isForOfStatement","isForStatement","isFunctionExpression","isIfStatement","isIndexedAccessType","isIntersectionTypeAnnotation","isLogicalExpression","isMemberExpression","isNewExpression","isNullableTypeAnnotation","isObjectPattern","isOptionalCallExpression","isOptionalMemberExpression","isReturnStatement","isSequenceExpression","isSwitchStatement","isTSArrayType","isTSAsExpression","isTSInstantiationExpression","isTSIntersectionType","isTSNonNullExpression","isTSOptionalType","isTSRestType","isTSTypeAssertion","isTSUnionType","isTaggedTemplateExpression","isThrowStatement","isTypeAnnotation","isUnaryLike","isUnionTypeAnnotation","isVariableDeclarator","isWhileStatement","isYieldExpression","isTSSatisfiesExpression","PRECEDENCE","in","instanceof","isTSTypeExpression","node","isClassExtendsClause","parent","superClass","hasPostfixPart","object","callee","tag","NullableTypeAnnotation","FunctionTypeAnnotation","printStack","length","UpdateExpression","ObjectExpression","isFirstInContext","DoExpression","async","Binary","operator","left","parentOp","parentPos","nodeOp","nodePos","right","UnionTypeAnnotation","OptionalIndexedAccessType","objectType","TSAsExpression","TSUnionType","TSInferType","TSInstantiationExpression","typeParameters","BinaryExpression","SequenceExpression","test","discriminant","expression","YieldExpression","ClassExpression","UnaryLike","FunctionExpression","ArrowFunctionExpression","ConditionalExpression","OptionalMemberExpression","AssignmentExpression","LogicalExpression","Identifier","_node$extra","extra","parenthesized","id","name","isFollowedByBracket","computed","optional","checkParam","expressionStatement","arrowBody","exportDefault","forHead","forInHead","forOfHead","i","declaration","body","init","expressions","prefix"],"sources":["../../src/node/parentheses.ts"],"sourcesContent":["import {\n isArrayTypeAnnotation,\n isArrowFunctionExpression,\n isAssignmentExpression,\n isAwaitExpression,\n isBinary,\n isBinaryExpression,\n isUpdateExpression,\n isCallExpression,\n isClass,\n isClassExpression,\n isConditional,\n isConditionalExpression,\n isExportDeclaration,\n isExportDefaultDeclaration,\n isExpressionStatement,\n isFor,\n isForInStatement,\n isForOfStatement,\n isForStatement,\n isFunctionExpression,\n isIfStatement,\n isIndexedAccessType,\n isIntersectionTypeAnnotation,\n isLogicalExpression,\n isMemberExpression,\n isNewExpression,\n isNullableTypeAnnotation,\n isObjectPattern,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isReturnStatement,\n isSequenceExpression,\n isSwitchStatement,\n isTSArrayType,\n isTSAsExpression,\n isTSInstantiationExpression,\n isTSIntersectionType,\n isTSNonNullExpression,\n isTSOptionalType,\n isTSRestType,\n isTSTypeAssertion,\n isTSUnionType,\n isTaggedTemplateExpression,\n isThrowStatement,\n isTypeAnnotation,\n isUnaryLike,\n isUnionTypeAnnotation,\n isVariableDeclarator,\n isWhileStatement,\n isYieldExpression,\n isTSSatisfiesExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nconst PRECEDENCE = {\n \"||\": 0,\n \"??\": 0,\n \"|>\": 0,\n \"&&\": 1,\n \"|\": 2,\n \"^\": 3,\n \"&\": 4,\n \"==\": 5,\n \"===\": 5,\n \"!=\": 5,\n \"!==\": 5,\n \"<\": 6,\n \">\": 6,\n \"<=\": 6,\n \">=\": 6,\n in: 6,\n instanceof: 6,\n \">>\": 7,\n \"<<\": 7,\n \">>>\": 7,\n \"+\": 8,\n \"-\": 8,\n \"*\": 9,\n \"/\": 9,\n \"%\": 9,\n \"**\": 10,\n};\n\nconst enum CheckParam {\n expressionStatement = 1 << 0,\n arrowBody = 1 << 1,\n exportDefault = 1 << 2,\n forHead = 1 << 3,\n forInHead = 1 << 4,\n forOfHead = 1 << 5,\n}\n\nfunction isTSTypeExpression(node: t.Node) {\n return (\n isTSAsExpression(node) ||\n isTSSatisfiesExpression(node) ||\n isTSTypeAssertion(node)\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: t.Node,\n): parent is t.Class => isClass(parent, { superClass: node });\n\nconst hasPostfixPart = (node: t.Node, parent: t.Node) =>\n ((isMemberExpression(parent) || isOptionalMemberExpression(parent)) &&\n parent.object === node) ||\n ((isCallExpression(parent) ||\n isOptionalCallExpression(parent) ||\n isNewExpression(parent)) &&\n parent.callee === node) ||\n (isTaggedTemplateExpression(parent) && parent.tag === node) ||\n isTSNonNullExpression(parent);\n\nexport function NullableTypeAnnotation(\n node: t.NullableTypeAnnotation,\n parent: t.Node,\n): boolean {\n return isArrayTypeAnnotation(parent);\n}\n\nexport function FunctionTypeAnnotation(\n node: t.FunctionTypeAnnotation,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n if (printStack.length < 3) return;\n\n return (\n // (() => A) | (() => B)\n isUnionTypeAnnotation(parent) ||\n // (() => A) & (() => B)\n isIntersectionTypeAnnotation(parent) ||\n // (() => A)[]\n isArrayTypeAnnotation(parent) ||\n // <T>(A: T): (T => T[]) => B => [A, B]\n (isTypeAnnotation(parent) &&\n // Check grandparent\n isArrowFunctionExpression(printStack[printStack.length - 3]))\n );\n}\n\nexport function UpdateExpression(\n node: t.UpdateExpression,\n parent: t.Node,\n): boolean {\n return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent);\n}\n\nexport function ObjectExpression(\n node: t.ObjectExpression,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.arrowBody,\n );\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n // `async do` can start an expression statement\n return (\n !node.async && isFirstInContext(printStack, CheckParam.expressionStatement)\n );\n}\n\nexport function Binary(node: t.BinaryExpression, parent: t.Node): boolean {\n if (\n node.operator === \"**\" &&\n isBinaryExpression(parent, { operator: \"**\" })\n ) {\n return parent.left === node;\n }\n\n if (isClassExtendsClause(node, parent)) {\n return true;\n }\n\n if (\n hasPostfixPart(node, parent) ||\n isUnaryLike(parent) ||\n isAwaitExpression(parent)\n ) {\n return true;\n }\n\n if (isBinary(parent)) {\n const parentOp = parent.operator;\n const parentPos = PRECEDENCE[parentOp];\n\n const nodeOp = node.operator;\n const nodePos = PRECEDENCE[nodeOp];\n\n if (\n // Logical expressions with the same precedence don't need parens.\n (parentPos === nodePos &&\n parent.right === node &&\n !isLogicalExpression(parent)) ||\n parentPos > nodePos\n ) {\n return true;\n }\n }\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation,\n parent: t.Node,\n): boolean {\n return (\n isArrayTypeAnnotation(parent) ||\n isNullableTypeAnnotation(parent) ||\n isIntersectionTypeAnnotation(parent) ||\n isUnionTypeAnnotation(parent)\n );\n}\n\nexport { UnionTypeAnnotation as IntersectionTypeAnnotation };\n\nexport function OptionalIndexedAccessType(\n node: t.OptionalIndexedAccessType,\n parent: t.Node,\n): boolean {\n return isIndexedAccessType(parent, { objectType: node });\n}\n\nexport function TSAsExpression() {\n return true;\n}\n\nexport {\n TSAsExpression as TSSatisfiesExpression,\n TSAsExpression as TSTypeAssertion,\n};\n\nexport function TSUnionType(node: t.TSUnionType, parent: t.Node): boolean {\n return (\n isTSArrayType(parent) ||\n isTSOptionalType(parent) ||\n isTSIntersectionType(parent) ||\n isTSUnionType(parent) ||\n isTSRestType(parent)\n );\n}\n\nexport { TSUnionType as TSIntersectionType };\n\nexport function TSInferType(node: t.TSInferType, parent: t.Node): boolean {\n return isTSArrayType(parent) || isTSOptionalType(parent);\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: t.Node,\n) {\n return (\n (isCallExpression(parent) ||\n isOptionalCallExpression(parent) ||\n isNewExpression(parent) ||\n isTSInstantiationExpression(parent)) &&\n !!parent.typeParameters\n );\n}\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: t.Node,\n): boolean {\n // let i = (1 in []);\n // for ((1 in []);;);\n return (\n node.operator === \"in\" && (isVariableDeclarator(parent) || isFor(parent))\n );\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: t.Node,\n): boolean {\n if (\n // Although parentheses wouldn't hurt around sequence\n // expressions in the head of for loops, traditional style\n // dictates that e.g. i++, j++ should not be wrapped with\n // parentheses.\n isForStatement(parent) ||\n isThrowStatement(parent) ||\n isReturnStatement(parent) ||\n (isIfStatement(parent) && parent.test === node) ||\n (isWhileStatement(parent) && parent.test === node) ||\n (isForInStatement(parent) && parent.right === node) ||\n (isSwitchStatement(parent) && parent.discriminant === node) ||\n (isExpressionStatement(parent) && parent.expression === node)\n ) {\n return false;\n }\n\n // Otherwise err on the side of overparenthesization, adding\n // explicit exceptions above if this proves overzealous.\n return true;\n}\n\nexport function YieldExpression(\n node: t.YieldExpression,\n parent: t.Node,\n): boolean {\n return (\n isBinary(parent) ||\n isUnaryLike(parent) ||\n hasPostfixPart(node, parent) ||\n (isAwaitExpression(parent) && isYieldExpression(node)) ||\n (isConditionalExpression(parent) && node === parent.test) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.exportDefault,\n );\n}\n\nexport function UnaryLike(\n node:\n | t.UnaryLike\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n return (\n hasPostfixPart(node, parent) ||\n isBinaryExpression(parent, { operator: \"**\", left: node }) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.exportDefault,\n );\n}\n\nexport function ArrowFunctionExpression(\n node: t.ArrowFunctionExpression,\n parent: t.Node,\n): boolean {\n return isExportDeclaration(parent) || ConditionalExpression(node, parent);\n}\n\nexport function ConditionalExpression(\n node:\n | t.ConditionalExpression\n | t.ArrowFunctionExpression\n | t.AssignmentExpression,\n parent?: t.Node,\n): boolean {\n if (\n isUnaryLike(parent) ||\n isBinary(parent) ||\n isConditionalExpression(parent, { test: node }) ||\n isAwaitExpression(parent) ||\n isTSTypeExpression(parent)\n ) {\n return true;\n }\n\n return UnaryLike(node, parent);\n}\n\nexport function OptionalMemberExpression(\n node: t.OptionalMemberExpression,\n parent: t.Node,\n): boolean {\n return (\n isCallExpression(parent, { callee: node }) ||\n isMemberExpression(parent, { object: node })\n );\n}\n\nexport { OptionalMemberExpression as OptionalCallExpression };\n\nexport function AssignmentExpression(\n node: t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n if (isObjectPattern(node.left)) {\n return true;\n } else {\n return ConditionalExpression(node, parent);\n }\n}\n\nexport function LogicalExpression(\n node: t.LogicalExpression,\n parent: t.Node,\n): boolean {\n if (isTSTypeExpression(parent)) return true;\n switch (node.operator) {\n case \"||\":\n if (!isLogicalExpression(parent)) return false;\n return parent.operator === \"??\" || parent.operator === \"&&\";\n case \"&&\":\n return isLogicalExpression(parent, { operator: \"??\" });\n case \"??\":\n return isLogicalExpression(parent) && parent.operator !== \"??\";\n }\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n node.extra?.parenthesized &&\n isAssignmentExpression(parent, { left: node }) &&\n (isFunctionExpression(parent.right) || isClassExpression(parent.right)) &&\n parent.right.id == null\n ) {\n return true;\n }\n // Non-strict code allows the identifier `let`, but it cannot occur as-is in\n // certain contexts to avoid ambiguity with contextual keyword `let`.\n if (node.name === \"let\") {\n // Some contexts only forbid `let [`, so check if the next token would\n // be the left bracket of a computed member expression.\n const isFollowedByBracket =\n isMemberExpression(parent, {\n object: node,\n computed: true,\n }) ||\n isOptionalMemberExpression(parent, {\n object: node,\n computed: true,\n optional: false,\n });\n return isFirstInContext(\n printStack,\n isFollowedByBracket\n ? CheckParam.expressionStatement |\n CheckParam.forHead |\n CheckParam.forInHead |\n CheckParam.forOfHead\n : CheckParam.forOfHead,\n );\n }\n\n // ECMAScript specifically forbids a for-of loop from starting with the\n // token sequence `for (async of`, because it would be ambiguous with\n // `for (async of => {};;)`, so we need to add extra parentheses.\n //\n // If the parent is a for-await-of loop (i.e. parent.await === true), the\n // parentheses aren't strictly needed, but we add them anyway because\n // some tools (including earlier Babel versions) can't parse\n // `for await (async of [])` without them.\n return (\n node.name === \"async\" && isForOfStatement(parent) && node === parent.left\n );\n}\n\n// Walk up the print stack to determine if our node can come first\n// in a particular context.\nfunction isFirstInContext(\n printStack: Array<t.Node>,\n checkParam: CheckParam,\n): boolean {\n const expressionStatement = checkParam & CheckParam.expressionStatement;\n const arrowBody = checkParam & CheckParam.arrowBody;\n const exportDefault = checkParam & CheckParam.exportDefault;\n const forHead = checkParam & CheckParam.forHead;\n const forInHead = checkParam & CheckParam.forInHead;\n const forOfHead = checkParam & CheckParam.forOfHead;\n\n let i = printStack.length - 1;\n if (i <= 0) return;\n let node = printStack[i];\n i--;\n let parent = printStack[i];\n while (i >= 0) {\n if (\n (expressionStatement &&\n isExpressionStatement(parent, { expression: node })) ||\n (exportDefault &&\n isExportDefaultDeclaration(parent, { declaration: node })) ||\n (arrowBody && isArrowFunctionExpression(parent, { body: node })) ||\n (forHead && isForStatement(parent, { init: node })) ||\n (forInHead && isForInStatement(parent, { left: node })) ||\n (forOfHead && isForOfStatement(parent, { left: node }))\n ) {\n return true;\n }\n\n if (\n i > 0 &&\n ((hasPostfixPart(node, parent) && !isNewExpression(parent)) ||\n (isSequenceExpression(parent) && parent.expressions[0] === node) ||\n (isUpdateExpression(parent) && !parent.prefix) ||\n isConditional(parent, { test: node }) ||\n isBinary(parent, { left: node }) ||\n isAssignmentExpression(parent, { left: node }))\n ) {\n node = parent;\n i--;\n parent = printStack[i];\n } else {\n return false;\n }\n }\n\n return false;\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_t","require","isArrayTypeAnnotation","isArrowFunctionExpression","isBinaryExpression","isCallExpression","isExportDeclaration","isForOfStatement","isIndexedAccessType","isMemberExpression","isObjectPattern","isOptionalMemberExpression","isYieldExpression","PRECEDENCE","Map","isTSTypeExpression","nodeType","isClassExtendsClause","node","parent","parentType","type","superClass","hasPostfixPart","object","callee","tag","NullableTypeAnnotation","FunctionTypeAnnotation","printStack","length","UpdateExpression","ObjectExpression","isFirstInContext","DoExpression","async","Binary","operator","left","parentPos","get","nodePos","right","undefined","UnionTypeAnnotation","OptionalIndexedAccessType","objectType","TSAsExpression","TSUnionType","TSInferType","TSInstantiationExpression","typeParameters","BinaryExpression","SequenceExpression","test","discriminant","expression","YieldExpression","ClassExpression","UnaryLike","FunctionExpression","ArrowFunctionExpression","ConditionalExpression","OptionalMemberExpression","AssignmentExpression","LogicalExpression","Identifier","_node$extra","extra","parenthesized","rightType","id","name","isFollowedByBracket","computed","optional","checkParam","expressionStatement","arrowBody","exportDefault","forHead","forInHead","forOfHead","i","declaration","body","init","expressions","prefix"],"sources":["../../src/node/parentheses.ts"],"sourcesContent":["import {\n isArrayTypeAnnotation,\n isArrowFunctionExpression,\n isBinaryExpression,\n isCallExpression,\n isExportDeclaration,\n isForOfStatement,\n isIndexedAccessType,\n isMemberExpression,\n isObjectPattern,\n isOptionalMemberExpression,\n isYieldExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nconst PRECEDENCE = new Map([\n [\"||\", 0],\n [\"??\", 0],\n [\"|>\", 0],\n [\"&&\", 1],\n [\"|\", 2],\n [\"^\", 3],\n [\"&\", 4],\n [\"==\", 5],\n [\"===\", 5],\n [\"!=\", 5],\n [\"!==\", 5],\n [\"<\", 6],\n [\">\", 6],\n [\"<=\", 6],\n [\">=\", 6],\n [\"in\", 6],\n [\"instanceof\", 6],\n [\">>\", 7],\n [\"<<\", 7],\n [\">>>\", 7],\n [\"+\", 8],\n [\"-\", 8],\n [\"*\", 9],\n [\"/\", 9],\n [\"%\", 9],\n [\"**\", 10],\n]);\n\nconst enum CheckParam {\n expressionStatement = 1 << 0,\n arrowBody = 1 << 1,\n exportDefault = 1 << 2,\n forHead = 1 << 3,\n forInHead = 1 << 4,\n forOfHead = 1 << 5,\n}\n\nfunction isTSTypeExpression(nodeType: string) {\n return (\n nodeType === \"TSAsExpression\" ||\n nodeType === \"TSSatisfiesExpression\" ||\n nodeType === \"TSTypeAssertion\"\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: t.Node,\n): parent is t.Class => {\n const parentType = parent.type;\n return (\n (parentType === \"ClassDeclaration\" || parentType === \"ClassExpression\") &&\n parent.superClass === node\n );\n};\n\nconst hasPostfixPart = (node: t.Node, parent: t.Node) => {\n const parentType = parent.type;\n return (\n ((parentType === \"MemberExpression\" ||\n parentType === \"OptionalMemberExpression\") &&\n parent.object === node) ||\n ((parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\") &&\n parent.callee === node) ||\n (parentType === \"TaggedTemplateExpression\" && parent.tag === node) ||\n parentType === \"TSNonNullExpression\"\n );\n};\n\nexport function NullableTypeAnnotation(\n node: t.NullableTypeAnnotation,\n parent: t.Node,\n): boolean {\n return isArrayTypeAnnotation(parent);\n}\n\nexport function FunctionTypeAnnotation(\n node: t.FunctionTypeAnnotation,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n if (printStack.length < 3) return;\n\n const parentType = parent.type;\n return (\n // (() => A) | (() => B)\n parentType === \"UnionTypeAnnotation\" ||\n // (() => A) & (() => B)\n parentType === \"IntersectionTypeAnnotation\" ||\n // (() => A)[]\n parentType === \"ArrayTypeAnnotation\" ||\n // <T>(A: T): (T => T[]) => B => [A, B]\n (parentType === \"TypeAnnotation\" &&\n // Check grandparent\n isArrowFunctionExpression(printStack[printStack.length - 3]))\n );\n}\n\nexport function UpdateExpression(\n node: t.UpdateExpression,\n parent: t.Node,\n): boolean {\n return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent);\n}\n\nexport function ObjectExpression(\n node: t.ObjectExpression,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.arrowBody,\n );\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n // `async do` can start an expression statement\n return (\n !node.async && isFirstInContext(printStack, CheckParam.expressionStatement)\n );\n}\n\nexport function Binary(\n node: t.BinaryExpression,\n parent: t.Node,\n): boolean | undefined {\n const parentType = parent.type;\n if (\n node.operator === \"**\" &&\n parentType === \"BinaryExpression\" &&\n parent.operator === \"**\"\n ) {\n return parent.left === node;\n }\n\n if (isClassExtendsClause(node, parent)) {\n return true;\n }\n\n if (\n hasPostfixPart(node, parent) ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"AwaitExpression\"\n ) {\n return true;\n }\n\n if (parentType === \"BinaryExpression\" || parentType === \"LogicalExpression\") {\n const parentPos = PRECEDENCE.get(parent.operator);\n const nodePos = PRECEDENCE.get(node.operator);\n\n if (\n // Logical expressions with the same precedence don't need parens.\n (parentPos === nodePos &&\n parent.right === node &&\n parentType !== \"LogicalExpression\") ||\n parentPos > nodePos\n ) {\n return true;\n }\n }\n\n return undefined;\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"ArrayTypeAnnotation\" ||\n parentType === \"NullableTypeAnnotation\" ||\n parentType === \"IntersectionTypeAnnotation\" ||\n parentType === \"UnionTypeAnnotation\"\n );\n}\n\nexport { UnionTypeAnnotation as IntersectionTypeAnnotation };\n\nexport function OptionalIndexedAccessType(\n node: t.OptionalIndexedAccessType,\n parent: t.Node,\n): boolean {\n return isIndexedAccessType(parent) && parent.objectType === node;\n}\n\nexport function TSAsExpression() {\n return true;\n}\n\nexport {\n TSAsExpression as TSSatisfiesExpression,\n TSAsExpression as TSTypeAssertion,\n};\n\nexport function TSUnionType(node: t.TSUnionType, parent: t.Node): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSArrayType\" ||\n parentType === \"TSOptionalType\" ||\n parentType === \"TSIntersectionType\" ||\n parentType === \"TSUnionType\" ||\n parentType === \"TSRestType\"\n );\n}\n\nexport { TSUnionType as TSIntersectionType };\n\nexport function TSInferType(node: t.TSInferType, parent: t.Node): boolean {\n const parentType = parent.type;\n return parentType === \"TSArrayType\" || parentType === \"TSOptionalType\";\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: t.Node,\n) {\n const parentType = parent.type;\n return (\n (parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\" ||\n parentType === \"TSInstantiationExpression\") &&\n !!parent.typeParameters\n );\n}\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: t.Node,\n): boolean {\n // let i = (1 in []);\n // for ((1 in []);;);\n if (node.operator === \"in\") {\n const parentType = parent.type;\n return (\n parentType === \"VariableDeclarator\" ||\n parentType === \"ForStatement\" ||\n parentType === \"ForInStatement\" ||\n parentType === \"ForOfStatement\"\n );\n }\n return false;\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n // Although parentheses wouldn't hurt around sequence\n // expressions in the head of for loops, traditional style\n // dictates that e.g. i++, j++ should not be wrapped with\n // parentheses.\n parentType === \"ForStatement\" ||\n parentType === \"ThrowStatement\" ||\n parentType === \"ReturnStatement\" ||\n (parentType === \"IfStatement\" && parent.test === node) ||\n (parentType === \"WhileStatement\" && parent.test === node) ||\n (parentType === \"ForInStatement\" && parent.right === node) ||\n (parentType === \"SwitchStatement\" && parent.discriminant === node) ||\n (parentType === \"ExpressionStatement\" && parent.expression === node)\n ) {\n return false;\n }\n\n // Otherwise err on the side of overparenthesization, adding\n // explicit exceptions above if this proves overzealous.\n return true;\n}\n\nexport function YieldExpression(\n node: t.YieldExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n hasPostfixPart(node, parent) ||\n (parentType === \"AwaitExpression\" && isYieldExpression(node)) ||\n (parentType === \"ConditionalExpression\" && node === parent.test) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.exportDefault,\n );\n}\n\nexport function UnaryLike(\n node:\n | t.UnaryLike\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n return (\n hasPostfixPart(node, parent) ||\n (isBinaryExpression(parent) &&\n parent.operator === \"**\" &&\n parent.left === node) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.exportDefault,\n );\n}\n\nexport function ArrowFunctionExpression(\n node: t.ArrowFunctionExpression,\n parent: t.Node,\n): boolean {\n return isExportDeclaration(parent) || ConditionalExpression(node, parent);\n}\n\nexport function ConditionalExpression(\n node:\n | t.ConditionalExpression\n | t.ArrowFunctionExpression\n | t.AssignmentExpression,\n parent?: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n (parentType === \"ConditionalExpression\" && parent.test === node) ||\n parentType === \"AwaitExpression\" ||\n isTSTypeExpression(parentType)\n ) {\n return true;\n }\n\n return UnaryLike(node, parent);\n}\n\nexport function OptionalMemberExpression(\n node: t.OptionalMemberExpression,\n parent: t.Node,\n): boolean {\n return (\n (isCallExpression(parent) && parent.callee === node) ||\n (isMemberExpression(parent) && parent.object === node)\n );\n}\n\nexport { OptionalMemberExpression as OptionalCallExpression };\n\nexport function AssignmentExpression(\n node: t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n if (isObjectPattern(node.left)) {\n return true;\n } else {\n return ConditionalExpression(node, parent);\n }\n}\n\nexport function LogicalExpression(\n node: t.LogicalExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (isTSTypeExpression(parentType)) return true;\n if (parentType !== \"LogicalExpression\") return false;\n switch (node.operator) {\n case \"||\":\n return parent.operator === \"??\" || parent.operator === \"&&\";\n case \"&&\":\n return parent.operator === \"??\";\n case \"??\":\n return parent.operator !== \"??\";\n }\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: t.Node,\n printStack: Array<t.Node>,\n): boolean {\n const parentType = parent.type;\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n node.extra?.parenthesized &&\n parentType === \"AssignmentExpression\" &&\n parent.left === node\n ) {\n const rightType = parent.right.type;\n if (\n (rightType === \"FunctionExpression\" || rightType === \"ClassExpression\") &&\n parent.right.id == null\n ) {\n return true;\n }\n }\n // Non-strict code allows the identifier `let`, but it cannot occur as-is in\n // certain contexts to avoid ambiguity with contextual keyword `let`.\n if (node.name === \"let\") {\n // Some contexts only forbid `let [`, so check if the next token would\n // be the left bracket of a computed member expression.\n const isFollowedByBracket =\n isMemberExpression(parent, {\n object: node,\n computed: true,\n }) ||\n isOptionalMemberExpression(parent, {\n object: node,\n computed: true,\n optional: false,\n });\n return isFirstInContext(\n printStack,\n isFollowedByBracket\n ? CheckParam.expressionStatement |\n CheckParam.forHead |\n CheckParam.forInHead |\n CheckParam.forOfHead\n : CheckParam.forOfHead,\n );\n }\n\n // ECMAScript specifically forbids a for-of loop from starting with the\n // token sequence `for (async of`, because it would be ambiguous with\n // `for (async of => {};;)`, so we need to add extra parentheses.\n //\n // If the parent is a for-await-of loop (i.e. parent.await === true), the\n // parentheses aren't strictly needed, but we add them anyway because\n // some tools (including earlier Babel versions) can't parse\n // `for await (async of [])` without them.\n return (\n node.name === \"async\" && isForOfStatement(parent) && node === parent.left\n );\n}\n\n// Walk up the print stack to determine if our node can come first\n// in a particular context.\nfunction isFirstInContext(\n printStack: Array<t.Node>,\n checkParam: CheckParam,\n): boolean {\n const expressionStatement = checkParam & CheckParam.expressionStatement;\n const arrowBody = checkParam & CheckParam.arrowBody;\n const exportDefault = checkParam & CheckParam.exportDefault;\n const forHead = checkParam & CheckParam.forHead;\n const forInHead = checkParam & CheckParam.forInHead;\n const forOfHead = checkParam & CheckParam.forOfHead;\n\n let i = printStack.length - 1;\n if (i <= 0) return;\n let node = printStack[i];\n i--;\n let parent = printStack[i];\n while (i >= 0) {\n const parentType = parent.type;\n if (\n (expressionStatement &&\n parentType === \"ExpressionStatement\" &&\n parent.expression === node) ||\n (exportDefault &&\n parentType === \"ExportDefaultDeclaration\" &&\n node === parent.declaration) ||\n (arrowBody &&\n parentType === \"ArrowFunctionExpression\" &&\n parent.body === node) ||\n (forHead && parentType === \"ForStatement\" && parent.init === node) ||\n (forInHead && parentType === \"ForInStatement\" && parent.left === node) ||\n (forOfHead && parentType === \"ForOfStatement\" && parent.left === node)\n ) {\n return true;\n }\n\n if (\n i > 0 &&\n ((hasPostfixPart(node, parent) && parentType !== \"NewExpression\") ||\n (parentType === \"SequenceExpression\" &&\n parent.expressions[0] === node) ||\n (parentType === \"UpdateExpression\" && !parent.prefix) ||\n (parentType === \"ConditionalExpression\" && parent.test === node) ||\n ((parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\") &&\n parent.left === node) ||\n (parentType === \"AssignmentExpression\" && parent.left === node))\n ) {\n node = parent;\n i--;\n parent = printStack[i];\n } else {\n return false;\n }\n }\n\n return false;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/generator/lib/node/whitespace.js b/node_modules/@babel/generator/lib/node/whitespace.js index 17daf359..181b9566 100644 --- a/node_modules/@babel/generator/lib/node/whitespace.js +++ b/node_modules/@babel/generator/lib/node/whitespace.js @@ -63,7 +63,7 @@ function isHelper(node) { function isType(node) { return isLiteral(node) || isObjectExpression(node) || isArrayExpression(node) || isIdentifier(node) || isMemberExpression(node); } -const nodes = { +const nodes = exports.nodes = { AssignmentExpression(node) { const state = crawl(node.right); if (state.hasCall && state.hasHelper || state.hasFunction) { @@ -112,7 +112,6 @@ const nodes = { } } }; -exports.nodes = nodes; nodes.ObjectProperty = nodes.ObjectTypeProperty = nodes.ObjectMethod = function (node, parent) { if (parent.properties[0] === node) { return 1; diff --git a/node_modules/@babel/generator/lib/node/whitespace.js.map b/node_modules/@babel/generator/lib/node/whitespace.js.map index 453ec99f..1c39f591 100644 --- a/node_modules/@babel/generator/lib/node/whitespace.js.map +++ b/node_modules/@babel/generator/lib/node/whitespace.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","FLIPPED_ALIAS_KEYS","isArrayExpression","isAssignmentExpression","isBinary","isBlockStatement","isCallExpression","isFunction","isIdentifier","isLiteral","isMemberExpression","isObjectExpression","isOptionalCallExpression","isOptionalMemberExpression","isStringLiteral","crawlInternal","node","state","object","computed","property","left","right","hasCall","callee","hasFunction","hasHelper","isHelper","crawl","name","charCodeAt","isType","nodes","AssignmentExpression","SwitchCase","parent","consequent","length","cases","LogicalExpression","Literal","value","CallExpression","OptionalCallExpression","VariableDeclaration","i","declarations","declar","enabled","id","init","IfStatement","exports","ObjectProperty","ObjectTypeProperty","ObjectMethod","properties","ObjectTypeCallProperty","_parent$properties","callProperties","ObjectTypeIndexer","_parent$properties2","_parent$callPropertie","indexers","ObjectTypeInternalSlot","_parent$properties3","_parent$callPropertie2","_parent$indexers","internalSlots","forEach","type","amounts","concat","ret"],"sources":["../../src/node/whitespace.ts"],"sourcesContent":["import {\n FLIPPED_ALIAS_KEYS,\n isArrayExpression,\n isAssignmentExpression,\n isBinary,\n isBlockStatement,\n isCallExpression,\n isFunction,\n isIdentifier,\n isLiteral,\n isMemberExpression,\n isObjectExpression,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isStringLiteral,\n} from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nimport type { NodeHandlers } from \"./index.ts\";\n\nimport type * as t from \"@babel/types\";\n\nconst enum WhitespaceFlag {\n before = 1 << 0,\n after = 1 << 1,\n}\n\nexport type { WhitespaceFlag };\n\nfunction crawlInternal(\n node: t.Node,\n state: { hasCall: boolean; hasFunction: boolean; hasHelper: boolean },\n) {\n if (!node) return state;\n\n if (isMemberExpression(node) || isOptionalMemberExpression(node)) {\n crawlInternal(node.object, state);\n if (node.computed) crawlInternal(node.property, state);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n crawlInternal(node.left, state);\n crawlInternal(node.right, state);\n } else if (isCallExpression(node) || isOptionalCallExpression(node)) {\n state.hasCall = true;\n crawlInternal(node.callee, state);\n } else if (isFunction(node)) {\n state.hasFunction = true;\n } else if (isIdentifier(node)) {\n state.hasHelper =\n // @ts-expect-error todo(flow->ts): node.callee is not really expected here…\n state.hasHelper || (node.callee && isHelper(node.callee));\n }\n\n return state;\n}\n\n/**\n * Crawl a node to test if it contains a CallExpression, a Function, or a Helper.\n *\n * @example\n * crawl(node)\n * // { hasCall: false, hasFunction: true, hasHelper: false }\n */\n\nfunction crawl(node: t.Node) {\n return crawlInternal(node, {\n hasCall: false,\n hasFunction: false,\n hasHelper: false,\n });\n}\n\n/**\n * Test if a node is or has a helper.\n */\n\nfunction isHelper(node: t.Node): boolean {\n if (!node) return false;\n\n if (isMemberExpression(node)) {\n return isHelper(node.object) || isHelper(node.property);\n } else if (isIdentifier(node)) {\n return (\n node.name === \"require\" ||\n node.name.charCodeAt(0) === charCodes.underscore\n );\n } else if (isCallExpression(node)) {\n return isHelper(node.callee);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n return (\n (isIdentifier(node.left) && isHelper(node.left)) || isHelper(node.right)\n );\n } else {\n return false;\n }\n}\n\nfunction isType(node: t.Node) {\n return (\n isLiteral(node) ||\n isObjectExpression(node) ||\n isArrayExpression(node) ||\n isIdentifier(node) ||\n isMemberExpression(node)\n );\n}\n\n/**\n * Tests for node types that need whitespace.\n */\n\nexport const nodes: NodeHandlers<WhitespaceFlag> = {\n /**\n * Test if AssignmentExpression needs whitespace.\n */\n\n AssignmentExpression(node: t.AssignmentExpression): WhitespaceFlag {\n const state = crawl(node.right);\n if ((state.hasCall && state.hasHelper) || state.hasFunction) {\n return state.hasFunction\n ? WhitespaceFlag.before | WhitespaceFlag.after\n : WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if SwitchCase needs whitespace.\n */\n\n SwitchCase(node: t.SwitchCase, parent: t.SwitchStatement): WhitespaceFlag {\n return (\n (!!node.consequent.length || parent.cases[0] === node\n ? WhitespaceFlag.before\n : 0) |\n (!node.consequent.length && parent.cases[parent.cases.length - 1] === node\n ? WhitespaceFlag.after\n : 0)\n );\n },\n\n /**\n * Test if LogicalExpression needs whitespace.\n */\n\n LogicalExpression(node: t.LogicalExpression): WhitespaceFlag {\n if (isFunction(node.left) || isFunction(node.right)) {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if Literal needs whitespace.\n */\n\n Literal(node: t.Literal): WhitespaceFlag {\n if (isStringLiteral(node) && node.value === \"use strict\") {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if CallExpressionish needs whitespace.\n */\n\n CallExpression(node: t.CallExpression): WhitespaceFlag {\n if (isFunction(node.callee) || isHelper(node)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n OptionalCallExpression(node: t.OptionalCallExpression): WhitespaceFlag {\n if (isFunction(node.callee)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if VariableDeclaration needs whitespace.\n */\n\n VariableDeclaration(node: t.VariableDeclaration): WhitespaceFlag {\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n let enabled = isHelper(declar.id) && !isType(declar.init);\n if (!enabled && declar.init) {\n const state = crawl(declar.init);\n enabled = (isHelper(declar.init) && state.hasCall) || state.hasFunction;\n }\n\n if (enabled) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n }\n },\n\n /**\n * Test if IfStatement needs whitespace.\n */\n\n IfStatement(node: t.IfStatement): WhitespaceFlag {\n if (isBlockStatement(node.consequent)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n};\n\n/**\n * Test if Property needs whitespace.\n */\n\nnodes.ObjectProperty =\n nodes.ObjectTypeProperty =\n nodes.ObjectMethod =\n function (\n node: t.ObjectProperty | t.ObjectTypeProperty | t.ObjectMethod,\n parent: t.ObjectExpression,\n ): WhitespaceFlag {\n if (parent.properties[0] === node) {\n return WhitespaceFlag.before;\n }\n };\n\nnodes.ObjectTypeCallProperty = function (\n node: t.ObjectTypeCallProperty,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (parent.callProperties[0] === node && !parent.properties?.length) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeIndexer = function (\n node: t.ObjectTypeIndexer,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.indexers[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeInternalSlot = function (\n node: t.ObjectTypeInternalSlot,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.internalSlots[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length &&\n !parent.indexers?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\n/**\n * Add whitespace tests for nodes and their aliases.\n */\n\n(\n [\n [\"Function\", true],\n [\"Class\", true],\n [\"Loop\", true],\n [\"LabeledStatement\", true],\n [\"SwitchStatement\", true],\n [\"TryStatement\", true],\n ] as const\n).forEach(function ([type, amounts]) {\n [type as string]\n .concat(FLIPPED_ALIAS_KEYS[type] || [])\n .forEach(function (type) {\n const ret = amounts ? WhitespaceFlag.before | WhitespaceFlag.after : 0;\n nodes[type] = () => ret;\n });\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_t","require","FLIPPED_ALIAS_KEYS","isArrayExpression","isAssignmentExpression","isBinary","isBlockStatement","isCallExpression","isFunction","isIdentifier","isLiteral","isMemberExpression","isObjectExpression","isOptionalCallExpression","isOptionalMemberExpression","isStringLiteral","crawlInternal","node","state","object","computed","property","left","right","hasCall","callee","hasFunction","hasHelper","isHelper","crawl","name","charCodeAt","isType","nodes","exports","AssignmentExpression","SwitchCase","parent","consequent","length","cases","LogicalExpression","Literal","value","CallExpression","OptionalCallExpression","VariableDeclaration","i","declarations","declar","enabled","id","init","IfStatement","ObjectProperty","ObjectTypeProperty","ObjectMethod","properties","ObjectTypeCallProperty","_parent$properties","callProperties","ObjectTypeIndexer","_parent$properties2","_parent$callPropertie","indexers","ObjectTypeInternalSlot","_parent$properties3","_parent$callPropertie2","_parent$indexers","internalSlots","forEach","type","amounts","concat","ret"],"sources":["../../src/node/whitespace.ts"],"sourcesContent":["import {\n FLIPPED_ALIAS_KEYS,\n isArrayExpression,\n isAssignmentExpression,\n isBinary,\n isBlockStatement,\n isCallExpression,\n isFunction,\n isIdentifier,\n isLiteral,\n isMemberExpression,\n isObjectExpression,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isStringLiteral,\n} from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nimport type { NodeHandlers } from \"./index.ts\";\n\nimport type * as t from \"@babel/types\";\n\nconst enum WhitespaceFlag {\n before = 1 << 0,\n after = 1 << 1,\n}\n\nexport type { WhitespaceFlag };\n\nfunction crawlInternal(\n node: t.Node,\n state: { hasCall: boolean; hasFunction: boolean; hasHelper: boolean },\n) {\n if (!node) return state;\n\n if (isMemberExpression(node) || isOptionalMemberExpression(node)) {\n crawlInternal(node.object, state);\n if (node.computed) crawlInternal(node.property, state);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n crawlInternal(node.left, state);\n crawlInternal(node.right, state);\n } else if (isCallExpression(node) || isOptionalCallExpression(node)) {\n state.hasCall = true;\n crawlInternal(node.callee, state);\n } else if (isFunction(node)) {\n state.hasFunction = true;\n } else if (isIdentifier(node)) {\n state.hasHelper =\n // @ts-expect-error todo(flow->ts): node.callee is not really expected here…\n state.hasHelper || (node.callee && isHelper(node.callee));\n }\n\n return state;\n}\n\n/**\n * Crawl a node to test if it contains a CallExpression, a Function, or a Helper.\n *\n * @example\n * crawl(node)\n * // { hasCall: false, hasFunction: true, hasHelper: false }\n */\n\nfunction crawl(node: t.Node) {\n return crawlInternal(node, {\n hasCall: false,\n hasFunction: false,\n hasHelper: false,\n });\n}\n\n/**\n * Test if a node is or has a helper.\n */\n\nfunction isHelper(node: t.Node): boolean {\n if (!node) return false;\n\n if (isMemberExpression(node)) {\n return isHelper(node.object) || isHelper(node.property);\n } else if (isIdentifier(node)) {\n return (\n node.name === \"require\" ||\n node.name.charCodeAt(0) === charCodes.underscore\n );\n } else if (isCallExpression(node)) {\n return isHelper(node.callee);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n return (\n (isIdentifier(node.left) && isHelper(node.left)) || isHelper(node.right)\n );\n } else {\n return false;\n }\n}\n\nfunction isType(node: t.Node) {\n return (\n isLiteral(node) ||\n isObjectExpression(node) ||\n isArrayExpression(node) ||\n isIdentifier(node) ||\n isMemberExpression(node)\n );\n}\n\n/**\n * Tests for node types that need whitespace.\n */\n\nexport const nodes: NodeHandlers<WhitespaceFlag> = {\n /**\n * Test if AssignmentExpression needs whitespace.\n */\n\n AssignmentExpression(node: t.AssignmentExpression): WhitespaceFlag {\n const state = crawl(node.right);\n if ((state.hasCall && state.hasHelper) || state.hasFunction) {\n return state.hasFunction\n ? WhitespaceFlag.before | WhitespaceFlag.after\n : WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if SwitchCase needs whitespace.\n */\n\n SwitchCase(node: t.SwitchCase, parent: t.SwitchStatement): WhitespaceFlag {\n return (\n (!!node.consequent.length || parent.cases[0] === node\n ? WhitespaceFlag.before\n : 0) |\n (!node.consequent.length && parent.cases[parent.cases.length - 1] === node\n ? WhitespaceFlag.after\n : 0)\n );\n },\n\n /**\n * Test if LogicalExpression needs whitespace.\n */\n\n LogicalExpression(node: t.LogicalExpression): WhitespaceFlag {\n if (isFunction(node.left) || isFunction(node.right)) {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if Literal needs whitespace.\n */\n\n Literal(node: t.Literal): WhitespaceFlag {\n if (isStringLiteral(node) && node.value === \"use strict\") {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if CallExpressionish needs whitespace.\n */\n\n CallExpression(node: t.CallExpression): WhitespaceFlag {\n if (isFunction(node.callee) || isHelper(node)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n OptionalCallExpression(node: t.OptionalCallExpression): WhitespaceFlag {\n if (isFunction(node.callee)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if VariableDeclaration needs whitespace.\n */\n\n VariableDeclaration(node: t.VariableDeclaration): WhitespaceFlag {\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n let enabled = isHelper(declar.id) && !isType(declar.init);\n if (!enabled && declar.init) {\n const state = crawl(declar.init);\n enabled = (isHelper(declar.init) && state.hasCall) || state.hasFunction;\n }\n\n if (enabled) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n }\n },\n\n /**\n * Test if IfStatement needs whitespace.\n */\n\n IfStatement(node: t.IfStatement): WhitespaceFlag {\n if (isBlockStatement(node.consequent)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n};\n\n/**\n * Test if Property needs whitespace.\n */\n\nnodes.ObjectProperty =\n nodes.ObjectTypeProperty =\n nodes.ObjectMethod =\n function (\n node: t.ObjectProperty | t.ObjectTypeProperty | t.ObjectMethod,\n parent: t.ObjectExpression,\n ): WhitespaceFlag {\n if (parent.properties[0] === node) {\n return WhitespaceFlag.before;\n }\n };\n\nnodes.ObjectTypeCallProperty = function (\n node: t.ObjectTypeCallProperty,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (parent.callProperties[0] === node && !parent.properties?.length) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeIndexer = function (\n node: t.ObjectTypeIndexer,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.indexers[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeInternalSlot = function (\n node: t.ObjectTypeInternalSlot,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.internalSlots[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length &&\n !parent.indexers?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\n/**\n * Add whitespace tests for nodes and their aliases.\n */\n\n(\n [\n [\"Function\", true],\n [\"Class\", true],\n [\"Loop\", true],\n [\"LabeledStatement\", true],\n [\"SwitchStatement\", true],\n [\"TryStatement\", true],\n ] as const\n).forEach(function ([type, amounts]) {\n [type as string]\n .concat(FLIPPED_ALIAS_KEYS[type] || [])\n .forEach(function (type) {\n const ret = amounts ? WhitespaceFlag.before | WhitespaceFlag.after : 0;\n nodes[type] = () => ret;\n });\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/generator/lib/printer.js b/node_modules/@babel/generator/lib/printer.js index cc2faeb0..f137135d 100644 --- a/node_modules/@babel/generator/lib/printer.js +++ b/node_modules/@babel/generator/lib/printer.js @@ -17,10 +17,8 @@ const { } = _t; const SCIENTIFIC_NOTATION = /e/i; const ZERO_DECIMAL_INTEGER = /\.0+$/; -const NON_DECIMAL_LITERAL = /^0[box]/; -const PURE_ANNOTATION_RE = /^\s*[@#]__PURE__\s*$/; const HAS_NEWLINE = /[\n\r\u2028\u2029]/; -const HAS_BlOCK_COMMENT_END = /\*\//; +const HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\n\r\u2028\u2029]|\*\//; const { needsParens } = n; @@ -29,7 +27,6 @@ class Printer { this.inForStatementInitCounter = 0; this._printStack = []; this._indent = 0; - this._indentChar = 0; this._indentRepeat = 0; this._insideAux = false; this._parenPushNewlineState = null; @@ -42,10 +39,9 @@ class Printer { this._endsWithInnerRaw = false; this._indentInnerComments = true; this.format = format; - this._buf = new _buffer.default(map); - this._indentChar = format.indent.style.charCodeAt(0); this._indentRepeat = format.indent.style.length; this._inputMap = map == null ? void 0 : map._inputMap; + this._buf = new _buffer.default(map, format.indent.style[0]); } generate(ast) { this.print(ast); @@ -101,9 +97,16 @@ class Printer { this._endsWithWord = true; this._noLineTerminator = noLineTerminatorAfter; } - number(str) { + number(str, number) { + function isNonDecimalLiteral(str) { + if (str.length > 2 && str.charCodeAt(0) === 48) { + const secondChar = str.charCodeAt(1); + return secondChar === 98 || secondChar === 111 || secondChar === 120; + } + return false; + } this.word(str); - this._endsWithInteger = Number.isInteger(+str) && !NON_DECIMAL_LITERAL.test(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== 46; + this._endsWithInteger = Number.isInteger(number) && !isNonDecimalLiteral(str) && !SCIENTIFIC_NOTATION.test(str) && !ZERO_DECIMAL_INTEGER.test(str) && str.charCodeAt(str.length - 1) !== 46; } token(str, maybeNewline = false) { this._maybePrintInnerComments(); @@ -215,7 +218,7 @@ class Printer { } _maybeIndent(firstChar) { if (this._indent && firstChar !== 10 && this.endsWith(10)) { - this._buf.queueIndentation(this._indentChar, this._getIndent()); + this._buf.queueIndentation(this._getIndent()); } } _shouldIndent(firstChar) { @@ -254,9 +257,7 @@ class Printer { } const chaPost = str.charCodeAt(i + 1); if (chaPost === 42) { - if (PURE_ANNOTATION_RE.test(str.slice(i + 2, len - 2))) { - return; - } + return; } else if (chaPost !== 47) { this._parenPushNewlineState = null; return; @@ -305,7 +306,7 @@ class Printer { } } print(node, parent, noLineTerminatorAfter, trailingCommentsLineOffset, forceParens) { - var _node$extra; + var _node$extra, _node$leadingComments; if (!node) return; this._endsWithInnerRaw = false; const nodeType = node.type; @@ -322,7 +323,24 @@ class Printer { const oldInAux = this._insideAux; this._insideAux = node.loc == undefined; this._maybeAddAuxComment(this._insideAux && !oldInAux); - const shouldPrintParens = forceParens || format.retainFunctionParens && nodeType === "FunctionExpression" && ((_node$extra = node.extra) == null ? void 0 : _node$extra.parenthesized) || needsParens(node, parent, this._printStack); + const parenthesized = (_node$extra = node.extra) == null ? void 0 : _node$extra.parenthesized; + let shouldPrintParens = forceParens || parenthesized && format.retainFunctionParens && nodeType === "FunctionExpression" || needsParens(node, parent, this._printStack); + if (!shouldPrintParens && parenthesized && (_node$leadingComments = node.leadingComments) != null && _node$leadingComments.length && node.leadingComments[0].type === "CommentBlock") { + const parentType = parent == null ? void 0 : parent.type; + switch (parentType) { + case "ExpressionStatement": + case "VariableDeclarator": + case "AssignmentExpression": + case "ReturnStatement": + break; + case "CallExpression": + case "OptionalCallExpression": + case "NewExpression": + if (parent.callee !== node) break; + default: + shouldPrintParens = true; + } + } if (shouldPrintParens) { this.tokenChar(40); this._endsWithInnerRaw = false; @@ -402,9 +420,13 @@ class Printer { if (!node) continue; if (opts.statement) this._printNewline(i === 0, newlineOpts); this.print(node, parent, undefined, opts.trailingCommentsLineOffset || 0); - opts.iterator == null ? void 0 : opts.iterator(node, i); - if (i < len - 1) separator == null ? void 0 : separator(); + opts.iterator == null || opts.iterator(node, i); + if (i < len - 1) separator == null || separator(); if (opts.statement) { + var _node$trailingComment; + if (!((_node$trailingComment = node.trailingComments) != null && _node$trailingComment.length)) { + this._lastCommentLine = 0; + } if (i + 1 === len) { this.newline(1); } else { @@ -507,7 +529,7 @@ class Printer { _shouldPrintComment(comment) { if (comment.ignore) return 0; if (this._printedComments.has(comment)) return 0; - if (this._noLineTerminator && (HAS_NEWLINE.test(comment.value) || HAS_BlOCK_COMMENT_END.test(comment.value))) { + if (this._noLineTerminator && HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)) { return 2; } this._printedComments.add(comment); @@ -529,6 +551,14 @@ class Printer { } let val; if (isBlockComment) { + const { + _parenPushNewlineState + } = this; + if ((_parenPushNewlineState == null ? void 0 : _parenPushNewlineState.printed) === false && HAS_NEWLINE.test(comment.value)) { + this.tokenChar(40); + this.indent(); + _parenPushNewlineState.printed = true; + } val = `/*${comment.value}*/`; if (this.format.indent.adjustMultilineComment) { var _comment$loc; @@ -537,11 +567,15 @@ class Printer { const newlineRegex = new RegExp("\\n\\s{1," + offset + "}", "g"); val = val.replace(newlineRegex, "\n"); } - let indentSize = this.format.retainLines ? 0 : this._buf.getCurrentColumn(); - if (this._shouldIndent(47) || this.format.retainLines) { - indentSize += this._getIndent(); + if (this.format.concise) { + val = val.replace(/\n(?!$)/g, `\n`); + } else { + let indentSize = this.format.retainLines ? 0 : this._buf.getCurrentColumn(); + if (this._shouldIndent(47) || this.format.retainLines) { + indentSize += this._getIndent(); + } + val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); } - val = val.replace(/\n(?!$)/g, `\n${" ".repeat(indentSize)}`); } } else if (!noLineTerminator) { val = `//${comment.value}`; @@ -641,8 +675,7 @@ Object.assign(Printer.prototype, generatorFunctions); { Printer.prototype.Noop = function Noop() {}; } -var _default = Printer; -exports.default = _default; +var _default = exports.default = Printer; function commaSeparator() { this.tokenChar(44); this.space(); diff --git a/node_modules/@babel/generator/lib/printer.js.map b/node_modules/@babel/generator/lib/printer.js.map index b7459732..46e0b873 100644 --- a/node_modules/@babel/generator/lib/printer.js.map +++ b/node_modules/@babel/generator/lib/printer.js.map @@ -1 +1 @@ -{"version":3,"names":["_buffer","require","n","_t","generatorFunctions","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumDeclaration","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","NON_DECIMAL_LITERAL","PURE_ANNOTATION_RE","HAS_NEWLINE","HAS_BlOCK_COMMENT_END","needsParens","Printer","constructor","format","map","inForStatementInitCounter","_printStack","_indent","_indentChar","_indentRepeat","_insideAux","_parenPushNewlineState","_noLineTerminator","_printAuxAfterOnNextUserNode","_printedComments","Set","_endsWithInteger","_endsWithWord","_lastCommentLine","_endsWithInnerRaw","_indentInnerComments","_buf","Buffer","indent","style","charCodeAt","length","_inputMap","generate","ast","print","_maybeAddAuxComment","get","compact","concise","dedent","semicolon","force","_appendChar","_queue","rightBrace","node","minified","removeLastSemicolon","sourceWithOffset","loc","token","rightParens","space","_space","hasContent","lastCp","getLastChar","word","str","noLineTerminatorAfter","_maybePrintInnerComments","endsWith","_append","number","Number","isInteger","test","maybeNewline","lastChar","strFirst","tokenChar","char","newline","i","retainLines","getNewlineCount","j","_newline","endsWithCharAndNewline","removeTrailingNewline","exactSource","cb","_catchUp","source","prop","columnOffset","withSource","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","_maybeAddParen","_maybeIndent","append","_maybeAddParenChar","appendChar","queue","firstChar","queueIndentation","_getIndent","_shouldIndent","parenPushNewlineState","printed","len","cha","chaPost","slice","catchUp","line","count","getCurrentLine","_loc$prop","printTerminatorless","parent","isLabel","terminatorState","trailingCommentsLineOffset","forceParens","_node$extra","nodeType","type","oldConcise","_compact","printMethod","undefined","ReferenceError","JSON","stringify","name","push","oldInAux","shouldPrintParens","retainFunctionParens","extra","parenthesized","_printLeadingComments","bind","_printTrailingComments","pop","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","auxiliaryCommentBefore","_printComment","value","auxiliaryCommentAfter","getPossibleRaw","raw","rawValue","printJoin","nodes","opts","_nodes$0$loc","startLine","start","newlineOpts","addNewlines","nextNodeStartLine","separator","statement","_printNewline","iterator","_nextNode$loc","nextNode","printAndIndentOnComments","leadingComments","printBlock","body","lineOffset","innerComments","trailingComments","_printComments","comments","printInnerComments","hasSpace","printedCommentsCount","size","noIndentInnerCommentsHere","printSequence","_opts$indent","printList","items","commaSeparator","newLine","lastCommentLine","offset","_shouldPrintComment","ignore","has","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","lastCharCode","val","adjustMultilineComment","_comment$loc","column","newlineRegex","RegExp","replace","indentSize","getCurrentColumn","repeat","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","end","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","Object","assign","prototype","Noop","_default","exports","default"],"sources":["../src/printer.ts"],"sourcesContent":["import Buffer, { type Pos } from \"./buffer.ts\";\nimport type { Loc } from \"./buffer.ts\";\nimport * as n from \"./node/index.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumDeclaration,\n} from \"@babel/types\";\nimport type {\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"@babel/parser\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport * as generatorFunctions from \"./generators/index.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport * as charCodes from \"charcodes\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst NON_DECIMAL_LITERAL = /^0[box]/;\nconst PURE_ANNOTATION_RE = /^\\s*[@#]__PURE__\\s*$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_BlOCK_COMMENT_END = /\\*\\//;\n\nconst { needsParens } = n;\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n retainLines: boolean;\n retainFunctionParens: boolean;\n comments: boolean;\n auxiliaryCommentBefore: string;\n auxiliaryCommentAfter: string;\n compact: boolean | \"auto\";\n minified: boolean;\n concise: boolean;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n recordAndTupleSyntaxType: RecordAndTuplePluginOptions[\"syntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: PipelineOperatorPluginOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n};\n\ninterface AddNewlinesOptions {\n addNewlines(leading: boolean, node: t.Node): number;\n nextNodeStartLine: number;\n}\n\ninterface PrintSequenceOptions extends Partial<AddNewlinesOptions> {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer) => void;\n iterator?: (node: t.Node, index: number) => void;\n statement?: boolean;\n indent?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(format: Format, map: SourceMap) {\n this.format = format;\n this._buf = new Buffer(map);\n\n this._indentChar = format.indent.style.charCodeAt(0);\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap;\n }\n declare _inputMap: TraceMap;\n\n declare format: Format;\n inForStatementInitCounter: number = 0;\n\n declare _buf: Buffer;\n _printStack: Array<t.Node> = [];\n _indent: number = 0;\n _indentChar: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _parenPushNewlineState: { printed: boolean } | null = null;\n _noLineTerminator: boolean = false;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set<t.Comment>();\n _endsWithInteger = false;\n _endsWithWord = false;\n _lastCommentLine = 0;\n _endsWithInnerRaw: boolean = false;\n _indentInnerComments: boolean = true;\n\n generate(ast: t.Node) {\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(): void {\n if (this.format.compact || this.format.concise) return;\n\n this._indent++;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(): void {\n if (this.format.compact || this.format.concise) return;\n\n this._indent--;\n }\n\n /**\n * Add a semicolon to the buffer.\n */\n\n semicolon(force: boolean = false): void {\n this._maybeAddAuxComment();\n if (force) {\n this._appendChar(charCodes.semicolon);\n } else {\n this._queue(charCodes.semicolon);\n }\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\")\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n if (this.format.compact) return;\n\n if (force) {\n this._space();\n } else if (this._buf.hasContent()) {\n const lastCp = this.getLastChar();\n if (lastCp !== charCodes.space && lastCp !== charCodes.lineFeed) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this._maybePrintInnerComments();\n\n // prevent concatenating words and creating // comment out of division and regex\n if (\n this._endsWithWord ||\n (str.charCodeAt(0) === charCodes.slash && this.endsWith(charCodes.slash))\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._append(str, false);\n\n this._endsWithWord = true;\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string): void {\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted\n // immediately after them.\n this._endsWithInteger =\n Number.isInteger(+str) &&\n !NON_DECIMAL_LITERAL.test(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot;\n }\n\n /**\n * Writes a simple token.\n */\n token(str: string, maybeNewline = false): void {\n this._maybePrintInnerComments();\n\n const lastChar = this.getLastChar();\n const strFirst = str.charCodeAt(0);\n if (\n (lastChar === charCodes.exclamationMark &&\n // space is mandatory to avoid outputting <!--\n // http://javascript.spec.whatwg.org/#comment-syntax\n (str === \"--\" ||\n // Needs spaces to avoid changing a! == 0 to a!== 0\n strFirst === charCodes.equalsTo)) ||\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (strFirst === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (strFirst === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (strFirst === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._append(str, maybeNewline);\n this._noLineTerminator = false;\n }\n\n tokenChar(char: number): void {\n this._maybePrintInnerComments();\n\n const lastChar = this.getLastChar();\n if (\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (char === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (char === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (char === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._appendChar(char);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a newline (or many newlines), maintaining formatting.\n * This function checks the number of newlines in the queue and subtracts them.\n * It currently has some limitations.\n * @see {Buffer#getNewlineCount}\n */\n newline(i: number = 1, force?: boolean): void {\n if (i <= 0) return;\n\n if (!force) {\n if (this.format.retainLines || this.format.compact) return;\n\n if (this.format.concise) {\n this.space();\n return;\n }\n }\n\n if (i > 2) i = 2; // Max two lines\n\n i -= this._buf.getNewlineCount();\n\n for (let j = 0; j < i; j++) {\n this._newline();\n }\n\n return;\n }\n\n endsWith(char: number): boolean {\n return this.getLastChar() === char;\n }\n\n getLastChar(): number {\n return this._buf.getLastChar();\n }\n\n endsWithCharAndNewline(): number {\n return this._buf.endsWithCharAndNewline();\n }\n\n removeTrailingNewline(): void {\n this._buf.removeTrailingNewline();\n }\n\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!loc) {\n cb();\n return;\n }\n\n this._catchUp(\"start\", loc);\n\n this._buf.exactSource(loc, cb);\n }\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!loc) return;\n\n this._catchUp(prop, loc);\n\n this._buf.source(prop, loc);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!loc) return;\n\n this._catchUp(prop, loc);\n\n this._buf.sourceWithOffset(prop, loc, columnOffset);\n }\n\n withSource(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n cb: () => void,\n ): void {\n if (!loc) {\n cb();\n return;\n }\n\n this._catchUp(prop, loc);\n\n this._buf.withSource(prop, loc, cb);\n }\n\n sourceIdentifierName(identifierName: string, pos?: Pos): void {\n if (!this._buf._canMarkIdName) return;\n\n const sourcePosition = this._buf._sourcePosition;\n sourcePosition.identifierNamePos = pos;\n sourcePosition.identifierName = identifierName;\n }\n\n _space(): void {\n this._queue(charCodes.space);\n }\n\n _newline(): void {\n this._queue(charCodes.lineFeed);\n }\n\n _append(str: string, maybeNewline: boolean): void {\n this._maybeAddParen(str);\n this._maybeIndent(str.charCodeAt(0));\n\n this._buf.append(str, maybeNewline);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _appendChar(char: number): void {\n this._maybeAddParenChar(char);\n this._maybeIndent(char);\n\n this._buf.appendChar(char);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _queue(char: number) {\n this._maybeAddParenChar(char);\n this._maybeIndent(char);\n\n this._buf.queue(char);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _maybeIndent(firstChar: number): void {\n // we've got a newline before us so prepend on the indentation\n if (\n this._indent &&\n firstChar !== charCodes.lineFeed &&\n this.endsWith(charCodes.lineFeed)\n ) {\n this._buf.queueIndentation(this._indentChar, this._getIndent());\n }\n }\n\n _shouldIndent(firstChar: number) {\n // we've got a newline before us so prepend on the indentation\n if (\n this._indent &&\n firstChar !== charCodes.lineFeed &&\n this.endsWith(charCodes.lineFeed)\n ) {\n return true;\n }\n }\n\n _maybeAddParenChar(char: number): void {\n // see startTerminatorless() instance method\n const parenPushNewlineState = this._parenPushNewlineState;\n if (!parenPushNewlineState) return;\n\n // This function does two things:\n // - If needed, prints a parenthesis\n // - If the currently printed string removes the need for the paren,\n // it resets the _parenPushNewlineState field.\n // Almost everything removes the need for a paren, except for\n // comments and whitespaces.\n\n if (char === charCodes.space) {\n // Whitespaces only, the parentheses might still be needed.\n return;\n }\n\n // Check for newline or comment.\n if (char !== charCodes.lineFeed) {\n this._parenPushNewlineState = null;\n return;\n }\n\n this.token(\"(\");\n this.indent();\n parenPushNewlineState.printed = true;\n }\n\n _maybeAddParen(str: string): void {\n // see startTerminatorless() instance method\n const parenPushNewlineState = this._parenPushNewlineState;\n if (!parenPushNewlineState) return;\n\n // This function does two things:\n // - If needed, prints a parenthesis\n // - If the currently printed string removes the need for the paren,\n // it resets the _parenPushNewlineState field.\n // Almost everything removes the need for a paren, except for\n // comments and whitespaces.\n\n const len = str.length;\n\n let i;\n for (i = 0; i < len && str.charCodeAt(i) === charCodes.space; i++) continue;\n if (i === len) {\n // Whitespaces only, the parentheses might still be needed.\n return;\n }\n\n // Check for newline or comment.\n const cha = str.charCodeAt(i);\n if (cha !== charCodes.lineFeed) {\n if (\n // This is not a comment (it doesn't start with /)\n cha !== charCodes.slash ||\n // This is not a comment (it's a / operator)\n i + 1 === len\n ) {\n // After a normal token, the parentheses aren't needed anymore\n this._parenPushNewlineState = null;\n return;\n }\n\n const chaPost = str.charCodeAt(i + 1);\n\n if (chaPost === charCodes.asterisk) {\n // This is a block comment\n\n if (PURE_ANNOTATION_RE.test(str.slice(i + 2, len - 2))) {\n // We avoid printing newlines after #__PURE__ comments (we treat\n // then as unary operators), but we must keep the old\n // parenPushNewlineState because, if a newline was forbidden, it is\n // still forbidden after the comment.\n return;\n }\n\n // NOTE: code flow continues from here to after these if/elses\n } else if (chaPost !== charCodes.slash) {\n // This is neither a block comment, nor a line comment.\n // After a normal token, the parentheses aren't needed anymore\n this._parenPushNewlineState = null;\n return;\n }\n }\n\n this.token(\"(\");\n this.indent();\n parenPushNewlineState.printed = true;\n }\n\n catchUp(line: number) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const count = line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n\n _catchUp(prop: \"start\" | \"end\", loc?: Loc) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const line = loc?.[prop]?.line;\n if (line != null) {\n const count = line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n }\n\n /**\n * Get the current indent.\n */\n\n _getIndent(): number {\n return this._indentRepeat * this._indent;\n }\n\n printTerminatorless(node: t.Node, parent: t.Node, isLabel: boolean) {\n /**\n * Set some state that will be modified if a newline has been inserted before any\n * non-space characters.\n *\n * This is to prevent breaking semantics for terminatorless separator nodes. eg:\n *\n * return foo;\n *\n * returns `foo`. But if we do:\n *\n * return\n * foo;\n *\n * `undefined` will be returned and not `foo` due to the terminator.\n */\n if (isLabel) {\n this._noLineTerminator = true;\n this.print(node, parent);\n } else {\n const terminatorState = {\n printed: false,\n };\n this._parenPushNewlineState = terminatorState;\n this.print(node, parent);\n /**\n * Print an ending parentheses if a starting one has been printed.\n */\n if (terminatorState.printed) {\n this.dedent();\n this.newline();\n this.token(\")\");\n }\n }\n }\n\n print(\n node: t.Node | null,\n parent?: t.Node,\n noLineTerminatorAfter?: boolean,\n // trailingCommentsLineOffset also used to check if called from printJoin\n // it will be ignored if `noLineTerminatorAfter||this._noLineTerminator`\n trailingCommentsLineOffset?: number,\n forceParens?: boolean,\n ) {\n if (!node) return;\n\n this._endsWithInnerRaw = false;\n\n const nodeType = node.type;\n const format = this.format;\n\n const oldConcise = format.concise;\n if (\n // @ts-expect-error document _compact AST properties\n node._compact\n ) {\n format.concise = true;\n }\n\n const printMethod =\n this[\n nodeType as Exclude<\n t.Node[\"type\"],\n // removed\n | \"Noop\"\n // renamed\n | t.DeprecatedAliases[\"type\"]\n >\n ];\n if (printMethod === undefined) {\n throw new ReferenceError(\n `unknown node of type ${JSON.stringify(\n nodeType,\n )} with constructor ${JSON.stringify(node.constructor.name)}`,\n );\n }\n\n this._printStack.push(node);\n\n const oldInAux = this._insideAux;\n this._insideAux = node.loc == undefined;\n this._maybeAddAuxComment(this._insideAux && !oldInAux);\n\n const shouldPrintParens =\n forceParens ||\n (format.retainFunctionParens &&\n nodeType === \"FunctionExpression\" &&\n node.extra?.parenthesized) ||\n needsParens(node, parent, this._printStack);\n\n if (shouldPrintParens) {\n this.token(\"(\");\n this._endsWithInnerRaw = false;\n }\n\n this._lastCommentLine = 0;\n\n this._printLeadingComments(node, parent);\n\n const loc = nodeType === \"Program\" || nodeType === \"File\" ? null : node.loc;\n\n this.exactSource(loc, printMethod.bind(this, node, parent));\n\n if (shouldPrintParens) {\n this._printTrailingComments(node, parent);\n this.token(\")\");\n this._noLineTerminator = noLineTerminatorAfter;\n } else if (noLineTerminatorAfter && !this._noLineTerminator) {\n this._noLineTerminator = true;\n this._printTrailingComments(node, parent);\n } else {\n this._printTrailingComments(node, parent, trailingCommentsLineOffset);\n }\n\n // end\n this._printStack.pop();\n\n format.concise = oldConcise;\n this._insideAux = oldInAux;\n\n this._endsWithInnerRaw = false;\n }\n\n _maybeAddAuxComment(enteredPositionlessNode?: boolean) {\n if (enteredPositionlessNode) this._printAuxBeforeComment();\n if (!this._insideAux) this._printAuxAfterComment();\n }\n\n _printAuxBeforeComment() {\n if (this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = true;\n\n const comment = this.format.auxiliaryCommentBefore;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n _printAuxAfterComment() {\n if (!this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = false;\n\n const comment = this.format.auxiliaryCommentAfter;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n getPossibleRaw(\n node:\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DecimalLiteral\n | t.DirectiveLiteral\n | t.JSXText,\n ): string | undefined {\n const extra = node.extra;\n if (\n extra?.raw != null &&\n extra.rawValue != null &&\n node.value === extra.rawValue\n ) {\n // @ts-expect-error: The extra.raw of these AST node types must be a string\n return extra.raw;\n }\n }\n\n printJoin(\n nodes: Array<t.Node> | undefined | null,\n parent: t.Node,\n opts: PrintJoinOptions = {},\n ) {\n if (!nodes?.length) return;\n\n let { indent } = opts;\n\n if (indent == null && this.format.retainLines) {\n const startLine = nodes[0].loc?.start.line;\n if (startLine != null && startLine !== this._buf.getCurrentLine()) {\n indent = true;\n }\n }\n\n if (indent) this.indent();\n\n const newlineOpts: AddNewlinesOptions = {\n addNewlines: opts.addNewlines,\n nextNodeStartLine: 0,\n };\n\n const separator = opts.separator ? opts.separator.bind(this) : null;\n\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n if (opts.statement) this._printNewline(i === 0, newlineOpts);\n\n this.print(node, parent, undefined, opts.trailingCommentsLineOffset || 0);\n\n opts.iterator?.(node, i);\n\n if (i < len - 1) separator?.();\n\n if (opts.statement) {\n if (i + 1 === len) {\n this.newline(1);\n } else {\n const nextNode = nodes[i + 1];\n newlineOpts.nextNodeStartLine = nextNode.loc?.start.line || 0;\n\n this._printNewline(true, newlineOpts);\n }\n }\n }\n\n if (indent) this.dedent();\n }\n\n printAndIndentOnComments(node: t.Node, parent: t.Node) {\n const indent = node.leadingComments && node.leadingComments.length > 0;\n if (indent) this.indent();\n this.print(node, parent);\n if (indent) this.dedent();\n }\n\n printBlock(parent: Extract<t.Node, { body: t.Statement }>) {\n const node = parent.body;\n\n if (node.type !== \"EmptyStatement\") {\n this.space();\n }\n\n this.print(node, parent);\n }\n\n _printTrailingComments(node: t.Node, parent?: t.Node, lineOffset?: number) {\n const { innerComments, trailingComments } = node;\n // We print inner comments here, so that if for some reason they couldn't\n // be printed in earlier locations they are still printed *somewhere*,\n // even if at the end of the node.\n if (innerComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n innerComments,\n node,\n parent,\n lineOffset,\n );\n }\n if (trailingComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n trailingComments,\n node,\n parent,\n lineOffset,\n );\n }\n }\n\n _printLeadingComments(node: t.Node, parent: t.Node) {\n const comments = node.leadingComments;\n if (!comments?.length) return;\n this._printComments(COMMENT_TYPE.LEADING, comments, node, parent);\n }\n\n _maybePrintInnerComments() {\n if (this._endsWithInnerRaw) this.printInnerComments();\n this._endsWithInnerRaw = true;\n this._indentInnerComments = true;\n }\n\n printInnerComments() {\n const node = this._printStack[this._printStack.length - 1];\n const comments = node.innerComments;\n if (!comments?.length) return;\n\n const hasSpace = this.endsWith(charCodes.space);\n const indent = this._indentInnerComments;\n const printedCommentsCount = this._printedComments.size;\n if (indent) this.indent();\n this._printComments(COMMENT_TYPE.INNER, comments, node);\n if (hasSpace && printedCommentsCount !== this._printedComments.size) {\n this.space();\n }\n if (indent) this.dedent();\n }\n\n noIndentInnerCommentsHere() {\n this._indentInnerComments = false;\n }\n\n printSequence(\n nodes: t.Node[],\n parent: t.Node,\n opts: PrintSequenceOptions = {},\n ) {\n opts.statement = true;\n opts.indent ??= false;\n this.printJoin(nodes, parent, opts);\n }\n\n printList(items: t.Node[], parent: t.Node, opts: PrintListOptions = {}) {\n if (opts.separator == null) {\n opts.separator = commaSeparator;\n }\n\n this.printJoin(items, parent, opts);\n }\n\n _printNewline(newLine: boolean, opts: AddNewlinesOptions) {\n const format = this.format;\n\n // Fast path since 'this.newline' does nothing when not tracking lines.\n if (format.retainLines || format.compact) return;\n\n // Fast path for concise since 'this.newline' just inserts a space when\n // concise formatting is in use.\n if (format.concise) {\n this.space();\n return;\n }\n\n if (!newLine) {\n return;\n }\n\n const startLine = opts.nextNodeStartLine;\n const lastCommentLine = this._lastCommentLine;\n if (startLine > 0 && lastCommentLine > 0) {\n const offset = startLine - lastCommentLine;\n if (offset >= 0) {\n this.newline(offset || 1);\n return;\n }\n }\n\n // don't add newlines at the beginning of the file\n if (this._buf.hasContent()) {\n // Here is the logic of the original line wrapping according to the node layout, we are not using it now.\n // We currently add at most one newline to each node in the list, ignoring `opts.addNewlines`.\n\n // let lines = 0;\n // if (!leading) lines++; // always include at least a single line after\n // if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0;\n\n // const needs = leading ? needsWhitespaceBefore : needsWhitespaceAfter;\n // if (needs(node, parent)) lines++;\n\n // this.newline(Math.min(2, lines));\n\n this.newline(1);\n }\n }\n\n // Returns `PRINT_COMMENT_HINT.DEFER` if the comment cannot be printed in this position due to\n // line terminators, signaling that the print comments loop can stop and\n // resume printing comments at the next possible position. This happens when\n // printing inner comments, since if we have an inner comment with a multiline\n // there is at least one inner position where line terminators are allowed.\n _shouldPrintComment(comment: t.Comment): PRINT_COMMENT_HINT {\n // Some plugins (such as flow-strip-types) use this to mark comments as removed using the AST-root 'comments' property,\n // where they can't manually mutate the AST node comment lists.\n if (comment.ignore) return PRINT_COMMENT_HINT.SKIP;\n\n if (this._printedComments.has(comment)) return PRINT_COMMENT_HINT.SKIP;\n\n if (\n this._noLineTerminator &&\n (HAS_NEWLINE.test(comment.value) ||\n HAS_BlOCK_COMMENT_END.test(comment.value))\n ) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n\n this._printedComments.add(comment);\n\n if (!this.format.shouldPrintComment(comment.value)) {\n return PRINT_COMMENT_HINT.SKIP;\n }\n\n return PRINT_COMMENT_HINT.ALLOW;\n }\n\n _printComment(comment: t.Comment, skipNewLines: COMMENT_SKIP_NEWLINE) {\n const noLineTerminator = this._noLineTerminator;\n const isBlockComment = comment.type === \"CommentBlock\";\n\n // Add a newline before and after a block comment, unless explicitly\n // disallowed\n const printNewLines =\n isBlockComment &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.ALL &&\n !this._noLineTerminator;\n\n if (\n printNewLines &&\n this._buf.hasContent() &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.LEADING\n ) {\n this.newline(1);\n }\n\n const lastCharCode = this.getLastChar();\n if (\n lastCharCode !== charCodes.leftSquareBracket &&\n lastCharCode !== charCodes.leftCurlyBrace\n ) {\n this.space();\n }\n\n let val;\n if (isBlockComment) {\n val = `/*${comment.value}*/`;\n if (this.format.indent.adjustMultilineComment) {\n const offset = comment.loc?.start.column;\n if (offset) {\n const newlineRegex = new RegExp(\"\\\\n\\\\s{1,\" + offset + \"}\", \"g\");\n val = val.replace(newlineRegex, \"\\n\");\n }\n\n let indentSize = this.format.retainLines\n ? 0\n : this._buf.getCurrentColumn();\n\n if (this._shouldIndent(charCodes.slash) || this.format.retainLines) {\n indentSize += this._getIndent();\n }\n\n val = val.replace(/\\n(?!$)/g, `\\n${\" \".repeat(indentSize)}`);\n }\n } else if (!noLineTerminator) {\n val = `//${comment.value}`;\n } else {\n // It was a single-line comment, so it's guaranteed to not\n // contain newlines and it can be safely printed as a block\n // comment.\n val = `/*${comment.value}*/`;\n }\n\n // Avoid creating //* comments\n if (this.endsWith(charCodes.slash)) this._space();\n\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n\n if (!isBlockComment && !noLineTerminator) {\n this.newline(1, true);\n }\n\n if (printNewLines && skipNewLines !== COMMENT_SKIP_NEWLINE.TRAILING) {\n this.newline(1);\n }\n }\n\n _printComments(\n type: COMMENT_TYPE,\n comments: readonly t.Comment[],\n node: t.Node,\n parent?: t.Node,\n lineOffset: number = 0,\n ) {\n const nodeLoc = node.loc;\n const len = comments.length;\n let hasLoc = !!nodeLoc;\n const nodeStartLine = hasLoc ? nodeLoc.start.line : 0;\n const nodeEndLine = hasLoc ? nodeLoc.end.line : 0;\n let lastLine = 0;\n let leadingCommentNewline = 0;\n\n const maybeNewline = this._noLineTerminator\n ? function () {}\n : this.newline.bind(this);\n\n for (let i = 0; i < len; i++) {\n const comment = comments[i];\n\n const shouldPrint = this._shouldPrintComment(comment);\n if (shouldPrint === PRINT_COMMENT_HINT.DEFER) {\n hasLoc = false;\n break;\n }\n if (hasLoc && comment.loc && shouldPrint === PRINT_COMMENT_HINT.ALLOW) {\n const commentStartLine = comment.loc.start.line;\n const commentEndLine = comment.loc.end.line;\n if (type === COMMENT_TYPE.LEADING) {\n let offset = 0;\n if (i === 0) {\n // Because currently we cannot handle blank lines before leading comments,\n // we always wrap before and after multi-line comments.\n if (\n this._buf.hasContent() &&\n (comment.type === \"CommentLine\" ||\n commentStartLine != commentEndLine)\n ) {\n offset = leadingCommentNewline = 1;\n }\n } else {\n offset = commentStartLine - lastLine;\n }\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n maybeNewline(\n Math.max(nodeStartLine - lastLine, leadingCommentNewline),\n );\n lastLine = nodeStartLine;\n }\n } else if (type === COMMENT_TYPE.INNER) {\n const offset =\n commentStartLine - (i === 0 ? nodeStartLine : lastLine);\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n maybeNewline(Math.min(1, nodeEndLine - lastLine)); // TODO: Improve here when inner comments processing is stronger\n lastLine = nodeEndLine;\n }\n } else {\n const offset =\n commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine);\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n }\n } else {\n hasLoc = false;\n if (shouldPrint !== PRINT_COMMENT_HINT.ALLOW) {\n continue;\n }\n\n if (len === 1) {\n const singleLine = comment.loc\n ? comment.loc.start.line === comment.loc.end.line\n : !HAS_NEWLINE.test(comment.value);\n\n const shouldSkipNewline =\n singleLine &&\n !isStatement(node) &&\n !isClassBody(parent) &&\n !isTSInterfaceBody(parent) &&\n !isTSEnumDeclaration(parent);\n\n if (type === COMMENT_TYPE.LEADING) {\n this._printComment(\n comment,\n (shouldSkipNewline && node.type !== \"ObjectExpression\") ||\n (singleLine && isFunction(parent, { body: node }))\n ? COMMENT_SKIP_NEWLINE.ALL\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else if (shouldSkipNewline && type === COMMENT_TYPE.TRAILING) {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n } else if (\n type === COMMENT_TYPE.INNER &&\n !(node.type === \"ObjectExpression\" && node.properties.length > 1) &&\n node.type !== \"ClassBody\" &&\n node.type !== \"TSInterfaceBody\"\n ) {\n // class X {\n // /*:: a: number*/\n // /*:: b: ?string*/\n // }\n\n this._printComment(\n comment,\n i === 0\n ? COMMENT_SKIP_NEWLINE.LEADING\n : i === len - 1\n ? COMMENT_SKIP_NEWLINE.TRAILING\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n }\n }\n\n if (type === COMMENT_TYPE.TRAILING && hasLoc && lastLine) {\n this._lastCommentLine = lastLine;\n }\n }\n}\n\n// Expose the node type functions and helpers on the prototype for easy usage.\nObject.assign(Printer.prototype, generatorFunctions);\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 has Noop print method\n Printer.prototype.Noop = function Noop(this: Printer) {};\n}\n\ntype GeneratorFunctions = typeof generatorFunctions;\ninterface Printer extends GeneratorFunctions {}\nexport default Printer;\n\nfunction commaSeparator(this: Printer) {\n this.token(\",\");\n this.space();\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_buffer","require","n","_t","generatorFunctions","isFunction","isStatement","isClassBody","isTSInterfaceBody","isTSEnumDeclaration","SCIENTIFIC_NOTATION","ZERO_DECIMAL_INTEGER","HAS_NEWLINE","HAS_NEWLINE_OR_BlOCK_COMMENT_END","needsParens","Printer","constructor","format","map","inForStatementInitCounter","_printStack","_indent","_indentRepeat","_insideAux","_parenPushNewlineState","_noLineTerminator","_printAuxAfterOnNextUserNode","_printedComments","Set","_endsWithInteger","_endsWithWord","_lastCommentLine","_endsWithInnerRaw","_indentInnerComments","indent","style","length","_inputMap","_buf","Buffer","generate","ast","print","_maybeAddAuxComment","get","compact","concise","dedent","semicolon","force","_appendChar","_queue","rightBrace","node","minified","removeLastSemicolon","sourceWithOffset","loc","token","rightParens","space","_space","hasContent","lastCp","getLastChar","word","str","noLineTerminatorAfter","_maybePrintInnerComments","charCodeAt","endsWith","_append","number","isNonDecimalLiteral","secondChar","Number","isInteger","test","maybeNewline","lastChar","strFirst","tokenChar","char","newline","i","retainLines","getNewlineCount","j","_newline","endsWithCharAndNewline","removeTrailingNewline","exactSource","cb","_catchUp","source","prop","columnOffset","withSource","sourceIdentifierName","identifierName","pos","_canMarkIdName","sourcePosition","_sourcePosition","identifierNamePos","_maybeAddParen","_maybeIndent","append","_maybeAddParenChar","appendChar","queue","firstChar","queueIndentation","_getIndent","_shouldIndent","parenPushNewlineState","printed","len","cha","chaPost","catchUp","line","count","getCurrentLine","_loc$prop","printTerminatorless","parent","isLabel","terminatorState","trailingCommentsLineOffset","forceParens","_node$extra","_node$leadingComments","nodeType","type","oldConcise","_compact","printMethod","undefined","ReferenceError","JSON","stringify","name","push","oldInAux","parenthesized","extra","shouldPrintParens","retainFunctionParens","leadingComments","parentType","callee","_printLeadingComments","bind","_printTrailingComments","pop","enteredPositionlessNode","_printAuxBeforeComment","_printAuxAfterComment","comment","auxiliaryCommentBefore","_printComment","value","auxiliaryCommentAfter","getPossibleRaw","raw","rawValue","printJoin","nodes","opts","_nodes$0$loc","startLine","start","newlineOpts","addNewlines","nextNodeStartLine","separator","statement","_printNewline","iterator","_node$trailingComment","trailingComments","_nextNode$loc","nextNode","printAndIndentOnComments","printBlock","body","lineOffset","innerComments","_printComments","comments","printInnerComments","hasSpace","printedCommentsCount","size","noIndentInnerCommentsHere","printSequence","_opts$indent","printList","items","commaSeparator","newLine","lastCommentLine","offset","_shouldPrintComment","ignore","has","add","shouldPrintComment","skipNewLines","noLineTerminator","isBlockComment","printNewLines","lastCharCode","val","adjustMultilineComment","_comment$loc","column","newlineRegex","RegExp","replace","indentSize","getCurrentColumn","repeat","nodeLoc","hasLoc","nodeStartLine","nodeEndLine","end","lastLine","leadingCommentNewline","shouldPrint","commentStartLine","commentEndLine","Math","max","min","singleLine","shouldSkipNewline","properties","Object","assign","prototype","Noop","_default","exports","default"],"sources":["../src/printer.ts"],"sourcesContent":["import Buffer, { type Pos } from \"./buffer.ts\";\nimport type { Loc } from \"./buffer.ts\";\nimport * as n from \"./node/index.ts\";\nimport type * as t from \"@babel/types\";\nimport {\n isFunction,\n isStatement,\n isClassBody,\n isTSInterfaceBody,\n isTSEnumDeclaration,\n} from \"@babel/types\";\nimport type {\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"@babel/parser\";\nimport type { Opts as jsescOptions } from \"jsesc\";\n\nimport * as generatorFunctions from \"./generators/index.ts\";\nimport type SourceMap from \"./source-map.ts\";\nimport * as charCodes from \"charcodes\";\nimport type { TraceMap } from \"@jridgewell/trace-mapping\";\n\nconst SCIENTIFIC_NOTATION = /e/i;\nconst ZERO_DECIMAL_INTEGER = /\\.0+$/;\nconst HAS_NEWLINE = /[\\n\\r\\u2028\\u2029]/;\nconst HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\\n\\r\\u2028\\u2029]|\\*\\//;\n\nconst { needsParens } = n;\n\nconst enum COMMENT_TYPE {\n LEADING,\n INNER,\n TRAILING,\n}\n\nconst enum COMMENT_SKIP_NEWLINE {\n DEFAULT,\n ALL,\n LEADING,\n TRAILING,\n}\n\nconst enum PRINT_COMMENT_HINT {\n SKIP,\n ALLOW,\n DEFER,\n}\n\nexport type Format = {\n shouldPrintComment: (comment: string) => boolean;\n retainLines: boolean;\n retainFunctionParens: boolean;\n comments: boolean;\n auxiliaryCommentBefore: string;\n auxiliaryCommentAfter: string;\n compact: boolean | \"auto\";\n minified: boolean;\n concise: boolean;\n indent: {\n adjustMultilineComment: boolean;\n style: string;\n };\n recordAndTupleSyntaxType: RecordAndTuplePluginOptions[\"syntaxType\"];\n jsescOption: jsescOptions;\n /**\n * @deprecated Removed in Babel 8, use `jsescOption` instead\n */\n jsonCompatibleStrings?: boolean;\n /**\n * For use with the Hack-style pipe operator.\n * Changes what token is used for pipe bodies’ topic references.\n */\n topicToken?: PipelineOperatorPluginOptions[\"topicToken\"];\n /**\n * @deprecated Removed in Babel 8\n */\n decoratorsBeforeExport?: boolean;\n /**\n * The import attributes syntax style:\n * - \"with\" : `import { a } from \"b\" with { type: \"json\" };`\n * - \"assert\" : `import { a } from \"b\" assert { type: \"json\" };`\n * - \"with-legacy\" : `import { a } from \"b\" with type: \"json\";`\n */\n importAttributesKeyword?: \"with\" | \"assert\" | \"with-legacy\";\n};\n\ninterface AddNewlinesOptions {\n addNewlines(leading: boolean, node: t.Node): number;\n nextNodeStartLine: number;\n}\n\ninterface PrintSequenceOptions extends Partial<AddNewlinesOptions> {\n statement?: boolean;\n indent?: boolean;\n trailingCommentsLineOffset?: number;\n}\n\ninterface PrintListOptions {\n separator?: (this: Printer) => void;\n iterator?: (node: t.Node, index: number) => void;\n statement?: boolean;\n indent?: boolean;\n}\n\nexport type PrintJoinOptions = PrintListOptions & PrintSequenceOptions;\nclass Printer {\n constructor(format: Format, map: SourceMap) {\n this.format = format;\n\n this._indentRepeat = format.indent.style.length;\n\n this._inputMap = map?._inputMap;\n\n this._buf = new Buffer(map, format.indent.style[0]);\n }\n declare _inputMap: TraceMap;\n\n declare format: Format;\n inForStatementInitCounter: number = 0;\n\n declare _buf: Buffer;\n _printStack: Array<t.Node> = [];\n _indent: number = 0;\n _indentRepeat: number = 0;\n _insideAux: boolean = false;\n _parenPushNewlineState: { printed: boolean } | null = null;\n _noLineTerminator: boolean = false;\n _printAuxAfterOnNextUserNode: boolean = false;\n _printedComments = new Set<t.Comment>();\n _endsWithInteger = false;\n _endsWithWord = false;\n _lastCommentLine = 0;\n _endsWithInnerRaw: boolean = false;\n _indentInnerComments: boolean = true;\n\n generate(ast: t.Node) {\n this.print(ast);\n this._maybeAddAuxComment();\n\n return this._buf.get();\n }\n\n /**\n * Increment indent size.\n */\n\n indent(): void {\n if (this.format.compact || this.format.concise) return;\n\n this._indent++;\n }\n\n /**\n * Decrement indent size.\n */\n\n dedent(): void {\n if (this.format.compact || this.format.concise) return;\n\n this._indent--;\n }\n\n /**\n * Add a semicolon to the buffer.\n */\n\n semicolon(force: boolean = false): void {\n this._maybeAddAuxComment();\n if (force) {\n this._appendChar(charCodes.semicolon);\n } else {\n this._queue(charCodes.semicolon);\n }\n this._noLineTerminator = false;\n }\n\n /**\n * Add a right brace to the buffer.\n */\n\n rightBrace(node: t.Node): void {\n if (this.format.minified) {\n this._buf.removeLastSemicolon();\n }\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\"}\");\n }\n\n rightParens(node: t.Node): void {\n this.sourceWithOffset(\"end\", node.loc, -1);\n this.token(\")\");\n }\n\n /**\n * Add a space to the buffer unless it is compact.\n */\n\n space(force: boolean = false): void {\n if (this.format.compact) return;\n\n if (force) {\n this._space();\n } else if (this._buf.hasContent()) {\n const lastCp = this.getLastChar();\n if (lastCp !== charCodes.space && lastCp !== charCodes.lineFeed) {\n this._space();\n }\n }\n }\n\n /**\n * Writes a token that can't be safely parsed without taking whitespace into account.\n */\n\n word(str: string, noLineTerminatorAfter: boolean = false): void {\n this._maybePrintInnerComments();\n\n // prevent concatenating words and creating // comment out of division and regex\n if (\n this._endsWithWord ||\n (str.charCodeAt(0) === charCodes.slash && this.endsWith(charCodes.slash))\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._append(str, false);\n\n this._endsWithWord = true;\n this._noLineTerminator = noLineTerminatorAfter;\n }\n\n /**\n * Writes a number token so that we can validate if it is an integer.\n */\n\n number(str: string, number?: number): void {\n // const NON_DECIMAL_LITERAL = /^0[box]/;\n function isNonDecimalLiteral(str: string) {\n if (str.length > 2 && str.charCodeAt(0) === charCodes.digit0) {\n const secondChar = str.charCodeAt(1);\n return (\n secondChar === charCodes.lowercaseB ||\n secondChar === charCodes.lowercaseO ||\n secondChar === charCodes.lowercaseX\n );\n }\n return false;\n }\n this.word(str);\n\n // Integer tokens need special handling because they cannot have '.'s inserted\n // immediately after them.\n this._endsWithInteger =\n Number.isInteger(number) &&\n !isNonDecimalLiteral(str) &&\n !SCIENTIFIC_NOTATION.test(str) &&\n !ZERO_DECIMAL_INTEGER.test(str) &&\n str.charCodeAt(str.length - 1) !== charCodes.dot;\n }\n\n /**\n * Writes a simple token.\n */\n token(str: string, maybeNewline = false): void {\n this._maybePrintInnerComments();\n\n const lastChar = this.getLastChar();\n const strFirst = str.charCodeAt(0);\n if (\n (lastChar === charCodes.exclamationMark &&\n // space is mandatory to avoid outputting <!--\n // http://javascript.spec.whatwg.org/#comment-syntax\n (str === \"--\" ||\n // Needs spaces to avoid changing a! == 0 to a!== 0\n strFirst === charCodes.equalsTo)) ||\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (strFirst === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (strFirst === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (strFirst === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._append(str, maybeNewline);\n this._noLineTerminator = false;\n }\n\n tokenChar(char: number): void {\n this._maybePrintInnerComments();\n\n const lastChar = this.getLastChar();\n if (\n // Need spaces for operators of the same kind to avoid: `a+++b`\n (char === charCodes.plusSign && lastChar === charCodes.plusSign) ||\n (char === charCodes.dash && lastChar === charCodes.dash) ||\n // Needs spaces to avoid changing '34' to '34.', which would still be a valid number.\n (char === charCodes.dot && this._endsWithInteger)\n ) {\n this._space();\n }\n\n this._maybeAddAuxComment();\n this._appendChar(char);\n this._noLineTerminator = false;\n }\n\n /**\n * Add a newline (or many newlines), maintaining formatting.\n * This function checks the number of newlines in the queue and subtracts them.\n * It currently has some limitations.\n * @see {Buffer#getNewlineCount}\n */\n newline(i: number = 1, force?: boolean): void {\n if (i <= 0) return;\n\n if (!force) {\n if (this.format.retainLines || this.format.compact) return;\n\n if (this.format.concise) {\n this.space();\n return;\n }\n }\n\n if (i > 2) i = 2; // Max two lines\n\n i -= this._buf.getNewlineCount();\n\n for (let j = 0; j < i; j++) {\n this._newline();\n }\n\n return;\n }\n\n endsWith(char: number): boolean {\n return this.getLastChar() === char;\n }\n\n getLastChar(): number {\n return this._buf.getLastChar();\n }\n\n endsWithCharAndNewline(): number {\n return this._buf.endsWithCharAndNewline();\n }\n\n removeTrailingNewline(): void {\n this._buf.removeTrailingNewline();\n }\n\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!loc) {\n cb();\n return;\n }\n\n this._catchUp(\"start\", loc);\n\n this._buf.exactSource(loc, cb);\n }\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!loc) return;\n\n this._catchUp(prop, loc);\n\n this._buf.source(prop, loc);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!loc) return;\n\n this._catchUp(prop, loc);\n\n this._buf.sourceWithOffset(prop, loc, columnOffset);\n }\n\n withSource(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n cb: () => void,\n ): void {\n if (!loc) {\n cb();\n return;\n }\n\n this._catchUp(prop, loc);\n\n this._buf.withSource(prop, loc, cb);\n }\n\n sourceIdentifierName(identifierName: string, pos?: Pos): void {\n if (!this._buf._canMarkIdName) return;\n\n const sourcePosition = this._buf._sourcePosition;\n sourcePosition.identifierNamePos = pos;\n sourcePosition.identifierName = identifierName;\n }\n\n _space(): void {\n this._queue(charCodes.space);\n }\n\n _newline(): void {\n this._queue(charCodes.lineFeed);\n }\n\n _append(str: string, maybeNewline: boolean): void {\n this._maybeAddParen(str);\n this._maybeIndent(str.charCodeAt(0));\n\n this._buf.append(str, maybeNewline);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _appendChar(char: number): void {\n this._maybeAddParenChar(char);\n this._maybeIndent(char);\n\n this._buf.appendChar(char);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _queue(char: number) {\n this._maybeAddParenChar(char);\n this._maybeIndent(char);\n\n this._buf.queue(char);\n\n this._endsWithWord = false;\n this._endsWithInteger = false;\n }\n\n _maybeIndent(firstChar: number): void {\n // we've got a newline before us so prepend on the indentation\n if (\n this._indent &&\n firstChar !== charCodes.lineFeed &&\n this.endsWith(charCodes.lineFeed)\n ) {\n this._buf.queueIndentation(this._getIndent());\n }\n }\n\n _shouldIndent(firstChar: number) {\n // we've got a newline before us so prepend on the indentation\n if (\n this._indent &&\n firstChar !== charCodes.lineFeed &&\n this.endsWith(charCodes.lineFeed)\n ) {\n return true;\n }\n }\n\n _maybeAddParenChar(char: number): void {\n // see startTerminatorless() instance method\n const parenPushNewlineState = this._parenPushNewlineState;\n if (!parenPushNewlineState) return;\n\n // This function does two things:\n // - If needed, prints a parenthesis\n // - If the currently printed string removes the need for the paren,\n // it resets the _parenPushNewlineState field.\n // Almost everything removes the need for a paren, except for\n // comments and whitespaces.\n\n if (char === charCodes.space) {\n // Whitespaces only, the parentheses might still be needed.\n return;\n }\n\n // Check for newline or comment.\n if (char !== charCodes.lineFeed) {\n this._parenPushNewlineState = null;\n return;\n }\n\n this.token(\"(\");\n this.indent();\n parenPushNewlineState.printed = true;\n }\n\n _maybeAddParen(str: string): void {\n // see startTerminatorless() instance method\n const parenPushNewlineState = this._parenPushNewlineState;\n if (!parenPushNewlineState) return;\n\n // This function does two things:\n // - If needed, prints a parenthesis\n // - If the currently printed string removes the need for the paren,\n // it resets the _parenPushNewlineState field.\n // Almost everything removes the need for a paren, except for\n // comments and whitespaces.\n\n const len = str.length;\n\n let i;\n for (i = 0; i < len && str.charCodeAt(i) === charCodes.space; i++) continue;\n if (i === len) {\n // Whitespaces only, the parentheses might still be needed.\n return;\n }\n\n // Check for newline or comment.\n const cha = str.charCodeAt(i);\n if (cha !== charCodes.lineFeed) {\n if (\n // This is not a comment (it doesn't start with /)\n cha !== charCodes.slash ||\n // This is not a comment (it's a / operator)\n i + 1 === len\n ) {\n // After a normal token, the parentheses aren't needed anymore\n this._parenPushNewlineState = null;\n return;\n }\n\n const chaPost = str.charCodeAt(i + 1);\n\n if (chaPost === charCodes.asterisk) {\n // This is a block comment\n return;\n } else if (chaPost !== charCodes.slash) {\n // This is neither a block comment, nor a line comment.\n // After a normal token, the parentheses aren't needed anymore\n this._parenPushNewlineState = null;\n return;\n }\n }\n\n this.token(\"(\");\n this.indent();\n parenPushNewlineState.printed = true;\n }\n\n catchUp(line: number) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const count = line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n\n _catchUp(prop: \"start\" | \"end\", loc?: Loc) {\n if (!this.format.retainLines) return;\n\n // catch up to this nodes newline if we're behind\n const line = loc?.[prop]?.line;\n if (line != null) {\n const count = line - this._buf.getCurrentLine();\n\n for (let i = 0; i < count; i++) {\n this._newline();\n }\n }\n }\n\n /**\n * Get the current indent.\n */\n\n _getIndent(): number {\n return this._indentRepeat * this._indent;\n }\n\n printTerminatorless(node: t.Node, parent: t.Node, isLabel: boolean) {\n /**\n * Set some state that will be modified if a newline has been inserted before any\n * non-space characters.\n *\n * This is to prevent breaking semantics for terminatorless separator nodes. eg:\n *\n * return foo;\n *\n * returns `foo`. But if we do:\n *\n * return\n * foo;\n *\n * `undefined` will be returned and not `foo` due to the terminator.\n */\n if (isLabel) {\n this._noLineTerminator = true;\n this.print(node, parent);\n } else {\n const terminatorState = {\n printed: false,\n };\n this._parenPushNewlineState = terminatorState;\n this.print(node, parent);\n /**\n * Print an ending parentheses if a starting one has been printed.\n */\n if (terminatorState.printed) {\n this.dedent();\n this.newline();\n this.token(\")\");\n }\n }\n }\n\n print(\n node: t.Node | null,\n parent?: t.Node,\n noLineTerminatorAfter?: boolean,\n // trailingCommentsLineOffset also used to check if called from printJoin\n // it will be ignored if `noLineTerminatorAfter||this._noLineTerminator`\n trailingCommentsLineOffset?: number,\n forceParens?: boolean,\n ) {\n if (!node) return;\n\n this._endsWithInnerRaw = false;\n\n const nodeType = node.type;\n const format = this.format;\n\n const oldConcise = format.concise;\n if (\n // @ts-expect-error document _compact AST properties\n node._compact\n ) {\n format.concise = true;\n }\n\n const printMethod =\n this[\n nodeType as Exclude<\n t.Node[\"type\"],\n // removed\n | \"Noop\"\n // renamed\n | t.DeprecatedAliases[\"type\"]\n >\n ];\n if (printMethod === undefined) {\n throw new ReferenceError(\n `unknown node of type ${JSON.stringify(\n nodeType,\n )} with constructor ${JSON.stringify(node.constructor.name)}`,\n );\n }\n\n this._printStack.push(node);\n\n const oldInAux = this._insideAux;\n this._insideAux = node.loc == undefined;\n this._maybeAddAuxComment(this._insideAux && !oldInAux);\n\n const parenthesized = node.extra?.parenthesized as boolean | undefined;\n let shouldPrintParens =\n forceParens ||\n (parenthesized &&\n format.retainFunctionParens &&\n nodeType === \"FunctionExpression\") ||\n needsParens(node, parent, this._printStack);\n\n if (\n !shouldPrintParens &&\n parenthesized &&\n node.leadingComments?.length &&\n node.leadingComments[0].type === \"CommentBlock\"\n ) {\n const parentType = parent?.type;\n switch (parentType) {\n case \"ExpressionStatement\":\n case \"VariableDeclarator\":\n case \"AssignmentExpression\":\n case \"ReturnStatement\":\n break;\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n case \"NewExpression\":\n if (parent.callee !== node) break;\n // falls through\n default:\n shouldPrintParens = true;\n }\n }\n\n if (shouldPrintParens) {\n this.token(\"(\");\n this._endsWithInnerRaw = false;\n }\n\n this._lastCommentLine = 0;\n\n this._printLeadingComments(node, parent);\n\n const loc = nodeType === \"Program\" || nodeType === \"File\" ? null : node.loc;\n\n this.exactSource(loc, printMethod.bind(this, node, parent));\n\n if (shouldPrintParens) {\n this._printTrailingComments(node, parent);\n this.token(\")\");\n this._noLineTerminator = noLineTerminatorAfter;\n } else if (noLineTerminatorAfter && !this._noLineTerminator) {\n this._noLineTerminator = true;\n this._printTrailingComments(node, parent);\n } else {\n this._printTrailingComments(node, parent, trailingCommentsLineOffset);\n }\n\n // end\n this._printStack.pop();\n\n format.concise = oldConcise;\n this._insideAux = oldInAux;\n\n this._endsWithInnerRaw = false;\n }\n\n _maybeAddAuxComment(enteredPositionlessNode?: boolean) {\n if (enteredPositionlessNode) this._printAuxBeforeComment();\n if (!this._insideAux) this._printAuxAfterComment();\n }\n\n _printAuxBeforeComment() {\n if (this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = true;\n\n const comment = this.format.auxiliaryCommentBefore;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n _printAuxAfterComment() {\n if (!this._printAuxAfterOnNextUserNode) return;\n this._printAuxAfterOnNextUserNode = false;\n\n const comment = this.format.auxiliaryCommentAfter;\n if (comment) {\n this._printComment(\n {\n type: \"CommentBlock\",\n value: comment,\n },\n COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n }\n }\n\n getPossibleRaw(\n node:\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DecimalLiteral\n | t.DirectiveLiteral\n | t.JSXText,\n ): string | undefined {\n const extra = node.extra;\n if (\n extra?.raw != null &&\n extra.rawValue != null &&\n node.value === extra.rawValue\n ) {\n // @ts-expect-error: The extra.raw of these AST node types must be a string\n return extra.raw;\n }\n }\n\n printJoin(\n nodes: Array<t.Node> | undefined | null,\n parent: t.Node,\n opts: PrintJoinOptions = {},\n ) {\n if (!nodes?.length) return;\n\n let { indent } = opts;\n\n if (indent == null && this.format.retainLines) {\n const startLine = nodes[0].loc?.start.line;\n if (startLine != null && startLine !== this._buf.getCurrentLine()) {\n indent = true;\n }\n }\n\n if (indent) this.indent();\n\n const newlineOpts: AddNewlinesOptions = {\n addNewlines: opts.addNewlines,\n nextNodeStartLine: 0,\n };\n\n const separator = opts.separator ? opts.separator.bind(this) : null;\n\n const len = nodes.length;\n for (let i = 0; i < len; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n if (opts.statement) this._printNewline(i === 0, newlineOpts);\n\n this.print(node, parent, undefined, opts.trailingCommentsLineOffset || 0);\n\n opts.iterator?.(node, i);\n\n if (i < len - 1) separator?.();\n\n if (opts.statement) {\n if (!node.trailingComments?.length) {\n this._lastCommentLine = 0;\n }\n\n if (i + 1 === len) {\n this.newline(1);\n } else {\n const nextNode = nodes[i + 1];\n newlineOpts.nextNodeStartLine = nextNode.loc?.start.line || 0;\n\n this._printNewline(true, newlineOpts);\n }\n }\n }\n\n if (indent) this.dedent();\n }\n\n printAndIndentOnComments(node: t.Node, parent: t.Node) {\n const indent = node.leadingComments && node.leadingComments.length > 0;\n if (indent) this.indent();\n this.print(node, parent);\n if (indent) this.dedent();\n }\n\n printBlock(parent: Extract<t.Node, { body: t.Statement }>) {\n const node = parent.body;\n\n if (node.type !== \"EmptyStatement\") {\n this.space();\n }\n\n this.print(node, parent);\n }\n\n _printTrailingComments(node: t.Node, parent?: t.Node, lineOffset?: number) {\n const { innerComments, trailingComments } = node;\n // We print inner comments here, so that if for some reason they couldn't\n // be printed in earlier locations they are still printed *somewhere*,\n // even if at the end of the node.\n if (innerComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n innerComments,\n node,\n parent,\n lineOffset,\n );\n }\n if (trailingComments?.length) {\n this._printComments(\n COMMENT_TYPE.TRAILING,\n trailingComments,\n node,\n parent,\n lineOffset,\n );\n }\n }\n\n _printLeadingComments(node: t.Node, parent: t.Node) {\n const comments = node.leadingComments;\n if (!comments?.length) return;\n this._printComments(COMMENT_TYPE.LEADING, comments, node, parent);\n }\n\n _maybePrintInnerComments() {\n if (this._endsWithInnerRaw) this.printInnerComments();\n this._endsWithInnerRaw = true;\n this._indentInnerComments = true;\n }\n\n printInnerComments() {\n const node = this._printStack[this._printStack.length - 1];\n const comments = node.innerComments;\n if (!comments?.length) return;\n\n const hasSpace = this.endsWith(charCodes.space);\n const indent = this._indentInnerComments;\n const printedCommentsCount = this._printedComments.size;\n if (indent) this.indent();\n this._printComments(COMMENT_TYPE.INNER, comments, node);\n if (hasSpace && printedCommentsCount !== this._printedComments.size) {\n this.space();\n }\n if (indent) this.dedent();\n }\n\n noIndentInnerCommentsHere() {\n this._indentInnerComments = false;\n }\n\n printSequence(\n nodes: t.Node[],\n parent: t.Node,\n opts: PrintSequenceOptions = {},\n ) {\n opts.statement = true;\n opts.indent ??= false;\n this.printJoin(nodes, parent, opts);\n }\n\n printList(items: t.Node[], parent: t.Node, opts: PrintListOptions = {}) {\n if (opts.separator == null) {\n opts.separator = commaSeparator;\n }\n\n this.printJoin(items, parent, opts);\n }\n\n _printNewline(newLine: boolean, opts: AddNewlinesOptions) {\n const format = this.format;\n\n // Fast path since 'this.newline' does nothing when not tracking lines.\n if (format.retainLines || format.compact) return;\n\n // Fast path for concise since 'this.newline' just inserts a space when\n // concise formatting is in use.\n if (format.concise) {\n this.space();\n return;\n }\n\n if (!newLine) {\n return;\n }\n\n const startLine = opts.nextNodeStartLine;\n const lastCommentLine = this._lastCommentLine;\n if (startLine > 0 && lastCommentLine > 0) {\n const offset = startLine - lastCommentLine;\n if (offset >= 0) {\n this.newline(offset || 1);\n return;\n }\n }\n\n // don't add newlines at the beginning of the file\n if (this._buf.hasContent()) {\n // Here is the logic of the original line wrapping according to the node layout, we are not using it now.\n // We currently add at most one newline to each node in the list, ignoring `opts.addNewlines`.\n\n // let lines = 0;\n // if (!leading) lines++; // always include at least a single line after\n // if (opts.addNewlines) lines += opts.addNewlines(leading, node) || 0;\n\n // const needs = leading ? needsWhitespaceBefore : needsWhitespaceAfter;\n // if (needs(node, parent)) lines++;\n\n // this.newline(Math.min(2, lines));\n\n this.newline(1);\n }\n }\n\n // Returns `PRINT_COMMENT_HINT.DEFER` if the comment cannot be printed in this position due to\n // line terminators, signaling that the print comments loop can stop and\n // resume printing comments at the next possible position. This happens when\n // printing inner comments, since if we have an inner comment with a multiline\n // there is at least one inner position where line terminators are allowed.\n _shouldPrintComment(comment: t.Comment): PRINT_COMMENT_HINT {\n // Some plugins (such as flow-strip-types) use this to mark comments as removed using the AST-root 'comments' property,\n // where they can't manually mutate the AST node comment lists.\n if (comment.ignore) return PRINT_COMMENT_HINT.SKIP;\n\n if (this._printedComments.has(comment)) return PRINT_COMMENT_HINT.SKIP;\n\n if (\n this._noLineTerminator &&\n HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)\n ) {\n return PRINT_COMMENT_HINT.DEFER;\n }\n\n this._printedComments.add(comment);\n\n if (!this.format.shouldPrintComment(comment.value)) {\n return PRINT_COMMENT_HINT.SKIP;\n }\n\n return PRINT_COMMENT_HINT.ALLOW;\n }\n\n _printComment(comment: t.Comment, skipNewLines: COMMENT_SKIP_NEWLINE) {\n const noLineTerminator = this._noLineTerminator;\n const isBlockComment = comment.type === \"CommentBlock\";\n\n // Add a newline before and after a block comment, unless explicitly\n // disallowed\n const printNewLines =\n isBlockComment &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.ALL &&\n !this._noLineTerminator;\n\n if (\n printNewLines &&\n this._buf.hasContent() &&\n skipNewLines !== COMMENT_SKIP_NEWLINE.LEADING\n ) {\n this.newline(1);\n }\n\n const lastCharCode = this.getLastChar();\n if (\n lastCharCode !== charCodes.leftSquareBracket &&\n lastCharCode !== charCodes.leftCurlyBrace\n ) {\n this.space();\n }\n\n let val;\n if (isBlockComment) {\n const { _parenPushNewlineState } = this;\n if (\n _parenPushNewlineState?.printed === false &&\n HAS_NEWLINE.test(comment.value)\n ) {\n this.token(\"(\");\n this.indent();\n _parenPushNewlineState.printed = true;\n }\n val = `/*${comment.value}*/`;\n if (this.format.indent.adjustMultilineComment) {\n const offset = comment.loc?.start.column;\n if (offset) {\n const newlineRegex = new RegExp(\"\\\\n\\\\s{1,\" + offset + \"}\", \"g\");\n val = val.replace(newlineRegex, \"\\n\");\n }\n if (this.format.concise) {\n val = val.replace(/\\n(?!$)/g, `\\n`);\n } else {\n let indentSize = this.format.retainLines\n ? 0\n : this._buf.getCurrentColumn();\n\n if (this._shouldIndent(charCodes.slash) || this.format.retainLines) {\n indentSize += this._getIndent();\n }\n\n val = val.replace(/\\n(?!$)/g, `\\n${\" \".repeat(indentSize)}`);\n }\n }\n } else if (!noLineTerminator) {\n val = `//${comment.value}`;\n } else {\n // It was a single-line comment, so it's guaranteed to not\n // contain newlines and it can be safely printed as a block\n // comment.\n val = `/*${comment.value}*/`;\n }\n\n // Avoid creating //* comments\n if (this.endsWith(charCodes.slash)) this._space();\n\n this.source(\"start\", comment.loc);\n this._append(val, isBlockComment);\n\n if (!isBlockComment && !noLineTerminator) {\n this.newline(1, true);\n }\n\n if (printNewLines && skipNewLines !== COMMENT_SKIP_NEWLINE.TRAILING) {\n this.newline(1);\n }\n }\n\n _printComments(\n type: COMMENT_TYPE,\n comments: readonly t.Comment[],\n node: t.Node,\n parent?: t.Node,\n lineOffset: number = 0,\n ) {\n const nodeLoc = node.loc;\n const len = comments.length;\n let hasLoc = !!nodeLoc;\n const nodeStartLine = hasLoc ? nodeLoc.start.line : 0;\n const nodeEndLine = hasLoc ? nodeLoc.end.line : 0;\n let lastLine = 0;\n let leadingCommentNewline = 0;\n\n const maybeNewline = this._noLineTerminator\n ? function () {}\n : this.newline.bind(this);\n\n for (let i = 0; i < len; i++) {\n const comment = comments[i];\n\n const shouldPrint = this._shouldPrintComment(comment);\n if (shouldPrint === PRINT_COMMENT_HINT.DEFER) {\n hasLoc = false;\n break;\n }\n if (hasLoc && comment.loc && shouldPrint === PRINT_COMMENT_HINT.ALLOW) {\n const commentStartLine = comment.loc.start.line;\n const commentEndLine = comment.loc.end.line;\n if (type === COMMENT_TYPE.LEADING) {\n let offset = 0;\n if (i === 0) {\n // Because currently we cannot handle blank lines before leading comments,\n // we always wrap before and after multi-line comments.\n if (\n this._buf.hasContent() &&\n (comment.type === \"CommentLine\" ||\n commentStartLine != commentEndLine)\n ) {\n offset = leadingCommentNewline = 1;\n }\n } else {\n offset = commentStartLine - lastLine;\n }\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n maybeNewline(\n Math.max(nodeStartLine - lastLine, leadingCommentNewline),\n );\n lastLine = nodeStartLine;\n }\n } else if (type === COMMENT_TYPE.INNER) {\n const offset =\n commentStartLine - (i === 0 ? nodeStartLine : lastLine);\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n\n if (i + 1 === len) {\n maybeNewline(Math.min(1, nodeEndLine - lastLine)); // TODO: Improve here when inner comments processing is stronger\n lastLine = nodeEndLine;\n }\n } else {\n const offset =\n commentStartLine - (i === 0 ? nodeEndLine - lineOffset : lastLine);\n lastLine = commentEndLine;\n\n maybeNewline(offset);\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n }\n } else {\n hasLoc = false;\n if (shouldPrint !== PRINT_COMMENT_HINT.ALLOW) {\n continue;\n }\n\n if (len === 1) {\n const singleLine = comment.loc\n ? comment.loc.start.line === comment.loc.end.line\n : !HAS_NEWLINE.test(comment.value);\n\n const shouldSkipNewline =\n singleLine &&\n !isStatement(node) &&\n !isClassBody(parent) &&\n !isTSInterfaceBody(parent) &&\n !isTSEnumDeclaration(parent);\n\n if (type === COMMENT_TYPE.LEADING) {\n this._printComment(\n comment,\n (shouldSkipNewline && node.type !== \"ObjectExpression\") ||\n (singleLine && isFunction(parent, { body: node }))\n ? COMMENT_SKIP_NEWLINE.ALL\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else if (shouldSkipNewline && type === COMMENT_TYPE.TRAILING) {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.ALL);\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n } else if (\n type === COMMENT_TYPE.INNER &&\n !(node.type === \"ObjectExpression\" && node.properties.length > 1) &&\n node.type !== \"ClassBody\" &&\n node.type !== \"TSInterfaceBody\"\n ) {\n // class X {\n // /*:: a: number*/\n // /*:: b: ?string*/\n // }\n\n this._printComment(\n comment,\n i === 0\n ? COMMENT_SKIP_NEWLINE.LEADING\n : i === len - 1\n ? COMMENT_SKIP_NEWLINE.TRAILING\n : COMMENT_SKIP_NEWLINE.DEFAULT,\n );\n } else {\n this._printComment(comment, COMMENT_SKIP_NEWLINE.DEFAULT);\n }\n }\n }\n\n if (type === COMMENT_TYPE.TRAILING && hasLoc && lastLine) {\n this._lastCommentLine = lastLine;\n }\n }\n}\n\n// Expose the node type functions and helpers on the prototype for easy usage.\nObject.assign(Printer.prototype, generatorFunctions);\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 has Noop print method\n Printer.prototype.Noop = function Noop(this: Printer) {};\n}\n\ntype GeneratorFunctions = typeof generatorFunctions;\ninterface Printer extends GeneratorFunctions {}\nexport default Printer;\n\nfunction commaSeparator(this: Printer) {\n this.token(\",\");\n this.space();\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/generator/package.json b/node_modules/@babel/generator/package.json index b4c036e9..62a47978 100644 --- a/node_modules/@babel/generator/package.json +++ b/node_modules/@babel/generator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/generator", - "version": "7.23.0", + "version": "7.23.6", "description": "Turns an AST into code.", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", @@ -19,14 +19,14 @@ "lib" ], "dependencies": { - "@babel/types": "^7.23.0", + "@babel/types": "^7.23.6", "@jridgewell/gen-mapping": "^0.3.2", "@jridgewell/trace-mapping": "^0.3.17", "jsesc": "^2.5.1" }, "devDependencies": { - "@babel/helper-fixtures": "^7.22.19", - "@babel/parser": "^7.23.0", + "@babel/helper-fixtures": "^7.23.4", + "@babel/parser": "^7.23.6", "@jridgewell/sourcemap-codec": "^1.4.15", "@types/jsesc": "^2.5.0", "charcodes": "^0.2.0" diff --git a/node_modules/@babel/helper-compilation-targets/lib/filter-items.js b/node_modules/@babel/helper-compilation-targets/lib/filter-items.js index 3f74cb93..d898c950 100644 --- a/node_modules/@babel/helper-compilation-targets/lib/filter-items.js +++ b/node_modules/@babel/helper-compilation-targets/lib/filter-items.js @@ -59,8 +59,8 @@ function filterItems(list, includes, excludes, targets, defaultIncludes, default } } } - defaultIncludes == null ? void 0 : defaultIncludes.forEach(item => !excludes.has(item) && result.add(item)); - defaultExcludes == null ? void 0 : defaultExcludes.forEach(item => !includes.has(item) && result.delete(item)); + defaultIncludes == null || defaultIncludes.forEach(item => !excludes.has(item) && result.add(item)); + defaultExcludes == null || defaultExcludes.forEach(item => !includes.has(item) && result.delete(item)); return result; } diff --git a/node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map b/node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map index f4987603..6d826769 100644 --- a/node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map +++ b/node_modules/@babel/helper-compilation-targets/lib/filter-items.js.map @@ -1 +1 @@ -{"version":3,"names":["_semver","require","_plugins","_utils","targetsSupported","target","support","targetEnvironments","Object","keys","length","unsupportedEnvironments","filter","environment","lowestImplementedVersion","getLowestImplementedVersion","lowestTargetedVersion","isUnreleasedVersion","semver","valid","toString","Error","gt","semverify","isRequired","name","targets","compatData","pluginsCompatData","includes","excludes","has","filterItems","list","defaultIncludes","defaultExcludes","pluginSyntaxMap","result","Set","options","item","add","shippedProposalsSyntax","get","forEach","delete"],"sources":["../src/filter-items.ts"],"sourcesContent":["import semver from \"semver\";\n\nimport pluginsCompatData from \"@babel/compat-data/plugins\";\n\nimport type { Targets } from \"./types.ts\";\nimport {\n getLowestImplementedVersion,\n isUnreleasedVersion,\n semverify,\n} from \"./utils.ts\";\n\nexport function targetsSupported(target: Targets, support: Targets) {\n const targetEnvironments = Object.keys(target) as Array<keyof Targets>;\n\n if (targetEnvironments.length === 0) {\n return false;\n }\n\n const unsupportedEnvironments = targetEnvironments.filter(environment => {\n const lowestImplementedVersion = getLowestImplementedVersion(\n support,\n environment,\n );\n\n // Feature is not implemented in that environment\n if (!lowestImplementedVersion) {\n return true;\n }\n\n const lowestTargetedVersion = target[environment];\n\n // If targets has unreleased value as a lowest version, then don't require a plugin.\n if (isUnreleasedVersion(lowestTargetedVersion, environment)) {\n return false;\n }\n\n // Include plugin if it is supported in the unreleased environment, which wasn't specified in targets\n if (isUnreleasedVersion(lowestImplementedVersion, environment)) {\n return true;\n }\n\n if (!semver.valid(lowestTargetedVersion.toString())) {\n throw new Error(\n `Invalid version passed for target \"${environment}\": \"${lowestTargetedVersion}\". ` +\n \"Versions must be in semver format (major.minor.patch)\",\n );\n }\n\n return semver.gt(\n semverify(lowestImplementedVersion),\n lowestTargetedVersion.toString(),\n );\n });\n\n return unsupportedEnvironments.length === 0;\n}\n\nexport function isRequired(\n name: string,\n targets: Targets,\n {\n compatData = pluginsCompatData,\n includes,\n excludes,\n }: {\n compatData?: { [feature: string]: Targets };\n includes?: Set<string>;\n excludes?: Set<string>;\n } = {},\n) {\n if (excludes?.has(name)) return false;\n if (includes?.has(name)) return true;\n return !targetsSupported(targets, compatData[name]);\n}\n\nexport default function filterItems(\n list: { [feature: string]: Targets },\n includes: Set<string>,\n excludes: Set<string>,\n targets: Targets,\n defaultIncludes: Array<string> | null,\n defaultExcludes?: Array<string> | null,\n pluginSyntaxMap?: Map<string, string | null>,\n) {\n const result = new Set<string>();\n const options = { compatData: list, includes, excludes };\n\n for (const item in list) {\n if (isRequired(item, targets, options)) {\n result.add(item);\n } else if (pluginSyntaxMap) {\n const shippedProposalsSyntax = pluginSyntaxMap.get(item);\n\n if (shippedProposalsSyntax) {\n result.add(shippedProposalsSyntax);\n }\n }\n }\n\n defaultIncludes?.forEach(item => !excludes.has(item) && result.add(item));\n defaultExcludes?.forEach(item => !includes.has(item) && result.delete(item));\n\n return result;\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_semver","require","_plugins","_utils","targetsSupported","target","support","targetEnvironments","Object","keys","length","unsupportedEnvironments","filter","environment","lowestImplementedVersion","getLowestImplementedVersion","lowestTargetedVersion","isUnreleasedVersion","semver","valid","toString","Error","gt","semverify","isRequired","name","targets","compatData","pluginsCompatData","includes","excludes","has","filterItems","list","defaultIncludes","defaultExcludes","pluginSyntaxMap","result","Set","options","item","add","shippedProposalsSyntax","get","forEach","delete"],"sources":["../src/filter-items.ts"],"sourcesContent":["import semver from \"semver\";\n\nimport pluginsCompatData from \"@babel/compat-data/plugins\";\n\nimport type { Targets } from \"./types.ts\";\nimport {\n getLowestImplementedVersion,\n isUnreleasedVersion,\n semverify,\n} from \"./utils.ts\";\n\nexport function targetsSupported(target: Targets, support: Targets) {\n const targetEnvironments = Object.keys(target) as Array<keyof Targets>;\n\n if (targetEnvironments.length === 0) {\n return false;\n }\n\n const unsupportedEnvironments = targetEnvironments.filter(environment => {\n const lowestImplementedVersion = getLowestImplementedVersion(\n support,\n environment,\n );\n\n // Feature is not implemented in that environment\n if (!lowestImplementedVersion) {\n return true;\n }\n\n const lowestTargetedVersion = target[environment];\n\n // If targets has unreleased value as a lowest version, then don't require a plugin.\n if (isUnreleasedVersion(lowestTargetedVersion, environment)) {\n return false;\n }\n\n // Include plugin if it is supported in the unreleased environment, which wasn't specified in targets\n if (isUnreleasedVersion(lowestImplementedVersion, environment)) {\n return true;\n }\n\n if (!semver.valid(lowestTargetedVersion.toString())) {\n throw new Error(\n `Invalid version passed for target \"${environment}\": \"${lowestTargetedVersion}\". ` +\n \"Versions must be in semver format (major.minor.patch)\",\n );\n }\n\n return semver.gt(\n semverify(lowestImplementedVersion),\n lowestTargetedVersion.toString(),\n );\n });\n\n return unsupportedEnvironments.length === 0;\n}\n\nexport function isRequired(\n name: string,\n targets: Targets,\n {\n compatData = pluginsCompatData,\n includes,\n excludes,\n }: {\n compatData?: { [feature: string]: Targets };\n includes?: Set<string>;\n excludes?: Set<string>;\n } = {},\n) {\n if (excludes?.has(name)) return false;\n if (includes?.has(name)) return true;\n return !targetsSupported(targets, compatData[name]);\n}\n\nexport default function filterItems(\n list: { [feature: string]: Targets },\n includes: Set<string>,\n excludes: Set<string>,\n targets: Targets,\n defaultIncludes: Array<string> | null,\n defaultExcludes?: Array<string> | null,\n pluginSyntaxMap?: Map<string, string | null>,\n) {\n const result = new Set<string>();\n const options = { compatData: list, includes, excludes };\n\n for (const item in list) {\n if (isRequired(item, targets, options)) {\n result.add(item);\n } else if (pluginSyntaxMap) {\n const shippedProposalsSyntax = pluginSyntaxMap.get(item);\n\n if (shippedProposalsSyntax) {\n result.add(shippedProposalsSyntax);\n }\n }\n }\n\n defaultIncludes?.forEach(item => !excludes.has(item) && result.add(item));\n defaultExcludes?.forEach(item => !includes.has(item) && result.delete(item));\n\n return result;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-compilation-targets/lib/options.js b/node_modules/@babel/helper-compilation-targets/lib/options.js index 71c949b3..cdb7c00d 100644 --- a/node_modules/@babel/helper-compilation-targets/lib/options.js +++ b/node_modules/@babel/helper-compilation-targets/lib/options.js @@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.TargetNames = void 0; -const TargetNames = { +const TargetNames = exports.TargetNames = { node: "node", deno: "deno", chrome: "chrome", @@ -20,6 +20,5 @@ const TargetNames = { rhino: "rhino", opera_mobile: "opera_mobile" }; -exports.TargetNames = TargetNames; //# sourceMappingURL=options.js.map diff --git a/node_modules/@babel/helper-compilation-targets/lib/options.js.map b/node_modules/@babel/helper-compilation-targets/lib/options.js.map index 6a347ba6..517b19e1 100644 --- a/node_modules/@babel/helper-compilation-targets/lib/options.js.map +++ b/node_modules/@babel/helper-compilation-targets/lib/options.js.map @@ -1 +1 @@ -{"version":3,"names":["TargetNames","node","deno","chrome","opera","edge","firefox","safari","ie","ios","android","electron","samsung","rhino","opera_mobile","exports"],"sources":["../src/options.ts"],"sourcesContent":["export const TargetNames = {\n node: \"node\",\n deno: \"deno\",\n chrome: \"chrome\",\n opera: \"opera\",\n edge: \"edge\",\n firefox: \"firefox\",\n safari: \"safari\",\n ie: \"ie\",\n ios: \"ios\",\n android: \"android\",\n electron: \"electron\",\n samsung: \"samsung\",\n rhino: \"rhino\",\n opera_mobile: \"opera_mobile\",\n};\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAG;EACzBC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,EAAE,EAAE,IAAI;EACRC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,OAAO;EACdC,YAAY,EAAE;AAChB,CAAC;AAACC,OAAA,CAAAf,WAAA,GAAAA,WAAA"}
\ No newline at end of file +{"version":3,"names":["TargetNames","exports","node","deno","chrome","opera","edge","firefox","safari","ie","ios","android","electron","samsung","rhino","opera_mobile"],"sources":["../src/options.ts"],"sourcesContent":["export const TargetNames = {\n node: \"node\",\n deno: \"deno\",\n chrome: \"chrome\",\n opera: \"opera\",\n edge: \"edge\",\n firefox: \"firefox\",\n safari: \"safari\",\n ie: \"ie\",\n ios: \"ios\",\n android: \"android\",\n electron: \"electron\",\n samsung: \"samsung\",\n rhino: \"rhino\",\n opera_mobile: \"opera_mobile\",\n};\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzBE,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,EAAE,EAAE,IAAI;EACRC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAClBC,QAAQ,EAAE,UAAU;EACpBC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,OAAO;EACdC,YAAY,EAAE;AAChB,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-compilation-targets/lib/targets.js b/node_modules/@babel/helper-compilation-targets/lib/targets.js index 6c4f6831..d4d5e06c 100644 --- a/node_modules/@babel/helper-compilation-targets/lib/targets.js +++ b/node_modules/@babel/helper-compilation-targets/lib/targets.js @@ -4,11 +4,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.unreleasedLabels = exports.browserNameMap = void 0; -const unreleasedLabels = { +const unreleasedLabels = exports.unreleasedLabels = { safari: "tp" }; -exports.unreleasedLabels = unreleasedLabels; -const browserNameMap = { +const browserNameMap = exports.browserNameMap = { and_chr: "chrome", and_ff: "firefox", android: "android", @@ -25,6 +24,5 @@ const browserNameMap = { safari: "safari", samsung: "samsung" }; -exports.browserNameMap = browserNameMap; //# sourceMappingURL=targets.js.map diff --git a/node_modules/@babel/helper-compilation-targets/lib/targets.js.map b/node_modules/@babel/helper-compilation-targets/lib/targets.js.map index a770f960..503c1d87 100644 --- a/node_modules/@babel/helper-compilation-targets/lib/targets.js.map +++ b/node_modules/@babel/helper-compilation-targets/lib/targets.js.map @@ -1 +1 @@ -{"version":3,"names":["unreleasedLabels","safari","exports","browserNameMap","and_chr","and_ff","android","chrome","edge","firefox","ie","ie_mob","ios_saf","node","deno","op_mob","opera","samsung"],"sources":["../src/targets.ts"],"sourcesContent":["export const unreleasedLabels = {\n safari: \"tp\",\n} as const;\n\n// Map from browserslist|@mdn/browser-compat-data browser names to @kangax/compat-table browser names\nexport const browserNameMap = {\n and_chr: \"chrome\",\n and_ff: \"firefox\",\n android: \"android\",\n chrome: \"chrome\",\n edge: \"edge\",\n firefox: \"firefox\",\n ie: \"ie\",\n ie_mob: \"ie\",\n ios_saf: \"ios\",\n node: \"node\",\n deno: \"deno\",\n op_mob: \"opera_mobile\",\n opera: \"opera\",\n safari: \"safari\",\n samsung: \"samsung\",\n} as const;\n\nexport type BrowserslistBrowserName = keyof typeof browserNameMap;\n"],"mappings":";;;;;;AAAO,MAAMA,gBAAgB,GAAG;EAC9BC,MAAM,EAAE;AACV,CAAU;AAACC,OAAA,CAAAF,gBAAA,GAAAA,gBAAA;AAGJ,MAAMG,cAAc,GAAG;EAC5BC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,SAAS;EAClBC,EAAE,EAAE,IAAI;EACRC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE,KAAK;EACdC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,cAAc;EACtBC,KAAK,EAAE,OAAO;EACdf,MAAM,EAAE,QAAQ;EAChBgB,OAAO,EAAE;AACX,CAAU;AAACf,OAAA,CAAAC,cAAA,GAAAA,cAAA"}
\ No newline at end of file +{"version":3,"names":["unreleasedLabels","exports","safari","browserNameMap","and_chr","and_ff","android","chrome","edge","firefox","ie","ie_mob","ios_saf","node","deno","op_mob","opera","samsung"],"sources":["../src/targets.ts"],"sourcesContent":["export const unreleasedLabels = {\n safari: \"tp\",\n} as const;\n\n// Map from browserslist|@mdn/browser-compat-data browser names to @kangax/compat-table browser names\nexport const browserNameMap = {\n and_chr: \"chrome\",\n and_ff: \"firefox\",\n android: \"android\",\n chrome: \"chrome\",\n edge: \"edge\",\n firefox: \"firefox\",\n ie: \"ie\",\n ie_mob: \"ie\",\n ios_saf: \"ios\",\n node: \"node\",\n deno: \"deno\",\n op_mob: \"opera_mobile\",\n opera: \"opera\",\n safari: \"safari\",\n samsung: \"samsung\",\n} as const;\n\nexport type BrowserslistBrowserName = keyof typeof browserNameMap;\n"],"mappings":";;;;;;AAAO,MAAMA,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,GAAG;EAC9BE,MAAM,EAAE;AACV,CAAU;AAGH,MAAMC,cAAc,GAAAF,OAAA,CAAAE,cAAA,GAAG;EAC5BC,OAAO,EAAE,QAAQ;EACjBC,MAAM,EAAE,SAAS;EACjBC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,QAAQ;EAChBC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,SAAS;EAClBC,EAAE,EAAE,IAAI;EACRC,MAAM,EAAE,IAAI;EACZC,OAAO,EAAE,KAAK;EACdC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE,cAAc;EACtBC,KAAK,EAAE,OAAO;EACdd,MAAM,EAAE,QAAQ;EAChBe,OAAO,EAAE;AACX,CAAU"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-compilation-targets/package.json b/node_modules/@babel/helper-compilation-targets/package.json index 677cd048..9d908fd9 100644 --- a/node_modules/@babel/helper-compilation-targets/package.json +++ b/node_modules/@babel/helper-compilation-targets/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-compilation-targets", - "version": "7.22.15", + "version": "7.23.6", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", "description": "Helper functions on Babel compilation targets", @@ -22,9 +22,9 @@ "babel-plugin" ], "dependencies": { - "@babel/compat-data": "^7.22.9", - "@babel/helper-validator-option": "^7.22.15", - "browserslist": "^4.21.9", + "@babel/compat-data": "^7.23.5", + "@babel/helper-validator-option": "^7.23.5", + "browserslist": "^4.22.2", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js index 887e8126..33af0cd8 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js @@ -124,7 +124,9 @@ function buildDecoratedClass(ref, path, elements, file) { classPathDesc = "declarations.0.init." + classPathDesc; } return { - instanceNodes: [_core.template.statement.ast`${_core.types.cloneNode(initializeId)}(this)`], + instanceNodes: [_core.template.statement.ast` + ${_core.types.cloneNode(initializeId)}(this) + `], wrapClass(path) { path.replaceWith(replacement); return path.get(classPathDesc); diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map index ab81512d..fc829aeb 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/decorators.js.map @@ -1 +1 @@ -{"version":3,"names":["_core","require","_helperReplaceSupers","_helperFunctionName","hasOwnDecorators","node","_node$decorators","decorators","length","hasDecorators","body","some","prop","key","value","t","objectProperty","identifier","method","objectMethod","blockStatement","takeDecorators","result","arrayExpression","map","decorator","expression","undefined","getKey","computed","isIdentifier","stringLiteral","name","String","extractElementDescriptor","file","classRef","superRef","path","isMethod","isClassMethod","isPrivate","buildCodeFrameError","type","scope","isTSDeclareMethod","ReplaceSupers","methodPath","objectRef","refToPreserve","replace","properties","kind","static","booleanLiteral","filter","Boolean","id","transformed","toExpression","push","nameFunction","isClassProperty","template","statements","ast","buildUndefinedNode","remove","objectExpression","addDecorateHelper","addHelper","buildDecoratedClass","ref","elements","initializeId","generateUidIdentifier","isDeclaration","isStrict","isInStrictMode","superClass","cloneNode","superId","generateUidIdentifierBasedOnNode","classDecorators","definitions","element","abstract","wrapperCall","nullLiteral","arguments","directives","directive","directiveLiteral","replacement","classPathDesc","statement","instanceNodes","wrapClass","replaceWith","get"],"sources":["../src/decorators.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n\nimport { types as t, template } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport nameFunction from \"@babel/helper-function-name\";\n\ntype Decoratable = Extract<t.Node, { decorators?: t.Decorator[] | null }>;\n\nexport function hasOwnDecorators(node: t.Class | t.ClassBody[\"body\"][number]) {\n // @ts-expect-error: 'decorators' not in TSIndexSignature\n return !!node.decorators?.length;\n}\n\nexport function hasDecorators(node: t.Class) {\n return hasOwnDecorators(node) || node.body.body.some(hasOwnDecorators);\n}\n\nfunction prop(key: string, value?: t.Expression) {\n if (!value) return null;\n return t.objectProperty(t.identifier(key), value);\n}\n\nfunction method(key: string, body: t.Statement[]) {\n return t.objectMethod(\n \"method\",\n t.identifier(key),\n [],\n t.blockStatement(body),\n );\n}\n\nfunction takeDecorators(node: Decoratable) {\n let result: t.ArrayExpression | undefined;\n if (node.decorators && node.decorators.length > 0) {\n result = t.arrayExpression(\n node.decorators.map(decorator => decorator.expression),\n );\n }\n node.decorators = undefined;\n return result;\n}\n\ntype AcceptedElement = Exclude<ClassElement, t.TSIndexSignature>;\ntype SupportedElement = Exclude<\n AcceptedElement,\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.StaticBlock\n>;\n\nfunction getKey(node: SupportedElement) {\n if (node.computed) {\n return node.key;\n } else if (t.isIdentifier(node.key)) {\n return t.stringLiteral(node.key.name);\n } else {\n return t.stringLiteral(\n String(\n // A non-identifier non-computed key\n (node.key as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value,\n ),\n );\n }\n}\n\nfunction extractElementDescriptor(\n file: File,\n classRef: t.Identifier,\n superRef: t.Identifier,\n path: NodePath<AcceptedElement>,\n) {\n const isMethod = path.isClassMethod();\n if (path.isPrivate()) {\n throw path.buildCodeFrameError(\n `Private ${\n isMethod ? \"methods\" : \"fields\"\n } in decorated classes are not supported yet.`,\n );\n }\n if (path.node.type === \"ClassAccessorProperty\") {\n throw path.buildCodeFrameError(\n `Accessor properties are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n if (path.node.type === \"StaticBlock\") {\n throw path.buildCodeFrameError(\n `Static blocks are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n\n const { node, scope } = path as NodePath<SupportedElement>;\n\n if (!path.isTSDeclareMethod()) {\n new ReplaceSupers({\n methodPath: path as NodePath<\n Exclude<SupportedElement, t.TSDeclareMethod>\n >,\n objectRef: classRef,\n superRef,\n file,\n refToPreserve: classRef,\n }).replace();\n }\n\n const properties: t.ObjectExpression[\"properties\"] = [\n prop(\"kind\", t.stringLiteral(t.isClassMethod(node) ? node.kind : \"field\")),\n prop(\"decorators\", takeDecorators(node as Decoratable)),\n prop(\"static\", node.static && t.booleanLiteral(true)),\n prop(\"key\", getKey(node)),\n ].filter(Boolean);\n\n if (t.isClassMethod(node)) {\n const id = node.computed\n ? null\n : (node.key as\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral);\n const transformed = t.toExpression(node);\n properties.push(\n prop(\n \"value\",\n nameFunction({ node: transformed, id, scope }) || transformed,\n ),\n );\n } else if (t.isClassProperty(node) && node.value) {\n properties.push(\n method(\"value\", template.statements.ast`return ${node.value}`),\n );\n } else {\n properties.push(prop(\"value\", scope.buildUndefinedNode()));\n }\n\n path.remove();\n\n return t.objectExpression(properties);\n}\n\nfunction addDecorateHelper(file: File) {\n return file.addHelper(\"decorate\");\n}\n\ntype ClassElement = t.Class[\"body\"][\"body\"][number];\ntype ClassElementPath = NodePath<ClassElement>;\n\nexport function buildDecoratedClass(\n ref: t.Identifier,\n path: NodePath<t.Class>,\n elements: ClassElementPath[],\n file: File,\n) {\n const { node, scope } = path;\n const initializeId = scope.generateUidIdentifier(\"initialize\");\n const isDeclaration = node.id && path.isDeclaration();\n const isStrict = path.isInStrictMode();\n const { superClass } = node;\n\n node.type = \"ClassDeclaration\";\n if (!node.id) node.id = t.cloneNode(ref);\n\n let superId: t.Identifier;\n if (superClass) {\n superId = scope.generateUidIdentifierBasedOnNode(node.superClass, \"super\");\n node.superClass = superId;\n }\n\n const classDecorators = takeDecorators(node);\n const definitions = t.arrayExpression(\n elements\n .filter(\n element =>\n // @ts-expect-error Ignore TypeScript's abstract methods (see #10514)\n !element.node.abstract && element.node.type !== \"TSIndexSignature\",\n )\n .map(path =>\n extractElementDescriptor(\n file,\n node.id,\n superId,\n // @ts-expect-error TS can not exclude TSIndexSignature\n path,\n ),\n ),\n );\n\n const wrapperCall = template.expression.ast`\n ${addDecorateHelper(file)}(\n ${classDecorators || t.nullLiteral()},\n function (${initializeId}, ${superClass ? t.cloneNode(superId) : null}) {\n ${node}\n return { F: ${t.cloneNode(node.id)}, d: ${definitions} };\n },\n ${superClass}\n )\n ` as t.CallExpression & { arguments: [unknown, t.FunctionExpression] };\n\n if (!isStrict) {\n wrapperCall.arguments[1].body.directives.push(\n t.directive(t.directiveLiteral(\"use strict\")),\n );\n }\n\n let replacement: t.Node = wrapperCall;\n let classPathDesc = \"arguments.1.body.body.0\";\n if (isDeclaration) {\n replacement = template.statement.ast`let ${ref} = ${wrapperCall}`;\n classPathDesc = \"declarations.0.init.\" + classPathDesc;\n }\n\n return {\n instanceNodes: [template.statement.ast`${t.cloneNode(initializeId)}(this)`],\n wrapClass(path: NodePath<t.Class>) {\n path.replaceWith(replacement);\n return path.get(classPathDesc) as NodePath;\n },\n };\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_core","require","_helperReplaceSupers","_helperFunctionName","hasOwnDecorators","node","_node$decorators","decorators","length","hasDecorators","body","some","prop","key","value","t","objectProperty","identifier","method","objectMethod","blockStatement","takeDecorators","result","arrayExpression","map","decorator","expression","undefined","getKey","computed","isIdentifier","stringLiteral","name","String","extractElementDescriptor","file","classRef","superRef","path","isMethod","isClassMethod","isPrivate","buildCodeFrameError","type","scope","isTSDeclareMethod","ReplaceSupers","methodPath","objectRef","refToPreserve","replace","properties","kind","static","booleanLiteral","filter","Boolean","id","transformed","toExpression","push","nameFunction","isClassProperty","template","statements","ast","buildUndefinedNode","remove","objectExpression","addDecorateHelper","addHelper","buildDecoratedClass","ref","elements","initializeId","generateUidIdentifier","isDeclaration","isStrict","isInStrictMode","superClass","cloneNode","superId","generateUidIdentifierBasedOnNode","classDecorators","definitions","element","abstract","wrapperCall","nullLiteral","arguments","directives","directive","directiveLiteral","replacement","classPathDesc","statement","instanceNodes","wrapClass","replaceWith","get"],"sources":["../src/decorators.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n\nimport { types as t, template } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport nameFunction from \"@babel/helper-function-name\";\n\ntype Decoratable = Extract<t.Node, { decorators?: t.Decorator[] | null }>;\n\nexport function hasOwnDecorators(node: t.Class | t.ClassBody[\"body\"][number]) {\n // @ts-expect-error: 'decorators' not in TSIndexSignature\n return !!node.decorators?.length;\n}\n\nexport function hasDecorators(node: t.Class) {\n return hasOwnDecorators(node) || node.body.body.some(hasOwnDecorators);\n}\n\nfunction prop(key: string, value?: t.Expression) {\n if (!value) return null;\n return t.objectProperty(t.identifier(key), value);\n}\n\nfunction method(key: string, body: t.Statement[]) {\n return t.objectMethod(\n \"method\",\n t.identifier(key),\n [],\n t.blockStatement(body),\n );\n}\n\nfunction takeDecorators(node: Decoratable) {\n let result: t.ArrayExpression | undefined;\n if (node.decorators && node.decorators.length > 0) {\n result = t.arrayExpression(\n node.decorators.map(decorator => decorator.expression),\n );\n }\n node.decorators = undefined;\n return result;\n}\n\ntype AcceptedElement = Exclude<ClassElement, t.TSIndexSignature>;\ntype SupportedElement = Exclude<\n AcceptedElement,\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.StaticBlock\n>;\n\nfunction getKey(node: SupportedElement) {\n if (node.computed) {\n return node.key;\n } else if (t.isIdentifier(node.key)) {\n return t.stringLiteral(node.key.name);\n } else {\n return t.stringLiteral(\n String(\n // A non-identifier non-computed key\n (node.key as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value,\n ),\n );\n }\n}\n\nfunction extractElementDescriptor(\n file: File,\n classRef: t.Identifier,\n superRef: t.Identifier,\n path: NodePath<AcceptedElement>,\n) {\n const isMethod = path.isClassMethod();\n if (path.isPrivate()) {\n throw path.buildCodeFrameError(\n `Private ${\n isMethod ? \"methods\" : \"fields\"\n } in decorated classes are not supported yet.`,\n );\n }\n if (path.node.type === \"ClassAccessorProperty\") {\n throw path.buildCodeFrameError(\n `Accessor properties are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n if (path.node.type === \"StaticBlock\") {\n throw path.buildCodeFrameError(\n `Static blocks are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n\n const { node, scope } = path as NodePath<SupportedElement>;\n\n if (!path.isTSDeclareMethod()) {\n new ReplaceSupers({\n methodPath: path as NodePath<\n Exclude<SupportedElement, t.TSDeclareMethod>\n >,\n objectRef: classRef,\n superRef,\n file,\n refToPreserve: classRef,\n }).replace();\n }\n\n const properties: t.ObjectExpression[\"properties\"] = [\n prop(\"kind\", t.stringLiteral(t.isClassMethod(node) ? node.kind : \"field\")),\n prop(\"decorators\", takeDecorators(node as Decoratable)),\n prop(\"static\", node.static && t.booleanLiteral(true)),\n prop(\"key\", getKey(node)),\n ].filter(Boolean);\n\n if (t.isClassMethod(node)) {\n const id = node.computed\n ? null\n : (node.key as\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral);\n const transformed = t.toExpression(node);\n properties.push(\n prop(\n \"value\",\n nameFunction({ node: transformed, id, scope }) || transformed,\n ),\n );\n } else if (t.isClassProperty(node) && node.value) {\n properties.push(\n method(\"value\", template.statements.ast`return ${node.value}`),\n );\n } else {\n properties.push(prop(\"value\", scope.buildUndefinedNode()));\n }\n\n path.remove();\n\n return t.objectExpression(properties);\n}\n\nfunction addDecorateHelper(file: File) {\n return file.addHelper(\"decorate\");\n}\n\ntype ClassElement = t.Class[\"body\"][\"body\"][number];\ntype ClassElementPath = NodePath<ClassElement>;\n\nexport function buildDecoratedClass(\n ref: t.Identifier,\n path: NodePath<t.Class>,\n elements: ClassElementPath[],\n file: File,\n) {\n const { node, scope } = path;\n const initializeId = scope.generateUidIdentifier(\"initialize\");\n const isDeclaration = node.id && path.isDeclaration();\n const isStrict = path.isInStrictMode();\n const { superClass } = node;\n\n node.type = \"ClassDeclaration\";\n if (!node.id) node.id = t.cloneNode(ref);\n\n let superId: t.Identifier;\n if (superClass) {\n superId = scope.generateUidIdentifierBasedOnNode(node.superClass, \"super\");\n node.superClass = superId;\n }\n\n const classDecorators = takeDecorators(node);\n const definitions = t.arrayExpression(\n elements\n .filter(\n element =>\n // @ts-expect-error Ignore TypeScript's abstract methods (see #10514)\n !element.node.abstract && element.node.type !== \"TSIndexSignature\",\n )\n .map(path =>\n extractElementDescriptor(\n file,\n node.id,\n superId,\n // @ts-expect-error TS can not exclude TSIndexSignature\n path,\n ),\n ),\n );\n\n const wrapperCall = template.expression.ast`\n ${addDecorateHelper(file)}(\n ${classDecorators || t.nullLiteral()},\n function (${initializeId}, ${superClass ? t.cloneNode(superId) : null}) {\n ${node}\n return { F: ${t.cloneNode(node.id)}, d: ${definitions} };\n },\n ${superClass}\n )\n ` as t.CallExpression & { arguments: [unknown, t.FunctionExpression] };\n\n if (!isStrict) {\n wrapperCall.arguments[1].body.directives.push(\n t.directive(t.directiveLiteral(\"use strict\")),\n );\n }\n\n let replacement: t.Node = wrapperCall;\n let classPathDesc = \"arguments.1.body.body.0\";\n if (isDeclaration) {\n replacement = template.statement.ast`let ${ref} = ${wrapperCall}`;\n classPathDesc = \"declarations.0.init.\" + classPathDesc;\n }\n\n return {\n instanceNodes: [\n template.statement.ast`\n ${t.cloneNode(initializeId)}(this)\n ` as t.ExpressionStatement,\n ],\n wrapClass(path: NodePath<t.Class>) {\n path.replaceWith(replacement);\n return path.get(classPathDesc) as NodePath;\n },\n };\n}\n"],"mappings":";;;;;;;;AAEA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAIO,SAASG,gBAAgBA,CAACC,IAA2C,EAAE;EAAA,IAAAC,gBAAA;EAE5E,OAAO,CAAC,GAAAA,gBAAA,GAACD,IAAI,CAACE,UAAU,aAAfD,gBAAA,CAAiBE,MAAM;AAClC;AAEO,SAASC,aAAaA,CAACJ,IAAa,EAAE;EAC3C,OAAOD,gBAAgB,CAACC,IAAI,CAAC,IAAIA,IAAI,CAACK,IAAI,CAACA,IAAI,CAACC,IAAI,CAACP,gBAAgB,CAAC;AACxE;AAEA,SAASQ,IAAIA,CAACC,GAAW,EAAEC,KAAoB,EAAE;EAC/C,IAAI,CAACA,KAAK,EAAE,OAAO,IAAI;EACvB,OAAOC,WAAC,CAACC,cAAc,CAACD,WAAC,CAACE,UAAU,CAACJ,GAAG,CAAC,EAAEC,KAAK,CAAC;AACnD;AAEA,SAASI,MAAMA,CAACL,GAAW,EAAEH,IAAmB,EAAE;EAChD,OAAOK,WAAC,CAACI,YAAY,CACnB,QAAQ,EACRJ,WAAC,CAACE,UAAU,CAACJ,GAAG,CAAC,EACjB,EAAE,EACFE,WAAC,CAACK,cAAc,CAACV,IAAI,CACvB,CAAC;AACH;AAEA,SAASW,cAAcA,CAAChB,IAAiB,EAAE;EACzC,IAAIiB,MAAqC;EACzC,IAAIjB,IAAI,CAACE,UAAU,IAAIF,IAAI,CAACE,UAAU,CAACC,MAAM,GAAG,CAAC,EAAE;IACjDc,MAAM,GAAGP,WAAC,CAACQ,eAAe,CACxBlB,IAAI,CAACE,UAAU,CAACiB,GAAG,CAACC,SAAS,IAAIA,SAAS,CAACC,UAAU,CACvD,CAAC;EACH;EACArB,IAAI,CAACE,UAAU,GAAGoB,SAAS;EAC3B,OAAOL,MAAM;AACf;AAWA,SAASM,MAAMA,CAACvB,IAAsB,EAAE;EACtC,IAAIA,IAAI,CAACwB,QAAQ,EAAE;IACjB,OAAOxB,IAAI,CAACQ,GAAG;EACjB,CAAC,MAAM,IAAIE,WAAC,CAACe,YAAY,CAACzB,IAAI,CAACQ,GAAG,CAAC,EAAE;IACnC,OAAOE,WAAC,CAACgB,aAAa,CAAC1B,IAAI,CAACQ,GAAG,CAACmB,IAAI,CAAC;EACvC,CAAC,MAAM;IACL,OAAOjB,WAAC,CAACgB,aAAa,CACpBE,MAAM,CAEH5B,IAAI,CAACQ,GAAG,CACNC,KACL,CACF,CAAC;EACH;AACF;AAEA,SAASoB,wBAAwBA,CAC/BC,IAAU,EACVC,QAAsB,EACtBC,QAAsB,EACtBC,IAA+B,EAC/B;EACA,MAAMC,QAAQ,GAAGD,IAAI,CAACE,aAAa,CAAC,CAAC;EACrC,IAAIF,IAAI,CAACG,SAAS,CAAC,CAAC,EAAE;IACpB,MAAMH,IAAI,CAACI,mBAAmB,CAC3B,WACCH,QAAQ,GAAG,SAAS,GAAG,QACxB,8CACH,CAAC;EACH;EACA,IAAID,IAAI,CAACjC,IAAI,CAACsC,IAAI,KAAK,uBAAuB,EAAE;IAC9C,MAAML,IAAI,CAACI,mBAAmB,CAC3B,wHACH,CAAC;EACH;EACA,IAAIJ,IAAI,CAACjC,IAAI,CAACsC,IAAI,KAAK,aAAa,EAAE;IACpC,MAAML,IAAI,CAACI,mBAAmB,CAC3B,kHACH,CAAC;EACH;EAEA,MAAM;IAAErC,IAAI;IAAEuC;EAAM,CAAC,GAAGN,IAAkC;EAE1D,IAAI,CAACA,IAAI,CAACO,iBAAiB,CAAC,CAAC,EAAE;IAC7B,IAAIC,4BAAa,CAAC;MAChBC,UAAU,EAAET,IAEX;MACDU,SAAS,EAAEZ,QAAQ;MACnBC,QAAQ;MACRF,IAAI;MACJc,aAAa,EAAEb;IACjB,CAAC,CAAC,CAACc,OAAO,CAAC,CAAC;EACd;EAEA,MAAMC,UAA4C,GAAG,CACnDvC,IAAI,CAAC,MAAM,EAAEG,WAAC,CAACgB,aAAa,CAAChB,WAAC,CAACyB,aAAa,CAACnC,IAAI,CAAC,GAAGA,IAAI,CAAC+C,IAAI,GAAG,OAAO,CAAC,CAAC,EAC1ExC,IAAI,CAAC,YAAY,EAAES,cAAc,CAAChB,IAAmB,CAAC,CAAC,EACvDO,IAAI,CAAC,QAAQ,EAAEP,IAAI,CAACgD,MAAM,IAAItC,WAAC,CAACuC,cAAc,CAAC,IAAI,CAAC,CAAC,EACrD1C,IAAI,CAAC,KAAK,EAAEgB,MAAM,CAACvB,IAAI,CAAC,CAAC,CAC1B,CAACkD,MAAM,CAACC,OAAO,CAAC;EAEjB,IAAIzC,WAAC,CAACyB,aAAa,CAACnC,IAAI,CAAC,EAAE;IACzB,MAAMoD,EAAE,GAAGpD,IAAI,CAACwB,QAAQ,GACpB,IAAI,GACHxB,IAAI,CAACQ,GAIc;IACxB,MAAM6C,WAAW,GAAG3C,WAAC,CAAC4C,YAAY,CAACtD,IAAI,CAAC;IACxC8C,UAAU,CAACS,IAAI,CACbhD,IAAI,CACF,OAAO,EACP,IAAAiD,2BAAY,EAAC;MAAExD,IAAI,EAAEqD,WAAW;MAAED,EAAE;MAAEb;IAAM,CAAC,CAAC,IAAIc,WACpD,CACF,CAAC;EACH,CAAC,MAAM,IAAI3C,WAAC,CAAC+C,eAAe,CAACzD,IAAI,CAAC,IAAIA,IAAI,CAACS,KAAK,EAAE;IAChDqC,UAAU,CAACS,IAAI,CACb1C,MAAM,CAAC,OAAO,EAAE6C,cAAQ,CAACC,UAAU,CAACC,GAAI,UAAS5D,IAAI,CAACS,KAAM,EAAC,CAC/D,CAAC;EACH,CAAC,MAAM;IACLqC,UAAU,CAACS,IAAI,CAAChD,IAAI,CAAC,OAAO,EAAEgC,KAAK,CAACsB,kBAAkB,CAAC,CAAC,CAAC,CAAC;EAC5D;EAEA5B,IAAI,CAAC6B,MAAM,CAAC,CAAC;EAEb,OAAOpD,WAAC,CAACqD,gBAAgB,CAACjB,UAAU,CAAC;AACvC;AAEA,SAASkB,iBAAiBA,CAAClC,IAAU,EAAE;EACrC,OAAOA,IAAI,CAACmC,SAAS,CAAC,UAAU,CAAC;AACnC;AAKO,SAASC,mBAAmBA,CACjCC,GAAiB,EACjBlC,IAAuB,EACvBmC,QAA4B,EAC5BtC,IAAU,EACV;EACA,MAAM;IAAE9B,IAAI;IAAEuC;EAAM,CAAC,GAAGN,IAAI;EAC5B,MAAMoC,YAAY,GAAG9B,KAAK,CAAC+B,qBAAqB,CAAC,YAAY,CAAC;EAC9D,MAAMC,aAAa,GAAGvE,IAAI,CAACoD,EAAE,IAAInB,IAAI,CAACsC,aAAa,CAAC,CAAC;EACrD,MAAMC,QAAQ,GAAGvC,IAAI,CAACwC,cAAc,CAAC,CAAC;EACtC,MAAM;IAAEC;EAAW,CAAC,GAAG1E,IAAI;EAE3BA,IAAI,CAACsC,IAAI,GAAG,kBAAkB;EAC9B,IAAI,CAACtC,IAAI,CAACoD,EAAE,EAAEpD,IAAI,CAACoD,EAAE,GAAG1C,WAAC,CAACiE,SAAS,CAACR,GAAG,CAAC;EAExC,IAAIS,OAAqB;EACzB,IAAIF,UAAU,EAAE;IACdE,OAAO,GAAGrC,KAAK,CAACsC,gCAAgC,CAAC7E,IAAI,CAAC0E,UAAU,EAAE,OAAO,CAAC;IAC1E1E,IAAI,CAAC0E,UAAU,GAAGE,OAAO;EAC3B;EAEA,MAAME,eAAe,GAAG9D,cAAc,CAAChB,IAAI,CAAC;EAC5C,MAAM+E,WAAW,GAAGrE,WAAC,CAACQ,eAAe,CACnCkD,QAAQ,CACLlB,MAAM,CACL8B,OAAO,IAEL,CAACA,OAAO,CAAChF,IAAI,CAACiF,QAAQ,IAAID,OAAO,CAAChF,IAAI,CAACsC,IAAI,KAAK,kBACpD,CAAC,CACAnB,GAAG,CAACc,IAAI,IACPJ,wBAAwB,CACtBC,IAAI,EACJ9B,IAAI,CAACoD,EAAE,EACPwB,OAAO,EAEP3C,IACF,CACF,CACJ,CAAC;EAED,MAAMiD,WAAW,GAAGxB,cAAQ,CAACrC,UAAU,CAACuC,GAAI;AAC9C,MAAMI,iBAAiB,CAAClC,IAAI,CAAE;AAC9B,QAAQgD,eAAe,IAAIpE,WAAC,CAACyE,WAAW,CAAC,CAAE;AAC3C,kBAAkBd,YAAa,KAAIK,UAAU,GAAGhE,WAAC,CAACiE,SAAS,CAACC,OAAO,CAAC,GAAG,IAAK;AAC5E,UAAU5E,IAAK;AACf,sBAAsBU,WAAC,CAACiE,SAAS,CAAC3E,IAAI,CAACoD,EAAE,CAAE,QAAO2B,WAAY;AAC9D;AACA,QAAQL,UAAW;AACnB;AACA,GAAwE;EAEtE,IAAI,CAACF,QAAQ,EAAE;IACbU,WAAW,CAACE,SAAS,CAAC,CAAC,CAAC,CAAC/E,IAAI,CAACgF,UAAU,CAAC9B,IAAI,CAC3C7C,WAAC,CAAC4E,SAAS,CAAC5E,WAAC,CAAC6E,gBAAgB,CAAC,YAAY,CAAC,CAC9C,CAAC;EACH;EAEA,IAAIC,WAAmB,GAAGN,WAAW;EACrC,IAAIO,aAAa,GAAG,yBAAyB;EAC7C,IAAIlB,aAAa,EAAE;IACjBiB,WAAW,GAAG9B,cAAQ,CAACgC,SAAS,CAAC9B,GAAI,OAAMO,GAAI,MAAKe,WAAY,EAAC;IACjEO,aAAa,GAAG,sBAAsB,GAAGA,aAAa;EACxD;EAEA,OAAO;IACLE,aAAa,EAAE,CACbjC,cAAQ,CAACgC,SAAS,CAAC9B,GAAI;AAC7B,UAAUlD,WAAC,CAACiE,SAAS,CAACN,YAAY,CAAE;AACpC,OAAO,CACF;IACDuB,SAASA,CAAC3D,IAAuB,EAAE;MACjCA,IAAI,CAAC4D,WAAW,CAACL,WAAW,CAAC;MAC7B,OAAOvD,IAAI,CAAC6D,GAAG,CAACL,aAAa,CAAC;IAChC;EACF,CAAC;AACH"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/features.js b/node_modules/@babel/helper-create-class-features-plugin/lib/features.js index a4460a6f..047b4d5b 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/features.js +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/features.js @@ -8,18 +8,24 @@ exports.enableFeature = enableFeature; exports.isLoose = isLoose; exports.shouldTransform = shouldTransform; var _decorators = require("./decorators.js"); -const FEATURES = Object.freeze({ +const FEATURES = exports.FEATURES = Object.freeze({ fields: 1 << 1, privateMethods: 1 << 2, decorators: 1 << 3, privateIn: 1 << 4, staticBlocks: 1 << 5 }); -exports.FEATURES = FEATURES; const featuresSameLoose = new Map([[FEATURES.fields, "@babel/plugin-transform-class-properties"], [FEATURES.privateMethods, "@babel/plugin-transform-private-methods"], [FEATURES.privateIn, "@babel/plugin-transform-private-property-in-object"]]); const featuresKey = "@babel/plugin-class-features/featuresKey"; const looseKey = "@babel/plugin-class-features/looseKey"; -const looseLowPriorityKey = "@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing"; +{ + var looseLowPriorityKey = "@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing"; +} +{ + var canIgnoreLoose = function (file, feature) { + return !!(file.get(looseLowPriorityKey) & feature); + }; +} function enableFeature(file, feature, loose) { if (!hasFeature(file, feature) || canIgnoreLoose(file, feature)) { file.set(featuresKey, file.get(featuresKey) | feature); @@ -34,17 +40,19 @@ function enableFeature(file, feature, loose) { } } let resolvedLoose; - let higherPriorityPluginName; for (const [mask, name] of featuresSameLoose) { if (!hasFeature(file, mask)) continue; + { + if (canIgnoreLoose(file, mask)) continue; + } const loose = isLoose(file, mask); - if (canIgnoreLoose(file, mask)) { - continue; - } else if (resolvedLoose === !loose) { + if (resolvedLoose === !loose) { throw new Error("'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, " + "@babel/plugin-transform-private-methods and " + "@babel/plugin-transform-private-property-in-object (when they are enabled)."); } else { resolvedLoose = loose; - higherPriorityPluginName = name; + { + var higherPriorityPluginName = name; + } } } if (resolvedLoose !== undefined) { @@ -64,10 +72,9 @@ function isLoose(file, feature) { } function setLoose(file, feature, loose) { if (loose) file.set(looseKey, file.get(looseKey) | feature);else file.set(looseKey, file.get(looseKey) & ~feature); - file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) & ~feature); -} -function canIgnoreLoose(file, feature) { - return !!(file.get(looseLowPriorityKey) & feature); + { + file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) & ~feature); + } } function shouldTransform(path, file) { let decoratorPath = null; diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map index 86403e45..ae2a3d90 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/features.js.map @@ -1 +1 @@ -{"version":3,"names":["_decorators","require","FEATURES","Object","freeze","fields","privateMethods","decorators","privateIn","staticBlocks","exports","featuresSameLoose","Map","featuresKey","looseKey","looseLowPriorityKey","enableFeature","file","feature","loose","hasFeature","canIgnoreLoose","set","get","setLoose","resolvedLoose","higherPriorityPluginName","mask","name","isLoose","Error","undefined","console","warn","shouldTransform","path","decoratorPath","publicFieldPath","privateFieldPath","privateMethodPath","staticBlockPath","hasOwnDecorators","node","el","isClassProperty","isClassPrivateProperty","isClassPrivateMethod","isStaticBlock","buildCodeFrameError"],"sources":["../src/features.ts"],"sourcesContent":["import type { File, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { hasOwnDecorators } from \"./decorators.ts\";\n\nexport const FEATURES = Object.freeze(\n process.env.BABEL_8_BREAKING\n ? {\n //classes: 1 << 0,\n fields: 1 << 1,\n privateMethods: 1 << 2,\n privateIn: 1 << 3,\n staticBlocks: 1 << 4,\n }\n : {\n //classes: 1 << 0,\n fields: 1 << 1,\n privateMethods: 1 << 2,\n decorators: 1 << 3,\n privateIn: 1 << 4,\n staticBlocks: 1 << 5,\n },\n);\n\nconst featuresSameLoose = new Map([\n [FEATURES.fields, \"@babel/plugin-transform-class-properties\"],\n [FEATURES.privateMethods, \"@babel/plugin-transform-private-methods\"],\n [FEATURES.privateIn, \"@babel/plugin-transform-private-property-in-object\"],\n]);\n\n// We can't use a symbol because this needs to always be the same, even if\n// this package isn't deduped by npm. e.g.\n// - node_modules/\n// - @babel/plugin-class-features\n// - @babel/plugin-proposal-decorators\n// - node_modules\n// - @babel-plugin-class-features\nconst featuresKey = \"@babel/plugin-class-features/featuresKey\";\nconst looseKey = \"@babel/plugin-class-features/looseKey\";\n\n// See https://github.com/babel/babel/issues/11622.\n// Since preset-env sets loose for the fields and private methods plugins, it can\n// cause conflicts with the loose mode set by an explicit plugin in the config.\n// To solve this problem, we ignore preset-env's loose mode if another plugin\n// explicitly sets it\n// The code to handle this logic doesn't check that \"low priority loose\" is always\n// the same. However, it is only set by the preset and not directly by users:\n// unless someone _wants_ to break it, it shouldn't be a problem.\nconst looseLowPriorityKey =\n \"@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing\";\n\nexport function enableFeature(file: File, feature: number, loose: boolean) {\n // We can't blindly enable the feature because, if it was already set,\n // \"loose\" can't be changed, so that\n // @babel/plugin-class-properties { loose: true }\n // @babel/plugin-class-properties { loose: false }\n // is transformed in loose mode.\n // We only enabled the feature if it was previously disabled.\n if (!hasFeature(file, feature) || canIgnoreLoose(file, feature)) {\n file.set(featuresKey, file.get(featuresKey) | feature);\n if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, true);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, false);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else {\n setLoose(file, feature, loose);\n }\n }\n\n let resolvedLoose: boolean | undefined;\n let higherPriorityPluginName: string | undefined;\n\n for (const [mask, name] of featuresSameLoose) {\n if (!hasFeature(file, mask)) continue;\n\n const loose = isLoose(file, mask);\n\n if (canIgnoreLoose(file, mask)) {\n continue;\n } else if (resolvedLoose === !loose) {\n throw new Error(\n \"'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, \" +\n \"@babel/plugin-transform-private-methods and \" +\n \"@babel/plugin-transform-private-property-in-object (when they are enabled).\",\n );\n } else {\n resolvedLoose = loose;\n higherPriorityPluginName = name;\n }\n }\n\n if (resolvedLoose !== undefined) {\n for (const [mask, name] of featuresSameLoose) {\n if (hasFeature(file, mask) && isLoose(file, mask) !== resolvedLoose) {\n setLoose(file, mask, resolvedLoose);\n console.warn(\n `Though the \"loose\" option was set to \"${!resolvedLoose}\" in your @babel/preset-env ` +\n `config, it will not be used for ${name} since the \"loose\" mode option was set to ` +\n `\"${resolvedLoose}\" for ${higherPriorityPluginName}.\\nThe \"loose\" option must be the ` +\n `same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods ` +\n `and @babel/plugin-transform-private-property-in-object (when they are enabled): you can ` +\n `silence this warning by explicitly adding\\n` +\n `\\t[\"${name}\", { \"loose\": ${resolvedLoose} }]\\n` +\n `to the \"plugins\" section of your Babel config.`,\n );\n }\n }\n }\n}\n\nfunction hasFeature(file: File, feature: number) {\n return !!(file.get(featuresKey) & feature);\n}\n\nexport function isLoose(file: File, feature: number) {\n return !!(file.get(looseKey) & feature);\n}\n\nfunction setLoose(file: File, feature: number, loose: boolean) {\n if (loose) file.set(looseKey, file.get(looseKey) | feature);\n else file.set(looseKey, file.get(looseKey) & ~feature);\n\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) & ~feature);\n}\n\nfunction canIgnoreLoose(file: File, feature: number) {\n return !!(file.get(looseLowPriorityKey) & feature);\n}\n\nexport function shouldTransform(path: NodePath<t.Class>, file: File): boolean {\n let decoratorPath: NodePath<t.Decorator> | null = null;\n let publicFieldPath: NodePath<t.ClassProperty> | null = null;\n let privateFieldPath: NodePath<t.ClassPrivateProperty> | null = null;\n let privateMethodPath: NodePath<t.ClassPrivateMethod> | null = null;\n let staticBlockPath: NodePath<t.StaticBlock> | null = null;\n\n if (hasOwnDecorators(path.node)) {\n decoratorPath = path.get(\"decorators.0\");\n }\n for (const el of path.get(\"body.body\")) {\n if (!decoratorPath && hasOwnDecorators(el.node)) {\n decoratorPath = el.get(\"decorators.0\");\n }\n if (!publicFieldPath && el.isClassProperty()) {\n publicFieldPath = el;\n }\n if (!privateFieldPath && el.isClassPrivateProperty()) {\n privateFieldPath = el;\n }\n // NOTE: path.isClassPrivateMethod() it isn't supported in <7.2.0\n if (!privateMethodPath && el.isClassPrivateMethod?.()) {\n privateMethodPath = el;\n }\n if (!staticBlockPath && el.isStaticBlock?.()) {\n staticBlockPath = el;\n }\n }\n\n if (decoratorPath && privateFieldPath) {\n throw privateFieldPath.buildCodeFrameError(\n \"Private fields in decorated classes are not supported yet.\",\n );\n }\n if (decoratorPath && privateMethodPath) {\n throw privateMethodPath.buildCodeFrameError(\n \"Private methods in decorated classes are not supported yet.\",\n );\n }\n\n if (decoratorPath && !hasFeature(file, FEATURES.decorators)) {\n throw path.buildCodeFrameError(\n \"Decorators are not enabled.\" +\n \"\\nIf you are using \" +\n '[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }], ' +\n 'make sure it comes *before* \"@babel/plugin-transform-class-properties\" ' +\n \"and enable loose mode, like so:\\n\" +\n '\\t[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }]\\n' +\n '\\t[\"@babel/plugin-transform-class-properties\", { \"loose\": true }]',\n );\n }\n\n if (privateMethodPath && !hasFeature(file, FEATURES.privateMethods)) {\n throw privateMethodPath.buildCodeFrameError(\n \"Class private methods are not enabled. \" +\n \"Please add `@babel/plugin-transform-private-methods` to your configuration.\",\n );\n }\n\n if (\n (publicFieldPath || privateFieldPath) &&\n !hasFeature(file, FEATURES.fields) &&\n // We want to allow enabling the private-methods plugin even without enabling\n // the class-properties plugin. Class fields will still be compiled in classes\n // that contain private methods.\n // This is already allowed with the other various class features plugins, but\n // it's because they can fallback to a transform separated from this helper.\n !hasFeature(file, FEATURES.privateMethods)\n ) {\n throw path.buildCodeFrameError(\n \"Class fields are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-properties` to your configuration.\",\n );\n }\n\n if (staticBlockPath && !hasFeature(file, FEATURES.staticBlocks)) {\n throw path.buildCodeFrameError(\n \"Static class blocks are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-static-block` to your configuration.\",\n );\n }\n\n if (decoratorPath || privateMethodPath || staticBlockPath) {\n // If one of those feature is used we know that its transform is\n // enabled, otherwise the previous checks throw.\n return true;\n }\n if (\n (publicFieldPath || privateFieldPath) &&\n hasFeature(file, FEATURES.fields)\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":";;;;;;;;;AAEA,IAAAA,WAAA,GAAAC,OAAA;AAEO,MAAMC,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAS/B;EAEEC,MAAM,EAAE,CAAC,IAAI,CAAC;EACdC,cAAc,EAAE,CAAC,IAAI,CAAC;EACtBC,UAAU,EAAE,CAAC,IAAI,CAAC;EAClBC,SAAS,EAAE,CAAC,IAAI,CAAC;EACjBC,YAAY,EAAE,CAAC,IAAI;AACrB,CACN,CAAC;AAACC,OAAA,CAAAR,QAAA,GAAAA,QAAA;AAEF,MAAMS,iBAAiB,GAAG,IAAIC,GAAG,CAAC,CAChC,CAACV,QAAQ,CAACG,MAAM,EAAE,0CAA0C,CAAC,EAC7D,CAACH,QAAQ,CAACI,cAAc,EAAE,yCAAyC,CAAC,EACpE,CAACJ,QAAQ,CAACM,SAAS,EAAE,oDAAoD,CAAC,CAC3E,CAAC;AASF,MAAMK,WAAW,GAAG,0CAA0C;AAC9D,MAAMC,QAAQ,GAAG,uCAAuC;AAUxD,MAAMC,mBAAmB,GACvB,6HAA6H;AAExH,SAASC,aAAaA,CAACC,IAAU,EAAEC,OAAe,EAAEC,KAAc,EAAE;EAOzE,IAAI,CAACC,UAAU,CAACH,IAAI,EAAEC,OAAO,CAAC,IAAIG,cAAc,CAACJ,IAAI,EAAEC,OAAO,CAAC,EAAE;IAC/DD,IAAI,CAACK,GAAG,CAACT,WAAW,EAAEI,IAAI,CAACM,GAAG,CAACV,WAAW,CAAC,GAAGK,OAAO,CAAC;IACtD,IAEEC,KAAK,KACL,qFAAqF,EACrF;MACAK,QAAQ,CAACP,IAAI,EAAEC,OAAO,EAAE,IAAI,CAAC;MAC7BD,IAAI,CAACK,GAAG,CAACP,mBAAmB,EAAEE,IAAI,CAACM,GAAG,CAACR,mBAAmB,CAAC,GAAGG,OAAO,CAAC;IACxE,CAAC,MAAM,IAELC,KAAK,KACL,qFAAqF,EACrF;MACAK,QAAQ,CAACP,IAAI,EAAEC,OAAO,EAAE,KAAK,CAAC;MAC9BD,IAAI,CAACK,GAAG,CAACP,mBAAmB,EAAEE,IAAI,CAACM,GAAG,CAACR,mBAAmB,CAAC,GAAGG,OAAO,CAAC;IACxE,CAAC,MAAM;MACLM,QAAQ,CAACP,IAAI,EAAEC,OAAO,EAAEC,KAAK,CAAC;IAChC;EACF;EAEA,IAAIM,aAAkC;EACtC,IAAIC,wBAA4C;EAEhD,KAAK,MAAM,CAACC,IAAI,EAAEC,IAAI,CAAC,IAAIjB,iBAAiB,EAAE;IAC5C,IAAI,CAACS,UAAU,CAACH,IAAI,EAAEU,IAAI,CAAC,EAAE;IAE7B,MAAMR,KAAK,GAAGU,OAAO,CAACZ,IAAI,EAAEU,IAAI,CAAC;IAEjC,IAAIN,cAAc,CAACJ,IAAI,EAAEU,IAAI,CAAC,EAAE;MAC9B;IACF,CAAC,MAAM,IAAIF,aAAa,KAAK,CAACN,KAAK,EAAE;MACnC,MAAM,IAAIW,KAAK,CACb,4FAA4F,GAC1F,8CAA8C,GAC9C,6EACJ,CAAC;IACH,CAAC,MAAM;MACLL,aAAa,GAAGN,KAAK;MACrBO,wBAAwB,GAAGE,IAAI;IACjC;EACF;EAEA,IAAIH,aAAa,KAAKM,SAAS,EAAE;IAC/B,KAAK,MAAM,CAACJ,IAAI,EAAEC,IAAI,CAAC,IAAIjB,iBAAiB,EAAE;MAC5C,IAAIS,UAAU,CAACH,IAAI,EAAEU,IAAI,CAAC,IAAIE,OAAO,CAACZ,IAAI,EAAEU,IAAI,CAAC,KAAKF,aAAa,EAAE;QACnED,QAAQ,CAACP,IAAI,EAAEU,IAAI,EAAEF,aAAa,CAAC;QACnCO,OAAO,CAACC,IAAI,CACT,yCAAwC,CAACR,aAAc,8BAA6B,GAClF,mCAAkCG,IAAK,4CAA2C,GAClF,IAAGH,aAAc,SAAQC,wBAAyB,oCAAmC,GACrF,6FAA4F,GAC5F,0FAAyF,GACzF,6CAA4C,GAC5C,OAAME,IAAK,iBAAgBH,aAAc,OAAM,GAC/C,gDACL,CAAC;MACH;IACF;EACF;AACF;AAEA,SAASL,UAAUA,CAACH,IAAU,EAAEC,OAAe,EAAE;EAC/C,OAAO,CAAC,EAAED,IAAI,CAACM,GAAG,CAACV,WAAW,CAAC,GAAGK,OAAO,CAAC;AAC5C;AAEO,SAASW,OAAOA,CAACZ,IAAU,EAAEC,OAAe,EAAE;EACnD,OAAO,CAAC,EAAED,IAAI,CAACM,GAAG,CAACT,QAAQ,CAAC,GAAGI,OAAO,CAAC;AACzC;AAEA,SAASM,QAAQA,CAACP,IAAU,EAAEC,OAAe,EAAEC,KAAc,EAAE;EAC7D,IAAIA,KAAK,EAAEF,IAAI,CAACK,GAAG,CAACR,QAAQ,EAAEG,IAAI,CAACM,GAAG,CAACT,QAAQ,CAAC,GAAGI,OAAO,CAAC,CAAC,KACvDD,IAAI,CAACK,GAAG,CAACR,QAAQ,EAAEG,IAAI,CAACM,GAAG,CAACT,QAAQ,CAAC,GAAG,CAACI,OAAO,CAAC;EAEtDD,IAAI,CAACK,GAAG,CAACP,mBAAmB,EAAEE,IAAI,CAACM,GAAG,CAACR,mBAAmB,CAAC,GAAG,CAACG,OAAO,CAAC;AACzE;AAEA,SAASG,cAAcA,CAACJ,IAAU,EAAEC,OAAe,EAAE;EACnD,OAAO,CAAC,EAAED,IAAI,CAACM,GAAG,CAACR,mBAAmB,CAAC,GAAGG,OAAO,CAAC;AACpD;AAEO,SAASgB,eAAeA,CAACC,IAAuB,EAAElB,IAAU,EAAW;EAC5E,IAAImB,aAA2C,GAAG,IAAI;EACtD,IAAIC,eAAiD,GAAG,IAAI;EAC5D,IAAIC,gBAAyD,GAAG,IAAI;EACpE,IAAIC,iBAAwD,GAAG,IAAI;EACnE,IAAIC,eAA+C,GAAG,IAAI;EAE1D,IAAI,IAAAC,4BAAgB,EAACN,IAAI,CAACO,IAAI,CAAC,EAAE;IAC/BN,aAAa,GAAGD,IAAI,CAACZ,GAAG,CAAC,cAAc,CAAC;EAC1C;EACA,KAAK,MAAMoB,EAAE,IAAIR,IAAI,CAACZ,GAAG,CAAC,WAAW,CAAC,EAAE;IACtC,IAAI,CAACa,aAAa,IAAI,IAAAK,4BAAgB,EAACE,EAAE,CAACD,IAAI,CAAC,EAAE;MAC/CN,aAAa,GAAGO,EAAE,CAACpB,GAAG,CAAC,cAAc,CAAC;IACxC;IACA,IAAI,CAACc,eAAe,IAAIM,EAAE,CAACC,eAAe,CAAC,CAAC,EAAE;MAC5CP,eAAe,GAAGM,EAAE;IACtB;IACA,IAAI,CAACL,gBAAgB,IAAIK,EAAE,CAACE,sBAAsB,CAAC,CAAC,EAAE;MACpDP,gBAAgB,GAAGK,EAAE;IACvB;IAEA,IAAI,CAACJ,iBAAiB,IAAII,EAAE,CAACG,oBAAoB,YAAvBH,EAAE,CAACG,oBAAoB,CAAG,CAAC,EAAE;MACrDP,iBAAiB,GAAGI,EAAE;IACxB;IACA,IAAI,CAACH,eAAe,IAAIG,EAAE,CAACI,aAAa,YAAhBJ,EAAE,CAACI,aAAa,CAAG,CAAC,EAAE;MAC5CP,eAAe,GAAGG,EAAE;IACtB;EACF;EAEA,IAAIP,aAAa,IAAIE,gBAAgB,EAAE;IACrC,MAAMA,gBAAgB,CAACU,mBAAmB,CACxC,4DACF,CAAC;EACH;EACA,IAAIZ,aAAa,IAAIG,iBAAiB,EAAE;IACtC,MAAMA,iBAAiB,CAACS,mBAAmB,CACzC,6DACF,CAAC;EACH;EAEA,IAAIZ,aAAa,IAAI,CAAChB,UAAU,CAACH,IAAI,EAAEf,QAAQ,CAACK,UAAU,CAAC,EAAE;IAC3D,MAAM4B,IAAI,CAACa,mBAAmB,CAC5B,6BAA6B,GAC3B,qBAAqB,GACrB,kEAAkE,GAClE,yEAAyE,GACzE,mCAAmC,GACnC,oEAAoE,GACpE,mEACJ,CAAC;EACH;EAEA,IAAIT,iBAAiB,IAAI,CAACnB,UAAU,CAACH,IAAI,EAAEf,QAAQ,CAACI,cAAc,CAAC,EAAE;IACnE,MAAMiC,iBAAiB,CAACS,mBAAmB,CACzC,yCAAyC,GACvC,6EACJ,CAAC;EACH;EAEA,IACE,CAACX,eAAe,IAAIC,gBAAgB,KACpC,CAAClB,UAAU,CAACH,IAAI,EAAEf,QAAQ,CAACG,MAAM,CAAC,IAMlC,CAACe,UAAU,CAACH,IAAI,EAAEf,QAAQ,CAACI,cAAc,CAAC,EAC1C;IACA,MAAM6B,IAAI,CAACa,mBAAmB,CAC5B,gCAAgC,GAC9B,8EACJ,CAAC;EACH;EAEA,IAAIR,eAAe,IAAI,CAACpB,UAAU,CAACH,IAAI,EAAEf,QAAQ,CAACO,YAAY,CAAC,EAAE;IAC/D,MAAM0B,IAAI,CAACa,mBAAmB,CAC5B,uCAAuC,GACrC,gFACJ,CAAC;EACH;EAEA,IAAIZ,aAAa,IAAIG,iBAAiB,IAAIC,eAAe,EAAE;IAGzD,OAAO,IAAI;EACb;EACA,IACE,CAACH,eAAe,IAAIC,gBAAgB,KACpClB,UAAU,CAACH,IAAI,EAAEf,QAAQ,CAACG,MAAM,CAAC,EACjC;IACA,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd"}
\ No newline at end of file +{"version":3,"names":["_decorators","require","FEATURES","exports","Object","freeze","fields","privateMethods","decorators","privateIn","staticBlocks","featuresSameLoose","Map","featuresKey","looseKey","looseLowPriorityKey","canIgnoreLoose","file","feature","get","enableFeature","loose","hasFeature","set","setLoose","resolvedLoose","mask","name","isLoose","Error","higherPriorityPluginName","undefined","console","warn","shouldTransform","path","decoratorPath","publicFieldPath","privateFieldPath","privateMethodPath","staticBlockPath","hasOwnDecorators","node","el","isClassProperty","isClassPrivateProperty","isClassPrivateMethod","isStaticBlock","buildCodeFrameError"],"sources":["../src/features.ts"],"sourcesContent":["import type { File, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { hasOwnDecorators } from \"./decorators.ts\";\n\nexport const FEATURES = Object.freeze(\n process.env.BABEL_8_BREAKING\n ? {\n //classes: 1 << 0,\n fields: 1 << 1,\n privateMethods: 1 << 2,\n privateIn: 1 << 3,\n staticBlocks: 1 << 4,\n }\n : {\n //classes: 1 << 0,\n fields: 1 << 1,\n privateMethods: 1 << 2,\n decorators: 1 << 3,\n privateIn: 1 << 4,\n staticBlocks: 1 << 5,\n },\n);\n\nconst featuresSameLoose = new Map([\n [FEATURES.fields, \"@babel/plugin-transform-class-properties\"],\n [FEATURES.privateMethods, \"@babel/plugin-transform-private-methods\"],\n [FEATURES.privateIn, \"@babel/plugin-transform-private-property-in-object\"],\n]);\n\n// We can't use a symbol because this needs to always be the same, even if\n// this package isn't deduped by npm. e.g.\n// - node_modules/\n// - @babel/plugin-class-features\n// - @babel/plugin-proposal-decorators\n// - node_modules\n// - @babel-plugin-class-features\nconst featuresKey = \"@babel/plugin-class-features/featuresKey\";\nconst looseKey = \"@babel/plugin-class-features/looseKey\";\n\nif (!process.env.BABEL_8_BREAKING) {\n // See https://github.com/babel/babel/issues/11622.\n // Since preset-env sets loose for the fields and private methods plugins, it can\n // cause conflicts with the loose mode set by an explicit plugin in the config.\n // To solve this problem, we ignore preset-env's loose mode if another plugin\n // explicitly sets it\n // The code to handle this logic doesn't check that \"low priority loose\" is always\n // the same. However, it is only set by the preset and not directly by users:\n // unless someone _wants_ to break it, it shouldn't be a problem.\n // eslint-disable-next-line no-var\n var looseLowPriorityKey =\n \"@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing\";\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var canIgnoreLoose = function (file: File, feature: number) {\n return !!(file.get(looseLowPriorityKey) & feature);\n };\n}\n\nexport function enableFeature(file: File, feature: number, loose: boolean) {\n // We can't blindly enable the feature because, if it was already set,\n // \"loose\" can't be changed, so that\n // @babel/plugin-class-properties { loose: true }\n // @babel/plugin-class-properties { loose: false }\n // is transformed in loose mode.\n // We only enabled the feature if it was previously disabled.\n if (process.env.BABEL_8_BREAKING) {\n if (!hasFeature(file, feature)) {\n file.set(featuresKey, file.get(featuresKey) | feature);\n setLoose(file, feature, loose);\n }\n } else if (!hasFeature(file, feature) || canIgnoreLoose(file, feature)) {\n file.set(featuresKey, file.get(featuresKey) | feature);\n if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, true);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, false);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else {\n setLoose(file, feature, loose);\n }\n }\n\n let resolvedLoose: boolean | undefined;\n for (const [mask, name] of featuresSameLoose) {\n if (!hasFeature(file, mask)) continue;\n if (!process.env.BABEL_8_BREAKING) {\n if (canIgnoreLoose(file, mask)) continue;\n }\n\n const loose = isLoose(file, mask);\n\n if (resolvedLoose === !loose) {\n throw new Error(\n \"'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, \" +\n \"@babel/plugin-transform-private-methods and \" +\n \"@babel/plugin-transform-private-property-in-object (when they are enabled).\",\n );\n } else {\n resolvedLoose = loose;\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var higherPriorityPluginName = name;\n }\n }\n }\n\n if (!process.env.BABEL_8_BREAKING && resolvedLoose !== undefined) {\n for (const [mask, name] of featuresSameLoose) {\n if (hasFeature(file, mask) && isLoose(file, mask) !== resolvedLoose) {\n setLoose(file, mask, resolvedLoose);\n console.warn(\n `Though the \"loose\" option was set to \"${!resolvedLoose}\" in your @babel/preset-env ` +\n `config, it will not be used for ${name} since the \"loose\" mode option was set to ` +\n `\"${resolvedLoose}\" for ${higherPriorityPluginName}.\\nThe \"loose\" option must be the ` +\n `same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods ` +\n `and @babel/plugin-transform-private-property-in-object (when they are enabled): you can ` +\n `silence this warning by explicitly adding\\n` +\n `\\t[\"${name}\", { \"loose\": ${resolvedLoose} }]\\n` +\n `to the \"plugins\" section of your Babel config.`,\n );\n }\n }\n }\n}\n\nfunction hasFeature(file: File, feature: number) {\n return !!(file.get(featuresKey) & feature);\n}\n\nexport function isLoose(file: File, feature: number) {\n return !!(file.get(looseKey) & feature);\n}\n\nfunction setLoose(file: File, feature: number, loose: boolean) {\n if (loose) file.set(looseKey, file.get(looseKey) | feature);\n else file.set(looseKey, file.get(looseKey) & ~feature);\n\n if (!process.env.BABEL_8_BREAKING) {\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) & ~feature);\n }\n}\n\nexport function shouldTransform(path: NodePath<t.Class>, file: File): boolean {\n let decoratorPath: NodePath<t.Decorator> | null = null;\n let publicFieldPath: NodePath<t.ClassProperty> | null = null;\n let privateFieldPath: NodePath<t.ClassPrivateProperty> | null = null;\n let privateMethodPath: NodePath<t.ClassPrivateMethod> | null = null;\n let staticBlockPath: NodePath<t.StaticBlock> | null = null;\n\n if (hasOwnDecorators(path.node)) {\n decoratorPath = path.get(\"decorators.0\");\n }\n for (const el of path.get(\"body.body\")) {\n if (!decoratorPath && hasOwnDecorators(el.node)) {\n decoratorPath = el.get(\"decorators.0\");\n }\n if (!publicFieldPath && el.isClassProperty()) {\n publicFieldPath = el;\n }\n if (!privateFieldPath && el.isClassPrivateProperty()) {\n privateFieldPath = el;\n }\n // NOTE: path.isClassPrivateMethod() it isn't supported in <7.2.0\n if (!privateMethodPath && el.isClassPrivateMethod?.()) {\n privateMethodPath = el;\n }\n if (!staticBlockPath && el.isStaticBlock?.()) {\n staticBlockPath = el;\n }\n }\n\n if (decoratorPath && privateFieldPath) {\n throw privateFieldPath.buildCodeFrameError(\n \"Private fields in decorated classes are not supported yet.\",\n );\n }\n if (decoratorPath && privateMethodPath) {\n throw privateMethodPath.buildCodeFrameError(\n \"Private methods in decorated classes are not supported yet.\",\n );\n }\n\n if (decoratorPath && !hasFeature(file, FEATURES.decorators)) {\n throw path.buildCodeFrameError(\n \"Decorators are not enabled.\" +\n \"\\nIf you are using \" +\n '[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }], ' +\n 'make sure it comes *before* \"@babel/plugin-transform-class-properties\" ' +\n \"and enable loose mode, like so:\\n\" +\n '\\t[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }]\\n' +\n '\\t[\"@babel/plugin-transform-class-properties\", { \"loose\": true }]',\n );\n }\n\n if (privateMethodPath && !hasFeature(file, FEATURES.privateMethods)) {\n throw privateMethodPath.buildCodeFrameError(\n \"Class private methods are not enabled. \" +\n \"Please add `@babel/plugin-transform-private-methods` to your configuration.\",\n );\n }\n\n if (\n (publicFieldPath || privateFieldPath) &&\n !hasFeature(file, FEATURES.fields) &&\n // We want to allow enabling the private-methods plugin even without enabling\n // the class-properties plugin. Class fields will still be compiled in classes\n // that contain private methods.\n // This is already allowed with the other various class features plugins, but\n // it's because they can fallback to a transform separated from this helper.\n !hasFeature(file, FEATURES.privateMethods)\n ) {\n throw path.buildCodeFrameError(\n \"Class fields are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-properties` to your configuration.\",\n );\n }\n\n if (staticBlockPath && !hasFeature(file, FEATURES.staticBlocks)) {\n throw path.buildCodeFrameError(\n \"Static class blocks are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-static-block` to your configuration.\",\n );\n }\n\n if (decoratorPath || privateMethodPath || staticBlockPath) {\n // If one of those feature is used we know that its transform is\n // enabled, otherwise the previous checks throw.\n return true;\n }\n if (\n (publicFieldPath || privateFieldPath) &&\n hasFeature(file, FEATURES.fields)\n ) {\n return true;\n }\n\n return false;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js b/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js index 253bc0cd..981cf0b3 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js @@ -699,6 +699,7 @@ function buildFieldsInitNodes(ref, superRef, props, privateNamesMap, file, setPu let injectSuperRef; const staticNodes = []; const instanceNodes = []; + let lastInstanceNodeReturnsThis = false; const pureStaticNodes = []; let classBindingNode = null; const getSuperRef = _core.types.isIdentifier(superRef) ? () => superRef : () => { @@ -739,6 +740,7 @@ function buildFieldsInitNodes(ref, superRef, props, privateNamesMap, file, setPu classRefFlags |= 2; } } + lastInstanceNodeReturnsThis = false; switch (true) { case isStaticBlock: { @@ -790,6 +792,7 @@ function buildFieldsInitNodes(ref, superRef, props, privateNamesMap, file, setPu instanceNodes.push(buildPublicFieldInitLoose(_core.types.thisExpression(), prop)); break; case isInstance && isPublic && isField && !setPublicClassFields: + lastInstanceNodeReturnsThis = true; instanceNodes.push(buildPublicFieldInitSpec(_core.types.thisExpression(), prop, file)); break; default: @@ -802,6 +805,7 @@ function buildFieldsInitNodes(ref, superRef, props, privateNamesMap, file, setPu return { staticNodes: staticNodes.filter(Boolean), instanceNodes: instanceNodes.filter(Boolean), + lastInstanceNodeReturnsThis, pureStaticNodes: pureStaticNodes.filter(Boolean), classBindingNode, wrapClass(path) { diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map index 645a5dd8..90ad5c6d 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/fields.js.map @@ -1 +1 @@ -{"version":3,"names":["_core","require","_helperReplaceSupers","_helperEnvironmentVisitor","_helperMemberExpressionToFunctions","_helperOptimiseCallExpression","_helperAnnotateAsPure","_helperSkipTransparentExpressionWrappers","ts","buildPrivateNamesMap","props","privateNamesMap","Map","prop","isPrivate","name","node","key","id","update","has","get","scope","generateUidIdentifier","static","method","isProperty","isClassPrivateMethod","kind","getId","setId","methodId","set","buildPrivateNamesNodes","privateFieldsAsProperties","privateFieldsAsSymbols","state","initNodes","value","isStatic","isMethod","isAccessor","t","cloneNode","init","callExpression","addHelper","stringLiteral","identifier","newExpression","annotateAsPure","push","template","statement","ast","privateNameVisitorFactory","visitor","nestedVisitor","traverse","visitors","merge","Object","assign","environmentVisitor","privateNameVisitor","Class","path","body","visiblePrivateNames","redeclared","delete","length","skipKey","PrivateName","noDocumentAll","parentPath","isMemberExpression","property","isOptionalMemberExpression","includes","handle","unshadow","innerBinding","_scope","hasBinding","bindingIdentifierEquals","rename","parent","buildCheckInRHS","rhs","file","inRHSIsObject","availableHelper","privateInVisitor","BinaryExpression","operator","left","right","isPrivateName","classRef","replaceWith","expression","privateNameHandlerSpec","memoise","member","count","object","memo","maybeGenerateMemoised","memoiser","receiver","helperName","sequenceExpression","console","warn","boundGet","memberExpression","destructureSet","helper","_unused","Error","call","args","optimiseCall","optionalCall","privateNameHandlerLoose","BASE","REF","PROP","simpleSet","optionalCallExpression","transformPrivateNamesUsage","ref","size","handler","memberExpressionToFunctions","buildPrivateFieldInitLoose","buildUndefinedNode","inheritPropComments","buildPrivateInstanceFieldInitSpec","thisExpression","buildPrivateStaticFieldInitSpec","privateName","initAdded","buildPrivateMethodInitLoose","buildPrivateInstanceMethodInitSpec","buildPrivateAccessorInitialization","buildPrivateInstanceMethodInitialization","buildPublicFieldInitLoose","computed","expressionStatement","assignmentExpression","isLiteral","buildPublicFieldInitSpec","buildPrivateStaticMethodInitLoose","buildPrivateMethodDeclaration","getterDeclared","setterDeclared","params","generator","async","isGetter","isSetter","declId","functionDeclaration","thisContextVisitor","UnaryExpression","argument","skipTransparentExprWrapperNodes","isThisExpression","booleanLiteral","ThisExpression","needsClassRef","MetaProperty","meta","innerReferencesVisitor","ReferencedIdentifier","replaceThisContext","innerBindingRef","_state$classRef","isNameOrLength","type","inheritLeadingComments","inheritInnerComments","buildFieldsInitNodes","superRef","setPublicClassFields","constantSuper","_ref","_ref2","classRefFlags","injectSuperRef","staticNodes","instanceNodes","pureStaticNodes","classBindingNode","getSuperRef","isIdentifier","_injectSuperRef","generateUidIdentifierBasedOnNode","classRefForInnerBinding","isClassProperty","assertFieldTransformed","isStaticBlock","isInstance","isPublic","isField","ReplaceSupers","methodPath","refToPreserve","getObjectRef","replace","replaced","blockBody","isExpressionStatement","inheritsComments","unshift","filter","Boolean","wrapClass","leadingComments","remove","superClass","isClassExpression"],"sources":["../src/fields.ts"],"sourcesContent":["import { template, traverse, types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport memberExpressionToFunctions from \"@babel/helper-member-expression-to-functions\";\nimport type {\n Handler,\n HandlerState,\n} from \"@babel/helper-member-expression-to-functions\";\nimport optimiseCall from \"@babel/helper-optimise-call-expression\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport { skipTransparentExprWrapperNodes } from \"@babel/helper-skip-transparent-expression-wrappers\";\n\nimport * as ts from \"./typescript.ts\";\n\ninterface PrivateNameMetadata {\n id: t.Identifier;\n static: boolean;\n method: boolean;\n getId?: t.Identifier;\n setId?: t.Identifier;\n methodId?: t.Identifier;\n initAdded?: boolean;\n getterDeclared?: boolean;\n setterDeclared?: boolean;\n}\n\ntype PrivateNamesMap = Map<string, PrivateNameMetadata>;\n\nexport function buildPrivateNamesMap(props: PropPath[]) {\n const privateNamesMap: PrivateNamesMap = new Map();\n for (const prop of props) {\n if (prop.isPrivate()) {\n const { name } = prop.node.key.id;\n const update: PrivateNameMetadata = privateNamesMap.has(name)\n ? privateNamesMap.get(name)\n : {\n id: prop.scope.generateUidIdentifier(name),\n static: prop.node.static,\n method: !prop.isProperty(),\n };\n if (prop.isClassPrivateMethod()) {\n if (prop.node.kind === \"get\") {\n update.getId = prop.scope.generateUidIdentifier(`get_${name}`);\n } else if (prop.node.kind === \"set\") {\n update.setId = prop.scope.generateUidIdentifier(`set_${name}`);\n } else if (prop.node.kind === \"method\") {\n update.methodId = prop.scope.generateUidIdentifier(name);\n }\n }\n privateNamesMap.set(name, update);\n }\n }\n return privateNamesMap;\n}\n\nexport function buildPrivateNamesNodes(\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsProperties: boolean,\n privateFieldsAsSymbols: boolean,\n state: File,\n) {\n const initNodes: t.Statement[] = [];\n\n for (const [name, value] of privateNamesMap) {\n // - When the privateFieldsAsProperties assumption is enabled,\n // both static and instance fields are transpiled using a\n // secret non-enumerable property. Hence, we also need to generate that\n // key (using the classPrivateFieldLooseKey helper).\n // - When the privateFieldsAsSymbols assumption is enabled,\n // both static and instance fields are transpiled using a\n // unique Symbol to define a non-enumerable property.\n // - In spec mode, only instance fields need a \"private name\" initializer\n // because static fields are directly assigned to a variable in the\n // buildPrivateStaticFieldInitSpec function.\n const { static: isStatic, method: isMethod, getId, setId } = value;\n const isAccessor = getId || setId;\n const id = t.cloneNode(value.id);\n\n let init: t.Expression;\n\n if (privateFieldsAsProperties) {\n init = t.callExpression(state.addHelper(\"classPrivateFieldLooseKey\"), [\n t.stringLiteral(name),\n ]);\n } else if (privateFieldsAsSymbols) {\n init = t.callExpression(t.identifier(\"Symbol\"), [t.stringLiteral(name)]);\n } else if (!isStatic) {\n init = t.newExpression(\n t.identifier(!isMethod || isAccessor ? \"WeakMap\" : \"WeakSet\"),\n [],\n );\n }\n\n if (init) {\n annotateAsPure(init);\n initNodes.push(template.statement.ast`var ${id} = ${init}`);\n }\n }\n\n return initNodes;\n}\n\ninterface PrivateNameVisitorState {\n privateNamesMap: PrivateNamesMap;\n privateFieldsAsProperties: boolean;\n redeclared?: string[];\n}\n\n// Traverses the class scope, handling private name references. If an inner\n// class redeclares the same private name, it will hand off traversal to the\n// restricted visitor (which doesn't traverse the inner class's inner scope).\nfunction privateNameVisitorFactory<S>(\n visitor: Visitor<PrivateNameVisitorState & S>,\n) {\n // Traverses the outer portion of a class, without touching the class's inner\n // scope, for private names.\n const nestedVisitor = traverse.visitors.merge([\n {\n ...visitor,\n },\n environmentVisitor,\n ]);\n\n const privateNameVisitor: Visitor<PrivateNameVisitorState & S> = {\n ...visitor,\n\n Class(path) {\n const { privateNamesMap } = this;\n const body = path.get(\"body.body\");\n\n const visiblePrivateNames = new Map(privateNamesMap);\n const redeclared = [];\n for (const prop of body) {\n if (!prop.isPrivate()) continue;\n const { name } = prop.node.key.id;\n visiblePrivateNames.delete(name);\n redeclared.push(name);\n }\n\n // If the class doesn't redeclare any private fields, we can continue with\n // our overall traversal.\n if (!redeclared.length) {\n return;\n }\n\n // This class redeclares some private field. We need to process the outer\n // environment with access to all the outer privates, then we can process\n // the inner environment with only the still-visible outer privates.\n path.get(\"body\").traverse(nestedVisitor, {\n ...this,\n redeclared,\n });\n path.traverse(privateNameVisitor, {\n ...this,\n privateNamesMap: visiblePrivateNames,\n });\n\n // We'll eventually hit this class node again with the overall Class\n // Features visitor, which'll process the redeclared privates.\n path.skipKey(\"body\");\n },\n };\n\n return privateNameVisitor;\n}\n\ninterface PrivateNameState {\n privateNamesMap: PrivateNamesMap;\n classRef: t.Identifier;\n file: File;\n noDocumentAll: boolean;\n innerBinding?: t.Identifier;\n}\n\nconst privateNameVisitor = privateNameVisitorFactory<\n HandlerState<PrivateNameState> & PrivateNameState\n>({\n PrivateName(path, { noDocumentAll }) {\n const { privateNamesMap, redeclared } = this;\n const { node, parentPath } = path;\n\n if (\n !parentPath.isMemberExpression({ property: node }) &&\n !parentPath.isOptionalMemberExpression({ property: node })\n ) {\n return;\n }\n const { name } = node.id;\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n this.handle(parentPath, noDocumentAll);\n },\n});\n\n// rename all bindings that shadows innerBinding\nfunction unshadow(\n name: string,\n scope: Scope,\n innerBinding: t.Identifier | undefined,\n) {\n // in some cases, scope.getBinding(name) === undefined\n // so we check hasBinding to avoid keeping looping\n // see: https://github.com/babel/babel/pull/13656#discussion_r686030715\n while (\n scope?.hasBinding(name) &&\n !scope.bindingIdentifierEquals(name, innerBinding)\n ) {\n scope.rename(name);\n scope = scope.parent;\n }\n}\n\nexport function buildCheckInRHS(\n rhs: t.Expression,\n file: File,\n inRHSIsObject?: boolean,\n) {\n if (inRHSIsObject || !file.availableHelper?.(\"checkInRHS\")) return rhs;\n return t.callExpression(file.addHelper(\"checkInRHS\"), [rhs]);\n}\n\nconst privateInVisitor = privateNameVisitorFactory<{\n classRef: t.Identifier;\n file: File;\n innerBinding?: t.Identifier;\n}>({\n BinaryExpression(path, { file }) {\n const { operator, left, right } = path.node;\n if (operator !== \"in\") return;\n if (!t.isPrivateName(left)) return;\n\n const { privateFieldsAsProperties, privateNamesMap, redeclared } = this;\n\n const { name } = left.id;\n\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(this.classRef.name, path.scope, this.innerBinding);\n\n if (privateFieldsAsProperties) {\n const { id } = privateNamesMap.get(name);\n path.replaceWith(template.expression.ast`\n Object.prototype.hasOwnProperty.call(${buildCheckInRHS(\n right,\n file,\n )}, ${t.cloneNode(id)})\n `);\n return;\n }\n\n const { id, static: isStatic } = privateNamesMap.get(name);\n\n if (isStatic) {\n path.replaceWith(\n template.expression.ast`${buildCheckInRHS(\n right,\n file,\n )} === ${t.cloneNode(this.classRef)}`,\n );\n return;\n }\n\n path.replaceWith(\n template.expression.ast`${t.cloneNode(id)}.has(${buildCheckInRHS(\n right,\n file,\n )})`,\n );\n },\n});\n\ninterface Receiver {\n receiver(\n this: HandlerState<PrivateNameState> & PrivateNameState,\n member: NodePath<t.MemberExpression | t.OptionalMemberExpression>,\n ): t.Expression;\n}\n\nconst privateNameHandlerSpec: Handler<PrivateNameState & Receiver> & Receiver =\n {\n memoise(member, count) {\n const { scope } = member;\n const { object } = member.node as { object: t.Expression };\n\n const memo = scope.maybeGenerateMemoised(object);\n if (!memo) {\n return;\n }\n\n this.memoiser.set(object, memo, count);\n },\n\n receiver(member) {\n const { object } = member.node as { object: t.Expression };\n\n if (this.memoiser.has(object)) {\n return t.cloneNode(this.memoiser.get(object));\n }\n\n return t.cloneNode(object);\n },\n\n get(member) {\n const { classRef, privateNamesMap, file, innerBinding } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n methodId,\n getId,\n setId,\n } = privateNamesMap.get(name);\n const isAccessor = getId || setId;\n\n if (isStatic) {\n // NOTE: This package has a peerDependency on @babel/core@^7.0.0, but these\n // helpers have been introduced in @babel/helpers@7.1.0.\n const helperName =\n isMethod && !isAccessor\n ? \"classStaticPrivateMethodGet\"\n : \"classStaticPrivateFieldSpecGet\";\n\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(classRef.name, member.scope, innerBinding);\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]);\n }\n\n if (isMethod) {\n if (isAccessor) {\n if (!getId && setId) {\n if (file.availableHelper(\"writeOnlyError\")) {\n return t.sequenceExpression([\n this.receiver(member),\n t.callExpression(file.addHelper(\"writeOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]),\n ]);\n }\n console.warn(\n `@babel/helpers is outdated, update it to silence this warning.`,\n );\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateMethodGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n t.cloneNode(methodId),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n },\n\n boundGet(member) {\n this.memoise(member, 1);\n\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n [this.receiver(member)],\n );\n },\n\n set(member, value) {\n const { classRef, privateNamesMap, file } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n setId,\n getId,\n } = privateNamesMap.get(name);\n const isAccessor = getId || setId;\n\n if (isStatic) {\n const helperName =\n isMethod && !isAccessor\n ? \"classStaticPrivateMethodSet\"\n : \"classStaticPrivateFieldSpecSet\";\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n value,\n ]);\n }\n if (isMethod) {\n if (setId) {\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n }\n return t.sequenceExpression([\n this.receiver(member),\n value,\n t.callExpression(file.addHelper(\"readOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n },\n\n destructureSet(member) {\n const { classRef, privateNamesMap, file } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const { id, static: isStatic } = privateNamesMap.get(name);\n if (isStatic) {\n try {\n // classStaticPrivateFieldDestructureSet was introduced in 7.13.10\n // eslint-disable-next-line no-var\n var helper = file.addHelper(\"classStaticPrivateFieldDestructureSet\");\n } catch {\n throw new Error(\n \"Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \\n\" +\n \"please update @babel/helpers to the latest version.\",\n );\n }\n return t.memberExpression(\n t.callExpression(helper, [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n }\n\n return t.memberExpression(\n t.callExpression(file.addHelper(\"classPrivateFieldDestructureSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n },\n\n call(member, args: (t.Expression | t.SpreadElement)[]) {\n // The first access (the get) should do the memo assignment.\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, false);\n },\n\n optionalCall(member, args: (t.Expression | t.SpreadElement)[]) {\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n };\n\nconst privateNameHandlerLoose: Handler<PrivateNameState> = {\n get(member) {\n const { privateNamesMap, file } = this;\n const { object } = member.node;\n const { name } = (member.node.property as t.PrivateName).id;\n\n return template.expression`BASE(REF, PROP)[PROP]`({\n BASE: file.addHelper(\"classPrivateFieldLooseBase\"),\n REF: t.cloneNode(object),\n PROP: t.cloneNode(privateNamesMap.get(name).id),\n });\n },\n\n set() {\n // noop\n throw new Error(\"private name handler with loose = true don't need set()\");\n },\n\n boundGet(member) {\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n [t.cloneNode(member.node.object as t.Expression)],\n );\n },\n\n simpleSet(member) {\n return this.get(member);\n },\n\n destructureSet(member) {\n return this.get(member);\n },\n\n call(member, args) {\n return t.callExpression(this.get(member), args);\n },\n\n optionalCall(member, args) {\n return t.optionalCallExpression(this.get(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n};\n\nexport function transformPrivateNamesUsage(\n ref: t.Identifier,\n path: NodePath<t.Class>,\n privateNamesMap: PrivateNamesMap,\n {\n privateFieldsAsProperties,\n noDocumentAll,\n innerBinding,\n }: {\n privateFieldsAsProperties: boolean;\n noDocumentAll: boolean;\n innerBinding: t.Identifier;\n },\n state: File,\n) {\n if (!privateNamesMap.size) return;\n\n const body = path.get(\"body\");\n const handler = privateFieldsAsProperties\n ? privateNameHandlerLoose\n : privateNameHandlerSpec;\n\n memberExpressionToFunctions<PrivateNameState>(body, privateNameVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n ...handler,\n noDocumentAll,\n innerBinding,\n });\n body.traverse(privateInVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n privateFieldsAsProperties,\n innerBinding,\n });\n}\n\nfunction buildPrivateFieldInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${t.cloneNode(id)}, {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n });\n `,\n prop,\n );\n}\n\nfunction buildPrivateInstanceFieldInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${t.cloneNode(id)}.set(${ref}, {\n // configurable is always false for private elements\n // enumerable is always false for private elements\n writable: true,\n value: ${value},\n })`,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)},\n {\n writable: true,\n value: ${value}\n },\n )`,\n prop,\n );\n}\n\nfunction buildPrivateStaticFieldInitSpec(\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId, initAdded } = privateName;\n const isAccessor = getId || setId;\n\n if (!prop.isProperty() && (initAdded || !isAccessor)) return;\n\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n }\n `,\n prop,\n );\n }\n\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n };\n `,\n prop,\n );\n}\n\nfunction buildPrivateMethodInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { methodId, id, getId, setId, initAdded } = privateName;\n if (initAdded) return;\n\n if (methodId) {\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n `,\n prop,\n );\n }\n const isAccessor = getId || setId;\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n `,\n prop,\n );\n }\n}\n\nfunction buildPrivateInstanceMethodInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { getId, setId, initAdded } = privateName;\n\n if (initAdded) return;\n\n const isAccessor = getId || setId;\n if (isAccessor) {\n return buildPrivateAccessorInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n }\n\n return buildPrivateInstanceMethodInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n}\n\nfunction buildPrivateAccessorInitialization(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId } = privateName;\n\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`\n ${id}.set(${ref}, {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n `,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)},\n {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n },\n )`,\n prop,\n );\n}\n\nfunction buildPrivateInstanceMethodInitialization(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id } = privateName;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateMethodInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${id}.add(${ref})`,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateMethodInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)}\n )`,\n prop,\n );\n}\n\nfunction buildPublicFieldInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassProperty>,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(ref, key, computed || t.isLiteral(key)),\n value,\n ),\n ),\n prop,\n );\n}\n\nfunction buildPublicFieldInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassProperty>,\n state: File,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.callExpression(state.addHelper(\"defineProperty\"), [\n ref,\n computed || t.isLiteral(key)\n ? key\n : t.stringLiteral((key as t.Identifier).name),\n value,\n ]),\n ),\n prop,\n );\n}\n\nfunction buildPrivateStaticMethodInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n state: File,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, methodId, getId, setId, initAdded } = privateName;\n\n if (initAdded) return;\n\n const isAccessor = getId || setId;\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n })\n `,\n prop,\n );\n }\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n `,\n prop,\n );\n}\n\nfunction buildPrivateMethodDeclaration(\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsProperties = false,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const {\n id,\n methodId,\n getId,\n setId,\n getterDeclared,\n setterDeclared,\n static: isStatic,\n } = privateName;\n const { params, body, generator, async } = prop.node;\n const isGetter = getId && !getterDeclared && params.length === 0;\n const isSetter = setId && !setterDeclared && params.length > 0;\n\n let declId = methodId;\n\n if (isGetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n getterDeclared: true,\n });\n declId = getId;\n } else if (isSetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n setterDeclared: true,\n });\n declId = setId;\n } else if (isStatic && !privateFieldsAsProperties) {\n declId = id;\n }\n\n return inheritPropComments(\n t.functionDeclaration(\n t.cloneNode(declId),\n // @ts-expect-error params for ClassMethod has TSParameterProperty\n params,\n body,\n generator,\n async,\n ),\n prop,\n );\n}\n\ntype ReplaceThisState = {\n classRef: t.Identifier;\n needsClassRef: boolean;\n innerBinding: t.Identifier | null;\n};\n\ntype ReplaceInnerBindingReferenceState = ReplaceThisState;\n\nconst thisContextVisitor = traverse.visitors.merge<ReplaceThisState>([\n {\n UnaryExpression(path) {\n // Replace `delete this` with `true`\n const { node } = path;\n if (node.operator === \"delete\") {\n const argument = skipTransparentExprWrapperNodes(node.argument);\n if (t.isThisExpression(argument)) {\n path.replaceWith(t.booleanLiteral(true));\n }\n }\n },\n ThisExpression(path, state) {\n state.needsClassRef = true;\n path.replaceWith(t.cloneNode(state.classRef));\n },\n MetaProperty(path) {\n const { node, scope } = path;\n // if there are `new.target` in static field\n // we should replace it with `undefined`\n if (node.meta.name === \"new\" && node.property.name === \"target\") {\n path.replaceWith(scope.buildUndefinedNode());\n }\n },\n },\n environmentVisitor,\n]);\n\nconst innerReferencesVisitor: Visitor<ReplaceInnerBindingReferenceState> = {\n ReferencedIdentifier(path, state) {\n if (\n path.scope.bindingIdentifierEquals(path.node.name, state.innerBinding)\n ) {\n state.needsClassRef = true;\n path.node.name = state.classRef.name;\n }\n },\n};\n\nfunction replaceThisContext(\n path: PropPath,\n ref: t.Identifier,\n innerBindingRef: t.Identifier | null,\n) {\n const state: ReplaceThisState = {\n classRef: ref,\n needsClassRef: false,\n innerBinding: innerBindingRef,\n };\n if (!path.isMethod()) {\n // replace `this` in property initializers and static blocks\n path.traverse(thisContextVisitor, state);\n }\n\n // todo: use innerBinding.referencePaths to avoid full traversal\n if (\n innerBindingRef != null &&\n state.classRef?.name &&\n state.classRef.name !== innerBindingRef.name\n ) {\n path.traverse(innerReferencesVisitor, state);\n }\n\n return state.needsClassRef;\n}\n\nexport type PropNode =\n | t.ClassProperty\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.StaticBlock;\nexport type PropPath = NodePath<PropNode>;\n\nfunction isNameOrLength({ key, computed }: t.ClassProperty) {\n if (key.type === \"Identifier\") {\n return !computed && (key.name === \"name\" || key.name === \"length\");\n }\n if (key.type === \"StringLiteral\") {\n return key.value === \"name\" || key.value === \"length\";\n }\n return false;\n}\n\n/**\n * Inherit comments from class members. This is a reduced version of\n * t.inheritsComments: the trailing comments are not inherited because\n * for most class members except the last one, their trailing comments are\n * the next sibling's leading comments.\n *\n * @template T transformed class member type\n * @param {T} node transformed class member\n * @param {PropPath} prop class member\n * @returns transformed class member type with comments inherited\n */\nfunction inheritPropComments<T extends t.Node>(node: T, prop: PropPath) {\n t.inheritLeadingComments(node, prop.node);\n t.inheritInnerComments(node, prop.node);\n return node;\n}\n\n/**\n * ClassRefFlag records the requirement of the class binding reference.\n *\n * @enum {number}\n */\nconst enum ClassRefFlag {\n None,\n /**\n * When this flag is enabled, the binding reference can be the class id,\n * if exists, or the uid identifier generated for class expression. The\n * reference is safe to be consumed by [[Define]].\n */\n ForDefine = 1 << 0,\n /**\n * When this flag is enabled, the reference must be a uid, because the outer\n * class binding can be mutated by user codes.\n * E.g.\n * class C { static p = C }; const oldC = C; C = null; oldC.p;\n * we must memoize class `C` before defining the property `p`.\n */\n ForInnerBinding = 1 << 1,\n}\n\nexport function buildFieldsInitNodes(\n ref: t.Identifier | null,\n superRef: t.Expression | undefined,\n props: PropPath[],\n privateNamesMap: PrivateNamesMap,\n file: File,\n setPublicClassFields: boolean,\n privateFieldsAsProperties: boolean,\n constantSuper: boolean,\n innerBindingRef: t.Identifier | null,\n) {\n let classRefFlags = ClassRefFlag.None;\n let injectSuperRef: t.Identifier;\n const staticNodes: t.Statement[] = [];\n const instanceNodes: t.Statement[] = [];\n // These nodes are pure and can be moved to the closest statement position\n const pureStaticNodes: t.FunctionDeclaration[] = [];\n let classBindingNode: t.ExpressionStatement | null = null;\n\n const getSuperRef = t.isIdentifier(superRef)\n ? () => superRef\n : () => {\n injectSuperRef ??=\n props[0].scope.generateUidIdentifierBasedOnNode(superRef);\n return injectSuperRef;\n };\n\n const classRefForInnerBinding =\n ref ?? props[0].scope.generateUidIdentifier(\"class\");\n ref ??= t.cloneNode(innerBindingRef);\n\n for (const prop of props) {\n prop.isClassProperty() && ts.assertFieldTransformed(prop);\n\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n const isStatic = !t.isStaticBlock?.(prop.node) && prop.node.static;\n const isInstance = !isStatic;\n const isPrivate = prop.isPrivate();\n const isPublic = !isPrivate;\n const isField = prop.isProperty();\n const isMethod = !isField;\n const isStaticBlock = prop.isStaticBlock?.();\n\n if (isStatic) classRefFlags |= ClassRefFlag.ForDefine;\n\n if (isStatic || (isMethod && isPrivate) || isStaticBlock) {\n new ReplaceSupers({\n methodPath: prop,\n constantSuper,\n file: file,\n refToPreserve: innerBindingRef,\n getSuperRef,\n getObjectRef() {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n if (isStatic || isStaticBlock) {\n return classRefForInnerBinding;\n } else {\n return t.memberExpression(\n classRefForInnerBinding,\n t.identifier(\"prototype\"),\n );\n }\n },\n }).replace();\n\n const replaced = replaceThisContext(\n prop,\n classRefForInnerBinding,\n innerBindingRef,\n );\n if (replaced) {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n }\n }\n\n // TODO(ts): there are so many `ts-expect-error` inside cases since\n // ts can not infer type from pre-computed values (or a case test)\n // even change `isStaticBlock` to `t.isStaticBlock(prop)` will not make prop\n // a `NodePath<t.StaticBlock>`\n // this maybe a bug for ts\n switch (true) {\n case isStaticBlock: {\n const blockBody = (prop.node as t.StaticBlock).body;\n // We special-case the single expression case to avoid the iife, since\n // it's common.\n if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {\n staticNodes.push(inheritPropComments(blockBody[0], prop));\n } else {\n staticNodes.push(\n t.inheritsComments(\n template.statement.ast`(() => { ${blockBody} })()`,\n prop.node,\n ),\n );\n }\n break;\n }\n case isStatic && isPrivate && isField && privateFieldsAsProperties:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPrivateFieldInitLoose(t.cloneNode(ref), prop, privateNamesMap),\n );\n break;\n case isStatic && isPrivate && isField && !privateFieldsAsProperties:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPrivateStaticFieldInitSpec(prop, privateNamesMap),\n );\n break;\n case isStatic && isPublic && isField && setPublicClassFields:\n // Functions always have non-writable .name and .length properties,\n // so we must always use [[Define]] for them.\n // It might still be possible to a computed static fields whose resulting\n // key is \"name\" or \"length\", but the assumption is telling us that it's\n // not going to happen.\n // @ts-expect-error checked in switch\n if (!isNameOrLength(prop.node)) {\n // @ts-expect-error checked in switch\n staticNodes.push(buildPublicFieldInitLoose(t.cloneNode(ref), prop));\n break;\n }\n // falls through\n case isStatic && isPublic && isField && !setPublicClassFields:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPublicFieldInitSpec(t.cloneNode(ref), prop, file),\n );\n break;\n case isInstance && isPrivate && isField && privateFieldsAsProperties:\n instanceNodes.push(\n // @ts-expect-error checked in switch\n buildPrivateFieldInitLoose(t.thisExpression(), prop, privateNamesMap),\n );\n break;\n case isInstance && isPrivate && isField && !privateFieldsAsProperties:\n instanceNodes.push(\n buildPrivateInstanceFieldInitSpec(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n file,\n ),\n );\n break;\n case isInstance && isPrivate && isMethod && privateFieldsAsProperties:\n instanceNodes.unshift(\n buildPrivateMethodInitLoose(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isInstance && isPrivate && isMethod && !privateFieldsAsProperties:\n instanceNodes.unshift(\n buildPrivateInstanceMethodInitSpec(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n file,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isStatic && isPrivate && isMethod && !privateFieldsAsProperties:\n staticNodes.unshift(\n // @ts-expect-error checked in switch\n buildPrivateStaticFieldInitSpec(prop, privateNamesMap),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isStatic && isPrivate && isMethod && privateFieldsAsProperties:\n staticNodes.unshift(\n buildPrivateStaticMethodInitLoose(\n t.cloneNode(ref),\n // @ts-expect-error checked in switch\n prop,\n file,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isInstance && isPublic && isField && setPublicClassFields:\n // @ts-expect-error checked in switch\n instanceNodes.push(buildPublicFieldInitLoose(t.thisExpression(), prop));\n break;\n case isInstance && isPublic && isField && !setPublicClassFields:\n instanceNodes.push(\n // @ts-expect-error checked in switch\n buildPublicFieldInitSpec(t.thisExpression(), prop, file),\n );\n break;\n default:\n throw new Error(\"Unreachable.\");\n }\n }\n\n if (classRefFlags & ClassRefFlag.ForInnerBinding && innerBindingRef != null) {\n classBindingNode = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(classRefForInnerBinding),\n t.cloneNode(innerBindingRef),\n ),\n );\n }\n\n return {\n staticNodes: staticNodes.filter(Boolean),\n instanceNodes: instanceNodes.filter(Boolean),\n pureStaticNodes: pureStaticNodes.filter(Boolean),\n classBindingNode,\n wrapClass(path: NodePath<t.Class>) {\n for (const prop of props) {\n // Delete leading comments so that they don't get attached as\n // trailing comments of the previous sibling.\n // When transforming props, we explicitly attach their leading\n // comments to the transformed node with `inheritPropComments`\n // above.\n prop.node.leadingComments = null;\n prop.remove();\n }\n\n if (injectSuperRef) {\n path.scope.push({ id: t.cloneNode(injectSuperRef) });\n path.set(\n \"superClass\",\n t.assignmentExpression(\"=\", injectSuperRef, path.node.superClass),\n );\n }\n\n if (classRefFlags !== ClassRefFlag.None) {\n if (path.isClassExpression()) {\n path.scope.push({ id: ref });\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(ref), path.node),\n );\n } else {\n if (innerBindingRef == null) {\n // export anonymous class declaration\n path.node.id = ref;\n }\n if (classBindingNode != null) {\n path.scope.push({ id: classRefForInnerBinding });\n }\n }\n }\n\n return path;\n },\n };\n}\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAGA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,yBAAA,GAAAF,OAAA;AACA,IAAAG,kCAAA,GAAAH,OAAA;AAKA,IAAAI,6BAAA,GAAAJ,OAAA;AACA,IAAAK,qBAAA,GAAAL,OAAA;AACA,IAAAM,wCAAA,GAAAN,OAAA;AAEA,IAAAO,EAAA,GAAAP,OAAA;AAgBO,SAASQ,oBAAoBA,CAACC,KAAiB,EAAE;EACtD,MAAMC,eAAgC,GAAG,IAAIC,GAAG,CAAC,CAAC;EAClD,KAAK,MAAMC,IAAI,IAAIH,KAAK,EAAE;IACxB,IAAIG,IAAI,CAACC,SAAS,CAAC,CAAC,EAAE;MACpB,MAAM;QAAEC;MAAK,CAAC,GAAGF,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE;MACjC,MAAMC,MAA2B,GAAGR,eAAe,CAACS,GAAG,CAACL,IAAI,CAAC,GACzDJ,eAAe,CAACU,GAAG,CAACN,IAAI,CAAC,GACzB;QACEG,EAAE,EAAEL,IAAI,CAACS,KAAK,CAACC,qBAAqB,CAACR,IAAI,CAAC;QAC1CS,MAAM,EAAEX,IAAI,CAACG,IAAI,CAACQ,MAAM;QACxBC,MAAM,EAAE,CAACZ,IAAI,CAACa,UAAU,CAAC;MAC3B,CAAC;MACL,IAAIb,IAAI,CAACc,oBAAoB,CAAC,CAAC,EAAE;QAC/B,IAAId,IAAI,CAACG,IAAI,CAACY,IAAI,KAAK,KAAK,EAAE;UAC5BT,MAAM,CAACU,KAAK,GAAGhB,IAAI,CAACS,KAAK,CAACC,qBAAqB,CAAE,OAAMR,IAAK,EAAC,CAAC;QAChE,CAAC,MAAM,IAAIF,IAAI,CAACG,IAAI,CAACY,IAAI,KAAK,KAAK,EAAE;UACnCT,MAAM,CAACW,KAAK,GAAGjB,IAAI,CAACS,KAAK,CAACC,qBAAqB,CAAE,OAAMR,IAAK,EAAC,CAAC;QAChE,CAAC,MAAM,IAAIF,IAAI,CAACG,IAAI,CAACY,IAAI,KAAK,QAAQ,EAAE;UACtCT,MAAM,CAACY,QAAQ,GAAGlB,IAAI,CAACS,KAAK,CAACC,qBAAqB,CAACR,IAAI,CAAC;QAC1D;MACF;MACAJ,eAAe,CAACqB,GAAG,CAACjB,IAAI,EAAEI,MAAM,CAAC;IACnC;EACF;EACA,OAAOR,eAAe;AACxB;AAEO,SAASsB,sBAAsBA,CACpCtB,eAAgC,EAChCuB,yBAAkC,EAClCC,sBAA+B,EAC/BC,KAAW,EACX;EACA,MAAMC,SAAwB,GAAG,EAAE;EAEnC,KAAK,MAAM,CAACtB,IAAI,EAAEuB,KAAK,CAAC,IAAI3B,eAAe,EAAE;IAW3C,MAAM;MAAEa,MAAM,EAAEe,QAAQ;MAAEd,MAAM,EAAEe,QAAQ;MAAEX,KAAK;MAAEC;IAAM,CAAC,GAAGQ,KAAK;IAClE,MAAMG,UAAU,GAAGZ,KAAK,IAAIC,KAAK;IACjC,MAAMZ,EAAE,GAAGwB,WAAC,CAACC,SAAS,CAACL,KAAK,CAACpB,EAAE,CAAC;IAEhC,IAAI0B,IAAkB;IAEtB,IAAIV,yBAAyB,EAAE;MAC7BU,IAAI,GAAGF,WAAC,CAACG,cAAc,CAACT,KAAK,CAACU,SAAS,CAAC,2BAA2B,CAAC,EAAE,CACpEJ,WAAC,CAACK,aAAa,CAAChC,IAAI,CAAC,CACtB,CAAC;IACJ,CAAC,MAAM,IAAIoB,sBAAsB,EAAE;MACjCS,IAAI,GAAGF,WAAC,CAACG,cAAc,CAACH,WAAC,CAACM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAACN,WAAC,CAACK,aAAa,CAAChC,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC,MAAM,IAAI,CAACwB,QAAQ,EAAE;MACpBK,IAAI,GAAGF,WAAC,CAACO,aAAa,CACpBP,WAAC,CAACM,UAAU,CAAC,CAACR,QAAQ,IAAIC,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC,EAC7D,EACF,CAAC;IACH;IAEA,IAAIG,IAAI,EAAE;MACR,IAAAM,6BAAc,EAACN,IAAI,CAAC;MACpBP,SAAS,CAACc,IAAI,CAACC,cAAQ,CAACC,SAAS,CAACC,GAAI,OAAMpC,EAAG,MAAK0B,IAAK,EAAC,CAAC;IAC7D;EACF;EAEA,OAAOP,SAAS;AAClB;AAWA,SAASkB,yBAAyBA,CAChCC,OAA6C,EAC7C;EAGA,MAAMC,aAAa,GAAGC,cAAQ,CAACC,QAAQ,CAACC,KAAK,CAAC,CAAAC,MAAA,CAAAC,MAAA,KAEvCN,OAAO,GAEZO,iCAAkB,CACnB,CAAC;EAEF,MAAMC,kBAAwD,GAAAH,MAAA,CAAAC,MAAA,KACzDN,OAAO;IAEVS,KAAKA,CAACC,IAAI,EAAE;MACV,MAAM;QAAEvD;MAAgB,CAAC,GAAG,IAAI;MAChC,MAAMwD,IAAI,GAAGD,IAAI,CAAC7C,GAAG,CAAC,WAAW,CAAC;MAElC,MAAM+C,mBAAmB,GAAG,IAAIxD,GAAG,CAACD,eAAe,CAAC;MACpD,MAAM0D,UAAU,GAAG,EAAE;MACrB,KAAK,MAAMxD,IAAI,IAAIsD,IAAI,EAAE;QACvB,IAAI,CAACtD,IAAI,CAACC,SAAS,CAAC,CAAC,EAAE;QACvB,MAAM;UAAEC;QAAK,CAAC,GAAGF,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE;QACjCkD,mBAAmB,CAACE,MAAM,CAACvD,IAAI,CAAC;QAChCsD,UAAU,CAAClB,IAAI,CAACpC,IAAI,CAAC;MACvB;MAIA,IAAI,CAACsD,UAAU,CAACE,MAAM,EAAE;QACtB;MACF;MAKAL,IAAI,CAAC7C,GAAG,CAAC,MAAM,CAAC,CAACqC,QAAQ,CAACD,aAAa,EAAAI,MAAA,CAAAC,MAAA,KAClC,IAAI;QACPO;MAAU,EACX,CAAC;MACFH,IAAI,CAACR,QAAQ,CAACM,kBAAkB,EAAAH,MAAA,CAAAC,MAAA,KAC3B,IAAI;QACPnD,eAAe,EAAEyD;MAAmB,EACrC,CAAC;MAIFF,IAAI,CAACM,OAAO,CAAC,MAAM,CAAC;IACtB;EAAC,EACF;EAED,OAAOR,kBAAkB;AAC3B;AAUA,MAAMA,kBAAkB,GAAGT,yBAAyB,CAElD;EACAkB,WAAWA,CAACP,IAAI,EAAE;IAAEQ;EAAc,CAAC,EAAE;IACnC,MAAM;MAAE/D,eAAe;MAAE0D;IAAW,CAAC,GAAG,IAAI;IAC5C,MAAM;MAAErD,IAAI;MAAE2D;IAAW,CAAC,GAAGT,IAAI;IAEjC,IACE,CAACS,UAAU,CAACC,kBAAkB,CAAC;MAAEC,QAAQ,EAAE7D;IAAK,CAAC,CAAC,IAClD,CAAC2D,UAAU,CAACG,0BAA0B,CAAC;MAAED,QAAQ,EAAE7D;IAAK,CAAC,CAAC,EAC1D;MACA;IACF;IACA,MAAM;MAAED;IAAK,CAAC,GAAGC,IAAI,CAACE,EAAE;IACxB,IAAI,CAACP,eAAe,CAACS,GAAG,CAACL,IAAI,CAAC,EAAE;IAChC,IAAIsD,UAAU,IAAIA,UAAU,CAACU,QAAQ,CAAChE,IAAI,CAAC,EAAE;IAE7C,IAAI,CAACiE,MAAM,CAACL,UAAU,EAAED,aAAa,CAAC;EACxC;AACF,CAAC,CAAC;AAGF,SAASO,QAAQA,CACflE,IAAY,EACZO,KAAY,EACZ4D,YAAsC,EACtC;EAIA,OACE,CAAAC,MAAA,GAAA7D,KAAK,aAAL6D,MAAA,CAAOC,UAAU,CAACrE,IAAI,CAAC,IACvB,CAACO,KAAK,CAAC+D,uBAAuB,CAACtE,IAAI,EAAEmE,YAAY,CAAC,EAClD;IAAA,IAAAC,MAAA;IACA7D,KAAK,CAACgE,MAAM,CAACvE,IAAI,CAAC;IAClBO,KAAK,GAAGA,KAAK,CAACiE,MAAM;EACtB;AACF;AAEO,SAASC,eAAeA,CAC7BC,GAAiB,EACjBC,IAAU,EACVC,aAAuB,EACvB;EACA,IAAIA,aAAa,IAAI,EAACD,IAAI,CAACE,eAAe,YAApBF,IAAI,CAACE,eAAe,CAAG,YAAY,CAAC,GAAE,OAAOH,GAAG;EACtE,OAAO/C,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC2C,GAAG,CAAC,CAAC;AAC9D;AAEA,MAAMI,gBAAgB,GAAGtC,yBAAyB,CAI/C;EACDuC,gBAAgBA,CAAC5B,IAAI,EAAE;IAAEwB;EAAK,CAAC,EAAE;IAC/B,MAAM;MAAEK,QAAQ;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAG/B,IAAI,CAAClD,IAAI;IAC3C,IAAI+E,QAAQ,KAAK,IAAI,EAAE;IACvB,IAAI,CAACrD,WAAC,CAACwD,aAAa,CAACF,IAAI,CAAC,EAAE;IAE5B,MAAM;MAAE9D,yBAAyB;MAAEvB,eAAe;MAAE0D;IAAW,CAAC,GAAG,IAAI;IAEvE,MAAM;MAAEtD;IAAK,CAAC,GAAGiF,IAAI,CAAC9E,EAAE;IAExB,IAAI,CAACP,eAAe,CAACS,GAAG,CAACL,IAAI,CAAC,EAAE;IAChC,IAAIsD,UAAU,IAAIA,UAAU,CAACU,QAAQ,CAAChE,IAAI,CAAC,EAAE;IAI7CkE,QAAQ,CAAC,IAAI,CAACkB,QAAQ,CAACpF,IAAI,EAAEmD,IAAI,CAAC5C,KAAK,EAAE,IAAI,CAAC4D,YAAY,CAAC;IAE3D,IAAIhD,yBAAyB,EAAE;MAC7B,MAAM;QAAEhB;MAAG,CAAC,GAAGP,eAAe,CAACU,GAAG,CAACN,IAAI,CAAC;MACxCmD,IAAI,CAACkC,WAAW,CAAChD,cAAQ,CAACiD,UAAU,CAAC/C,GAAI;AAC/C,+CAA+CkC,eAAe,CACpDS,KAAK,EACLP,IACF,CAAE,KAAIhD,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAE;AAC9B,OAAO,CAAC;MACF;IACF;IAEA,MAAM;MAAEA,EAAE;MAAEM,MAAM,EAAEe;IAAS,CAAC,GAAG5B,eAAe,CAACU,GAAG,CAACN,IAAI,CAAC;IAE1D,IAAIwB,QAAQ,EAAE;MACZ2B,IAAI,CAACkC,WAAW,CACdhD,cAAQ,CAACiD,UAAU,CAAC/C,GAAI,GAAEkC,eAAe,CACvCS,KAAK,EACLP,IACF,CAAE,QAAOhD,WAAC,CAACC,SAAS,CAAC,IAAI,CAACwD,QAAQ,CAAE,EACtC,CAAC;MACD;IACF;IAEAjC,IAAI,CAACkC,WAAW,CACdhD,cAAQ,CAACiD,UAAU,CAAC/C,GAAI,GAAEZ,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAE,QAAOsE,eAAe,CAC9DS,KAAK,EACLP,IACF,CAAE,GACJ,CAAC;EACH;AACF,CAAC,CAAC;AASF,MAAMY,sBAAuE,GAC3E;EACEC,OAAOA,CAACC,MAAM,EAAEC,KAAK,EAAE;IACrB,MAAM;MAAEnF;IAAM,CAAC,GAAGkF,MAAM;IACxB,MAAM;MAAEE;IAAO,CAAC,GAAGF,MAAM,CAACxF,IAAgC;IAE1D,MAAM2F,IAAI,GAAGrF,KAAK,CAACsF,qBAAqB,CAACF,MAAM,CAAC;IAChD,IAAI,CAACC,IAAI,EAAE;MACT;IACF;IAEA,IAAI,CAACE,QAAQ,CAAC7E,GAAG,CAAC0E,MAAM,EAAEC,IAAI,EAAEF,KAAK,CAAC;EACxC,CAAC;EAEDK,QAAQA,CAACN,MAAM,EAAE;IACf,MAAM;MAAEE;IAAO,CAAC,GAAGF,MAAM,CAACxF,IAAgC;IAE1D,IAAI,IAAI,CAAC6F,QAAQ,CAACzF,GAAG,CAACsF,MAAM,CAAC,EAAE;MAC7B,OAAOhE,WAAC,CAACC,SAAS,CAAC,IAAI,CAACkE,QAAQ,CAACxF,GAAG,CAACqF,MAAM,CAAC,CAAC;IAC/C;IAEA,OAAOhE,WAAC,CAACC,SAAS,CAAC+D,MAAM,CAAC;EAC5B,CAAC;EAEDrF,GAAGA,CAACmF,MAAM,EAAE;IACV,MAAM;MAAEL,QAAQ;MAAExF,eAAe;MAAE+E,IAAI;MAAER;IAAa,CAAC,GAAG,IAAI;IAC9D,MAAM;MAAEnE;IAAK,CAAC,GAAIyF,MAAM,CAACxF,IAAI,CAAC6D,QAAQ,CAAmB3D,EAAE;IAC3D,MAAM;MACJA,EAAE;MACFM,MAAM,EAAEe,QAAQ;MAChBd,MAAM,EAAEe,QAAQ;MAChBT,QAAQ;MACRF,KAAK;MACLC;IACF,CAAC,GAAGnB,eAAe,CAACU,GAAG,CAACN,IAAI,CAAC;IAC7B,MAAM0B,UAAU,GAAGZ,KAAK,IAAIC,KAAK;IAEjC,IAAIS,QAAQ,EAAE;MAGZ,MAAMwE,UAAU,GACdvE,QAAQ,IAAI,CAACC,UAAU,GACnB,6BAA6B,GAC7B,gCAAgC;MAItCwC,QAAQ,CAACkB,QAAQ,CAACpF,IAAI,EAAEyF,MAAM,CAAClF,KAAK,EAAE4D,YAAY,CAAC;MAEnD,OAAOxC,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAACiE,UAAU,CAAC,EAAE,CAClD,IAAI,CAACD,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACC,SAAS,CAACwD,QAAQ,CAAC,EACrBzD,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAC,CAChB,CAAC;IACJ;IAEA,IAAIsB,QAAQ,EAAE;MACZ,IAAIC,UAAU,EAAE;QACd,IAAI,CAACZ,KAAK,IAAIC,KAAK,EAAE;UACnB,IAAI4D,IAAI,CAACE,eAAe,CAAC,gBAAgB,CAAC,EAAE;YAC1C,OAAOlD,WAAC,CAACsE,kBAAkB,CAAC,CAC1B,IAAI,CAACF,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAAC,gBAAgB,CAAC,EAAE,CACjDJ,WAAC,CAACK,aAAa,CAAE,IAAGhC,IAAK,EAAC,CAAC,CAC5B,CAAC,CACH,CAAC;UACJ;UACAkG,OAAO,CAACC,IAAI,CACT,gEACH,CAAC;QACH;QACA,OAAOxE,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAC9D,IAAI,CAACgE,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAC,CAChB,CAAC;MACJ;MACA,OAAOwB,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAAC,uBAAuB,CAAC,EAAE,CAC/D,IAAI,CAACgE,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAC,EACfwB,WAAC,CAACC,SAAS,CAACZ,QAAQ,CAAC,CACtB,CAAC;IACJ;IACA,OAAOW,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAC9D,IAAI,CAACgE,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAC,CAChB,CAAC;EACJ,CAAC;EAEDiG,QAAQA,CAACX,MAAM,EAAE;IACf,IAAI,CAACD,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IAEvB,OAAO9D,WAAC,CAACG,cAAc,CACrBH,WAAC,CAAC0E,gBAAgB,CAAC,IAAI,CAAC/F,GAAG,CAACmF,MAAM,CAAC,EAAE9D,WAAC,CAACM,UAAU,CAAC,MAAM,CAAC,CAAC,EAC1D,CAAC,IAAI,CAAC8D,QAAQ,CAACN,MAAM,CAAC,CACxB,CAAC;EACH,CAAC;EAEDxE,GAAGA,CAACwE,MAAM,EAAElE,KAAK,EAAE;IACjB,MAAM;MAAE6D,QAAQ;MAAExF,eAAe;MAAE+E;IAAK,CAAC,GAAG,IAAI;IAChD,MAAM;MAAE3E;IAAK,CAAC,GAAIyF,MAAM,CAACxF,IAAI,CAAC6D,QAAQ,CAAmB3D,EAAE;IAC3D,MAAM;MACJA,EAAE;MACFM,MAAM,EAAEe,QAAQ;MAChBd,MAAM,EAAEe,QAAQ;MAChBV,KAAK;MACLD;IACF,CAAC,GAAGlB,eAAe,CAACU,GAAG,CAACN,IAAI,CAAC;IAC7B,MAAM0B,UAAU,GAAGZ,KAAK,IAAIC,KAAK;IAEjC,IAAIS,QAAQ,EAAE;MACZ,MAAMwE,UAAU,GACdvE,QAAQ,IAAI,CAACC,UAAU,GACnB,6BAA6B,GAC7B,gCAAgC;MAEtC,OAAOC,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAACiE,UAAU,CAAC,EAAE,CAClD,IAAI,CAACD,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACC,SAAS,CAACwD,QAAQ,CAAC,EACrBzD,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAC,EACfoB,KAAK,CACN,CAAC;IACJ;IACA,IAAIE,QAAQ,EAAE;MACZ,IAAIV,KAAK,EAAE;QACT,OAAOY,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAC9D,IAAI,CAACgE,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAC,EACfoB,KAAK,CACN,CAAC;MACJ;MACA,OAAOI,WAAC,CAACsE,kBAAkB,CAAC,CAC1B,IAAI,CAACF,QAAQ,CAACN,MAAM,CAAC,EACrBlE,KAAK,EACLI,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAAC,eAAe,CAAC,EAAE,CAChDJ,WAAC,CAACK,aAAa,CAAE,IAAGhC,IAAK,EAAC,CAAC,CAC5B,CAAC,CACH,CAAC;IACJ;IACA,OAAO2B,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAC9D,IAAI,CAACgE,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAC,EACfoB,KAAK,CACN,CAAC;EACJ,CAAC;EAED+E,cAAcA,CAACb,MAAM,EAAE;IACrB,MAAM;MAAEL,QAAQ;MAAExF,eAAe;MAAE+E;IAAK,CAAC,GAAG,IAAI;IAChD,MAAM;MAAE3E;IAAK,CAAC,GAAIyF,MAAM,CAACxF,IAAI,CAAC6D,QAAQ,CAAmB3D,EAAE;IAC3D,MAAM;MAAEA,EAAE;MAAEM,MAAM,EAAEe;IAAS,CAAC,GAAG5B,eAAe,CAACU,GAAG,CAACN,IAAI,CAAC;IAC1D,IAAIwB,QAAQ,EAAE;MACZ,IAAI;QAGF,IAAI+E,MAAM,GAAG5B,IAAI,CAAC5C,SAAS,CAAC,uCAAuC,CAAC;MACtE,CAAC,CAAC,OAAAyE,OAAA,EAAM;QACN,MAAM,IAAIC,KAAK,CACb,0EAA0E,GACxE,qDACJ,CAAC;MACH;MACA,OAAO9E,WAAC,CAAC0E,gBAAgB,CACvB1E,WAAC,CAACG,cAAc,CAACyE,MAAM,EAAE,CACvB,IAAI,CAACR,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACC,SAAS,CAACwD,QAAQ,CAAC,EACrBzD,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAC,CAChB,CAAC,EACFwB,WAAC,CAACM,UAAU,CAAC,OAAO,CACtB,CAAC;IACH;IAEA,OAAON,WAAC,CAAC0E,gBAAgB,CACvB1E,WAAC,CAACG,cAAc,CAAC6C,IAAI,CAAC5C,SAAS,CAAC,iCAAiC,CAAC,EAAE,CAClE,IAAI,CAACgE,QAAQ,CAACN,MAAM,CAAC,EACrB9D,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAC,CAChB,CAAC,EACFwB,WAAC,CAACM,UAAU,CAAC,OAAO,CACtB,CAAC;EACH,CAAC;EAEDyE,IAAIA,CAACjB,MAAM,EAAEkB,IAAwC,EAAE;IAErD,IAAI,CAACnB,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IAEvB,OAAO,IAAAmB,qCAAY,EAAC,IAAI,CAACtG,GAAG,CAACmF,MAAM,CAAC,EAAE,IAAI,CAACM,QAAQ,CAACN,MAAM,CAAC,EAAEkB,IAAI,EAAE,KAAK,CAAC;EAC3E,CAAC;EAEDE,YAAYA,CAACpB,MAAM,EAAEkB,IAAwC,EAAE;IAC7D,IAAI,CAACnB,OAAO,CAACC,MAAM,EAAE,CAAC,CAAC;IAEvB,OAAO,IAAAmB,qCAAY,EAAC,IAAI,CAACtG,GAAG,CAACmF,MAAM,CAAC,EAAE,IAAI,CAACM,QAAQ,CAACN,MAAM,CAAC,EAAEkB,IAAI,EAAE,IAAI,CAAC;EAC1E,CAAC;EAEDpD,MAAMA,CAAA,EAAG;IACP,MAAM,IAAIkD,KAAK,CACb,qEACF,CAAC;EACH;AACF,CAAC;AAEH,MAAMK,uBAAkD,GAAG;EACzDxG,GAAGA,CAACmF,MAAM,EAAE;IACV,MAAM;MAAE7F,eAAe;MAAE+E;IAAK,CAAC,GAAG,IAAI;IACtC,MAAM;MAAEgB;IAAO,CAAC,GAAGF,MAAM,CAACxF,IAAI;IAC9B,MAAM;MAAED;IAAK,CAAC,GAAIyF,MAAM,CAACxF,IAAI,CAAC6D,QAAQ,CAAmB3D,EAAE;IAE3D,OAAOkC,cAAQ,CAACiD,UAAW,uBAAsB,CAAC;MAChDyB,IAAI,EAAEpC,IAAI,CAAC5C,SAAS,CAAC,4BAA4B,CAAC;MAClDiF,GAAG,EAAErF,WAAC,CAACC,SAAS,CAAC+D,MAAM,CAAC;MACxBsB,IAAI,EAAEtF,WAAC,CAACC,SAAS,CAAChC,eAAe,CAACU,GAAG,CAACN,IAAI,CAAC,CAACG,EAAE;IAChD,CAAC,CAAC;EACJ,CAAC;EAEDc,GAAGA,CAAA,EAAG;IAEJ,MAAM,IAAIwF,KAAK,CAAC,yDAAyD,CAAC;EAC5E,CAAC;EAEDL,QAAQA,CAACX,MAAM,EAAE;IACf,OAAO9D,WAAC,CAACG,cAAc,CACrBH,WAAC,CAAC0E,gBAAgB,CAAC,IAAI,CAAC/F,GAAG,CAACmF,MAAM,CAAC,EAAE9D,WAAC,CAACM,UAAU,CAAC,MAAM,CAAC,CAAC,EAE1D,CAACN,WAAC,CAACC,SAAS,CAAC6D,MAAM,CAACxF,IAAI,CAAC0F,MAAsB,CAAC,CAClD,CAAC;EACH,CAAC;EAEDuB,SAASA,CAACzB,MAAM,EAAE;IAChB,OAAO,IAAI,CAACnF,GAAG,CAACmF,MAAM,CAAC;EACzB,CAAC;EAEDa,cAAcA,CAACb,MAAM,EAAE;IACrB,OAAO,IAAI,CAACnF,GAAG,CAACmF,MAAM,CAAC;EACzB,CAAC;EAEDiB,IAAIA,CAACjB,MAAM,EAAEkB,IAAI,EAAE;IACjB,OAAOhF,WAAC,CAACG,cAAc,CAAC,IAAI,CAACxB,GAAG,CAACmF,MAAM,CAAC,EAAEkB,IAAI,CAAC;EACjD,CAAC;EAEDE,YAAYA,CAACpB,MAAM,EAAEkB,IAAI,EAAE;IACzB,OAAOhF,WAAC,CAACwF,sBAAsB,CAAC,IAAI,CAAC7G,GAAG,CAACmF,MAAM,CAAC,EAAEkB,IAAI,EAAE,IAAI,CAAC;EAC/D,CAAC;EAEDpD,MAAMA,CAAA,EAAG;IACP,MAAM,IAAIkD,KAAK,CACb,qEACF,CAAC;EACH;AACF,CAAC;AAEM,SAASW,0BAA0BA,CACxCC,GAAiB,EACjBlE,IAAuB,EACvBvD,eAAgC,EAChC;EACEuB,yBAAyB;EACzBwC,aAAa;EACbQ;AAKF,CAAC,EACD9C,KAAW,EACX;EACA,IAAI,CAACzB,eAAe,CAAC0H,IAAI,EAAE;EAE3B,MAAMlE,IAAI,GAAGD,IAAI,CAAC7C,GAAG,CAAC,MAAM,CAAC;EAC7B,MAAMiH,OAAO,GAAGpG,yBAAyB,GACrC2F,uBAAuB,GACvBvB,sBAAsB;EAE1B,IAAAiC,0CAA2B,EAAmBpE,IAAI,EAAEH,kBAAkB,EAAAH,MAAA,CAAAC,MAAA;IACpEnD,eAAe;IACfwF,QAAQ,EAAEiC,GAAG;IACb1C,IAAI,EAAEtD;EAAK,GACRkG,OAAO;IACV5D,aAAa;IACbQ;EAAY,EACb,CAAC;EACFf,IAAI,CAACT,QAAQ,CAACmC,gBAAgB,EAAE;IAC9BlF,eAAe;IACfwF,QAAQ,EAAEiC,GAAG;IACb1C,IAAI,EAAEtD,KAAK;IACXF,yBAAyB;IACzBgD;EACF,CAAC,CAAC;AACJ;AAEA,SAASsD,0BAA0BA,CACjCJ,GAAiB,EACjBvH,IAAsC,EACtCF,eAAgC,EAChC;EACA,MAAM;IAAEO;EAAG,CAAC,GAAGP,eAAe,CAACU,GAAG,CAACR,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,CAAC;EACzD,MAAMuB,KAAK,GAAGzB,IAAI,CAACG,IAAI,CAACsB,KAAK,IAAIzB,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAC;EAEhE,OAAOC,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI;AAC3B,8BAA8B8E,GAAI,KAAI1F,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAE;AACtD;AACA;AACA;AACA,iBAAiBoB,KAAM;AACvB;AACA,KAAK,EACDzB,IACF,CAAC;AACH;AAEA,SAAS8H,iCAAiCA,CACxCP,GAAiB,EACjBvH,IAAsC,EACtCF,eAAgC,EAChCyB,KAAW,EACX;EACA,MAAM;IAAElB;EAAG,CAAC,GAAGP,eAAe,CAACU,GAAG,CAACR,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,CAAC;EACzD,MAAMuB,KAAK,GAAGzB,IAAI,CAACG,IAAI,CAACsB,KAAK,IAAIzB,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAC;EAE7B;IACjC,IAAI,CAACrG,KAAK,CAACwD,eAAe,CAAC,2BAA2B,CAAC,EAAE;MACvD,OAAO8C,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI,GAAEZ,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAE,QAAOkH,GAAI;AAC5D;AACA;AACA;AACA,mBAAmB9F,KAAM;AACzB,WAAW,EACHzB,IACF,CAAC;IACH;EACF;EAEA,MAAMyG,MAAM,GAAGlF,KAAK,CAACU,SAAS,CAAC,2BAA2B,CAAC;EAC3D,OAAO4F,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI,GAAEgE,MAAO;AACpC,QAAQ5E,WAAC,CAACkG,cAAc,CAAC,CAAE;AAC3B,QAAQlG,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAE;AACxB;AACA;AACA,iBAAiBoB,KAAM;AACvB;AACA,MAAM,EACFzB,IACF,CAAC;AACH;AAEA,SAASgI,+BAA+BA,CACtChI,IAAsC,EACtCF,eAAgC,EAChC;EACA,MAAMmI,WAAW,GAAGnI,eAAe,CAACU,GAAG,CAACR,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,CAAC;EAC9D,MAAM;IAAEG,EAAE;IAAEW,KAAK;IAAEC,KAAK;IAAEiH;EAAU,CAAC,GAAGD,WAAW;EACnD,MAAMrG,UAAU,GAAGZ,KAAK,IAAIC,KAAK;EAEjC,IAAI,CAACjB,IAAI,CAACa,UAAU,CAAC,CAAC,KAAKqH,SAAS,IAAI,CAACtG,UAAU,CAAC,EAAE;EAEtD,IAAIA,UAAU,EAAE;IACd9B,eAAe,CAACqB,GAAG,CAACnB,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,EAAA8C,MAAA,CAAAC,MAAA,KACpCgF,WAAW;MACdC,SAAS,EAAE;IAAI,EAChB,CAAC;IAEF,OAAOL,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI;AAC7B,cAAcZ,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAE;AAC9B;AACA;AACA;AACA,iBAAiBW,KAAK,GAAGA,KAAK,CAACd,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACtE,iBAAiB3G,KAAK,GAAGA,KAAK,CAACf,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACtE;AACA,OAAO,EACD5H,IACF,CAAC;EACH;EAEA,MAAMyB,KAAK,GAAGzB,IAAI,CAACG,IAAI,CAACsB,KAAK,IAAIzB,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAC;EAChE,OAAOC,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI;AAC3B,YAAYZ,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAE;AAC5B;AACA;AACA;AACA,iBAAiBoB,KAAM;AACvB;AACA,KAAK,EACDzB,IACF,CAAC;AACH;AAEA,SAASmI,2BAA2BA,CAClCZ,GAAiB,EACjBvH,IAAoC,EACpCF,eAAgC,EAChC;EACA,MAAMmI,WAAW,GAAGnI,eAAe,CAACU,GAAG,CAACR,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,CAAC;EAC9D,MAAM;IAAEgB,QAAQ;IAAEb,EAAE;IAAEW,KAAK;IAAEC,KAAK;IAAEiH;EAAU,CAAC,GAAGD,WAAW;EAC7D,IAAIC,SAAS,EAAE;EAEf,IAAIhH,QAAQ,EAAE;IACZ,OAAO2G,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI;AAC7B,gCAAgC8E,GAAI,KAAIlH,EAAG;AAC3C;AACA;AACA;AACA,mBAAmBa,QAAQ,CAAChB,IAAK;AACjC;AACA,OAAO,EACDF,IACF,CAAC;EACH;EACA,MAAM4B,UAAU,GAAGZ,KAAK,IAAIC,KAAK;EACjC,IAAIW,UAAU,EAAE;IACd9B,eAAe,CAACqB,GAAG,CAACnB,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,EAAA8C,MAAA,CAAAC,MAAA,KACpCgF,WAAW;MACdC,SAAS,EAAE;IAAI,EAChB,CAAC;IAEF,OAAOL,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI;AAC7B,gCAAgC8E,GAAI,KAAIlH,EAAG;AAC3C;AACA;AACA;AACA,iBAAiBW,KAAK,GAAGA,KAAK,CAACd,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACtE,iBAAiB3G,KAAK,GAAGA,KAAK,CAACf,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACtE;AACA,OAAO,EACD5H,IACF,CAAC;EACH;AACF;AAEA,SAASoI,kCAAkCA,CACzCb,GAAiB,EACjBvH,IAAoC,EACpCF,eAAgC,EAChCyB,KAAW,EACX;EACA,MAAM0G,WAAW,GAAGnI,eAAe,CAACU,GAAG,CAACR,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,CAAC;EAC9D,MAAM;IAAEc,KAAK;IAAEC,KAAK;IAAEiH;EAAU,CAAC,GAAGD,WAAW;EAE/C,IAAIC,SAAS,EAAE;EAEf,MAAMtG,UAAU,GAAGZ,KAAK,IAAIC,KAAK;EACjC,IAAIW,UAAU,EAAE;IACd,OAAOyG,kCAAkC,CACvCd,GAAG,EACHvH,IAAI,EACJF,eAAe,EACfyB,KACF,CAAC;EACH;EAEA,OAAO+G,wCAAwC,CAC7Cf,GAAG,EACHvH,IAAI,EACJF,eAAe,EACfyB,KACF,CAAC;AACH;AAEA,SAAS8G,kCAAkCA,CACzCd,GAAiB,EACjBvH,IAAoC,EACpCF,eAAgC,EAChCyB,KAAW,EACX;EACA,MAAM0G,WAAW,GAAGnI,eAAe,CAACU,GAAG,CAACR,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,CAAC;EAC9D,MAAM;IAAEG,EAAE;IAAEW,KAAK;IAAEC;EAAM,CAAC,GAAGgH,WAAW;EAExCnI,eAAe,CAACqB,GAAG,CAACnB,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,EAAA8C,MAAA,CAAAC,MAAA,KACpCgF,WAAW;IACdC,SAAS,EAAE;EAAI,EAChB,CAAC;EAEiC;IACjC,IAAI,CAAC3G,KAAK,CAACwD,eAAe,CAAC,2BAA2B,CAAC,EAAE;MACvD,OAAO8C,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI;AAC/B,YAAYpC,EAAG,QAAOkH,GAAI;AAC1B,mBAAmBvG,KAAK,GAAGA,KAAK,CAACd,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACxE,mBAAmB3G,KAAK,GAAGA,KAAK,CAACf,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACxE;AACA,SAAS,EACD5H,IACF,CAAC;IACH;EACF;EAEA,MAAMyG,MAAM,GAAGlF,KAAK,CAACU,SAAS,CAAC,2BAA2B,CAAC;EAC3D,OAAO4F,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI,GAAEgE,MAAO;AACpC,QAAQ5E,WAAC,CAACkG,cAAc,CAAC,CAAE;AAC3B,QAAQlG,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAE;AACxB;AACA,eAAeW,KAAK,GAAGA,KAAK,CAACd,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACpE,eAAe3G,KAAK,GAAGA,KAAK,CAACf,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACpE;AACA,MAAM,EACF5H,IACF,CAAC;AACH;AAEA,SAASsI,wCAAwCA,CAC/Cf,GAAiB,EACjBvH,IAAoC,EACpCF,eAAgC,EAChCyB,KAAW,EACX;EACA,MAAM0G,WAAW,GAAGnI,eAAe,CAACU,GAAG,CAACR,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,CAAC;EAC9D,MAAM;IAAEG;EAAG,CAAC,GAAG4H,WAAW;EAES;IACjC,IAAI,CAAC1G,KAAK,CAACwD,eAAe,CAAC,4BAA4B,CAAC,EAAE;MACxD,OAAO8C,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI,GAAEpC,EAAG,QAAOkH,GAAI,GAAE,EACzCvH,IACF,CAAC;IACH;EACF;EAEA,MAAMyG,MAAM,GAAGlF,KAAK,CAACU,SAAS,CAAC,4BAA4B,CAAC;EAC5D,OAAO4F,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI,GAAEgE,MAAO;AACpC,QAAQ5E,WAAC,CAACkG,cAAc,CAAC,CAAE;AAC3B,QAAQlG,WAAC,CAACC,SAAS,CAACzB,EAAE,CAAE;AACxB,MAAM,EACFL,IACF,CAAC;AACH;AAEA,SAASuI,yBAAyBA,CAChChB,GAAiB,EACjBvH,IAA+B,EAC/B;EACA,MAAM;IAAEI,GAAG;IAAEoI;EAAS,CAAC,GAAGxI,IAAI,CAACG,IAAI;EACnC,MAAMsB,KAAK,GAAGzB,IAAI,CAACG,IAAI,CAACsB,KAAK,IAAIzB,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAC;EAEhE,OAAOC,mBAAmB,CACxBhG,WAAC,CAAC4G,mBAAmB,CACnB5G,WAAC,CAAC6G,oBAAoB,CACpB,GAAG,EACH7G,WAAC,CAAC0E,gBAAgB,CAACgB,GAAG,EAAEnH,GAAG,EAAEoI,QAAQ,IAAI3G,WAAC,CAAC8G,SAAS,CAACvI,GAAG,CAAC,CAAC,EAC1DqB,KACF,CACF,CAAC,EACDzB,IACF,CAAC;AACH;AAEA,SAAS4I,wBAAwBA,CAC/BrB,GAAiB,EACjBvH,IAA+B,EAC/BuB,KAAW,EACX;EACA,MAAM;IAAEnB,GAAG;IAAEoI;EAAS,CAAC,GAAGxI,IAAI,CAACG,IAAI;EACnC,MAAMsB,KAAK,GAAGzB,IAAI,CAACG,IAAI,CAACsB,KAAK,IAAIzB,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAC;EAEhE,OAAOC,mBAAmB,CACxBhG,WAAC,CAAC4G,mBAAmB,CACnB5G,WAAC,CAACG,cAAc,CAACT,KAAK,CAACU,SAAS,CAAC,gBAAgB,CAAC,EAAE,CAClDsF,GAAG,EACHiB,QAAQ,IAAI3G,WAAC,CAAC8G,SAAS,CAACvI,GAAG,CAAC,GACxBA,GAAG,GACHyB,WAAC,CAACK,aAAa,CAAE9B,GAAG,CAAkBF,IAAI,CAAC,EAC/CuB,KAAK,CACN,CACH,CAAC,EACDzB,IACF,CAAC;AACH;AAEA,SAAS6I,iCAAiCA,CACxCtB,GAAiB,EACjBvH,IAAoC,EACpCuB,KAAW,EACXzB,eAAgC,EAChC;EACA,MAAMmI,WAAW,GAAGnI,eAAe,CAACU,GAAG,CAACR,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,CAAC;EAC9D,MAAM;IAAEG,EAAE;IAAEa,QAAQ;IAAEF,KAAK;IAAEC,KAAK;IAAEiH;EAAU,CAAC,GAAGD,WAAW;EAE7D,IAAIC,SAAS,EAAE;EAEf,MAAMtG,UAAU,GAAGZ,KAAK,IAAIC,KAAK;EACjC,IAAIW,UAAU,EAAE;IACd9B,eAAe,CAACqB,GAAG,CAACnB,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,EAAA8C,MAAA,CAAAC,MAAA,KACpCgF,WAAW;MACdC,SAAS,EAAE;IAAI,EAChB,CAAC;IAEF,OAAOL,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI;AAC7B,gCAAgC8E,GAAI,KAAIlH,EAAG;AAC3C;AACA;AACA;AACA,iBAAiBW,KAAK,GAAGA,KAAK,CAACd,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACtE,iBAAiB3G,KAAK,GAAGA,KAAK,CAACf,IAAI,GAAGF,IAAI,CAACS,KAAK,CAACmH,kBAAkB,CAAC,CAAE;AACtE;AACA,OAAO,EACD5H,IACF,CAAC;EACH;EAEA,OAAO6H,mBAAmB,CACxBtF,cAAQ,CAACC,SAAS,CAACC,GAAI;AAC3B,8BAA8B8E,GAAI,KAAIlH,EAAG;AACzC;AACA;AACA;AACA,iBAAiBa,QAAQ,CAAChB,IAAK;AAC/B;AACA,KAAK,EACDF,IACF,CAAC;AACH;AAEA,SAAS8I,6BAA6BA,CACpC9I,IAAoC,EACpCF,eAAgC,EAChCuB,yBAAyB,GAAG,KAAK,EACjC;EACA,MAAM4G,WAAW,GAAGnI,eAAe,CAACU,GAAG,CAACR,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,CAAC;EAC9D,MAAM;IACJG,EAAE;IACFa,QAAQ;IACRF,KAAK;IACLC,KAAK;IACL8H,cAAc;IACdC,cAAc;IACdrI,MAAM,EAAEe;EACV,CAAC,GAAGuG,WAAW;EACf,MAAM;IAAEgB,MAAM;IAAE3F,IAAI;IAAE4F,SAAS;IAAEC;EAAM,CAAC,GAAGnJ,IAAI,CAACG,IAAI;EACpD,MAAMiJ,QAAQ,GAAGpI,KAAK,IAAI,CAAC+H,cAAc,IAAIE,MAAM,CAACvF,MAAM,KAAK,CAAC;EAChE,MAAM2F,QAAQ,GAAGpI,KAAK,IAAI,CAAC+H,cAAc,IAAIC,MAAM,CAACvF,MAAM,GAAG,CAAC;EAE9D,IAAI4F,MAAM,GAAGpI,QAAQ;EAErB,IAAIkI,QAAQ,EAAE;IACZtJ,eAAe,CAACqB,GAAG,CAACnB,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,EAAA8C,MAAA,CAAAC,MAAA,KACpCgF,WAAW;MACdc,cAAc,EAAE;IAAI,EACrB,CAAC;IACFO,MAAM,GAAGtI,KAAK;EAChB,CAAC,MAAM,IAAIqI,QAAQ,EAAE;IACnBvJ,eAAe,CAACqB,GAAG,CAACnB,IAAI,CAACG,IAAI,CAACC,GAAG,CAACC,EAAE,CAACH,IAAI,EAAA8C,MAAA,CAAAC,MAAA,KACpCgF,WAAW;MACde,cAAc,EAAE;IAAI,EACrB,CAAC;IACFM,MAAM,GAAGrI,KAAK;EAChB,CAAC,MAAM,IAAIS,QAAQ,IAAI,CAACL,yBAAyB,EAAE;IACjDiI,MAAM,GAAGjJ,EAAE;EACb;EAEA,OAAOwH,mBAAmB,CACxBhG,WAAC,CAAC0H,mBAAmB,CACnB1H,WAAC,CAACC,SAAS,CAACwH,MAAM,CAAC,EAEnBL,MAAM,EACN3F,IAAI,EACJ4F,SAAS,EACTC,KACF,CAAC,EACDnJ,IACF,CAAC;AACH;AAUA,MAAMwJ,kBAAkB,GAAG3G,cAAQ,CAACC,QAAQ,CAACC,KAAK,CAAmB,CACnE;EACE0G,eAAeA,CAACpG,IAAI,EAAE;IAEpB,MAAM;MAAElD;IAAK,CAAC,GAAGkD,IAAI;IACrB,IAAIlD,IAAI,CAAC+E,QAAQ,KAAK,QAAQ,EAAE;MAC9B,MAAMwE,QAAQ,GAAG,IAAAC,wEAA+B,EAACxJ,IAAI,CAACuJ,QAAQ,CAAC;MAC/D,IAAI7H,WAAC,CAAC+H,gBAAgB,CAACF,QAAQ,CAAC,EAAE;QAChCrG,IAAI,CAACkC,WAAW,CAAC1D,WAAC,CAACgI,cAAc,CAAC,IAAI,CAAC,CAAC;MAC1C;IACF;EACF,CAAC;EACDC,cAAcA,CAACzG,IAAI,EAAE9B,KAAK,EAAE;IAC1BA,KAAK,CAACwI,aAAa,GAAG,IAAI;IAC1B1G,IAAI,CAACkC,WAAW,CAAC1D,WAAC,CAACC,SAAS,CAACP,KAAK,CAAC+D,QAAQ,CAAC,CAAC;EAC/C,CAAC;EACD0E,YAAYA,CAAC3G,IAAI,EAAE;IACjB,MAAM;MAAElD,IAAI;MAAEM;IAAM,CAAC,GAAG4C,IAAI;IAG5B,IAAIlD,IAAI,CAAC8J,IAAI,CAAC/J,IAAI,KAAK,KAAK,IAAIC,IAAI,CAAC6D,QAAQ,CAAC9D,IAAI,KAAK,QAAQ,EAAE;MAC/DmD,IAAI,CAACkC,WAAW,CAAC9E,KAAK,CAACmH,kBAAkB,CAAC,CAAC,CAAC;IAC9C;EACF;AACF,CAAC,EACD1E,iCAAkB,CACnB,CAAC;AAEF,MAAMgH,sBAAkE,GAAG;EACzEC,oBAAoBA,CAAC9G,IAAI,EAAE9B,KAAK,EAAE;IAChC,IACE8B,IAAI,CAAC5C,KAAK,CAAC+D,uBAAuB,CAACnB,IAAI,CAAClD,IAAI,CAACD,IAAI,EAAEqB,KAAK,CAAC8C,YAAY,CAAC,EACtE;MACA9C,KAAK,CAACwI,aAAa,GAAG,IAAI;MAC1B1G,IAAI,CAAClD,IAAI,CAACD,IAAI,GAAGqB,KAAK,CAAC+D,QAAQ,CAACpF,IAAI;IACtC;EACF;AACF,CAAC;AAED,SAASkK,kBAAkBA,CACzB/G,IAAc,EACdkE,GAAiB,EACjB8C,eAAoC,EACpC;EAAA,IAAAC,eAAA;EACA,MAAM/I,KAAuB,GAAG;IAC9B+D,QAAQ,EAAEiC,GAAG;IACbwC,aAAa,EAAE,KAAK;IACpB1F,YAAY,EAAEgG;EAChB,CAAC;EACD,IAAI,CAAChH,IAAI,CAAC1B,QAAQ,CAAC,CAAC,EAAE;IAEpB0B,IAAI,CAACR,QAAQ,CAAC2G,kBAAkB,EAAEjI,KAAK,CAAC;EAC1C;EAGA,IACE8I,eAAe,IAAI,IAAI,KAAAC,eAAA,GACvB/I,KAAK,CAAC+D,QAAQ,aAAdgF,eAAA,CAAgBpK,IAAI,IACpBqB,KAAK,CAAC+D,QAAQ,CAACpF,IAAI,KAAKmK,eAAe,CAACnK,IAAI,EAC5C;IACAmD,IAAI,CAACR,QAAQ,CAACqH,sBAAsB,EAAE3I,KAAK,CAAC;EAC9C;EAEA,OAAOA,KAAK,CAACwI,aAAa;AAC5B;AASA,SAASQ,cAAcA,CAAC;EAAEnK,GAAG;EAAEoI;AAA0B,CAAC,EAAE;EAC1D,IAAIpI,GAAG,CAACoK,IAAI,KAAK,YAAY,EAAE;IAC7B,OAAO,CAAChC,QAAQ,KAAKpI,GAAG,CAACF,IAAI,KAAK,MAAM,IAAIE,GAAG,CAACF,IAAI,KAAK,QAAQ,CAAC;EACpE;EACA,IAAIE,GAAG,CAACoK,IAAI,KAAK,eAAe,EAAE;IAChC,OAAOpK,GAAG,CAACqB,KAAK,KAAK,MAAM,IAAIrB,GAAG,CAACqB,KAAK,KAAK,QAAQ;EACvD;EACA,OAAO,KAAK;AACd;AAaA,SAASoG,mBAAmBA,CAAmB1H,IAAO,EAAEH,IAAc,EAAE;EACtE6B,WAAC,CAAC4I,sBAAsB,CAACtK,IAAI,EAAEH,IAAI,CAACG,IAAI,CAAC;EACzC0B,WAAC,CAAC6I,oBAAoB,CAACvK,IAAI,EAAEH,IAAI,CAACG,IAAI,CAAC;EACvC,OAAOA,IAAI;AACb;AAyBO,SAASwK,oBAAoBA,CAClCpD,GAAwB,EACxBqD,QAAkC,EAClC/K,KAAiB,EACjBC,eAAgC,EAChC+E,IAAU,EACVgG,oBAA6B,EAC7BxJ,yBAAkC,EAClCyJ,aAAsB,EACtBT,eAAoC,EACpC;EAAA,IAAAU,IAAA,EAAAC,KAAA;EACA,IAAIC,aAAa,IAAoB;EACrC,IAAIC,cAA4B;EAChC,MAAMC,WAA0B,GAAG,EAAE;EACrC,MAAMC,aAA4B,GAAG,EAAE;EAEvC,MAAMC,eAAwC,GAAG,EAAE;EACnD,IAAIC,gBAA8C,GAAG,IAAI;EAEzD,MAAMC,WAAW,GAAG1J,WAAC,CAAC2J,YAAY,CAACZ,QAAQ,CAAC,GACxC,MAAMA,QAAQ,GACd,MAAM;IAAA,IAAAa,eAAA;IACJ,CAAAA,eAAA,GAAAP,cAAc,YAAAO,eAAA,GAAdP,cAAc,GACZrL,KAAK,CAAC,CAAC,CAAC,CAACY,KAAK,CAACiL,gCAAgC,CAACd,QAAQ,CAAC;IAC3D,OAAOM,cAAc;EACvB,CAAC;EAEL,MAAMS,uBAAuB,IAAAZ,IAAA,GAC3BxD,GAAG,YAAAwD,IAAA,GAAIlL,KAAK,CAAC,CAAC,CAAC,CAACY,KAAK,CAACC,qBAAqB,CAAC,OAAO,CAAC;EACtD,CAAAsK,KAAA,GAAAzD,GAAG,YAAAyD,KAAA,GAAHzD,GAAG,GAAK1F,WAAC,CAACC,SAAS,CAACuI,eAAe,CAAC;EAEpC,KAAK,MAAMrK,IAAI,IAAIH,KAAK,EAAE;IACxBG,IAAI,CAAC4L,eAAe,CAAC,CAAC,IAAIjM,EAAE,CAACkM,sBAAsB,CAAC7L,IAAI,CAAC;IAGzD,MAAM0B,QAAQ,GAAG,EAACG,WAAC,CAACiK,aAAa,YAAfjK,WAAC,CAACiK,aAAa,CAAG9L,IAAI,CAACG,IAAI,CAAC,KAAIH,IAAI,CAACG,IAAI,CAACQ,MAAM;IAClE,MAAMoL,UAAU,GAAG,CAACrK,QAAQ;IAC5B,MAAMzB,SAAS,GAAGD,IAAI,CAACC,SAAS,CAAC,CAAC;IAClC,MAAM+L,QAAQ,GAAG,CAAC/L,SAAS;IAC3B,MAAMgM,OAAO,GAAGjM,IAAI,CAACa,UAAU,CAAC,CAAC;IACjC,MAAMc,QAAQ,GAAG,CAACsK,OAAO;IACzB,MAAMH,aAAa,GAAG9L,IAAI,CAAC8L,aAAa,oBAAlB9L,IAAI,CAAC8L,aAAa,CAAG,CAAC;IAE5C,IAAIpK,QAAQ,EAAEuJ,aAAa,KAA0B;IAErD,IAAIvJ,QAAQ,IAAKC,QAAQ,IAAI1B,SAAU,IAAI6L,aAAa,EAAE;MACxD,IAAII,4BAAa,CAAC;QAChBC,UAAU,EAAEnM,IAAI;QAChB8K,aAAa;QACbjG,IAAI,EAAEA,IAAI;QACVuH,aAAa,EAAE/B,eAAe;QAC9BkB,WAAW;QACXc,YAAYA,CAAA,EAAG;UACbpB,aAAa,KAAgC;UAC7C,IAAIvJ,QAAQ,IAAIoK,aAAa,EAAE;YAC7B,OAAOH,uBAAuB;UAChC,CAAC,MAAM;YACL,OAAO9J,WAAC,CAAC0E,gBAAgB,CACvBoF,uBAAuB,EACvB9J,WAAC,CAACM,UAAU,CAAC,WAAW,CAC1B,CAAC;UACH;QACF;MACF,CAAC,CAAC,CAACmK,OAAO,CAAC,CAAC;MAEZ,MAAMC,QAAQ,GAAGnC,kBAAkB,CACjCpK,IAAI,EACJ2L,uBAAuB,EACvBtB,eACF,CAAC;MACD,IAAIkC,QAAQ,EAAE;QACZtB,aAAa,KAAgC;MAC/C;IACF;IAOA,QAAQ,IAAI;MACV,KAAKa,aAAa;QAAE;UAClB,MAAMU,SAAS,GAAIxM,IAAI,CAACG,IAAI,CAAmBmD,IAAI;UAGnD,IAAIkJ,SAAS,CAAC9I,MAAM,KAAK,CAAC,IAAI7B,WAAC,CAAC4K,qBAAqB,CAACD,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;YACnErB,WAAW,CAAC7I,IAAI,CAACuF,mBAAmB,CAAC2E,SAAS,CAAC,CAAC,CAAC,EAAExM,IAAI,CAAC,CAAC;UAC3D,CAAC,MAAM;YACLmL,WAAW,CAAC7I,IAAI,CACdT,WAAC,CAAC6K,gBAAgB,CAChBnK,cAAQ,CAACC,SAAS,CAACC,GAAI,YAAW+J,SAAU,OAAM,EAClDxM,IAAI,CAACG,IACP,CACF,CAAC;UACH;UACA;QACF;MACA,KAAKuB,QAAQ,IAAIzB,SAAS,IAAIgM,OAAO,IAAI5K,yBAAyB;QAChE8J,WAAW,CAAC7I,IAAI,CAEdqF,0BAA0B,CAAC9F,WAAC,CAACC,SAAS,CAACyF,GAAG,CAAC,EAAEvH,IAAI,EAAEF,eAAe,CACpE,CAAC;QACD;MACF,KAAK4B,QAAQ,IAAIzB,SAAS,IAAIgM,OAAO,IAAI,CAAC5K,yBAAyB;QACjE8J,WAAW,CAAC7I,IAAI,CAEd0F,+BAA+B,CAAChI,IAAI,EAAEF,eAAe,CACvD,CAAC;QACD;MACF,KAAK4B,QAAQ,IAAIsK,QAAQ,IAAIC,OAAO,IAAIpB,oBAAoB;QAO1D,IAAI,CAACN,cAAc,CAACvK,IAAI,CAACG,IAAI,CAAC,EAAE;UAE9BgL,WAAW,CAAC7I,IAAI,CAACiG,yBAAyB,CAAC1G,WAAC,CAACC,SAAS,CAACyF,GAAG,CAAC,EAAEvH,IAAI,CAAC,CAAC;UACnE;QACF;MAEF,KAAK0B,QAAQ,IAAIsK,QAAQ,IAAIC,OAAO,IAAI,CAACpB,oBAAoB;QAC3DM,WAAW,CAAC7I,IAAI,CAEdsG,wBAAwB,CAAC/G,WAAC,CAACC,SAAS,CAACyF,GAAG,CAAC,EAAEvH,IAAI,EAAE6E,IAAI,CACvD,CAAC;QACD;MACF,KAAKkH,UAAU,IAAI9L,SAAS,IAAIgM,OAAO,IAAI5K,yBAAyB;QAClE+J,aAAa,CAAC9I,IAAI,CAEhBqF,0BAA0B,CAAC9F,WAAC,CAACkG,cAAc,CAAC,CAAC,EAAE/H,IAAI,EAAEF,eAAe,CACtE,CAAC;QACD;MACF,KAAKiM,UAAU,IAAI9L,SAAS,IAAIgM,OAAO,IAAI,CAAC5K,yBAAyB;QACnE+J,aAAa,CAAC9I,IAAI,CAChBwF,iCAAiC,CAC/BjG,WAAC,CAACkG,cAAc,CAAC,CAAC,EAElB/H,IAAI,EACJF,eAAe,EACf+E,IACF,CACF,CAAC;QACD;MACF,KAAKkH,UAAU,IAAI9L,SAAS,IAAI0B,QAAQ,IAAIN,yBAAyB;QACnE+J,aAAa,CAACuB,OAAO,CACnBxE,2BAA2B,CACzBtG,WAAC,CAACkG,cAAc,CAAC,CAAC,EAElB/H,IAAI,EACJF,eACF,CACF,CAAC;QACDuL,eAAe,CAAC/I,IAAI,CAClBwG,6BAA6B,CAE3B9I,IAAI,EACJF,eAAe,EACfuB,yBACF,CACF,CAAC;QACD;MACF,KAAK0K,UAAU,IAAI9L,SAAS,IAAI0B,QAAQ,IAAI,CAACN,yBAAyB;QACpE+J,aAAa,CAACuB,OAAO,CACnBvE,kCAAkC,CAChCvG,WAAC,CAACkG,cAAc,CAAC,CAAC,EAElB/H,IAAI,EACJF,eAAe,EACf+E,IACF,CACF,CAAC;QACDwG,eAAe,CAAC/I,IAAI,CAClBwG,6BAA6B,CAE3B9I,IAAI,EACJF,eAAe,EACfuB,yBACF,CACF,CAAC;QACD;MACF,KAAKK,QAAQ,IAAIzB,SAAS,IAAI0B,QAAQ,IAAI,CAACN,yBAAyB;QAClE8J,WAAW,CAACwB,OAAO,CAEjB3E,+BAA+B,CAAChI,IAAI,EAAEF,eAAe,CACvD,CAAC;QACDuL,eAAe,CAAC/I,IAAI,CAClBwG,6BAA6B,CAE3B9I,IAAI,EACJF,eAAe,EACfuB,yBACF,CACF,CAAC;QACD;MACF,KAAKK,QAAQ,IAAIzB,SAAS,IAAI0B,QAAQ,IAAIN,yBAAyB;QACjE8J,WAAW,CAACwB,OAAO,CACjB9D,iCAAiC,CAC/BhH,WAAC,CAACC,SAAS,CAACyF,GAAG,CAAC,EAEhBvH,IAAI,EACJ6E,IAAI,EACJ/E,eACF,CACF,CAAC;QACDuL,eAAe,CAAC/I,IAAI,CAClBwG,6BAA6B,CAE3B9I,IAAI,EACJF,eAAe,EACfuB,yBACF,CACF,CAAC;QACD;MACF,KAAK0K,UAAU,IAAIC,QAAQ,IAAIC,OAAO,IAAIpB,oBAAoB;QAE5DO,aAAa,CAAC9I,IAAI,CAACiG,yBAAyB,CAAC1G,WAAC,CAACkG,cAAc,CAAC,CAAC,EAAE/H,IAAI,CAAC,CAAC;QACvE;MACF,KAAK+L,UAAU,IAAIC,QAAQ,IAAIC,OAAO,IAAI,CAACpB,oBAAoB;QAC7DO,aAAa,CAAC9I,IAAI,CAEhBsG,wBAAwB,CAAC/G,WAAC,CAACkG,cAAc,CAAC,CAAC,EAAE/H,IAAI,EAAE6E,IAAI,CACzD,CAAC;QACD;MACF;QACE,MAAM,IAAI8B,KAAK,CAAC,cAAc,CAAC;IACnC;EACF;EAEA,IAAIsE,aAAa,IAA+B,IAAIZ,eAAe,IAAI,IAAI,EAAE;IAC3EiB,gBAAgB,GAAGzJ,WAAC,CAAC4G,mBAAmB,CACtC5G,WAAC,CAAC6G,oBAAoB,CACpB,GAAG,EACH7G,WAAC,CAACC,SAAS,CAAC6J,uBAAuB,CAAC,EACpC9J,WAAC,CAACC,SAAS,CAACuI,eAAe,CAC7B,CACF,CAAC;EACH;EAEA,OAAO;IACLc,WAAW,EAAEA,WAAW,CAACyB,MAAM,CAACC,OAAO,CAAC;IACxCzB,aAAa,EAAEA,aAAa,CAACwB,MAAM,CAACC,OAAO,CAAC;IAC5CxB,eAAe,EAAEA,eAAe,CAACuB,MAAM,CAACC,OAAO,CAAC;IAChDvB,gBAAgB;IAChBwB,SAASA,CAACzJ,IAAuB,EAAE;MACjC,KAAK,MAAMrD,IAAI,IAAIH,KAAK,EAAE;QAMxBG,IAAI,CAACG,IAAI,CAAC4M,eAAe,GAAG,IAAI;QAChC/M,IAAI,CAACgN,MAAM,CAAC,CAAC;MACf;MAEA,IAAI9B,cAAc,EAAE;QAClB7H,IAAI,CAAC5C,KAAK,CAAC6B,IAAI,CAAC;UAAEjC,EAAE,EAAEwB,WAAC,CAACC,SAAS,CAACoJ,cAAc;QAAE,CAAC,CAAC;QACpD7H,IAAI,CAAClC,GAAG,CACN,YAAY,EACZU,WAAC,CAAC6G,oBAAoB,CAAC,GAAG,EAAEwC,cAAc,EAAE7H,IAAI,CAAClD,IAAI,CAAC8M,UAAU,CAClE,CAAC;MACH;MAEA,IAAIhC,aAAa,MAAsB,EAAE;QACvC,IAAI5H,IAAI,CAAC6J,iBAAiB,CAAC,CAAC,EAAE;UAC5B7J,IAAI,CAAC5C,KAAK,CAAC6B,IAAI,CAAC;YAAEjC,EAAE,EAAEkH;UAAI,CAAC,CAAC;UAC5BlE,IAAI,CAACkC,WAAW,CACd1D,WAAC,CAAC6G,oBAAoB,CAAC,GAAG,EAAE7G,WAAC,CAACC,SAAS,CAACyF,GAAG,CAAC,EAAElE,IAAI,CAAClD,IAAI,CACzD,CAAC;QACH,CAAC,MAAM;UACL,IAAIkK,eAAe,IAAI,IAAI,EAAE;YAE3BhH,IAAI,CAAClD,IAAI,CAACE,EAAE,GAAGkH,GAAG;UACpB;UACA,IAAI+D,gBAAgB,IAAI,IAAI,EAAE;YAC5BjI,IAAI,CAAC5C,KAAK,CAAC6B,IAAI,CAAC;cAAEjC,EAAE,EAAEsL;YAAwB,CAAC,CAAC;UAClD;QACF;MACF;MAEA,OAAOtI,IAAI;IACb;EACF,CAAC;AACH"}
\ No newline at end of file +{"version":3,"names":["_core","require","_helperReplaceSupers","_helperEnvironmentVisitor","_helperMemberExpressionToFunctions","_helperOptimiseCallExpression","_helperAnnotateAsPure","_helperSkipTransparentExpressionWrappers","ts","buildPrivateNamesMap","props","privateNamesMap","Map","prop","isPrivate","name","node","key","id","update","has","get","scope","generateUidIdentifier","static","method","isProperty","isClassPrivateMethod","kind","getId","setId","methodId","set","buildPrivateNamesNodes","privateFieldsAsProperties","privateFieldsAsSymbols","state","initNodes","value","isStatic","isMethod","isAccessor","t","cloneNode","init","callExpression","addHelper","stringLiteral","identifier","newExpression","annotateAsPure","push","template","statement","ast","privateNameVisitorFactory","visitor","nestedVisitor","traverse","visitors","merge","Object","assign","environmentVisitor","privateNameVisitor","Class","path","body","visiblePrivateNames","redeclared","delete","length","skipKey","PrivateName","noDocumentAll","parentPath","isMemberExpression","property","isOptionalMemberExpression","includes","handle","unshadow","innerBinding","_scope","hasBinding","bindingIdentifierEquals","rename","parent","buildCheckInRHS","rhs","file","inRHSIsObject","availableHelper","privateInVisitor","BinaryExpression","operator","left","right","isPrivateName","classRef","replaceWith","expression","privateNameHandlerSpec","memoise","member","count","object","memo","maybeGenerateMemoised","memoiser","receiver","helperName","sequenceExpression","console","warn","boundGet","memberExpression","destructureSet","helper","_unused","Error","call","args","optimiseCall","optionalCall","privateNameHandlerLoose","BASE","REF","PROP","simpleSet","optionalCallExpression","transformPrivateNamesUsage","ref","size","handler","memberExpressionToFunctions","buildPrivateFieldInitLoose","buildUndefinedNode","inheritPropComments","buildPrivateInstanceFieldInitSpec","thisExpression","buildPrivateStaticFieldInitSpec","privateName","initAdded","buildPrivateMethodInitLoose","buildPrivateInstanceMethodInitSpec","buildPrivateAccessorInitialization","buildPrivateInstanceMethodInitialization","buildPublicFieldInitLoose","computed","expressionStatement","assignmentExpression","isLiteral","buildPublicFieldInitSpec","buildPrivateStaticMethodInitLoose","buildPrivateMethodDeclaration","getterDeclared","setterDeclared","params","generator","async","isGetter","isSetter","declId","functionDeclaration","thisContextVisitor","UnaryExpression","argument","skipTransparentExprWrapperNodes","isThisExpression","booleanLiteral","ThisExpression","needsClassRef","MetaProperty","meta","innerReferencesVisitor","ReferencedIdentifier","replaceThisContext","innerBindingRef","_state$classRef","isNameOrLength","type","inheritLeadingComments","inheritInnerComments","buildFieldsInitNodes","superRef","setPublicClassFields","constantSuper","_ref","_ref2","classRefFlags","injectSuperRef","staticNodes","instanceNodes","lastInstanceNodeReturnsThis","pureStaticNodes","classBindingNode","getSuperRef","isIdentifier","_injectSuperRef","generateUidIdentifierBasedOnNode","classRefForInnerBinding","isClassProperty","assertFieldTransformed","isStaticBlock","isInstance","isPublic","isField","ReplaceSupers","methodPath","refToPreserve","getObjectRef","replace","replaced","blockBody","isExpressionStatement","inheritsComments","unshift","filter","Boolean","wrapClass","leadingComments","remove","superClass","isClassExpression"],"sources":["../src/fields.ts"],"sourcesContent":["import { template, traverse, types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport memberExpressionToFunctions from \"@babel/helper-member-expression-to-functions\";\nimport type {\n Handler,\n HandlerState,\n} from \"@babel/helper-member-expression-to-functions\";\nimport optimiseCall from \"@babel/helper-optimise-call-expression\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport { skipTransparentExprWrapperNodes } from \"@babel/helper-skip-transparent-expression-wrappers\";\n\nimport * as ts from \"./typescript.ts\";\n\ninterface PrivateNameMetadata {\n id: t.Identifier;\n static: boolean;\n method: boolean;\n getId?: t.Identifier;\n setId?: t.Identifier;\n methodId?: t.Identifier;\n initAdded?: boolean;\n getterDeclared?: boolean;\n setterDeclared?: boolean;\n}\n\ntype PrivateNamesMap = Map<string, PrivateNameMetadata>;\n\nexport function buildPrivateNamesMap(props: PropPath[]) {\n const privateNamesMap: PrivateNamesMap = new Map();\n for (const prop of props) {\n if (prop.isPrivate()) {\n const { name } = prop.node.key.id;\n const update: PrivateNameMetadata = privateNamesMap.has(name)\n ? privateNamesMap.get(name)\n : {\n id: prop.scope.generateUidIdentifier(name),\n static: prop.node.static,\n method: !prop.isProperty(),\n };\n if (prop.isClassPrivateMethod()) {\n if (prop.node.kind === \"get\") {\n update.getId = prop.scope.generateUidIdentifier(`get_${name}`);\n } else if (prop.node.kind === \"set\") {\n update.setId = prop.scope.generateUidIdentifier(`set_${name}`);\n } else if (prop.node.kind === \"method\") {\n update.methodId = prop.scope.generateUidIdentifier(name);\n }\n }\n privateNamesMap.set(name, update);\n }\n }\n return privateNamesMap;\n}\n\nexport function buildPrivateNamesNodes(\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsProperties: boolean,\n privateFieldsAsSymbols: boolean,\n state: File,\n) {\n const initNodes: t.Statement[] = [];\n\n for (const [name, value] of privateNamesMap) {\n // - When the privateFieldsAsProperties assumption is enabled,\n // both static and instance fields are transpiled using a\n // secret non-enumerable property. Hence, we also need to generate that\n // key (using the classPrivateFieldLooseKey helper).\n // - When the privateFieldsAsSymbols assumption is enabled,\n // both static and instance fields are transpiled using a\n // unique Symbol to define a non-enumerable property.\n // - In spec mode, only instance fields need a \"private name\" initializer\n // because static fields are directly assigned to a variable in the\n // buildPrivateStaticFieldInitSpec function.\n const { static: isStatic, method: isMethod, getId, setId } = value;\n const isAccessor = getId || setId;\n const id = t.cloneNode(value.id);\n\n let init: t.Expression;\n\n if (privateFieldsAsProperties) {\n init = t.callExpression(state.addHelper(\"classPrivateFieldLooseKey\"), [\n t.stringLiteral(name),\n ]);\n } else if (privateFieldsAsSymbols) {\n init = t.callExpression(t.identifier(\"Symbol\"), [t.stringLiteral(name)]);\n } else if (!isStatic) {\n init = t.newExpression(\n t.identifier(!isMethod || isAccessor ? \"WeakMap\" : \"WeakSet\"),\n [],\n );\n }\n\n if (init) {\n annotateAsPure(init);\n initNodes.push(template.statement.ast`var ${id} = ${init}`);\n }\n }\n\n return initNodes;\n}\n\ninterface PrivateNameVisitorState {\n privateNamesMap: PrivateNamesMap;\n privateFieldsAsProperties: boolean;\n redeclared?: string[];\n}\n\n// Traverses the class scope, handling private name references. If an inner\n// class redeclares the same private name, it will hand off traversal to the\n// restricted visitor (which doesn't traverse the inner class's inner scope).\nfunction privateNameVisitorFactory<S>(\n visitor: Visitor<PrivateNameVisitorState & S>,\n) {\n // Traverses the outer portion of a class, without touching the class's inner\n // scope, for private names.\n const nestedVisitor = traverse.visitors.merge([\n {\n ...visitor,\n },\n environmentVisitor,\n ]);\n\n const privateNameVisitor: Visitor<PrivateNameVisitorState & S> = {\n ...visitor,\n\n Class(path) {\n const { privateNamesMap } = this;\n const body = path.get(\"body.body\");\n\n const visiblePrivateNames = new Map(privateNamesMap);\n const redeclared = [];\n for (const prop of body) {\n if (!prop.isPrivate()) continue;\n const { name } = prop.node.key.id;\n visiblePrivateNames.delete(name);\n redeclared.push(name);\n }\n\n // If the class doesn't redeclare any private fields, we can continue with\n // our overall traversal.\n if (!redeclared.length) {\n return;\n }\n\n // This class redeclares some private field. We need to process the outer\n // environment with access to all the outer privates, then we can process\n // the inner environment with only the still-visible outer privates.\n path.get(\"body\").traverse(nestedVisitor, {\n ...this,\n redeclared,\n });\n path.traverse(privateNameVisitor, {\n ...this,\n privateNamesMap: visiblePrivateNames,\n });\n\n // We'll eventually hit this class node again with the overall Class\n // Features visitor, which'll process the redeclared privates.\n path.skipKey(\"body\");\n },\n };\n\n return privateNameVisitor;\n}\n\ninterface PrivateNameState {\n privateNamesMap: PrivateNamesMap;\n classRef: t.Identifier;\n file: File;\n noDocumentAll: boolean;\n innerBinding?: t.Identifier;\n}\n\nconst privateNameVisitor = privateNameVisitorFactory<\n HandlerState<PrivateNameState> & PrivateNameState\n>({\n PrivateName(path, { noDocumentAll }) {\n const { privateNamesMap, redeclared } = this;\n const { node, parentPath } = path;\n\n if (\n !parentPath.isMemberExpression({ property: node }) &&\n !parentPath.isOptionalMemberExpression({ property: node })\n ) {\n return;\n }\n const { name } = node.id;\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n this.handle(parentPath, noDocumentAll);\n },\n});\n\n// rename all bindings that shadows innerBinding\nfunction unshadow(\n name: string,\n scope: Scope,\n innerBinding: t.Identifier | undefined,\n) {\n // in some cases, scope.getBinding(name) === undefined\n // so we check hasBinding to avoid keeping looping\n // see: https://github.com/babel/babel/pull/13656#discussion_r686030715\n while (\n scope?.hasBinding(name) &&\n !scope.bindingIdentifierEquals(name, innerBinding)\n ) {\n scope.rename(name);\n scope = scope.parent;\n }\n}\n\nexport function buildCheckInRHS(\n rhs: t.Expression,\n file: File,\n inRHSIsObject?: boolean,\n) {\n if (inRHSIsObject || !file.availableHelper?.(\"checkInRHS\")) return rhs;\n return t.callExpression(file.addHelper(\"checkInRHS\"), [rhs]);\n}\n\nconst privateInVisitor = privateNameVisitorFactory<{\n classRef: t.Identifier;\n file: File;\n innerBinding?: t.Identifier;\n}>({\n BinaryExpression(path, { file }) {\n const { operator, left, right } = path.node;\n if (operator !== \"in\") return;\n if (!t.isPrivateName(left)) return;\n\n const { privateFieldsAsProperties, privateNamesMap, redeclared } = this;\n\n const { name } = left.id;\n\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(this.classRef.name, path.scope, this.innerBinding);\n\n if (privateFieldsAsProperties) {\n const { id } = privateNamesMap.get(name);\n path.replaceWith(template.expression.ast`\n Object.prototype.hasOwnProperty.call(${buildCheckInRHS(\n right,\n file,\n )}, ${t.cloneNode(id)})\n `);\n return;\n }\n\n const { id, static: isStatic } = privateNamesMap.get(name);\n\n if (isStatic) {\n path.replaceWith(\n template.expression.ast`${buildCheckInRHS(\n right,\n file,\n )} === ${t.cloneNode(this.classRef)}`,\n );\n return;\n }\n\n path.replaceWith(\n template.expression.ast`${t.cloneNode(id)}.has(${buildCheckInRHS(\n right,\n file,\n )})`,\n );\n },\n});\n\ninterface Receiver {\n receiver(\n this: HandlerState<PrivateNameState> & PrivateNameState,\n member: NodePath<t.MemberExpression | t.OptionalMemberExpression>,\n ): t.Expression;\n}\n\nconst privateNameHandlerSpec: Handler<PrivateNameState & Receiver> & Receiver =\n {\n memoise(member, count) {\n const { scope } = member;\n const { object } = member.node as { object: t.Expression };\n\n const memo = scope.maybeGenerateMemoised(object);\n if (!memo) {\n return;\n }\n\n this.memoiser.set(object, memo, count);\n },\n\n receiver(member) {\n const { object } = member.node as { object: t.Expression };\n\n if (this.memoiser.has(object)) {\n return t.cloneNode(this.memoiser.get(object));\n }\n\n return t.cloneNode(object);\n },\n\n get(member) {\n const { classRef, privateNamesMap, file, innerBinding } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n methodId,\n getId,\n setId,\n } = privateNamesMap.get(name);\n const isAccessor = getId || setId;\n\n if (isStatic) {\n // NOTE: This package has a peerDependency on @babel/core@^7.0.0, but these\n // helpers have been introduced in @babel/helpers@7.1.0.\n const helperName =\n isMethod && !isAccessor\n ? \"classStaticPrivateMethodGet\"\n : \"classStaticPrivateFieldSpecGet\";\n\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(classRef.name, member.scope, innerBinding);\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]);\n }\n\n if (isMethod) {\n if (isAccessor) {\n if (!getId && setId) {\n if (file.availableHelper(\"writeOnlyError\")) {\n return t.sequenceExpression([\n this.receiver(member),\n t.callExpression(file.addHelper(\"writeOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]),\n ]);\n }\n console.warn(\n `@babel/helpers is outdated, update it to silence this warning.`,\n );\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateMethodGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n t.cloneNode(methodId),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n },\n\n boundGet(member) {\n this.memoise(member, 1);\n\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n [this.receiver(member)],\n );\n },\n\n set(member, value) {\n const { classRef, privateNamesMap, file } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n setId,\n getId,\n } = privateNamesMap.get(name);\n const isAccessor = getId || setId;\n\n if (isStatic) {\n const helperName =\n isMethod && !isAccessor\n ? \"classStaticPrivateMethodSet\"\n : \"classStaticPrivateFieldSpecSet\";\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n value,\n ]);\n }\n if (isMethod) {\n if (setId) {\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n }\n return t.sequenceExpression([\n this.receiver(member),\n value,\n t.callExpression(file.addHelper(\"readOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n },\n\n destructureSet(member) {\n const { classRef, privateNamesMap, file } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const { id, static: isStatic } = privateNamesMap.get(name);\n if (isStatic) {\n try {\n // classStaticPrivateFieldDestructureSet was introduced in 7.13.10\n // eslint-disable-next-line no-var\n var helper = file.addHelper(\"classStaticPrivateFieldDestructureSet\");\n } catch {\n throw new Error(\n \"Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \\n\" +\n \"please update @babel/helpers to the latest version.\",\n );\n }\n return t.memberExpression(\n t.callExpression(helper, [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n }\n\n return t.memberExpression(\n t.callExpression(file.addHelper(\"classPrivateFieldDestructureSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n },\n\n call(member, args: (t.Expression | t.SpreadElement)[]) {\n // The first access (the get) should do the memo assignment.\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, false);\n },\n\n optionalCall(member, args: (t.Expression | t.SpreadElement)[]) {\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n };\n\nconst privateNameHandlerLoose: Handler<PrivateNameState> = {\n get(member) {\n const { privateNamesMap, file } = this;\n const { object } = member.node;\n const { name } = (member.node.property as t.PrivateName).id;\n\n return template.expression`BASE(REF, PROP)[PROP]`({\n BASE: file.addHelper(\"classPrivateFieldLooseBase\"),\n REF: t.cloneNode(object),\n PROP: t.cloneNode(privateNamesMap.get(name).id),\n });\n },\n\n set() {\n // noop\n throw new Error(\"private name handler with loose = true don't need set()\");\n },\n\n boundGet(member) {\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n [t.cloneNode(member.node.object as t.Expression)],\n );\n },\n\n simpleSet(member) {\n return this.get(member);\n },\n\n destructureSet(member) {\n return this.get(member);\n },\n\n call(member, args) {\n return t.callExpression(this.get(member), args);\n },\n\n optionalCall(member, args) {\n return t.optionalCallExpression(this.get(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n};\n\nexport function transformPrivateNamesUsage(\n ref: t.Identifier,\n path: NodePath<t.Class>,\n privateNamesMap: PrivateNamesMap,\n {\n privateFieldsAsProperties,\n noDocumentAll,\n innerBinding,\n }: {\n privateFieldsAsProperties: boolean;\n noDocumentAll: boolean;\n innerBinding: t.Identifier;\n },\n state: File,\n) {\n if (!privateNamesMap.size) return;\n\n const body = path.get(\"body\");\n const handler = privateFieldsAsProperties\n ? privateNameHandlerLoose\n : privateNameHandlerSpec;\n\n memberExpressionToFunctions<PrivateNameState>(body, privateNameVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n ...handler,\n noDocumentAll,\n innerBinding,\n });\n body.traverse(privateInVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n privateFieldsAsProperties,\n innerBinding,\n });\n}\n\nfunction buildPrivateFieldInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${t.cloneNode(id)}, {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateInstanceFieldInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${t.cloneNode(id)}.set(${ref}, {\n // configurable is always false for private elements\n // enumerable is always false for private elements\n writable: true,\n value: ${value},\n })` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)},\n {\n writable: true,\n value: ${value}\n },\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateStaticFieldInitSpec(\n prop: NodePath<t.ClassPrivateProperty>,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId, initAdded } = privateName;\n const isAccessor = getId || setId;\n\n if (!prop.isProperty() && (initAdded || !isAccessor)) return;\n\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n }\n `,\n prop,\n );\n }\n\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n };\n `,\n prop,\n );\n}\n\nfunction buildPrivateMethodInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { methodId, id, getId, setId, initAdded } = privateName;\n if (initAdded) return;\n\n if (methodId) {\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n const isAccessor = getId || setId;\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n}\n\nfunction buildPrivateInstanceMethodInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { getId, setId, initAdded } = privateName;\n\n if (initAdded) return;\n\n const isAccessor = getId || setId;\n if (isAccessor) {\n return buildPrivateAccessorInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n }\n\n return buildPrivateInstanceMethodInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n}\n\nfunction buildPrivateAccessorInitialization(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId } = privateName;\n\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`\n ${id}.set(${ref}, {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)},\n {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n },\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateInstanceMethodInitialization(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id } = privateName;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateMethodInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${id}.add(${ref})` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateMethodInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)}\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPublicFieldInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassProperty>,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(ref, key, computed || t.isLiteral(key)),\n value,\n ),\n ),\n prop,\n );\n}\n\nfunction buildPublicFieldInitSpec(\n ref: t.Expression,\n prop: NodePath<t.ClassProperty>,\n state: File,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.callExpression(state.addHelper(\"defineProperty\"), [\n ref,\n computed || t.isLiteral(key)\n ? key\n : t.stringLiteral((key as t.Identifier).name),\n value,\n ]),\n ),\n prop,\n );\n}\n\nfunction buildPrivateStaticMethodInitLoose(\n ref: t.Expression,\n prop: NodePath<t.ClassPrivateMethod>,\n state: File,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, methodId, getId, setId, initAdded } = privateName;\n\n if (initAdded) return;\n\n const isAccessor = getId || setId;\n if (isAccessor) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n })\n `,\n prop,\n );\n }\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n `,\n prop,\n );\n}\n\nfunction buildPrivateMethodDeclaration(\n prop: NodePath<t.ClassPrivateMethod>,\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsProperties = false,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const {\n id,\n methodId,\n getId,\n setId,\n getterDeclared,\n setterDeclared,\n static: isStatic,\n } = privateName;\n const { params, body, generator, async } = prop.node;\n const isGetter = getId && !getterDeclared && params.length === 0;\n const isSetter = setId && !setterDeclared && params.length > 0;\n\n let declId = methodId;\n\n if (isGetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n getterDeclared: true,\n });\n declId = getId;\n } else if (isSetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n setterDeclared: true,\n });\n declId = setId;\n } else if (isStatic && !privateFieldsAsProperties) {\n declId = id;\n }\n\n return inheritPropComments(\n t.functionDeclaration(\n t.cloneNode(declId),\n // @ts-expect-error params for ClassMethod has TSParameterProperty\n params,\n body,\n generator,\n async,\n ),\n prop,\n );\n}\n\ntype ReplaceThisState = {\n classRef: t.Identifier;\n needsClassRef: boolean;\n innerBinding: t.Identifier | null;\n};\n\ntype ReplaceInnerBindingReferenceState = ReplaceThisState;\n\nconst thisContextVisitor = traverse.visitors.merge<ReplaceThisState>([\n {\n UnaryExpression(path) {\n // Replace `delete this` with `true`\n const { node } = path;\n if (node.operator === \"delete\") {\n const argument = skipTransparentExprWrapperNodes(node.argument);\n if (t.isThisExpression(argument)) {\n path.replaceWith(t.booleanLiteral(true));\n }\n }\n },\n ThisExpression(path, state) {\n state.needsClassRef = true;\n path.replaceWith(t.cloneNode(state.classRef));\n },\n MetaProperty(path) {\n const { node, scope } = path;\n // if there are `new.target` in static field\n // we should replace it with `undefined`\n if (node.meta.name === \"new\" && node.property.name === \"target\") {\n path.replaceWith(scope.buildUndefinedNode());\n }\n },\n },\n environmentVisitor,\n]);\n\nconst innerReferencesVisitor: Visitor<ReplaceInnerBindingReferenceState> = {\n ReferencedIdentifier(path, state) {\n if (\n path.scope.bindingIdentifierEquals(path.node.name, state.innerBinding)\n ) {\n state.needsClassRef = true;\n path.node.name = state.classRef.name;\n }\n },\n};\n\nfunction replaceThisContext(\n path: PropPath,\n ref: t.Identifier,\n innerBindingRef: t.Identifier | null,\n) {\n const state: ReplaceThisState = {\n classRef: ref,\n needsClassRef: false,\n innerBinding: innerBindingRef,\n };\n if (!path.isMethod()) {\n // replace `this` in property initializers and static blocks\n path.traverse(thisContextVisitor, state);\n }\n\n // todo: use innerBinding.referencePaths to avoid full traversal\n if (\n innerBindingRef != null &&\n state.classRef?.name &&\n state.classRef.name !== innerBindingRef.name\n ) {\n path.traverse(innerReferencesVisitor, state);\n }\n\n return state.needsClassRef;\n}\n\nexport type PropNode =\n | t.ClassProperty\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.StaticBlock;\nexport type PropPath = NodePath<PropNode>;\n\nfunction isNameOrLength({ key, computed }: t.ClassProperty) {\n if (key.type === \"Identifier\") {\n return !computed && (key.name === \"name\" || key.name === \"length\");\n }\n if (key.type === \"StringLiteral\") {\n return key.value === \"name\" || key.value === \"length\";\n }\n return false;\n}\n\n/**\n * Inherit comments from class members. This is a reduced version of\n * t.inheritsComments: the trailing comments are not inherited because\n * for most class members except the last one, their trailing comments are\n * the next sibling's leading comments.\n *\n * @template T transformed class member type\n * @param {T} node transformed class member\n * @param {PropPath} prop class member\n * @returns transformed class member type with comments inherited\n */\nfunction inheritPropComments<T extends t.Node>(node: T, prop: PropPath) {\n t.inheritLeadingComments(node, prop.node);\n t.inheritInnerComments(node, prop.node);\n return node;\n}\n\n/**\n * ClassRefFlag records the requirement of the class binding reference.\n *\n * @enum {number}\n */\nconst enum ClassRefFlag {\n None,\n /**\n * When this flag is enabled, the binding reference can be the class id,\n * if exists, or the uid identifier generated for class expression. The\n * reference is safe to be consumed by [[Define]].\n */\n ForDefine = 1 << 0,\n /**\n * When this flag is enabled, the reference must be a uid, because the outer\n * class binding can be mutated by user codes.\n * E.g.\n * class C { static p = C }; const oldC = C; C = null; oldC.p;\n * we must memoize class `C` before defining the property `p`.\n */\n ForInnerBinding = 1 << 1,\n}\n\nexport function buildFieldsInitNodes(\n ref: t.Identifier | null,\n superRef: t.Expression | undefined,\n props: PropPath[],\n privateNamesMap: PrivateNamesMap,\n file: File,\n setPublicClassFields: boolean,\n privateFieldsAsProperties: boolean,\n constantSuper: boolean,\n innerBindingRef: t.Identifier | null,\n) {\n let classRefFlags = ClassRefFlag.None;\n let injectSuperRef: t.Identifier;\n const staticNodes: t.Statement[] = [];\n const instanceNodes: t.ExpressionStatement[] = [];\n let lastInstanceNodeReturnsThis = false;\n // These nodes are pure and can be moved to the closest statement position\n const pureStaticNodes: t.FunctionDeclaration[] = [];\n let classBindingNode: t.ExpressionStatement | null = null;\n\n const getSuperRef = t.isIdentifier(superRef)\n ? () => superRef\n : () => {\n injectSuperRef ??=\n props[0].scope.generateUidIdentifierBasedOnNode(superRef);\n return injectSuperRef;\n };\n\n const classRefForInnerBinding =\n ref ?? props[0].scope.generateUidIdentifier(\"class\");\n ref ??= t.cloneNode(innerBindingRef);\n\n for (const prop of props) {\n prop.isClassProperty() && ts.assertFieldTransformed(prop);\n\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n const isStatic = !t.isStaticBlock?.(prop.node) && prop.node.static;\n const isInstance = !isStatic;\n const isPrivate = prop.isPrivate();\n const isPublic = !isPrivate;\n const isField = prop.isProperty();\n const isMethod = !isField;\n const isStaticBlock = prop.isStaticBlock?.();\n\n if (isStatic) classRefFlags |= ClassRefFlag.ForDefine;\n\n if (isStatic || (isMethod && isPrivate) || isStaticBlock) {\n new ReplaceSupers({\n methodPath: prop,\n constantSuper,\n file: file,\n refToPreserve: innerBindingRef,\n getSuperRef,\n getObjectRef() {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n if (isStatic || isStaticBlock) {\n return classRefForInnerBinding;\n } else {\n return t.memberExpression(\n classRefForInnerBinding,\n t.identifier(\"prototype\"),\n );\n }\n },\n }).replace();\n\n const replaced = replaceThisContext(\n prop,\n classRefForInnerBinding,\n innerBindingRef,\n );\n if (replaced) {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n }\n }\n\n lastInstanceNodeReturnsThis = false;\n\n // TODO(ts): there are so many `ts-expect-error` inside cases since\n // ts can not infer type from pre-computed values (or a case test)\n // even change `isStaticBlock` to `t.isStaticBlock(prop)` will not make prop\n // a `NodePath<t.StaticBlock>`\n // this maybe a bug for ts\n switch (true) {\n case isStaticBlock: {\n const blockBody = (prop.node as t.StaticBlock).body;\n // We special-case the single expression case to avoid the iife, since\n // it's common.\n if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {\n staticNodes.push(inheritPropComments(blockBody[0], prop));\n } else {\n staticNodes.push(\n t.inheritsComments(\n template.statement.ast`(() => { ${blockBody} })()`,\n prop.node,\n ),\n );\n }\n break;\n }\n case isStatic && isPrivate && isField && privateFieldsAsProperties:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPrivateFieldInitLoose(t.cloneNode(ref), prop, privateNamesMap),\n );\n break;\n case isStatic && isPrivate && isField && !privateFieldsAsProperties:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPrivateStaticFieldInitSpec(prop, privateNamesMap),\n );\n break;\n case isStatic && isPublic && isField && setPublicClassFields:\n // Functions always have non-writable .name and .length properties,\n // so we must always use [[Define]] for them.\n // It might still be possible to a computed static fields whose resulting\n // key is \"name\" or \"length\", but the assumption is telling us that it's\n // not going to happen.\n // @ts-expect-error checked in switch\n if (!isNameOrLength(prop.node)) {\n // @ts-expect-error checked in switch\n staticNodes.push(buildPublicFieldInitLoose(t.cloneNode(ref), prop));\n break;\n }\n // falls through\n case isStatic && isPublic && isField && !setPublicClassFields:\n staticNodes.push(\n // @ts-expect-error checked in switch\n buildPublicFieldInitSpec(t.cloneNode(ref), prop, file),\n );\n break;\n case isInstance && isPrivate && isField && privateFieldsAsProperties:\n instanceNodes.push(\n // @ts-expect-error checked in switch\n buildPrivateFieldInitLoose(t.thisExpression(), prop, privateNamesMap),\n );\n break;\n case isInstance && isPrivate && isField && !privateFieldsAsProperties:\n instanceNodes.push(\n buildPrivateInstanceFieldInitSpec(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n file,\n ),\n );\n break;\n case isInstance && isPrivate && isMethod && privateFieldsAsProperties:\n instanceNodes.unshift(\n buildPrivateMethodInitLoose(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isInstance && isPrivate && isMethod && !privateFieldsAsProperties:\n instanceNodes.unshift(\n buildPrivateInstanceMethodInitSpec(\n t.thisExpression(),\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n file,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isStatic && isPrivate && isMethod && !privateFieldsAsProperties:\n staticNodes.unshift(\n // @ts-expect-error checked in switch\n buildPrivateStaticFieldInitSpec(prop, privateNamesMap),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isStatic && isPrivate && isMethod && privateFieldsAsProperties:\n staticNodes.unshift(\n buildPrivateStaticMethodInitLoose(\n t.cloneNode(ref),\n // @ts-expect-error checked in switch\n prop,\n file,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n // @ts-expect-error checked in switch\n prop,\n privateNamesMap,\n privateFieldsAsProperties,\n ),\n );\n break;\n case isInstance && isPublic && isField && setPublicClassFields:\n // @ts-expect-error checked in switch\n instanceNodes.push(buildPublicFieldInitLoose(t.thisExpression(), prop));\n break;\n case isInstance && isPublic && isField && !setPublicClassFields:\n lastInstanceNodeReturnsThis = true;\n instanceNodes.push(\n // @ts-expect-error checked in switch\n buildPublicFieldInitSpec(t.thisExpression(), prop, file),\n );\n break;\n default:\n throw new Error(\"Unreachable.\");\n }\n }\n\n if (classRefFlags & ClassRefFlag.ForInnerBinding && innerBindingRef != null) {\n classBindingNode = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(classRefForInnerBinding),\n t.cloneNode(innerBindingRef),\n ),\n );\n }\n\n return {\n staticNodes: staticNodes.filter(Boolean),\n instanceNodes: instanceNodes.filter(Boolean),\n lastInstanceNodeReturnsThis,\n pureStaticNodes: pureStaticNodes.filter(Boolean),\n classBindingNode,\n wrapClass(path: NodePath<t.Class>) {\n for (const prop of props) {\n // Delete leading comments so that they don't get attached as\n // trailing comments of the previous sibling.\n // When transforming props, we explicitly attach their leading\n // comments to the transformed node with `inheritPropComments`\n // above.\n prop.node.leadingComments = null;\n prop.remove();\n }\n\n if (injectSuperRef) {\n path.scope.push({ id: t.cloneNode(injectSuperRef) });\n path.set(\n \"superClass\",\n t.assignmentExpression(\"=\", injectSuperRef, path.node.superClass),\n );\n }\n\n if (classRefFlags !== ClassRefFlag.None) {\n if (path.isClassExpression()) {\n path.scope.push({ id: ref });\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(ref), path.node),\n );\n } else {\n if (innerBindingRef == null) {\n // export anonymous class declaration\n path.node.id = ref;\n }\n if (classBindingNode != null) {\n path.scope.push({ id: classRefForInnerBinding });\n }\n }\n }\n\n return path;\n },\n };\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/index.js b/node_modules/@babel/helper-create-class-features-plugin/lib/index.js index 8bb71f8d..69bff6fe 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/index.js +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/index.js @@ -84,12 +84,12 @@ function createClassFeaturePlugin({ (0, _features.enableFeature)(file, feature, loose); { if (typeof file.get(versionKey) === "number") { - file.set(versionKey, "7.22.15"); + file.set(versionKey, "7.23.6"); return; } } - if (!file.get(versionKey) || _semver.lt(file.get(versionKey), "7.22.15")) { - file.set(versionKey, "7.22.15"); + if (!file.get(versionKey) || _semver.lt(file.get(versionKey), "7.23.6")) { + file.set(versionKey, "7.23.6"); } }, visitor: { @@ -97,7 +97,7 @@ function createClassFeaturePlugin({ file }) { var _ref; - if (file.get(versionKey) !== "7.22.15") return; + if (file.get(versionKey) !== "7.23.6") return; if (!(0, _features.shouldTransform)(path, file)) return; const pathIsClassDeclaration = path.isClassDeclaration(); if (pathIsClassDeclaration) (0, _typescript.assertFieldTransformed)(path); @@ -166,7 +166,7 @@ function createClassFeaturePlugin({ noDocumentAll, innerBinding }, file); - let keysNodes, staticNodes, instanceNodes, pureStaticNodes, classBindingNode, wrapClass; + let keysNodes, staticNodes, instanceNodes, lastInstanceNodeReturnsThis, pureStaticNodes, classBindingNode, wrapClass; { if (isDecorated) { staticNodes = pureStaticNodes = keysNodes = []; @@ -180,6 +180,7 @@ function createClassFeaturePlugin({ staticNodes, pureStaticNodes, instanceNodes, + lastInstanceNodeReturnsThis, classBindingNode, wrapClass } = (0, _fields.buildFieldsInitNodes)(ref, path.node.superClass, props, privateNamesMap, file, setPublicClassFields != null ? setPublicClassFields : loose, privateFieldsAsSymbolsOrProperties != null ? privateFieldsAsSymbolsOrProperties : loose, constantSuper != null ? constantSuper : loose, innerBinding)); @@ -194,7 +195,7 @@ function createClassFeaturePlugin({ if (_core.types.isStaticBlock != null && _core.types.isStaticBlock(prop.node) || prop.node.static) continue; prop.traverse(referenceVisitor, state); } - }); + }, lastInstanceNodeReturnsThis); } const wrappedPath = wrapClass(path); wrappedPath.insertBefore([...privateNamesNodes, ...keysNodes]); @@ -212,7 +213,7 @@ function createClassFeaturePlugin({ file }) { { - if (file.get(versionKey) !== "7.22.15") return; + if (file.get(versionKey) !== "7.23.6") return; const decl = path.get("declaration"); if (decl.isClassDeclaration() && (0, _decorators.hasDecorators)(decl.node)) { if (decl.node.id) { diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map index f1f027c9..7f1c8989 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_core","require","_helperFunctionName","_helperSplitExportDeclaration","_semver","_fields","_decorators","_misc","_features","_typescript","versionKey","createClassFeaturePlugin","name","feature","loose","manipulateOptions","api","inherits","_api","assumption","setPublicClassFields","privateFieldsAsSymbols","privateFieldsAsProperties","constantSuper","noDocumentAll","Error","privateFieldsAsSymbolsOrProperties","explicit","undefined","push","length","console","warn","join","pre","file","enableFeature","get","set","semver","lt","visitor","Class","path","_ref","shouldTransform","pathIsClassDeclaration","isClassDeclaration","assertFieldTransformed","isLoose","constructor","isDecorated","hasDecorators","node","props","elements","computedPaths","privateNames","Set","body","isClassProperty","isClassMethod","computed","isPrivate","key","id","getName","setName","isClassPrivateMethod","kind","has","buildCodeFrameError","add","isProperty","isStaticBlock","innerBinding","ref","nameFunction","scope","generateUidIdentifier","classRefForDefine","t","cloneNode","privateNamesMap","buildPrivateNamesMap","privateNamesNodes","buildPrivateNamesNodes","transformPrivateNamesUsage","keysNodes","staticNodes","instanceNodes","pureStaticNodes","classBindingNode","wrapClass","buildDecoratedClass","extractComputedKeys","buildFieldsInitNodes","superClass","injectInitialization","referenceVisitor","state","prop","static","traverse","wrappedPath","insertBefore","insertAfter","find","parent","isStatement","isDeclaration","ExportDefaultDeclaration","decl","splitExportDeclaration","type"],"sources":["../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { PluginAPI, PluginObject } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\n\nimport semver from \"semver\";\n\nimport {\n buildPrivateNamesNodes,\n buildPrivateNamesMap,\n transformPrivateNamesUsage,\n buildFieldsInitNodes,\n buildCheckInRHS,\n} from \"./fields.ts\";\nimport type { PropPath } from \"./fields.ts\";\nimport { buildDecoratedClass, hasDecorators } from \"./decorators.ts\";\nimport { injectInitialization, extractComputedKeys } from \"./misc.ts\";\nimport {\n enableFeature,\n FEATURES,\n isLoose,\n shouldTransform,\n} from \"./features.ts\";\nimport { assertFieldTransformed } from \"./typescript.ts\";\n\nexport { FEATURES, enableFeature, injectInitialization, buildCheckInRHS };\n\nconst versionKey = \"@babel/plugin-class-features/version\";\n\ninterface Options {\n name: string;\n feature: number;\n loose?: boolean;\n inherits?: PluginObject[\"inherits\"];\n manipulateOptions?: PluginObject[\"manipulateOptions\"];\n api?: PluginAPI;\n}\n\nexport function createClassFeaturePlugin({\n name,\n feature,\n loose,\n manipulateOptions,\n api,\n inherits,\n}: Options): PluginObject {\n if (!process.env.BABEL_8_BREAKING) {\n api ??= { assumption: () => void 0 as any } as any;\n }\n const setPublicClassFields = api.assumption(\"setPublicClassFields\");\n const privateFieldsAsSymbols = api.assumption(\"privateFieldsAsSymbols\");\n const privateFieldsAsProperties = api.assumption(\"privateFieldsAsProperties\");\n const constantSuper = api.assumption(\"constantSuper\");\n const noDocumentAll = api.assumption(\"noDocumentAll\");\n\n if (privateFieldsAsProperties && privateFieldsAsSymbols) {\n throw new Error(\n `Cannot enable both the \"privateFieldsAsProperties\" and ` +\n `\"privateFieldsAsSymbols\" assumptions as the same time.`,\n );\n }\n const privateFieldsAsSymbolsOrProperties =\n privateFieldsAsProperties || privateFieldsAsSymbols;\n\n if (loose === true) {\n type AssumptionName = Parameters<PluginAPI[\"assumption\"]>[0];\n const explicit: `\"${AssumptionName}\"`[] = [];\n\n if (setPublicClassFields !== undefined) {\n explicit.push(`\"setPublicClassFields\"`);\n }\n if (privateFieldsAsProperties !== undefined) {\n explicit.push(`\"privateFieldsAsProperties\"`);\n }\n if (privateFieldsAsSymbols !== undefined) {\n explicit.push(`\"privateFieldsAsSymbols\"`);\n }\n if (explicit.length !== 0) {\n console.warn(\n `[${name}]: You are using the \"loose: true\" option and you are` +\n ` explicitly setting a value for the ${explicit.join(\" and \")}` +\n ` assumption${explicit.length > 1 ? \"s\" : \"\"}. The \"loose\" option` +\n ` can cause incompatibilities with the other class features` +\n ` plugins, so it's recommended that you replace it with the` +\n ` following top-level option:\\n` +\n `\\t\"assumptions\": {\\n` +\n `\\t\\t\"setPublicClassFields\": true,\\n` +\n `\\t\\t\"privateFieldsAsSymbols\": true\\n` +\n `\\t}`,\n );\n }\n }\n\n return {\n name,\n manipulateOptions,\n inherits,\n\n pre(file) {\n enableFeature(file, feature, loose);\n\n if (!process.env.BABEL_8_BREAKING) {\n // Until 7.21.4, we used to encode the version as a number.\n // If file.get(versionKey) is a number, it has thus been\n // set by an older version of this plugin.\n if (typeof file.get(versionKey) === \"number\") {\n file.set(versionKey, PACKAGE_JSON.version);\n return;\n }\n }\n if (\n !file.get(versionKey) ||\n semver.lt(file.get(versionKey), PACKAGE_JSON.version)\n ) {\n file.set(versionKey, PACKAGE_JSON.version);\n }\n },\n\n visitor: {\n Class(path, { file }) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n if (!shouldTransform(path, file)) return;\n\n const pathIsClassDeclaration = path.isClassDeclaration();\n\n if (pathIsClassDeclaration) assertFieldTransformed(path);\n\n const loose = isLoose(file, feature);\n\n let constructor: NodePath<t.ClassMethod>;\n const isDecorated = hasDecorators(path.node);\n const props: PropPath[] = [];\n const elements = [];\n const computedPaths: NodePath<t.ClassProperty | t.ClassMethod>[] = [];\n const privateNames = new Set<string>();\n const body = path.get(\"body\");\n\n for (const path of body.get(\"body\")) {\n if (\n // check path.node.computed is enough, but ts will complain\n (path.isClassProperty() || path.isClassMethod()) &&\n path.node.computed\n ) {\n computedPaths.push(path);\n }\n\n if (path.isPrivate()) {\n const { name } = path.node.key.id;\n const getName = `get ${name}`;\n const setName = `set ${name}`;\n\n if (path.isClassPrivateMethod()) {\n if (path.node.kind === \"get\") {\n if (\n privateNames.has(getName) ||\n (privateNames.has(name) && !privateNames.has(setName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(getName).add(name);\n } else if (path.node.kind === \"set\") {\n if (\n privateNames.has(setName) ||\n (privateNames.has(name) && !privateNames.has(getName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(setName).add(name);\n }\n } else {\n if (\n (privateNames.has(name) &&\n !privateNames.has(getName) &&\n !privateNames.has(setName)) ||\n (privateNames.has(name) &&\n (privateNames.has(getName) || privateNames.has(setName)))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n\n privateNames.add(name);\n }\n }\n\n if (path.isClassMethod({ kind: \"constructor\" })) {\n constructor = path;\n } else {\n elements.push(path);\n if (\n path.isProperty() ||\n path.isPrivate() ||\n path.isStaticBlock?.()\n ) {\n props.push(path as PropPath);\n }\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (!props.length) return;\n } else {\n if (!props.length && !isDecorated) return;\n }\n\n const innerBinding = path.node.id;\n let ref: t.Identifier | null;\n if (!innerBinding || !pathIsClassDeclaration) {\n nameFunction(path);\n ref = path.scope.generateUidIdentifier(\"class\");\n }\n const classRefForDefine = ref ?? t.cloneNode(innerBinding);\n\n // NODE: These three functions don't support decorators yet,\n // but verifyUsedFeatures throws if there are both\n // decorators and private fields.\n const privateNamesMap = buildPrivateNamesMap(props);\n const privateNamesNodes = buildPrivateNamesNodes(\n privateNamesMap,\n privateFieldsAsProperties ?? loose,\n privateFieldsAsSymbols ?? false,\n file,\n );\n\n transformPrivateNamesUsage(\n classRefForDefine,\n path,\n privateNamesMap,\n {\n privateFieldsAsProperties:\n privateFieldsAsSymbolsOrProperties ?? loose,\n noDocumentAll,\n innerBinding,\n },\n file,\n );\n\n let keysNodes: t.Statement[],\n staticNodes: t.Statement[],\n instanceNodes: t.Statement[],\n pureStaticNodes: t.FunctionDeclaration[],\n classBindingNode: t.Statement | null,\n wrapClass: (path: NodePath<t.Class>) => NodePath;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) {\n staticNodes = pureStaticNodes = keysNodes = [];\n ({ instanceNodes, wrapClass } = buildDecoratedClass(\n classRefForDefine,\n path,\n elements,\n file,\n ));\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n\n if (instanceNodes.length > 0) {\n injectInitialization(\n path,\n constructor,\n instanceNodes,\n (referenceVisitor, state) => {\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) return;\n }\n for (const prop of props) {\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n if (t.isStaticBlock?.(prop.node) || prop.node.static) continue;\n prop.traverse(referenceVisitor, state);\n }\n },\n );\n }\n\n // rename to make ts happy\n const wrappedPath = wrapClass(path);\n wrappedPath.insertBefore([...privateNamesNodes, ...keysNodes]);\n if (staticNodes.length > 0) {\n wrappedPath.insertAfter(staticNodes);\n }\n if (pureStaticNodes.length > 0) {\n wrappedPath\n .find(parent => parent.isStatement() || parent.isDeclaration())\n .insertAfter(pureStaticNodes);\n }\n if (classBindingNode != null && pathIsClassDeclaration) {\n wrappedPath.insertAfter(classBindingNode);\n }\n },\n\n ExportDefaultDeclaration(path, { file }) {\n if (!process.env.BABEL_8_BREAKING) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n const decl = path.get(\"declaration\");\n\n if (decl.isClassDeclaration() && hasDecorators(decl.node)) {\n if (decl.node.id) {\n // export default class Foo {}\n // -->\n // class Foo {} export { Foo as default }\n splitExportDeclaration(path);\n } else {\n // @ts-expect-error Anonymous class declarations can be\n // transformed as if they were expressions\n decl.node.type = \"ClassExpression\";\n }\n }\n }\n },\n },\n };\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_core","require","_helperFunctionName","_helperSplitExportDeclaration","_semver","_fields","_decorators","_misc","_features","_typescript","versionKey","createClassFeaturePlugin","name","feature","loose","manipulateOptions","api","inherits","_api","assumption","setPublicClassFields","privateFieldsAsSymbols","privateFieldsAsProperties","constantSuper","noDocumentAll","Error","privateFieldsAsSymbolsOrProperties","explicit","undefined","push","length","console","warn","join","pre","file","enableFeature","get","set","semver","lt","visitor","Class","path","_ref","shouldTransform","pathIsClassDeclaration","isClassDeclaration","assertFieldTransformed","isLoose","constructor","isDecorated","hasDecorators","node","props","elements","computedPaths","privateNames","Set","body","isClassProperty","isClassMethod","computed","isPrivate","key","id","getName","setName","isClassPrivateMethod","kind","has","buildCodeFrameError","add","isProperty","isStaticBlock","innerBinding","ref","nameFunction","scope","generateUidIdentifier","classRefForDefine","t","cloneNode","privateNamesMap","buildPrivateNamesMap","privateNamesNodes","buildPrivateNamesNodes","transformPrivateNamesUsage","keysNodes","staticNodes","instanceNodes","lastInstanceNodeReturnsThis","pureStaticNodes","classBindingNode","wrapClass","buildDecoratedClass","extractComputedKeys","buildFieldsInitNodes","superClass","injectInitialization","referenceVisitor","state","prop","static","traverse","wrappedPath","insertBefore","insertAfter","find","parent","isStatement","isDeclaration","ExportDefaultDeclaration","decl","splitExportDeclaration","type"],"sources":["../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { PluginAPI, PluginObject } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\n\nimport semver from \"semver\";\n\nimport {\n buildPrivateNamesNodes,\n buildPrivateNamesMap,\n transformPrivateNamesUsage,\n buildFieldsInitNodes,\n buildCheckInRHS,\n} from \"./fields.ts\";\nimport type { PropPath } from \"./fields.ts\";\nimport { buildDecoratedClass, hasDecorators } from \"./decorators.ts\";\nimport { injectInitialization, extractComputedKeys } from \"./misc.ts\";\nimport {\n enableFeature,\n FEATURES,\n isLoose,\n shouldTransform,\n} from \"./features.ts\";\nimport { assertFieldTransformed } from \"./typescript.ts\";\n\nexport { FEATURES, enableFeature, injectInitialization, buildCheckInRHS };\n\nconst versionKey = \"@babel/plugin-class-features/version\";\n\ninterface Options {\n name: string;\n feature: number;\n loose?: boolean;\n inherits?: PluginObject[\"inherits\"];\n manipulateOptions?: PluginObject[\"manipulateOptions\"];\n api?: PluginAPI;\n}\n\nexport function createClassFeaturePlugin({\n name,\n feature,\n loose,\n manipulateOptions,\n api,\n inherits,\n}: Options): PluginObject {\n if (!process.env.BABEL_8_BREAKING) {\n api ??= { assumption: () => void 0 as any } as any;\n }\n const setPublicClassFields = api.assumption(\"setPublicClassFields\");\n const privateFieldsAsSymbols = api.assumption(\"privateFieldsAsSymbols\");\n const privateFieldsAsProperties = api.assumption(\"privateFieldsAsProperties\");\n const constantSuper = api.assumption(\"constantSuper\");\n const noDocumentAll = api.assumption(\"noDocumentAll\");\n\n if (privateFieldsAsProperties && privateFieldsAsSymbols) {\n throw new Error(\n `Cannot enable both the \"privateFieldsAsProperties\" and ` +\n `\"privateFieldsAsSymbols\" assumptions as the same time.`,\n );\n }\n const privateFieldsAsSymbolsOrProperties =\n privateFieldsAsProperties || privateFieldsAsSymbols;\n\n if (loose === true) {\n type AssumptionName = Parameters<PluginAPI[\"assumption\"]>[0];\n const explicit: `\"${AssumptionName}\"`[] = [];\n\n if (setPublicClassFields !== undefined) {\n explicit.push(`\"setPublicClassFields\"`);\n }\n if (privateFieldsAsProperties !== undefined) {\n explicit.push(`\"privateFieldsAsProperties\"`);\n }\n if (privateFieldsAsSymbols !== undefined) {\n explicit.push(`\"privateFieldsAsSymbols\"`);\n }\n if (explicit.length !== 0) {\n console.warn(\n `[${name}]: You are using the \"loose: true\" option and you are` +\n ` explicitly setting a value for the ${explicit.join(\" and \")}` +\n ` assumption${explicit.length > 1 ? \"s\" : \"\"}. The \"loose\" option` +\n ` can cause incompatibilities with the other class features` +\n ` plugins, so it's recommended that you replace it with the` +\n ` following top-level option:\\n` +\n `\\t\"assumptions\": {\\n` +\n `\\t\\t\"setPublicClassFields\": true,\\n` +\n `\\t\\t\"privateFieldsAsSymbols\": true\\n` +\n `\\t}`,\n );\n }\n }\n\n return {\n name,\n manipulateOptions,\n inherits,\n\n pre(file) {\n enableFeature(file, feature, loose);\n\n if (!process.env.BABEL_8_BREAKING) {\n // Until 7.21.4, we used to encode the version as a number.\n // If file.get(versionKey) is a number, it has thus been\n // set by an older version of this plugin.\n if (typeof file.get(versionKey) === \"number\") {\n file.set(versionKey, PACKAGE_JSON.version);\n return;\n }\n }\n if (\n !file.get(versionKey) ||\n semver.lt(file.get(versionKey), PACKAGE_JSON.version)\n ) {\n file.set(versionKey, PACKAGE_JSON.version);\n }\n },\n\n visitor: {\n Class(path, { file }) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n if (!shouldTransform(path, file)) return;\n\n const pathIsClassDeclaration = path.isClassDeclaration();\n\n if (pathIsClassDeclaration) assertFieldTransformed(path);\n\n const loose = isLoose(file, feature);\n\n let constructor: NodePath<t.ClassMethod>;\n const isDecorated = hasDecorators(path.node);\n const props: PropPath[] = [];\n const elements = [];\n const computedPaths: NodePath<t.ClassProperty | t.ClassMethod>[] = [];\n const privateNames = new Set<string>();\n const body = path.get(\"body\");\n\n for (const path of body.get(\"body\")) {\n if (\n // check path.node.computed is enough, but ts will complain\n (path.isClassProperty() || path.isClassMethod()) &&\n path.node.computed\n ) {\n computedPaths.push(path);\n }\n\n if (path.isPrivate()) {\n const { name } = path.node.key.id;\n const getName = `get ${name}`;\n const setName = `set ${name}`;\n\n if (path.isClassPrivateMethod()) {\n if (path.node.kind === \"get\") {\n if (\n privateNames.has(getName) ||\n (privateNames.has(name) && !privateNames.has(setName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(getName).add(name);\n } else if (path.node.kind === \"set\") {\n if (\n privateNames.has(setName) ||\n (privateNames.has(name) && !privateNames.has(getName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(setName).add(name);\n }\n } else {\n if (\n (privateNames.has(name) &&\n !privateNames.has(getName) &&\n !privateNames.has(setName)) ||\n (privateNames.has(name) &&\n (privateNames.has(getName) || privateNames.has(setName)))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n\n privateNames.add(name);\n }\n }\n\n if (path.isClassMethod({ kind: \"constructor\" })) {\n constructor = path;\n } else {\n elements.push(path);\n if (\n path.isProperty() ||\n path.isPrivate() ||\n path.isStaticBlock?.()\n ) {\n props.push(path as PropPath);\n }\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (!props.length) return;\n } else {\n if (!props.length && !isDecorated) return;\n }\n\n const innerBinding = path.node.id;\n let ref: t.Identifier | null;\n if (!innerBinding || !pathIsClassDeclaration) {\n nameFunction(path);\n ref = path.scope.generateUidIdentifier(\"class\");\n }\n const classRefForDefine = ref ?? t.cloneNode(innerBinding);\n\n // NODE: These three functions don't support decorators yet,\n // but verifyUsedFeatures throws if there are both\n // decorators and private fields.\n const privateNamesMap = buildPrivateNamesMap(props);\n const privateNamesNodes = buildPrivateNamesNodes(\n privateNamesMap,\n privateFieldsAsProperties ?? loose,\n privateFieldsAsSymbols ?? false,\n file,\n );\n\n transformPrivateNamesUsage(\n classRefForDefine,\n path,\n privateNamesMap,\n {\n privateFieldsAsProperties:\n privateFieldsAsSymbolsOrProperties ?? loose,\n noDocumentAll,\n innerBinding,\n },\n file,\n );\n\n let keysNodes: t.Statement[],\n staticNodes: t.Statement[],\n instanceNodes: t.ExpressionStatement[],\n lastInstanceNodeReturnsThis: boolean,\n pureStaticNodes: t.FunctionDeclaration[],\n classBindingNode: t.Statement | null,\n wrapClass: (path: NodePath<t.Class>) => NodePath;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) {\n staticNodes = pureStaticNodes = keysNodes = [];\n ({ instanceNodes, wrapClass } = buildDecoratedClass(\n classRefForDefine,\n path,\n elements,\n file,\n ));\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n lastInstanceNodeReturnsThis,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n lastInstanceNodeReturnsThis,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n\n if (instanceNodes.length > 0) {\n injectInitialization(\n path,\n constructor,\n instanceNodes,\n (referenceVisitor, state) => {\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) return;\n }\n for (const prop of props) {\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n if (t.isStaticBlock?.(prop.node) || prop.node.static) continue;\n prop.traverse(referenceVisitor, state);\n }\n },\n lastInstanceNodeReturnsThis,\n );\n }\n\n // rename to make ts happy\n const wrappedPath = wrapClass(path);\n wrappedPath.insertBefore([...privateNamesNodes, ...keysNodes]);\n if (staticNodes.length > 0) {\n wrappedPath.insertAfter(staticNodes);\n }\n if (pureStaticNodes.length > 0) {\n wrappedPath\n .find(parent => parent.isStatement() || parent.isDeclaration())\n .insertAfter(pureStaticNodes);\n }\n if (classBindingNode != null && pathIsClassDeclaration) {\n wrappedPath.insertAfter(classBindingNode);\n }\n },\n\n ExportDefaultDeclaration(path, { file }) {\n if (!process.env.BABEL_8_BREAKING) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n const decl = path.get(\"declaration\");\n\n if (decl.isClassDeclaration() && hasDecorators(decl.node)) {\n if (decl.node.id) {\n // export default class Foo {}\n // -->\n // class Foo {} export { Foo as default }\n splitExportDeclaration(path);\n } else {\n // @ts-expect-error Anonymous class declarations can be\n // transformed as if they were expressions\n decl.node.type = \"ClassExpression\";\n }\n }\n }\n },\n },\n };\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/misc.js b/node_modules/@babel/helper-create-class-features-plugin/lib/misc.js index 8a4f662f..27b5a844 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/misc.js +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/misc.js @@ -44,7 +44,7 @@ function handleClassTDZ(path, state) { const classFieldDefinitionEvaluationTDZVisitor = { ReferencedIdentifier: handleClassTDZ }; -function injectInitialization(path, constructor, nodes, renamer) { +function injectInitialization(path, constructor, nodes, renamer, lastReturnsThis) { if (!nodes.length) return; const isDerived = !!path.node.superClass; if (!constructor) { @@ -66,10 +66,16 @@ function injectInitialization(path, constructor, nodes, renamer) { let isFirst = true; for (const bareSuper of bareSupers) { if (isFirst) { - bareSuper.insertAfter(nodes); isFirst = false; } else { - bareSuper.insertAfter(nodes.map(n => _core.types.cloneNode(n))); + nodes = nodes.map(n => _core.types.cloneNode(n)); + } + if (!bareSuper.parentPath.isExpressionStatement()) { + const allNodes = [bareSuper.node, ...nodes.map(n => _core.types.toExpression(n))]; + if (!lastReturnsThis) allNodes.push(_core.types.thisExpression()); + bareSuper.replaceWith(_core.types.sequenceExpression(allNodes)); + } else { + bareSuper.insertAfter(nodes); } } } else { @@ -91,13 +97,25 @@ function extractComputedKeys(path, computedPaths, file) { } const computedNode = computedPath.node; if (!computedKey.isConstantExpression()) { - const ident = path.scope.generateUidIdentifierBasedOnNode(computedNode.key); - path.scope.push({ - id: ident, - kind: "let" - }); - declarations.push(_core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.cloneNode(ident), computedNode.key))); - computedNode.key = _core.types.cloneNode(ident); + const scope = path.scope; + const isUidReference = _core.types.isIdentifier(computedKey.node) && scope.hasUid(computedKey.node.name); + const isMemoiseAssignment = computedKey.isAssignmentExpression({ + operator: "=" + }) && _core.types.isIdentifier(computedKey.node.left) && scope.hasUid(computedKey.node.left.name); + if (isUidReference) { + continue; + } else if (isMemoiseAssignment) { + declarations.push(_core.types.expressionStatement(_core.types.cloneNode(computedNode.key))); + computedNode.key = _core.types.cloneNode(computedNode.key.left); + } else { + const ident = path.scope.generateUidIdentifierBasedOnNode(computedNode.key); + scope.push({ + id: ident, + kind: "let" + }); + declarations.push(_core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.cloneNode(ident), computedNode.key))); + computedNode.key = _core.types.cloneNode(ident); + } } } return declarations; diff --git a/node_modules/@babel/helper-create-class-features-plugin/lib/misc.js.map b/node_modules/@babel/helper-create-class-features-plugin/lib/misc.js.map index 86ee193b..6f89dbdd 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/lib/misc.js.map +++ b/node_modules/@babel/helper-create-class-features-plugin/lib/misc.js.map @@ -1 +1 @@ -{"version":3,"names":["_core","require","_helperEnvironmentVisitor","findBareSupers","traverse","visitors","merge","Super","path","node","parentPath","isCallExpression","callee","push","environmentVisitor","referenceVisitor","TSTypeAnnotation|TypeAnnotation","skip","ReferencedIdentifier","scope","hasOwnBinding","name","rename","handleClassTDZ","state","classBinding","getBinding","classNameTDZError","file","addHelper","throwNode","t","callExpression","stringLiteral","replaceWith","sequenceExpression","classFieldDefinitionEvaluationTDZVisitor","injectInitialization","constructor","nodes","renamer","length","isDerived","superClass","newConstructor","classMethod","identifier","blockStatement","params","restElement","body","template","statement","ast","get","unshiftContainer","bareSupers","isFirst","bareSuper","insertAfter","map","n","cloneNode","extractComputedKeys","computedPaths","declarations","id","computedPath","computedKey","isReferencedIdentifier","computedNode","isConstantExpression","ident","generateUidIdentifierBasedOnNode","key","kind","expressionStatement","assignmentExpression"],"sources":["../src/misc.ts"],"sourcesContent":["import { template, traverse, types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath, Scope, Visitor, Binding } from \"@babel/traverse\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\n\nconst findBareSupers = traverse.visitors.merge<NodePath<t.CallExpression>[]>([\n {\n Super(path) {\n const { node, parentPath } = path;\n if (parentPath.isCallExpression({ callee: node })) {\n this.push(parentPath);\n }\n },\n },\n environmentVisitor,\n]);\n\nconst referenceVisitor: Visitor<{ scope: Scope }> = {\n \"TSTypeAnnotation|TypeAnnotation\"(\n path: NodePath<t.TSTypeAnnotation | t.TypeAnnotation>,\n ) {\n path.skip();\n },\n\n ReferencedIdentifier(path: NodePath<t.Identifier>, { scope }) {\n if (scope.hasOwnBinding(path.node.name)) {\n scope.rename(path.node.name);\n path.skip();\n }\n },\n};\n\ntype HandleClassTDZState = {\n classBinding: Binding;\n file: File;\n};\n\nfunction handleClassTDZ(\n path: NodePath<t.Identifier>,\n state: HandleClassTDZState,\n) {\n if (\n state.classBinding &&\n state.classBinding === path.scope.getBinding(path.node.name)\n ) {\n const classNameTDZError = state.file.addHelper(\"classNameTDZError\");\n const throwNode = t.callExpression(classNameTDZError, [\n t.stringLiteral(path.node.name),\n ]);\n\n path.replaceWith(t.sequenceExpression([throwNode, path.node]));\n path.skip();\n }\n}\n\nconst classFieldDefinitionEvaluationTDZVisitor: Visitor<HandleClassTDZState> = {\n ReferencedIdentifier: handleClassTDZ,\n};\n\ninterface RenamerState {\n scope: Scope;\n}\n\nexport function injectInitialization(\n path: NodePath<t.Class>,\n constructor: NodePath<t.ClassMethod> | undefined,\n nodes: t.Statement[],\n renamer?: (visitor: Visitor<RenamerState>, state: RenamerState) => void,\n) {\n if (!nodes.length) return;\n\n const isDerived = !!path.node.superClass;\n\n if (!constructor) {\n const newConstructor = t.classMethod(\n \"constructor\",\n t.identifier(\"constructor\"),\n [],\n t.blockStatement([]),\n );\n\n if (isDerived) {\n newConstructor.params = [t.restElement(t.identifier(\"args\"))];\n newConstructor.body.body.push(template.statement.ast`super(...args)`);\n }\n\n [constructor] = path\n .get(\"body\")\n .unshiftContainer(\"body\", newConstructor) as NodePath<t.ClassMethod>[];\n }\n\n if (renamer) {\n renamer(referenceVisitor, { scope: constructor.scope });\n }\n\n if (isDerived) {\n const bareSupers: NodePath<t.CallExpression>[] = [];\n constructor.traverse(findBareSupers, bareSupers);\n let isFirst = true;\n for (const bareSuper of bareSupers) {\n if (isFirst) {\n bareSuper.insertAfter(nodes);\n isFirst = false;\n } else {\n bareSuper.insertAfter(nodes.map(n => t.cloneNode(n)));\n }\n }\n } else {\n constructor.get(\"body\").unshiftContainer(\"body\", nodes);\n }\n}\n\nexport function extractComputedKeys(\n path: NodePath<t.Class>,\n computedPaths: NodePath<t.ClassProperty | t.ClassMethod>[],\n file: File,\n) {\n const declarations: t.ExpressionStatement[] = [];\n const state = {\n classBinding: path.node.id && path.scope.getBinding(path.node.id.name),\n file,\n };\n for (const computedPath of computedPaths) {\n const computedKey = computedPath.get(\"key\");\n if (computedKey.isReferencedIdentifier()) {\n handleClassTDZ(computedKey, state);\n } else {\n computedKey.traverse(classFieldDefinitionEvaluationTDZVisitor, state);\n }\n\n const computedNode = computedPath.node;\n // Make sure computed property names are only evaluated once (upon class definition)\n // and in the right order in combination with static properties\n if (!computedKey.isConstantExpression()) {\n const ident = path.scope.generateUidIdentifierBasedOnNode(\n computedNode.key,\n );\n // Declaring in the same block scope\n // Ref: https://github.com/babel/babel/pull/10029/files#diff-fbbdd83e7a9c998721c1484529c2ce92\n path.scope.push({\n id: ident,\n kind: \"let\",\n });\n declarations.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", t.cloneNode(ident), computedNode.key),\n ),\n );\n computedNode.key = t.cloneNode(ident);\n }\n }\n\n return declarations;\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_core","require","_helperEnvironmentVisitor","findBareSupers","traverse","visitors","merge","Super","path","node","parentPath","isCallExpression","callee","push","environmentVisitor","referenceVisitor","TSTypeAnnotation|TypeAnnotation","skip","ReferencedIdentifier","scope","hasOwnBinding","name","rename","handleClassTDZ","state","classBinding","getBinding","classNameTDZError","file","addHelper","throwNode","t","callExpression","stringLiteral","replaceWith","sequenceExpression","classFieldDefinitionEvaluationTDZVisitor","injectInitialization","constructor","nodes","renamer","lastReturnsThis","length","isDerived","superClass","newConstructor","classMethod","identifier","blockStatement","params","restElement","body","template","statement","ast","get","unshiftContainer","bareSupers","isFirst","bareSuper","map","n","cloneNode","isExpressionStatement","allNodes","toExpression","thisExpression","insertAfter","extractComputedKeys","computedPaths","declarations","id","computedPath","computedKey","isReferencedIdentifier","computedNode","isConstantExpression","isUidReference","isIdentifier","hasUid","isMemoiseAssignment","isAssignmentExpression","operator","left","expressionStatement","key","ident","generateUidIdentifierBasedOnNode","kind","assignmentExpression"],"sources":["../src/misc.ts"],"sourcesContent":["import { template, traverse, types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath, Scope, Visitor, Binding } from \"@babel/traverse\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\n\nconst findBareSupers = traverse.visitors.merge<NodePath<t.CallExpression>[]>([\n {\n Super(path) {\n const { node, parentPath } = path;\n if (parentPath.isCallExpression({ callee: node })) {\n this.push(parentPath);\n }\n },\n },\n environmentVisitor,\n]);\n\nconst referenceVisitor: Visitor<{ scope: Scope }> = {\n \"TSTypeAnnotation|TypeAnnotation\"(\n path: NodePath<t.TSTypeAnnotation | t.TypeAnnotation>,\n ) {\n path.skip();\n },\n\n ReferencedIdentifier(path: NodePath<t.Identifier>, { scope }) {\n if (scope.hasOwnBinding(path.node.name)) {\n scope.rename(path.node.name);\n path.skip();\n }\n },\n};\n\ntype HandleClassTDZState = {\n classBinding: Binding;\n file: File;\n};\n\nfunction handleClassTDZ(\n path: NodePath<t.Identifier>,\n state: HandleClassTDZState,\n) {\n if (\n state.classBinding &&\n state.classBinding === path.scope.getBinding(path.node.name)\n ) {\n const classNameTDZError = state.file.addHelper(\"classNameTDZError\");\n const throwNode = t.callExpression(classNameTDZError, [\n t.stringLiteral(path.node.name),\n ]);\n\n path.replaceWith(t.sequenceExpression([throwNode, path.node]));\n path.skip();\n }\n}\n\nconst classFieldDefinitionEvaluationTDZVisitor: Visitor<HandleClassTDZState> = {\n ReferencedIdentifier: handleClassTDZ,\n};\n\ninterface RenamerState {\n scope: Scope;\n}\n\nexport function injectInitialization(\n path: NodePath<t.Class>,\n constructor: NodePath<t.ClassMethod> | undefined,\n nodes: t.ExpressionStatement[],\n renamer?: (visitor: Visitor<RenamerState>, state: RenamerState) => void,\n lastReturnsThis?: boolean,\n) {\n if (!nodes.length) return;\n\n const isDerived = !!path.node.superClass;\n\n if (!constructor) {\n const newConstructor = t.classMethod(\n \"constructor\",\n t.identifier(\"constructor\"),\n [],\n t.blockStatement([]),\n );\n\n if (isDerived) {\n newConstructor.params = [t.restElement(t.identifier(\"args\"))];\n newConstructor.body.body.push(template.statement.ast`super(...args)`);\n }\n\n [constructor] = path\n .get(\"body\")\n .unshiftContainer(\"body\", newConstructor) as NodePath<t.ClassMethod>[];\n }\n\n if (renamer) {\n renamer(referenceVisitor, { scope: constructor.scope });\n }\n\n if (isDerived) {\n const bareSupers: NodePath<t.CallExpression>[] = [];\n constructor.traverse(findBareSupers, bareSupers);\n let isFirst = true;\n for (const bareSuper of bareSupers) {\n if (isFirst) {\n isFirst = false;\n } else {\n nodes = nodes.map(n => t.cloneNode(n));\n }\n if (!bareSuper.parentPath.isExpressionStatement()) {\n const allNodes: t.Expression[] = [\n bareSuper.node,\n ...nodes.map(n => t.toExpression(n)),\n ];\n if (!lastReturnsThis) allNodes.push(t.thisExpression());\n bareSuper.replaceWith(t.sequenceExpression(allNodes));\n } else {\n bareSuper.insertAfter(nodes);\n }\n }\n } else {\n constructor.get(\"body\").unshiftContainer(\"body\", nodes);\n }\n}\n\nexport function extractComputedKeys(\n path: NodePath<t.Class>,\n computedPaths: NodePath<t.ClassProperty | t.ClassMethod>[],\n file: File,\n) {\n const declarations: t.ExpressionStatement[] = [];\n const state = {\n classBinding: path.node.id && path.scope.getBinding(path.node.id.name),\n file,\n };\n for (const computedPath of computedPaths) {\n const computedKey = computedPath.get(\"key\");\n if (computedKey.isReferencedIdentifier()) {\n handleClassTDZ(computedKey, state);\n } else {\n computedKey.traverse(classFieldDefinitionEvaluationTDZVisitor, state);\n }\n\n const computedNode = computedPath.node;\n // Make sure computed property names are only evaluated once (upon class definition)\n // and in the right order in combination with static properties\n if (!computedKey.isConstantExpression()) {\n const scope = path.scope;\n const isUidReference =\n t.isIdentifier(computedKey.node) && scope.hasUid(computedKey.node.name);\n const isMemoiseAssignment =\n computedKey.isAssignmentExpression({ operator: \"=\" }) &&\n t.isIdentifier(computedKey.node.left) &&\n scope.hasUid(computedKey.node.left.name);\n if (isUidReference) {\n continue;\n } else if (isMemoiseAssignment) {\n declarations.push(t.expressionStatement(t.cloneNode(computedNode.key)));\n computedNode.key = t.cloneNode(\n (computedNode.key as t.AssignmentExpression).left as t.Identifier,\n );\n } else {\n const ident = path.scope.generateUidIdentifierBasedOnNode(\n computedNode.key,\n );\n // Declaring in the same block scope\n // Ref: https://github.com/babel/babel/pull/10029/files#diff-fbbdd83e7a9c998721c1484529c2ce92\n scope.push({\n id: ident,\n kind: \"let\",\n });\n declarations.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", t.cloneNode(ident), computedNode.key),\n ),\n );\n computedNode.key = t.cloneNode(ident);\n }\n }\n }\n\n return declarations;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-create-class-features-plugin/package.json b/node_modules/@babel/helper-create-class-features-plugin/package.json index e02b43ec..8e2ba75c 100644 --- a/node_modules/@babel/helper-create-class-features-plugin/package.json +++ b/node_modules/@babel/helper-create-class-features-plugin/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-create-class-features-plugin", - "version": "7.22.15", + "version": "7.23.6", "author": "The Babel Team (https://babel.dev/team)", "license": "MIT", "description": "Compile class public and private fields, private methods and decorators to ES6", @@ -19,11 +19,11 @@ ], "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", - "@babel/helper-member-expression-to-functions": "^7.22.15", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", + "@babel/helper-member-expression-to-functions": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", "semver": "^6.3.1" @@ -32,9 +32,9 @@ "@babel/core": "^7.0.0" }, "devDependencies": { - "@babel/core": "^7.22.15", + "@babel/core": "^7.23.6", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/preset-env": "^7.22.15" + "@babel/preset-env": "^7.23.6" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs b/node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs index 2df74349..9e9defb3 100644 --- a/node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs +++ b/node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs @@ -650,7 +650,7 @@ function instantiateProvider(factory, options, missingDependencies, dirname, deb } function definePolyfillProvider(factory) { return declare((babelApi, options, dirname) => { - babelApi.assertVersion(7); + babelApi.assertVersion("^7.0.0 || ^8.0.0-alpha.0"); const { traverse } = babelApi; diff --git a/node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs.map b/node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs.map index d809cdcf..9be4b34f 100644 --- a/node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs.map +++ b/node_modules/@babel/helper-define-polyfill-provider/esm/index.browser.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index.browser.mjs","sources":["../src/utils.ts","../src/imports-cache.ts","../src/debug-utils.ts","../src/normalize-options.ts","../src/visitors/usage.ts","../src/visitors/entry.ts","../src/browser/dependencies.ts","../src/meta-resolver.ts","../src/index.ts"],"sourcesContent":["import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type { Utils } from \"./types\";\nimport type ImportsCache from \"./imports-cache\";\n\nexport function intersection<T>(a: Set<T>, b: Set<T>): Set<T> {\n const result = new Set<T>();\n a.forEach(v => b.has(v) && result.add(v));\n return result;\n}\n\nexport function has(object: any, key: string) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\nfunction getType(target: any): string {\n return Object.prototype.toString.call(target).slice(8, -1);\n}\n\nfunction resolveId(path): string {\n if (\n path.isIdentifier() &&\n !path.scope.hasBinding(path.node.name, /* noGlobals */ true)\n ) {\n return path.node.name;\n }\n\n if (path.isPure()) {\n const { deopt } = path.evaluate();\n if (deopt && deopt.isIdentifier()) {\n return deopt.node.name;\n }\n }\n}\n\nexport function resolveKey(\n path: NodePath<t.Expression | t.PrivateName>,\n computed: boolean = false,\n) {\n const { scope } = path;\n if (path.isStringLiteral()) return path.node.value;\n const isIdentifier = path.isIdentifier();\n if (\n isIdentifier &&\n !(computed || (path.parent as t.MemberExpression).computed)\n ) {\n return path.node.name;\n }\n\n if (\n computed &&\n path.isMemberExpression() &&\n path.get(\"object\").isIdentifier({ name: \"Symbol\" }) &&\n !scope.hasBinding(\"Symbol\", /* noGlobals */ true)\n ) {\n const sym = resolveKey(path.get(\"property\"), path.node.computed);\n if (sym) return \"Symbol.\" + sym;\n }\n\n if (\n isIdentifier\n ? scope.hasBinding(path.node.name, /* noGlobals */ true)\n : path.isPure()\n ) {\n const { value } = path.evaluate();\n if (typeof value === \"string\") return value;\n }\n}\n\nexport function resolveSource(obj: NodePath): {\n id: string | null;\n placement: \"prototype\" | \"static\" | null;\n} {\n if (\n obj.isMemberExpression() &&\n obj.get(\"property\").isIdentifier({ name: \"prototype\" })\n ) {\n const id = resolveId(obj.get(\"object\"));\n\n if (id) {\n return { id, placement: \"prototype\" };\n }\n return { id: null, placement: null };\n }\n\n const id = resolveId(obj);\n if (id) {\n return { id, placement: \"static\" };\n }\n\n if (obj.isRegExpLiteral()) {\n return { id: \"RegExp\", placement: \"prototype\" };\n } else if (obj.isFunction()) {\n return { id: \"Function\", placement: \"prototype\" };\n } else if (obj.isPure()) {\n const { value } = obj.evaluate();\n if (value !== undefined) {\n return { id: getType(value), placement: \"prototype\" };\n }\n }\n\n return { id: null, placement: null };\n}\n\nexport function getImportSource({ node }: NodePath<t.ImportDeclaration>) {\n if (node.specifiers.length === 0) return node.source.value;\n}\n\nexport function getRequireSource({ node }: NodePath<t.Statement>) {\n if (!t.isExpressionStatement(node)) return;\n const { expression } = node;\n if (\n t.isCallExpression(expression) &&\n t.isIdentifier(expression.callee) &&\n expression.callee.name === \"require\" &&\n expression.arguments.length === 1 &&\n t.isStringLiteral(expression.arguments[0])\n ) {\n return expression.arguments[0].value;\n }\n}\n\nfunction hoist(node: t.Node) {\n // @ts-expect-error\n node._blockHoist = 3;\n return node;\n}\n\nexport function createUtilsGetter(cache: ImportsCache) {\n return (path: NodePath): Utils => {\n const prog = path.findParent(p => p.isProgram()) as NodePath<t.Program>;\n\n return {\n injectGlobalImport(url) {\n cache.storeAnonymous(prog, url, (isScript, source) => {\n return isScript\n ? template.statement.ast`require(${source})`\n : t.importDeclaration([], source);\n });\n },\n injectNamedImport(url, name, hint = name) {\n return cache.storeNamed(prog, url, name, (isScript, source, name) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript\n ? hoist(template.statement.ast`\n var ${id} = require(${source}).${name}\n `)\n : t.importDeclaration([t.importSpecifier(id, name)], source),\n name: id.name,\n };\n });\n },\n injectDefaultImport(url, hint = url) {\n return cache.storeNamed(prog, url, \"default\", (isScript, source) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript\n ? hoist(template.statement.ast`var ${id} = require(${source})`)\n : t.importDeclaration([t.importDefaultSpecifier(id)], source),\n name: id.name,\n };\n });\n },\n };\n };\n}\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\n\ntype StrMap<K> = Map<string, K>;\n\nexport default class ImportsCache {\n _imports: WeakMap<NodePath<t.Program>, StrMap<string>>;\n _anonymousImports: WeakMap<NodePath<t.Program>, Set<string>>;\n _lastImports: WeakMap<NodePath<t.Program>, NodePath<t.Node>>;\n _resolver: (url: string) => string;\n\n constructor(resolver: (url: string) => string) {\n this._imports = new WeakMap();\n this._anonymousImports = new WeakMap();\n this._lastImports = new WeakMap();\n this._resolver = resolver;\n }\n\n storeAnonymous(\n programPath: NodePath<t.Program>,\n url: string,\n // eslint-disable-next-line no-undef\n getVal: (isScript: boolean, source: t.StringLiteral) => t.Node,\n ) {\n const key = this._normalizeKey(programPath, url);\n const imports = this._ensure<Set<string>>(\n this._anonymousImports,\n programPath,\n Set,\n );\n\n if (imports.has(key)) return;\n\n const node = getVal(\n programPath.node.sourceType === \"script\",\n t.stringLiteral(this._resolver(url)),\n );\n imports.add(key);\n this._injectImport(programPath, node);\n }\n\n storeNamed(\n programPath: NodePath<t.Program>,\n url: string,\n name: string,\n getVal: (\n isScript: boolean,\n // eslint-disable-next-line no-undef\n source: t.StringLiteral,\n // eslint-disable-next-line no-undef\n name: t.Identifier,\n ) => { node: t.Node; name: string },\n ) {\n const key = this._normalizeKey(programPath, url, name);\n const imports = this._ensure<Map<string, any>>(\n this._imports,\n programPath,\n Map,\n );\n\n if (!imports.has(key)) {\n const { node, name: id } = getVal(\n programPath.node.sourceType === \"script\",\n t.stringLiteral(this._resolver(url)),\n t.identifier(name),\n );\n imports.set(key, id);\n this._injectImport(programPath, node);\n }\n\n return t.identifier(imports.get(key));\n }\n\n _injectImport(programPath: NodePath<t.Program>, node: t.Node) {\n const lastImport = this._lastImports.get(programPath);\n let newNodes: [NodePath];\n if (\n lastImport &&\n lastImport.node &&\n // Sometimes the AST is modified and the \"last import\"\n // we have has been replaced\n lastImport.parent === programPath.node &&\n lastImport.container === programPath.node.body\n ) {\n newNodes = lastImport.insertAfter(node);\n } else {\n newNodes = programPath.unshiftContainer(\"body\", node);\n }\n const newNode = newNodes[newNodes.length - 1];\n this._lastImports.set(programPath, newNode);\n\n /*\n let lastImport;\n\n programPath.get(\"body\").forEach(path => {\n if (path.isImportDeclaration()) lastImport = path;\n if (\n path.isExpressionStatement() &&\n isRequireCall(path.get(\"expression\"))\n ) {\n lastImport = path;\n }\n if (\n path.isVariableDeclaration() &&\n path.get(\"declarations\").length === 1 &&\n (isRequireCall(path.get(\"declarations.0.init\")) ||\n (path.get(\"declarations.0.init\").isMemberExpression() &&\n isRequireCall(path.get(\"declarations.0.init.object\"))))\n ) {\n lastImport = path;\n }\n });*/\n }\n\n _ensure<C extends Map<string, any> | Set<string>>(\n map: WeakMap<NodePath<t.Program>, C>,\n programPath: NodePath<t.Program>,\n Collection: { new (...args: any): C },\n ): C {\n let collection = map.get(programPath);\n if (!collection) {\n collection = new Collection();\n map.set(programPath, collection);\n }\n return collection;\n }\n\n _normalizeKey(\n programPath: NodePath<t.Program>,\n url: string,\n name: string = \"\",\n ): string {\n const { sourceType } = programPath.node;\n\n // If we rely on the imported binding (the \"name\" parameter), we also need to cache\n // based on the sourceType. This is because the module transforms change the names\n // of the import variables.\n return `${name && sourceType}::${url}::${name}`;\n }\n}\n","import { prettifyTargets } from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"./types\";\n\nexport const presetEnvSilentDebugHeader =\n \"#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets\";\n\nexport function stringifyTargetsMultiline(targets: Targets): string {\n return JSON.stringify(prettifyTargets(targets), null, 2);\n}\n\nexport function stringifyTargets(targets: Targets): string {\n return JSON.stringify(targets)\n .replace(/,/g, \", \")\n .replace(/^\\{\"/, '{ \"')\n .replace(/\"\\}$/, '\" }');\n}\n","import { intersection } from \"./utils\";\nimport type {\n Pattern,\n PluginOptions,\n MissingDependenciesOption,\n} from \"./types\";\n\nfunction patternToRegExp(pattern: Pattern): RegExp | null {\n if (pattern instanceof RegExp) return pattern;\n\n try {\n return new RegExp(`^${pattern}$`);\n } catch {\n return null;\n }\n}\n\nfunction buildUnusedError(label, unused) {\n if (!unused.length) return \"\";\n return (\n ` - The following \"${label}\" patterns didn't match any polyfill:\\n` +\n unused.map(original => ` ${String(original)}\\n`).join(\"\")\n );\n}\n\nfunction buldDuplicatesError(duplicates) {\n if (!duplicates.size) return \"\";\n return (\n ` - The following polyfills were matched both by \"include\" and \"exclude\" patterns:\\n` +\n Array.from(duplicates, name => ` ${name}\\n`).join(\"\")\n );\n}\n\nexport function validateIncludeExclude(\n provider: string,\n polyfills: Set<string>,\n includePatterns: Pattern[],\n excludePatterns: Pattern[],\n) {\n let current;\n const filter = pattern => {\n const regexp = patternToRegExp(pattern);\n if (!regexp) return false;\n\n let matched = false;\n for (const polyfill of polyfills) {\n if (regexp.test(polyfill)) {\n matched = true;\n current.add(polyfill);\n }\n }\n return !matched;\n };\n\n // prettier-ignore\n const include = current = new Set<string> ();\n const unusedInclude = Array.from(includePatterns).filter(filter);\n\n // prettier-ignore\n const exclude = current = new Set<string> ();\n const unusedExclude = Array.from(excludePatterns).filter(filter);\n\n const duplicates = intersection(include, exclude);\n\n if (\n duplicates.size > 0 ||\n unusedInclude.length > 0 ||\n unusedExclude.length > 0\n ) {\n throw new Error(\n `Error while validating the \"${provider}\" provider options:\\n` +\n buildUnusedError(\"include\", unusedInclude) +\n buildUnusedError(\"exclude\", unusedExclude) +\n buldDuplicatesError(duplicates),\n );\n }\n\n return { include, exclude };\n}\n\nexport function applyMissingDependenciesDefaults(\n options: PluginOptions,\n babelApi: any,\n): MissingDependenciesOption {\n const { missingDependencies = {} } = options;\n if (missingDependencies === false) return false;\n\n const caller = babelApi.caller(caller => caller?.name);\n\n const {\n log = \"deferred\",\n inject = caller === \"rollup-plugin-babel\" ? \"throw\" : \"import\",\n all = false,\n } = missingDependencies;\n\n return { log, inject, all };\n}\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport type { MetaDescriptor } from \"../types\";\n\nimport { resolveKey, resolveSource } from \"../utils\";\n\nexport default (\n callProvider: (payload: MetaDescriptor, path: NodePath) => void,\n) => {\n function property(object, key, placement, path) {\n return callProvider({ kind: \"property\", object, key, placement }, path);\n }\n\n return {\n // Symbol(), new Promise\n ReferencedIdentifier(path: NodePath<t.Identifier>) {\n const {\n node: { name },\n scope,\n } = path;\n if (scope.getBindingIdentifier(name)) return;\n\n callProvider({ kind: \"global\", name }, path);\n },\n\n MemberExpression(path: NodePath<t.MemberExpression>) {\n const key = resolveKey(path.get(\"property\"), path.node.computed);\n if (!key || key === \"prototype\") return;\n\n const object = path.get(\"object\");\n if (object.isIdentifier()) {\n const binding = object.scope.getBinding(object.node.name);\n if (binding && binding.path.isImportNamespaceSpecifier()) return;\n }\n\n const source = resolveSource(object);\n return property(source.id, key, source.placement, path);\n },\n\n ObjectPattern(path: NodePath<t.ObjectPattern>) {\n const { parentPath, parent } = path;\n let obj;\n\n // const { keys, values } = Object\n if (parentPath.isVariableDeclarator()) {\n obj = parentPath.get(\"init\");\n // ({ keys, values } = Object)\n } else if (parentPath.isAssignmentExpression()) {\n obj = parentPath.get(\"right\");\n // !function ({ keys, values }) {...} (Object)\n // resolution does not work after properties transform :-(\n } else if (parentPath.isFunction()) {\n const grand = parentPath.parentPath;\n if (grand.isCallExpression() || grand.isNewExpression()) {\n if (grand.node.callee === parent) {\n obj = grand.get(\"arguments\")[path.key];\n }\n }\n }\n\n let id = null;\n let placement = null;\n if (obj) ({ id, placement } = resolveSource(obj));\n\n for (const prop of path.get(\"properties\")) {\n if (prop.isObjectProperty()) {\n const key = resolveKey(prop.get(\"key\"));\n if (key) property(id, key, placement, prop);\n }\n }\n },\n\n BinaryExpression(path: NodePath<t.BinaryExpression>) {\n if (path.node.operator !== \"in\") return;\n\n const source = resolveSource(path.get(\"right\"));\n const key = resolveKey(path.get(\"left\"), true);\n\n if (!key) return;\n\n callProvider(\n {\n kind: \"in\",\n object: source.id,\n key,\n placement: source.placement,\n },\n path,\n );\n },\n };\n};\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport type { MetaDescriptor } from \"../types\";\n\nimport { getImportSource, getRequireSource } from \"../utils\";\n\nexport default (\n callProvider: (payload: MetaDescriptor, path: NodePath) => void,\n) => ({\n ImportDeclaration(path: NodePath<t.ImportDeclaration>) {\n const source = getImportSource(path);\n if (!source) return;\n callProvider({ kind: \"import\", source }, path);\n },\n Program(path: NodePath<t.Program>) {\n path.get(\"body\").forEach(bodyPath => {\n const source = getRequireSource(bodyPath);\n if (!source) return;\n callProvider({ kind: \"import\", source }, bodyPath);\n });\n },\n});\n","export function resolve(\n dirname: string,\n moduleName: string,\n absoluteImports: boolean | string,\n): string {\n if (absoluteImports === false) return moduleName;\n\n throw new Error(\n `\"absoluteImports\" is not supported in bundles prepared for the browser.`,\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function has(basedir: string, name: string) {\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function logMissing(missingDeps: Set<string>) {}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function laterLogMissing(missingDeps: Set<string>) {}\n","import type {\n MetaDescriptor,\n ResolverPolyfills,\n ResolvedPolyfill,\n} from \"./types\";\n\nimport { has } from \"./utils\";\n\ntype ResolverFn<T> = (meta: MetaDescriptor) => void | ResolvedPolyfill<T>;\n\nconst PossibleGlobalObjects = new Set<string>([\n \"global\",\n \"globalThis\",\n \"self\",\n \"window\",\n]);\n\nexport default function createMetaResolver<T>(\n polyfills: ResolverPolyfills<T>,\n): ResolverFn<T> {\n const { static: staticP, instance: instanceP, global: globalP } = polyfills;\n\n return meta => {\n if (meta.kind === \"global\" && globalP && has(globalP, meta.name)) {\n return { kind: \"global\", desc: globalP[meta.name], name: meta.name };\n }\n\n if (meta.kind === \"property\" || meta.kind === \"in\") {\n const { placement, object, key } = meta;\n\n if (object && placement === \"static\") {\n if (globalP && PossibleGlobalObjects.has(object) && has(globalP, key)) {\n return { kind: \"global\", desc: globalP[key], name: key };\n }\n\n if (staticP && has(staticP, object) && has(staticP[object], key)) {\n return {\n kind: \"static\",\n desc: staticP[object][key],\n name: `${object}$${key}`,\n };\n }\n }\n\n if (instanceP && has(instanceP, key)) {\n return { kind: \"instance\", desc: instanceP[key], name: `${key}` };\n }\n }\n };\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport _getTargets, {\n isRequired,\n getInclusionReasons,\n} from \"@babel/helper-compilation-targets\";\nconst getTargets = _getTargets.default || _getTargets;\n\nimport { createUtilsGetter } from \"./utils\";\nimport ImportsCache from \"./imports-cache\";\nimport {\n stringifyTargetsMultiline,\n presetEnvSilentDebugHeader,\n} from \"./debug-utils\";\nimport {\n validateIncludeExclude,\n applyMissingDependenciesDefaults,\n} from \"./normalize-options\";\n\nimport type {\n ProviderApi,\n MethodString,\n Targets,\n MetaDescriptor,\n PolyfillProvider,\n PluginOptions,\n ProviderOptions,\n} from \"./types\";\n\nimport * as v from \"./visitors\";\nimport * as deps from \"./node/dependencies\";\n\nimport createMetaResolver from \"./meta-resolver\";\n\nexport type { PolyfillProvider, MetaDescriptor, Utils, Targets } from \"./types\";\n\nfunction resolveOptions<Options>(\n options: PluginOptions,\n babelApi,\n): {\n method: MethodString;\n methodName: \"usageGlobal\" | \"entryGlobal\" | \"usagePure\";\n targets: Targets;\n debug: boolean | typeof presetEnvSilentDebugHeader;\n shouldInjectPolyfill:\n | ((name: string, shouldInject: boolean) => boolean)\n | undefined;\n providerOptions: ProviderOptions<Options>;\n absoluteImports: string | boolean;\n} {\n const {\n method,\n targets: targetsOption,\n ignoreBrowserslistConfig,\n configPath,\n debug,\n shouldInjectPolyfill,\n absoluteImports,\n ...providerOptions\n } = options;\n\n if (isEmpty(options)) {\n throw new Error(\n `\\\nThis plugin requires options, for example:\n {\n \"plugins\": [\n [\"<plugin name>\", { method: \"usage-pure\" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`,\n );\n }\n\n let methodName;\n if (method === \"usage-global\") methodName = \"usageGlobal\";\n else if (method === \"entry-global\") methodName = \"entryGlobal\";\n else if (method === \"usage-pure\") methodName = \"usagePure\";\n else if (typeof method !== \"string\") {\n throw new Error(\".method must be a string\");\n } else {\n throw new Error(\n `.method must be one of \"entry-global\", \"usage-global\"` +\n ` or \"usage-pure\" (received ${JSON.stringify(method)})`,\n );\n }\n\n if (typeof shouldInjectPolyfill === \"function\") {\n if (options.include || options.exclude) {\n throw new Error(\n `.include and .exclude are not supported when using the` +\n ` .shouldInjectPolyfill function.`,\n );\n }\n } else if (shouldInjectPolyfill != null) {\n throw new Error(\n `.shouldInjectPolyfill must be a function, or undefined` +\n ` (received ${JSON.stringify(shouldInjectPolyfill)})`,\n );\n }\n\n if (\n absoluteImports != null &&\n typeof absoluteImports !== \"boolean\" &&\n typeof absoluteImports !== \"string\"\n ) {\n throw new Error(\n `.absoluteImports must be a boolean, a string, or undefined` +\n ` (received ${JSON.stringify(absoluteImports)})`,\n );\n }\n\n let targets;\n\n if (\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n targetsOption ||\n configPath ||\n ignoreBrowserslistConfig\n ) {\n const targetsObj =\n typeof targetsOption === \"string\" || Array.isArray(targetsOption)\n ? { browsers: targetsOption }\n : targetsOption;\n\n targets = getTargets(targetsObj, {\n ignoreBrowserslistConfig,\n configPath,\n });\n } else {\n targets = babelApi.targets();\n }\n\n return {\n method,\n methodName,\n targets,\n absoluteImports: absoluteImports ?? false,\n shouldInjectPolyfill,\n debug: !!debug,\n providerOptions: providerOptions as any as ProviderOptions<Options>,\n };\n}\n\nfunction instantiateProvider<Options>(\n factory: PolyfillProvider<Options>,\n options: PluginOptions,\n missingDependencies,\n dirname,\n debugLog,\n babelApi,\n) {\n const {\n method,\n methodName,\n targets,\n debug,\n shouldInjectPolyfill,\n providerOptions,\n absoluteImports,\n } = resolveOptions<Options>(options, babelApi);\n\n const getUtils = createUtilsGetter(\n new ImportsCache(moduleName =>\n deps.resolve(dirname, moduleName, absoluteImports),\n ),\n );\n\n // eslint-disable-next-line prefer-const\n let include, exclude;\n let polyfillsSupport;\n let polyfillsNames;\n let filterPolyfills;\n\n const depsCache = new Map();\n\n const api: ProviderApi = {\n babel: babelApi,\n getUtils,\n method: options.method,\n targets,\n createMetaResolver,\n shouldInjectPolyfill(name) {\n if (polyfillsNames === undefined) {\n throw new Error(\n `Internal error in the ${factory.name} provider: ` +\n `shouldInjectPolyfill() can't be called during initialization.`,\n );\n }\n if (!polyfillsNames.has(name)) {\n console.warn(\n `Internal error in the ${providerName} provider: ` +\n `unknown polyfill \"${name}\".`,\n );\n }\n\n if (filterPolyfills && !filterPolyfills(name)) return false;\n\n let shouldInject = isRequired(name, targets, {\n compatData: polyfillsSupport,\n includes: include,\n excludes: exclude,\n });\n\n if (shouldInjectPolyfill) {\n shouldInject = shouldInjectPolyfill(name, shouldInject);\n if (typeof shouldInject !== \"boolean\") {\n throw new Error(`.shouldInjectPolyfill must return a boolean.`);\n }\n }\n\n return shouldInject;\n },\n debug(name) {\n debugLog().found = true;\n\n if (!debug || !name) return;\n\n if (debugLog().polyfills.has(providerName)) return;\n debugLog().polyfills.add(name);\n debugLog().polyfillsSupport ??= polyfillsSupport;\n },\n assertDependency(name, version = \"*\") {\n if (missingDependencies === false) return;\n if (absoluteImports) {\n // If absoluteImports is not false, we will try resolving\n // the dependency and throw if it's not possible. We can\n // skip the check here.\n return;\n }\n\n const dep = version === \"*\" ? name : `${name}@^${version}`;\n\n const found = missingDependencies.all\n ? false\n : mapGetOr(depsCache, `${name} :: ${dirname}`, () =>\n deps.has(dirname, name),\n );\n\n if (!found) {\n debugLog().missingDeps.add(dep);\n }\n },\n };\n\n const provider = factory(api, providerOptions, dirname);\n const providerName = provider.name || factory.name;\n\n if (typeof provider[methodName] !== \"function\") {\n throw new Error(\n `The \"${providerName}\" provider doesn't support the \"${method}\" polyfilling method.`,\n );\n }\n\n if (Array.isArray(provider.polyfills)) {\n polyfillsNames = new Set(provider.polyfills);\n filterPolyfills = provider.filterPolyfills;\n } else if (provider.polyfills) {\n polyfillsNames = new Set(Object.keys(provider.polyfills));\n polyfillsSupport = provider.polyfills;\n filterPolyfills = provider.filterPolyfills;\n } else {\n polyfillsNames = new Set();\n }\n\n ({ include, exclude } = validateIncludeExclude(\n providerName,\n polyfillsNames,\n providerOptions.include || [],\n providerOptions.exclude || [],\n ));\n\n return {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider(payload: MetaDescriptor, path: NodePath) {\n const utils = getUtils(path);\n provider[methodName](payload, utils, path);\n },\n };\n}\n\nexport default function definePolyfillProvider<Options>(\n factory: PolyfillProvider<Options>,\n) {\n return declare((babelApi, options: PluginOptions, dirname: string) => {\n babelApi.assertVersion(7);\n const { traverse } = babelApi;\n\n let debugLog;\n\n const missingDependencies = applyMissingDependenciesDefaults(\n options,\n babelApi,\n );\n\n const { debug, method, targets, provider, providerName, callProvider } =\n instantiateProvider<Options>(\n factory,\n options,\n missingDependencies,\n dirname,\n () => debugLog,\n babelApi,\n );\n\n const createVisitor = method === \"entry-global\" ? v.entry : v.usage;\n\n const visitor = provider.visitor\n ? traverse.visitors.merge([createVisitor(callProvider), provider.visitor])\n : createVisitor(callProvider);\n\n if (debug && debug !== presetEnvSilentDebugHeader) {\n console.log(`${providerName}: \\`DEBUG\\` option`);\n console.log(`\\nUsing targets: ${stringifyTargetsMultiline(targets)}`);\n console.log(`\\nUsing polyfills with \\`${method}\\` method:`);\n }\n\n const { runtimeName } = provider;\n\n return {\n name: \"inject-polyfills\",\n visitor,\n\n pre(file) {\n if (runtimeName) {\n if (\n file.get(\"runtimeHelpersModuleName\") &&\n file.get(\"runtimeHelpersModuleName\") !== runtimeName\n ) {\n console.warn(\n `Two different polyfill providers` +\n ` (${file.get(\"runtimeHelpersModuleProvider\")}` +\n ` and ${providerName}) are trying to define two` +\n ` conflicting @babel/runtime alternatives:` +\n ` ${file.get(\"runtimeHelpersModuleName\")} and ${runtimeName}.` +\n ` The second one will be ignored.`,\n );\n } else {\n file.set(\"runtimeHelpersModuleName\", runtimeName);\n file.set(\"runtimeHelpersModuleProvider\", providerName);\n }\n }\n\n debugLog = {\n polyfills: new Set(),\n polyfillsSupport: undefined,\n found: false,\n providers: new Set(),\n missingDeps: new Set(),\n };\n\n provider.pre?.apply(this, arguments);\n },\n post() {\n provider.post?.apply(this, arguments);\n\n if (missingDependencies !== false) {\n if (missingDependencies.log === \"per-file\") {\n deps.logMissing(debugLog.missingDeps);\n } else {\n deps.laterLogMissing(debugLog.missingDeps);\n }\n }\n\n if (!debug) return;\n\n if (this.filename) console.log(`\\n[${this.filename}]`);\n\n if (debugLog.polyfills.size === 0) {\n console.log(\n method === \"entry-global\"\n ? debugLog.found\n ? `Based on your targets, the ${providerName} polyfill did not add any polyfill.`\n : `The entry point for the ${providerName} polyfill has not been found.`\n : `Based on your code and targets, the ${providerName} polyfill did not add any polyfill.`,\n );\n\n return;\n }\n\n if (method === \"entry-global\") {\n console.log(\n `The ${providerName} polyfill entry has been replaced with ` +\n `the following polyfills:`,\n );\n } else {\n console.log(\n `The ${providerName} polyfill added the following polyfills:`,\n );\n }\n\n for (const name of debugLog.polyfills) {\n if (debugLog.polyfillsSupport?.[name]) {\n const filteredTargets = getInclusionReasons(\n name,\n targets,\n debugLog.polyfillsSupport,\n );\n\n const formattedTargets = JSON.stringify(filteredTargets)\n .replace(/,/g, \", \")\n .replace(/^\\{\"/, '{ \"')\n .replace(/\"\\}$/, '\" }');\n\n console.log(` ${name} ${formattedTargets}`);\n } else {\n console.log(` ${name}`);\n }\n }\n },\n };\n });\n}\n\nfunction mapGetOr(map, key, getDefault) {\n let val = map.get(key);\n if (val === undefined) {\n val = getDefault();\n map.set(key, val);\n }\n return val;\n}\n\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n"],"names":["types","t","template","_babel","default","intersection","a","b","result","Set","forEach","v","has","add","object","key","Object","prototype","hasOwnProperty","call","getType","target","toString","slice","resolveId","path","isIdentifier","scope","hasBinding","node","name","isPure","deopt","evaluate","resolveKey","computed","isStringLiteral","value","parent","isMemberExpression","get","sym","resolveSource","obj","id","placement","isRegExpLiteral","isFunction","undefined","getImportSource","specifiers","length","source","getRequireSource","isExpressionStatement","expression","isCallExpression","callee","arguments","hoist","_blockHoist","createUtilsGetter","cache","prog","findParent","p","isProgram","injectGlobalImport","url","storeAnonymous","isScript","statement","ast","importDeclaration","injectNamedImport","hint","storeNamed","generateUidIdentifier","importSpecifier","injectDefaultImport","importDefaultSpecifier","ImportsCache","constructor","resolver","_imports","WeakMap","_anonymousImports","_lastImports","_resolver","programPath","getVal","_normalizeKey","imports","_ensure","sourceType","stringLiteral","_injectImport","Map","identifier","set","lastImport","newNodes","container","body","insertAfter","unshiftContainer","newNode","map","Collection","collection","presetEnvSilentDebugHeader","stringifyTargetsMultiline","targets","JSON","stringify","prettifyTargets","patternToRegExp","pattern","RegExp","buildUnusedError","label","unused","original","String","join","buldDuplicatesError","duplicates","size","Array","from","validateIncludeExclude","provider","polyfills","includePatterns","excludePatterns","current","filter","regexp","matched","polyfill","test","include","unusedInclude","exclude","unusedExclude","Error","applyMissingDependenciesDefaults","options","babelApi","missingDependencies","caller","log","inject","all","callProvider","property","kind","ReferencedIdentifier","getBindingIdentifier","MemberExpression","binding","getBinding","isImportNamespaceSpecifier","ObjectPattern","parentPath","isVariableDeclarator","isAssignmentExpression","grand","isNewExpression","prop","isObjectProperty","BinaryExpression","operator","ImportDeclaration","Program","bodyPath","resolve","dirname","moduleName","absoluteImports","basedir","logMissing","missingDeps","laterLogMissing","PossibleGlobalObjects","createMetaResolver","static","staticP","instance","instanceP","global","globalP","meta","desc","getTargets","_getTargets","resolveOptions","method","targetsOption","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","providerOptions","isEmpty","methodName","targetsObj","isArray","browsers","instantiateProvider","factory","debugLog","getUtils","deps","polyfillsSupport","polyfillsNames","filterPolyfills","depsCache","api","babel","console","warn","providerName","shouldInject","isRequired","compatData","includes","excludes","_debugLog","_debugLog$polyfillsSu","found","assertDependency","version","dep","mapGetOr","keys","payload","utils","definePolyfillProvider","declare","assertVersion","traverse","createVisitor","visitor","visitors","merge","runtimeName","pre","file","_provider$pre","providers","apply","post","_provider$post","filename","_debugLog$polyfillsSu2","filteredTargets","getInclusionReasons","formattedTargets","replace","getDefault","val"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"index.browser.mjs","sources":["../src/utils.ts","../src/imports-cache.ts","../src/debug-utils.ts","../src/normalize-options.ts","../src/visitors/usage.ts","../src/visitors/entry.ts","../src/browser/dependencies.ts","../src/meta-resolver.ts","../src/index.ts"],"sourcesContent":["import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type { Utils } from \"./types\";\nimport type ImportsCache from \"./imports-cache\";\n\nexport function intersection<T>(a: Set<T>, b: Set<T>): Set<T> {\n const result = new Set<T>();\n a.forEach(v => b.has(v) && result.add(v));\n return result;\n}\n\nexport function has(object: any, key: string) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\nfunction getType(target: any): string {\n return Object.prototype.toString.call(target).slice(8, -1);\n}\n\nfunction resolveId(path): string {\n if (\n path.isIdentifier() &&\n !path.scope.hasBinding(path.node.name, /* noGlobals */ true)\n ) {\n return path.node.name;\n }\n\n if (path.isPure()) {\n const { deopt } = path.evaluate();\n if (deopt && deopt.isIdentifier()) {\n return deopt.node.name;\n }\n }\n}\n\nexport function resolveKey(\n path: NodePath<t.Expression | t.PrivateName>,\n computed: boolean = false,\n) {\n const { scope } = path;\n if (path.isStringLiteral()) return path.node.value;\n const isIdentifier = path.isIdentifier();\n if (\n isIdentifier &&\n !(computed || (path.parent as t.MemberExpression).computed)\n ) {\n return path.node.name;\n }\n\n if (\n computed &&\n path.isMemberExpression() &&\n path.get(\"object\").isIdentifier({ name: \"Symbol\" }) &&\n !scope.hasBinding(\"Symbol\", /* noGlobals */ true)\n ) {\n const sym = resolveKey(path.get(\"property\"), path.node.computed);\n if (sym) return \"Symbol.\" + sym;\n }\n\n if (\n isIdentifier\n ? scope.hasBinding(path.node.name, /* noGlobals */ true)\n : path.isPure()\n ) {\n const { value } = path.evaluate();\n if (typeof value === \"string\") return value;\n }\n}\n\nexport function resolveSource(obj: NodePath): {\n id: string | null;\n placement: \"prototype\" | \"static\" | null;\n} {\n if (\n obj.isMemberExpression() &&\n obj.get(\"property\").isIdentifier({ name: \"prototype\" })\n ) {\n const id = resolveId(obj.get(\"object\"));\n\n if (id) {\n return { id, placement: \"prototype\" };\n }\n return { id: null, placement: null };\n }\n\n const id = resolveId(obj);\n if (id) {\n return { id, placement: \"static\" };\n }\n\n if (obj.isRegExpLiteral()) {\n return { id: \"RegExp\", placement: \"prototype\" };\n } else if (obj.isFunction()) {\n return { id: \"Function\", placement: \"prototype\" };\n } else if (obj.isPure()) {\n const { value } = obj.evaluate();\n if (value !== undefined) {\n return { id: getType(value), placement: \"prototype\" };\n }\n }\n\n return { id: null, placement: null };\n}\n\nexport function getImportSource({ node }: NodePath<t.ImportDeclaration>) {\n if (node.specifiers.length === 0) return node.source.value;\n}\n\nexport function getRequireSource({ node }: NodePath<t.Statement>) {\n if (!t.isExpressionStatement(node)) return;\n const { expression } = node;\n if (\n t.isCallExpression(expression) &&\n t.isIdentifier(expression.callee) &&\n expression.callee.name === \"require\" &&\n expression.arguments.length === 1 &&\n t.isStringLiteral(expression.arguments[0])\n ) {\n return expression.arguments[0].value;\n }\n}\n\nfunction hoist(node: t.Node) {\n // @ts-expect-error\n node._blockHoist = 3;\n return node;\n}\n\nexport function createUtilsGetter(cache: ImportsCache) {\n return (path: NodePath): Utils => {\n const prog = path.findParent(p => p.isProgram()) as NodePath<t.Program>;\n\n return {\n injectGlobalImport(url) {\n cache.storeAnonymous(prog, url, (isScript, source) => {\n return isScript\n ? template.statement.ast`require(${source})`\n : t.importDeclaration([], source);\n });\n },\n injectNamedImport(url, name, hint = name) {\n return cache.storeNamed(prog, url, name, (isScript, source, name) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript\n ? hoist(template.statement.ast`\n var ${id} = require(${source}).${name}\n `)\n : t.importDeclaration([t.importSpecifier(id, name)], source),\n name: id.name,\n };\n });\n },\n injectDefaultImport(url, hint = url) {\n return cache.storeNamed(prog, url, \"default\", (isScript, source) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript\n ? hoist(template.statement.ast`var ${id} = require(${source})`)\n : t.importDeclaration([t.importDefaultSpecifier(id)], source),\n name: id.name,\n };\n });\n },\n };\n };\n}\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\n\ntype StrMap<K> = Map<string, K>;\n\nexport default class ImportsCache {\n _imports: WeakMap<NodePath<t.Program>, StrMap<string>>;\n _anonymousImports: WeakMap<NodePath<t.Program>, Set<string>>;\n _lastImports: WeakMap<NodePath<t.Program>, NodePath<t.Node>>;\n _resolver: (url: string) => string;\n\n constructor(resolver: (url: string) => string) {\n this._imports = new WeakMap();\n this._anonymousImports = new WeakMap();\n this._lastImports = new WeakMap();\n this._resolver = resolver;\n }\n\n storeAnonymous(\n programPath: NodePath<t.Program>,\n url: string,\n // eslint-disable-next-line no-undef\n getVal: (isScript: boolean, source: t.StringLiteral) => t.Node,\n ) {\n const key = this._normalizeKey(programPath, url);\n const imports = this._ensure<Set<string>>(\n this._anonymousImports,\n programPath,\n Set,\n );\n\n if (imports.has(key)) return;\n\n const node = getVal(\n programPath.node.sourceType === \"script\",\n t.stringLiteral(this._resolver(url)),\n );\n imports.add(key);\n this._injectImport(programPath, node);\n }\n\n storeNamed(\n programPath: NodePath<t.Program>,\n url: string,\n name: string,\n getVal: (\n isScript: boolean,\n // eslint-disable-next-line no-undef\n source: t.StringLiteral,\n // eslint-disable-next-line no-undef\n name: t.Identifier,\n ) => { node: t.Node; name: string },\n ) {\n const key = this._normalizeKey(programPath, url, name);\n const imports = this._ensure<Map<string, any>>(\n this._imports,\n programPath,\n Map,\n );\n\n if (!imports.has(key)) {\n const { node, name: id } = getVal(\n programPath.node.sourceType === \"script\",\n t.stringLiteral(this._resolver(url)),\n t.identifier(name),\n );\n imports.set(key, id);\n this._injectImport(programPath, node);\n }\n\n return t.identifier(imports.get(key));\n }\n\n _injectImport(programPath: NodePath<t.Program>, node: t.Node) {\n const lastImport = this._lastImports.get(programPath);\n let newNodes: [NodePath];\n if (\n lastImport &&\n lastImport.node &&\n // Sometimes the AST is modified and the \"last import\"\n // we have has been replaced\n lastImport.parent === programPath.node &&\n lastImport.container === programPath.node.body\n ) {\n newNodes = lastImport.insertAfter(node);\n } else {\n newNodes = programPath.unshiftContainer(\"body\", node);\n }\n const newNode = newNodes[newNodes.length - 1];\n this._lastImports.set(programPath, newNode);\n\n /*\n let lastImport;\n\n programPath.get(\"body\").forEach(path => {\n if (path.isImportDeclaration()) lastImport = path;\n if (\n path.isExpressionStatement() &&\n isRequireCall(path.get(\"expression\"))\n ) {\n lastImport = path;\n }\n if (\n path.isVariableDeclaration() &&\n path.get(\"declarations\").length === 1 &&\n (isRequireCall(path.get(\"declarations.0.init\")) ||\n (path.get(\"declarations.0.init\").isMemberExpression() &&\n isRequireCall(path.get(\"declarations.0.init.object\"))))\n ) {\n lastImport = path;\n }\n });*/\n }\n\n _ensure<C extends Map<string, any> | Set<string>>(\n map: WeakMap<NodePath<t.Program>, C>,\n programPath: NodePath<t.Program>,\n Collection: { new (...args: any): C },\n ): C {\n let collection = map.get(programPath);\n if (!collection) {\n collection = new Collection();\n map.set(programPath, collection);\n }\n return collection;\n }\n\n _normalizeKey(\n programPath: NodePath<t.Program>,\n url: string,\n name: string = \"\",\n ): string {\n const { sourceType } = programPath.node;\n\n // If we rely on the imported binding (the \"name\" parameter), we also need to cache\n // based on the sourceType. This is because the module transforms change the names\n // of the import variables.\n return `${name && sourceType}::${url}::${name}`;\n }\n}\n","import { prettifyTargets } from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"./types\";\n\nexport const presetEnvSilentDebugHeader =\n \"#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets\";\n\nexport function stringifyTargetsMultiline(targets: Targets): string {\n return JSON.stringify(prettifyTargets(targets), null, 2);\n}\n\nexport function stringifyTargets(targets: Targets): string {\n return JSON.stringify(targets)\n .replace(/,/g, \", \")\n .replace(/^\\{\"/, '{ \"')\n .replace(/\"\\}$/, '\" }');\n}\n","import { intersection } from \"./utils\";\nimport type {\n Pattern,\n PluginOptions,\n MissingDependenciesOption,\n} from \"./types\";\n\nfunction patternToRegExp(pattern: Pattern): RegExp | null {\n if (pattern instanceof RegExp) return pattern;\n\n try {\n return new RegExp(`^${pattern}$`);\n } catch {\n return null;\n }\n}\n\nfunction buildUnusedError(label, unused) {\n if (!unused.length) return \"\";\n return (\n ` - The following \"${label}\" patterns didn't match any polyfill:\\n` +\n unused.map(original => ` ${String(original)}\\n`).join(\"\")\n );\n}\n\nfunction buldDuplicatesError(duplicates) {\n if (!duplicates.size) return \"\";\n return (\n ` - The following polyfills were matched both by \"include\" and \"exclude\" patterns:\\n` +\n Array.from(duplicates, name => ` ${name}\\n`).join(\"\")\n );\n}\n\nexport function validateIncludeExclude(\n provider: string,\n polyfills: Set<string>,\n includePatterns: Pattern[],\n excludePatterns: Pattern[],\n) {\n let current;\n const filter = pattern => {\n const regexp = patternToRegExp(pattern);\n if (!regexp) return false;\n\n let matched = false;\n for (const polyfill of polyfills) {\n if (regexp.test(polyfill)) {\n matched = true;\n current.add(polyfill);\n }\n }\n return !matched;\n };\n\n // prettier-ignore\n const include = current = new Set<string> ();\n const unusedInclude = Array.from(includePatterns).filter(filter);\n\n // prettier-ignore\n const exclude = current = new Set<string> ();\n const unusedExclude = Array.from(excludePatterns).filter(filter);\n\n const duplicates = intersection(include, exclude);\n\n if (\n duplicates.size > 0 ||\n unusedInclude.length > 0 ||\n unusedExclude.length > 0\n ) {\n throw new Error(\n `Error while validating the \"${provider}\" provider options:\\n` +\n buildUnusedError(\"include\", unusedInclude) +\n buildUnusedError(\"exclude\", unusedExclude) +\n buldDuplicatesError(duplicates),\n );\n }\n\n return { include, exclude };\n}\n\nexport function applyMissingDependenciesDefaults(\n options: PluginOptions,\n babelApi: any,\n): MissingDependenciesOption {\n const { missingDependencies = {} } = options;\n if (missingDependencies === false) return false;\n\n const caller = babelApi.caller(caller => caller?.name);\n\n const {\n log = \"deferred\",\n inject = caller === \"rollup-plugin-babel\" ? \"throw\" : \"import\",\n all = false,\n } = missingDependencies;\n\n return { log, inject, all };\n}\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport type { MetaDescriptor } from \"../types\";\n\nimport { resolveKey, resolveSource } from \"../utils\";\n\nexport default (\n callProvider: (payload: MetaDescriptor, path: NodePath) => void,\n) => {\n function property(object, key, placement, path) {\n return callProvider({ kind: \"property\", object, key, placement }, path);\n }\n\n return {\n // Symbol(), new Promise\n ReferencedIdentifier(path: NodePath<t.Identifier>) {\n const {\n node: { name },\n scope,\n } = path;\n if (scope.getBindingIdentifier(name)) return;\n\n callProvider({ kind: \"global\", name }, path);\n },\n\n MemberExpression(path: NodePath<t.MemberExpression>) {\n const key = resolveKey(path.get(\"property\"), path.node.computed);\n if (!key || key === \"prototype\") return;\n\n const object = path.get(\"object\");\n if (object.isIdentifier()) {\n const binding = object.scope.getBinding(object.node.name);\n if (binding && binding.path.isImportNamespaceSpecifier()) return;\n }\n\n const source = resolveSource(object);\n return property(source.id, key, source.placement, path);\n },\n\n ObjectPattern(path: NodePath<t.ObjectPattern>) {\n const { parentPath, parent } = path;\n let obj;\n\n // const { keys, values } = Object\n if (parentPath.isVariableDeclarator()) {\n obj = parentPath.get(\"init\");\n // ({ keys, values } = Object)\n } else if (parentPath.isAssignmentExpression()) {\n obj = parentPath.get(\"right\");\n // !function ({ keys, values }) {...} (Object)\n // resolution does not work after properties transform :-(\n } else if (parentPath.isFunction()) {\n const grand = parentPath.parentPath;\n if (grand.isCallExpression() || grand.isNewExpression()) {\n if (grand.node.callee === parent) {\n obj = grand.get(\"arguments\")[path.key];\n }\n }\n }\n\n let id = null;\n let placement = null;\n if (obj) ({ id, placement } = resolveSource(obj));\n\n for (const prop of path.get(\"properties\")) {\n if (prop.isObjectProperty()) {\n const key = resolveKey(prop.get(\"key\"));\n if (key) property(id, key, placement, prop);\n }\n }\n },\n\n BinaryExpression(path: NodePath<t.BinaryExpression>) {\n if (path.node.operator !== \"in\") return;\n\n const source = resolveSource(path.get(\"right\"));\n const key = resolveKey(path.get(\"left\"), true);\n\n if (!key) return;\n\n callProvider(\n {\n kind: \"in\",\n object: source.id,\n key,\n placement: source.placement,\n },\n path,\n );\n },\n };\n};\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport type { MetaDescriptor } from \"../types\";\n\nimport { getImportSource, getRequireSource } from \"../utils\";\n\nexport default (\n callProvider: (payload: MetaDescriptor, path: NodePath) => void,\n) => ({\n ImportDeclaration(path: NodePath<t.ImportDeclaration>) {\n const source = getImportSource(path);\n if (!source) return;\n callProvider({ kind: \"import\", source }, path);\n },\n Program(path: NodePath<t.Program>) {\n path.get(\"body\").forEach(bodyPath => {\n const source = getRequireSource(bodyPath);\n if (!source) return;\n callProvider({ kind: \"import\", source }, bodyPath);\n });\n },\n});\n","export function resolve(\n dirname: string,\n moduleName: string,\n absoluteImports: boolean | string,\n): string {\n if (absoluteImports === false) return moduleName;\n\n throw new Error(\n `\"absoluteImports\" is not supported in bundles prepared for the browser.`,\n );\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function has(basedir: string, name: string) {\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function logMissing(missingDeps: Set<string>) {}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function laterLogMissing(missingDeps: Set<string>) {}\n","import type {\n MetaDescriptor,\n ResolverPolyfills,\n ResolvedPolyfill,\n} from \"./types\";\n\nimport { has } from \"./utils\";\n\ntype ResolverFn<T> = (meta: MetaDescriptor) => void | ResolvedPolyfill<T>;\n\nconst PossibleGlobalObjects = new Set<string>([\n \"global\",\n \"globalThis\",\n \"self\",\n \"window\",\n]);\n\nexport default function createMetaResolver<T>(\n polyfills: ResolverPolyfills<T>,\n): ResolverFn<T> {\n const { static: staticP, instance: instanceP, global: globalP } = polyfills;\n\n return meta => {\n if (meta.kind === \"global\" && globalP && has(globalP, meta.name)) {\n return { kind: \"global\", desc: globalP[meta.name], name: meta.name };\n }\n\n if (meta.kind === \"property\" || meta.kind === \"in\") {\n const { placement, object, key } = meta;\n\n if (object && placement === \"static\") {\n if (globalP && PossibleGlobalObjects.has(object) && has(globalP, key)) {\n return { kind: \"global\", desc: globalP[key], name: key };\n }\n\n if (staticP && has(staticP, object) && has(staticP[object], key)) {\n return {\n kind: \"static\",\n desc: staticP[object][key],\n name: `${object}$${key}`,\n };\n }\n }\n\n if (instanceP && has(instanceP, key)) {\n return { kind: \"instance\", desc: instanceP[key], name: `${key}` };\n }\n }\n };\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport _getTargets, {\n isRequired,\n getInclusionReasons,\n} from \"@babel/helper-compilation-targets\";\nconst getTargets = _getTargets.default || _getTargets;\n\nimport { createUtilsGetter } from \"./utils\";\nimport ImportsCache from \"./imports-cache\";\nimport {\n stringifyTargetsMultiline,\n presetEnvSilentDebugHeader,\n} from \"./debug-utils\";\nimport {\n validateIncludeExclude,\n applyMissingDependenciesDefaults,\n} from \"./normalize-options\";\n\nimport type {\n ProviderApi,\n MethodString,\n Targets,\n MetaDescriptor,\n PolyfillProvider,\n PluginOptions,\n ProviderOptions,\n} from \"./types\";\n\nimport * as v from \"./visitors\";\nimport * as deps from \"./node/dependencies\";\n\nimport createMetaResolver from \"./meta-resolver\";\n\nexport type { PolyfillProvider, MetaDescriptor, Utils, Targets } from \"./types\";\n\nfunction resolveOptions<Options>(\n options: PluginOptions,\n babelApi,\n): {\n method: MethodString;\n methodName: \"usageGlobal\" | \"entryGlobal\" | \"usagePure\";\n targets: Targets;\n debug: boolean | typeof presetEnvSilentDebugHeader;\n shouldInjectPolyfill:\n | ((name: string, shouldInject: boolean) => boolean)\n | undefined;\n providerOptions: ProviderOptions<Options>;\n absoluteImports: string | boolean;\n} {\n const {\n method,\n targets: targetsOption,\n ignoreBrowserslistConfig,\n configPath,\n debug,\n shouldInjectPolyfill,\n absoluteImports,\n ...providerOptions\n } = options;\n\n if (isEmpty(options)) {\n throw new Error(\n `\\\nThis plugin requires options, for example:\n {\n \"plugins\": [\n [\"<plugin name>\", { method: \"usage-pure\" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`,\n );\n }\n\n let methodName;\n if (method === \"usage-global\") methodName = \"usageGlobal\";\n else if (method === \"entry-global\") methodName = \"entryGlobal\";\n else if (method === \"usage-pure\") methodName = \"usagePure\";\n else if (typeof method !== \"string\") {\n throw new Error(\".method must be a string\");\n } else {\n throw new Error(\n `.method must be one of \"entry-global\", \"usage-global\"` +\n ` or \"usage-pure\" (received ${JSON.stringify(method)})`,\n );\n }\n\n if (typeof shouldInjectPolyfill === \"function\") {\n if (options.include || options.exclude) {\n throw new Error(\n `.include and .exclude are not supported when using the` +\n ` .shouldInjectPolyfill function.`,\n );\n }\n } else if (shouldInjectPolyfill != null) {\n throw new Error(\n `.shouldInjectPolyfill must be a function, or undefined` +\n ` (received ${JSON.stringify(shouldInjectPolyfill)})`,\n );\n }\n\n if (\n absoluteImports != null &&\n typeof absoluteImports !== \"boolean\" &&\n typeof absoluteImports !== \"string\"\n ) {\n throw new Error(\n `.absoluteImports must be a boolean, a string, or undefined` +\n ` (received ${JSON.stringify(absoluteImports)})`,\n );\n }\n\n let targets;\n\n if (\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n targetsOption ||\n configPath ||\n ignoreBrowserslistConfig\n ) {\n const targetsObj =\n typeof targetsOption === \"string\" || Array.isArray(targetsOption)\n ? { browsers: targetsOption }\n : targetsOption;\n\n targets = getTargets(targetsObj, {\n ignoreBrowserslistConfig,\n configPath,\n });\n } else {\n targets = babelApi.targets();\n }\n\n return {\n method,\n methodName,\n targets,\n absoluteImports: absoluteImports ?? false,\n shouldInjectPolyfill,\n debug: !!debug,\n providerOptions: providerOptions as any as ProviderOptions<Options>,\n };\n}\n\nfunction instantiateProvider<Options>(\n factory: PolyfillProvider<Options>,\n options: PluginOptions,\n missingDependencies,\n dirname,\n debugLog,\n babelApi,\n) {\n const {\n method,\n methodName,\n targets,\n debug,\n shouldInjectPolyfill,\n providerOptions,\n absoluteImports,\n } = resolveOptions<Options>(options, babelApi);\n\n const getUtils = createUtilsGetter(\n new ImportsCache(moduleName =>\n deps.resolve(dirname, moduleName, absoluteImports),\n ),\n );\n\n // eslint-disable-next-line prefer-const\n let include, exclude;\n let polyfillsSupport;\n let polyfillsNames;\n let filterPolyfills;\n\n const depsCache = new Map();\n\n const api: ProviderApi = {\n babel: babelApi,\n getUtils,\n method: options.method,\n targets,\n createMetaResolver,\n shouldInjectPolyfill(name) {\n if (polyfillsNames === undefined) {\n throw new Error(\n `Internal error in the ${factory.name} provider: ` +\n `shouldInjectPolyfill() can't be called during initialization.`,\n );\n }\n if (!polyfillsNames.has(name)) {\n console.warn(\n `Internal error in the ${providerName} provider: ` +\n `unknown polyfill \"${name}\".`,\n );\n }\n\n if (filterPolyfills && !filterPolyfills(name)) return false;\n\n let shouldInject = isRequired(name, targets, {\n compatData: polyfillsSupport,\n includes: include,\n excludes: exclude,\n });\n\n if (shouldInjectPolyfill) {\n shouldInject = shouldInjectPolyfill(name, shouldInject);\n if (typeof shouldInject !== \"boolean\") {\n throw new Error(`.shouldInjectPolyfill must return a boolean.`);\n }\n }\n\n return shouldInject;\n },\n debug(name) {\n debugLog().found = true;\n\n if (!debug || !name) return;\n\n if (debugLog().polyfills.has(providerName)) return;\n debugLog().polyfills.add(name);\n debugLog().polyfillsSupport ??= polyfillsSupport;\n },\n assertDependency(name, version = \"*\") {\n if (missingDependencies === false) return;\n if (absoluteImports) {\n // If absoluteImports is not false, we will try resolving\n // the dependency and throw if it's not possible. We can\n // skip the check here.\n return;\n }\n\n const dep = version === \"*\" ? name : `${name}@^${version}`;\n\n const found = missingDependencies.all\n ? false\n : mapGetOr(depsCache, `${name} :: ${dirname}`, () =>\n deps.has(dirname, name),\n );\n\n if (!found) {\n debugLog().missingDeps.add(dep);\n }\n },\n };\n\n const provider = factory(api, providerOptions, dirname);\n const providerName = provider.name || factory.name;\n\n if (typeof provider[methodName] !== \"function\") {\n throw new Error(\n `The \"${providerName}\" provider doesn't support the \"${method}\" polyfilling method.`,\n );\n }\n\n if (Array.isArray(provider.polyfills)) {\n polyfillsNames = new Set(provider.polyfills);\n filterPolyfills = provider.filterPolyfills;\n } else if (provider.polyfills) {\n polyfillsNames = new Set(Object.keys(provider.polyfills));\n polyfillsSupport = provider.polyfills;\n filterPolyfills = provider.filterPolyfills;\n } else {\n polyfillsNames = new Set();\n }\n\n ({ include, exclude } = validateIncludeExclude(\n providerName,\n polyfillsNames,\n providerOptions.include || [],\n providerOptions.exclude || [],\n ));\n\n return {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider(payload: MetaDescriptor, path: NodePath) {\n const utils = getUtils(path);\n provider[methodName](payload, utils, path);\n },\n };\n}\n\nexport default function definePolyfillProvider<Options>(\n factory: PolyfillProvider<Options>,\n) {\n return declare((babelApi, options: PluginOptions, dirname: string) => {\n babelApi.assertVersion(\"^7.0.0 || ^8.0.0-alpha.0\");\n const { traverse } = babelApi;\n\n let debugLog;\n\n const missingDependencies = applyMissingDependenciesDefaults(\n options,\n babelApi,\n );\n\n const { debug, method, targets, provider, providerName, callProvider } =\n instantiateProvider<Options>(\n factory,\n options,\n missingDependencies,\n dirname,\n () => debugLog,\n babelApi,\n );\n\n const createVisitor = method === \"entry-global\" ? v.entry : v.usage;\n\n const visitor = provider.visitor\n ? traverse.visitors.merge([createVisitor(callProvider), provider.visitor])\n : createVisitor(callProvider);\n\n if (debug && debug !== presetEnvSilentDebugHeader) {\n console.log(`${providerName}: \\`DEBUG\\` option`);\n console.log(`\\nUsing targets: ${stringifyTargetsMultiline(targets)}`);\n console.log(`\\nUsing polyfills with \\`${method}\\` method:`);\n }\n\n const { runtimeName } = provider;\n\n return {\n name: \"inject-polyfills\",\n visitor,\n\n pre(file) {\n if (runtimeName) {\n if (\n file.get(\"runtimeHelpersModuleName\") &&\n file.get(\"runtimeHelpersModuleName\") !== runtimeName\n ) {\n console.warn(\n `Two different polyfill providers` +\n ` (${file.get(\"runtimeHelpersModuleProvider\")}` +\n ` and ${providerName}) are trying to define two` +\n ` conflicting @babel/runtime alternatives:` +\n ` ${file.get(\"runtimeHelpersModuleName\")} and ${runtimeName}.` +\n ` The second one will be ignored.`,\n );\n } else {\n file.set(\"runtimeHelpersModuleName\", runtimeName);\n file.set(\"runtimeHelpersModuleProvider\", providerName);\n }\n }\n\n debugLog = {\n polyfills: new Set(),\n polyfillsSupport: undefined,\n found: false,\n providers: new Set(),\n missingDeps: new Set(),\n };\n\n provider.pre?.apply(this, arguments);\n },\n post() {\n provider.post?.apply(this, arguments);\n\n if (missingDependencies !== false) {\n if (missingDependencies.log === \"per-file\") {\n deps.logMissing(debugLog.missingDeps);\n } else {\n deps.laterLogMissing(debugLog.missingDeps);\n }\n }\n\n if (!debug) return;\n\n if (this.filename) console.log(`\\n[${this.filename}]`);\n\n if (debugLog.polyfills.size === 0) {\n console.log(\n method === \"entry-global\"\n ? debugLog.found\n ? `Based on your targets, the ${providerName} polyfill did not add any polyfill.`\n : `The entry point for the ${providerName} polyfill has not been found.`\n : `Based on your code and targets, the ${providerName} polyfill did not add any polyfill.`,\n );\n\n return;\n }\n\n if (method === \"entry-global\") {\n console.log(\n `The ${providerName} polyfill entry has been replaced with ` +\n `the following polyfills:`,\n );\n } else {\n console.log(\n `The ${providerName} polyfill added the following polyfills:`,\n );\n }\n\n for (const name of debugLog.polyfills) {\n if (debugLog.polyfillsSupport?.[name]) {\n const filteredTargets = getInclusionReasons(\n name,\n targets,\n debugLog.polyfillsSupport,\n );\n\n const formattedTargets = JSON.stringify(filteredTargets)\n .replace(/,/g, \", \")\n .replace(/^\\{\"/, '{ \"')\n .replace(/\"\\}$/, '\" }');\n\n console.log(` ${name} ${formattedTargets}`);\n } else {\n console.log(` ${name}`);\n }\n }\n },\n };\n });\n}\n\nfunction mapGetOr(map, key, getDefault) {\n let val = map.get(key);\n if (val === undefined) {\n val = getDefault();\n map.set(key, val);\n }\n return val;\n}\n\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n"],"names":["types","t","template","_babel","default","intersection","a","b","result","Set","forEach","v","has","add","object","key","Object","prototype","hasOwnProperty","call","getType","target","toString","slice","resolveId","path","isIdentifier","scope","hasBinding","node","name","isPure","deopt","evaluate","resolveKey","computed","isStringLiteral","value","parent","isMemberExpression","get","sym","resolveSource","obj","id","placement","isRegExpLiteral","isFunction","undefined","getImportSource","specifiers","length","source","getRequireSource","isExpressionStatement","expression","isCallExpression","callee","arguments","hoist","_blockHoist","createUtilsGetter","cache","prog","findParent","p","isProgram","injectGlobalImport","url","storeAnonymous","isScript","statement","ast","importDeclaration","injectNamedImport","hint","storeNamed","generateUidIdentifier","importSpecifier","injectDefaultImport","importDefaultSpecifier","ImportsCache","constructor","resolver","_imports","WeakMap","_anonymousImports","_lastImports","_resolver","programPath","getVal","_normalizeKey","imports","_ensure","sourceType","stringLiteral","_injectImport","Map","identifier","set","lastImport","newNodes","container","body","insertAfter","unshiftContainer","newNode","map","Collection","collection","presetEnvSilentDebugHeader","stringifyTargetsMultiline","targets","JSON","stringify","prettifyTargets","patternToRegExp","pattern","RegExp","buildUnusedError","label","unused","original","String","join","buldDuplicatesError","duplicates","size","Array","from","validateIncludeExclude","provider","polyfills","includePatterns","excludePatterns","current","filter","regexp","matched","polyfill","test","include","unusedInclude","exclude","unusedExclude","Error","applyMissingDependenciesDefaults","options","babelApi","missingDependencies","caller","log","inject","all","callProvider","property","kind","ReferencedIdentifier","getBindingIdentifier","MemberExpression","binding","getBinding","isImportNamespaceSpecifier","ObjectPattern","parentPath","isVariableDeclarator","isAssignmentExpression","grand","isNewExpression","prop","isObjectProperty","BinaryExpression","operator","ImportDeclaration","Program","bodyPath","resolve","dirname","moduleName","absoluteImports","basedir","logMissing","missingDeps","laterLogMissing","PossibleGlobalObjects","createMetaResolver","static","staticP","instance","instanceP","global","globalP","meta","desc","getTargets","_getTargets","resolveOptions","method","targetsOption","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","providerOptions","isEmpty","methodName","targetsObj","isArray","browsers","instantiateProvider","factory","debugLog","getUtils","deps","polyfillsSupport","polyfillsNames","filterPolyfills","depsCache","api","babel","console","warn","providerName","shouldInject","isRequired","compatData","includes","excludes","_debugLog","_debugLog$polyfillsSu","found","assertDependency","version","dep","mapGetOr","keys","payload","utils","definePolyfillProvider","declare","assertVersion","traverse","createVisitor","visitor","visitors","merge","runtimeName","pre","file","_provider$pre","providers","apply","post","_provider$post","filename","_debugLog$polyfillsSu2","filteredTargets","getInclusionReasons","formattedTargets","replace","getDefault","val"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs b/node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs index e28a7ed2..b6a4adfc 100644 --- a/node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs +++ b/node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs @@ -694,7 +694,7 @@ function instantiateProvider(factory, options, missingDependencies, dirname, deb } function definePolyfillProvider(factory) { return declare((babelApi, options, dirname) => { - babelApi.assertVersion(7); + babelApi.assertVersion("^7.0.0 || ^8.0.0-alpha.0"); const { traverse } = babelApi; diff --git a/node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs.map b/node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs.map index 3b4b001f..a02a5699 100644 --- a/node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs.map +++ b/node_modules/@babel/helper-define-polyfill-provider/esm/index.node.mjs.map @@ -1 +1 @@ -{"version":3,"file":"index.node.mjs","sources":["../src/utils.ts","../src/imports-cache.ts","../src/debug-utils.ts","../src/normalize-options.ts","../src/visitors/usage.ts","../src/visitors/entry.ts","../src/node/dependencies.ts","../src/meta-resolver.ts","../src/index.ts"],"sourcesContent":["import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type { Utils } from \"./types\";\nimport type ImportsCache from \"./imports-cache\";\n\nexport function intersection<T>(a: Set<T>, b: Set<T>): Set<T> {\n const result = new Set<T>();\n a.forEach(v => b.has(v) && result.add(v));\n return result;\n}\n\nexport function has(object: any, key: string) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\nfunction getType(target: any): string {\n return Object.prototype.toString.call(target).slice(8, -1);\n}\n\nfunction resolveId(path): string {\n if (\n path.isIdentifier() &&\n !path.scope.hasBinding(path.node.name, /* noGlobals */ true)\n ) {\n return path.node.name;\n }\n\n if (path.isPure()) {\n const { deopt } = path.evaluate();\n if (deopt && deopt.isIdentifier()) {\n return deopt.node.name;\n }\n }\n}\n\nexport function resolveKey(\n path: NodePath<t.Expression | t.PrivateName>,\n computed: boolean = false,\n) {\n const { scope } = path;\n if (path.isStringLiteral()) return path.node.value;\n const isIdentifier = path.isIdentifier();\n if (\n isIdentifier &&\n !(computed || (path.parent as t.MemberExpression).computed)\n ) {\n return path.node.name;\n }\n\n if (\n computed &&\n path.isMemberExpression() &&\n path.get(\"object\").isIdentifier({ name: \"Symbol\" }) &&\n !scope.hasBinding(\"Symbol\", /* noGlobals */ true)\n ) {\n const sym = resolveKey(path.get(\"property\"), path.node.computed);\n if (sym) return \"Symbol.\" + sym;\n }\n\n if (\n isIdentifier\n ? scope.hasBinding(path.node.name, /* noGlobals */ true)\n : path.isPure()\n ) {\n const { value } = path.evaluate();\n if (typeof value === \"string\") return value;\n }\n}\n\nexport function resolveSource(obj: NodePath): {\n id: string | null;\n placement: \"prototype\" | \"static\" | null;\n} {\n if (\n obj.isMemberExpression() &&\n obj.get(\"property\").isIdentifier({ name: \"prototype\" })\n ) {\n const id = resolveId(obj.get(\"object\"));\n\n if (id) {\n return { id, placement: \"prototype\" };\n }\n return { id: null, placement: null };\n }\n\n const id = resolveId(obj);\n if (id) {\n return { id, placement: \"static\" };\n }\n\n if (obj.isRegExpLiteral()) {\n return { id: \"RegExp\", placement: \"prototype\" };\n } else if (obj.isFunction()) {\n return { id: \"Function\", placement: \"prototype\" };\n } else if (obj.isPure()) {\n const { value } = obj.evaluate();\n if (value !== undefined) {\n return { id: getType(value), placement: \"prototype\" };\n }\n }\n\n return { id: null, placement: null };\n}\n\nexport function getImportSource({ node }: NodePath<t.ImportDeclaration>) {\n if (node.specifiers.length === 0) return node.source.value;\n}\n\nexport function getRequireSource({ node }: NodePath<t.Statement>) {\n if (!t.isExpressionStatement(node)) return;\n const { expression } = node;\n if (\n t.isCallExpression(expression) &&\n t.isIdentifier(expression.callee) &&\n expression.callee.name === \"require\" &&\n expression.arguments.length === 1 &&\n t.isStringLiteral(expression.arguments[0])\n ) {\n return expression.arguments[0].value;\n }\n}\n\nfunction hoist(node: t.Node) {\n // @ts-expect-error\n node._blockHoist = 3;\n return node;\n}\n\nexport function createUtilsGetter(cache: ImportsCache) {\n return (path: NodePath): Utils => {\n const prog = path.findParent(p => p.isProgram()) as NodePath<t.Program>;\n\n return {\n injectGlobalImport(url) {\n cache.storeAnonymous(prog, url, (isScript, source) => {\n return isScript\n ? template.statement.ast`require(${source})`\n : t.importDeclaration([], source);\n });\n },\n injectNamedImport(url, name, hint = name) {\n return cache.storeNamed(prog, url, name, (isScript, source, name) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript\n ? hoist(template.statement.ast`\n var ${id} = require(${source}).${name}\n `)\n : t.importDeclaration([t.importSpecifier(id, name)], source),\n name: id.name,\n };\n });\n },\n injectDefaultImport(url, hint = url) {\n return cache.storeNamed(prog, url, \"default\", (isScript, source) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript\n ? hoist(template.statement.ast`var ${id} = require(${source})`)\n : t.importDeclaration([t.importDefaultSpecifier(id)], source),\n name: id.name,\n };\n });\n },\n };\n };\n}\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\n\ntype StrMap<K> = Map<string, K>;\n\nexport default class ImportsCache {\n _imports: WeakMap<NodePath<t.Program>, StrMap<string>>;\n _anonymousImports: WeakMap<NodePath<t.Program>, Set<string>>;\n _lastImports: WeakMap<NodePath<t.Program>, NodePath<t.Node>>;\n _resolver: (url: string) => string;\n\n constructor(resolver: (url: string) => string) {\n this._imports = new WeakMap();\n this._anonymousImports = new WeakMap();\n this._lastImports = new WeakMap();\n this._resolver = resolver;\n }\n\n storeAnonymous(\n programPath: NodePath<t.Program>,\n url: string,\n // eslint-disable-next-line no-undef\n getVal: (isScript: boolean, source: t.StringLiteral) => t.Node,\n ) {\n const key = this._normalizeKey(programPath, url);\n const imports = this._ensure<Set<string>>(\n this._anonymousImports,\n programPath,\n Set,\n );\n\n if (imports.has(key)) return;\n\n const node = getVal(\n programPath.node.sourceType === \"script\",\n t.stringLiteral(this._resolver(url)),\n );\n imports.add(key);\n this._injectImport(programPath, node);\n }\n\n storeNamed(\n programPath: NodePath<t.Program>,\n url: string,\n name: string,\n getVal: (\n isScript: boolean,\n // eslint-disable-next-line no-undef\n source: t.StringLiteral,\n // eslint-disable-next-line no-undef\n name: t.Identifier,\n ) => { node: t.Node; name: string },\n ) {\n const key = this._normalizeKey(programPath, url, name);\n const imports = this._ensure<Map<string, any>>(\n this._imports,\n programPath,\n Map,\n );\n\n if (!imports.has(key)) {\n const { node, name: id } = getVal(\n programPath.node.sourceType === \"script\",\n t.stringLiteral(this._resolver(url)),\n t.identifier(name),\n );\n imports.set(key, id);\n this._injectImport(programPath, node);\n }\n\n return t.identifier(imports.get(key));\n }\n\n _injectImport(programPath: NodePath<t.Program>, node: t.Node) {\n const lastImport = this._lastImports.get(programPath);\n let newNodes: [NodePath];\n if (\n lastImport &&\n lastImport.node &&\n // Sometimes the AST is modified and the \"last import\"\n // we have has been replaced\n lastImport.parent === programPath.node &&\n lastImport.container === programPath.node.body\n ) {\n newNodes = lastImport.insertAfter(node);\n } else {\n newNodes = programPath.unshiftContainer(\"body\", node);\n }\n const newNode = newNodes[newNodes.length - 1];\n this._lastImports.set(programPath, newNode);\n\n /*\n let lastImport;\n\n programPath.get(\"body\").forEach(path => {\n if (path.isImportDeclaration()) lastImport = path;\n if (\n path.isExpressionStatement() &&\n isRequireCall(path.get(\"expression\"))\n ) {\n lastImport = path;\n }\n if (\n path.isVariableDeclaration() &&\n path.get(\"declarations\").length === 1 &&\n (isRequireCall(path.get(\"declarations.0.init\")) ||\n (path.get(\"declarations.0.init\").isMemberExpression() &&\n isRequireCall(path.get(\"declarations.0.init.object\"))))\n ) {\n lastImport = path;\n }\n });*/\n }\n\n _ensure<C extends Map<string, any> | Set<string>>(\n map: WeakMap<NodePath<t.Program>, C>,\n programPath: NodePath<t.Program>,\n Collection: { new (...args: any): C },\n ): C {\n let collection = map.get(programPath);\n if (!collection) {\n collection = new Collection();\n map.set(programPath, collection);\n }\n return collection;\n }\n\n _normalizeKey(\n programPath: NodePath<t.Program>,\n url: string,\n name: string = \"\",\n ): string {\n const { sourceType } = programPath.node;\n\n // If we rely on the imported binding (the \"name\" parameter), we also need to cache\n // based on the sourceType. This is because the module transforms change the names\n // of the import variables.\n return `${name && sourceType}::${url}::${name}`;\n }\n}\n","import { prettifyTargets } from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"./types\";\n\nexport const presetEnvSilentDebugHeader =\n \"#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets\";\n\nexport function stringifyTargetsMultiline(targets: Targets): string {\n return JSON.stringify(prettifyTargets(targets), null, 2);\n}\n\nexport function stringifyTargets(targets: Targets): string {\n return JSON.stringify(targets)\n .replace(/,/g, \", \")\n .replace(/^\\{\"/, '{ \"')\n .replace(/\"\\}$/, '\" }');\n}\n","import { intersection } from \"./utils\";\nimport type {\n Pattern,\n PluginOptions,\n MissingDependenciesOption,\n} from \"./types\";\n\nfunction patternToRegExp(pattern: Pattern): RegExp | null {\n if (pattern instanceof RegExp) return pattern;\n\n try {\n return new RegExp(`^${pattern}$`);\n } catch {\n return null;\n }\n}\n\nfunction buildUnusedError(label, unused) {\n if (!unused.length) return \"\";\n return (\n ` - The following \"${label}\" patterns didn't match any polyfill:\\n` +\n unused.map(original => ` ${String(original)}\\n`).join(\"\")\n );\n}\n\nfunction buldDuplicatesError(duplicates) {\n if (!duplicates.size) return \"\";\n return (\n ` - The following polyfills were matched both by \"include\" and \"exclude\" patterns:\\n` +\n Array.from(duplicates, name => ` ${name}\\n`).join(\"\")\n );\n}\n\nexport function validateIncludeExclude(\n provider: string,\n polyfills: Set<string>,\n includePatterns: Pattern[],\n excludePatterns: Pattern[],\n) {\n let current;\n const filter = pattern => {\n const regexp = patternToRegExp(pattern);\n if (!regexp) return false;\n\n let matched = false;\n for (const polyfill of polyfills) {\n if (regexp.test(polyfill)) {\n matched = true;\n current.add(polyfill);\n }\n }\n return !matched;\n };\n\n // prettier-ignore\n const include = current = new Set<string> ();\n const unusedInclude = Array.from(includePatterns).filter(filter);\n\n // prettier-ignore\n const exclude = current = new Set<string> ();\n const unusedExclude = Array.from(excludePatterns).filter(filter);\n\n const duplicates = intersection(include, exclude);\n\n if (\n duplicates.size > 0 ||\n unusedInclude.length > 0 ||\n unusedExclude.length > 0\n ) {\n throw new Error(\n `Error while validating the \"${provider}\" provider options:\\n` +\n buildUnusedError(\"include\", unusedInclude) +\n buildUnusedError(\"exclude\", unusedExclude) +\n buldDuplicatesError(duplicates),\n );\n }\n\n return { include, exclude };\n}\n\nexport function applyMissingDependenciesDefaults(\n options: PluginOptions,\n babelApi: any,\n): MissingDependenciesOption {\n const { missingDependencies = {} } = options;\n if (missingDependencies === false) return false;\n\n const caller = babelApi.caller(caller => caller?.name);\n\n const {\n log = \"deferred\",\n inject = caller === \"rollup-plugin-babel\" ? \"throw\" : \"import\",\n all = false,\n } = missingDependencies;\n\n return { log, inject, all };\n}\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport type { MetaDescriptor } from \"../types\";\n\nimport { resolveKey, resolveSource } from \"../utils\";\n\nexport default (\n callProvider: (payload: MetaDescriptor, path: NodePath) => void,\n) => {\n function property(object, key, placement, path) {\n return callProvider({ kind: \"property\", object, key, placement }, path);\n }\n\n return {\n // Symbol(), new Promise\n ReferencedIdentifier(path: NodePath<t.Identifier>) {\n const {\n node: { name },\n scope,\n } = path;\n if (scope.getBindingIdentifier(name)) return;\n\n callProvider({ kind: \"global\", name }, path);\n },\n\n MemberExpression(path: NodePath<t.MemberExpression>) {\n const key = resolveKey(path.get(\"property\"), path.node.computed);\n if (!key || key === \"prototype\") return;\n\n const object = path.get(\"object\");\n if (object.isIdentifier()) {\n const binding = object.scope.getBinding(object.node.name);\n if (binding && binding.path.isImportNamespaceSpecifier()) return;\n }\n\n const source = resolveSource(object);\n return property(source.id, key, source.placement, path);\n },\n\n ObjectPattern(path: NodePath<t.ObjectPattern>) {\n const { parentPath, parent } = path;\n let obj;\n\n // const { keys, values } = Object\n if (parentPath.isVariableDeclarator()) {\n obj = parentPath.get(\"init\");\n // ({ keys, values } = Object)\n } else if (parentPath.isAssignmentExpression()) {\n obj = parentPath.get(\"right\");\n // !function ({ keys, values }) {...} (Object)\n // resolution does not work after properties transform :-(\n } else if (parentPath.isFunction()) {\n const grand = parentPath.parentPath;\n if (grand.isCallExpression() || grand.isNewExpression()) {\n if (grand.node.callee === parent) {\n obj = grand.get(\"arguments\")[path.key];\n }\n }\n }\n\n let id = null;\n let placement = null;\n if (obj) ({ id, placement } = resolveSource(obj));\n\n for (const prop of path.get(\"properties\")) {\n if (prop.isObjectProperty()) {\n const key = resolveKey(prop.get(\"key\"));\n if (key) property(id, key, placement, prop);\n }\n }\n },\n\n BinaryExpression(path: NodePath<t.BinaryExpression>) {\n if (path.node.operator !== \"in\") return;\n\n const source = resolveSource(path.get(\"right\"));\n const key = resolveKey(path.get(\"left\"), true);\n\n if (!key) return;\n\n callProvider(\n {\n kind: \"in\",\n object: source.id,\n key,\n placement: source.placement,\n },\n path,\n );\n },\n };\n};\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport type { MetaDescriptor } from \"../types\";\n\nimport { getImportSource, getRequireSource } from \"../utils\";\n\nexport default (\n callProvider: (payload: MetaDescriptor, path: NodePath) => void,\n) => ({\n ImportDeclaration(path: NodePath<t.ImportDeclaration>) {\n const source = getImportSource(path);\n if (!source) return;\n callProvider({ kind: \"import\", source }, path);\n },\n Program(path: NodePath<t.Program>) {\n path.get(\"body\").forEach(bodyPath => {\n const source = getRequireSource(bodyPath);\n if (!source) return;\n callProvider({ kind: \"import\", source }, bodyPath);\n });\n },\n});\n","import path from \"path\";\nimport debounce from \"lodash.debounce\";\nimport requireResolve from \"resolve\";\n\nconst nativeRequireResolve = parseFloat(process.versions.node) >= 8.9;\n\nimport { createRequire } from \"module\";\nconst require = createRequire(import /*::(_)*/.meta.url); // eslint-disable-line\n\nfunction myResolve(name: string, basedir: string) {\n if (nativeRequireResolve) {\n return require\n .resolve(name, {\n paths: [basedir],\n })\n .replace(/\\\\/g, \"/\");\n } else {\n return requireResolve.sync(name, { basedir }).replace(/\\\\/g, \"/\");\n }\n}\n\nexport function resolve(\n dirname: string,\n moduleName: string,\n absoluteImports: boolean | string,\n): string {\n if (absoluteImports === false) return moduleName;\n\n let basedir = dirname;\n if (typeof absoluteImports === \"string\") {\n basedir = path.resolve(basedir, absoluteImports);\n }\n\n try {\n return myResolve(moduleName, basedir);\n } catch (err) {\n if (err.code !== \"MODULE_NOT_FOUND\") throw err;\n\n throw Object.assign(\n new Error(`Failed to resolve \"${moduleName}\" relative to \"${dirname}\"`),\n {\n code: \"BABEL_POLYFILL_NOT_FOUND\",\n polyfill: moduleName,\n dirname,\n },\n );\n }\n}\n\nexport function has(basedir: string, name: string) {\n try {\n myResolve(name, basedir);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function logMissing(missingDeps: Set<string>) {\n if (missingDeps.size === 0) return;\n\n const deps = Array.from(missingDeps).sort().join(\" \");\n\n console.warn(\n \"\\nSome polyfills have been added but are not present in your dependencies.\\n\" +\n \"Please run one of the following commands:\\n\" +\n `\\tnpm install --save ${deps}\\n` +\n `\\tyarn add ${deps}\\n`,\n );\n\n process.exitCode = 1;\n}\n\nlet allMissingDeps = new Set<string>();\n\nconst laterLogMissingDependencies = debounce(() => {\n logMissing(allMissingDeps);\n allMissingDeps = new Set<string>();\n}, 100);\n\nexport function laterLogMissing(missingDeps: Set<string>) {\n if (missingDeps.size === 0) return;\n\n missingDeps.forEach(name => allMissingDeps.add(name));\n laterLogMissingDependencies();\n}\n","import type {\n MetaDescriptor,\n ResolverPolyfills,\n ResolvedPolyfill,\n} from \"./types\";\n\nimport { has } from \"./utils\";\n\ntype ResolverFn<T> = (meta: MetaDescriptor) => void | ResolvedPolyfill<T>;\n\nconst PossibleGlobalObjects = new Set<string>([\n \"global\",\n \"globalThis\",\n \"self\",\n \"window\",\n]);\n\nexport default function createMetaResolver<T>(\n polyfills: ResolverPolyfills<T>,\n): ResolverFn<T> {\n const { static: staticP, instance: instanceP, global: globalP } = polyfills;\n\n return meta => {\n if (meta.kind === \"global\" && globalP && has(globalP, meta.name)) {\n return { kind: \"global\", desc: globalP[meta.name], name: meta.name };\n }\n\n if (meta.kind === \"property\" || meta.kind === \"in\") {\n const { placement, object, key } = meta;\n\n if (object && placement === \"static\") {\n if (globalP && PossibleGlobalObjects.has(object) && has(globalP, key)) {\n return { kind: \"global\", desc: globalP[key], name: key };\n }\n\n if (staticP && has(staticP, object) && has(staticP[object], key)) {\n return {\n kind: \"static\",\n desc: staticP[object][key],\n name: `${object}$${key}`,\n };\n }\n }\n\n if (instanceP && has(instanceP, key)) {\n return { kind: \"instance\", desc: instanceP[key], name: `${key}` };\n }\n }\n };\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport _getTargets, {\n isRequired,\n getInclusionReasons,\n} from \"@babel/helper-compilation-targets\";\nconst getTargets = _getTargets.default || _getTargets;\n\nimport { createUtilsGetter } from \"./utils\";\nimport ImportsCache from \"./imports-cache\";\nimport {\n stringifyTargetsMultiline,\n presetEnvSilentDebugHeader,\n} from \"./debug-utils\";\nimport {\n validateIncludeExclude,\n applyMissingDependenciesDefaults,\n} from \"./normalize-options\";\n\nimport type {\n ProviderApi,\n MethodString,\n Targets,\n MetaDescriptor,\n PolyfillProvider,\n PluginOptions,\n ProviderOptions,\n} from \"./types\";\n\nimport * as v from \"./visitors\";\nimport * as deps from \"./node/dependencies\";\n\nimport createMetaResolver from \"./meta-resolver\";\n\nexport type { PolyfillProvider, MetaDescriptor, Utils, Targets } from \"./types\";\n\nfunction resolveOptions<Options>(\n options: PluginOptions,\n babelApi,\n): {\n method: MethodString;\n methodName: \"usageGlobal\" | \"entryGlobal\" | \"usagePure\";\n targets: Targets;\n debug: boolean | typeof presetEnvSilentDebugHeader;\n shouldInjectPolyfill:\n | ((name: string, shouldInject: boolean) => boolean)\n | undefined;\n providerOptions: ProviderOptions<Options>;\n absoluteImports: string | boolean;\n} {\n const {\n method,\n targets: targetsOption,\n ignoreBrowserslistConfig,\n configPath,\n debug,\n shouldInjectPolyfill,\n absoluteImports,\n ...providerOptions\n } = options;\n\n if (isEmpty(options)) {\n throw new Error(\n `\\\nThis plugin requires options, for example:\n {\n \"plugins\": [\n [\"<plugin name>\", { method: \"usage-pure\" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`,\n );\n }\n\n let methodName;\n if (method === \"usage-global\") methodName = \"usageGlobal\";\n else if (method === \"entry-global\") methodName = \"entryGlobal\";\n else if (method === \"usage-pure\") methodName = \"usagePure\";\n else if (typeof method !== \"string\") {\n throw new Error(\".method must be a string\");\n } else {\n throw new Error(\n `.method must be one of \"entry-global\", \"usage-global\"` +\n ` or \"usage-pure\" (received ${JSON.stringify(method)})`,\n );\n }\n\n if (typeof shouldInjectPolyfill === \"function\") {\n if (options.include || options.exclude) {\n throw new Error(\n `.include and .exclude are not supported when using the` +\n ` .shouldInjectPolyfill function.`,\n );\n }\n } else if (shouldInjectPolyfill != null) {\n throw new Error(\n `.shouldInjectPolyfill must be a function, or undefined` +\n ` (received ${JSON.stringify(shouldInjectPolyfill)})`,\n );\n }\n\n if (\n absoluteImports != null &&\n typeof absoluteImports !== \"boolean\" &&\n typeof absoluteImports !== \"string\"\n ) {\n throw new Error(\n `.absoluteImports must be a boolean, a string, or undefined` +\n ` (received ${JSON.stringify(absoluteImports)})`,\n );\n }\n\n let targets;\n\n if (\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n targetsOption ||\n configPath ||\n ignoreBrowserslistConfig\n ) {\n const targetsObj =\n typeof targetsOption === \"string\" || Array.isArray(targetsOption)\n ? { browsers: targetsOption }\n : targetsOption;\n\n targets = getTargets(targetsObj, {\n ignoreBrowserslistConfig,\n configPath,\n });\n } else {\n targets = babelApi.targets();\n }\n\n return {\n method,\n methodName,\n targets,\n absoluteImports: absoluteImports ?? false,\n shouldInjectPolyfill,\n debug: !!debug,\n providerOptions: providerOptions as any as ProviderOptions<Options>,\n };\n}\n\nfunction instantiateProvider<Options>(\n factory: PolyfillProvider<Options>,\n options: PluginOptions,\n missingDependencies,\n dirname,\n debugLog,\n babelApi,\n) {\n const {\n method,\n methodName,\n targets,\n debug,\n shouldInjectPolyfill,\n providerOptions,\n absoluteImports,\n } = resolveOptions<Options>(options, babelApi);\n\n const getUtils = createUtilsGetter(\n new ImportsCache(moduleName =>\n deps.resolve(dirname, moduleName, absoluteImports),\n ),\n );\n\n // eslint-disable-next-line prefer-const\n let include, exclude;\n let polyfillsSupport;\n let polyfillsNames;\n let filterPolyfills;\n\n const depsCache = new Map();\n\n const api: ProviderApi = {\n babel: babelApi,\n getUtils,\n method: options.method,\n targets,\n createMetaResolver,\n shouldInjectPolyfill(name) {\n if (polyfillsNames === undefined) {\n throw new Error(\n `Internal error in the ${factory.name} provider: ` +\n `shouldInjectPolyfill() can't be called during initialization.`,\n );\n }\n if (!polyfillsNames.has(name)) {\n console.warn(\n `Internal error in the ${providerName} provider: ` +\n `unknown polyfill \"${name}\".`,\n );\n }\n\n if (filterPolyfills && !filterPolyfills(name)) return false;\n\n let shouldInject = isRequired(name, targets, {\n compatData: polyfillsSupport,\n includes: include,\n excludes: exclude,\n });\n\n if (shouldInjectPolyfill) {\n shouldInject = shouldInjectPolyfill(name, shouldInject);\n if (typeof shouldInject !== \"boolean\") {\n throw new Error(`.shouldInjectPolyfill must return a boolean.`);\n }\n }\n\n return shouldInject;\n },\n debug(name) {\n debugLog().found = true;\n\n if (!debug || !name) return;\n\n if (debugLog().polyfills.has(providerName)) return;\n debugLog().polyfills.add(name);\n debugLog().polyfillsSupport ??= polyfillsSupport;\n },\n assertDependency(name, version = \"*\") {\n if (missingDependencies === false) return;\n if (absoluteImports) {\n // If absoluteImports is not false, we will try resolving\n // the dependency and throw if it's not possible. We can\n // skip the check here.\n return;\n }\n\n const dep = version === \"*\" ? name : `${name}@^${version}`;\n\n const found = missingDependencies.all\n ? false\n : mapGetOr(depsCache, `${name} :: ${dirname}`, () =>\n deps.has(dirname, name),\n );\n\n if (!found) {\n debugLog().missingDeps.add(dep);\n }\n },\n };\n\n const provider = factory(api, providerOptions, dirname);\n const providerName = provider.name || factory.name;\n\n if (typeof provider[methodName] !== \"function\") {\n throw new Error(\n `The \"${providerName}\" provider doesn't support the \"${method}\" polyfilling method.`,\n );\n }\n\n if (Array.isArray(provider.polyfills)) {\n polyfillsNames = new Set(provider.polyfills);\n filterPolyfills = provider.filterPolyfills;\n } else if (provider.polyfills) {\n polyfillsNames = new Set(Object.keys(provider.polyfills));\n polyfillsSupport = provider.polyfills;\n filterPolyfills = provider.filterPolyfills;\n } else {\n polyfillsNames = new Set();\n }\n\n ({ include, exclude } = validateIncludeExclude(\n providerName,\n polyfillsNames,\n providerOptions.include || [],\n providerOptions.exclude || [],\n ));\n\n return {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider(payload: MetaDescriptor, path: NodePath) {\n const utils = getUtils(path);\n provider[methodName](payload, utils, path);\n },\n };\n}\n\nexport default function definePolyfillProvider<Options>(\n factory: PolyfillProvider<Options>,\n) {\n return declare((babelApi, options: PluginOptions, dirname: string) => {\n babelApi.assertVersion(7);\n const { traverse } = babelApi;\n\n let debugLog;\n\n const missingDependencies = applyMissingDependenciesDefaults(\n options,\n babelApi,\n );\n\n const { debug, method, targets, provider, providerName, callProvider } =\n instantiateProvider<Options>(\n factory,\n options,\n missingDependencies,\n dirname,\n () => debugLog,\n babelApi,\n );\n\n const createVisitor = method === \"entry-global\" ? v.entry : v.usage;\n\n const visitor = provider.visitor\n ? traverse.visitors.merge([createVisitor(callProvider), provider.visitor])\n : createVisitor(callProvider);\n\n if (debug && debug !== presetEnvSilentDebugHeader) {\n console.log(`${providerName}: \\`DEBUG\\` option`);\n console.log(`\\nUsing targets: ${stringifyTargetsMultiline(targets)}`);\n console.log(`\\nUsing polyfills with \\`${method}\\` method:`);\n }\n\n const { runtimeName } = provider;\n\n return {\n name: \"inject-polyfills\",\n visitor,\n\n pre(file) {\n if (runtimeName) {\n if (\n file.get(\"runtimeHelpersModuleName\") &&\n file.get(\"runtimeHelpersModuleName\") !== runtimeName\n ) {\n console.warn(\n `Two different polyfill providers` +\n ` (${file.get(\"runtimeHelpersModuleProvider\")}` +\n ` and ${providerName}) are trying to define two` +\n ` conflicting @babel/runtime alternatives:` +\n ` ${file.get(\"runtimeHelpersModuleName\")} and ${runtimeName}.` +\n ` The second one will be ignored.`,\n );\n } else {\n file.set(\"runtimeHelpersModuleName\", runtimeName);\n file.set(\"runtimeHelpersModuleProvider\", providerName);\n }\n }\n\n debugLog = {\n polyfills: new Set(),\n polyfillsSupport: undefined,\n found: false,\n providers: new Set(),\n missingDeps: new Set(),\n };\n\n provider.pre?.apply(this, arguments);\n },\n post() {\n provider.post?.apply(this, arguments);\n\n if (missingDependencies !== false) {\n if (missingDependencies.log === \"per-file\") {\n deps.logMissing(debugLog.missingDeps);\n } else {\n deps.laterLogMissing(debugLog.missingDeps);\n }\n }\n\n if (!debug) return;\n\n if (this.filename) console.log(`\\n[${this.filename}]`);\n\n if (debugLog.polyfills.size === 0) {\n console.log(\n method === \"entry-global\"\n ? debugLog.found\n ? `Based on your targets, the ${providerName} polyfill did not add any polyfill.`\n : `The entry point for the ${providerName} polyfill has not been found.`\n : `Based on your code and targets, the ${providerName} polyfill did not add any polyfill.`,\n );\n\n return;\n }\n\n if (method === \"entry-global\") {\n console.log(\n `The ${providerName} polyfill entry has been replaced with ` +\n `the following polyfills:`,\n );\n } else {\n console.log(\n `The ${providerName} polyfill added the following polyfills:`,\n );\n }\n\n for (const name of debugLog.polyfills) {\n if (debugLog.polyfillsSupport?.[name]) {\n const filteredTargets = getInclusionReasons(\n name,\n targets,\n debugLog.polyfillsSupport,\n );\n\n const formattedTargets = JSON.stringify(filteredTargets)\n .replace(/,/g, \", \")\n .replace(/^\\{\"/, '{ \"')\n .replace(/\"\\}$/, '\" }');\n\n console.log(` ${name} ${formattedTargets}`);\n } else {\n console.log(` ${name}`);\n }\n }\n },\n };\n });\n}\n\nfunction mapGetOr(map, key, getDefault) {\n let val = map.get(key);\n if (val === undefined) {\n val = getDefault();\n map.set(key, val);\n }\n return val;\n}\n\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n"],"names":["types","t","template","_babel","default","intersection","a","b","result","Set","forEach","v","has","add","object","key","Object","prototype","hasOwnProperty","call","getType","target","toString","slice","resolveId","path","isIdentifier","scope","hasBinding","node","name","isPure","deopt","evaluate","resolveKey","computed","isStringLiteral","value","parent","isMemberExpression","get","sym","resolveSource","obj","id","placement","isRegExpLiteral","isFunction","undefined","getImportSource","specifiers","length","source","getRequireSource","isExpressionStatement","expression","isCallExpression","callee","arguments","hoist","_blockHoist","createUtilsGetter","cache","prog","findParent","p","isProgram","injectGlobalImport","url","storeAnonymous","isScript","statement","ast","importDeclaration","injectNamedImport","hint","storeNamed","generateUidIdentifier","importSpecifier","injectDefaultImport","importDefaultSpecifier","ImportsCache","constructor","resolver","_imports","WeakMap","_anonymousImports","_lastImports","_resolver","programPath","getVal","_normalizeKey","imports","_ensure","sourceType","stringLiteral","_injectImport","Map","identifier","set","lastImport","newNodes","container","body","insertAfter","unshiftContainer","newNode","map","Collection","collection","presetEnvSilentDebugHeader","stringifyTargetsMultiline","targets","JSON","stringify","prettifyTargets","patternToRegExp","pattern","RegExp","buildUnusedError","label","unused","original","String","join","buldDuplicatesError","duplicates","size","Array","from","validateIncludeExclude","provider","polyfills","includePatterns","excludePatterns","current","filter","regexp","matched","polyfill","test","include","unusedInclude","exclude","unusedExclude","Error","applyMissingDependenciesDefaults","options","babelApi","missingDependencies","caller","log","inject","all","callProvider","property","kind","ReferencedIdentifier","getBindingIdentifier","MemberExpression","binding","getBinding","isImportNamespaceSpecifier","ObjectPattern","parentPath","isVariableDeclarator","isAssignmentExpression","grand","isNewExpression","prop","isObjectProperty","BinaryExpression","operator","ImportDeclaration","Program","bodyPath","nativeRequireResolve","parseFloat","process","versions","require","createRequire","import","meta","myResolve","basedir","resolve","paths","replace","requireResolve","sync","dirname","moduleName","absoluteImports","err","code","assign","logMissing","missingDeps","deps","sort","console","warn","exitCode","allMissingDeps","laterLogMissingDependencies","debounce","laterLogMissing","PossibleGlobalObjects","createMetaResolver","static","staticP","instance","instanceP","global","globalP","desc","getTargets","_getTargets","resolveOptions","method","targetsOption","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","providerOptions","isEmpty","methodName","targetsObj","isArray","browsers","instantiateProvider","factory","debugLog","getUtils","polyfillsSupport","polyfillsNames","filterPolyfills","depsCache","api","babel","providerName","shouldInject","isRequired","compatData","includes","excludes","_debugLog","_debugLog$polyfillsSu","found","assertDependency","version","dep","mapGetOr","keys","payload","utils","definePolyfillProvider","declare","assertVersion","traverse","createVisitor","visitor","visitors","merge","runtimeName","pre","file","_provider$pre","providers","apply","post","_provider$post","filename","_debugLog$polyfillsSu2","filteredTargets","getInclusionReasons","formattedTargets","getDefault","val"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"index.node.mjs","sources":["../src/utils.ts","../src/imports-cache.ts","../src/debug-utils.ts","../src/normalize-options.ts","../src/visitors/usage.ts","../src/visitors/entry.ts","../src/node/dependencies.ts","../src/meta-resolver.ts","../src/index.ts"],"sourcesContent":["import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type { Utils } from \"./types\";\nimport type ImportsCache from \"./imports-cache\";\n\nexport function intersection<T>(a: Set<T>, b: Set<T>): Set<T> {\n const result = new Set<T>();\n a.forEach(v => b.has(v) && result.add(v));\n return result;\n}\n\nexport function has(object: any, key: string) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\nfunction getType(target: any): string {\n return Object.prototype.toString.call(target).slice(8, -1);\n}\n\nfunction resolveId(path): string {\n if (\n path.isIdentifier() &&\n !path.scope.hasBinding(path.node.name, /* noGlobals */ true)\n ) {\n return path.node.name;\n }\n\n if (path.isPure()) {\n const { deopt } = path.evaluate();\n if (deopt && deopt.isIdentifier()) {\n return deopt.node.name;\n }\n }\n}\n\nexport function resolveKey(\n path: NodePath<t.Expression | t.PrivateName>,\n computed: boolean = false,\n) {\n const { scope } = path;\n if (path.isStringLiteral()) return path.node.value;\n const isIdentifier = path.isIdentifier();\n if (\n isIdentifier &&\n !(computed || (path.parent as t.MemberExpression).computed)\n ) {\n return path.node.name;\n }\n\n if (\n computed &&\n path.isMemberExpression() &&\n path.get(\"object\").isIdentifier({ name: \"Symbol\" }) &&\n !scope.hasBinding(\"Symbol\", /* noGlobals */ true)\n ) {\n const sym = resolveKey(path.get(\"property\"), path.node.computed);\n if (sym) return \"Symbol.\" + sym;\n }\n\n if (\n isIdentifier\n ? scope.hasBinding(path.node.name, /* noGlobals */ true)\n : path.isPure()\n ) {\n const { value } = path.evaluate();\n if (typeof value === \"string\") return value;\n }\n}\n\nexport function resolveSource(obj: NodePath): {\n id: string | null;\n placement: \"prototype\" | \"static\" | null;\n} {\n if (\n obj.isMemberExpression() &&\n obj.get(\"property\").isIdentifier({ name: \"prototype\" })\n ) {\n const id = resolveId(obj.get(\"object\"));\n\n if (id) {\n return { id, placement: \"prototype\" };\n }\n return { id: null, placement: null };\n }\n\n const id = resolveId(obj);\n if (id) {\n return { id, placement: \"static\" };\n }\n\n if (obj.isRegExpLiteral()) {\n return { id: \"RegExp\", placement: \"prototype\" };\n } else if (obj.isFunction()) {\n return { id: \"Function\", placement: \"prototype\" };\n } else if (obj.isPure()) {\n const { value } = obj.evaluate();\n if (value !== undefined) {\n return { id: getType(value), placement: \"prototype\" };\n }\n }\n\n return { id: null, placement: null };\n}\n\nexport function getImportSource({ node }: NodePath<t.ImportDeclaration>) {\n if (node.specifiers.length === 0) return node.source.value;\n}\n\nexport function getRequireSource({ node }: NodePath<t.Statement>) {\n if (!t.isExpressionStatement(node)) return;\n const { expression } = node;\n if (\n t.isCallExpression(expression) &&\n t.isIdentifier(expression.callee) &&\n expression.callee.name === \"require\" &&\n expression.arguments.length === 1 &&\n t.isStringLiteral(expression.arguments[0])\n ) {\n return expression.arguments[0].value;\n }\n}\n\nfunction hoist(node: t.Node) {\n // @ts-expect-error\n node._blockHoist = 3;\n return node;\n}\n\nexport function createUtilsGetter(cache: ImportsCache) {\n return (path: NodePath): Utils => {\n const prog = path.findParent(p => p.isProgram()) as NodePath<t.Program>;\n\n return {\n injectGlobalImport(url) {\n cache.storeAnonymous(prog, url, (isScript, source) => {\n return isScript\n ? template.statement.ast`require(${source})`\n : t.importDeclaration([], source);\n });\n },\n injectNamedImport(url, name, hint = name) {\n return cache.storeNamed(prog, url, name, (isScript, source, name) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript\n ? hoist(template.statement.ast`\n var ${id} = require(${source}).${name}\n `)\n : t.importDeclaration([t.importSpecifier(id, name)], source),\n name: id.name,\n };\n });\n },\n injectDefaultImport(url, hint = url) {\n return cache.storeNamed(prog, url, \"default\", (isScript, source) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript\n ? hoist(template.statement.ast`var ${id} = require(${source})`)\n : t.importDeclaration([t.importDefaultSpecifier(id)], source),\n name: id.name,\n };\n });\n },\n };\n };\n}\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\n\ntype StrMap<K> = Map<string, K>;\n\nexport default class ImportsCache {\n _imports: WeakMap<NodePath<t.Program>, StrMap<string>>;\n _anonymousImports: WeakMap<NodePath<t.Program>, Set<string>>;\n _lastImports: WeakMap<NodePath<t.Program>, NodePath<t.Node>>;\n _resolver: (url: string) => string;\n\n constructor(resolver: (url: string) => string) {\n this._imports = new WeakMap();\n this._anonymousImports = new WeakMap();\n this._lastImports = new WeakMap();\n this._resolver = resolver;\n }\n\n storeAnonymous(\n programPath: NodePath<t.Program>,\n url: string,\n // eslint-disable-next-line no-undef\n getVal: (isScript: boolean, source: t.StringLiteral) => t.Node,\n ) {\n const key = this._normalizeKey(programPath, url);\n const imports = this._ensure<Set<string>>(\n this._anonymousImports,\n programPath,\n Set,\n );\n\n if (imports.has(key)) return;\n\n const node = getVal(\n programPath.node.sourceType === \"script\",\n t.stringLiteral(this._resolver(url)),\n );\n imports.add(key);\n this._injectImport(programPath, node);\n }\n\n storeNamed(\n programPath: NodePath<t.Program>,\n url: string,\n name: string,\n getVal: (\n isScript: boolean,\n // eslint-disable-next-line no-undef\n source: t.StringLiteral,\n // eslint-disable-next-line no-undef\n name: t.Identifier,\n ) => { node: t.Node; name: string },\n ) {\n const key = this._normalizeKey(programPath, url, name);\n const imports = this._ensure<Map<string, any>>(\n this._imports,\n programPath,\n Map,\n );\n\n if (!imports.has(key)) {\n const { node, name: id } = getVal(\n programPath.node.sourceType === \"script\",\n t.stringLiteral(this._resolver(url)),\n t.identifier(name),\n );\n imports.set(key, id);\n this._injectImport(programPath, node);\n }\n\n return t.identifier(imports.get(key));\n }\n\n _injectImport(programPath: NodePath<t.Program>, node: t.Node) {\n const lastImport = this._lastImports.get(programPath);\n let newNodes: [NodePath];\n if (\n lastImport &&\n lastImport.node &&\n // Sometimes the AST is modified and the \"last import\"\n // we have has been replaced\n lastImport.parent === programPath.node &&\n lastImport.container === programPath.node.body\n ) {\n newNodes = lastImport.insertAfter(node);\n } else {\n newNodes = programPath.unshiftContainer(\"body\", node);\n }\n const newNode = newNodes[newNodes.length - 1];\n this._lastImports.set(programPath, newNode);\n\n /*\n let lastImport;\n\n programPath.get(\"body\").forEach(path => {\n if (path.isImportDeclaration()) lastImport = path;\n if (\n path.isExpressionStatement() &&\n isRequireCall(path.get(\"expression\"))\n ) {\n lastImport = path;\n }\n if (\n path.isVariableDeclaration() &&\n path.get(\"declarations\").length === 1 &&\n (isRequireCall(path.get(\"declarations.0.init\")) ||\n (path.get(\"declarations.0.init\").isMemberExpression() &&\n isRequireCall(path.get(\"declarations.0.init.object\"))))\n ) {\n lastImport = path;\n }\n });*/\n }\n\n _ensure<C extends Map<string, any> | Set<string>>(\n map: WeakMap<NodePath<t.Program>, C>,\n programPath: NodePath<t.Program>,\n Collection: { new (...args: any): C },\n ): C {\n let collection = map.get(programPath);\n if (!collection) {\n collection = new Collection();\n map.set(programPath, collection);\n }\n return collection;\n }\n\n _normalizeKey(\n programPath: NodePath<t.Program>,\n url: string,\n name: string = \"\",\n ): string {\n const { sourceType } = programPath.node;\n\n // If we rely on the imported binding (the \"name\" parameter), we also need to cache\n // based on the sourceType. This is because the module transforms change the names\n // of the import variables.\n return `${name && sourceType}::${url}::${name}`;\n }\n}\n","import { prettifyTargets } from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"./types\";\n\nexport const presetEnvSilentDebugHeader =\n \"#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets\";\n\nexport function stringifyTargetsMultiline(targets: Targets): string {\n return JSON.stringify(prettifyTargets(targets), null, 2);\n}\n\nexport function stringifyTargets(targets: Targets): string {\n return JSON.stringify(targets)\n .replace(/,/g, \", \")\n .replace(/^\\{\"/, '{ \"')\n .replace(/\"\\}$/, '\" }');\n}\n","import { intersection } from \"./utils\";\nimport type {\n Pattern,\n PluginOptions,\n MissingDependenciesOption,\n} from \"./types\";\n\nfunction patternToRegExp(pattern: Pattern): RegExp | null {\n if (pattern instanceof RegExp) return pattern;\n\n try {\n return new RegExp(`^${pattern}$`);\n } catch {\n return null;\n }\n}\n\nfunction buildUnusedError(label, unused) {\n if (!unused.length) return \"\";\n return (\n ` - The following \"${label}\" patterns didn't match any polyfill:\\n` +\n unused.map(original => ` ${String(original)}\\n`).join(\"\")\n );\n}\n\nfunction buldDuplicatesError(duplicates) {\n if (!duplicates.size) return \"\";\n return (\n ` - The following polyfills were matched both by \"include\" and \"exclude\" patterns:\\n` +\n Array.from(duplicates, name => ` ${name}\\n`).join(\"\")\n );\n}\n\nexport function validateIncludeExclude(\n provider: string,\n polyfills: Set<string>,\n includePatterns: Pattern[],\n excludePatterns: Pattern[],\n) {\n let current;\n const filter = pattern => {\n const regexp = patternToRegExp(pattern);\n if (!regexp) return false;\n\n let matched = false;\n for (const polyfill of polyfills) {\n if (regexp.test(polyfill)) {\n matched = true;\n current.add(polyfill);\n }\n }\n return !matched;\n };\n\n // prettier-ignore\n const include = current = new Set<string> ();\n const unusedInclude = Array.from(includePatterns).filter(filter);\n\n // prettier-ignore\n const exclude = current = new Set<string> ();\n const unusedExclude = Array.from(excludePatterns).filter(filter);\n\n const duplicates = intersection(include, exclude);\n\n if (\n duplicates.size > 0 ||\n unusedInclude.length > 0 ||\n unusedExclude.length > 0\n ) {\n throw new Error(\n `Error while validating the \"${provider}\" provider options:\\n` +\n buildUnusedError(\"include\", unusedInclude) +\n buildUnusedError(\"exclude\", unusedExclude) +\n buldDuplicatesError(duplicates),\n );\n }\n\n return { include, exclude };\n}\n\nexport function applyMissingDependenciesDefaults(\n options: PluginOptions,\n babelApi: any,\n): MissingDependenciesOption {\n const { missingDependencies = {} } = options;\n if (missingDependencies === false) return false;\n\n const caller = babelApi.caller(caller => caller?.name);\n\n const {\n log = \"deferred\",\n inject = caller === \"rollup-plugin-babel\" ? \"throw\" : \"import\",\n all = false,\n } = missingDependencies;\n\n return { log, inject, all };\n}\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport type { MetaDescriptor } from \"../types\";\n\nimport { resolveKey, resolveSource } from \"../utils\";\n\nexport default (\n callProvider: (payload: MetaDescriptor, path: NodePath) => void,\n) => {\n function property(object, key, placement, path) {\n return callProvider({ kind: \"property\", object, key, placement }, path);\n }\n\n return {\n // Symbol(), new Promise\n ReferencedIdentifier(path: NodePath<t.Identifier>) {\n const {\n node: { name },\n scope,\n } = path;\n if (scope.getBindingIdentifier(name)) return;\n\n callProvider({ kind: \"global\", name }, path);\n },\n\n MemberExpression(path: NodePath<t.MemberExpression>) {\n const key = resolveKey(path.get(\"property\"), path.node.computed);\n if (!key || key === \"prototype\") return;\n\n const object = path.get(\"object\");\n if (object.isIdentifier()) {\n const binding = object.scope.getBinding(object.node.name);\n if (binding && binding.path.isImportNamespaceSpecifier()) return;\n }\n\n const source = resolveSource(object);\n return property(source.id, key, source.placement, path);\n },\n\n ObjectPattern(path: NodePath<t.ObjectPattern>) {\n const { parentPath, parent } = path;\n let obj;\n\n // const { keys, values } = Object\n if (parentPath.isVariableDeclarator()) {\n obj = parentPath.get(\"init\");\n // ({ keys, values } = Object)\n } else if (parentPath.isAssignmentExpression()) {\n obj = parentPath.get(\"right\");\n // !function ({ keys, values }) {...} (Object)\n // resolution does not work after properties transform :-(\n } else if (parentPath.isFunction()) {\n const grand = parentPath.parentPath;\n if (grand.isCallExpression() || grand.isNewExpression()) {\n if (grand.node.callee === parent) {\n obj = grand.get(\"arguments\")[path.key];\n }\n }\n }\n\n let id = null;\n let placement = null;\n if (obj) ({ id, placement } = resolveSource(obj));\n\n for (const prop of path.get(\"properties\")) {\n if (prop.isObjectProperty()) {\n const key = resolveKey(prop.get(\"key\"));\n if (key) property(id, key, placement, prop);\n }\n }\n },\n\n BinaryExpression(path: NodePath<t.BinaryExpression>) {\n if (path.node.operator !== \"in\") return;\n\n const source = resolveSource(path.get(\"right\"));\n const key = resolveKey(path.get(\"left\"), true);\n\n if (!key) return;\n\n callProvider(\n {\n kind: \"in\",\n object: source.id,\n key,\n placement: source.placement,\n },\n path,\n );\n },\n };\n};\n","import type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport type { MetaDescriptor } from \"../types\";\n\nimport { getImportSource, getRequireSource } from \"../utils\";\n\nexport default (\n callProvider: (payload: MetaDescriptor, path: NodePath) => void,\n) => ({\n ImportDeclaration(path: NodePath<t.ImportDeclaration>) {\n const source = getImportSource(path);\n if (!source) return;\n callProvider({ kind: \"import\", source }, path);\n },\n Program(path: NodePath<t.Program>) {\n path.get(\"body\").forEach(bodyPath => {\n const source = getRequireSource(bodyPath);\n if (!source) return;\n callProvider({ kind: \"import\", source }, bodyPath);\n });\n },\n});\n","import path from \"path\";\nimport debounce from \"lodash.debounce\";\nimport requireResolve from \"resolve\";\n\nconst nativeRequireResolve = parseFloat(process.versions.node) >= 8.9;\n\nimport { createRequire } from \"module\";\nconst require = createRequire(import /*::(_)*/.meta.url); // eslint-disable-line\n\nfunction myResolve(name: string, basedir: string) {\n if (nativeRequireResolve) {\n return require\n .resolve(name, {\n paths: [basedir],\n })\n .replace(/\\\\/g, \"/\");\n } else {\n return requireResolve.sync(name, { basedir }).replace(/\\\\/g, \"/\");\n }\n}\n\nexport function resolve(\n dirname: string,\n moduleName: string,\n absoluteImports: boolean | string,\n): string {\n if (absoluteImports === false) return moduleName;\n\n let basedir = dirname;\n if (typeof absoluteImports === \"string\") {\n basedir = path.resolve(basedir, absoluteImports);\n }\n\n try {\n return myResolve(moduleName, basedir);\n } catch (err) {\n if (err.code !== \"MODULE_NOT_FOUND\") throw err;\n\n throw Object.assign(\n new Error(`Failed to resolve \"${moduleName}\" relative to \"${dirname}\"`),\n {\n code: \"BABEL_POLYFILL_NOT_FOUND\",\n polyfill: moduleName,\n dirname,\n },\n );\n }\n}\n\nexport function has(basedir: string, name: string) {\n try {\n myResolve(name, basedir);\n return true;\n } catch {\n return false;\n }\n}\n\nexport function logMissing(missingDeps: Set<string>) {\n if (missingDeps.size === 0) return;\n\n const deps = Array.from(missingDeps).sort().join(\" \");\n\n console.warn(\n \"\\nSome polyfills have been added but are not present in your dependencies.\\n\" +\n \"Please run one of the following commands:\\n\" +\n `\\tnpm install --save ${deps}\\n` +\n `\\tyarn add ${deps}\\n`,\n );\n\n process.exitCode = 1;\n}\n\nlet allMissingDeps = new Set<string>();\n\nconst laterLogMissingDependencies = debounce(() => {\n logMissing(allMissingDeps);\n allMissingDeps = new Set<string>();\n}, 100);\n\nexport function laterLogMissing(missingDeps: Set<string>) {\n if (missingDeps.size === 0) return;\n\n missingDeps.forEach(name => allMissingDeps.add(name));\n laterLogMissingDependencies();\n}\n","import type {\n MetaDescriptor,\n ResolverPolyfills,\n ResolvedPolyfill,\n} from \"./types\";\n\nimport { has } from \"./utils\";\n\ntype ResolverFn<T> = (meta: MetaDescriptor) => void | ResolvedPolyfill<T>;\n\nconst PossibleGlobalObjects = new Set<string>([\n \"global\",\n \"globalThis\",\n \"self\",\n \"window\",\n]);\n\nexport default function createMetaResolver<T>(\n polyfills: ResolverPolyfills<T>,\n): ResolverFn<T> {\n const { static: staticP, instance: instanceP, global: globalP } = polyfills;\n\n return meta => {\n if (meta.kind === \"global\" && globalP && has(globalP, meta.name)) {\n return { kind: \"global\", desc: globalP[meta.name], name: meta.name };\n }\n\n if (meta.kind === \"property\" || meta.kind === \"in\") {\n const { placement, object, key } = meta;\n\n if (object && placement === \"static\") {\n if (globalP && PossibleGlobalObjects.has(object) && has(globalP, key)) {\n return { kind: \"global\", desc: globalP[key], name: key };\n }\n\n if (staticP && has(staticP, object) && has(staticP[object], key)) {\n return {\n kind: \"static\",\n desc: staticP[object][key],\n name: `${object}$${key}`,\n };\n }\n }\n\n if (instanceP && has(instanceP, key)) {\n return { kind: \"instance\", desc: instanceP[key], name: `${key}` };\n }\n }\n };\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport _getTargets, {\n isRequired,\n getInclusionReasons,\n} from \"@babel/helper-compilation-targets\";\nconst getTargets = _getTargets.default || _getTargets;\n\nimport { createUtilsGetter } from \"./utils\";\nimport ImportsCache from \"./imports-cache\";\nimport {\n stringifyTargetsMultiline,\n presetEnvSilentDebugHeader,\n} from \"./debug-utils\";\nimport {\n validateIncludeExclude,\n applyMissingDependenciesDefaults,\n} from \"./normalize-options\";\n\nimport type {\n ProviderApi,\n MethodString,\n Targets,\n MetaDescriptor,\n PolyfillProvider,\n PluginOptions,\n ProviderOptions,\n} from \"./types\";\n\nimport * as v from \"./visitors\";\nimport * as deps from \"./node/dependencies\";\n\nimport createMetaResolver from \"./meta-resolver\";\n\nexport type { PolyfillProvider, MetaDescriptor, Utils, Targets } from \"./types\";\n\nfunction resolveOptions<Options>(\n options: PluginOptions,\n babelApi,\n): {\n method: MethodString;\n methodName: \"usageGlobal\" | \"entryGlobal\" | \"usagePure\";\n targets: Targets;\n debug: boolean | typeof presetEnvSilentDebugHeader;\n shouldInjectPolyfill:\n | ((name: string, shouldInject: boolean) => boolean)\n | undefined;\n providerOptions: ProviderOptions<Options>;\n absoluteImports: string | boolean;\n} {\n const {\n method,\n targets: targetsOption,\n ignoreBrowserslistConfig,\n configPath,\n debug,\n shouldInjectPolyfill,\n absoluteImports,\n ...providerOptions\n } = options;\n\n if (isEmpty(options)) {\n throw new Error(\n `\\\nThis plugin requires options, for example:\n {\n \"plugins\": [\n [\"<plugin name>\", { method: \"usage-pure\" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`,\n );\n }\n\n let methodName;\n if (method === \"usage-global\") methodName = \"usageGlobal\";\n else if (method === \"entry-global\") methodName = \"entryGlobal\";\n else if (method === \"usage-pure\") methodName = \"usagePure\";\n else if (typeof method !== \"string\") {\n throw new Error(\".method must be a string\");\n } else {\n throw new Error(\n `.method must be one of \"entry-global\", \"usage-global\"` +\n ` or \"usage-pure\" (received ${JSON.stringify(method)})`,\n );\n }\n\n if (typeof shouldInjectPolyfill === \"function\") {\n if (options.include || options.exclude) {\n throw new Error(\n `.include and .exclude are not supported when using the` +\n ` .shouldInjectPolyfill function.`,\n );\n }\n } else if (shouldInjectPolyfill != null) {\n throw new Error(\n `.shouldInjectPolyfill must be a function, or undefined` +\n ` (received ${JSON.stringify(shouldInjectPolyfill)})`,\n );\n }\n\n if (\n absoluteImports != null &&\n typeof absoluteImports !== \"boolean\" &&\n typeof absoluteImports !== \"string\"\n ) {\n throw new Error(\n `.absoluteImports must be a boolean, a string, or undefined` +\n ` (received ${JSON.stringify(absoluteImports)})`,\n );\n }\n\n let targets;\n\n if (\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n targetsOption ||\n configPath ||\n ignoreBrowserslistConfig\n ) {\n const targetsObj =\n typeof targetsOption === \"string\" || Array.isArray(targetsOption)\n ? { browsers: targetsOption }\n : targetsOption;\n\n targets = getTargets(targetsObj, {\n ignoreBrowserslistConfig,\n configPath,\n });\n } else {\n targets = babelApi.targets();\n }\n\n return {\n method,\n methodName,\n targets,\n absoluteImports: absoluteImports ?? false,\n shouldInjectPolyfill,\n debug: !!debug,\n providerOptions: providerOptions as any as ProviderOptions<Options>,\n };\n}\n\nfunction instantiateProvider<Options>(\n factory: PolyfillProvider<Options>,\n options: PluginOptions,\n missingDependencies,\n dirname,\n debugLog,\n babelApi,\n) {\n const {\n method,\n methodName,\n targets,\n debug,\n shouldInjectPolyfill,\n providerOptions,\n absoluteImports,\n } = resolveOptions<Options>(options, babelApi);\n\n const getUtils = createUtilsGetter(\n new ImportsCache(moduleName =>\n deps.resolve(dirname, moduleName, absoluteImports),\n ),\n );\n\n // eslint-disable-next-line prefer-const\n let include, exclude;\n let polyfillsSupport;\n let polyfillsNames;\n let filterPolyfills;\n\n const depsCache = new Map();\n\n const api: ProviderApi = {\n babel: babelApi,\n getUtils,\n method: options.method,\n targets,\n createMetaResolver,\n shouldInjectPolyfill(name) {\n if (polyfillsNames === undefined) {\n throw new Error(\n `Internal error in the ${factory.name} provider: ` +\n `shouldInjectPolyfill() can't be called during initialization.`,\n );\n }\n if (!polyfillsNames.has(name)) {\n console.warn(\n `Internal error in the ${providerName} provider: ` +\n `unknown polyfill \"${name}\".`,\n );\n }\n\n if (filterPolyfills && !filterPolyfills(name)) return false;\n\n let shouldInject = isRequired(name, targets, {\n compatData: polyfillsSupport,\n includes: include,\n excludes: exclude,\n });\n\n if (shouldInjectPolyfill) {\n shouldInject = shouldInjectPolyfill(name, shouldInject);\n if (typeof shouldInject !== \"boolean\") {\n throw new Error(`.shouldInjectPolyfill must return a boolean.`);\n }\n }\n\n return shouldInject;\n },\n debug(name) {\n debugLog().found = true;\n\n if (!debug || !name) return;\n\n if (debugLog().polyfills.has(providerName)) return;\n debugLog().polyfills.add(name);\n debugLog().polyfillsSupport ??= polyfillsSupport;\n },\n assertDependency(name, version = \"*\") {\n if (missingDependencies === false) return;\n if (absoluteImports) {\n // If absoluteImports is not false, we will try resolving\n // the dependency and throw if it's not possible. We can\n // skip the check here.\n return;\n }\n\n const dep = version === \"*\" ? name : `${name}@^${version}`;\n\n const found = missingDependencies.all\n ? false\n : mapGetOr(depsCache, `${name} :: ${dirname}`, () =>\n deps.has(dirname, name),\n );\n\n if (!found) {\n debugLog().missingDeps.add(dep);\n }\n },\n };\n\n const provider = factory(api, providerOptions, dirname);\n const providerName = provider.name || factory.name;\n\n if (typeof provider[methodName] !== \"function\") {\n throw new Error(\n `The \"${providerName}\" provider doesn't support the \"${method}\" polyfilling method.`,\n );\n }\n\n if (Array.isArray(provider.polyfills)) {\n polyfillsNames = new Set(provider.polyfills);\n filterPolyfills = provider.filterPolyfills;\n } else if (provider.polyfills) {\n polyfillsNames = new Set(Object.keys(provider.polyfills));\n polyfillsSupport = provider.polyfills;\n filterPolyfills = provider.filterPolyfills;\n } else {\n polyfillsNames = new Set();\n }\n\n ({ include, exclude } = validateIncludeExclude(\n providerName,\n polyfillsNames,\n providerOptions.include || [],\n providerOptions.exclude || [],\n ));\n\n return {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider(payload: MetaDescriptor, path: NodePath) {\n const utils = getUtils(path);\n provider[methodName](payload, utils, path);\n },\n };\n}\n\nexport default function definePolyfillProvider<Options>(\n factory: PolyfillProvider<Options>,\n) {\n return declare((babelApi, options: PluginOptions, dirname: string) => {\n babelApi.assertVersion(\"^7.0.0 || ^8.0.0-alpha.0\");\n const { traverse } = babelApi;\n\n let debugLog;\n\n const missingDependencies = applyMissingDependenciesDefaults(\n options,\n babelApi,\n );\n\n const { debug, method, targets, provider, providerName, callProvider } =\n instantiateProvider<Options>(\n factory,\n options,\n missingDependencies,\n dirname,\n () => debugLog,\n babelApi,\n );\n\n const createVisitor = method === \"entry-global\" ? v.entry : v.usage;\n\n const visitor = provider.visitor\n ? traverse.visitors.merge([createVisitor(callProvider), provider.visitor])\n : createVisitor(callProvider);\n\n if (debug && debug !== presetEnvSilentDebugHeader) {\n console.log(`${providerName}: \\`DEBUG\\` option`);\n console.log(`\\nUsing targets: ${stringifyTargetsMultiline(targets)}`);\n console.log(`\\nUsing polyfills with \\`${method}\\` method:`);\n }\n\n const { runtimeName } = provider;\n\n return {\n name: \"inject-polyfills\",\n visitor,\n\n pre(file) {\n if (runtimeName) {\n if (\n file.get(\"runtimeHelpersModuleName\") &&\n file.get(\"runtimeHelpersModuleName\") !== runtimeName\n ) {\n console.warn(\n `Two different polyfill providers` +\n ` (${file.get(\"runtimeHelpersModuleProvider\")}` +\n ` and ${providerName}) are trying to define two` +\n ` conflicting @babel/runtime alternatives:` +\n ` ${file.get(\"runtimeHelpersModuleName\")} and ${runtimeName}.` +\n ` The second one will be ignored.`,\n );\n } else {\n file.set(\"runtimeHelpersModuleName\", runtimeName);\n file.set(\"runtimeHelpersModuleProvider\", providerName);\n }\n }\n\n debugLog = {\n polyfills: new Set(),\n polyfillsSupport: undefined,\n found: false,\n providers: new Set(),\n missingDeps: new Set(),\n };\n\n provider.pre?.apply(this, arguments);\n },\n post() {\n provider.post?.apply(this, arguments);\n\n if (missingDependencies !== false) {\n if (missingDependencies.log === \"per-file\") {\n deps.logMissing(debugLog.missingDeps);\n } else {\n deps.laterLogMissing(debugLog.missingDeps);\n }\n }\n\n if (!debug) return;\n\n if (this.filename) console.log(`\\n[${this.filename}]`);\n\n if (debugLog.polyfills.size === 0) {\n console.log(\n method === \"entry-global\"\n ? debugLog.found\n ? `Based on your targets, the ${providerName} polyfill did not add any polyfill.`\n : `The entry point for the ${providerName} polyfill has not been found.`\n : `Based on your code and targets, the ${providerName} polyfill did not add any polyfill.`,\n );\n\n return;\n }\n\n if (method === \"entry-global\") {\n console.log(\n `The ${providerName} polyfill entry has been replaced with ` +\n `the following polyfills:`,\n );\n } else {\n console.log(\n `The ${providerName} polyfill added the following polyfills:`,\n );\n }\n\n for (const name of debugLog.polyfills) {\n if (debugLog.polyfillsSupport?.[name]) {\n const filteredTargets = getInclusionReasons(\n name,\n targets,\n debugLog.polyfillsSupport,\n );\n\n const formattedTargets = JSON.stringify(filteredTargets)\n .replace(/,/g, \", \")\n .replace(/^\\{\"/, '{ \"')\n .replace(/\"\\}$/, '\" }');\n\n console.log(` ${name} ${formattedTargets}`);\n } else {\n console.log(` ${name}`);\n }\n }\n },\n };\n });\n}\n\nfunction mapGetOr(map, key, getDefault) {\n let val = map.get(key);\n if (val === undefined) {\n val = getDefault();\n map.set(key, val);\n }\n return val;\n}\n\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n"],"names":["types","t","template","_babel","default","intersection","a","b","result","Set","forEach","v","has","add","object","key","Object","prototype","hasOwnProperty","call","getType","target","toString","slice","resolveId","path","isIdentifier","scope","hasBinding","node","name","isPure","deopt","evaluate","resolveKey","computed","isStringLiteral","value","parent","isMemberExpression","get","sym","resolveSource","obj","id","placement","isRegExpLiteral","isFunction","undefined","getImportSource","specifiers","length","source","getRequireSource","isExpressionStatement","expression","isCallExpression","callee","arguments","hoist","_blockHoist","createUtilsGetter","cache","prog","findParent","p","isProgram","injectGlobalImport","url","storeAnonymous","isScript","statement","ast","importDeclaration","injectNamedImport","hint","storeNamed","generateUidIdentifier","importSpecifier","injectDefaultImport","importDefaultSpecifier","ImportsCache","constructor","resolver","_imports","WeakMap","_anonymousImports","_lastImports","_resolver","programPath","getVal","_normalizeKey","imports","_ensure","sourceType","stringLiteral","_injectImport","Map","identifier","set","lastImport","newNodes","container","body","insertAfter","unshiftContainer","newNode","map","Collection","collection","presetEnvSilentDebugHeader","stringifyTargetsMultiline","targets","JSON","stringify","prettifyTargets","patternToRegExp","pattern","RegExp","buildUnusedError","label","unused","original","String","join","buldDuplicatesError","duplicates","size","Array","from","validateIncludeExclude","provider","polyfills","includePatterns","excludePatterns","current","filter","regexp","matched","polyfill","test","include","unusedInclude","exclude","unusedExclude","Error","applyMissingDependenciesDefaults","options","babelApi","missingDependencies","caller","log","inject","all","callProvider","property","kind","ReferencedIdentifier","getBindingIdentifier","MemberExpression","binding","getBinding","isImportNamespaceSpecifier","ObjectPattern","parentPath","isVariableDeclarator","isAssignmentExpression","grand","isNewExpression","prop","isObjectProperty","BinaryExpression","operator","ImportDeclaration","Program","bodyPath","nativeRequireResolve","parseFloat","process","versions","require","createRequire","import","meta","myResolve","basedir","resolve","paths","replace","requireResolve","sync","dirname","moduleName","absoluteImports","err","code","assign","logMissing","missingDeps","deps","sort","console","warn","exitCode","allMissingDeps","laterLogMissingDependencies","debounce","laterLogMissing","PossibleGlobalObjects","createMetaResolver","static","staticP","instance","instanceP","global","globalP","desc","getTargets","_getTargets","resolveOptions","method","targetsOption","ignoreBrowserslistConfig","configPath","debug","shouldInjectPolyfill","providerOptions","isEmpty","methodName","targetsObj","isArray","browsers","instantiateProvider","factory","debugLog","getUtils","polyfillsSupport","polyfillsNames","filterPolyfills","depsCache","api","babel","providerName","shouldInject","isRequired","compatData","includes","excludes","_debugLog","_debugLog$polyfillsSu","found","assertDependency","version","dep","mapGetOr","keys","payload","utils","definePolyfillProvider","declare","assertVersion","traverse","createVisitor","visitor","visitors","merge","runtimeName","pre","file","_provider$pre","providers","apply","post","_provider$post","filename","_debugLog$polyfillsSu2","filteredTargets","getInclusionReasons","formattedTargets","getDefault","val"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-define-polyfill-provider/lib/index.js b/node_modules/@babel/helper-define-polyfill-provider/lib/index.js index 2d9dcb84..4ea2980f 100644 --- a/node_modules/@babel/helper-define-polyfill-provider/lib/index.js +++ b/node_modules/@babel/helper-define-polyfill-provider/lib/index.js @@ -181,7 +181,7 @@ function instantiateProvider(factory, options, missingDependencies, dirname, deb } function definePolyfillProvider(factory) { return (0, _helperPluginUtils.declare)((babelApi, options, dirname) => { - babelApi.assertVersion(7); + babelApi.assertVersion("^7.0.0 || ^8.0.0-alpha.0"); const { traverse } = babelApi; diff --git a/node_modules/@babel/helper-define-polyfill-provider/package.json b/node_modules/@babel/helper-define-polyfill-provider/package.json index 25a98d8e..c2bd9832 100644 --- a/node_modules/@babel/helper-define-polyfill-provider/package.json +++ b/node_modules/@babel/helper-define-polyfill-provider/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-define-polyfill-provider", - "version": "0.4.3", + "version": "0.4.4", "description": "Babel helper to create your own polyfill provider", "repository": { "type": "git", @@ -55,5 +55,5 @@ "webpack": "^4.42.1", "webpack-cli": "^3.3.11" }, - "gitHead": "66a6819f44a57152798cb3b0a9272c65752bae86" + "gitHead": "984c56c59568283889c3f0f89e58d370e4fd10f8" }
\ No newline at end of file diff --git a/node_modules/@babel/helper-module-transforms/lib/index.js b/node_modules/@babel/helper-module-transforms/lib/index.js index e002e265..35a44be5 100644 --- a/node_modules/@babel/helper-module-transforms/lib/index.js +++ b/node_modules/@babel/helper-module-transforms/lib/index.js @@ -353,7 +353,8 @@ function buildExportInitializationStatements(programPath, metadata, wrapReferenc } const InitTemplate = { computed: _core.template.expression`EXPORTS["NAME"] = VALUE`, - default: _core.template.expression`EXPORTS.NAME = VALUE` + default: _core.template.expression`EXPORTS.NAME = VALUE`, + define: _core.template.expression`Object.defineProperty(EXPORTS, "NAME", { enumerable:true, value: void 0, writable: true })["NAME"] = VALUE` }; function buildInitStatement(metadata, exportNames, initExpr) { const { @@ -366,11 +367,13 @@ function buildInitStatement(metadata, exportNames, initExpr) { NAME: exportName, VALUE: acc }; + if (exportName === "__proto__") { + return InitTemplate.define(params); + } if (stringSpecifiers.has(exportName)) { return InitTemplate.computed(params); - } else { - return InitTemplate.default(params); } + return InitTemplate.default(params); }, initExpr)); } diff --git a/node_modules/@babel/helper-module-transforms/lib/index.js.map b/node_modules/@babel/helper-module-transforms/lib/index.js.map index 1fce8e04..1650d25a 100644 --- a/node_modules/@babel/helper-module-transforms/lib/index.js.map +++ b/node_modules/@babel/helper-module-transforms/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_assert","require","_core","_helperModuleImports","_rewriteThis","_rewriteLiveReferences","_normalizeAndLoadMetadata","Lazy","_dynamicImport","_getModuleName","booleanLiteral","callExpression","cloneNode","directive","directiveLiteral","expressionStatement","identifier","isIdentifier","memberExpression","stringLiteral","valueToNode","variableDeclaration","variableDeclarator","t","exports","getDynamicImportSource","rewriteModuleStatementsAndPrepareHeader","path","exportName","strict","allowTopLevelThis","strictMode","noInterop","importInterop","lazy","getWrapperPayload","toGetWrapperPayload","wrapReference","esNamespaceOnly","filename","constantReexports","arguments","loose","enumerableModuleMeta","noIncompleteNsImportDetection","validateImportInteropOption","assert","isModule","node","sourceType","meta","normalizeModuleAndLoadMetadata","initializeReexports","rewriteThis","rewriteLiveReferences","hasStrict","directives","some","value","unshiftContainer","headers","hasExports","push","buildESModuleHeader","nameList","buildExportNameListDeclaration","exportNameListName","name","statement","buildExportInitializationStatements","ensureStatementsHoisted","statements","forEach","header","_blockHoist","wrapInterop","programPath","expr","type","hub","addHelper","helper","Error","buildNamespaceInitStatements","metadata","sourceMetadata","_wrapReference","srcNamespaceId","localName","importsNamespace","template","NAME","SOURCE","srcNamespace","wrap","buildReexportsFromMeta","reexportNamespace","EXPORTS","NAMESPACE","reexportAll","buildNamespaceReexport","loc","ReexportTemplate","constant","constantComputed","spec","_wrapReference2","namespace","stringSpecifiers","Array","from","reexports","importName","NAMESPACE_IMPORT","interop","has","astNodes","EXPORT_NAME","VERIFY_NAME_LIST","EXPORTS_LIST","exportedVars","Object","create","data","local","values","names","hasReexport","source","keys","length","scope","generateUidIdentifier","default","initStatements","kind","buildInitStatement","reexportsStatements","i","sort","a","b","results","initStatement","chunkSize","uninitializedExportNames","j","buildUndefinedNode","InitTemplate","computed","expression","exportNames","initExpr","reduce","acc","params","VALUE"],"sources":["../src/index.ts"],"sourcesContent":["import assert from \"assert\";\nimport { template, types as t } from \"@babel/core\";\n\nimport { isModule } from \"@babel/helper-module-imports\";\n\nimport rewriteThis from \"./rewrite-this.ts\";\nimport rewriteLiveReferences from \"./rewrite-live-references.ts\";\nimport normalizeModuleAndLoadMetadata, {\n hasExports,\n isSideEffectImport,\n validateImportInteropOption,\n} from \"./normalize-and-load-metadata.ts\";\nimport type {\n ImportInterop,\n InteropType,\n ModuleMetadata,\n SourceModuleMetadata,\n} from \"./normalize-and-load-metadata.ts\";\nimport * as Lazy from \"./lazy-modules.ts\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst {\n booleanLiteral,\n callExpression,\n cloneNode,\n directive,\n directiveLiteral,\n expressionStatement,\n identifier,\n isIdentifier,\n memberExpression,\n stringLiteral,\n valueToNode,\n variableDeclaration,\n variableDeclarator,\n} = t;\n\nexport { buildDynamicImport } from \"./dynamic-import.ts\";\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.getDynamicImportSource =\n // eslint-disable-next-line no-restricted-globals, import/extensions\n require(\"./dynamic-import\").getDynamicImportSource;\n}\n\nexport { default as getModuleName } from \"./get-module-name.ts\";\nexport type { PluginOptions } from \"./get-module-name.ts\";\n\nexport { hasExports, isSideEffectImport, isModule, rewriteThis };\n\nexport interface RewriteModuleStatementsAndPrepareHeaderOptions {\n exportName?: string;\n strict: boolean;\n allowTopLevelThis?: boolean;\n strictMode: boolean;\n loose?: boolean;\n importInterop?: ImportInterop;\n noInterop?: boolean;\n lazy?: Lazy.Lazy;\n getWrapperPayload?: (\n source: string,\n metadata: SourceModuleMetadata,\n importNodes: t.Node[],\n ) => unknown;\n wrapReference?: (ref: t.Expression, payload: unknown) => t.Expression | null;\n esNamespaceOnly?: boolean;\n filename: string | undefined;\n constantReexports?: boolean | void;\n enumerableModuleMeta?: boolean | void;\n noIncompleteNsImportDetection?: boolean | void;\n}\n\n/**\n * Perform all of the generic ES6 module rewriting needed to handle initial\n * module processing. This function will rewrite the majority of the given\n * program to reference the modules described by the returned metadata,\n * and returns a list of statements for use when initializing the module.\n */\nexport function rewriteModuleStatementsAndPrepareHeader(\n path: NodePath<t.Program>,\n {\n exportName,\n strict,\n allowTopLevelThis,\n strictMode,\n noInterop,\n importInterop = noInterop ? \"none\" : \"babel\",\n // TODO(Babel 8): After that `lazy` implementation is moved to the CJS\n // transform, remove this parameter.\n lazy,\n getWrapperPayload = Lazy.toGetWrapperPayload(lazy ?? false),\n wrapReference = Lazy.wrapReference,\n esNamespaceOnly,\n filename,\n\n constantReexports = process.env.BABEL_8_BREAKING\n ? undefined\n : arguments[1].loose,\n enumerableModuleMeta = process.env.BABEL_8_BREAKING\n ? undefined\n : arguments[1].loose,\n noIncompleteNsImportDetection,\n }: RewriteModuleStatementsAndPrepareHeaderOptions,\n) {\n validateImportInteropOption(importInterop);\n assert(isModule(path), \"Cannot process module statements in a script\");\n path.node.sourceType = \"script\";\n\n const meta = normalizeModuleAndLoadMetadata(path, exportName, {\n importInterop,\n initializeReexports: constantReexports,\n getWrapperPayload,\n esNamespaceOnly,\n filename,\n });\n\n if (!allowTopLevelThis) {\n rewriteThis(path);\n }\n\n rewriteLiveReferences(path, meta, wrapReference);\n\n if (strictMode !== false) {\n const hasStrict = path.node.directives.some(directive => {\n return directive.value.value === \"use strict\";\n });\n if (!hasStrict) {\n path.unshiftContainer(\n \"directives\",\n directive(directiveLiteral(\"use strict\")),\n );\n }\n }\n\n const headers = [];\n if (hasExports(meta) && !strict) {\n headers.push(buildESModuleHeader(meta, enumerableModuleMeta));\n }\n\n const nameList = buildExportNameListDeclaration(path, meta);\n\n if (nameList) {\n meta.exportNameListName = nameList.name;\n headers.push(nameList.statement);\n }\n\n // Create all of the statically known named exports.\n headers.push(\n ...buildExportInitializationStatements(\n path,\n meta,\n wrapReference,\n constantReexports,\n noIncompleteNsImportDetection,\n ),\n );\n\n return { meta, headers };\n}\n\n/**\n * Flag a set of statements as hoisted above all else so that module init\n * statements all run before user code.\n */\nexport function ensureStatementsHoisted(statements: t.Statement[]) {\n // Force all of the header fields to be at the top of the file.\n statements.forEach(header => {\n // @ts-expect-error Fixme: handle _blockHoist property\n header._blockHoist = 3;\n });\n}\n\n/**\n * Given an expression for a standard import object, like \"require('foo')\",\n * wrap it in a call to the interop helpers based on the type.\n */\nexport function wrapInterop(\n programPath: NodePath<t.Program>,\n expr: t.Expression,\n type: InteropType,\n): t.CallExpression {\n if (type === \"none\") {\n return null;\n }\n\n if (type === \"node-namespace\") {\n return callExpression(programPath.hub.addHelper(\"interopRequireWildcard\"), [\n expr,\n booleanLiteral(true),\n ]);\n } else if (type === \"node-default\") {\n return null;\n }\n\n let helper;\n if (type === \"default\") {\n helper = \"interopRequireDefault\";\n } else if (type === \"namespace\") {\n helper = \"interopRequireWildcard\";\n } else {\n throw new Error(`Unknown interop: ${type}`);\n }\n\n return callExpression(programPath.hub.addHelper(helper), [expr]);\n}\n\n/**\n * Create the runtime initialization statements for a given requested source.\n * These will initialize all of the runtime import/export logic that\n * can't be handled statically by the statements created by\n * buildExportInitializationStatements().\n */\nexport function buildNamespaceInitStatements(\n metadata: ModuleMetadata,\n sourceMetadata: SourceModuleMetadata,\n constantReexports: boolean | void = false,\n wrapReference: (\n ref: t.Identifier,\n payload: unknown,\n ) => t.Expression | null = Lazy.wrapReference,\n) {\n const statements = [];\n\n const srcNamespaceId = identifier(sourceMetadata.name);\n\n for (const localName of sourceMetadata.importsNamespace) {\n if (localName === sourceMetadata.name) continue;\n\n // Create and assign binding to namespace object\n statements.push(\n template.statement`var NAME = SOURCE;`({\n NAME: localName,\n SOURCE: cloneNode(srcNamespaceId),\n }),\n );\n }\n\n const srcNamespace =\n wrapReference(srcNamespaceId, sourceMetadata.wrap) ?? srcNamespaceId;\n\n if (constantReexports) {\n statements.push(\n ...buildReexportsFromMeta(metadata, sourceMetadata, true, wrapReference),\n );\n }\n for (const exportName of sourceMetadata.reexportNamespace) {\n // Assign export to namespace object.\n statements.push(\n (!t.isIdentifier(srcNamespace)\n ? template.statement`\n Object.defineProperty(EXPORTS, \"NAME\", {\n enumerable: true,\n get: function() {\n return NAMESPACE;\n }\n });\n `\n : template.statement`EXPORTS.NAME = NAMESPACE;`)({\n EXPORTS: metadata.exportName,\n NAME: exportName,\n NAMESPACE: cloneNode(srcNamespace),\n }),\n );\n }\n if (sourceMetadata.reexportAll) {\n const statement = buildNamespaceReexport(\n metadata,\n cloneNode(srcNamespace),\n constantReexports,\n );\n statement.loc = sourceMetadata.reexportAll.loc;\n\n // Iterate props creating getter for each prop.\n statements.push(statement);\n }\n return statements;\n}\n\nconst ReexportTemplate = {\n constant: template.statement`EXPORTS.EXPORT_NAME = NAMESPACE_IMPORT;`,\n constantComputed: template.statement`EXPORTS[\"EXPORT_NAME\"] = NAMESPACE_IMPORT;`,\n spec: template.statement`\n Object.defineProperty(EXPORTS, \"EXPORT_NAME\", {\n enumerable: true,\n get: function() {\n return NAMESPACE_IMPORT;\n },\n });\n `,\n};\n\nfunction buildReexportsFromMeta(\n meta: ModuleMetadata,\n metadata: SourceModuleMetadata,\n constantReexports: boolean,\n wrapReference: (ref: t.Expression, payload: unknown) => t.Expression | null,\n) {\n let namespace: t.Expression = identifier(metadata.name);\n namespace = wrapReference(namespace, metadata.wrap) ?? namespace;\n\n const { stringSpecifiers } = meta;\n return Array.from(metadata.reexports, ([exportName, importName]) => {\n let NAMESPACE_IMPORT: t.Expression = cloneNode(namespace);\n if (importName === \"default\" && metadata.interop === \"node-default\") {\n // Nothing, it's ok as-is\n } else if (stringSpecifiers.has(importName)) {\n NAMESPACE_IMPORT = memberExpression(\n NAMESPACE_IMPORT,\n stringLiteral(importName),\n true,\n );\n } else {\n NAMESPACE_IMPORT = memberExpression(\n NAMESPACE_IMPORT,\n identifier(importName),\n );\n }\n const astNodes = {\n EXPORTS: meta.exportName,\n EXPORT_NAME: exportName,\n NAMESPACE_IMPORT,\n };\n if (constantReexports || isIdentifier(NAMESPACE_IMPORT)) {\n if (stringSpecifiers.has(exportName)) {\n return ReexportTemplate.constantComputed(astNodes);\n } else {\n return ReexportTemplate.constant(astNodes);\n }\n } else {\n return ReexportTemplate.spec(astNodes);\n }\n });\n}\n\n/**\n * Build an \"__esModule\" header statement setting the property on a given object.\n */\nfunction buildESModuleHeader(\n metadata: ModuleMetadata,\n enumerableModuleMeta: boolean | void = false,\n) {\n return (\n enumerableModuleMeta\n ? template.statement`\n EXPORTS.__esModule = true;\n `\n : template.statement`\n Object.defineProperty(EXPORTS, \"__esModule\", {\n value: true,\n });\n `\n )({ EXPORTS: metadata.exportName });\n}\n\n/**\n * Create a re-export initialization loop for a specific imported namespace.\n */\nfunction buildNamespaceReexport(\n metadata: ModuleMetadata,\n namespace: t.Expression,\n constantReexports: boolean | void,\n) {\n return (\n constantReexports\n ? template.statement`\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n EXPORTS[key] = NAMESPACE[key];\n });\n `\n : // Also skip already assigned bindings if they are strictly equal\n // to be somewhat more spec-compliant when a file has multiple\n // namespace re-exports that would cause a binding to be exported\n // multiple times. However, multiple bindings of the same name that\n // export the same primitive value are silently skipped\n // (the spec requires an \"ambiguous bindings\" early error here).\n template.statement`\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n Object.defineProperty(EXPORTS, key, {\n enumerable: true,\n get: function() {\n return NAMESPACE[key];\n },\n });\n });\n `\n )({\n NAMESPACE: namespace,\n EXPORTS: metadata.exportName,\n VERIFY_NAME_LIST: metadata.exportNameListName\n ? template`\n if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return;\n `({ EXPORTS_LIST: metadata.exportNameListName })\n : null,\n });\n}\n\n/**\n * Build a statement declaring a variable that contains all of the exported\n * variable names in an object so they can easily be referenced from an\n * export * from statement to check for conflicts.\n */\nfunction buildExportNameListDeclaration(\n programPath: NodePath,\n metadata: ModuleMetadata,\n) {\n const exportedVars = Object.create(null);\n for (const data of metadata.local.values()) {\n for (const name of data.names) {\n exportedVars[name] = true;\n }\n }\n\n let hasReexport = false;\n for (const data of metadata.source.values()) {\n for (const exportName of data.reexports.keys()) {\n exportedVars[exportName] = true;\n }\n for (const exportName of data.reexportNamespace) {\n exportedVars[exportName] = true;\n }\n\n hasReexport = hasReexport || !!data.reexportAll;\n }\n\n if (!hasReexport || Object.keys(exportedVars).length === 0) return null;\n\n const name = programPath.scope.generateUidIdentifier(\"exportNames\");\n\n delete exportedVars.default;\n\n return {\n name: name.name,\n statement: variableDeclaration(\"var\", [\n variableDeclarator(name, valueToNode(exportedVars)),\n ]),\n };\n}\n\n/**\n * Create a set of statements that will initialize all of the statically-known\n * export names with their expected values.\n */\nfunction buildExportInitializationStatements(\n programPath: NodePath,\n metadata: ModuleMetadata,\n wrapReference: (ref: t.Expression, payload: unknown) => t.Expression | null,\n constantReexports: boolean | void = false,\n noIncompleteNsImportDetection: boolean | void = false,\n) {\n const initStatements: Array<[string, t.Statement | null]> = [];\n\n for (const [localName, data] of metadata.local) {\n if (data.kind === \"import\") {\n // No-open since these are explicitly set with the \"reexports\" block.\n } else if (data.kind === \"hoisted\") {\n initStatements.push([\n // data.names is always of length 1 because a hoisted export\n // name must be id of a function declaration\n data.names[0],\n buildInitStatement(metadata, data.names, identifier(localName)),\n ]);\n } else if (!noIncompleteNsImportDetection) {\n for (const exportName of data.names) {\n initStatements.push([exportName, null]);\n }\n }\n }\n\n for (const data of metadata.source.values()) {\n if (!constantReexports) {\n const reexportsStatements = buildReexportsFromMeta(\n metadata,\n data,\n false,\n wrapReference,\n );\n const reexports = [...data.reexports.keys()];\n for (let i = 0; i < reexportsStatements.length; i++) {\n initStatements.push([reexports[i], reexportsStatements[i]]);\n }\n }\n if (!noIncompleteNsImportDetection) {\n for (const exportName of data.reexportNamespace) {\n initStatements.push([exportName, null]);\n }\n }\n }\n\n // https://tc39.es/ecma262/#sec-module-namespace-exotic-objects\n // The [Exports] list is ordered as if an Array of those String values\n // had been sorted using %Array.prototype.sort% using undefined as comparefn\n initStatements.sort(([a], [b]) => {\n if (a < b) return -1;\n if (b < a) return 1;\n return 0;\n });\n\n const results = [];\n if (noIncompleteNsImportDetection) {\n for (const [, initStatement] of initStatements) {\n results.push(initStatement);\n }\n } else {\n // We generate init statements (`exports.a = exports.b = ... = void 0`)\n // for every 100 exported names to avoid deeply-nested AST structures.\n const chunkSize = 100;\n for (let i = 0; i < initStatements.length; i += chunkSize) {\n let uninitializedExportNames = [];\n for (let j = 0; j < chunkSize && i + j < initStatements.length; j++) {\n const [exportName, initStatement] = initStatements[i + j];\n if (initStatement !== null) {\n if (uninitializedExportNames.length > 0) {\n results.push(\n buildInitStatement(\n metadata,\n uninitializedExportNames,\n programPath.scope.buildUndefinedNode(),\n ),\n );\n // reset after uninitializedExportNames has been transformed\n // to init statements\n uninitializedExportNames = [];\n }\n results.push(initStatement);\n } else {\n uninitializedExportNames.push(exportName);\n }\n }\n if (uninitializedExportNames.length > 0) {\n results.push(\n buildInitStatement(\n metadata,\n uninitializedExportNames,\n programPath.scope.buildUndefinedNode(),\n ),\n );\n }\n }\n }\n\n return results;\n}\n\n/**\n * Given a set of export names, create a set of nested assignments to\n * initialize them all to a given expression.\n */\nconst InitTemplate = {\n computed: template.expression`EXPORTS[\"NAME\"] = VALUE`,\n default: template.expression`EXPORTS.NAME = VALUE`,\n};\n\nfunction buildInitStatement(\n metadata: ModuleMetadata,\n exportNames: string[],\n initExpr: t.Expression,\n) {\n const { stringSpecifiers, exportName: EXPORTS } = metadata;\n return expressionStatement(\n exportNames.reduce((acc, exportName) => {\n const params = {\n EXPORTS,\n NAME: exportName,\n VALUE: acc,\n };\n if (stringSpecifiers.has(exportName)) {\n return InitTemplate.computed(params);\n } else {\n return InitTemplate.default(params);\n }\n }, initExpr),\n );\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_assert","require","_core","_helperModuleImports","_rewriteThis","_rewriteLiveReferences","_normalizeAndLoadMetadata","Lazy","_dynamicImport","_getModuleName","booleanLiteral","callExpression","cloneNode","directive","directiveLiteral","expressionStatement","identifier","isIdentifier","memberExpression","stringLiteral","valueToNode","variableDeclaration","variableDeclarator","t","exports","getDynamicImportSource","rewriteModuleStatementsAndPrepareHeader","path","exportName","strict","allowTopLevelThis","strictMode","noInterop","importInterop","lazy","getWrapperPayload","toGetWrapperPayload","wrapReference","esNamespaceOnly","filename","constantReexports","arguments","loose","enumerableModuleMeta","noIncompleteNsImportDetection","validateImportInteropOption","assert","isModule","node","sourceType","meta","normalizeModuleAndLoadMetadata","initializeReexports","rewriteThis","rewriteLiveReferences","hasStrict","directives","some","value","unshiftContainer","headers","hasExports","push","buildESModuleHeader","nameList","buildExportNameListDeclaration","exportNameListName","name","statement","buildExportInitializationStatements","ensureStatementsHoisted","statements","forEach","header","_blockHoist","wrapInterop","programPath","expr","type","hub","addHelper","helper","Error","buildNamespaceInitStatements","metadata","sourceMetadata","_wrapReference","srcNamespaceId","localName","importsNamespace","template","NAME","SOURCE","srcNamespace","wrap","buildReexportsFromMeta","reexportNamespace","EXPORTS","NAMESPACE","reexportAll","buildNamespaceReexport","loc","ReexportTemplate","constant","constantComputed","spec","_wrapReference2","namespace","stringSpecifiers","Array","from","reexports","importName","NAMESPACE_IMPORT","interop","has","astNodes","EXPORT_NAME","VERIFY_NAME_LIST","EXPORTS_LIST","exportedVars","Object","create","data","local","values","names","hasReexport","source","keys","length","scope","generateUidIdentifier","default","initStatements","kind","buildInitStatement","reexportsStatements","i","sort","a","b","results","initStatement","chunkSize","uninitializedExportNames","j","buildUndefinedNode","InitTemplate","computed","expression","define","exportNames","initExpr","reduce","acc","params","VALUE"],"sources":["../src/index.ts"],"sourcesContent":["import assert from \"assert\";\nimport { template, types as t } from \"@babel/core\";\n\nimport { isModule } from \"@babel/helper-module-imports\";\n\nimport rewriteThis from \"./rewrite-this.ts\";\nimport rewriteLiveReferences from \"./rewrite-live-references.ts\";\nimport normalizeModuleAndLoadMetadata, {\n hasExports,\n isSideEffectImport,\n validateImportInteropOption,\n} from \"./normalize-and-load-metadata.ts\";\nimport type {\n ImportInterop,\n InteropType,\n ModuleMetadata,\n SourceModuleMetadata,\n} from \"./normalize-and-load-metadata.ts\";\nimport * as Lazy from \"./lazy-modules.ts\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst {\n booleanLiteral,\n callExpression,\n cloneNode,\n directive,\n directiveLiteral,\n expressionStatement,\n identifier,\n isIdentifier,\n memberExpression,\n stringLiteral,\n valueToNode,\n variableDeclaration,\n variableDeclarator,\n} = t;\n\nexport { buildDynamicImport } from \"./dynamic-import.ts\";\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.getDynamicImportSource =\n // eslint-disable-next-line no-restricted-globals, import/extensions\n require(\"./dynamic-import\").getDynamicImportSource;\n}\n\nexport { default as getModuleName } from \"./get-module-name.ts\";\nexport type { PluginOptions } from \"./get-module-name.ts\";\n\nexport { hasExports, isSideEffectImport, isModule, rewriteThis };\n\nexport interface RewriteModuleStatementsAndPrepareHeaderOptions {\n exportName?: string;\n strict: boolean;\n allowTopLevelThis?: boolean;\n strictMode: boolean;\n loose?: boolean;\n importInterop?: ImportInterop;\n noInterop?: boolean;\n lazy?: Lazy.Lazy;\n getWrapperPayload?: (\n source: string,\n metadata: SourceModuleMetadata,\n importNodes: t.Node[],\n ) => unknown;\n wrapReference?: (ref: t.Expression, payload: unknown) => t.Expression | null;\n esNamespaceOnly?: boolean;\n filename: string | undefined;\n constantReexports?: boolean | void;\n enumerableModuleMeta?: boolean | void;\n noIncompleteNsImportDetection?: boolean | void;\n}\n\n/**\n * Perform all of the generic ES6 module rewriting needed to handle initial\n * module processing. This function will rewrite the majority of the given\n * program to reference the modules described by the returned metadata,\n * and returns a list of statements for use when initializing the module.\n */\nexport function rewriteModuleStatementsAndPrepareHeader(\n path: NodePath<t.Program>,\n {\n exportName,\n strict,\n allowTopLevelThis,\n strictMode,\n noInterop,\n importInterop = noInterop ? \"none\" : \"babel\",\n // TODO(Babel 8): After that `lazy` implementation is moved to the CJS\n // transform, remove this parameter.\n lazy,\n getWrapperPayload = Lazy.toGetWrapperPayload(lazy ?? false),\n wrapReference = Lazy.wrapReference,\n esNamespaceOnly,\n filename,\n\n constantReexports = process.env.BABEL_8_BREAKING\n ? undefined\n : arguments[1].loose,\n enumerableModuleMeta = process.env.BABEL_8_BREAKING\n ? undefined\n : arguments[1].loose,\n noIncompleteNsImportDetection,\n }: RewriteModuleStatementsAndPrepareHeaderOptions,\n) {\n validateImportInteropOption(importInterop);\n assert(isModule(path), \"Cannot process module statements in a script\");\n path.node.sourceType = \"script\";\n\n const meta = normalizeModuleAndLoadMetadata(path, exportName, {\n importInterop,\n initializeReexports: constantReexports,\n getWrapperPayload,\n esNamespaceOnly,\n filename,\n });\n\n if (!allowTopLevelThis) {\n rewriteThis(path);\n }\n\n rewriteLiveReferences(path, meta, wrapReference);\n\n if (strictMode !== false) {\n const hasStrict = path.node.directives.some(directive => {\n return directive.value.value === \"use strict\";\n });\n if (!hasStrict) {\n path.unshiftContainer(\n \"directives\",\n directive(directiveLiteral(\"use strict\")),\n );\n }\n }\n\n const headers = [];\n if (hasExports(meta) && !strict) {\n headers.push(buildESModuleHeader(meta, enumerableModuleMeta));\n }\n\n const nameList = buildExportNameListDeclaration(path, meta);\n\n if (nameList) {\n meta.exportNameListName = nameList.name;\n headers.push(nameList.statement);\n }\n\n // Create all of the statically known named exports.\n headers.push(\n ...buildExportInitializationStatements(\n path,\n meta,\n wrapReference,\n constantReexports,\n noIncompleteNsImportDetection,\n ),\n );\n\n return { meta, headers };\n}\n\n/**\n * Flag a set of statements as hoisted above all else so that module init\n * statements all run before user code.\n */\nexport function ensureStatementsHoisted(statements: t.Statement[]) {\n // Force all of the header fields to be at the top of the file.\n statements.forEach(header => {\n // @ts-expect-error Fixme: handle _blockHoist property\n header._blockHoist = 3;\n });\n}\n\n/**\n * Given an expression for a standard import object, like \"require('foo')\",\n * wrap it in a call to the interop helpers based on the type.\n */\nexport function wrapInterop(\n programPath: NodePath<t.Program>,\n expr: t.Expression,\n type: InteropType,\n): t.CallExpression {\n if (type === \"none\") {\n return null;\n }\n\n if (type === \"node-namespace\") {\n return callExpression(programPath.hub.addHelper(\"interopRequireWildcard\"), [\n expr,\n booleanLiteral(true),\n ]);\n } else if (type === \"node-default\") {\n return null;\n }\n\n let helper;\n if (type === \"default\") {\n helper = \"interopRequireDefault\";\n } else if (type === \"namespace\") {\n helper = \"interopRequireWildcard\";\n } else {\n throw new Error(`Unknown interop: ${type}`);\n }\n\n return callExpression(programPath.hub.addHelper(helper), [expr]);\n}\n\n/**\n * Create the runtime initialization statements for a given requested source.\n * These will initialize all of the runtime import/export logic that\n * can't be handled statically by the statements created by\n * buildExportInitializationStatements().\n */\nexport function buildNamespaceInitStatements(\n metadata: ModuleMetadata,\n sourceMetadata: SourceModuleMetadata,\n constantReexports: boolean | void = false,\n wrapReference: (\n ref: t.Identifier,\n payload: unknown,\n ) => t.Expression | null = Lazy.wrapReference,\n) {\n const statements = [];\n\n const srcNamespaceId = identifier(sourceMetadata.name);\n\n for (const localName of sourceMetadata.importsNamespace) {\n if (localName === sourceMetadata.name) continue;\n\n // Create and assign binding to namespace object\n statements.push(\n template.statement`var NAME = SOURCE;`({\n NAME: localName,\n SOURCE: cloneNode(srcNamespaceId),\n }),\n );\n }\n\n const srcNamespace =\n wrapReference(srcNamespaceId, sourceMetadata.wrap) ?? srcNamespaceId;\n\n if (constantReexports) {\n statements.push(\n ...buildReexportsFromMeta(metadata, sourceMetadata, true, wrapReference),\n );\n }\n for (const exportName of sourceMetadata.reexportNamespace) {\n // Assign export to namespace object.\n statements.push(\n (!t.isIdentifier(srcNamespace)\n ? template.statement`\n Object.defineProperty(EXPORTS, \"NAME\", {\n enumerable: true,\n get: function() {\n return NAMESPACE;\n }\n });\n `\n : template.statement`EXPORTS.NAME = NAMESPACE;`)({\n EXPORTS: metadata.exportName,\n NAME: exportName,\n NAMESPACE: cloneNode(srcNamespace),\n }),\n );\n }\n if (sourceMetadata.reexportAll) {\n const statement = buildNamespaceReexport(\n metadata,\n cloneNode(srcNamespace),\n constantReexports,\n );\n statement.loc = sourceMetadata.reexportAll.loc;\n\n // Iterate props creating getter for each prop.\n statements.push(statement);\n }\n return statements;\n}\n\nconst ReexportTemplate = {\n constant: template.statement`EXPORTS.EXPORT_NAME = NAMESPACE_IMPORT;`,\n constantComputed: template.statement`EXPORTS[\"EXPORT_NAME\"] = NAMESPACE_IMPORT;`,\n spec: template.statement`\n Object.defineProperty(EXPORTS, \"EXPORT_NAME\", {\n enumerable: true,\n get: function() {\n return NAMESPACE_IMPORT;\n },\n });\n `,\n};\n\nfunction buildReexportsFromMeta(\n meta: ModuleMetadata,\n metadata: SourceModuleMetadata,\n constantReexports: boolean,\n wrapReference: (ref: t.Expression, payload: unknown) => t.Expression | null,\n) {\n let namespace: t.Expression = identifier(metadata.name);\n namespace = wrapReference(namespace, metadata.wrap) ?? namespace;\n\n const { stringSpecifiers } = meta;\n return Array.from(metadata.reexports, ([exportName, importName]) => {\n let NAMESPACE_IMPORT: t.Expression = cloneNode(namespace);\n if (importName === \"default\" && metadata.interop === \"node-default\") {\n // Nothing, it's ok as-is\n } else if (stringSpecifiers.has(importName)) {\n NAMESPACE_IMPORT = memberExpression(\n NAMESPACE_IMPORT,\n stringLiteral(importName),\n true,\n );\n } else {\n NAMESPACE_IMPORT = memberExpression(\n NAMESPACE_IMPORT,\n identifier(importName),\n );\n }\n const astNodes = {\n EXPORTS: meta.exportName,\n EXPORT_NAME: exportName,\n NAMESPACE_IMPORT,\n };\n if (constantReexports || isIdentifier(NAMESPACE_IMPORT)) {\n if (stringSpecifiers.has(exportName)) {\n return ReexportTemplate.constantComputed(astNodes);\n } else {\n return ReexportTemplate.constant(astNodes);\n }\n } else {\n return ReexportTemplate.spec(astNodes);\n }\n });\n}\n\n/**\n * Build an \"__esModule\" header statement setting the property on a given object.\n */\nfunction buildESModuleHeader(\n metadata: ModuleMetadata,\n enumerableModuleMeta: boolean | void = false,\n) {\n return (\n enumerableModuleMeta\n ? template.statement`\n EXPORTS.__esModule = true;\n `\n : template.statement`\n Object.defineProperty(EXPORTS, \"__esModule\", {\n value: true,\n });\n `\n )({ EXPORTS: metadata.exportName });\n}\n\n/**\n * Create a re-export initialization loop for a specific imported namespace.\n */\nfunction buildNamespaceReexport(\n metadata: ModuleMetadata,\n namespace: t.Expression,\n constantReexports: boolean | void,\n) {\n return (\n constantReexports\n ? template.statement`\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n EXPORTS[key] = NAMESPACE[key];\n });\n `\n : // Also skip already assigned bindings if they are strictly equal\n // to be somewhat more spec-compliant when a file has multiple\n // namespace re-exports that would cause a binding to be exported\n // multiple times. However, multiple bindings of the same name that\n // export the same primitive value are silently skipped\n // (the spec requires an \"ambiguous bindings\" early error here).\n template.statement`\n Object.keys(NAMESPACE).forEach(function(key) {\n if (key === \"default\" || key === \"__esModule\") return;\n VERIFY_NAME_LIST;\n if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return;\n\n Object.defineProperty(EXPORTS, key, {\n enumerable: true,\n get: function() {\n return NAMESPACE[key];\n },\n });\n });\n `\n )({\n NAMESPACE: namespace,\n EXPORTS: metadata.exportName,\n VERIFY_NAME_LIST: metadata.exportNameListName\n ? template`\n if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return;\n `({ EXPORTS_LIST: metadata.exportNameListName })\n : null,\n });\n}\n\n/**\n * Build a statement declaring a variable that contains all of the exported\n * variable names in an object so they can easily be referenced from an\n * export * from statement to check for conflicts.\n */\nfunction buildExportNameListDeclaration(\n programPath: NodePath,\n metadata: ModuleMetadata,\n) {\n const exportedVars = Object.create(null);\n for (const data of metadata.local.values()) {\n for (const name of data.names) {\n exportedVars[name] = true;\n }\n }\n\n let hasReexport = false;\n for (const data of metadata.source.values()) {\n for (const exportName of data.reexports.keys()) {\n exportedVars[exportName] = true;\n }\n for (const exportName of data.reexportNamespace) {\n exportedVars[exportName] = true;\n }\n\n hasReexport = hasReexport || !!data.reexportAll;\n }\n\n if (!hasReexport || Object.keys(exportedVars).length === 0) return null;\n\n const name = programPath.scope.generateUidIdentifier(\"exportNames\");\n\n delete exportedVars.default;\n\n return {\n name: name.name,\n statement: variableDeclaration(\"var\", [\n variableDeclarator(name, valueToNode(exportedVars)),\n ]),\n };\n}\n\n/**\n * Create a set of statements that will initialize all of the statically-known\n * export names with their expected values.\n */\nfunction buildExportInitializationStatements(\n programPath: NodePath,\n metadata: ModuleMetadata,\n wrapReference: (ref: t.Expression, payload: unknown) => t.Expression | null,\n constantReexports: boolean | void = false,\n noIncompleteNsImportDetection: boolean | void = false,\n) {\n const initStatements: Array<[string, t.Statement | null]> = [];\n\n for (const [localName, data] of metadata.local) {\n if (data.kind === \"import\") {\n // No-open since these are explicitly set with the \"reexports\" block.\n } else if (data.kind === \"hoisted\") {\n initStatements.push([\n // data.names is always of length 1 because a hoisted export\n // name must be id of a function declaration\n data.names[0],\n buildInitStatement(metadata, data.names, identifier(localName)),\n ]);\n } else if (!noIncompleteNsImportDetection) {\n for (const exportName of data.names) {\n initStatements.push([exportName, null]);\n }\n }\n }\n\n for (const data of metadata.source.values()) {\n if (!constantReexports) {\n const reexportsStatements = buildReexportsFromMeta(\n metadata,\n data,\n false,\n wrapReference,\n );\n const reexports = [...data.reexports.keys()];\n for (let i = 0; i < reexportsStatements.length; i++) {\n initStatements.push([reexports[i], reexportsStatements[i]]);\n }\n }\n if (!noIncompleteNsImportDetection) {\n for (const exportName of data.reexportNamespace) {\n initStatements.push([exportName, null]);\n }\n }\n }\n\n // https://tc39.es/ecma262/#sec-module-namespace-exotic-objects\n // The [Exports] list is ordered as if an Array of those String values\n // had been sorted using %Array.prototype.sort% using undefined as comparefn\n initStatements.sort(([a], [b]) => {\n if (a < b) return -1;\n if (b < a) return 1;\n return 0;\n });\n\n const results = [];\n if (noIncompleteNsImportDetection) {\n for (const [, initStatement] of initStatements) {\n results.push(initStatement);\n }\n } else {\n // We generate init statements (`exports.a = exports.b = ... = void 0`)\n // for every 100 exported names to avoid deeply-nested AST structures.\n const chunkSize = 100;\n for (let i = 0; i < initStatements.length; i += chunkSize) {\n let uninitializedExportNames = [];\n for (let j = 0; j < chunkSize && i + j < initStatements.length; j++) {\n const [exportName, initStatement] = initStatements[i + j];\n if (initStatement !== null) {\n if (uninitializedExportNames.length > 0) {\n results.push(\n buildInitStatement(\n metadata,\n uninitializedExportNames,\n programPath.scope.buildUndefinedNode(),\n ),\n );\n // reset after uninitializedExportNames has been transformed\n // to init statements\n uninitializedExportNames = [];\n }\n results.push(initStatement);\n } else {\n uninitializedExportNames.push(exportName);\n }\n }\n if (uninitializedExportNames.length > 0) {\n results.push(\n buildInitStatement(\n metadata,\n uninitializedExportNames,\n programPath.scope.buildUndefinedNode(),\n ),\n );\n }\n }\n }\n\n return results;\n}\n\n/**\n * Given a set of export names, create a set of nested assignments to\n * initialize them all to a given expression.\n */\nconst InitTemplate = {\n computed: template.expression`EXPORTS[\"NAME\"] = VALUE`,\n default: template.expression`EXPORTS.NAME = VALUE`,\n define: template.expression`Object.defineProperty(EXPORTS, \"NAME\", { enumerable:true, value: void 0, writable: true })[\"NAME\"] = VALUE`,\n};\n\nfunction buildInitStatement(\n metadata: ModuleMetadata,\n exportNames: string[],\n initExpr: t.Expression,\n) {\n const { stringSpecifiers, exportName: EXPORTS } = metadata;\n return expressionStatement(\n exportNames.reduce((acc, exportName) => {\n const params = {\n EXPORTS,\n NAME: exportName,\n VALUE: acc,\n };\n\n if (exportName === \"__proto__\") {\n return InitTemplate.define(params);\n }\n\n if (stringSpecifiers.has(exportName)) {\n return InitTemplate.computed(params);\n }\n\n return InitTemplate.default(params);\n }, initExpr),\n );\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-module-transforms/package.json b/node_modules/@babel/helper-module-transforms/package.json index 63f51e03..895e0dda 100644 --- a/node_modules/@babel/helper-module-transforms/package.json +++ b/node_modules/@babel/helper-module-transforms/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-module-transforms", - "version": "7.23.0", + "version": "7.23.3", "description": "Babel helper functions for implementing ES6 module transformations", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-helper-module-transforms", @@ -22,8 +22,8 @@ "@babel/helper-validator-identifier": "^7.22.20" }, "devDependencies": { - "@babel/core": "^7.23.0", - "@babel/traverse": "^7.23.0" + "@babel/core": "^7.23.3", + "@babel/traverse": "^7.23.3" }, "peerDependencies": { "@babel/core": "^7.0.0" diff --git a/node_modules/@babel/helper-string-parser/README.md b/node_modules/@babel/helper-string-parser/README.md index 5a13b5fc..771b4700 100644 --- a/node_modules/@babel/helper-string-parser/README.md +++ b/node_modules/@babel/helper-string-parser/README.md @@ -2,7 +2,7 @@ > A utility package to parse strings -See our website [@babel/helper-string-parser](https://babeljs.io/docs/en/babel-helper-string-parser) for more information. +See our website [@babel/helper-string-parser](https://babeljs.io/docs/babel-helper-string-parser) for more information. ## Install diff --git a/node_modules/@babel/helper-string-parser/lib/index.js.map b/node_modules/@babel/helper-string-parser/lib/index.js.map index 9fb113de..fb00f4ee 100644 --- a/node_modules/@babel/helper-string-parser/lib/index.js.map +++ b/node_modules/@babel/helper-string-parser/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["isDigit","code","forbiddenNumericSeparatorSiblings","decBinOct","Set","hex","isAllowedNumericSeparatorSibling","bin","ch","oct","dec","readStringContents","type","input","pos","lineStart","curLine","errors","initialPos","initialLineStart","initialCurLine","out","firstInvalidLoc","chunkStart","length","unterminated","slice","charCodeAt","isStringEnd","res","readEscapedChar","str","containsInvalid","inTemplate","throwOnInvalid","readHexChar","String","fromCharCode","readCodePoint","fromCodePoint","strictNumericEscape","startPos","match","octalStr","octal","parseInt","next","len","forceLen","n","readInt","invalidEscapeSequence","radix","allowNumSeparator","bailOnError","start","forbiddenSiblings","isAllowedSibling","invalid","total","i","e","Infinity","val","prev","numericSeparatorInEscapeSequence","Number","isNaN","has","unexpectedNumericSeparator","_isDigit","invalidDigit","indexOf","invalidCodePoint"],"sources":["../src/index.ts"],"sourcesContent":["import * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = 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 === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\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 process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = input.slice(startPos, pos + 2).match(/^[0-7]+/)!;\n\n let octalStr = match[0];\n\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 (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\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: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["isDigit","code","forbiddenNumericSeparatorSiblings","decBinOct","Set","hex","isAllowedNumericSeparatorSibling","bin","ch","oct","dec","readStringContents","type","input","pos","lineStart","curLine","errors","initialPos","initialLineStart","initialCurLine","out","firstInvalidLoc","chunkStart","length","unterminated","slice","charCodeAt","isStringEnd","res","readEscapedChar","str","containsInvalid","inTemplate","throwOnInvalid","readHexChar","String","fromCharCode","readCodePoint","fromCodePoint","strictNumericEscape","startPos","match","octalStr","octal","parseInt","next","len","forceLen","n","readInt","invalidEscapeSequence","radix","allowNumSeparator","bailOnError","start","forbiddenSiblings","isAllowedSibling","invalid","total","i","e","Infinity","val","prev","numericSeparatorInEscapeSequence","Number","isNaN","has","unexpectedNumericSeparator","_isDigit","invalidDigit","indexOf","invalidCodePoint"],"sources":["../src/index.ts"],"sourcesContent":["import * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = 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 === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\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 process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = input.slice(startPos, pos + 2).match(/^[0-7]+/)!;\n\n let octalStr = match[0];\n\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 (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\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: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-string-parser/package.json b/node_modules/@babel/helper-string-parser/package.json index a977dea9..f05afe5b 100644 --- a/node_modules/@babel/helper-string-parser/package.json +++ b/node_modules/@babel/helper-string-parser/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-string-parser", - "version": "7.22.5", + "version": "7.23.4", "description": "A utility package to parse strings", "repository": { "type": "git", diff --git a/node_modules/@babel/helper-validator-option/lib/validator.js.map b/node_modules/@babel/helper-validator-option/lib/validator.js.map index b2bf117e..be2dd93d 100644 --- a/node_modules/@babel/helper-validator-option/lib/validator.js.map +++ b/node_modules/@babel/helper-validator-option/lib/validator.js.map @@ -1 +1 @@ -{"version":3,"names":["_findSuggestion","require","OptionValidator","constructor","descriptor","validateTopLevelOptions","options","TopLevelOptionShape","validOptionNames","Object","keys","option","includes","Error","formatMessage","findSuggestion","validateBooleanOption","name","value","defaultValue","undefined","invariant","validateStringOption","condition","message","exports"],"sources":["../src/validator.ts"],"sourcesContent":["import { findSuggestion } from \"./find-suggestion.ts\";\n\nexport class OptionValidator {\n declare descriptor: string;\n constructor(descriptor: string) {\n this.descriptor = descriptor;\n }\n\n /**\n * Validate if the given `options` follow the name of keys defined in the `TopLevelOptionShape`\n *\n * @param {Object} options\n * @param {Object} TopLevelOptionShape\n * An object with all the valid key names that `options` should be allowed to have\n * The property values of `TopLevelOptionShape` can be arbitrary\n * @memberof OptionValidator\n */\n validateTopLevelOptions(options: Object, TopLevelOptionShape: Object): void {\n const validOptionNames = Object.keys(TopLevelOptionShape);\n for (const option of Object.keys(options)) {\n if (!validOptionNames.includes(option)) {\n throw new Error(\n this.formatMessage(`'${option}' is not a valid top-level option.\n- Did you mean '${findSuggestion(option, validOptionNames)}'?`),\n );\n }\n }\n }\n\n // note: we do not consider rewrite them to high order functions\n // until we have to support `validateNumberOption`.\n validateBooleanOption<T>(\n name: string,\n value?: boolean,\n defaultValue?: T,\n ): boolean | T {\n if (value === undefined) {\n return defaultValue;\n } else {\n this.invariant(\n typeof value === \"boolean\",\n `'${name}' option must be a boolean.`,\n );\n }\n return value;\n }\n\n validateStringOption<T>(\n name: string,\n value?: string,\n defaultValue?: T,\n ): string | T {\n if (value === undefined) {\n return defaultValue;\n } else {\n this.invariant(\n typeof value === \"string\",\n `'${name}' option must be a string.`,\n );\n }\n return value;\n }\n /**\n * A helper interface copied from the `invariant` npm package.\n * It throws given `message` when `condition` is not met\n *\n * @param {boolean} condition\n * @param {string} message\n * @memberof OptionValidator\n */\n invariant(condition: boolean, message: string): void {\n if (!condition) {\n throw new Error(this.formatMessage(message));\n }\n }\n\n formatMessage(message: string): string {\n return `${this.descriptor}: ${message}`;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,CAAC;EAE3BC,WAAWA,CAACC,UAAkB,EAAE;IAC9B,IAAI,CAACA,UAAU,GAAGA,UAAU;EAC9B;EAWAC,uBAAuBA,CAACC,OAAe,EAAEC,mBAA2B,EAAQ;IAC1E,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACH,mBAAmB,CAAC;IACzD,KAAK,MAAMI,MAAM,IAAIF,MAAM,CAACC,IAAI,CAACJ,OAAO,CAAC,EAAE;MACzC,IAAI,CAACE,gBAAgB,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;QACtC,MAAM,IAAIE,KAAK,CACb,IAAI,CAACC,aAAa,CAAE,IAAGH,MAAO;AACxC,kBAAkB,IAAAI,8BAAc,EAACJ,MAAM,EAAEH,gBAAgB,CAAE,IAAG,CACtD,CAAC;MACH;IACF;EACF;EAIAQ,qBAAqBA,CACnBC,IAAY,EACZC,KAAe,EACfC,YAAgB,EACH;IACb,IAAID,KAAK,KAAKE,SAAS,EAAE;MACvB,OAAOD,YAAY;IACrB,CAAC,MAAM;MACL,IAAI,CAACE,SAAS,CACZ,OAAOH,KAAK,KAAK,SAAS,EACzB,IAAGD,IAAK,6BACX,CAAC;IACH;IACA,OAAOC,KAAK;EACd;EAEAI,oBAAoBA,CAClBL,IAAY,EACZC,KAAc,EACdC,YAAgB,EACJ;IACZ,IAAID,KAAK,KAAKE,SAAS,EAAE;MACvB,OAAOD,YAAY;IACrB,CAAC,MAAM;MACL,IAAI,CAACE,SAAS,CACZ,OAAOH,KAAK,KAAK,QAAQ,EACxB,IAAGD,IAAK,4BACX,CAAC;IACH;IACA,OAAOC,KAAK;EACd;EASAG,SAASA,CAACE,SAAkB,EAAEC,OAAe,EAAQ;IACnD,IAAI,CAACD,SAAS,EAAE;MACd,MAAM,IAAIV,KAAK,CAAC,IAAI,CAACC,aAAa,CAACU,OAAO,CAAC,CAAC;IAC9C;EACF;EAEAV,aAAaA,CAACU,OAAe,EAAU;IACrC,OAAQ,GAAE,IAAI,CAACpB,UAAW,KAAIoB,OAAQ,EAAC;EACzC;AACF;AAACC,OAAA,CAAAvB,eAAA,GAAAA,eAAA"}
\ No newline at end of file +{"version":3,"names":["_findSuggestion","require","OptionValidator","constructor","descriptor","validateTopLevelOptions","options","TopLevelOptionShape","validOptionNames","Object","keys","option","includes","Error","formatMessage","findSuggestion","validateBooleanOption","name","value","defaultValue","undefined","invariant","validateStringOption","condition","message","exports"],"sources":["../src/validator.ts"],"sourcesContent":["import { findSuggestion } from \"./find-suggestion.ts\";\n\nexport class OptionValidator {\n declare descriptor: string;\n constructor(descriptor: string) {\n this.descriptor = descriptor;\n }\n\n /**\n * Validate if the given `options` follow the name of keys defined in the `TopLevelOptionShape`\n *\n * @param {Object} options\n * @param {Object} TopLevelOptionShape\n * An object with all the valid key names that `options` should be allowed to have\n * The property values of `TopLevelOptionShape` can be arbitrary\n * @memberof OptionValidator\n */\n validateTopLevelOptions(options: Object, TopLevelOptionShape: Object): void {\n const validOptionNames = Object.keys(TopLevelOptionShape);\n for (const option of Object.keys(options)) {\n if (!validOptionNames.includes(option)) {\n throw new Error(\n this.formatMessage(`'${option}' is not a valid top-level option.\n- Did you mean '${findSuggestion(option, validOptionNames)}'?`),\n );\n }\n }\n }\n\n // note: we do not consider rewrite them to high order functions\n // until we have to support `validateNumberOption`.\n validateBooleanOption<T extends boolean>(\n name: string,\n value?: boolean,\n defaultValue?: T,\n ): boolean | T {\n if (value === undefined) {\n return defaultValue;\n } else {\n this.invariant(\n typeof value === \"boolean\",\n `'${name}' option must be a boolean.`,\n );\n }\n return value;\n }\n\n validateStringOption<T extends string>(\n name: string,\n value?: string,\n defaultValue?: T,\n ): string | T {\n if (value === undefined) {\n return defaultValue;\n } else {\n this.invariant(\n typeof value === \"string\",\n `'${name}' option must be a string.`,\n );\n }\n return value;\n }\n /**\n * A helper interface copied from the `invariant` npm package.\n * It throws given `message` when `condition` is not met\n *\n * @param {boolean} condition\n * @param {string} message\n * @memberof OptionValidator\n */\n invariant(condition: boolean, message: string): void {\n if (!condition) {\n throw new Error(this.formatMessage(message));\n }\n }\n\n formatMessage(message: string): string {\n return `${this.descriptor}: ${message}`;\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,CAAC;EAE3BC,WAAWA,CAACC,UAAkB,EAAE;IAC9B,IAAI,CAACA,UAAU,GAAGA,UAAU;EAC9B;EAWAC,uBAAuBA,CAACC,OAAe,EAAEC,mBAA2B,EAAQ;IAC1E,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,IAAI,CAACH,mBAAmB,CAAC;IACzD,KAAK,MAAMI,MAAM,IAAIF,MAAM,CAACC,IAAI,CAACJ,OAAO,CAAC,EAAE;MACzC,IAAI,CAACE,gBAAgB,CAACI,QAAQ,CAACD,MAAM,CAAC,EAAE;QACtC,MAAM,IAAIE,KAAK,CACb,IAAI,CAACC,aAAa,CAAE,IAAGH,MAAO;AACxC,kBAAkB,IAAAI,8BAAc,EAACJ,MAAM,EAAEH,gBAAgB,CAAE,IAAG,CACtD,CAAC;MACH;IACF;EACF;EAIAQ,qBAAqBA,CACnBC,IAAY,EACZC,KAAe,EACfC,YAAgB,EACH;IACb,IAAID,KAAK,KAAKE,SAAS,EAAE;MACvB,OAAOD,YAAY;IACrB,CAAC,MAAM;MACL,IAAI,CAACE,SAAS,CACZ,OAAOH,KAAK,KAAK,SAAS,EACzB,IAAGD,IAAK,6BACX,CAAC;IACH;IACA,OAAOC,KAAK;EACd;EAEAI,oBAAoBA,CAClBL,IAAY,EACZC,KAAc,EACdC,YAAgB,EACJ;IACZ,IAAID,KAAK,KAAKE,SAAS,EAAE;MACvB,OAAOD,YAAY;IACrB,CAAC,MAAM;MACL,IAAI,CAACE,SAAS,CACZ,OAAOH,KAAK,KAAK,QAAQ,EACxB,IAAGD,IAAK,4BACX,CAAC;IACH;IACA,OAAOC,KAAK;EACd;EASAG,SAASA,CAACE,SAAkB,EAAEC,OAAe,EAAQ;IACnD,IAAI,CAACD,SAAS,EAAE;MACd,MAAM,IAAIV,KAAK,CAAC,IAAI,CAACC,aAAa,CAACU,OAAO,CAAC,CAAC;IAC9C;EACF;EAEAV,aAAaA,CAACU,OAAe,EAAU;IACrC,OAAQ,GAAE,IAAI,CAACpB,UAAW,KAAIoB,OAAQ,EAAC;EACzC;AACF;AAACC,OAAA,CAAAvB,eAAA,GAAAA,eAAA"}
\ No newline at end of file diff --git a/node_modules/@babel/helper-validator-option/package.json b/node_modules/@babel/helper-validator-option/package.json index c6ed0317..8e58a9c2 100644 --- a/node_modules/@babel/helper-validator-option/package.json +++ b/node_modules/@babel/helper-validator-option/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helper-validator-option", - "version": "7.22.15", + "version": "7.23.5", "description": "Validate plugin/preset options", "repository": { "type": "git", diff --git a/node_modules/@babel/helpers/lib/helpers-generated.js b/node_modules/@babel/helpers/lib/helpers-generated.js index d06e9b31..656a51dc 100644 --- a/node_modules/@babel/helpers/lib/helpers-generated.js +++ b/node_modules/@babel/helpers/lib/helpers-generated.js @@ -13,14 +13,14 @@ function helper(minVersion, source) { }) }); } -var _default = Object.freeze({ +var _default = exports.default = Object.freeze({ AsyncGenerator: helper("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function AsyncGenerator(e){var r,t;function resume(r,t){try{var n=e[r](t),o=n.value,u=o instanceof OverloadYield;Promise.resolve(u?o.v:o).then((function(t){if(u){var i="return"===r?"return":"next";if(!o.k||t.done)return resume(i,t);t=e[i](t).value}settle(n.done?"return":"normal",t)}),(function(e){resume("throw",e)}))}catch(e){settle("throw",e)}}function settle(e,n){switch(e){case"return":r.resolve({value:n,done:!0});break;case"throw":r.reject(n);break;default:r.resolve({value:n,done:!1})}(r=r.next)?resume(r.key,r.arg):t=null}this._invoke=function(e,n){return new Promise((function(o,u){var i={key:e,arg:n,resolve:o,reject:u,next:null};t?t=t.next=i:(r=t=i,resume(e,n))}))},"function"!=typeof e.return&&(this.return=void 0)}AsyncGenerator.prototype["function"==typeof Symbol&&Symbol.asyncIterator||"@@asyncIterator"]=function(){return this},AsyncGenerator.prototype.next=function(e){return this._invoke("next",e)},AsyncGenerator.prototype.throw=function(e){return this._invoke("throw",e)},AsyncGenerator.prototype.return=function(e){return this._invoke("return",e)};'), OverloadYield: helper("7.18.14", "export default function _OverloadYield(t,e){this.v=t,this.k=e}"), - applyDecs: helper("7.17.8", 'function old_createMetadataMethodsForProperty(e,t,a,r){return{getMetadata:function(o){old_assertNotFinished(r,"getMetadata"),old_assertMetadataKey(o);var i=e[o];if(void 0!==i)if(1===t){var n=i.public;if(void 0!==n)return n[a]}else if(2===t){var l=i.private;if(void 0!==l)return l.get(a)}else if(Object.hasOwnProperty.call(i,"constructor"))return i.constructor},setMetadata:function(o,i){old_assertNotFinished(r,"setMetadata"),old_assertMetadataKey(o);var n=e[o];if(void 0===n&&(n=e[o]={}),1===t){var l=n.public;void 0===l&&(l=n.public={}),l[a]=i}else if(2===t){var s=n.priv;void 0===s&&(s=n.private=new Map),s.set(a,i)}else n.constructor=i}}}function old_convertMetadataMapToFinal(e,t){var a=e[Symbol.metadata||Symbol.for("Symbol.metadata")],r=Object.getOwnPropertySymbols(t);if(0!==r.length){for(var o=0;o<r.length;o++){var i=r[o],n=t[i],l=a?a[i]:null,s=n.public,c=l?l.public:null;s&&c&&Object.setPrototypeOf(s,c);var d=n.private;if(d){var u=Array.from(d.values()),f=l?l.private:null;f&&(u=u.concat(f)),n.private=u}l&&Object.setPrototypeOf(n,l)}a&&Object.setPrototypeOf(t,a),e[Symbol.metadata||Symbol.for("Symbol.metadata")]=t}}function old_createAddInitializerMethod(e,t){return function(a){old_assertNotFinished(t,"addInitializer"),old_assertCallable(a,"An initializer"),e.push(a)}}function old_memberDec(e,t,a,r,o,i,n,l,s){var c;switch(i){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var d,u,f={kind:c,name:l?"#"+t:t,isStatic:n,isPrivate:l},p={v:!1};if(0!==i&&(f.addInitializer=old_createAddInitializerMethod(o,p)),l){d=2,u=Symbol(t);var v={};0===i?(v.get=a.get,v.set=a.set):2===i?v.get=function(){return a.value}:(1!==i&&3!==i||(v.get=function(){return a.get.call(this)}),1!==i&&4!==i||(v.set=function(e){a.set.call(this,e)})),f.access=v}else d=1,u=t;try{return e(s,Object.assign(f,old_createMetadataMethodsForProperty(r,d,u,p)))}finally{p.v=!0}}function old_assertNotFinished(e,t){if(e.v)throw new Error("attempted to call "+t+" after decoration was finished")}function old_assertMetadataKey(e){if("symbol"!=typeof e)throw new TypeError("Metadata keys must be symbols, received: "+e)}function old_assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function old_assertValidReturnValue(e,t){var a=typeof t;if(1===e){if("object"!==a||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&old_assertCallable(t.get,"accessor.get"),void 0!==t.set&&old_assertCallable(t.set,"accessor.set"),void 0!==t.init&&old_assertCallable(t.init,"accessor.init"),void 0!==t.initializer&&old_assertCallable(t.initializer,"accessor.initializer")}else if("function"!==a){var r;throw r=0===e?"field":10===e?"class":"method",new TypeError(r+" decorators must return a function or void 0")}}function old_getInit(e){var t;return null==(t=e.init)&&(t=e.initializer)&&"undefined"!=typeof console&&console.warn(".initializer has been renamed to .init as of March 2022"),t}function old_applyMemberDec(e,t,a,r,o,i,n,l,s){var c,d,u,f,p,v,h=a[0];if(n?c=0===o||1===o?{get:a[3],set:a[4]}:3===o?{get:a[3]}:4===o?{set:a[3]}:{value:a[3]}:0!==o&&(c=Object.getOwnPropertyDescriptor(t,r)),1===o?u={get:c.get,set:c.set}:2===o?u=c.value:3===o?u=c.get:4===o&&(u=c.set),"function"==typeof h)void 0!==(f=old_memberDec(h,r,c,l,s,o,i,n,u))&&(old_assertValidReturnValue(o,f),0===o?d=f:1===o?(d=old_getInit(f),p=f.get||u.get,v=f.set||u.set,u={get:p,set:v}):u=f);else for(var y=h.length-1;y>=0;y--){var b;if(void 0!==(f=old_memberDec(h[y],r,c,l,s,o,i,n,u)))old_assertValidReturnValue(o,f),0===o?b=f:1===o?(b=old_getInit(f),p=f.get||u.get,v=f.set||u.set,u={get:p,set:v}):u=f,void 0!==b&&(void 0===d?d=b:"function"==typeof d?d=[d,b]:d.push(b))}if(0===o||1===o){if(void 0===d)d=function(e,t){return t};else if("function"!=typeof d){var g=d;d=function(e,t){for(var a=t,r=0;r<g.length;r++)a=g[r].call(e,a);return a}}else{var m=d;d=function(e,t){return m.call(e,t)}}e.push(d)}0!==o&&(1===o?(c.get=u.get,c.set=u.set):2===o?c.value=u:3===o?c.get=u:4===o&&(c.set=u),n?1===o?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===o?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,r,c))}function old_applyMemberDecs(e,t,a,r,o){for(var i,n,l=new Map,s=new Map,c=0;c<o.length;c++){var d=o[c];if(Array.isArray(d)){var u,f,p,v=d[1],h=d[2],y=d.length>3,b=v>=5;if(b?(u=t,f=r,0!==(v-=5)&&(p=n=n||[])):(u=t.prototype,f=a,0!==v&&(p=i=i||[])),0!==v&&!y){var g=b?s:l,m=g.get(h)||0;if(!0===m||3===m&&4!==v||4===m&&3!==v)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);!m&&v>2?g.set(h,v):g.set(h,!0)}old_applyMemberDec(e,u,d,h,v,b,y,f,p)}}old_pushInitializers(e,i),old_pushInitializers(e,n)}function old_pushInitializers(e,t){t&&e.push((function(e){for(var a=0;a<t.length;a++)t[a].call(e);return e}))}function old_applyClassDecs(e,t,a,r){if(r.length>0){for(var o=[],i=t,n=t.name,l=r.length-1;l>=0;l--){var s={v:!1};try{var c=Object.assign({kind:"class",name:n,addInitializer:old_createAddInitializerMethod(o,s)},old_createMetadataMethodsForProperty(a,0,n,s)),d=r[l](i,c)}finally{s.v=!0}void 0!==d&&(old_assertValidReturnValue(10,d),i=d)}e.push(i,(function(){for(var e=0;e<o.length;e++)o[e].call(i)}))}}export default function applyDecs(e,t,a){var r=[],o={},i={};return old_applyMemberDecs(r,e,i,o,t),old_convertMetadataMapToFinal(e.prototype,i),old_applyClassDecs(r,e,o,a),old_convertMetadataMapToFinal(e,o),r}'), - applyDecs2203: helper("7.19.0", 'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call "+t+" after decoration was finished")}(t,"addInitializer"),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:s?"#"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r){var a;throw a=0===e?"field":10===e?"class":"method",new TypeError(a+" decorators must return a function or void 0")}}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),"function"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;if(void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u)))assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:"function"==typeof l?l=[l,g]:l.push(g))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===n?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,a,c))}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:"class",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e<a.length;e++)a[e].call(n)}))}}(a,e,r),a}}var applyDecs2203Impl;export default function applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}'), - applyDecs2203R: helper("7.20.0", 'function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call "+t+" after decoration was finished")}(t,"addInitializer"),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,n,a,i,s,o){var c;switch(a){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:s?"#"+t:t,static:i,private:s},p={v:!1};0!==a&&(f.addInitializer=createAddInitializerMethod(n,p)),0===a?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r){var n;throw n=0===e?"field":10===e?"class":"method",new TypeError(n+" decorators must return a function or void 0")}}function applyMemberDec(e,t,r,n,a,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===a||1===a?{get:r[3],set:r[4]}:3===a?{get:r[3]}:4===a?{set:r[3]}:{value:r[3]}:0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?u={get:c.get,set:c.set}:2===a?u=c.value:3===a?u=c.get:4===a&&(u=c.set),"function"==typeof h)void 0!==(f=memberDec(h,n,c,o,a,i,s,u))&&(assertValidReturnValue(a,f),0===a?l=f:1===a?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;if(void 0!==(f=memberDec(h[v],n,c,o,a,i,s,u)))assertValidReturnValue(a,f),0===a?g=f:1===a?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:"function"==typeof l?l=[l,g]:l.push(g))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var y=l;l=function(e,t){for(var r=t,n=0;n<y.length;n++)r=y[n].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==a&&(1===a?(c.get=u.get,c.set=u.set):2===a?c.value=u:3===a?c.get=u:4===a&&(c.set=u),s?1===a?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===a?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,s=new Map,o=0;o<t.length;o++){var c=t[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!==(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}'), - applyDecs2301: helper("7.21.0", 'import checkInRHS from"checkInRHS";function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call "+t+" after decoration was finished")}(t,"addInitializer"),assertCallable(r,"An initializer"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError("Attempted to access private element on non-instance")}function memberDec(e,t,r,n,a,i,s,o,c){var u;switch(a){case 1:u="accessor";break;case 2:u="method";break;case 3:u="getter";break;case 4:u="setter";break;default:u="field"}var l,f,p={kind:u,name:s?"#"+t:t,static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPrivate(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():function(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r){var n;throw n=0===e?"field":10===e?"class":"method",new TypeError(n+" decorators must return a function or void 0")}}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,g=r[0];if(s?u=0===a||1===a?{get:(p=r[3],function(){return p(this)}),set:curryThis2(r[4])}:3===a?{get:r[3]}:4===a?{set:r[3]}:{value:r[3]}:0!==a&&(u=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:u.get,set:u.set}:2===a?f=u.value:3===a?f=u.get:4===a&&(f=u.set),"function"==typeof g)void 0!==(d=memberDec(g,n,u,o,a,i,s,f,c))&&(assertValidReturnValue(a,d),0===a?l=d:1===a?(l=d.init,h=d.get||f.get,v=d.set||f.set,f={get:h,set:v}):f=d);else for(var y=g.length-1;y>=0;y--){var m;if(void 0!==(d=memberDec(g[y],n,u,o,a,i,s,f,c)))assertValidReturnValue(a,d),0===a?m=d:1===a?(m=d.init,h=d.get||f.get,v=d.set||f.set,f={get:h,set:v}):f=d,void 0!==m&&(void 0===l?l=m:"function"==typeof l?l=[l,m]:l.push(m))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var b=l;l=function(e,t){for(var r=t,n=0;n<b.length;n++)r=b[n].call(e,r);return r}}else{var I=l;l=function(e,t){return I.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=f.get,u.set=f.set):2===a?u.value=f:3===a?u.get=f:4===a&&(u.set=f),s?1===a?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===a?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,g=d>=5,y=r;if(g?(f=e,0!==(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),y=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=g?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,g,v,p,y)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}'), - applyDecs2305: helper("7.21.0", 'import checkInRHS from"checkInRHS";function createAddInitializerMethod(e,t){return function(r){assertNotFinished(t,"addInitializer"),assertCallable(r,"An initializer"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError("Attempted to access private element on non-instance")}function memberDec(e,t,r,a,n,i,s,o,c,l,u){var f;switch(i){case 1:f="accessor";break;case 2:f="method";break;case 3:f="getter";break;case 4:f="setter";break;default:f="field"}var d,p,h={kind:f,name:o?"#"+r:r,static:s,private:o,metadata:u},v={v:!1};if(0!==i&&(h.addInitializer=createAddInitializerMethod(n,v)),o||0!==i&&2!==i)if(2===i)d=function(e){return assertInstanceIfPrivate(l,e),a.value};else{var y=0===i||1===i;(y||3===i)&&(d=o?function(e){return assertInstanceIfPrivate(l,e),a.get.call(e)}:function(e){return a.get.call(e)}),(y||4===i)&&(p=o?function(e,t){assertInstanceIfPrivate(l,e),a.set.call(e,t)}:function(e,t){a.set.call(e,t)})}else d=function(e){return e[r]},0===i&&(p=function(e,t){e[r]=t});var m=o?l.bind():function(e){return r in e};h.access=d&&p?{get:d,set:p,has:m}:d?{get:d,has:m}:{set:p,has:m};try{return e.call(t,c,h)}finally{v.v=!0}}function assertNotFinished(e,t){if(e.v)throw new Error("attempted to call "+t+" after decoration was finished")}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r){var a;throw a=0===e?"field":5===e?"class":"method",new TypeError(a+" decorators must return a function or void 0")}}function curryThis1(e){return function(){return e(this)}}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,a,n,i,s,o,c,l,u){var f,d,p,h,v,y,m=r[0];a||Array.isArray(m)||(m=[m]),o?f=0===i||1===i?{get:curryThis1(r[3]),set:curryThis2(r[4])}:3===i?{get:r[3]}:4===i?{set:r[3]}:{value:r[3]}:0!==i&&(f=Object.getOwnPropertyDescriptor(t,n)),1===i?p={get:f.get,set:f.set}:2===i?p=f.value:3===i?p=f.get:4===i&&(p=f.set);for(var g=a?2:1,b=m.length-1;b>=0;b-=g){var I;if(void 0!==(h=memberDec(m[b],a?m[b-1]:void 0,n,f,c,i,s,o,p,l,u)))assertValidReturnValue(i,h),0===i?I=h:1===i?(I=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==I&&(void 0===d?d=I:"function"==typeof d?d=[d,I]:d.push(I))}if(0===i||1===i){if(void 0===d)d=function(e,t){return t};else if("function"!=typeof d){var w=d;d=function(e,t){for(var r=t,a=w.length-1;a>=0;a--)r=w[a].call(e,r);return r}}else{var M=d;d=function(e,t){return M.call(e,t)}}e.push(d)}0!==i&&(1===i?(f.get=p.get,f.set=p.set):2===i?f.value=p:3===i?f.get=p:4===i&&(f.set=p),o?1===i?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===i?e.push(p):e.push((function(e,t){return p.call(e,t)})):Object.defineProperty(t,n,f))}function applyMemberDecs(e,t,r,a){for(var n,i,s,o=[],c=new Map,l=new Map,u=0;u<t.length;u++){var f=t[u];if(Array.isArray(f)){var d,p,h=f[1],v=f[2],y=f.length>3,m=16&h,g=!!(8&h),b=r;if(h&=7,g?(d=e,0!==h&&(p=i=i||[]),y&&!s&&(s=function(t){return checkInRHS(t)===e}),b=s):(d=e.prototype,0!==h&&(p=n=n||[])),0!==h&&!y){var I=g?l:c,w=I.get(v)||0;if(!0===w||3===w&&4!==h||4===w&&3!==h)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+v);I.set(v,!(!w&&h>2)||h)}applyMemberDec(o,d,f,m,v,h,g,y,p,b,a)}}return pushInitializers(o,n),pushInitializers(o,i),o}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}function applyClassDecs(e,t,r,a){if(t.length){for(var n=[],i=e,s=e.name,o=r?2:1,c=t.length-1;c>=0;c-=o){var l={v:!1};try{var u=t[c].call(r?t[c-1]:void 0,i,{kind:"class",name:s,addInitializer:createAddInitializerMethod(n,l),metadata:a})}finally{l.v=!0}void 0!==u&&(assertValidReturnValue(5,u),i=u)}return[defineMetadata(i,a),function(){for(var e=0;e<n.length;e++)n[e].call(i)}]}}function defineMetadata(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}export default function applyDecs2305(e,t,r,a,n,i){if(arguments.length>=6)var s=i[Symbol.metadata||Symbol.for("Symbol.metadata")];var o=Object.create(void 0===s?null:s),c=applyMemberDecs(e,t,n,o);return r.length||defineMetadata(e,o),{e:c,get c(){return applyClassDecs(e,r,a,o)}}}'), + applyDecs: helper("7.17.8", 'import setFunctionName from"setFunctionName";import toPropertyKey from"toPropertyKey";function old_createMetadataMethodsForProperty(e,t,a,r){return{getMetadata:function(o){old_assertNotFinished(r,"getMetadata"),old_assertMetadataKey(o);var i=e[o];if(void 0!==i)if(1===t){var n=i.public;if(void 0!==n)return n[a]}else if(2===t){var l=i.private;if(void 0!==l)return l.get(a)}else if(Object.hasOwnProperty.call(i,"constructor"))return i.constructor},setMetadata:function(o,i){old_assertNotFinished(r,"setMetadata"),old_assertMetadataKey(o);var n=e[o];if(void 0===n&&(n=e[o]={}),1===t){var l=n.public;void 0===l&&(l=n.public={}),l[a]=i}else if(2===t){var s=n.priv;void 0===s&&(s=n.private=new Map),s.set(a,i)}else n.constructor=i}}}function old_convertMetadataMapToFinal(e,t){var a=e[Symbol.metadata||Symbol.for("Symbol.metadata")],r=Object.getOwnPropertySymbols(t);if(0!==r.length){for(var o=0;o<r.length;o++){var i=r[o],n=t[i],l=a?a[i]:null,s=n.public,c=l?l.public:null;s&&c&&Object.setPrototypeOf(s,c);var d=n.private;if(d){var u=Array.from(d.values()),f=l?l.private:null;f&&(u=u.concat(f)),n.private=u}l&&Object.setPrototypeOf(n,l)}a&&Object.setPrototypeOf(t,a),e[Symbol.metadata||Symbol.for("Symbol.metadata")]=t}}function old_createAddInitializerMethod(e,t){return function(a){old_assertNotFinished(t,"addInitializer"),old_assertCallable(a,"An initializer"),e.push(a)}}function old_memberDec(e,t,a,r,o,i,n,l,s){var c;switch(i){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var d,u,f={kind:c,name:l?"#"+t:toPropertyKey(t),isStatic:n,isPrivate:l},p={v:!1};if(0!==i&&(f.addInitializer=old_createAddInitializerMethod(o,p)),l){d=2,u=Symbol(t);var v={};0===i?(v.get=a.get,v.set=a.set):2===i?v.get=function(){return a.value}:(1!==i&&3!==i||(v.get=function(){return a.get.call(this)}),1!==i&&4!==i||(v.set=function(e){a.set.call(this,e)})),f.access=v}else d=1,u=t;try{return e(s,Object.assign(f,old_createMetadataMethodsForProperty(r,d,u,p)))}finally{p.v=!0}}function old_assertNotFinished(e,t){if(e.v)throw new Error("attempted to call "+t+" after decoration was finished")}function old_assertMetadataKey(e){if("symbol"!=typeof e)throw new TypeError("Metadata keys must be symbols, received: "+e)}function old_assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function old_assertValidReturnValue(e,t){var a=typeof t;if(1===e){if("object"!==a||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&old_assertCallable(t.get,"accessor.get"),void 0!==t.set&&old_assertCallable(t.set,"accessor.set"),void 0!==t.init&&old_assertCallable(t.init,"accessor.init"),void 0!==t.initializer&&old_assertCallable(t.initializer,"accessor.initializer")}else if("function"!==a)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function old_getInit(e){var t;return null==(t=e.init)&&(t=e.initializer)&&"undefined"!=typeof console&&console.warn(".initializer has been renamed to .init as of March 2022"),t}function old_applyMemberDec(e,t,a,r,o,i,n,l,s){var c,d,u,f,p,v,y,h=a[0];if(n?(0===o||1===o?(c={get:a[3],set:a[4]},u="get"):3===o?(c={get:a[3]},u="get"):4===o?(c={set:a[3]},u="set"):c={value:a[3]},0!==o&&(1===o&&setFunctionName(a[4],"#"+r,"set"),setFunctionName(a[3],"#"+r,u))):0!==o&&(c=Object.getOwnPropertyDescriptor(t,r)),1===o?f={get:c.get,set:c.set}:2===o?f=c.value:3===o?f=c.get:4===o&&(f=c.set),"function"==typeof h)void 0!==(p=old_memberDec(h,r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?d=p:1===o?(d=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p);else for(var m=h.length-1;m>=0;m--){var b;void 0!==(p=old_memberDec(h[m],r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?b=p:1===o?(b=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p,void 0!==b&&(void 0===d?d=b:"function"==typeof d?d=[d,b]:d.push(b)))}if(0===o||1===o){if(void 0===d)d=function(e,t){return t};else if("function"!=typeof d){var g=d;d=function(e,t){for(var a=t,r=0;r<g.length;r++)a=g[r].call(e,a);return a}}else{var _=d;d=function(e,t){return _.call(e,t)}}e.push(d)}0!==o&&(1===o?(c.get=f.get,c.set=f.set):2===o?c.value=f:3===o?c.get=f:4===o&&(c.set=f),n?1===o?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===o?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,r,c))}function old_applyMemberDecs(e,t,a,r,o){for(var i,n,l=new Map,s=new Map,c=0;c<o.length;c++){var d=o[c];if(Array.isArray(d)){var u,f,p,v=d[1],y=d[2],h=d.length>3,m=v>=5;if(m?(u=t,f=r,0!=(v-=5)&&(p=n=n||[])):(u=t.prototype,f=a,0!==v&&(p=i=i||[])),0!==v&&!h){var b=m?s:l,g=b.get(y)||0;if(!0===g||3===g&&4!==v||4===g&&3!==v)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+y);!g&&v>2?b.set(y,v):b.set(y,!0)}old_applyMemberDec(e,u,d,y,v,m,h,f,p)}}old_pushInitializers(e,i),old_pushInitializers(e,n)}function old_pushInitializers(e,t){t&&e.push((function(e){for(var a=0;a<t.length;a++)t[a].call(e);return e}))}function old_applyClassDecs(e,t,a,r){if(r.length>0){for(var o=[],i=t,n=t.name,l=r.length-1;l>=0;l--){var s={v:!1};try{var c=Object.assign({kind:"class",name:n,addInitializer:old_createAddInitializerMethod(o,s)},old_createMetadataMethodsForProperty(a,0,n,s)),d=r[l](i,c)}finally{s.v=!0}void 0!==d&&(old_assertValidReturnValue(10,d),i=d)}e.push(i,(function(){for(var e=0;e<o.length;e++)o[e].call(i)}))}}export default function applyDecs(e,t,a){var r=[],o={},i={};return old_applyMemberDecs(r,e,i,o,t),old_convertMetadataMapToFinal(e.prototype,i),old_applyClassDecs(r,e,o,a),old_convertMetadataMapToFinal(e,o),r}'), + applyDecs2203: helper("7.19.0", 'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:s?"#"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),"function"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:"function"==typeof l?l=[l,g]:l.push(g)))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===n?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,a,c))}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:"class",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e<a.length;e++)a[e].call(n)}))}}(a,e,r),a}}var applyDecs2203Impl;export default function applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}'), + applyDecs2203R: helper("7.20.0", 'import setFunctionName from"setFunctionName";import toPropertyKey from"toPropertyKey";function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function memberDec(e,t,r,n,a,i,o,s){var c;switch(a){case 1:c="accessor";break;case 2:c="method";break;case 3:c="getter";break;case 4:c="setter";break;default:c="field"}var l,u,f={kind:c,name:o?"#"+t:toPropertyKey(t),static:i,private:o},p={v:!1};0!==a&&(f.addInitializer=createAddInitializerMethod(n,p)),0===a?o?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(s,f)}finally{p.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function applyMemberDec(e,t,r,n,a,i,o,s){var c,l,u,f,p,d,h,v=r[0];if(o?(0===a||1===a?(c={get:r[3],set:r[4]},u="get"):3===a?(c={get:r[3]},u="get"):4===a?(c={set:r[3]},u="set"):c={value:r[3]},0!==a&&(1===a&&setFunctionName(r[4],"#"+n,"set"),setFunctionName(r[3],"#"+n,u))):0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:c.get,set:c.set}:2===a?f=c.value:3===a?f=c.get:4===a&&(f=c.set),"function"==typeof v)void 0!==(p=memberDec(v,n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?l=p:1===a?(l=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p);else for(var g=v.length-1;g>=0;g--){var y;void 0!==(p=memberDec(v[g],n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?y=p:1===a?(y=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p,void 0!==y&&(void 0===l?l=y:"function"==typeof l?l=[l,y]:l.push(y)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var m=l;l=function(e,t){for(var r=t,n=0;n<m.length;n++)r=m[n].call(e,r);return r}}else{var b=l;l=function(e,t){return b.call(e,t)}}e.push(l)}0!==a&&(1===a?(c.get=f.get,c.set=f.set):2===a?c.value=f:3===a?c.get=f:4===a&&(c.set=f),o?1===a?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===a?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,o=new Map,s=0;s<t.length;s++){var c=t[s];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!=(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?o:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var o={v:!1};try{var s=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,o)})}finally{o.v=!0}void 0!==s&&(assertValidReturnValue(10,s),n=s)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}'), + applyDecs2301: helper("7.21.0", 'import checkInRHS from"checkInRHS";import setFunctionName from"setFunctionName";import toPropertyKey from"toPropertyKey";function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished")}(t),assertCallable(r,"An initializer"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError("Attempted to access private element on non-instance")}function memberDec(e,t,r,n,a,i,s,o,c){var u;switch(a){case 1:u="accessor";break;case 2:u="method";break;case 3:u="getter";break;case 4:u="setter";break;default:u="field"}var l,f,p={kind:u,name:s?"#"+t:toPropertyKey(t),static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPrivate(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():function(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertCallable(e,t){if("function"!=typeof e)throw new TypeError(t+" must be a function")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if("object"!==r||null===t)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0");void 0!==t.get&&assertCallable(t.get,"accessor.get"),void 0!==t.set&&assertCallable(t.set,"accessor.set"),void 0!==t.init&&assertCallable(t.init,"accessor.init")}else if("function"!==r)throw new TypeError((0===e?"field":10===e?"class":"method")+" decorators must return a function or void 0")}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,y,g=r[0];if(s?(0===a||1===a?(u={get:(d=r[3],function(){return d(this)}),set:curryThis2(r[4])},f="get"):3===a?(u={get:r[3]},f="get"):4===a?(u={set:r[3]},f="set"):u={value:r[3]},0!==a&&(1===a&&setFunctionName(u.set,"#"+n,"set"),setFunctionName(u[f||"value"],"#"+n,f))):0!==a&&(u=Object.getOwnPropertyDescriptor(t,n)),1===a?p={get:u.get,set:u.set}:2===a?p=u.value:3===a?p=u.get:4===a&&(p=u.set),"function"==typeof g)void 0!==(h=memberDec(g,n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?l=h:1===a?(l=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h);else for(var m=g.length-1;m>=0;m--){var b;void 0!==(h=memberDec(g[m],n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?b=h:1===a?(b=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==b&&(void 0===l?l=b:"function"==typeof l?l=[l,b]:l.push(b)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if("function"!=typeof l){var I=l;l=function(e,t){for(var r=t,n=0;n<I.length;n++)r=I[n].call(e,r);return r}}else{var w=l;l=function(e,t){return w.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=p.get,u.set=p.set):2===a?u.value=p:3===a?u.get=p:4===a&&(u.set=p),s?1===a?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===a?e.push(p):e.push((function(e,t){return p.call(e,t)})):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,y=d>=5,g=r;if(y?(f=e,0!=(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),g=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=y?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,y,v,p,g)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:"class",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}'), + applyDecs2305: helper("7.21.0", 'import checkInRHS from"checkInRHS";import setFunctionName from"setFunctionName";import toPropertyKey from"toPropertyKey";export default function applyDecs2305(e,t,r,n,o,a){function i(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function c(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function s(e,t,r,n){if("function"!=typeof e&&(n||void 0!==e))throw new TypeError(t+" must "+(r||"be")+" a function"+(n?"":" or undefined"));return e}function applyDec(e,t,r,n,o,a,c,u,l,f,p,d,h){function m(e){if(!h(e))throw new TypeError("Attempted to access private element on non-instance")}var y,v,g=t[0],b=t[3],w=!u;if(!w){r||Array.isArray(g)||(g=[g]);var S={},A=[],P=3===o?"get":4===o||d?"set":"value";f?(p||d?S={get:setFunctionName((function(){return b(this)}),n,"get"),set:function(e){t[4](this,e)}}:S[P]=b,p||setFunctionName(S[P],n,2===o?"":P)):p||(S=Object.getOwnPropertyDescriptor(e,n))}for(var j=g.length-1;j>=0;j-=r?2:1){var D=g[j],E=r?g[j-1]:void 0,I={},O={kind:["field","accessor","method","getter","setter","field","class"][o],name:n,metadata:a,addInitializer:function(e,t){if(e.v)throw new Error("attempted to call addInitializer after decoration was finished");s(t,"An initializer","be",!0),c.push(t)}.bind(null,I)};try{if(w)v=D.call(E,e,O);else{var k,F;O.static=l,O.private=f,f||!p&&2!==o?2===o?k=function(e){return m(e),S.value}:((o<2||3===o)&&(k=i(S,"get",f&&m)),(o<2||4===o)&&(F=i(S,"set",f&&m))):(k=function(e){return e[n]},p&&(F=function(e,t){e[n]=t}));var N=O.access={has:f?h.bind():function(e){return n in e}};if(k&&(N.get=k),F&&(N.set=F),v=D.call(E,d?{get:S.get,set:S.set}:S[P],O),d){if("object"==typeof v&&v)(y=s(v.get,"accessor.get"))&&(S.get=y),(y=s(v.set,"accessor.set"))&&(S.set=y),(y=s(v.init,"accessor.init"))&&A.push(y);else if(void 0!==v)throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0")}else s(v,(p?"field":"method")+" decorators","return")&&(p?A.push(v):S[P]=v)}}finally{I.v=!0}}return(p||d)&&u.push((function(e,t){for(var r=A.length-1;r>=0;r--)t=A[r].call(e,t);return t})),p||w||(f?d?u.push(i(S,"get"),i(S,"set")):u.push(2===o?S[P]:i.call.bind(S[P])):Object.defineProperty(e,n,S)),v}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for("Symbol.metadata"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var l=a[Symbol.metadata||Symbol.for("Symbol.metadata")];var f=Object.create(null==l?null:l),p=function(e,t,r,n){var o,a,i=[],s=function(t){return checkInRHS(t)===e},u=new Map;function l(e){e&&i.push(c.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var d=p[1],h=p[2],m=p.length>3,y=16&d,v=!!(8&d),g=0==(d&=7),b=h+"/"+v;if(!g&&!m){var w=u.get(b);if(!0===w||3===w&&4!==d||4===w&&3!==d)throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: "+h);u.set(b,!(d>2)||d)}applyDec(v?e:e.prototype,p,y,m?"#"+h:toPropertyKey(h),d,n,v?a=a||[]:o=o||[],i,v,m,g,1===d,v&&m?s:r)}}return l(o),l(a),i}(e,t,o,f);return r.length||u(e,f),{e:p,get c(){var t=[];return r.length&&[u(s(applyDec(e,[r],n,e.name,5,f,t),"class decorators","return")||e,f),c.bind(null,t,e)]}}}'), asyncGeneratorDelegate: helper("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promise((function(n){n(t[e](r))})),{done:!1,value:new OverloadYield(r,1)}}return e["undefined"!=typeof Symbol&&Symbol.iterator||"@@iterator"]=function(){return this},e.next=function(t){return n?(n=!1,t):pump("next",t)},"function"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t;return pump("throw",t)}),"function"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump("return",t)}),e}'), asyncIterator: helper("7.15.9", 'export default function _asyncIterator(r){var n,t,o,e=2;for("undefined"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.iterator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t="@@asyncIterator",o="@@iterator"}throw new TypeError("Object is not async iterable")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+" is not an object."));var n=r.done;return Promise.resolve(r.value).then((function(r){return{value:r,done:n}}))}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}'), awaitAsyncGenerator: helper("7.0.0-beta.0", 'import OverloadYield from"OverloadYield";export default function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}'), @@ -34,10 +34,12 @@ var _default = Object.freeze({ jsx: helper("7.0.0-beta.0", 'var REACT_ELEMENT_TYPE;export default function _createRawReactElement(e,r,E,l){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103);var o=e&&e.defaultProps,n=arguments.length-3;if(r||0===n||(r={children:void 0}),1===n)r.children=l;else if(n>1){for(var t=new Array(n),f=0;f<n;f++)t[f]=arguments[f+3];r.children=t}if(r&&o)for(var i in o)void 0===r[i]&&(r[i]=o[i]);else r||(r=o||{});return{$$typeof:REACT_ELEMENT_TYPE,type:e,key:void 0===E?null:""+E,ref:null,props:r,_owner:null}}'), objectSpread2: helper("7.5.0", 'import defineProperty from"defineProperty";function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}export default function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}'), regeneratorRuntime: helper("7.18.0", 'export default function _regeneratorRuntime(){"use strict";\n/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i="function"==typeof Symbol?Symbol:{},a=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",u=i.toStringTag||"@@toStringTag";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},"")}catch(t){define=function(t,e,r){return t[e]=r}}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,"_invoke",{value:makeInvokeMethod(t,r,c)}),a}function tryCatch(t,e,r){try{return{type:"normal",arg:t.call(e,r)}}catch(t){return{type:"throw",arg:t}}}e.wrap=wrap;var h="suspendedStart",l="suspendedYield",f="executing",s="completed",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){["next","throw","return"].forEach((function(e){define(t,e,(function(t){return this._invoke(e,t)}))}))}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if("throw"!==c.type){var u=c.arg,h=u.value;return h&&"object"==typeof h&&n.call(h,"__await")?e.resolve(h.__await).then((function(t){invoke("next",t,i,a)}),(function(t){invoke("throw",t,i,a)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return invoke("throw",t,i,a)}))}a(c.arg)}var r;o(this,"_invoke",{value:function(t,n){function callInvokeWithMethodAndArg(){return new e((function(e,r){invoke(t,n,e,r)}))}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw new Error("Generator is already running");if(o===s){if("throw"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=f;var p=tryCatch(e,r,n);if("normal"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done}}"throw"===p.type&&(o=s,n.method="throw",n.arg=p.arg)}}}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,"throw"===n&&e.iterator.return&&(r.method="return",r.arg=t,maybeInvokeDelegate(e,r),"throw"===r.method)||"return"!==n&&(r.method="throw",r.arg=new TypeError("The iterator does not provide a \'"+n+"\' method")),y;var i=tryCatch(o,e.iterator,r.arg);if("throw"===i.type)return r.method="throw",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,"return"!==r.method&&(r.method="next",r.arg=t),r.delegate=null,y):a:(r.method="throw",r.arg=new TypeError("iterator result is not an object"),r.delegate=null,y)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e||""===e){var r=e[a];if(r)return r.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next};return i.next=i}}throw new TypeError(typeof e+" is not iterable")}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,"constructor",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,"constructor",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,"GeneratorFunction")),t.prototype=Object.create(g),t},e.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,(function(){return this})),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},defineIteratorMethods(g),define(g,u,"Generator"),define(g,a,(function(){return this})),define(g,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)"t"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type="throw",a.arg=e,r.next=n,o&&(r.method="next",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return handle("end");if(i.tryLoc<=this.prev){var c=n.call(i,"catchLoc"),u=n.call(i,"finallyLoc");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!u)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if("throw"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},"next"===this.method&&(this.arg=t),y}},e}'), + setFunctionName: helper("7.23.6", 'export default function setFunctionName(e,t,n){"symbol"==typeof t&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch(e){}return e}'), + toPrimitive: helper("7.1.5", 'export default function toPrimitive(t,r){if("object"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||"default");if("object"!=typeof i)return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===r?String:Number)(t)}'), + toPropertyKey: helper("7.1.5", 'import toPrimitive from"toPrimitive";export default function toPropertyKey(t){var i=toPrimitive(t,"string");return"symbol"==typeof i?i:String(i)}'), typeof: helper("7.0.0-beta.0", 'export default function _typeof(o){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&"function"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?"symbol":typeof o},_typeof(o)}'), - using: helper("7.22.0", 'export default function _using(o,e,n){if(null==e)return e;if("object"!=typeof e)throw new TypeError("using declarations can only be used with objects, null, or undefined.");if(n)var r=e[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(null==r&&(r=e[Symbol.dispose||Symbol.for("Symbol.dispose")]),"function"!=typeof r)throw new TypeError("Property [Symbol.dispose] is not a function.");return o.push({v:e,d:r,a:n}),e}'), + using: helper("7.22.0", 'export default function _using(o,n,e){if(null==n)return n;if(Object(n)!==n)throw new TypeError("using declarations can only be used with objects, functions, null, or undefined.");if(e)var r=n[Symbol.asyncDispose||Symbol.for("Symbol.asyncDispose")];if(null==r&&(r=n[Symbol.dispose||Symbol.for("Symbol.dispose")]),"function"!=typeof r)throw new TypeError("Property [Symbol.dispose] is not a function.");return o.push({v:n,d:r,a:e}),n}'), wrapRegExp: helper("7.19.0", 'import setPrototypeOf from"setPrototypeOf";import inherits from"inherits";export default function _wrapRegExp(){_wrapRegExp=function(e,r){return new BabelRegExp(e,void 0,r)};var e=RegExp.prototype,r=new WeakMap;function BabelRegExp(e,t,p){var o=new RegExp(e,t);return r.set(o,p||r.get(e)),setPrototypeOf(o,BabelRegExp.prototype)}function buildGroups(e,t){var p=r.get(t);return Object.keys(p).reduce((function(r,t){var o=p[t];if("number"==typeof o)r[t]=e[o];else{for(var i=0;void 0===e[o[i]]&&i+1<o.length;)i++;r[t]=e[o[i]]}return r}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(r){var t=e.exec.call(this,r);if(t){t.groups=buildGroups(t,this);var p=t.indices;p&&(p.groups=buildGroups(p,this))}return t},BabelRegExp.prototype[Symbol.replace]=function(t,p){if("string"==typeof p){var o=r.get(this);return e[Symbol.replace].call(this,t,p.replace(/\\$<([^>]+)>/g,(function(e,r){var t=o[r];return"$"+(Array.isArray(t)?t.join("$"):t)})))}if("function"==typeof p){var i=this;return e[Symbol.replace].call(this,t,(function(){var e=arguments;return"object"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(buildGroups(e,i)),p.apply(this,e)}))}return e[Symbol.replace].call(this,t,p)},_wrapRegExp.apply(this,arguments)}') }); -exports.default = _default; //# sourceMappingURL=helpers-generated.js.map diff --git a/node_modules/@babel/helpers/lib/helpers-generated.js.map b/node_modules/@babel/helpers/lib/helpers-generated.js.map index abeb4638..51998e22 100644 --- a/node_modules/@babel/helpers/lib/helpers-generated.js.map +++ b/node_modules/@babel/helpers/lib/helpers-generated.js.map @@ -1 +1 @@ -{"version":3,"names":["_template","require","helper","minVersion","source","Object","freeze","ast","template","program","preserveComments","_default","AsyncGenerator","OverloadYield","applyDecs","applyDecs2203","applyDecs2203R","applyDecs2301","applyDecs2305","asyncGeneratorDelegate","asyncIterator","awaitAsyncGenerator","checkInRHS","defineAccessor","dispose","importDeferProxy","interopRequireWildcard","iterableToArrayLimit","iterableToArrayLimitLoose","jsx","objectSpread2","regeneratorRuntime","typeof","using","wrapRegExp","exports","default"],"sources":["../src/helpers-generated.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'yarn gulp generate-runtime-helpers'\n */\n\nimport template from \"@babel/template\";\n\nfunction helper(minVersion: string, source: string) {\n return Object.freeze({\n minVersion,\n ast: () => template.program.ast(source, { preserveComments: true }),\n });\n}\n\nexport default Object.freeze({\n AsyncGenerator: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function AsyncGenerator(e){var r,t;function resume(r,t){try{var n=e[r](t),o=n.value,u=o instanceof OverloadYield;Promise.resolve(u?o.v:o).then((function(t){if(u){var i=\"return\"===r?\"return\":\"next\";if(!o.k||t.done)return resume(i,t);t=e[i](t).value}settle(n.done?\"return\":\"normal\",t)}),(function(e){resume(\"throw\",e)}))}catch(e){settle(\"throw\",e)}}function settle(e,n){switch(e){case\"return\":r.resolve({value:n,done:!0});break;case\"throw\":r.reject(n);break;default:r.resolve({value:n,done:!1})}(r=r.next)?resume(r.key,r.arg):t=null}this._invoke=function(e,n){return new Promise((function(o,u){var i={key:e,arg:n,resolve:o,reject:u,next:null};t?t=t.next=i:(r=t=i,resume(e,n))}))},\"function\"!=typeof e.return&&(this.return=void 0)}AsyncGenerator.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},AsyncGenerator.prototype.next=function(e){return this._invoke(\"next\",e)},AsyncGenerator.prototype.throw=function(e){return this._invoke(\"throw\",e)},AsyncGenerator.prototype.return=function(e){return this._invoke(\"return\",e)};',\n ),\n OverloadYield: helper(\n \"7.18.14\",\n \"export default function _OverloadYield(t,e){this.v=t,this.k=e}\",\n ),\n applyDecs: helper(\n \"7.17.8\",\n 'function old_createMetadataMethodsForProperty(e,t,a,r){return{getMetadata:function(o){old_assertNotFinished(r,\"getMetadata\"),old_assertMetadataKey(o);var i=e[o];if(void 0!==i)if(1===t){var n=i.public;if(void 0!==n)return n[a]}else if(2===t){var l=i.private;if(void 0!==l)return l.get(a)}else if(Object.hasOwnProperty.call(i,\"constructor\"))return i.constructor},setMetadata:function(o,i){old_assertNotFinished(r,\"setMetadata\"),old_assertMetadataKey(o);var n=e[o];if(void 0===n&&(n=e[o]={}),1===t){var l=n.public;void 0===l&&(l=n.public={}),l[a]=i}else if(2===t){var s=n.priv;void 0===s&&(s=n.private=new Map),s.set(a,i)}else n.constructor=i}}}function old_convertMetadataMapToFinal(e,t){var a=e[Symbol.metadata||Symbol.for(\"Symbol.metadata\")],r=Object.getOwnPropertySymbols(t);if(0!==r.length){for(var o=0;o<r.length;o++){var i=r[o],n=t[i],l=a?a[i]:null,s=n.public,c=l?l.public:null;s&&c&&Object.setPrototypeOf(s,c);var d=n.private;if(d){var u=Array.from(d.values()),f=l?l.private:null;f&&(u=u.concat(f)),n.private=u}l&&Object.setPrototypeOf(n,l)}a&&Object.setPrototypeOf(t,a),e[Symbol.metadata||Symbol.for(\"Symbol.metadata\")]=t}}function old_createAddInitializerMethod(e,t){return function(a){old_assertNotFinished(t,\"addInitializer\"),old_assertCallable(a,\"An initializer\"),e.push(a)}}function old_memberDec(e,t,a,r,o,i,n,l,s){var c;switch(i){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var d,u,f={kind:c,name:l?\"#\"+t:t,isStatic:n,isPrivate:l},p={v:!1};if(0!==i&&(f.addInitializer=old_createAddInitializerMethod(o,p)),l){d=2,u=Symbol(t);var v={};0===i?(v.get=a.get,v.set=a.set):2===i?v.get=function(){return a.value}:(1!==i&&3!==i||(v.get=function(){return a.get.call(this)}),1!==i&&4!==i||(v.set=function(e){a.set.call(this,e)})),f.access=v}else d=1,u=t;try{return e(s,Object.assign(f,old_createMetadataMethodsForProperty(r,d,u,p)))}finally{p.v=!0}}function old_assertNotFinished(e,t){if(e.v)throw new Error(\"attempted to call \"+t+\" after decoration was finished\")}function old_assertMetadataKey(e){if(\"symbol\"!=typeof e)throw new TypeError(\"Metadata keys must be symbols, received: \"+e)}function old_assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function old_assertValidReturnValue(e,t){var a=typeof t;if(1===e){if(\"object\"!==a||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&old_assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&old_assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&old_assertCallable(t.init,\"accessor.init\"),void 0!==t.initializer&&old_assertCallable(t.initializer,\"accessor.initializer\")}else if(\"function\"!==a){var r;throw r=0===e?\"field\":10===e?\"class\":\"method\",new TypeError(r+\" decorators must return a function or void 0\")}}function old_getInit(e){var t;return null==(t=e.init)&&(t=e.initializer)&&\"undefined\"!=typeof console&&console.warn(\".initializer has been renamed to .init as of March 2022\"),t}function old_applyMemberDec(e,t,a,r,o,i,n,l,s){var c,d,u,f,p,v,h=a[0];if(n?c=0===o||1===o?{get:a[3],set:a[4]}:3===o?{get:a[3]}:4===o?{set:a[3]}:{value:a[3]}:0!==o&&(c=Object.getOwnPropertyDescriptor(t,r)),1===o?u={get:c.get,set:c.set}:2===o?u=c.value:3===o?u=c.get:4===o&&(u=c.set),\"function\"==typeof h)void 0!==(f=old_memberDec(h,r,c,l,s,o,i,n,u))&&(old_assertValidReturnValue(o,f),0===o?d=f:1===o?(d=old_getInit(f),p=f.get||u.get,v=f.set||u.set,u={get:p,set:v}):u=f);else for(var y=h.length-1;y>=0;y--){var b;if(void 0!==(f=old_memberDec(h[y],r,c,l,s,o,i,n,u)))old_assertValidReturnValue(o,f),0===o?b=f:1===o?(b=old_getInit(f),p=f.get||u.get,v=f.set||u.set,u={get:p,set:v}):u=f,void 0!==b&&(void 0===d?d=b:\"function\"==typeof d?d=[d,b]:d.push(b))}if(0===o||1===o){if(void 0===d)d=function(e,t){return t};else if(\"function\"!=typeof d){var g=d;d=function(e,t){for(var a=t,r=0;r<g.length;r++)a=g[r].call(e,a);return a}}else{var m=d;d=function(e,t){return m.call(e,t)}}e.push(d)}0!==o&&(1===o?(c.get=u.get,c.set=u.set):2===o?c.value=u:3===o?c.get=u:4===o&&(c.set=u),n?1===o?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===o?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,r,c))}function old_applyMemberDecs(e,t,a,r,o){for(var i,n,l=new Map,s=new Map,c=0;c<o.length;c++){var d=o[c];if(Array.isArray(d)){var u,f,p,v=d[1],h=d[2],y=d.length>3,b=v>=5;if(b?(u=t,f=r,0!==(v-=5)&&(p=n=n||[])):(u=t.prototype,f=a,0!==v&&(p=i=i||[])),0!==v&&!y){var g=b?s:l,m=g.get(h)||0;if(!0===m||3===m&&4!==v||4===m&&3!==v)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+h);!m&&v>2?g.set(h,v):g.set(h,!0)}old_applyMemberDec(e,u,d,h,v,b,y,f,p)}}old_pushInitializers(e,i),old_pushInitializers(e,n)}function old_pushInitializers(e,t){t&&e.push((function(e){for(var a=0;a<t.length;a++)t[a].call(e);return e}))}function old_applyClassDecs(e,t,a,r){if(r.length>0){for(var o=[],i=t,n=t.name,l=r.length-1;l>=0;l--){var s={v:!1};try{var c=Object.assign({kind:\"class\",name:n,addInitializer:old_createAddInitializerMethod(o,s)},old_createMetadataMethodsForProperty(a,0,n,s)),d=r[l](i,c)}finally{s.v=!0}void 0!==d&&(old_assertValidReturnValue(10,d),i=d)}e.push(i,(function(){for(var e=0;e<o.length;e++)o[e].call(i)}))}}export default function applyDecs(e,t,a){var r=[],o={},i={};return old_applyMemberDecs(r,e,i,o,t),old_convertMetadataMapToFinal(e.prototype,i),old_applyClassDecs(r,e,o,a),old_convertMetadataMapToFinal(e,o),r}',\n ),\n applyDecs2203: helper(\n \"7.19.0\",\n 'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call \"+t+\" after decoration was finished\")}(t,\"addInitializer\"),assertCallable(r,\"An initializer\"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var l,u,f={kind:c,name:s?\"#\"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r){var a;throw a=0===e?\"field\":10===e?\"class\":\"method\",new TypeError(a+\" decorators must return a function or void 0\")}}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),\"function\"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;if(void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u)))assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:\"function\"==typeof l?l=[l,g]:l.push(g))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===n?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,a,c))}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:\"class\",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e<a.length;e++)a[e].call(n)}))}}(a,e,r),a}}var applyDecs2203Impl;export default function applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}',\n ),\n applyDecs2203R: helper(\n \"7.20.0\",\n 'function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call \"+t+\" after decoration was finished\")}(t,\"addInitializer\"),assertCallable(r,\"An initializer\"),e.push(r)}}function memberDec(e,t,r,n,a,i,s,o){var c;switch(a){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var l,u,f={kind:c,name:s?\"#\"+t:t,static:i,private:s},p={v:!1};0!==a&&(f.addInitializer=createAddInitializerMethod(n,p)),0===a?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r){var n;throw n=0===e?\"field\":10===e?\"class\":\"method\",new TypeError(n+\" decorators must return a function or void 0\")}}function applyMemberDec(e,t,r,n,a,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===a||1===a?{get:r[3],set:r[4]}:3===a?{get:r[3]}:4===a?{set:r[3]}:{value:r[3]}:0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?u={get:c.get,set:c.set}:2===a?u=c.value:3===a?u=c.get:4===a&&(u=c.set),\"function\"==typeof h)void 0!==(f=memberDec(h,n,c,o,a,i,s,u))&&(assertValidReturnValue(a,f),0===a?l=f:1===a?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;if(void 0!==(f=memberDec(h[v],n,c,o,a,i,s,u)))assertValidReturnValue(a,f),0===a?g=f:1===a?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:\"function\"==typeof l?l=[l,g]:l.push(g))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var y=l;l=function(e,t){for(var r=t,n=0;n<y.length;n++)r=y[n].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==a&&(1===a?(c.get=u.get,c.set=u.set):2===a?c.value=u:3===a?c.get=u:4===a&&(c.set=u),s?1===a?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===a?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,s=new Map,o=0;o<t.length;o++){var c=t[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!==(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:\"class\",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}',\n ),\n applyDecs2301: helper(\n \"7.21.0\",\n 'import checkInRHS from\"checkInRHS\";function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call \"+t+\" after decoration was finished\")}(t,\"addInitializer\"),assertCallable(r,\"An initializer\"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError(\"Attempted to access private element on non-instance\")}function memberDec(e,t,r,n,a,i,s,o,c){var u;switch(a){case 1:u=\"accessor\";break;case 2:u=\"method\";break;case 3:u=\"getter\";break;case 4:u=\"setter\";break;default:u=\"field\"}var l,f,p={kind:u,name:s?\"#\"+t:t,static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPrivate(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():function(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r){var n;throw n=0===e?\"field\":10===e?\"class\":\"method\",new TypeError(n+\" decorators must return a function or void 0\")}}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,g=r[0];if(s?u=0===a||1===a?{get:(p=r[3],function(){return p(this)}),set:curryThis2(r[4])}:3===a?{get:r[3]}:4===a?{set:r[3]}:{value:r[3]}:0!==a&&(u=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:u.get,set:u.set}:2===a?f=u.value:3===a?f=u.get:4===a&&(f=u.set),\"function\"==typeof g)void 0!==(d=memberDec(g,n,u,o,a,i,s,f,c))&&(assertValidReturnValue(a,d),0===a?l=d:1===a?(l=d.init,h=d.get||f.get,v=d.set||f.set,f={get:h,set:v}):f=d);else for(var y=g.length-1;y>=0;y--){var m;if(void 0!==(d=memberDec(g[y],n,u,o,a,i,s,f,c)))assertValidReturnValue(a,d),0===a?m=d:1===a?(m=d.init,h=d.get||f.get,v=d.set||f.set,f={get:h,set:v}):f=d,void 0!==m&&(void 0===l?l=m:\"function\"==typeof l?l=[l,m]:l.push(m))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var b=l;l=function(e,t){for(var r=t,n=0;n<b.length;n++)r=b[n].call(e,r);return r}}else{var I=l;l=function(e,t){return I.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=f.get,u.set=f.set):2===a?u.value=f:3===a?u.get=f:4===a&&(u.set=f),s?1===a?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===a?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,g=d>=5,y=r;if(g?(f=e,0!==(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),y=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=g?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,g,v,p,y)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:\"class\",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}',\n ),\n applyDecs2305: helper(\n \"7.21.0\",\n 'import checkInRHS from\"checkInRHS\";function createAddInitializerMethod(e,t){return function(r){assertNotFinished(t,\"addInitializer\"),assertCallable(r,\"An initializer\"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError(\"Attempted to access private element on non-instance\")}function memberDec(e,t,r,a,n,i,s,o,c,l,u){var f;switch(i){case 1:f=\"accessor\";break;case 2:f=\"method\";break;case 3:f=\"getter\";break;case 4:f=\"setter\";break;default:f=\"field\"}var d,p,h={kind:f,name:o?\"#\"+r:r,static:s,private:o,metadata:u},v={v:!1};if(0!==i&&(h.addInitializer=createAddInitializerMethod(n,v)),o||0!==i&&2!==i)if(2===i)d=function(e){return assertInstanceIfPrivate(l,e),a.value};else{var y=0===i||1===i;(y||3===i)&&(d=o?function(e){return assertInstanceIfPrivate(l,e),a.get.call(e)}:function(e){return a.get.call(e)}),(y||4===i)&&(p=o?function(e,t){assertInstanceIfPrivate(l,e),a.set.call(e,t)}:function(e,t){a.set.call(e,t)})}else d=function(e){return e[r]},0===i&&(p=function(e,t){e[r]=t});var m=o?l.bind():function(e){return r in e};h.access=d&&p?{get:d,set:p,has:m}:d?{get:d,has:m}:{set:p,has:m};try{return e.call(t,c,h)}finally{v.v=!0}}function assertNotFinished(e,t){if(e.v)throw new Error(\"attempted to call \"+t+\" after decoration was finished\")}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r){var a;throw a=0===e?\"field\":5===e?\"class\":\"method\",new TypeError(a+\" decorators must return a function or void 0\")}}function curryThis1(e){return function(){return e(this)}}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,a,n,i,s,o,c,l,u){var f,d,p,h,v,y,m=r[0];a||Array.isArray(m)||(m=[m]),o?f=0===i||1===i?{get:curryThis1(r[3]),set:curryThis2(r[4])}:3===i?{get:r[3]}:4===i?{set:r[3]}:{value:r[3]}:0!==i&&(f=Object.getOwnPropertyDescriptor(t,n)),1===i?p={get:f.get,set:f.set}:2===i?p=f.value:3===i?p=f.get:4===i&&(p=f.set);for(var g=a?2:1,b=m.length-1;b>=0;b-=g){var I;if(void 0!==(h=memberDec(m[b],a?m[b-1]:void 0,n,f,c,i,s,o,p,l,u)))assertValidReturnValue(i,h),0===i?I=h:1===i?(I=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==I&&(void 0===d?d=I:\"function\"==typeof d?d=[d,I]:d.push(I))}if(0===i||1===i){if(void 0===d)d=function(e,t){return t};else if(\"function\"!=typeof d){var w=d;d=function(e,t){for(var r=t,a=w.length-1;a>=0;a--)r=w[a].call(e,r);return r}}else{var M=d;d=function(e,t){return M.call(e,t)}}e.push(d)}0!==i&&(1===i?(f.get=p.get,f.set=p.set):2===i?f.value=p:3===i?f.get=p:4===i&&(f.set=p),o?1===i?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===i?e.push(p):e.push((function(e,t){return p.call(e,t)})):Object.defineProperty(t,n,f))}function applyMemberDecs(e,t,r,a){for(var n,i,s,o=[],c=new Map,l=new Map,u=0;u<t.length;u++){var f=t[u];if(Array.isArray(f)){var d,p,h=f[1],v=f[2],y=f.length>3,m=16&h,g=!!(8&h),b=r;if(h&=7,g?(d=e,0!==h&&(p=i=i||[]),y&&!s&&(s=function(t){return checkInRHS(t)===e}),b=s):(d=e.prototype,0!==h&&(p=n=n||[])),0!==h&&!y){var I=g?l:c,w=I.get(v)||0;if(!0===w||3===w&&4!==h||4===w&&3!==h)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+v);I.set(v,!(!w&&h>2)||h)}applyMemberDec(o,d,f,m,v,h,g,y,p,b,a)}}return pushInitializers(o,n),pushInitializers(o,i),o}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}function applyClassDecs(e,t,r,a){if(t.length){for(var n=[],i=e,s=e.name,o=r?2:1,c=t.length-1;c>=0;c-=o){var l={v:!1};try{var u=t[c].call(r?t[c-1]:void 0,i,{kind:\"class\",name:s,addInitializer:createAddInitializerMethod(n,l),metadata:a})}finally{l.v=!0}void 0!==u&&(assertValidReturnValue(5,u),i=u)}return[defineMetadata(i,a),function(){for(var e=0;e<n.length;e++)n[e].call(i)}]}}function defineMetadata(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(\"Symbol.metadata\"),{configurable:!0,enumerable:!0,value:t})}export default function applyDecs2305(e,t,r,a,n,i){if(arguments.length>=6)var s=i[Symbol.metadata||Symbol.for(\"Symbol.metadata\")];var o=Object.create(void 0===s?null:s),c=applyMemberDecs(e,t,n,o);return r.length||defineMetadata(e,o),{e:c,get c(){return applyClassDecs(e,r,a,o)}}}',\n ),\n asyncGeneratorDelegate: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promise((function(n){n(t[e](r))})),{done:!1,value:new OverloadYield(r,1)}}return e[\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\"]=function(){return this},e.next=function(t){return n?(n=!1,t):pump(\"next\",t)},\"function\"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t;return pump(\"throw\",t)}),\"function\"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump(\"return\",t)}),e}',\n ),\n asyncIterator: helper(\n \"7.15.9\",\n 'export default function _asyncIterator(r){var n,t,o,e=2;for(\"undefined\"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.iterator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t=\"@@asyncIterator\",o=\"@@iterator\"}throw new TypeError(\"Object is not async iterable\")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+\" is not an object.\"));var n=r.done;return Promise.resolve(r.value).then((function(r){return{value:r,done:n}}))}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}',\n ),\n awaitAsyncGenerator: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}',\n ),\n checkInRHS: helper(\n \"7.20.5\",\n 'export default function _checkInRHS(e){if(Object(e)!==e)throw TypeError(\"right-hand side of \\'in\\' should be an object, got \"+(null!==e?typeof e:\"null\"));return e}',\n ),\n defineAccessor: helper(\n \"7.20.7\",\n \"export default function _defineAccessor(e,r,n,t){var c={configurable:!0,enumerable:!0};return c[e]=t,Object.defineProperty(r,n,c)}\",\n ),\n dispose: helper(\n \"7.22.0\",\n 'function dispose_SuppressedError(r,e){return\"undefined\"!=typeof SuppressedError?dispose_SuppressedError=SuppressedError:(dispose_SuppressedError=function(r,e){this.suppressed=r,this.error=e,this.stack=(new Error).stack},dispose_SuppressedError.prototype=Object.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(r,e)}export default function _dispose(r,e,s){function next(){for(;r.length>0;)try{var o=r.pop(),p=o.d.call(o.v);if(o.a)return Promise.resolve(p).then(next,err)}catch(r){return err(r)}if(s)throw e}function err(r){return e=s?new dispose_SuppressedError(r,e):r,s=!0,next()}return next()}',\n ),\n importDeferProxy: helper(\n \"7.23.0\",\n \"export default function _importDeferProxy(e){var t=null,constValue=function(e){return function(){return e}},proxy=function(r){return function(n,o,f){return null===t&&(t=e()),r(t,o,f)}};return new Proxy({},{defineProperty:constValue(!1),deleteProperty:constValue(!1),get:proxy(Reflect.get),getOwnPropertyDescriptor:proxy(Reflect.getOwnPropertyDescriptor),getPrototypeOf:constValue(null),isExtensible:constValue(!1),has:proxy(Reflect.has),ownKeys:proxy(Reflect.ownKeys),preventExtensions:constValue(!0),set:constValue(!1),setPrototypeOf:constValue(!1)})}\",\n ),\n interopRequireWildcard: helper(\n \"7.14.0\",\n 'function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}export default function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=typeof e&&\"function\"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}',\n ),\n iterableToArrayLimit: helper(\n \"7.0.0-beta.0\",\n 'export default function _iterableToArrayLimit(r,l){var t=null==r?null:\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}',\n ),\n iterableToArrayLimitLoose: helper(\n \"7.0.0-beta.0\",\n 'export default function _iterableToArrayLimitLoose(e,r){var t=e&&(\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"]);if(null!=t){var o,l=[];for(t=t.call(e);e.length<r&&!(o=t.next()).done;)l.push(o.value);return l}}',\n ),\n jsx: helper(\n \"7.0.0-beta.0\",\n 'var REACT_ELEMENT_TYPE;export default function _createRawReactElement(e,r,E,l){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103);var o=e&&e.defaultProps,n=arguments.length-3;if(r||0===n||(r={children:void 0}),1===n)r.children=l;else if(n>1){for(var t=new Array(n),f=0;f<n;f++)t[f]=arguments[f+3];r.children=t}if(r&&o)for(var i in o)void 0===r[i]&&(r[i]=o[i]);else r||(r=o||{});return{$$typeof:REACT_ELEMENT_TYPE,type:e,key:void 0===E?null:\"\"+E,ref:null,props:r,_owner:null}}',\n ),\n objectSpread2: helper(\n \"7.5.0\",\n 'import defineProperty from\"defineProperty\";function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}export default function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}',\n ),\n regeneratorRuntime: helper(\n \"7.18.0\",\n 'export default function _regeneratorRuntime(){\"use strict\";\\n/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",c=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},\"\")}catch(t){define=function(t,e,r){return t[e]=r}}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,\"_invoke\",{value:makeInvokeMethod(t,r,c)}),a}function tryCatch(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)}}catch(t){return{type:\"throw\",arg:t}}}e.wrap=wrap;var h=\"suspendedStart\",l=\"suspendedYield\",f=\"executing\",s=\"completed\",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){[\"next\",\"throw\",\"return\"].forEach((function(e){define(t,e,(function(t){return this._invoke(e,t)}))}))}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if(\"throw\"!==c.type){var u=c.arg,h=u.value;return h&&\"object\"==typeof h&&n.call(h,\"__await\")?e.resolve(h.__await).then((function(t){invoke(\"next\",t,i,a)}),(function(t){invoke(\"throw\",t,i,a)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return invoke(\"throw\",t,i,a)}))}a(c.arg)}var r;o(this,\"_invoke\",{value:function(t,n){function callInvokeWithMethodAndArg(){return new e((function(e,r){invoke(t,n,e,r)}))}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw new Error(\"Generator is already running\");if(o===s){if(\"throw\"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);o=f;var p=tryCatch(e,r,n);if(\"normal\"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done}}\"throw\"===p.type&&(o=s,n.method=\"throw\",n.arg=p.arg)}}}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,\"throw\"===n&&e.iterator.return&&(r.method=\"return\",r.arg=t,maybeInvokeDelegate(e,r),\"throw\"===r.method)||\"return\"!==n&&(r.method=\"throw\",r.arg=new TypeError(\"The iterator does not provide a \\'\"+n+\"\\' method\")),y;var i=tryCatch(o,e.iterator,r.arg);if(\"throw\"===i.type)return r.method=\"throw\",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,\"return\"!==r.method&&(r.method=\"next\",r.arg=t),r.delegate=null,y):a:(r.method=\"throw\",r.arg=new TypeError(\"iterator result is not an object\"),r.delegate=null,y)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e||\"\"===e){var r=e[a];if(r)return r.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next};return i.next=i}}throw new TypeError(typeof e+\" is not iterable\")}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,\"constructor\",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,\"constructor\",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||\"GeneratorFunction\"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,\"GeneratorFunction\")),t.prototype=Object.create(g),t},e.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,(function(){return this})),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},defineIteratorMethods(g),define(g,u,\"Generator\"),define(g,a,(function(){return this})),define(g,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)\"t\"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type=\"throw\",a.arg=e,r.next=n,o&&(r.method=\"next\",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return handle(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=t),y}},e}',\n ),\n typeof: helper(\n \"7.0.0-beta.0\",\n 'export default function _typeof(o){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&\"function\"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?\"symbol\":typeof o},_typeof(o)}',\n ),\n using: helper(\n \"7.22.0\",\n 'export default function _using(o,e,n){if(null==e)return e;if(\"object\"!=typeof e)throw new TypeError(\"using declarations can only be used with objects, null, or undefined.\");if(n)var r=e[Symbol.asyncDispose||Symbol.for(\"Symbol.asyncDispose\")];if(null==r&&(r=e[Symbol.dispose||Symbol.for(\"Symbol.dispose\")]),\"function\"!=typeof r)throw new TypeError(\"Property [Symbol.dispose] is not a function.\");return o.push({v:e,d:r,a:n}),e}',\n ),\n wrapRegExp: helper(\n \"7.19.0\",\n 'import setPrototypeOf from\"setPrototypeOf\";import inherits from\"inherits\";export default function _wrapRegExp(){_wrapRegExp=function(e,r){return new BabelRegExp(e,void 0,r)};var e=RegExp.prototype,r=new WeakMap;function BabelRegExp(e,t,p){var o=new RegExp(e,t);return r.set(o,p||r.get(e)),setPrototypeOf(o,BabelRegExp.prototype)}function buildGroups(e,t){var p=r.get(t);return Object.keys(p).reduce((function(r,t){var o=p[t];if(\"number\"==typeof o)r[t]=e[o];else{for(var i=0;void 0===e[o[i]]&&i+1<o.length;)i++;r[t]=e[o[i]]}return r}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(r){var t=e.exec.call(this,r);if(t){t.groups=buildGroups(t,this);var p=t.indices;p&&(p.groups=buildGroups(p,this))}return t},BabelRegExp.prototype[Symbol.replace]=function(t,p){if(\"string\"==typeof p){var o=r.get(this);return e[Symbol.replace].call(this,t,p.replace(/\\\\$<([^>]+)>/g,(function(e,r){var t=o[r];return\"$\"+(Array.isArray(t)?t.join(\"$\"):t)})))}if(\"function\"==typeof p){var i=this;return e[Symbol.replace].call(this,t,(function(){var e=arguments;return\"object\"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(buildGroups(e,i)),p.apply(this,e)}))}return e[Symbol.replace].call(this,t,p)},_wrapRegExp.apply(this,arguments)}',\n ),\n});\n"],"mappings":";;;;;;AAKA,IAAAA,SAAA,GAAAC,OAAA;AAEA,SAASC,MAAMA,CAACC,UAAkB,EAAEC,MAAc,EAAE;EAClD,OAAOC,MAAM,CAACC,MAAM,CAAC;IACnBH,UAAU;IACVI,GAAG,EAAEA,CAAA,KAAMC,iBAAQ,CAACC,OAAO,CAACF,GAAG,CAACH,MAAM,EAAE;MAAEM,gBAAgB,EAAE;IAAK,CAAC;EACpE,CAAC,CAAC;AACJ;AAAC,IAAAC,QAAA,GAEcN,MAAM,CAACC,MAAM,CAAC;EAC3BM,cAAc,EAAEV,MAAM,CACpB,cAAc,EACd,wmCACF,CAAC;EACDW,aAAa,EAAEX,MAAM,CACnB,SAAS,EACT,gEACF,CAAC;EACDY,SAAS,EAAEZ,MAAM,CACf,QAAQ,EACR,+iLACF,CAAC;EACDa,aAAa,EAAEb,MAAM,CACnB,QAAQ,EACR,gzHACF,CAAC;EACDc,cAAc,EAAEd,MAAM,CACpB,QAAQ,EACR,mzHACF,CAAC;EACDe,aAAa,EAAEf,MAAM,CACnB,QAAQ,EACR,42IACF,CAAC;EACDgB,aAAa,EAAEhB,MAAM,CACnB,QAAQ,EACR,2nJACF,CAAC;EACDiB,sBAAsB,EAAEjB,MAAM,CAC5B,cAAc,EACd,kiBACF,CAAC;EACDkB,aAAa,EAAElB,MAAM,CACnB,QAAQ,EACR,0kCACF,CAAC;EACDmB,mBAAmB,EAAEnB,MAAM,CACzB,cAAc,EACd,yHACF,CAAC;EACDoB,UAAU,EAAEpB,MAAM,CAChB,QAAQ,EACR,qKACF,CAAC;EACDqB,cAAc,EAAErB,MAAM,CACpB,QAAQ,EACR,oIACF,CAAC;EACDsB,OAAO,EAAEtB,MAAM,CACb,QAAQ,EACR,kqBACF,CAAC;EACDuB,gBAAgB,EAAEvB,MAAM,CACtB,QAAQ,EACR,0iBACF,CAAC;EACDwB,sBAAsB,EAAExB,MAAM,CAC5B,QAAQ,EACR,urBACF,CAAC;EACDyB,oBAAoB,EAAEzB,MAAM,CAC1B,cAAc,EACd,ibACF,CAAC;EACD0B,yBAAyB,EAAE1B,MAAM,CAC/B,cAAc,EACd,sOACF,CAAC;EACD2B,GAAG,EAAE3B,MAAM,CACT,cAAc,EACd,6hBACF,CAAC;EACD4B,aAAa,EAAE5B,MAAM,CACnB,OAAO,EACP,uqBACF,CAAC;EACD6B,kBAAkB,EAAE7B,MAAM,CACxB,QAAQ,EACR,g+OACF,CAAC;EACD8B,MAAM,EAAE9B,MAAM,CACZ,cAAc,EACd,mSACF,CAAC;EACD+B,KAAK,EAAE/B,MAAM,CACX,QAAQ,EACR,4aACF,CAAC;EACDgC,UAAU,EAAEhC,MAAM,CAChB,QAAQ,EACR,2uCACF;AACF,CAAC,CAAC;AAAAiC,OAAA,CAAAC,OAAA,GAAAzB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_template","require","helper","minVersion","source","Object","freeze","ast","template","program","preserveComments","_default","exports","default","AsyncGenerator","OverloadYield","applyDecs","applyDecs2203","applyDecs2203R","applyDecs2301","applyDecs2305","asyncGeneratorDelegate","asyncIterator","awaitAsyncGenerator","checkInRHS","defineAccessor","dispose","importDeferProxy","interopRequireWildcard","iterableToArrayLimit","iterableToArrayLimitLoose","jsx","objectSpread2","regeneratorRuntime","setFunctionName","toPrimitive","toPropertyKey","typeof","using","wrapRegExp"],"sources":["../src/helpers-generated.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'yarn gulp generate-runtime-helpers'\n */\n\nimport template from \"@babel/template\";\n\nfunction helper(minVersion: string, source: string) {\n return Object.freeze({\n minVersion,\n ast: () => template.program.ast(source, { preserveComments: true }),\n });\n}\n\nexport default Object.freeze({\n // size: 1126, gzip size: 512\n AsyncGenerator: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function AsyncGenerator(e){var r,t;function resume(r,t){try{var n=e[r](t),o=n.value,u=o instanceof OverloadYield;Promise.resolve(u?o.v:o).then((function(t){if(u){var i=\"return\"===r?\"return\":\"next\";if(!o.k||t.done)return resume(i,t);t=e[i](t).value}settle(n.done?\"return\":\"normal\",t)}),(function(e){resume(\"throw\",e)}))}catch(e){settle(\"throw\",e)}}function settle(e,n){switch(e){case\"return\":r.resolve({value:n,done:!0});break;case\"throw\":r.reject(n);break;default:r.resolve({value:n,done:!1})}(r=r.next)?resume(r.key,r.arg):t=null}this._invoke=function(e,n){return new Promise((function(o,u){var i={key:e,arg:n,resolve:o,reject:u,next:null};t?t=t.next=i:(r=t=i,resume(e,n))}))},\"function\"!=typeof e.return&&(this.return=void 0)}AsyncGenerator.prototype[\"function\"==typeof Symbol&&Symbol.asyncIterator||\"@@asyncIterator\"]=function(){return this},AsyncGenerator.prototype.next=function(e){return this._invoke(\"next\",e)},AsyncGenerator.prototype.throw=function(e){return this._invoke(\"throw\",e)},AsyncGenerator.prototype.return=function(e){return this._invoke(\"return\",e)};',\n ),\n // size: 62, gzip size: 78\n OverloadYield: helper(\n \"7.18.14\",\n \"export default function _OverloadYield(t,e){this.v=t,this.k=e}\",\n ),\n // size: 5887, gzip size: 2222\n applyDecs: helper(\n \"7.17.8\",\n 'import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";function old_createMetadataMethodsForProperty(e,t,a,r){return{getMetadata:function(o){old_assertNotFinished(r,\"getMetadata\"),old_assertMetadataKey(o);var i=e[o];if(void 0!==i)if(1===t){var n=i.public;if(void 0!==n)return n[a]}else if(2===t){var l=i.private;if(void 0!==l)return l.get(a)}else if(Object.hasOwnProperty.call(i,\"constructor\"))return i.constructor},setMetadata:function(o,i){old_assertNotFinished(r,\"setMetadata\"),old_assertMetadataKey(o);var n=e[o];if(void 0===n&&(n=e[o]={}),1===t){var l=n.public;void 0===l&&(l=n.public={}),l[a]=i}else if(2===t){var s=n.priv;void 0===s&&(s=n.private=new Map),s.set(a,i)}else n.constructor=i}}}function old_convertMetadataMapToFinal(e,t){var a=e[Symbol.metadata||Symbol.for(\"Symbol.metadata\")],r=Object.getOwnPropertySymbols(t);if(0!==r.length){for(var o=0;o<r.length;o++){var i=r[o],n=t[i],l=a?a[i]:null,s=n.public,c=l?l.public:null;s&&c&&Object.setPrototypeOf(s,c);var d=n.private;if(d){var u=Array.from(d.values()),f=l?l.private:null;f&&(u=u.concat(f)),n.private=u}l&&Object.setPrototypeOf(n,l)}a&&Object.setPrototypeOf(t,a),e[Symbol.metadata||Symbol.for(\"Symbol.metadata\")]=t}}function old_createAddInitializerMethod(e,t){return function(a){old_assertNotFinished(t,\"addInitializer\"),old_assertCallable(a,\"An initializer\"),e.push(a)}}function old_memberDec(e,t,a,r,o,i,n,l,s){var c;switch(i){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var d,u,f={kind:c,name:l?\"#\"+t:toPropertyKey(t),isStatic:n,isPrivate:l},p={v:!1};if(0!==i&&(f.addInitializer=old_createAddInitializerMethod(o,p)),l){d=2,u=Symbol(t);var v={};0===i?(v.get=a.get,v.set=a.set):2===i?v.get=function(){return a.value}:(1!==i&&3!==i||(v.get=function(){return a.get.call(this)}),1!==i&&4!==i||(v.set=function(e){a.set.call(this,e)})),f.access=v}else d=1,u=t;try{return e(s,Object.assign(f,old_createMetadataMethodsForProperty(r,d,u,p)))}finally{p.v=!0}}function old_assertNotFinished(e,t){if(e.v)throw new Error(\"attempted to call \"+t+\" after decoration was finished\")}function old_assertMetadataKey(e){if(\"symbol\"!=typeof e)throw new TypeError(\"Metadata keys must be symbols, received: \"+e)}function old_assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function old_assertValidReturnValue(e,t){var a=typeof t;if(1===e){if(\"object\"!==a||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&old_assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&old_assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&old_assertCallable(t.init,\"accessor.init\"),void 0!==t.initializer&&old_assertCallable(t.initializer,\"accessor.initializer\")}else if(\"function\"!==a)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function old_getInit(e){var t;return null==(t=e.init)&&(t=e.initializer)&&\"undefined\"!=typeof console&&console.warn(\".initializer has been renamed to .init as of March 2022\"),t}function old_applyMemberDec(e,t,a,r,o,i,n,l,s){var c,d,u,f,p,v,y,h=a[0];if(n?(0===o||1===o?(c={get:a[3],set:a[4]},u=\"get\"):3===o?(c={get:a[3]},u=\"get\"):4===o?(c={set:a[3]},u=\"set\"):c={value:a[3]},0!==o&&(1===o&&setFunctionName(a[4],\"#\"+r,\"set\"),setFunctionName(a[3],\"#\"+r,u))):0!==o&&(c=Object.getOwnPropertyDescriptor(t,r)),1===o?f={get:c.get,set:c.set}:2===o?f=c.value:3===o?f=c.get:4===o&&(f=c.set),\"function\"==typeof h)void 0!==(p=old_memberDec(h,r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?d=p:1===o?(d=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p);else for(var m=h.length-1;m>=0;m--){var b;void 0!==(p=old_memberDec(h[m],r,c,l,s,o,i,n,f))&&(old_assertValidReturnValue(o,p),0===o?b=p:1===o?(b=old_getInit(p),v=p.get||f.get,y=p.set||f.set,f={get:v,set:y}):f=p,void 0!==b&&(void 0===d?d=b:\"function\"==typeof d?d=[d,b]:d.push(b)))}if(0===o||1===o){if(void 0===d)d=function(e,t){return t};else if(\"function\"!=typeof d){var g=d;d=function(e,t){for(var a=t,r=0;r<g.length;r++)a=g[r].call(e,a);return a}}else{var _=d;d=function(e,t){return _.call(e,t)}}e.push(d)}0!==o&&(1===o?(c.get=f.get,c.set=f.set):2===o?c.value=f:3===o?c.get=f:4===o&&(c.set=f),n?1===o?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===o?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,r,c))}function old_applyMemberDecs(e,t,a,r,o){for(var i,n,l=new Map,s=new Map,c=0;c<o.length;c++){var d=o[c];if(Array.isArray(d)){var u,f,p,v=d[1],y=d[2],h=d.length>3,m=v>=5;if(m?(u=t,f=r,0!=(v-=5)&&(p=n=n||[])):(u=t.prototype,f=a,0!==v&&(p=i=i||[])),0!==v&&!h){var b=m?s:l,g=b.get(y)||0;if(!0===g||3===g&&4!==v||4===g&&3!==v)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+y);!g&&v>2?b.set(y,v):b.set(y,!0)}old_applyMemberDec(e,u,d,y,v,m,h,f,p)}}old_pushInitializers(e,i),old_pushInitializers(e,n)}function old_pushInitializers(e,t){t&&e.push((function(e){for(var a=0;a<t.length;a++)t[a].call(e);return e}))}function old_applyClassDecs(e,t,a,r){if(r.length>0){for(var o=[],i=t,n=t.name,l=r.length-1;l>=0;l--){var s={v:!1};try{var c=Object.assign({kind:\"class\",name:n,addInitializer:old_createAddInitializerMethod(o,s)},old_createMetadataMethodsForProperty(a,0,n,s)),d=r[l](i,c)}finally{s.v=!0}void 0!==d&&(old_assertValidReturnValue(10,d),i=d)}e.push(i,(function(){for(var e=0;e<o.length;e++)o[e].call(i)}))}}export default function applyDecs(e,t,a){var r=[],o={},i={};return old_applyMemberDecs(r,e,i,o,t),old_convertMetadataMapToFinal(e.prototype,i),old_applyClassDecs(r,e,o,a),old_convertMetadataMapToFinal(e,o),r}',\n ),\n // size: 3868, gzip size: 1578\n applyDecs2203: helper(\n \"7.19.0\",\n 'function applyDecs2203Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\")}(t),assertCallable(r,\"An initializer\"),e.push(r)}}function memberDec(e,t,r,a,n,i,s,o){var c;switch(n){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var l,u,f={kind:c,name:s?\"#\"+t:t,static:i,private:s},p={v:!1};0!==n&&(f.addInitializer=createAddInitializerMethod(a,p)),0===n?s?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===n?l=function(){return r.value}:(1!==n&&3!==n||(l=function(){return r.get.call(this)}),1!==n&&4!==n||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(o,f)}finally{p.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function applyMemberDec(e,t,r,a,n,i,s,o){var c,l,u,f,p,d,h=r[0];if(s?c=0===n||1===n?{get:r[3],set:r[4]}:3===n?{get:r[3]}:4===n?{set:r[3]}:{value:r[3]}:0!==n&&(c=Object.getOwnPropertyDescriptor(t,a)),1===n?u={get:c.get,set:c.set}:2===n?u=c.value:3===n?u=c.get:4===n&&(u=c.set),\"function\"==typeof h)void 0!==(f=memberDec(h,a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?l=f:1===n?(l=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f);else for(var v=h.length-1;v>=0;v--){var g;void 0!==(f=memberDec(h[v],a,c,o,n,i,s,u))&&(assertValidReturnValue(n,f),0===n?g=f:1===n?(g=f.init,p=f.get||u.get,d=f.set||u.set,u={get:p,set:d}):u=f,void 0!==g&&(void 0===l?l=g:\"function\"==typeof l?l=[l,g]:l.push(g)))}if(0===n||1===n){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var y=l;l=function(e,t){for(var r=t,a=0;a<y.length;a++)r=y[a].call(e,r);return r}}else{var m=l;l=function(e,t){return m.call(e,t)}}e.push(l)}0!==n&&(1===n?(c.get=u.get,c.set=u.set):2===n?c.value=u:3===n?c.get=u:4===n&&(c.set=u),s?1===n?(e.push((function(e,t){return u.get.call(e,t)})),e.push((function(e,t){return u.set.call(e,t)}))):2===n?e.push(u):e.push((function(e,t){return u.call(e,t)})):Object.defineProperty(t,a,c))}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){var a=[];return function(e,t,r){for(var a,n,i=new Map,s=new Map,o=0;o<r.length;o++){var c=r[o];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=t,0!=(f-=5)&&(u=n=n||[])):(l=t.prototype,0!==f&&(u=a=a||[])),0!==f&&!d){var v=h?s:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(e,l,c,p,f,h,d,u)}}pushInitializers(e,a),pushInitializers(e,n)}(a,e,t),function(e,t,r){if(r.length>0){for(var a=[],n=t,i=t.name,s=r.length-1;s>=0;s--){var o={v:!1};try{var c=r[s](n,{kind:\"class\",name:i,addInitializer:createAddInitializerMethod(a,o)})}finally{o.v=!0}void 0!==c&&(assertValidReturnValue(10,c),n=c)}e.push(n,(function(){for(var e=0;e<a.length;e++)a[e].call(n)}))}}(a,e,r),a}}var applyDecs2203Impl;export default function applyDecs2203(e,t,r){return(applyDecs2203Impl=applyDecs2203Impl||applyDecs2203Factory())(e,t,r)}',\n ),\n // size: 4091, gzip size: 1651\n applyDecs2203R: helper(\n \"7.20.0\",\n 'import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";function applyDecs2203RFactory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\")}(t),assertCallable(r,\"An initializer\"),e.push(r)}}function memberDec(e,t,r,n,a,i,o,s){var c;switch(a){case 1:c=\"accessor\";break;case 2:c=\"method\";break;case 3:c=\"getter\";break;case 4:c=\"setter\";break;default:c=\"field\"}var l,u,f={kind:c,name:o?\"#\"+t:toPropertyKey(t),static:i,private:o},p={v:!1};0!==a&&(f.addInitializer=createAddInitializerMethod(n,p)),0===a?o?(l=r.get,u=r.set):(l=function(){return this[t]},u=function(e){this[t]=e}):2===a?l=function(){return r.value}:(1!==a&&3!==a||(l=function(){return r.get.call(this)}),1!==a&&4!==a||(u=function(e){r.set.call(this,e)})),f.access=l&&u?{get:l,set:u}:l?{get:l}:{set:u};try{return e(s,f)}finally{p.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function applyMemberDec(e,t,r,n,a,i,o,s){var c,l,u,f,p,d,h,v=r[0];if(o?(0===a||1===a?(c={get:r[3],set:r[4]},u=\"get\"):3===a?(c={get:r[3]},u=\"get\"):4===a?(c={set:r[3]},u=\"set\"):c={value:r[3]},0!==a&&(1===a&&setFunctionName(r[4],\"#\"+n,\"set\"),setFunctionName(r[3],\"#\"+n,u))):0!==a&&(c=Object.getOwnPropertyDescriptor(t,n)),1===a?f={get:c.get,set:c.set}:2===a?f=c.value:3===a?f=c.get:4===a&&(f=c.set),\"function\"==typeof v)void 0!==(p=memberDec(v,n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?l=p:1===a?(l=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p);else for(var g=v.length-1;g>=0;g--){var y;void 0!==(p=memberDec(v[g],n,c,s,a,i,o,f))&&(assertValidReturnValue(a,p),0===a?y=p:1===a?(y=p.init,d=p.get||f.get,h=p.set||f.set,f={get:d,set:h}):f=p,void 0!==y&&(void 0===l?l=y:\"function\"==typeof l?l=[l,y]:l.push(y)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var m=l;l=function(e,t){for(var r=t,n=0;n<m.length;n++)r=m[n].call(e,r);return r}}else{var b=l;l=function(e,t){return b.call(e,t)}}e.push(l)}0!==a&&(1===a?(c.get=f.get,c.set=f.set):2===a?c.value=f:3===a?c.get=f:4===a&&(c.set=f),o?1===a?(e.push((function(e,t){return f.get.call(e,t)})),e.push((function(e,t){return f.set.call(e,t)}))):2===a?e.push(f):e.push((function(e,t){return f.call(e,t)})):Object.defineProperty(t,n,c))}function applyMemberDecs(e,t){for(var r,n,a=[],i=new Map,o=new Map,s=0;s<t.length;s++){var c=t[s];if(Array.isArray(c)){var l,u,f=c[1],p=c[2],d=c.length>3,h=f>=5;if(h?(l=e,0!=(f-=5)&&(u=n=n||[])):(l=e.prototype,0!==f&&(u=r=r||[])),0!==f&&!d){var v=h?o:i,g=v.get(p)||0;if(!0===g||3===g&&4!==f||4===g&&3!==f)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+p);!g&&f>2?v.set(p,f):v.set(p,!0)}applyMemberDec(a,l,c,p,f,h,d,u)}}return pushInitializers(a,r),pushInitializers(a,n),a}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r){return{e:applyMemberDecs(e,t),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var o={v:!1};try{var s=t[i](n,{kind:\"class\",name:a,addInitializer:createAddInitializerMethod(r,o)})}finally{o.v=!0}void 0!==s&&(assertValidReturnValue(10,s),n=s)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2203R(e,t,r){return(applyDecs2203R=applyDecs2203RFactory())(e,t,r)}',\n ),\n // size: 4670, gzip size: 1848\n applyDecs2301: helper(\n \"7.21.0\",\n 'import checkInRHS from\"checkInRHS\";import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";function applyDecs2301Factory(){function createAddInitializerMethod(e,t){return function(r){!function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\")}(t),assertCallable(r,\"An initializer\"),e.push(r)}}function assertInstanceIfPrivate(e,t){if(!e(t))throw new TypeError(\"Attempted to access private element on non-instance\")}function memberDec(e,t,r,n,a,i,s,o,c){var u;switch(a){case 1:u=\"accessor\";break;case 2:u=\"method\";break;case 3:u=\"getter\";break;case 4:u=\"setter\";break;default:u=\"field\"}var l,f,p={kind:u,name:s?\"#\"+t:toPropertyKey(t),static:i,private:s},d={v:!1};if(0!==a&&(p.addInitializer=createAddInitializerMethod(n,d)),s||0!==a&&2!==a)if(2===a)l=function(e){return assertInstanceIfPrivate(c,e),r.value};else{var h=0===a||1===a;(h||3===a)&&(l=s?function(e){return assertInstanceIfPrivate(c,e),r.get.call(e)}:function(e){return r.get.call(e)}),(h||4===a)&&(f=s?function(e,t){assertInstanceIfPrivate(c,e),r.set.call(e,t)}:function(e,t){r.set.call(e,t)})}else l=function(e){return e[t]},0===a&&(f=function(e,r){e[t]=r});var v=s?c.bind():function(e){return t in e};p.access=l&&f?{get:l,set:f,has:v}:l?{get:l,has:v}:{set:f,has:v};try{return e(o,p)}finally{d.v=!0}}function assertCallable(e,t){if(\"function\"!=typeof e)throw new TypeError(t+\" must be a function\")}function assertValidReturnValue(e,t){var r=typeof t;if(1===e){if(\"object\"!==r||null===t)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\");void 0!==t.get&&assertCallable(t.get,\"accessor.get\"),void 0!==t.set&&assertCallable(t.set,\"accessor.set\"),void 0!==t.init&&assertCallable(t.init,\"accessor.init\")}else if(\"function\"!==r)throw new TypeError((0===e?\"field\":10===e?\"class\":\"method\")+\" decorators must return a function or void 0\")}function curryThis2(e){return function(t){e(this,t)}}function applyMemberDec(e,t,r,n,a,i,s,o,c){var u,l,f,p,d,h,v,y,g=r[0];if(s?(0===a||1===a?(u={get:(d=r[3],function(){return d(this)}),set:curryThis2(r[4])},f=\"get\"):3===a?(u={get:r[3]},f=\"get\"):4===a?(u={set:r[3]},f=\"set\"):u={value:r[3]},0!==a&&(1===a&&setFunctionName(u.set,\"#\"+n,\"set\"),setFunctionName(u[f||\"value\"],\"#\"+n,f))):0!==a&&(u=Object.getOwnPropertyDescriptor(t,n)),1===a?p={get:u.get,set:u.set}:2===a?p=u.value:3===a?p=u.get:4===a&&(p=u.set),\"function\"==typeof g)void 0!==(h=memberDec(g,n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?l=h:1===a?(l=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h);else for(var m=g.length-1;m>=0;m--){var b;void 0!==(h=memberDec(g[m],n,u,o,a,i,s,p,c))&&(assertValidReturnValue(a,h),0===a?b=h:1===a?(b=h.init,v=h.get||p.get,y=h.set||p.set,p={get:v,set:y}):p=h,void 0!==b&&(void 0===l?l=b:\"function\"==typeof l?l=[l,b]:l.push(b)))}if(0===a||1===a){if(void 0===l)l=function(e,t){return t};else if(\"function\"!=typeof l){var I=l;l=function(e,t){for(var r=t,n=0;n<I.length;n++)r=I[n].call(e,r);return r}}else{var w=l;l=function(e,t){return w.call(e,t)}}e.push(l)}0!==a&&(1===a?(u.get=p.get,u.set=p.set):2===a?u.value=p:3===a?u.get=p:4===a&&(u.set=p),s?1===a?(e.push((function(e,t){return p.get.call(e,t)})),e.push((function(e,t){return p.set.call(e,t)}))):2===a?e.push(p):e.push((function(e,t){return p.call(e,t)})):Object.defineProperty(t,n,u))}function applyMemberDecs(e,t,r){for(var n,a,i,s=[],o=new Map,c=new Map,u=0;u<t.length;u++){var l=t[u];if(Array.isArray(l)){var f,p,d=l[1],h=l[2],v=l.length>3,y=d>=5,g=r;if(y?(f=e,0!=(d-=5)&&(p=a=a||[]),v&&!i&&(i=function(t){return checkInRHS(t)===e}),g=i):(f=e.prototype,0!==d&&(p=n=n||[])),0!==d&&!v){var m=y?c:o,b=m.get(h)||0;if(!0===b||3===b&&4!==d||4===b&&3!==d)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+h);!b&&d>2?m.set(h,d):m.set(h,!0)}applyMemberDec(s,f,l,h,d,y,v,p,g)}}return pushInitializers(s,n),pushInitializers(s,a),s}function pushInitializers(e,t){t&&e.push((function(e){for(var r=0;r<t.length;r++)t[r].call(e);return e}))}return function(e,t,r,n){return{e:applyMemberDecs(e,t,n),get c(){return function(e,t){if(t.length>0){for(var r=[],n=e,a=e.name,i=t.length-1;i>=0;i--){var s={v:!1};try{var o=t[i](n,{kind:\"class\",name:a,addInitializer:createAddInitializerMethod(r,s)})}finally{s.v=!0}void 0!==o&&(assertValidReturnValue(10,o),n=o)}return[n,function(){for(var e=0;e<r.length;e++)r[e].call(n)}]}}(e,r)}}}}export default function applyDecs2301(e,t,r,n){return(applyDecs2301=applyDecs2301Factory())(e,t,r,n)}',\n ),\n // size: 3275, gzip size: 1613\n applyDecs2305: helper(\n \"7.21.0\",\n 'import checkInRHS from\"checkInRHS\";import setFunctionName from\"setFunctionName\";import toPropertyKey from\"toPropertyKey\";export default function applyDecs2305(e,t,r,n,o,a){function i(e,t,r){return function(n,o){return r&&r(n),e[t].call(n,o)}}function c(e,t){for(var r=0;r<e.length;r++)e[r].call(t);return t}function s(e,t,r,n){if(\"function\"!=typeof e&&(n||void 0!==e))throw new TypeError(t+\" must \"+(r||\"be\")+\" a function\"+(n?\"\":\" or undefined\"));return e}function applyDec(e,t,r,n,o,a,c,u,l,f,p,d,h){function m(e){if(!h(e))throw new TypeError(\"Attempted to access private element on non-instance\")}var y,v,g=t[0],b=t[3],w=!u;if(!w){r||Array.isArray(g)||(g=[g]);var S={},A=[],P=3===o?\"get\":4===o||d?\"set\":\"value\";f?(p||d?S={get:setFunctionName((function(){return b(this)}),n,\"get\"),set:function(e){t[4](this,e)}}:S[P]=b,p||setFunctionName(S[P],n,2===o?\"\":P)):p||(S=Object.getOwnPropertyDescriptor(e,n))}for(var j=g.length-1;j>=0;j-=r?2:1){var D=g[j],E=r?g[j-1]:void 0,I={},O={kind:[\"field\",\"accessor\",\"method\",\"getter\",\"setter\",\"field\",\"class\"][o],name:n,metadata:a,addInitializer:function(e,t){if(e.v)throw new Error(\"attempted to call addInitializer after decoration was finished\");s(t,\"An initializer\",\"be\",!0),c.push(t)}.bind(null,I)};try{if(w)v=D.call(E,e,O);else{var k,F;O.static=l,O.private=f,f||!p&&2!==o?2===o?k=function(e){return m(e),S.value}:((o<2||3===o)&&(k=i(S,\"get\",f&&m)),(o<2||4===o)&&(F=i(S,\"set\",f&&m))):(k=function(e){return e[n]},p&&(F=function(e,t){e[n]=t}));var N=O.access={has:f?h.bind():function(e){return n in e}};if(k&&(N.get=k),F&&(N.set=F),v=D.call(E,d?{get:S.get,set:S.set}:S[P],O),d){if(\"object\"==typeof v&&v)(y=s(v.get,\"accessor.get\"))&&(S.get=y),(y=s(v.set,\"accessor.set\"))&&(S.set=y),(y=s(v.init,\"accessor.init\"))&&A.push(y);else if(void 0!==v)throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or void 0\")}else s(v,(p?\"field\":\"method\")+\" decorators\",\"return\")&&(p?A.push(v):S[P]=v)}}finally{I.v=!0}}return(p||d)&&u.push((function(e,t){for(var r=A.length-1;r>=0;r--)t=A[r].call(e,t);return t})),p||w||(f?d?u.push(i(S,\"get\"),i(S,\"set\")):u.push(2===o?S[P]:i.call.bind(S[P])):Object.defineProperty(e,n,S)),v}function u(e,t){return Object.defineProperty(e,Symbol.metadata||Symbol.for(\"Symbol.metadata\"),{configurable:!0,enumerable:!0,value:t})}if(arguments.length>=6)var l=a[Symbol.metadata||Symbol.for(\"Symbol.metadata\")];var f=Object.create(null==l?null:l),p=function(e,t,r,n){var o,a,i=[],s=function(t){return checkInRHS(t)===e},u=new Map;function l(e){e&&i.push(c.bind(null,e))}for(var f=0;f<t.length;f++){var p=t[f];if(Array.isArray(p)){var d=p[1],h=p[2],m=p.length>3,y=16&d,v=!!(8&d),g=0==(d&=7),b=h+\"/\"+v;if(!g&&!m){var w=u.get(b);if(!0===w||3===w&&4!==d||4===w&&3!==d)throw new Error(\"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \"+h);u.set(b,!(d>2)||d)}applyDec(v?e:e.prototype,p,y,m?\"#\"+h:toPropertyKey(h),d,n,v?a=a||[]:o=o||[],i,v,m,g,1===d,v&&m?s:r)}}return l(o),l(a),i}(e,t,o,f);return r.length||u(e,f),{e:p,get c(){var t=[];return r.length&&[u(s(applyDec(e,[r],n,e.name,5,f,t),\"class decorators\",\"return\")||e,f),c.bind(null,t,e)]}}}',\n ),\n // size: 544, gzip size: 300\n asyncGeneratorDelegate: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function _asyncGeneratorDelegate(t){var e={},n=!1;function pump(e,r){return n=!0,r=new Promise((function(n){n(t[e](r))})),{done:!1,value:new OverloadYield(r,1)}}return e[\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\"]=function(){return this},e.next=function(t){return n?(n=!1,t):pump(\"next\",t)},\"function\"==typeof t.throw&&(e.throw=function(t){if(n)throw n=!1,t;return pump(\"throw\",t)}),\"function\"==typeof t.return&&(e.return=function(t){return n?(n=!1,t):pump(\"return\",t)}),e}',\n ),\n // size: 1096, gzip size: 439\n asyncIterator: helper(\n \"7.15.9\",\n 'export default function _asyncIterator(r){var n,t,o,e=2;for(\"undefined\"!=typeof Symbol&&(t=Symbol.asyncIterator,o=Symbol.iterator);e--;){if(t&&null!=(n=r[t]))return n.call(r);if(o&&null!=(n=r[o]))return new AsyncFromSyncIterator(n.call(r));t=\"@@asyncIterator\",o=\"@@iterator\"}throw new TypeError(\"Object is not async iterable\")}function AsyncFromSyncIterator(r){function AsyncFromSyncIteratorContinuation(r){if(Object(r)!==r)return Promise.reject(new TypeError(r+\" is not an object.\"));var n=r.done;return Promise.resolve(r.value).then((function(r){return{value:r,done:n}}))}return AsyncFromSyncIterator=function(r){this.s=r,this.n=r.next},AsyncFromSyncIterator.prototype={s:null,n:null,next:function(){return AsyncFromSyncIteratorContinuation(this.n.apply(this.s,arguments))},return:function(r){var n=this.s.return;return void 0===n?Promise.resolve({value:r,done:!0}):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))},throw:function(r){var n=this.s.return;return void 0===n?Promise.reject(r):AsyncFromSyncIteratorContinuation(n.apply(this.s,arguments))}},new AsyncFromSyncIterator(r)}',\n ),\n // size: 119, gzip size: 113\n awaitAsyncGenerator: helper(\n \"7.0.0-beta.0\",\n 'import OverloadYield from\"OverloadYield\";export default function _awaitAsyncGenerator(e){return new OverloadYield(e,0)}',\n ),\n // size: 161, gzip size: 154\n checkInRHS: helper(\n \"7.20.5\",\n 'export default function _checkInRHS(e){if(Object(e)!==e)throw TypeError(\"right-hand side of \\'in\\' should be an object, got \"+(null!==e?typeof e:\"null\"));return e}',\n ),\n // size: 130, gzip size: 130\n defineAccessor: helper(\n \"7.20.7\",\n \"export default function _defineAccessor(e,r,n,t){var c={configurable:!0,enumerable:!0};return c[e]=t,Object.defineProperty(r,n,c)}\",\n ),\n // size: 672, gzip size: 332\n dispose: helper(\n \"7.22.0\",\n 'function dispose_SuppressedError(r,e){return\"undefined\"!=typeof SuppressedError?dispose_SuppressedError=SuppressedError:(dispose_SuppressedError=function(r,e){this.suppressed=r,this.error=e,this.stack=(new Error).stack},dispose_SuppressedError.prototype=Object.create(Error.prototype,{constructor:{value:dispose_SuppressedError,writable:!0,configurable:!0}})),new dispose_SuppressedError(r,e)}export default function _dispose(r,e,s){function next(){for(;r.length>0;)try{var o=r.pop(),p=o.d.call(o.v);if(o.a)return Promise.resolve(p).then(next,err)}catch(r){return err(r)}if(s)throw e}function err(r){return e=s?new dispose_SuppressedError(r,e):r,s=!0,next()}return next()}',\n ),\n // size: 552, gzip size: 267\n importDeferProxy: helper(\n \"7.23.0\",\n \"export default function _importDeferProxy(e){var t=null,constValue=function(e){return function(){return e}},proxy=function(r){return function(n,o,f){return null===t&&(t=e()),r(t,o,f)}};return new Proxy({},{defineProperty:constValue(!1),deleteProperty:constValue(!1),get:proxy(Reflect.get),getOwnPropertyDescriptor:proxy(Reflect.getOwnPropertyDescriptor),getPrototypeOf:constValue(null),isExtensible:constValue(!1),has:proxy(Reflect.has),ownKeys:proxy(Reflect.ownKeys),preventExtensions:constValue(!0),set:constValue(!1),setPrototypeOf:constValue(!1)})}\",\n ),\n // size: 693, gzip size: 361\n interopRequireWildcard: helper(\n \"7.14.0\",\n 'function _getRequireWildcardCache(e){if(\"function\"!=typeof WeakMap)return null;var r=new WeakMap,t=new WeakMap;return(_getRequireWildcardCache=function(e){return e?t:r})(e)}export default function _interopRequireWildcard(e,r){if(!r&&e&&e.__esModule)return e;if(null===e||\"object\"!=typeof e&&\"function\"!=typeof e)return{default:e};var t=_getRequireWildcardCache(r);if(t&&t.has(e))return t.get(e);var n={__proto__:null},a=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var u in e)if(\"default\"!==u&&Object.prototype.hasOwnProperty.call(e,u)){var i=a?Object.getOwnPropertyDescriptor(e,u):null;i&&(i.get||i.set)?Object.defineProperty(n,u,i):n[u]=e[u]}return n.default=e,t&&t.set(e,n),n}',\n ),\n // size: 431, gzip size: 303\n iterableToArrayLimit: helper(\n \"7.0.0-beta.0\",\n 'export default function _iterableToArrayLimit(r,l){var t=null==r?null:\"undefined\"!=typeof Symbol&&r[Symbol.iterator]||r[\"@@iterator\"];if(null!=t){var e,n,i,u,a=[],f=!0,o=!1;try{if(i=(t=t.call(r)).next,0===l){if(Object(t)!==t)return;f=!1}else for(;!(f=(e=i.call(t)).done)&&(a.push(e.value),a.length!==l);f=!0);}catch(r){o=!0,n=r}finally{try{if(!f&&null!=t.return&&(u=t.return(),Object(u)!==u))return}finally{if(o)throw n}}return a}}',\n ),\n // size: 228, gzip size: 196\n iterableToArrayLimitLoose: helper(\n \"7.0.0-beta.0\",\n 'export default function _iterableToArrayLimitLoose(e,r){var t=e&&(\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"]);if(null!=t){var o,l=[];for(t=t.call(e);e.length<r&&!(o=t.next()).done;)l.push(o.value);return l}}',\n ),\n // size: 539, gzip size: 351\n jsx: helper(\n \"7.0.0-beta.0\",\n 'var REACT_ELEMENT_TYPE;export default function _createRawReactElement(e,r,E,l){REACT_ELEMENT_TYPE||(REACT_ELEMENT_TYPE=\"function\"==typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103);var o=e&&e.defaultProps,n=arguments.length-3;if(r||0===n||(r={children:void 0}),1===n)r.children=l;else if(n>1){for(var t=new Array(n),f=0;f<n;f++)t[f]=arguments[f+3];r.children=t}if(r&&o)for(var i in o)void 0===r[i]&&(r[i]=o[i]);else r||(r=o||{});return{$$typeof:REACT_ELEMENT_TYPE,type:e,key:void 0===E?null:\"\"+E,ref:null,props:r,_owner:null}}',\n ),\n // size: 677, gzip size: 316\n objectSpread2: helper(\n \"7.5.0\",\n 'import defineProperty from\"defineProperty\";function ownKeys(e,r){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);r&&(o=o.filter((function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable}))),t.push.apply(t,o)}return t}export default function _objectSpread2(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{};r%2?ownKeys(Object(t),!0).forEach((function(r){defineProperty(e,r,t[r])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):ownKeys(Object(t)).forEach((function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(t,r))}))}return e}',\n ),\n // size: 7643, gzip size: 2662\n regeneratorRuntime: helper(\n \"7.18.0\",\n 'export default function _regeneratorRuntime(){\"use strict\";\\n/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */_regeneratorRuntime=function(){return e};var t,e={},r=Object.prototype,n=r.hasOwnProperty,o=Object.defineProperty||function(t,e,r){t[e]=r.value},i=\"function\"==typeof Symbol?Symbol:{},a=i.iterator||\"@@iterator\",c=i.asyncIterator||\"@@asyncIterator\",u=i.toStringTag||\"@@toStringTag\";function define(t,e,r){return Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{define({},\"\")}catch(t){define=function(t,e,r){return t[e]=r}}function wrap(t,e,r,n){var i=e&&e.prototype instanceof Generator?e:Generator,a=Object.create(i.prototype),c=new Context(n||[]);return o(a,\"_invoke\",{value:makeInvokeMethod(t,r,c)}),a}function tryCatch(t,e,r){try{return{type:\"normal\",arg:t.call(e,r)}}catch(t){return{type:\"throw\",arg:t}}}e.wrap=wrap;var h=\"suspendedStart\",l=\"suspendedYield\",f=\"executing\",s=\"completed\",y={};function Generator(){}function GeneratorFunction(){}function GeneratorFunctionPrototype(){}var p={};define(p,a,(function(){return this}));var d=Object.getPrototypeOf,v=d&&d(d(values([])));v&&v!==r&&n.call(v,a)&&(p=v);var g=GeneratorFunctionPrototype.prototype=Generator.prototype=Object.create(p);function defineIteratorMethods(t){[\"next\",\"throw\",\"return\"].forEach((function(e){define(t,e,(function(t){return this._invoke(e,t)}))}))}function AsyncIterator(t,e){function invoke(r,o,i,a){var c=tryCatch(t[r],t,o);if(\"throw\"!==c.type){var u=c.arg,h=u.value;return h&&\"object\"==typeof h&&n.call(h,\"__await\")?e.resolve(h.__await).then((function(t){invoke(\"next\",t,i,a)}),(function(t){invoke(\"throw\",t,i,a)})):e.resolve(h).then((function(t){u.value=t,i(u)}),(function(t){return invoke(\"throw\",t,i,a)}))}a(c.arg)}var r;o(this,\"_invoke\",{value:function(t,n){function callInvokeWithMethodAndArg(){return new e((function(e,r){invoke(t,n,e,r)}))}return r=r?r.then(callInvokeWithMethodAndArg,callInvokeWithMethodAndArg):callInvokeWithMethodAndArg()}})}function makeInvokeMethod(e,r,n){var o=h;return function(i,a){if(o===f)throw new Error(\"Generator is already running\");if(o===s){if(\"throw\"===i)throw a;return{value:t,done:!0}}for(n.method=i,n.arg=a;;){var c=n.delegate;if(c){var u=maybeInvokeDelegate(c,n);if(u){if(u===y)continue;return u}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(o===h)throw o=s,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);o=f;var p=tryCatch(e,r,n);if(\"normal\"===p.type){if(o=n.done?s:l,p.arg===y)continue;return{value:p.arg,done:n.done}}\"throw\"===p.type&&(o=s,n.method=\"throw\",n.arg=p.arg)}}}function maybeInvokeDelegate(e,r){var n=r.method,o=e.iterator[n];if(o===t)return r.delegate=null,\"throw\"===n&&e.iterator.return&&(r.method=\"return\",r.arg=t,maybeInvokeDelegate(e,r),\"throw\"===r.method)||\"return\"!==n&&(r.method=\"throw\",r.arg=new TypeError(\"The iterator does not provide a \\'\"+n+\"\\' method\")),y;var i=tryCatch(o,e.iterator,r.arg);if(\"throw\"===i.type)return r.method=\"throw\",r.arg=i.arg,r.delegate=null,y;var a=i.arg;return a?a.done?(r[e.resultName]=a.value,r.next=e.nextLoc,\"return\"!==r.method&&(r.method=\"next\",r.arg=t),r.delegate=null,y):a:(r.method=\"throw\",r.arg=new TypeError(\"iterator result is not an object\"),r.delegate=null,y)}function pushTryEntry(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function resetTryEntry(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function Context(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(pushTryEntry,this),this.reset(!0)}function values(e){if(e||\"\"===e){var r=e[a];if(r)return r.call(e);if(\"function\"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function next(){for(;++o<e.length;)if(n.call(e,o))return next.value=e[o],next.done=!1,next;return next.value=t,next.done=!0,next};return i.next=i}}throw new TypeError(typeof e+\" is not iterable\")}return GeneratorFunction.prototype=GeneratorFunctionPrototype,o(g,\"constructor\",{value:GeneratorFunctionPrototype,configurable:!0}),o(GeneratorFunctionPrototype,\"constructor\",{value:GeneratorFunction,configurable:!0}),GeneratorFunction.displayName=define(GeneratorFunctionPrototype,u,\"GeneratorFunction\"),e.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===GeneratorFunction||\"GeneratorFunction\"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,GeneratorFunctionPrototype):(t.__proto__=GeneratorFunctionPrototype,define(t,u,\"GeneratorFunction\")),t.prototype=Object.create(g),t},e.awrap=function(t){return{__await:t}},defineIteratorMethods(AsyncIterator.prototype),define(AsyncIterator.prototype,c,(function(){return this})),e.AsyncIterator=AsyncIterator,e.async=function(t,r,n,o,i){void 0===i&&(i=Promise);var a=new AsyncIterator(wrap(t,r,n,o),i);return e.isGeneratorFunction(r)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},defineIteratorMethods(g),define(g,u,\"Generator\"),define(g,a,(function(){return this})),define(g,\"toString\",(function(){return\"[object Generator]\"})),e.keys=function(t){var e=Object(t),r=[];for(var n in e)r.push(n);return r.reverse(),function next(){for(;r.length;){var t=r.pop();if(t in e)return next.value=t,next.done=!1,next}return next.done=!0,next}},e.values=values,Context.prototype={constructor:Context,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=t,this.tryEntries.forEach(resetTryEntry),!e)for(var r in this)\"t\"===r.charAt(0)&&n.call(this,r)&&!isNaN(+r.slice(1))&&(this[r]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var r=this;function handle(n,o){return a.type=\"throw\",a.arg=e,r.next=n,o&&(r.method=\"next\",r.arg=t),!!o}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return handle(\"end\");if(i.tryLoc<=this.prev){var c=n.call(i,\"catchLoc\"),u=n.call(i,\"finallyLoc\");if(c&&u){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0);if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return handle(i.catchLoc,!0)}else{if(!u)throw new Error(\"try statement without catch or finally\");if(this.prev<i.finallyLoc)return handle(i.finallyLoc)}}}},abrupt:function(t,e){for(var r=this.tryEntries.length-1;r>=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,\"finallyLoc\")&&this.prev<o.finallyLoc){var i=o;break}}i&&(\"break\"===t||\"continue\"===t)&&i.tryLoc<=e&&e<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=e,i?(this.method=\"next\",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),y},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.finallyLoc===t)return this.complete(r.completion,r.afterLoc),resetTryEntry(r),y}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var r=this.tryEntries[e];if(r.tryLoc===t){var n=r.completion;if(\"throw\"===n.type){var o=n.arg;resetTryEntry(r)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(e,r,n){return this.delegate={iterator:values(e),resultName:r,nextLoc:n},\"next\"===this.method&&(this.arg=t),y}},e}',\n ),\n // size: 193, gzip size: 179\n setFunctionName: helper(\n \"7.23.6\",\n 'export default function setFunctionName(e,t,n){\"symbol\"==typeof t&&(t=(t=t.description)?\"[\"+t+\"]\":\"\");try{Object.defineProperty(e,\"name\",{configurable:!0,value:n?n+\" \"+t:t})}catch(e){}return e}',\n ),\n // size: 285, gzip size: 210\n toPrimitive: helper(\n \"7.1.5\",\n 'export default function toPrimitive(t,r){if(\"object\"!=typeof t||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var i=e.call(t,r||\"default\");if(\"object\"!=typeof i)return i;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===r?String:Number)(t)}',\n ),\n // size: 145, gzip size: 129\n toPropertyKey: helper(\n \"7.1.5\",\n 'import toPrimitive from\"toPrimitive\";export default function toPropertyKey(t){var i=toPrimitive(t,\"string\");return\"symbol\"==typeof i?i:String(i)}',\n ),\n // size: 289, gzip size: 165\n typeof: helper(\n \"7.0.0-beta.0\",\n 'export default function _typeof(o){\"@babel/helpers - typeof\";return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(o){return typeof o}:function(o){return o&&\"function\"==typeof Symbol&&o.constructor===Symbol&&o!==Symbol.prototype?\"symbol\":typeof o},_typeof(o)}',\n ),\n // size: 432, gzip size: 261\n using: helper(\n \"7.22.0\",\n 'export default function _using(o,n,e){if(null==n)return n;if(Object(n)!==n)throw new TypeError(\"using declarations can only be used with objects, functions, null, or undefined.\");if(e)var r=n[Symbol.asyncDispose||Symbol.for(\"Symbol.asyncDispose\")];if(null==r&&(r=n[Symbol.dispose||Symbol.for(\"Symbol.dispose\")]),\"function\"!=typeof r)throw new TypeError(\"Property [Symbol.dispose] is not a function.\");return o.push({v:n,d:r,a:e}),n}',\n ),\n // size: 1256, gzip size: 573\n wrapRegExp: helper(\n \"7.19.0\",\n 'import setPrototypeOf from\"setPrototypeOf\";import inherits from\"inherits\";export default function _wrapRegExp(){_wrapRegExp=function(e,r){return new BabelRegExp(e,void 0,r)};var e=RegExp.prototype,r=new WeakMap;function BabelRegExp(e,t,p){var o=new RegExp(e,t);return r.set(o,p||r.get(e)),setPrototypeOf(o,BabelRegExp.prototype)}function buildGroups(e,t){var p=r.get(t);return Object.keys(p).reduce((function(r,t){var o=p[t];if(\"number\"==typeof o)r[t]=e[o];else{for(var i=0;void 0===e[o[i]]&&i+1<o.length;)i++;r[t]=e[o[i]]}return r}),Object.create(null))}return inherits(BabelRegExp,RegExp),BabelRegExp.prototype.exec=function(r){var t=e.exec.call(this,r);if(t){t.groups=buildGroups(t,this);var p=t.indices;p&&(p.groups=buildGroups(p,this))}return t},BabelRegExp.prototype[Symbol.replace]=function(t,p){if(\"string\"==typeof p){var o=r.get(this);return e[Symbol.replace].call(this,t,p.replace(/\\\\$<([^>]+)>/g,(function(e,r){var t=o[r];return\"$\"+(Array.isArray(t)?t.join(\"$\"):t)})))}if(\"function\"==typeof p){var i=this;return e[Symbol.replace].call(this,t,(function(){var e=arguments;return\"object\"!=typeof e[e.length-1]&&(e=[].slice.call(e)).push(buildGroups(e,i)),p.apply(this,e)}))}return e[Symbol.replace].call(this,t,p)},_wrapRegExp.apply(this,arguments)}',\n ),\n});\n"],"mappings":";;;;;;AAKA,IAAAA,SAAA,GAAAC,OAAA;AAEA,SAASC,MAAMA,CAACC,UAAkB,EAAEC,MAAc,EAAE;EAClD,OAAOC,MAAM,CAACC,MAAM,CAAC;IACnBH,UAAU;IACVI,GAAG,EAAEA,CAAA,KAAMC,iBAAQ,CAACC,OAAO,CAACF,GAAG,CAACH,MAAM,EAAE;MAAEM,gBAAgB,EAAE;IAAK,CAAC;EACpE,CAAC,CAAC;AACJ;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEcR,MAAM,CAACC,MAAM,CAAC;EAE3BQ,cAAc,EAAEZ,MAAM,CACpB,cAAc,EACd,wmCACF,CAAC;EAEDa,aAAa,EAAEb,MAAM,CACnB,SAAS,EACT,gEACF,CAAC;EAEDc,SAAS,EAAEd,MAAM,CACf,QAAQ,EACR,iwLACF,CAAC;EAEDe,aAAa,EAAEf,MAAM,CACnB,QAAQ,EACR,8xHACF,CAAC;EAEDgB,cAAc,EAAEhB,MAAM,CACpB,QAAQ,EACR,6/HACF,CAAC;EAEDiB,aAAa,EAAEjB,MAAM,CACnB,QAAQ,EACR,gkJACF,CAAC;EAEDkB,aAAa,EAAElB,MAAM,CACnB,QAAQ,EACR,6sGACF,CAAC;EAEDmB,sBAAsB,EAAEnB,MAAM,CAC5B,cAAc,EACd,kiBACF,CAAC;EAEDoB,aAAa,EAAEpB,MAAM,CACnB,QAAQ,EACR,0kCACF,CAAC;EAEDqB,mBAAmB,EAAErB,MAAM,CACzB,cAAc,EACd,yHACF,CAAC;EAEDsB,UAAU,EAAEtB,MAAM,CAChB,QAAQ,EACR,qKACF,CAAC;EAEDuB,cAAc,EAAEvB,MAAM,CACpB,QAAQ,EACR,oIACF,CAAC;EAEDwB,OAAO,EAAExB,MAAM,CACb,QAAQ,EACR,kqBACF,CAAC;EAEDyB,gBAAgB,EAAEzB,MAAM,CACtB,QAAQ,EACR,0iBACF,CAAC;EAED0B,sBAAsB,EAAE1B,MAAM,CAC5B,QAAQ,EACR,urBACF,CAAC;EAED2B,oBAAoB,EAAE3B,MAAM,CAC1B,cAAc,EACd,ibACF,CAAC;EAED4B,yBAAyB,EAAE5B,MAAM,CAC/B,cAAc,EACd,sOACF,CAAC;EAED6B,GAAG,EAAE7B,MAAM,CACT,cAAc,EACd,6hBACF,CAAC;EAED8B,aAAa,EAAE9B,MAAM,CACnB,OAAO,EACP,uqBACF,CAAC;EAED+B,kBAAkB,EAAE/B,MAAM,CACxB,QAAQ,EACR,g+OACF,CAAC;EAEDgC,eAAe,EAAEhC,MAAM,CACrB,QAAQ,EACR,mMACF,CAAC;EAEDiC,WAAW,EAAEjC,MAAM,CACjB,OAAO,EACP,+RACF,CAAC;EAEDkC,aAAa,EAAElC,MAAM,CACnB,OAAO,EACP,mJACF,CAAC;EAEDmC,MAAM,EAAEnC,MAAM,CACZ,cAAc,EACd,mSACF,CAAC;EAEDoC,KAAK,EAAEpC,MAAM,CACX,QAAQ,EACR,kbACF,CAAC;EAEDqC,UAAU,EAAErC,MAAM,CAChB,QAAQ,EACR,2uCACF;AACF,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers.js b/node_modules/@babel/helpers/lib/helpers.js index d23e0325..a26c45c3 100644 --- a/node_modules/@babel/helpers/lib/helpers.js +++ b/node_modules/@babel/helpers/lib/helpers.js @@ -9,8 +9,7 @@ var _helpersGenerated = require("./helpers-generated.js"); const helpers = Object.assign({ __proto__: null }, _helpersGenerated.default); -var _default = helpers; -exports.default = _default; +var _default = exports.default = helpers; const helper = minVersion => tpl => ({ minVersion, ast: () => _template.default.program.ast(tpl) @@ -801,29 +800,6 @@ helpers.skipFirstGeneratorNext = helper("7.0.0-beta.0")` } } `; -helpers.toPrimitive = helper("7.1.5")` - export default function _toPrimitive( - input, - hint /*: "default" | "string" | "number" | void */ - ) { - if (typeof input !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (typeof res !== "object") return res; - throw new TypeError("@@toPrimitive must return a primitive value."); - } - return (hint === "string" ? String : Number)(input); - } -`; -helpers.toPropertyKey = helper("7.1.5")` - import toPrimitive from "toPrimitive"; - - export default function _toPropertyKey(arg) { - var key = toPrimitive(arg, "string"); - return typeof key === "symbol" ? key : String(key); - } -`; helpers.initializerWarningHelper = helper("7.0.0-beta.0")` export default function _initializerWarningHelper(descriptor, context){ throw new Error( diff --git a/node_modules/@babel/helpers/lib/helpers.js.map b/node_modules/@babel/helpers/lib/helpers.js.map index 05c7622f..a68ab33c 100644 --- a/node_modules/@babel/helpers/lib/helpers.js.map +++ b/node_modules/@babel/helpers/lib/helpers.js.map @@ -1 +1 @@ -{"version":3,"names":["_template","require","_helpersGenerated","helpers","Object","assign","__proto__","generated","_default","exports","default","helper","minVersion","tpl","ast","template","program","AwaitValue","wrapAsyncGenerator","asyncToGenerator","classCallCheck","createClass","defineEnumerableProperties","defaults","defineProperty","extends","objectSpread","inherits","inheritsLoose","getPrototypeOf","setPrototypeOf","isNativeReflectConstruct","construct","isNativeFunction","wrapNativeSuper","instanceof","interopRequireDefault","newArrowCheck","objectDestructuringEmpty","objectWithoutPropertiesLoose","objectWithoutProperties","assertThisInitialized","possibleConstructorReturn","createSuper","superPropBase","get","set","taggedTemplateLiteral","taggedTemplateLiteralLoose","readOnlyError","writeOnlyError","classNameTDZError","temporalUndefined","tdz","temporalRef","slicedToArray","slicedToArrayLoose","toArray","toConsumableArray","arrayWithoutHoles","arrayWithHoles","maybeArrayLike","iterableToArray","unsupportedIterableToArray","arrayLikeToArray","nonIterableSpread","nonIterableRest","createForOfIteratorHelper","createForOfIteratorHelperLoose","skipFirstGeneratorNext","toPrimitive","toPropertyKey","initializerWarningHelper","initializerDefineProperty","applyDecoratedDescriptor","classPrivateFieldLooseKey","classPrivateFieldLooseBase","classPrivateFieldGet","classPrivateFieldSet","classPrivateFieldDestructureSet","classExtractFieldDescriptor","classStaticPrivateFieldSpecGet","classStaticPrivateFieldSpecSet","classStaticPrivateMethodGet","classStaticPrivateMethodSet","classApplyDescriptorGet","classApplyDescriptorSet","classApplyDescriptorDestructureSet","classStaticPrivateFieldDestructureSet","classCheckPrivateStaticAccess","classCheckPrivateStaticFieldDescriptor","decorate","classPrivateMethodGet","checkPrivateRedeclaration","classPrivateFieldInitSpec","classPrivateMethodInitSpec","classPrivateMethodSet","identity","nullishReceiverError"],"sources":["../src/helpers.ts"],"sourcesContent":["import template from \"@babel/template\";\nimport type * as t from \"@babel/types\";\n\nimport generated from \"./helpers-generated.ts\";\n\ninterface Helper {\n minVersion: string;\n ast: () => t.Program;\n}\n\nconst helpers: Record<string, Helper> = { __proto__: null, ...generated };\nexport default helpers;\n\nconst helper = (minVersion: string) => (tpl: TemplateStringsArray) => ({\n minVersion,\n ast: () => template.program.ast(tpl),\n});\n\nif (!process.env.BABEL_8_BREAKING) {\n helpers.AwaitValue = helper(\"7.0.0-beta.0\")`\n export default function _AwaitValue(value) {\n this.wrapped = value;\n }\n `;\n}\n\nhelpers.wrapAsyncGenerator = helper(\"7.0.0-beta.0\")`\n import AsyncGenerator from \"AsyncGenerator\";\n\n export default function _wrapAsyncGenerator(fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n }\n`;\n\nhelpers.asyncToGenerator = helper(\"7.0.0-beta.0\")`\n function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n }\n\n export default function _asyncToGenerator(fn) {\n return function () {\n var self = this, args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n }\n`;\n\nhelpers.classCallCheck = helper(\"7.0.0-beta.0\")`\n export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n`;\n\nhelpers.createClass = helper(\"7.0.0-beta.0\")`\n import toPropertyKey from \"toPropertyKey\";\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i ++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n }\n\n export default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n }\n`;\n\nhelpers.defineEnumerableProperties = helper(\"7.0.0-beta.0\")`\n export default function _defineEnumerableProperties(obj, descs) {\n for (var key in descs) {\n var desc = descs[key];\n desc.configurable = desc.enumerable = true;\n if (\"value\" in desc) desc.writable = true;\n Object.defineProperty(obj, key, desc);\n }\n\n // Symbols are not enumerated over by for-in loops. If native\n // Symbols are available, fetch all of the descs object's own\n // symbol properties and define them on our target object too.\n if (Object.getOwnPropertySymbols) {\n var objectSymbols = Object.getOwnPropertySymbols(descs);\n for (var i = 0; i < objectSymbols.length; i++) {\n var sym = objectSymbols[i];\n var desc = descs[sym];\n desc.configurable = desc.enumerable = true;\n if (\"value\" in desc) desc.writable = true;\n Object.defineProperty(obj, sym, desc);\n }\n }\n return obj;\n }\n`;\n\nhelpers.defaults = helper(\"7.0.0-beta.0\")`\n export default function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n return obj;\n }\n`;\n\nhelpers.defineProperty = helper(\"7.0.0-beta.0\")`\n import toPropertyKey from \"toPropertyKey\";\n export default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n // Shortcircuit the slow defineProperty path when possible.\n // We are trying to avoid issues where setters defined on the\n // prototype cause side effects under the fast path of simple\n // assignment. By checking for existence of the property with\n // the in operator, we can optimize most of this overhead away.\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n`;\n\n// need a bind because https://github.com/babel/babel/issues/14527\nhelpers.extends = helper(\"7.0.0-beta.0\")`\n export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n`;\n\nif (!process.env.BABEL_8_BREAKING) {\n helpers.objectSpread = helper(\"7.0.0-beta.0\")`\n import defineProperty from \"defineProperty\";\n\n export default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = (arguments[i] != null) ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n defineProperty(target, key, source[key]);\n });\n }\n return target;\n }\n `;\n}\n\nhelpers.inherits = helper(\"7.0.0-beta.0\")`\n import setPrototypeOf from \"setPrototypeOf\";\n\n export default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n // We can't use defineProperty to set the prototype in a single step because it\n // doesn't work in Chrome <= 36. https://github.com/babel/babel/issues/14056\n // V8 bug: https://bugs.chromium.org/p/v8/issues/detail?id=3334\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", { writable: false });\n if (superClass) setPrototypeOf(subClass, superClass);\n }\n`;\n\nhelpers.inheritsLoose = helper(\"7.0.0-beta.0\")`\n import setPrototypeOf from \"setPrototypeOf\";\n\n export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n }\n`;\n\n// need a bind because https://github.com/babel/babel/issues/14527\nhelpers.getPrototypeOf = helper(\"7.0.0-beta.0\")`\n export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf\n ? Object.getPrototypeOf.bind()\n : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n`;\n\nhelpers.setPrototypeOf = helper(\"7.0.0-beta.0\")`\n export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf\n ? Object.setPrototypeOf.bind()\n : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n`;\n\nhelpers.isNativeReflectConstruct = helper(\"7.9.0\")`\n export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n\n // core-js@3\n if (Reflect.construct.sham) return false;\n\n // Proxy can't be polyfilled. Every browser implemented\n // proxies before or at the same time as Reflect.construct,\n // so if they support Proxy they also support Reflect.construct.\n if (typeof Proxy === \"function\") return true;\n\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n`;\n\n// need a bind because https://github.com/babel/babel/issues/14527\nhelpers.construct = helper(\"7.0.0-beta.0\")`\n import setPrototypeOf from \"setPrototypeOf\";\n import isNativeReflectConstruct from \"isNativeReflectConstruct\";\n\n export default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n // NOTE: If Parent !== Class, the correct __proto__ is set *after*\n // calling the constructor.\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n // Avoid issues with Class being present but undefined when it wasn't\n // present in the original call.\n return _construct.apply(null, arguments);\n }\n`;\n\nhelpers.isNativeFunction = helper(\"7.0.0-beta.0\")`\n export default function _isNativeFunction(fn) {\n // Note: This function returns \"true\" for core-js functions.\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n // Firefox 31 throws when \"toString\" is applied to an HTMLElement\n return typeof fn === \"function\";\n }\n }\n`;\n\n// Based on https://github.com/WebReflection/babel-plugin-transform-builtin-classes\nhelpers.wrapNativeSuper = helper(\"7.0.0-beta.0\")`\n import getPrototypeOf from \"getPrototypeOf\";\n import setPrototypeOf from \"setPrototypeOf\";\n import isNativeFunction from \"isNativeFunction\";\n import construct from \"construct\";\n\n export default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor)\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n }\n });\n\n return setPrototypeOf(Wrapper, Class);\n }\n\n return _wrapNativeSuper(Class)\n }\n`;\n\nhelpers.instanceof = helper(\"7.0.0-beta.0\")`\n export default function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n }\n`;\n\nhelpers.interopRequireDefault = helper(\"7.0.0-beta.0\")`\n export default function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n }\n`;\n\nhelpers.newArrowCheck = helper(\"7.0.0-beta.0\")`\n export default function _newArrowCheck(innerThis, boundThis) {\n if (innerThis !== boundThis) {\n throw new TypeError(\"Cannot instantiate an arrow function\");\n }\n }\n`;\n\nhelpers.objectDestructuringEmpty = helper(\"7.0.0-beta.0\")`\n export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n }\n`;\n\nhelpers.objectWithoutPropertiesLoose = helper(\"7.0.0-beta.0\")`\n export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n`;\n\nhelpers.objectWithoutProperties = helper(\"7.0.0-beta.0\")`\n import objectWithoutPropertiesLoose from \"objectWithoutPropertiesLoose\";\n\n export default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n`;\n\nhelpers.assertThisInitialized = helper(\"7.0.0-beta.0\")`\n export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n }\n`;\n\nhelpers.possibleConstructorReturn = helper(\"7.0.0-beta.0\")`\n import assertThisInitialized from \"assertThisInitialized\";\n\n export default function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n }\n`;\n\n// This is duplicated to packages/babel-plugin-transform-classes/src/inline-createSuper-helpers.js\nhelpers.createSuper = helper(\"7.9.0\")`\n import getPrototypeOf from \"getPrototypeOf\";\n import isNativeReflectConstruct from \"isNativeReflectConstruct\";\n import possibleConstructorReturn from \"possibleConstructorReturn\";\n\n export default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n // NOTE: This doesn't work if this.__proto__.constructor has been modified.\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n }\n }\n `;\n\nhelpers.superPropBase = helper(\"7.0.0-beta.0\")`\n import getPrototypeOf from \"getPrototypeOf\";\n\n export default function _superPropBase(object, property) {\n // Yes, this throws if object is null to being with, that's on purpose.\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n }\n`;\n\n// need a bind because https://github.com/babel/babel/issues/14527\n// https://tc39.es/ecma262/multipage/reflection.html#sec-reflect.get\n//\n// 28.1.5 Reflect.get ( target, propertyKey [ , receiver ] )\n//\nhelpers.get = helper(\"7.0.0-beta.0\")`\n import superPropBase from \"superPropBase\";\n\n export default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n\n if (!base) return;\n\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n // STEP 3. If receiver is not present, then set receiver to target.\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n }\n`;\n\nhelpers.set = helper(\"7.0.0-beta.0\")`\n import superPropBase from \"superPropBase\";\n import defineProperty from \"defineProperty\";\n\n function set(target, property, value, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.set) {\n set = Reflect.set;\n } else {\n set = function set(target, property, value, receiver) {\n var base = superPropBase(target, property);\n var desc;\n\n if (base) {\n desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.set) {\n desc.set.call(receiver, value);\n return true;\n } else if (!desc.writable) {\n // Both getter and non-writable fall into this.\n return false;\n }\n }\n\n // Without a super that defines the property, spec boils down to\n // \"define on receiver\" for some reason.\n desc = Object.getOwnPropertyDescriptor(receiver, property);\n if (desc) {\n if (!desc.writable) {\n // Setter, getter, and non-writable fall into this.\n return false;\n }\n\n desc.value = value;\n Object.defineProperty(receiver, property, desc);\n } else {\n // Avoid setters that may be defined on Sub's prototype, but not on\n // the instance.\n defineProperty(receiver, property, value);\n }\n\n return true;\n };\n }\n\n return set(target, property, value, receiver);\n }\n\n export default function _set(target, property, value, receiver, isStrict) {\n var s = set(target, property, value, receiver || target);\n if (!s && isStrict) {\n throw new TypeError('failed to set property');\n }\n\n return value;\n }\n`;\n\nhelpers.taggedTemplateLiteral = helper(\"7.0.0-beta.0\")`\n export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) { raw = strings.slice(0); }\n return Object.freeze(Object.defineProperties(strings, {\n raw: { value: Object.freeze(raw) }\n }));\n }\n`;\n\nhelpers.taggedTemplateLiteralLoose = helper(\"7.0.0-beta.0\")`\n export default function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) { raw = strings.slice(0); }\n strings.raw = raw;\n return strings;\n }\n`;\n\nhelpers.readOnlyError = helper(\"7.0.0-beta.0\")`\n export default function _readOnlyError(name) {\n throw new TypeError(\"\\\\\"\" + name + \"\\\\\" is read-only\");\n }\n`;\n\nhelpers.writeOnlyError = helper(\"7.12.13\")`\n export default function _writeOnlyError(name) {\n throw new TypeError(\"\\\\\"\" + name + \"\\\\\" is write-only\");\n }\n`;\n\nhelpers.classNameTDZError = helper(\"7.0.0-beta.0\")`\n export default function _classNameTDZError(name) {\n throw new ReferenceError(\"Class \\\\\"\" + name + \"\\\\\" cannot be referenced in computed property keys.\");\n }\n`;\n\nhelpers.temporalUndefined = helper(\"7.0.0-beta.0\")`\n // This function isn't mean to be called, but to be used as a reference.\n // We can't use a normal object because it isn't hoisted.\n export default function _temporalUndefined() {}\n`;\n\nhelpers.tdz = helper(\"7.5.5\")`\n export default function _tdzError(name) {\n throw new ReferenceError(name + \" is not defined - temporal dead zone\");\n }\n`;\n\nhelpers.temporalRef = helper(\"7.0.0-beta.0\")`\n import undef from \"temporalUndefined\";\n import err from \"tdz\";\n\n export default function _temporalRef(val, name) {\n return val === undef ? err(name) : val;\n }\n`;\n\nhelpers.slicedToArray = helper(\"7.0.0-beta.0\")`\n import arrayWithHoles from \"arrayWithHoles\";\n import iterableToArrayLimit from \"iterableToArrayLimit\";\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n import nonIterableRest from \"nonIterableRest\";\n\n export default function _slicedToArray(arr, i) {\n return (\n arrayWithHoles(arr) ||\n iterableToArrayLimit(arr, i) ||\n unsupportedIterableToArray(arr, i) ||\n nonIterableRest()\n );\n }\n`;\n\nhelpers.slicedToArrayLoose = helper(\"7.0.0-beta.0\")`\n import arrayWithHoles from \"arrayWithHoles\";\n import iterableToArrayLimitLoose from \"iterableToArrayLimitLoose\";\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n import nonIterableRest from \"nonIterableRest\";\n\n export default function _slicedToArrayLoose(arr, i) {\n return (\n arrayWithHoles(arr) ||\n iterableToArrayLimitLoose(arr, i) ||\n unsupportedIterableToArray(arr, i) ||\n nonIterableRest()\n );\n }\n`;\n\nhelpers.toArray = helper(\"7.0.0-beta.0\")`\n import arrayWithHoles from \"arrayWithHoles\";\n import iterableToArray from \"iterableToArray\";\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n import nonIterableRest from \"nonIterableRest\";\n\n export default function _toArray(arr) {\n return (\n arrayWithHoles(arr) ||\n iterableToArray(arr) ||\n unsupportedIterableToArray(arr) ||\n nonIterableRest()\n );\n }\n`;\n\nhelpers.toConsumableArray = helper(\"7.0.0-beta.0\")`\n import arrayWithoutHoles from \"arrayWithoutHoles\";\n import iterableToArray from \"iterableToArray\";\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n import nonIterableSpread from \"nonIterableSpread\";\n\n export default function _toConsumableArray(arr) {\n return (\n arrayWithoutHoles(arr) ||\n iterableToArray(arr) ||\n unsupportedIterableToArray(arr) ||\n nonIterableSpread()\n );\n }\n`;\n\nhelpers.arrayWithoutHoles = helper(\"7.0.0-beta.0\")`\n import arrayLikeToArray from \"arrayLikeToArray\";\n\n export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n }\n`;\n\nhelpers.arrayWithHoles = helper(\"7.0.0-beta.0\")`\n export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n`;\n\nhelpers.maybeArrayLike = helper(\"7.9.0\")`\n import arrayLikeToArray from \"arrayLikeToArray\";\n\n export default function _maybeArrayLike(next, arr, i) {\n if (arr && !Array.isArray(arr) && typeof arr.length === \"number\") {\n var len = arr.length;\n return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len);\n }\n return next(arr, i);\n }\n`;\n\nhelpers.iterableToArray = helper(\"7.0.0-beta.0\")`\n export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n`;\n\nhelpers.unsupportedIterableToArray = helper(\"7.9.0\")`\n import arrayLikeToArray from \"arrayLikeToArray\";\n\n export default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return arrayLikeToArray(o, minLen);\n }\n`;\n\nhelpers.arrayLikeToArray = helper(\"7.9.0\")`\n export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n`;\n\nhelpers.nonIterableSpread = helper(\"7.0.0-beta.0\")`\n export default function _nonIterableSpread() {\n throw new TypeError(\n \"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"\n );\n }\n`;\n\nhelpers.nonIterableRest = helper(\"7.0.0-beta.0\")`\n export default function _nonIterableRest() {\n throw new TypeError(\n \"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"\n );\n }\n`;\n\nhelpers.createForOfIteratorHelper = helper(\"7.9.0\")`\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n\n // s: start (create the iterator)\n // n: next\n // e: error (called whenever something throws)\n // f: finish (always called at the end)\n\n export default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n // Fallback for engines without symbol support\n if (\n Array.isArray(o) ||\n (it = unsupportedIterableToArray(o)) ||\n (allowArrayLike && o && typeof o.length === \"number\")\n ) {\n if (it) o = it;\n var i = 0;\n var F = function(){};\n return {\n s: F,\n n: function() {\n if (i >= o.length) return { done: true };\n return { done: false, value: o[i++] };\n },\n e: function(e) { throw e; },\n f: F,\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true, didErr = false, err;\n\n return {\n s: function() {\n it = it.call(o);\n },\n n: function() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function(e) {\n didErr = true;\n err = e;\n },\n f: function() {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n }\n`;\n\nhelpers.createForOfIteratorHelperLoose = helper(\"7.9.0\")`\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n\n export default function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (it) return (it = it.call(o)).next.bind(it);\n\n // Fallback for engines without symbol support\n if (\n Array.isArray(o) ||\n (it = unsupportedIterableToArray(o)) ||\n (allowArrayLike && o && typeof o.length === \"number\")\n ) {\n if (it) o = it;\n var i = 0;\n return function() {\n if (i >= o.length) return { done: true };\n return { done: false, value: o[i++] };\n }\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n`;\n\nhelpers.skipFirstGeneratorNext = helper(\"7.0.0-beta.0\")`\n export default function _skipFirstGeneratorNext(fn) {\n return function () {\n var it = fn.apply(this, arguments);\n it.next();\n return it;\n }\n }\n`;\n\nhelpers.toPrimitive = helper(\"7.1.5\")`\n export default function _toPrimitive(\n input,\n hint /*: \"default\" | \"string\" | \"number\" | void */\n ) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n`;\n\nhelpers.toPropertyKey = helper(\"7.1.5\")`\n import toPrimitive from \"toPrimitive\";\n\n export default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n }\n`;\n\n/**\n * Add a helper that will throw a useful error if the transform fails to detect the class\n * property assignment, so users know something failed.\n */\nhelpers.initializerWarningHelper = helper(\"7.0.0-beta.0\")`\n export default function _initializerWarningHelper(descriptor, context){\n throw new Error(\n 'Decorating class property failed. Please ensure that ' +\n 'transform-class-properties is enabled and runs after the decorators transform.'\n );\n }\n`;\n\n/**\n * Add a helper to call as a replacement for class property definition.\n */\nhelpers.initializerDefineProperty = helper(\"7.0.0-beta.0\")`\n export default function _initializerDefineProperty(target, property, descriptor, context){\n if (!descriptor) return;\n\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0,\n });\n }\n`;\n\n/**\n * Add a helper to take an initial descriptor, apply some decorators to it, and optionally\n * define the property.\n */\nhelpers.applyDecoratedDescriptor = helper(\"7.0.0-beta.0\")`\n export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context){\n var desc = {};\n Object.keys(descriptor).forEach(function(key){\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n if ('value' in desc || desc.initializer){\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function(desc, decorator){\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0){\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0){\n Object.defineProperty(target, property, desc);\n desc = null;\n }\n\n return desc;\n }\n`;\n\nhelpers.classPrivateFieldLooseKey = helper(\"7.0.0-beta.0\")`\n var id = 0;\n export default function _classPrivateFieldKey(name) {\n return \"__private_\" + (id++) + \"_\" + name;\n }\n`;\n\nhelpers.classPrivateFieldLooseBase = helper(\"7.0.0-beta.0\")`\n export default function _classPrivateFieldBase(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError(\"attempted to use private field on non-instance\");\n }\n return receiver;\n }\n`;\n\nhelpers.classPrivateFieldGet = helper(\"7.0.0-beta.0\")`\n import classApplyDescriptorGet from \"classApplyDescriptorGet\";\n import classExtractFieldDescriptor from \"classExtractFieldDescriptor\";\n export default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n }\n`;\n\nhelpers.classPrivateFieldSet = helper(\"7.0.0-beta.0\")`\n import classApplyDescriptorSet from \"classApplyDescriptorSet\";\n import classExtractFieldDescriptor from \"classExtractFieldDescriptor\";\n export default function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n }\n`;\n\nhelpers.classPrivateFieldDestructureSet = helper(\"7.4.4\")`\n import classApplyDescriptorDestructureSet from \"classApplyDescriptorDestructureSet\";\n import classExtractFieldDescriptor from \"classExtractFieldDescriptor\";\n export default function _classPrivateFieldDestructureSet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n return classApplyDescriptorDestructureSet(receiver, descriptor);\n }\n`;\n\nhelpers.classExtractFieldDescriptor = helper(\"7.13.10\")`\n export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n }\n`;\n\nhelpers.classStaticPrivateFieldSpecGet = helper(\"7.0.2\")`\n import classApplyDescriptorGet from \"classApplyDescriptorGet\";\n import classCheckPrivateStaticAccess from \"classCheckPrivateStaticAccess\";\n import classCheckPrivateStaticFieldDescriptor from \"classCheckPrivateStaticFieldDescriptor\";\n export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {\n classCheckPrivateStaticAccess(receiver, classConstructor);\n classCheckPrivateStaticFieldDescriptor(descriptor, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n }\n`;\n\nhelpers.classStaticPrivateFieldSpecSet = helper(\"7.0.2\")`\n import classApplyDescriptorSet from \"classApplyDescriptorSet\";\n import classCheckPrivateStaticAccess from \"classCheckPrivateStaticAccess\";\n import classCheckPrivateStaticFieldDescriptor from \"classCheckPrivateStaticFieldDescriptor\";\n export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {\n classCheckPrivateStaticAccess(receiver, classConstructor);\n classCheckPrivateStaticFieldDescriptor(descriptor, \"set\");\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n }\n`;\n\nhelpers.classStaticPrivateMethodGet = helper(\"7.3.2\")`\n import classCheckPrivateStaticAccess from \"classCheckPrivateStaticAccess\";\n export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) {\n classCheckPrivateStaticAccess(receiver, classConstructor);\n return method;\n }\n`;\n\nhelpers.classStaticPrivateMethodSet = helper(\"7.3.2\")`\n export default function _classStaticPrivateMethodSet() {\n throw new TypeError(\"attempted to set read only static private field\");\n }\n`;\n\nhelpers.classApplyDescriptorGet = helper(\"7.13.10\")`\n export default function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n }\n`;\n\nhelpers.classApplyDescriptorSet = helper(\"7.13.10\")`\n export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n // This should only throw in strict mode, but class bodies are\n // always strict and private fields can only be used inside\n // class bodies.\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n }\n`;\n\nhelpers.classApplyDescriptorDestructureSet = helper(\"7.13.10\")`\n export default function _classApplyDescriptorDestructureSet(receiver, descriptor) {\n if (descriptor.set) {\n if (!(\"__destrObj\" in descriptor)) {\n descriptor.__destrObj = {\n set value(v) {\n descriptor.set.call(receiver, v)\n },\n };\n }\n return descriptor.__destrObj;\n } else {\n if (!descriptor.writable) {\n // This should only throw in strict mode, but class bodies are\n // always strict and private fields can only be used inside\n // class bodies.\n throw new TypeError(\"attempted to set read only private field\");\n }\n\n return descriptor;\n }\n }\n`;\n\nhelpers.classStaticPrivateFieldDestructureSet = helper(\"7.13.10\")`\n import classApplyDescriptorDestructureSet from \"classApplyDescriptorDestructureSet\";\n import classCheckPrivateStaticAccess from \"classCheckPrivateStaticAccess\";\n import classCheckPrivateStaticFieldDescriptor from \"classCheckPrivateStaticFieldDescriptor\";\n export default function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) {\n classCheckPrivateStaticAccess(receiver, classConstructor);\n classCheckPrivateStaticFieldDescriptor(descriptor, \"set\");\n return classApplyDescriptorDestructureSet(receiver, descriptor);\n }\n`;\n\nhelpers.classCheckPrivateStaticAccess = helper(\"7.13.10\")`\n export default function _classCheckPrivateStaticAccess(receiver, classConstructor) {\n if (receiver !== classConstructor) {\n throw new TypeError(\"Private static access of wrong provenance\");\n }\n }\n`;\n\nhelpers.classCheckPrivateStaticFieldDescriptor = helper(\"7.13.10\")`\n export default function _classCheckPrivateStaticFieldDescriptor(descriptor, action) {\n if (descriptor === undefined) {\n throw new TypeError(\"attempted to \" + action + \" private static field before its declaration\");\n }\n }\n`;\n\nhelpers.decorate = helper(\"7.1.5\")`\n import toArray from \"toArray\";\n import toPropertyKey from \"toPropertyKey\";\n\n // These comments are stripped by @babel/template\n /*::\n type PropertyDescriptor =\n | {\n value: any,\n writable: boolean,\n configurable: boolean,\n enumerable: boolean,\n }\n | {\n get?: () => any,\n set?: (v: any) => void,\n configurable: boolean,\n enumerable: boolean,\n };\n\n type FieldDescriptor ={\n writable: boolean,\n configurable: boolean,\n enumerable: boolean,\n };\n\n type Placement = \"static\" | \"prototype\" | \"own\";\n type Key = string | symbol; // PrivateName is not supported yet.\n\n type ElementDescriptor =\n | {\n kind: \"method\",\n key: Key,\n placement: Placement,\n descriptor: PropertyDescriptor\n }\n | {\n kind: \"field\",\n key: Key,\n placement: Placement,\n descriptor: FieldDescriptor,\n initializer?: () => any,\n };\n\n // This is exposed to the user code\n type ElementObjectInput = ElementDescriptor & {\n [@@toStringTag]?: \"Descriptor\"\n };\n\n // This is exposed to the user code\n type ElementObjectOutput = ElementDescriptor & {\n [@@toStringTag]?: \"Descriptor\"\n extras?: ElementDescriptor[],\n finisher?: ClassFinisher,\n };\n\n // This is exposed to the user code\n type ClassObject = {\n [@@toStringTag]?: \"Descriptor\",\n kind: \"class\",\n elements: ElementDescriptor[],\n };\n\n type ElementDecorator = (descriptor: ElementObjectInput) => ?ElementObjectOutput;\n type ClassDecorator = (descriptor: ClassObject) => ?ClassObject;\n type ClassFinisher = <A, B>(cl: Class<A>) => Class<B>;\n\n // Only used by Babel in the transform output, not part of the spec.\n type ElementDefinition =\n | {\n kind: \"method\",\n value: any,\n key: Key,\n static?: boolean,\n decorators?: ElementDecorator[],\n }\n | {\n kind: \"field\",\n value: () => any,\n key: Key,\n static?: boolean,\n decorators?: ElementDecorator[],\n };\n\n declare function ClassFactory<C>(initialize: (instance: C) => void): {\n F: Class<C>,\n d: ElementDefinition[]\n }\n\n */\n\n /*::\n // Various combinations with/without extras and with one or many finishers\n\n type ElementFinisherExtras = {\n element: ElementDescriptor,\n finisher?: ClassFinisher,\n extras?: ElementDescriptor[],\n };\n\n type ElementFinishersExtras = {\n element: ElementDescriptor,\n finishers: ClassFinisher[],\n extras: ElementDescriptor[],\n };\n\n type ElementsFinisher = {\n elements: ElementDescriptor[],\n finisher?: ClassFinisher,\n };\n\n type ElementsFinishers = {\n elements: ElementDescriptor[],\n finishers: ClassFinisher[],\n };\n\n */\n\n /*::\n\n type Placements = {\n static: Key[],\n prototype: Key[],\n own: Key[],\n };\n\n */\n\n // ClassDefinitionEvaluation (Steps 26-*)\n export default function _decorate(\n decorators /*: ClassDecorator[] */,\n factory /*: ClassFactory */,\n superClass /*: ?Class<*> */,\n mixins /*: ?Array<Function> */,\n ) /*: Class<*> */ {\n var api = _getDecoratorsApi();\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n api = mixins[i](api);\n }\n }\n\n var r = factory(function initialize(O) {\n api.initializeInstanceElements(O, decorated.elements);\n }, superClass);\n var decorated = api.decorateClass(\n _coalesceClassElements(r.d.map(_createElementDescriptor)),\n decorators,\n );\n\n api.initializeClassElements(r.F, decorated.elements);\n\n return api.runClassFinishers(r.F, decorated.finishers);\n }\n\n function _getDecoratorsApi() {\n _getDecoratorsApi = function() {\n return api;\n };\n\n var api = {\n elementsDefinitionOrder: [[\"method\"], [\"field\"]],\n\n // InitializeInstanceElements\n initializeInstanceElements: function(\n /*::<C>*/ O /*: C */,\n elements /*: ElementDescriptor[] */,\n ) {\n [\"method\", \"field\"].forEach(function(kind) {\n elements.forEach(function(element /*: ElementDescriptor */) {\n if (element.kind === kind && element.placement === \"own\") {\n this.defineClassElement(O, element);\n }\n }, this);\n }, this);\n },\n\n // InitializeClassElements\n initializeClassElements: function(\n /*::<C>*/ F /*: Class<C> */,\n elements /*: ElementDescriptor[] */,\n ) {\n var proto = F.prototype;\n\n [\"method\", \"field\"].forEach(function(kind) {\n elements.forEach(function(element /*: ElementDescriptor */) {\n var placement = element.placement;\n if (\n element.kind === kind &&\n (placement === \"static\" || placement === \"prototype\")\n ) {\n var receiver = placement === \"static\" ? F : proto;\n this.defineClassElement(receiver, element);\n }\n }, this);\n }, this);\n },\n\n // DefineClassElement\n defineClassElement: function(\n /*::<C>*/ receiver /*: C | Class<C> */,\n element /*: ElementDescriptor */,\n ) {\n var descriptor /*: PropertyDescriptor */ = element.descriptor;\n if (element.kind === \"field\") {\n var initializer = element.initializer;\n descriptor = {\n enumerable: descriptor.enumerable,\n writable: descriptor.writable,\n configurable: descriptor.configurable,\n value: initializer === void 0 ? void 0 : initializer.call(receiver),\n };\n }\n Object.defineProperty(receiver, element.key, descriptor);\n },\n\n // DecorateClass\n decorateClass: function(\n elements /*: ElementDescriptor[] */,\n decorators /*: ClassDecorator[] */,\n ) /*: ElementsFinishers */ {\n var newElements /*: ElementDescriptor[] */ = [];\n var finishers /*: ClassFinisher[] */ = [];\n var placements /*: Placements */ = {\n static: [],\n prototype: [],\n own: [],\n };\n\n elements.forEach(function(element /*: ElementDescriptor */) {\n this.addElementPlacement(element, placements);\n }, this);\n\n elements.forEach(function(element /*: ElementDescriptor */) {\n if (!_hasDecorators(element)) return newElements.push(element);\n\n var elementFinishersExtras /*: ElementFinishersExtras */ = this.decorateElement(\n element,\n placements,\n );\n newElements.push(elementFinishersExtras.element);\n newElements.push.apply(newElements, elementFinishersExtras.extras);\n finishers.push.apply(finishers, elementFinishersExtras.finishers);\n }, this);\n\n if (!decorators) {\n return { elements: newElements, finishers: finishers };\n }\n\n var result /*: ElementsFinishers */ = this.decorateConstructor(\n newElements,\n decorators,\n );\n finishers.push.apply(finishers, result.finishers);\n result.finishers = finishers;\n\n return result;\n },\n\n // AddElementPlacement\n addElementPlacement: function(\n element /*: ElementDescriptor */,\n placements /*: Placements */,\n silent /*: boolean */,\n ) {\n var keys = placements[element.placement];\n if (!silent && keys.indexOf(element.key) !== -1) {\n throw new TypeError(\"Duplicated element (\" + element.key + \")\");\n }\n keys.push(element.key);\n },\n\n // DecorateElement\n decorateElement: function(\n element /*: ElementDescriptor */,\n placements /*: Placements */,\n ) /*: ElementFinishersExtras */ {\n var extras /*: ElementDescriptor[] */ = [];\n var finishers /*: ClassFinisher[] */ = [];\n\n for (\n var decorators = element.decorators, i = decorators.length - 1;\n i >= 0;\n i--\n ) {\n // (inlined) RemoveElementPlacement\n var keys = placements[element.placement];\n keys.splice(keys.indexOf(element.key), 1);\n\n var elementObject /*: ElementObjectInput */ = this.fromElementDescriptor(\n element,\n );\n var elementFinisherExtras /*: ElementFinisherExtras */ = this.toElementFinisherExtras(\n (0, decorators[i])(elementObject) /*: ElementObjectOutput */ ||\n elementObject,\n );\n\n element = elementFinisherExtras.element;\n this.addElementPlacement(element, placements);\n\n if (elementFinisherExtras.finisher) {\n finishers.push(elementFinisherExtras.finisher);\n }\n\n var newExtras /*: ElementDescriptor[] | void */ =\n elementFinisherExtras.extras;\n if (newExtras) {\n for (var j = 0; j < newExtras.length; j++) {\n this.addElementPlacement(newExtras[j], placements);\n }\n extras.push.apply(extras, newExtras);\n }\n }\n\n return { element: element, finishers: finishers, extras: extras };\n },\n\n // DecorateConstructor\n decorateConstructor: function(\n elements /*: ElementDescriptor[] */,\n decorators /*: ClassDecorator[] */,\n ) /*: ElementsFinishers */ {\n var finishers /*: ClassFinisher[] */ = [];\n\n for (var i = decorators.length - 1; i >= 0; i--) {\n var obj /*: ClassObject */ = this.fromClassDescriptor(elements);\n var elementsAndFinisher /*: ElementsFinisher */ = this.toClassDescriptor(\n (0, decorators[i])(obj) /*: ClassObject */ || obj,\n );\n\n if (elementsAndFinisher.finisher !== undefined) {\n finishers.push(elementsAndFinisher.finisher);\n }\n\n if (elementsAndFinisher.elements !== undefined) {\n elements = elementsAndFinisher.elements;\n\n for (var j = 0; j < elements.length - 1; j++) {\n for (var k = j + 1; k < elements.length; k++) {\n if (\n elements[j].key === elements[k].key &&\n elements[j].placement === elements[k].placement\n ) {\n throw new TypeError(\n \"Duplicated element (\" + elements[j].key + \")\",\n );\n }\n }\n }\n }\n }\n\n return { elements: elements, finishers: finishers };\n },\n\n // FromElementDescriptor\n fromElementDescriptor: function(\n element /*: ElementDescriptor */,\n ) /*: ElementObject */ {\n var obj /*: ElementObject */ = {\n kind: element.kind,\n key: element.key,\n placement: element.placement,\n descriptor: element.descriptor,\n };\n\n var desc = {\n value: \"Descriptor\",\n configurable: true,\n };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n\n if (element.kind === \"field\") obj.initializer = element.initializer;\n\n return obj;\n },\n\n // ToElementDescriptors\n toElementDescriptors: function(\n elementObjects /*: ElementObject[] */,\n ) /*: ElementDescriptor[] */ {\n if (elementObjects === undefined) return;\n return toArray(elementObjects).map(function(elementObject) {\n var element = this.toElementDescriptor(elementObject);\n this.disallowProperty(elementObject, \"finisher\", \"An element descriptor\");\n this.disallowProperty(elementObject, \"extras\", \"An element descriptor\");\n return element;\n }, this);\n },\n\n // ToElementDescriptor\n toElementDescriptor: function(\n elementObject /*: ElementObject */,\n ) /*: ElementDescriptor */ {\n var kind = String(elementObject.kind);\n if (kind !== \"method\" && kind !== \"field\") {\n throw new TypeError(\n 'An element descriptor\\\\'s .kind property must be either \"method\" or' +\n ' \"field\", but a decorator created an element descriptor with' +\n ' .kind \"' +\n kind +\n '\"',\n );\n }\n\n var key = toPropertyKey(elementObject.key);\n\n var placement = String(elementObject.placement);\n if (\n placement !== \"static\" &&\n placement !== \"prototype\" &&\n placement !== \"own\"\n ) {\n throw new TypeError(\n 'An element descriptor\\\\'s .placement property must be one of \"static\",' +\n ' \"prototype\" or \"own\", but a decorator created an element descriptor' +\n ' with .placement \"' +\n placement +\n '\"',\n );\n }\n\n var descriptor /*: PropertyDescriptor */ = elementObject.descriptor;\n\n this.disallowProperty(elementObject, \"elements\", \"An element descriptor\");\n\n var element /*: ElementDescriptor */ = {\n kind: kind,\n key: key,\n placement: placement,\n descriptor: Object.assign({}, descriptor),\n };\n\n if (kind !== \"field\") {\n this.disallowProperty(elementObject, \"initializer\", \"A method descriptor\");\n } else {\n this.disallowProperty(\n descriptor,\n \"get\",\n \"The property descriptor of a field descriptor\",\n );\n this.disallowProperty(\n descriptor,\n \"set\",\n \"The property descriptor of a field descriptor\",\n );\n this.disallowProperty(\n descriptor,\n \"value\",\n \"The property descriptor of a field descriptor\",\n );\n\n element.initializer = elementObject.initializer;\n }\n\n return element;\n },\n\n toElementFinisherExtras: function(\n elementObject /*: ElementObject */,\n ) /*: ElementFinisherExtras */ {\n var element /*: ElementDescriptor */ = this.toElementDescriptor(\n elementObject,\n );\n var finisher /*: ClassFinisher */ = _optionalCallableProperty(\n elementObject,\n \"finisher\",\n );\n var extras /*: ElementDescriptors[] */ = this.toElementDescriptors(\n elementObject.extras,\n );\n\n return { element: element, finisher: finisher, extras: extras };\n },\n\n // FromClassDescriptor\n fromClassDescriptor: function(\n elements /*: ElementDescriptor[] */,\n ) /*: ClassObject */ {\n var obj = {\n kind: \"class\",\n elements: elements.map(this.fromElementDescriptor, this),\n };\n\n var desc = { value: \"Descriptor\", configurable: true };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n\n return obj;\n },\n\n // ToClassDescriptor\n toClassDescriptor: function(\n obj /*: ClassObject */,\n ) /*: ElementsFinisher */ {\n var kind = String(obj.kind);\n if (kind !== \"class\") {\n throw new TypeError(\n 'A class descriptor\\\\'s .kind property must be \"class\", but a decorator' +\n ' created a class descriptor with .kind \"' +\n kind +\n '\"',\n );\n }\n\n this.disallowProperty(obj, \"key\", \"A class descriptor\");\n this.disallowProperty(obj, \"placement\", \"A class descriptor\");\n this.disallowProperty(obj, \"descriptor\", \"A class descriptor\");\n this.disallowProperty(obj, \"initializer\", \"A class descriptor\");\n this.disallowProperty(obj, \"extras\", \"A class descriptor\");\n\n var finisher = _optionalCallableProperty(obj, \"finisher\");\n var elements = this.toElementDescriptors(obj.elements);\n\n return { elements: elements, finisher: finisher };\n },\n\n // RunClassFinishers\n runClassFinishers: function(\n constructor /*: Class<*> */,\n finishers /*: ClassFinisher[] */,\n ) /*: Class<*> */ {\n for (var i = 0; i < finishers.length; i++) {\n var newConstructor /*: ?Class<*> */ = (0, finishers[i])(constructor);\n if (newConstructor !== undefined) {\n // NOTE: This should check if IsConstructor(newConstructor) is false.\n if (typeof newConstructor !== \"function\") {\n throw new TypeError(\"Finishers must return a constructor.\");\n }\n constructor = newConstructor;\n }\n }\n return constructor;\n },\n\n disallowProperty: function(obj, name, objectType) {\n if (obj[name] !== undefined) {\n throw new TypeError(objectType + \" can't have a .\" + name + \" property.\");\n }\n }\n };\n\n return api;\n }\n\n // ClassElementEvaluation\n function _createElementDescriptor(\n def /*: ElementDefinition */,\n ) /*: ElementDescriptor */ {\n var key = toPropertyKey(def.key);\n\n var descriptor /*: PropertyDescriptor */;\n if (def.kind === \"method\") {\n descriptor = {\n value: def.value,\n writable: true,\n configurable: true,\n enumerable: false,\n };\n } else if (def.kind === \"get\") {\n descriptor = { get: def.value, configurable: true, enumerable: false };\n } else if (def.kind === \"set\") {\n descriptor = { set: def.value, configurable: true, enumerable: false };\n } else if (def.kind === \"field\") {\n descriptor = { configurable: true, writable: true, enumerable: true };\n }\n\n var element /*: ElementDescriptor */ = {\n kind: def.kind === \"field\" ? \"field\" : \"method\",\n key: key,\n placement: def.static\n ? \"static\"\n : def.kind === \"field\"\n ? \"own\"\n : \"prototype\",\n descriptor: descriptor,\n };\n if (def.decorators) element.decorators = def.decorators;\n if (def.kind === \"field\") element.initializer = def.value;\n\n return element;\n }\n\n // CoalesceGetterSetter\n function _coalesceGetterSetter(\n element /*: ElementDescriptor */,\n other /*: ElementDescriptor */,\n ) {\n if (element.descriptor.get !== undefined) {\n other.descriptor.get = element.descriptor.get;\n } else {\n other.descriptor.set = element.descriptor.set;\n }\n }\n\n // CoalesceClassElements\n function _coalesceClassElements(\n elements /*: ElementDescriptor[] */,\n ) /*: ElementDescriptor[] */ {\n var newElements /*: ElementDescriptor[] */ = [];\n\n var isSameElement = function(\n other /*: ElementDescriptor */,\n ) /*: boolean */ {\n return (\n other.kind === \"method\" &&\n other.key === element.key &&\n other.placement === element.placement\n );\n };\n\n for (var i = 0; i < elements.length; i++) {\n var element /*: ElementDescriptor */ = elements[i];\n var other /*: ElementDescriptor */;\n\n if (\n element.kind === \"method\" &&\n (other = newElements.find(isSameElement))\n ) {\n if (\n _isDataDescriptor(element.descriptor) ||\n _isDataDescriptor(other.descriptor)\n ) {\n if (_hasDecorators(element) || _hasDecorators(other)) {\n throw new ReferenceError(\n \"Duplicated methods (\" + element.key + \") can't be decorated.\",\n );\n }\n other.descriptor = element.descriptor;\n } else {\n if (_hasDecorators(element)) {\n if (_hasDecorators(other)) {\n throw new ReferenceError(\n \"Decorators can't be placed on different accessors with for \" +\n \"the same property (\" +\n element.key +\n \").\",\n );\n }\n other.decorators = element.decorators;\n }\n _coalesceGetterSetter(element, other);\n }\n } else {\n newElements.push(element);\n }\n }\n\n return newElements;\n }\n\n function _hasDecorators(element /*: ElementDescriptor */) /*: boolean */ {\n return element.decorators && element.decorators.length;\n }\n\n function _isDataDescriptor(desc /*: PropertyDescriptor */) /*: boolean */ {\n return (\n desc !== undefined &&\n !(desc.value === undefined && desc.writable === undefined)\n );\n }\n\n function _optionalCallableProperty /*::<T>*/(\n obj /*: T */,\n name /*: $Keys<T> */,\n ) /*: ?Function */ {\n var value = obj[name];\n if (value !== undefined && typeof value !== \"function\") {\n throw new TypeError(\"Expected '\" + name + \"' to be a function\");\n }\n return value;\n }\n\n`;\n\nhelpers.classPrivateMethodGet = helper(\"7.1.6\")`\n export default function _classPrivateMethodGet(receiver, privateSet, fn) {\n if (!privateSet.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n return fn;\n }\n`;\n\nhelpers.checkPrivateRedeclaration = helper(\"7.14.1\")`\n export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n }\n`;\n\nhelpers.classPrivateFieldInitSpec = helper(\"7.14.1\")`\n import checkPrivateRedeclaration from \"checkPrivateRedeclaration\";\n\n export default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n }\n`;\n\nhelpers.classPrivateMethodInitSpec = helper(\"7.14.1\")`\n import checkPrivateRedeclaration from \"checkPrivateRedeclaration\";\n\n export default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n }\n`;\n\nif (!process.env.BABEL_8_BREAKING) {\n // Use readOnlyError instead\n helpers.classPrivateMethodSet = helper(\"7.1.6\")`\n export default function _classPrivateMethodSet() {\n throw new TypeError(\"attempted to reassign private method\");\n }\n `;\n}\n\nhelpers.identity = helper(\"7.17.0\")`\n export default function _identity(x) {\n return x;\n }\n`;\n\nhelpers.nullishReceiverError = helper(\"7.22.6\")`\n export default function _nullishReceiverError(r) {\n throw new TypeError(\"Cannot set property of null or undefined.\");\n }\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAGA,IAAAC,iBAAA,GAAAD,OAAA;AAOA,MAAME,OAA+B,GAAAC,MAAA,CAAAC,MAAA;EAAKC,SAAS,EAAE;AAAI,GAAKC,yBAAS,CAAE;AAAC,IAAAC,QAAA,GAC3DL,OAAO;AAAAM,OAAA,CAAAC,OAAA,GAAAF,QAAA;AAEtB,MAAMG,MAAM,GAAIC,UAAkB,IAAMC,GAAyB,KAAM;EACrED,UAAU;EACVE,GAAG,EAAEA,CAAA,KAAMC,iBAAQ,CAACC,OAAO,CAACF,GAAG,CAACD,GAAG;AACrC,CAAC,CAAC;AAEiC;EACjCV,OAAO,CAACc,UAAU,GAAGN,MAAM,CAAC,cAAc,CAAE;AAC9C;AACA;AACA;AACA,GAAG;AACH;AAEAR,OAAO,CAACe,kBAAkB,GAAGP,MAAM,CAAC,cAAc,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgB,gBAAgB,GAAGR,MAAM,CAAC,cAAc,CAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiB,cAAc,GAAGT,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkB,WAAW,GAAGV,MAAM,CAAC,cAAc,CAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACmB,0BAA0B,GAAGX,MAAM,CAAC,cAAc,CAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACoB,QAAQ,GAAGZ,MAAM,CAAC,cAAc,CAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACqB,cAAc,GAAGb,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAACsB,OAAO,GAAGd,MAAM,CAAC,cAAc,CAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEkC;EACjCR,OAAO,CAACuB,YAAY,GAAGf,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AAEAR,OAAO,CAACwB,QAAQ,GAAGhB,MAAM,CAAC,cAAc,CAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACyB,aAAa,GAAGjB,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAAC0B,cAAc,GAAGlB,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC2B,cAAc,GAAGnB,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC4B,wBAAwB,GAAGpB,MAAM,CAAC,OAAO,CAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAAC6B,SAAS,GAAGrB,MAAM,CAAC,cAAc,CAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC8B,gBAAgB,GAAGtB,MAAM,CAAC,cAAc,CAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAAC+B,eAAe,GAAGvB,MAAM,CAAC,cAAc,CAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgC,UAAU,GAAGxB,MAAM,CAAC,cAAc,CAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiC,qBAAqB,GAAGzB,MAAM,CAAC,cAAc,CAAE;AACvD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkC,aAAa,GAAG1B,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACmC,wBAAwB,GAAG3B,MAAM,CAAC,cAAc,CAAE;AAC1D;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACoC,4BAA4B,GAAG5B,MAAM,CAAC,cAAc,CAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACqC,uBAAuB,GAAG7B,MAAM,CAAC,cAAc,CAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACsC,qBAAqB,GAAG9B,MAAM,CAAC,cAAc,CAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACuC,yBAAyB,GAAG/B,MAAM,CAAC,cAAc,CAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAACwC,WAAW,GAAGhC,MAAM,CAAC,OAAO,CAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AAEFR,OAAO,CAACyC,aAAa,GAAGjC,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAODR,OAAO,CAAC0C,GAAG,GAAGlC,MAAM,CAAC,cAAc,CAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC2C,GAAG,GAAGnC,MAAM,CAAC,cAAc,CAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC4C,qBAAqB,GAAGpC,MAAM,CAAC,cAAc,CAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC6C,0BAA0B,GAAGrC,MAAM,CAAC,cAAc,CAAE;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC8C,aAAa,GAAGtC,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC+C,cAAc,GAAGvC,MAAM,CAAC,SAAS,CAAE;AAC3C;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgD,iBAAiB,GAAGxC,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiD,iBAAiB,GAAGzC,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkD,GAAG,GAAG1C,MAAM,CAAC,OAAO,CAAE;AAC9B;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACmD,WAAW,GAAG3C,MAAM,CAAC,cAAc,CAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACoD,aAAa,GAAG5C,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACqD,kBAAkB,GAAG7C,MAAM,CAAC,cAAc,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACsD,OAAO,GAAG9C,MAAM,CAAC,cAAc,CAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACuD,iBAAiB,GAAG/C,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACwD,iBAAiB,GAAGhD,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACyD,cAAc,GAAGjD,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC0D,cAAc,GAAGlD,MAAM,CAAC,OAAO,CAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC2D,eAAe,GAAGnD,MAAM,CAAC,cAAc,CAAE;AACjD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC4D,0BAA0B,GAAGpD,MAAM,CAAC,OAAO,CAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC6D,gBAAgB,GAAGrD,MAAM,CAAC,OAAO,CAAE;AAC3C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC8D,iBAAiB,GAAGtD,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC+D,eAAe,GAAGvD,MAAM,CAAC,cAAc,CAAE;AACjD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgE,yBAAyB,GAAGxD,MAAM,CAAC,OAAO,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiE,8BAA8B,GAAGzD,MAAM,CAAC,OAAO,CAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkE,sBAAsB,GAAG1D,MAAM,CAAC,cAAc,CAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACmE,WAAW,GAAG3D,MAAM,CAAC,OAAO,CAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACoE,aAAa,GAAG5D,MAAM,CAAC,OAAO,CAAE;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAMDR,OAAO,CAACqE,wBAAwB,GAAG7D,MAAM,CAAC,cAAc,CAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAKDR,OAAO,CAACsE,yBAAyB,GAAG9D,MAAM,CAAC,cAAc,CAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAMDR,OAAO,CAACuE,wBAAwB,GAAG/D,MAAM,CAAC,cAAc,CAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACwE,yBAAyB,GAAGhE,MAAM,CAAC,cAAc,CAAE;AAC3D;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACyE,0BAA0B,GAAGjE,MAAM,CAAC,cAAc,CAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC0E,oBAAoB,GAAGlE,MAAM,CAAC,cAAc,CAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC2E,oBAAoB,GAAGnE,MAAM,CAAC,cAAc,CAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC4E,+BAA+B,GAAGpE,MAAM,CAAC,OAAO,CAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC6E,2BAA2B,GAAGrE,MAAM,CAAC,SAAS,CAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC8E,8BAA8B,GAAGtE,MAAM,CAAC,OAAO,CAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC+E,8BAA8B,GAAGvE,MAAM,CAAC,OAAO,CAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgF,2BAA2B,GAAGxE,MAAM,CAAC,OAAO,CAAE;AACtD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiF,2BAA2B,GAAGzE,MAAM,CAAC,OAAO,CAAE;AACtD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkF,uBAAuB,GAAG1E,MAAM,CAAC,SAAS,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACmF,uBAAuB,GAAG3E,MAAM,CAAC,SAAS,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACoF,kCAAkC,GAAG5E,MAAM,CAAC,SAAS,CAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACqF,qCAAqC,GAAG7E,MAAM,CAAC,SAAS,CAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACsF,6BAA6B,GAAG9E,MAAM,CAAC,SAAS,CAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACuF,sCAAsC,GAAG/E,MAAM,CAAC,SAAS,CAAE;AACnE;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACwF,QAAQ,GAAGhF,MAAM,CAAC,OAAO,CAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACyF,qBAAqB,GAAGjF,MAAM,CAAC,OAAO,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC0F,yBAAyB,GAAGlF,MAAM,CAAC,QAAQ,CAAE;AACrD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC2F,yBAAyB,GAAGnF,MAAM,CAAC,QAAQ,CAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC4F,0BAA0B,GAAGpF,MAAM,CAAC,QAAQ,CAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEkC;EAEjCR,OAAO,CAAC6F,qBAAqB,GAAGrF,MAAM,CAAC,OAAO,CAAE;AAClD;AACA;AACA;AACA,GAAG;AACH;AAEAR,OAAO,CAAC8F,QAAQ,GAAGtF,MAAM,CAAC,QAAQ,CAAE;AACpC;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC+F,oBAAoB,GAAGvF,MAAM,CAAC,QAAQ,CAAE;AAChD;AACA;AACA;AACA,CAAC"}
\ No newline at end of file +{"version":3,"names":["_template","require","_helpersGenerated","helpers","Object","assign","__proto__","generated","_default","exports","default","helper","minVersion","tpl","ast","template","program","AwaitValue","wrapAsyncGenerator","asyncToGenerator","classCallCheck","createClass","defineEnumerableProperties","defaults","defineProperty","extends","objectSpread","inherits","inheritsLoose","getPrototypeOf","setPrototypeOf","isNativeReflectConstruct","construct","isNativeFunction","wrapNativeSuper","instanceof","interopRequireDefault","newArrowCheck","objectDestructuringEmpty","objectWithoutPropertiesLoose","objectWithoutProperties","assertThisInitialized","possibleConstructorReturn","createSuper","superPropBase","get","set","taggedTemplateLiteral","taggedTemplateLiteralLoose","readOnlyError","writeOnlyError","classNameTDZError","temporalUndefined","tdz","temporalRef","slicedToArray","slicedToArrayLoose","toArray","toConsumableArray","arrayWithoutHoles","arrayWithHoles","maybeArrayLike","iterableToArray","unsupportedIterableToArray","arrayLikeToArray","nonIterableSpread","nonIterableRest","createForOfIteratorHelper","createForOfIteratorHelperLoose","skipFirstGeneratorNext","initializerWarningHelper","initializerDefineProperty","applyDecoratedDescriptor","classPrivateFieldLooseKey","classPrivateFieldLooseBase","classPrivateFieldGet","classPrivateFieldSet","classPrivateFieldDestructureSet","classExtractFieldDescriptor","classStaticPrivateFieldSpecGet","classStaticPrivateFieldSpecSet","classStaticPrivateMethodGet","classStaticPrivateMethodSet","classApplyDescriptorGet","classApplyDescriptorSet","classApplyDescriptorDestructureSet","classStaticPrivateFieldDestructureSet","classCheckPrivateStaticAccess","classCheckPrivateStaticFieldDescriptor","decorate","classPrivateMethodGet","checkPrivateRedeclaration","classPrivateFieldInitSpec","classPrivateMethodInitSpec","classPrivateMethodSet","identity","nullishReceiverError"],"sources":["../src/helpers.ts"],"sourcesContent":["import template from \"@babel/template\";\nimport type * as t from \"@babel/types\";\n\nimport generated from \"./helpers-generated.ts\";\n\ninterface Helper {\n minVersion: string;\n ast: () => t.Program;\n}\n\nconst helpers: Record<string, Helper> = { __proto__: null, ...generated };\nexport default helpers;\n\nconst helper = (minVersion: string) => (tpl: TemplateStringsArray) => ({\n minVersion,\n ast: () => template.program.ast(tpl),\n});\n\nif (!process.env.BABEL_8_BREAKING) {\n helpers.AwaitValue = helper(\"7.0.0-beta.0\")`\n export default function _AwaitValue(value) {\n this.wrapped = value;\n }\n `;\n}\n\nhelpers.wrapAsyncGenerator = helper(\"7.0.0-beta.0\")`\n import AsyncGenerator from \"AsyncGenerator\";\n\n export default function _wrapAsyncGenerator(fn) {\n return function () {\n return new AsyncGenerator(fn.apply(this, arguments));\n };\n }\n`;\n\nhelpers.asyncToGenerator = helper(\"7.0.0-beta.0\")`\n function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n }\n\n export default function _asyncToGenerator(fn) {\n return function () {\n var self = this, args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n }\n`;\n\nhelpers.classCallCheck = helper(\"7.0.0-beta.0\")`\n export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n`;\n\nhelpers.createClass = helper(\"7.0.0-beta.0\")`\n import toPropertyKey from \"toPropertyKey\";\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i ++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n }\n\n export default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", { writable: false });\n return Constructor;\n }\n`;\n\nhelpers.defineEnumerableProperties = helper(\"7.0.0-beta.0\")`\n export default function _defineEnumerableProperties(obj, descs) {\n for (var key in descs) {\n var desc = descs[key];\n desc.configurable = desc.enumerable = true;\n if (\"value\" in desc) desc.writable = true;\n Object.defineProperty(obj, key, desc);\n }\n\n // Symbols are not enumerated over by for-in loops. If native\n // Symbols are available, fetch all of the descs object's own\n // symbol properties and define them on our target object too.\n if (Object.getOwnPropertySymbols) {\n var objectSymbols = Object.getOwnPropertySymbols(descs);\n for (var i = 0; i < objectSymbols.length; i++) {\n var sym = objectSymbols[i];\n var desc = descs[sym];\n desc.configurable = desc.enumerable = true;\n if (\"value\" in desc) desc.writable = true;\n Object.defineProperty(obj, sym, desc);\n }\n }\n return obj;\n }\n`;\n\nhelpers.defaults = helper(\"7.0.0-beta.0\")`\n export default function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n return obj;\n }\n`;\n\nhelpers.defineProperty = helper(\"7.0.0-beta.0\")`\n import toPropertyKey from \"toPropertyKey\";\n export default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n // Shortcircuit the slow defineProperty path when possible.\n // We are trying to avoid issues where setters defined on the\n // prototype cause side effects under the fast path of simple\n // assignment. By checking for existence of the property with\n // the in operator, we can optimize most of this overhead away.\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n`;\n\n// need a bind because https://github.com/babel/babel/issues/14527\nhelpers.extends = helper(\"7.0.0-beta.0\")`\n export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n`;\n\nif (!process.env.BABEL_8_BREAKING) {\n helpers.objectSpread = helper(\"7.0.0-beta.0\")`\n import defineProperty from \"defineProperty\";\n\n export default function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = (arguments[i] != null) ? Object(arguments[i]) : {};\n var ownKeys = Object.keys(source);\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys.push.apply(ownKeys, Object.getOwnPropertySymbols(source).filter(function(sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n ownKeys.forEach(function(key) {\n defineProperty(target, key, source[key]);\n });\n }\n return target;\n }\n `;\n}\n\nhelpers.inherits = helper(\"7.0.0-beta.0\")`\n import setPrototypeOf from \"setPrototypeOf\";\n\n export default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n // We can't use defineProperty to set the prototype in a single step because it\n // doesn't work in Chrome <= 36. https://github.com/babel/babel/issues/14056\n // V8 bug: https://bugs.chromium.org/p/v8/issues/detail?id=3334\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", { writable: false });\n if (superClass) setPrototypeOf(subClass, superClass);\n }\n`;\n\nhelpers.inheritsLoose = helper(\"7.0.0-beta.0\")`\n import setPrototypeOf from \"setPrototypeOf\";\n\n export default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n }\n`;\n\n// need a bind because https://github.com/babel/babel/issues/14527\nhelpers.getPrototypeOf = helper(\"7.0.0-beta.0\")`\n export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf\n ? Object.getPrototypeOf.bind()\n : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n }\n`;\n\nhelpers.setPrototypeOf = helper(\"7.0.0-beta.0\")`\n export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf\n ? Object.setPrototypeOf.bind()\n : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n }\n`;\n\nhelpers.isNativeReflectConstruct = helper(\"7.9.0\")`\n export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n\n // core-js@3\n if (Reflect.construct.sham) return false;\n\n // Proxy can't be polyfilled. Every browser implemented\n // proxies before or at the same time as Reflect.construct,\n // so if they support Proxy they also support Reflect.construct.\n if (typeof Proxy === \"function\") return true;\n\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {}));\n return true;\n } catch (e) {\n return false;\n }\n }\n`;\n\n// need a bind because https://github.com/babel/babel/issues/14527\nhelpers.construct = helper(\"7.0.0-beta.0\")`\n import setPrototypeOf from \"setPrototypeOf\";\n import isNativeReflectConstruct from \"isNativeReflectConstruct\";\n\n export default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct.bind();\n } else {\n // NOTE: If Parent !== Class, the correct __proto__ is set *after*\n // calling the constructor.\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n // Avoid issues with Class being present but undefined when it wasn't\n // present in the original call.\n return _construct.apply(null, arguments);\n }\n`;\n\nhelpers.isNativeFunction = helper(\"7.0.0-beta.0\")`\n export default function _isNativeFunction(fn) {\n // Note: This function returns \"true\" for core-js functions.\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n // Firefox 31 throws when \"toString\" is applied to an HTMLElement\n return typeof fn === \"function\";\n }\n }\n`;\n\n// Based on https://github.com/WebReflection/babel-plugin-transform-builtin-classes\nhelpers.wrapNativeSuper = helper(\"7.0.0-beta.0\")`\n import getPrototypeOf from \"getPrototypeOf\";\n import setPrototypeOf from \"setPrototypeOf\";\n import isNativeFunction from \"isNativeFunction\";\n import construct from \"construct\";\n\n export default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor)\n }\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n }\n });\n\n return setPrototypeOf(Wrapper, Class);\n }\n\n return _wrapNativeSuper(Class)\n }\n`;\n\nhelpers.instanceof = helper(\"7.0.0-beta.0\")`\n export default function _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n }\n`;\n\nhelpers.interopRequireDefault = helper(\"7.0.0-beta.0\")`\n export default function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : { default: obj };\n }\n`;\n\nhelpers.newArrowCheck = helper(\"7.0.0-beta.0\")`\n export default function _newArrowCheck(innerThis, boundThis) {\n if (innerThis !== boundThis) {\n throw new TypeError(\"Cannot instantiate an arrow function\");\n }\n }\n`;\n\nhelpers.objectDestructuringEmpty = helper(\"7.0.0-beta.0\")`\n export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure \" + obj);\n }\n`;\n\nhelpers.objectWithoutPropertiesLoose = helper(\"7.0.0-beta.0\")`\n export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n }\n`;\n\nhelpers.objectWithoutProperties = helper(\"7.0.0-beta.0\")`\n import objectWithoutPropertiesLoose from \"objectWithoutPropertiesLoose\";\n\n export default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n }\n`;\n\nhelpers.assertThisInitialized = helper(\"7.0.0-beta.0\")`\n export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n }\n`;\n\nhelpers.possibleConstructorReturn = helper(\"7.0.0-beta.0\")`\n import assertThisInitialized from \"assertThisInitialized\";\n\n export default function _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n }\n`;\n\n// This is duplicated to packages/babel-plugin-transform-classes/src/inline-createSuper-helpers.js\nhelpers.createSuper = helper(\"7.9.0\")`\n import getPrototypeOf from \"getPrototypeOf\";\n import isNativeReflectConstruct from \"isNativeReflectConstruct\";\n import possibleConstructorReturn from \"possibleConstructorReturn\";\n\n export default function _createSuper(Derived) {\n var hasNativeReflectConstruct = isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = getPrototypeOf(Derived), result;\n if (hasNativeReflectConstruct) {\n // NOTE: This doesn't work if this.__proto__.constructor has been modified.\n var NewTarget = getPrototypeOf(this).constructor;\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n return possibleConstructorReturn(this, result);\n }\n }\n `;\n\nhelpers.superPropBase = helper(\"7.0.0-beta.0\")`\n import getPrototypeOf from \"getPrototypeOf\";\n\n export default function _superPropBase(object, property) {\n // Yes, this throws if object is null to being with, that's on purpose.\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n return object;\n }\n`;\n\n// need a bind because https://github.com/babel/babel/issues/14527\n// https://tc39.es/ecma262/multipage/reflection.html#sec-reflect.get\n//\n// 28.1.5 Reflect.get ( target, propertyKey [ , receiver ] )\n//\nhelpers.get = helper(\"7.0.0-beta.0\")`\n import superPropBase from \"superPropBase\";\n\n export default function _get() {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get.bind();\n } else {\n _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n\n if (!base) return;\n\n var desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.get) {\n // STEP 3. If receiver is not present, then set receiver to target.\n return desc.get.call(arguments.length < 3 ? target : receiver);\n }\n\n return desc.value;\n };\n }\n return _get.apply(this, arguments);\n }\n`;\n\nhelpers.set = helper(\"7.0.0-beta.0\")`\n import superPropBase from \"superPropBase\";\n import defineProperty from \"defineProperty\";\n\n function set(target, property, value, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.set) {\n set = Reflect.set;\n } else {\n set = function set(target, property, value, receiver) {\n var base = superPropBase(target, property);\n var desc;\n\n if (base) {\n desc = Object.getOwnPropertyDescriptor(base, property);\n if (desc.set) {\n desc.set.call(receiver, value);\n return true;\n } else if (!desc.writable) {\n // Both getter and non-writable fall into this.\n return false;\n }\n }\n\n // Without a super that defines the property, spec boils down to\n // \"define on receiver\" for some reason.\n desc = Object.getOwnPropertyDescriptor(receiver, property);\n if (desc) {\n if (!desc.writable) {\n // Setter, getter, and non-writable fall into this.\n return false;\n }\n\n desc.value = value;\n Object.defineProperty(receiver, property, desc);\n } else {\n // Avoid setters that may be defined on Sub's prototype, but not on\n // the instance.\n defineProperty(receiver, property, value);\n }\n\n return true;\n };\n }\n\n return set(target, property, value, receiver);\n }\n\n export default function _set(target, property, value, receiver, isStrict) {\n var s = set(target, property, value, receiver || target);\n if (!s && isStrict) {\n throw new TypeError('failed to set property');\n }\n\n return value;\n }\n`;\n\nhelpers.taggedTemplateLiteral = helper(\"7.0.0-beta.0\")`\n export default function _taggedTemplateLiteral(strings, raw) {\n if (!raw) { raw = strings.slice(0); }\n return Object.freeze(Object.defineProperties(strings, {\n raw: { value: Object.freeze(raw) }\n }));\n }\n`;\n\nhelpers.taggedTemplateLiteralLoose = helper(\"7.0.0-beta.0\")`\n export default function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) { raw = strings.slice(0); }\n strings.raw = raw;\n return strings;\n }\n`;\n\nhelpers.readOnlyError = helper(\"7.0.0-beta.0\")`\n export default function _readOnlyError(name) {\n throw new TypeError(\"\\\\\"\" + name + \"\\\\\" is read-only\");\n }\n`;\n\nhelpers.writeOnlyError = helper(\"7.12.13\")`\n export default function _writeOnlyError(name) {\n throw new TypeError(\"\\\\\"\" + name + \"\\\\\" is write-only\");\n }\n`;\n\nhelpers.classNameTDZError = helper(\"7.0.0-beta.0\")`\n export default function _classNameTDZError(name) {\n throw new ReferenceError(\"Class \\\\\"\" + name + \"\\\\\" cannot be referenced in computed property keys.\");\n }\n`;\n\nhelpers.temporalUndefined = helper(\"7.0.0-beta.0\")`\n // This function isn't mean to be called, but to be used as a reference.\n // We can't use a normal object because it isn't hoisted.\n export default function _temporalUndefined() {}\n`;\n\nhelpers.tdz = helper(\"7.5.5\")`\n export default function _tdzError(name) {\n throw new ReferenceError(name + \" is not defined - temporal dead zone\");\n }\n`;\n\nhelpers.temporalRef = helper(\"7.0.0-beta.0\")`\n import undef from \"temporalUndefined\";\n import err from \"tdz\";\n\n export default function _temporalRef(val, name) {\n return val === undef ? err(name) : val;\n }\n`;\n\nhelpers.slicedToArray = helper(\"7.0.0-beta.0\")`\n import arrayWithHoles from \"arrayWithHoles\";\n import iterableToArrayLimit from \"iterableToArrayLimit\";\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n import nonIterableRest from \"nonIterableRest\";\n\n export default function _slicedToArray(arr, i) {\n return (\n arrayWithHoles(arr) ||\n iterableToArrayLimit(arr, i) ||\n unsupportedIterableToArray(arr, i) ||\n nonIterableRest()\n );\n }\n`;\n\nhelpers.slicedToArrayLoose = helper(\"7.0.0-beta.0\")`\n import arrayWithHoles from \"arrayWithHoles\";\n import iterableToArrayLimitLoose from \"iterableToArrayLimitLoose\";\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n import nonIterableRest from \"nonIterableRest\";\n\n export default function _slicedToArrayLoose(arr, i) {\n return (\n arrayWithHoles(arr) ||\n iterableToArrayLimitLoose(arr, i) ||\n unsupportedIterableToArray(arr, i) ||\n nonIterableRest()\n );\n }\n`;\n\nhelpers.toArray = helper(\"7.0.0-beta.0\")`\n import arrayWithHoles from \"arrayWithHoles\";\n import iterableToArray from \"iterableToArray\";\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n import nonIterableRest from \"nonIterableRest\";\n\n export default function _toArray(arr) {\n return (\n arrayWithHoles(arr) ||\n iterableToArray(arr) ||\n unsupportedIterableToArray(arr) ||\n nonIterableRest()\n );\n }\n`;\n\nhelpers.toConsumableArray = helper(\"7.0.0-beta.0\")`\n import arrayWithoutHoles from \"arrayWithoutHoles\";\n import iterableToArray from \"iterableToArray\";\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n import nonIterableSpread from \"nonIterableSpread\";\n\n export default function _toConsumableArray(arr) {\n return (\n arrayWithoutHoles(arr) ||\n iterableToArray(arr) ||\n unsupportedIterableToArray(arr) ||\n nonIterableSpread()\n );\n }\n`;\n\nhelpers.arrayWithoutHoles = helper(\"7.0.0-beta.0\")`\n import arrayLikeToArray from \"arrayLikeToArray\";\n\n export default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n }\n`;\n\nhelpers.arrayWithHoles = helper(\"7.0.0-beta.0\")`\n export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n }\n`;\n\nhelpers.maybeArrayLike = helper(\"7.9.0\")`\n import arrayLikeToArray from \"arrayLikeToArray\";\n\n export default function _maybeArrayLike(next, arr, i) {\n if (arr && !Array.isArray(arr) && typeof arr.length === \"number\") {\n var len = arr.length;\n return arrayLikeToArray(arr, i !== void 0 && i < len ? i : len);\n }\n return next(arr, i);\n }\n`;\n\nhelpers.iterableToArray = helper(\"7.0.0-beta.0\")`\n export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n }\n`;\n\nhelpers.unsupportedIterableToArray = helper(\"7.9.0\")`\n import arrayLikeToArray from \"arrayLikeToArray\";\n\n export default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n return arrayLikeToArray(o, minLen);\n }\n`;\n\nhelpers.arrayLikeToArray = helper(\"7.9.0\")`\n export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n }\n`;\n\nhelpers.nonIterableSpread = helper(\"7.0.0-beta.0\")`\n export default function _nonIterableSpread() {\n throw new TypeError(\n \"Invalid attempt to spread non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"\n );\n }\n`;\n\nhelpers.nonIterableRest = helper(\"7.0.0-beta.0\")`\n export default function _nonIterableRest() {\n throw new TypeError(\n \"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"\n );\n }\n`;\n\nhelpers.createForOfIteratorHelper = helper(\"7.9.0\")`\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n\n // s: start (create the iterator)\n // n: next\n // e: error (called whenever something throws)\n // f: finish (always called at the end)\n\n export default function _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n // Fallback for engines without symbol support\n if (\n Array.isArray(o) ||\n (it = unsupportedIterableToArray(o)) ||\n (allowArrayLike && o && typeof o.length === \"number\")\n ) {\n if (it) o = it;\n var i = 0;\n var F = function(){};\n return {\n s: F,\n n: function() {\n if (i >= o.length) return { done: true };\n return { done: false, value: o[i++] };\n },\n e: function(e) { throw e; },\n f: F,\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true, didErr = false, err;\n\n return {\n s: function() {\n it = it.call(o);\n },\n n: function() {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function(e) {\n didErr = true;\n err = e;\n },\n f: function() {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n }\n`;\n\nhelpers.createForOfIteratorHelperLoose = helper(\"7.9.0\")`\n import unsupportedIterableToArray from \"unsupportedIterableToArray\";\n\n export default function _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (it) return (it = it.call(o)).next.bind(it);\n\n // Fallback for engines without symbol support\n if (\n Array.isArray(o) ||\n (it = unsupportedIterableToArray(o)) ||\n (allowArrayLike && o && typeof o.length === \"number\")\n ) {\n if (it) o = it;\n var i = 0;\n return function() {\n if (i >= o.length) return { done: true };\n return { done: false, value: o[i++] };\n }\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n`;\n\nhelpers.skipFirstGeneratorNext = helper(\"7.0.0-beta.0\")`\n export default function _skipFirstGeneratorNext(fn) {\n return function () {\n var it = fn.apply(this, arguments);\n it.next();\n return it;\n }\n }\n`;\n\n/**\n * Add a helper that will throw a useful error if the transform fails to detect the class\n * property assignment, so users know something failed.\n */\nhelpers.initializerWarningHelper = helper(\"7.0.0-beta.0\")`\n export default function _initializerWarningHelper(descriptor, context){\n throw new Error(\n 'Decorating class property failed. Please ensure that ' +\n 'transform-class-properties is enabled and runs after the decorators transform.'\n );\n }\n`;\n\n/**\n * Add a helper to call as a replacement for class property definition.\n */\nhelpers.initializerDefineProperty = helper(\"7.0.0-beta.0\")`\n export default function _initializerDefineProperty(target, property, descriptor, context){\n if (!descriptor) return;\n\n Object.defineProperty(target, property, {\n enumerable: descriptor.enumerable,\n configurable: descriptor.configurable,\n writable: descriptor.writable,\n value: descriptor.initializer ? descriptor.initializer.call(context) : void 0,\n });\n }\n`;\n\n/**\n * Add a helper to take an initial descriptor, apply some decorators to it, and optionally\n * define the property.\n */\nhelpers.applyDecoratedDescriptor = helper(\"7.0.0-beta.0\")`\n export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context){\n var desc = {};\n Object.keys(descriptor).forEach(function(key){\n desc[key] = descriptor[key];\n });\n desc.enumerable = !!desc.enumerable;\n desc.configurable = !!desc.configurable;\n if ('value' in desc || desc.initializer){\n desc.writable = true;\n }\n\n desc = decorators.slice().reverse().reduce(function(desc, decorator){\n return decorator(target, property, desc) || desc;\n }, desc);\n\n if (context && desc.initializer !== void 0){\n desc.value = desc.initializer ? desc.initializer.call(context) : void 0;\n desc.initializer = undefined;\n }\n\n if (desc.initializer === void 0){\n Object.defineProperty(target, property, desc);\n desc = null;\n }\n\n return desc;\n }\n`;\n\nhelpers.classPrivateFieldLooseKey = helper(\"7.0.0-beta.0\")`\n var id = 0;\n export default function _classPrivateFieldKey(name) {\n return \"__private_\" + (id++) + \"_\" + name;\n }\n`;\n\nhelpers.classPrivateFieldLooseBase = helper(\"7.0.0-beta.0\")`\n export default function _classPrivateFieldBase(receiver, privateKey) {\n if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {\n throw new TypeError(\"attempted to use private field on non-instance\");\n }\n return receiver;\n }\n`;\n\nhelpers.classPrivateFieldGet = helper(\"7.0.0-beta.0\")`\n import classApplyDescriptorGet from \"classApplyDescriptorGet\";\n import classExtractFieldDescriptor from \"classExtractFieldDescriptor\";\n export default function _classPrivateFieldGet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n }\n`;\n\nhelpers.classPrivateFieldSet = helper(\"7.0.0-beta.0\")`\n import classApplyDescriptorSet from \"classApplyDescriptorSet\";\n import classExtractFieldDescriptor from \"classExtractFieldDescriptor\";\n export default function _classPrivateFieldSet(receiver, privateMap, value) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n }\n`;\n\nhelpers.classPrivateFieldDestructureSet = helper(\"7.4.4\")`\n import classApplyDescriptorDestructureSet from \"classApplyDescriptorDestructureSet\";\n import classExtractFieldDescriptor from \"classExtractFieldDescriptor\";\n export default function _classPrivateFieldDestructureSet(receiver, privateMap) {\n var descriptor = classExtractFieldDescriptor(receiver, privateMap, \"set\");\n return classApplyDescriptorDestructureSet(receiver, descriptor);\n }\n`;\n\nhelpers.classExtractFieldDescriptor = helper(\"7.13.10\")`\n export default function _classExtractFieldDescriptor(receiver, privateMap, action) {\n if (!privateMap.has(receiver)) {\n throw new TypeError(\"attempted to \" + action + \" private field on non-instance\");\n }\n return privateMap.get(receiver);\n }\n`;\n\nhelpers.classStaticPrivateFieldSpecGet = helper(\"7.0.2\")`\n import classApplyDescriptorGet from \"classApplyDescriptorGet\";\n import classCheckPrivateStaticAccess from \"classCheckPrivateStaticAccess\";\n import classCheckPrivateStaticFieldDescriptor from \"classCheckPrivateStaticFieldDescriptor\";\n export default function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {\n classCheckPrivateStaticAccess(receiver, classConstructor);\n classCheckPrivateStaticFieldDescriptor(descriptor, \"get\");\n return classApplyDescriptorGet(receiver, descriptor);\n }\n`;\n\nhelpers.classStaticPrivateFieldSpecSet = helper(\"7.0.2\")`\n import classApplyDescriptorSet from \"classApplyDescriptorSet\";\n import classCheckPrivateStaticAccess from \"classCheckPrivateStaticAccess\";\n import classCheckPrivateStaticFieldDescriptor from \"classCheckPrivateStaticFieldDescriptor\";\n export default function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {\n classCheckPrivateStaticAccess(receiver, classConstructor);\n classCheckPrivateStaticFieldDescriptor(descriptor, \"set\");\n classApplyDescriptorSet(receiver, descriptor, value);\n return value;\n }\n`;\n\nhelpers.classStaticPrivateMethodGet = helper(\"7.3.2\")`\n import classCheckPrivateStaticAccess from \"classCheckPrivateStaticAccess\";\n export default function _classStaticPrivateMethodGet(receiver, classConstructor, method) {\n classCheckPrivateStaticAccess(receiver, classConstructor);\n return method;\n }\n`;\n\nhelpers.classStaticPrivateMethodSet = helper(\"7.3.2\")`\n export default function _classStaticPrivateMethodSet() {\n throw new TypeError(\"attempted to set read only static private field\");\n }\n`;\n\nhelpers.classApplyDescriptorGet = helper(\"7.13.10\")`\n export default function _classApplyDescriptorGet(receiver, descriptor) {\n if (descriptor.get) {\n return descriptor.get.call(receiver);\n }\n return descriptor.value;\n }\n`;\n\nhelpers.classApplyDescriptorSet = helper(\"7.13.10\")`\n export default function _classApplyDescriptorSet(receiver, descriptor, value) {\n if (descriptor.set) {\n descriptor.set.call(receiver, value);\n } else {\n if (!descriptor.writable) {\n // This should only throw in strict mode, but class bodies are\n // always strict and private fields can only be used inside\n // class bodies.\n throw new TypeError(\"attempted to set read only private field\");\n }\n descriptor.value = value;\n }\n }\n`;\n\nhelpers.classApplyDescriptorDestructureSet = helper(\"7.13.10\")`\n export default function _classApplyDescriptorDestructureSet(receiver, descriptor) {\n if (descriptor.set) {\n if (!(\"__destrObj\" in descriptor)) {\n descriptor.__destrObj = {\n set value(v) {\n descriptor.set.call(receiver, v)\n },\n };\n }\n return descriptor.__destrObj;\n } else {\n if (!descriptor.writable) {\n // This should only throw in strict mode, but class bodies are\n // always strict and private fields can only be used inside\n // class bodies.\n throw new TypeError(\"attempted to set read only private field\");\n }\n\n return descriptor;\n }\n }\n`;\n\nhelpers.classStaticPrivateFieldDestructureSet = helper(\"7.13.10\")`\n import classApplyDescriptorDestructureSet from \"classApplyDescriptorDestructureSet\";\n import classCheckPrivateStaticAccess from \"classCheckPrivateStaticAccess\";\n import classCheckPrivateStaticFieldDescriptor from \"classCheckPrivateStaticFieldDescriptor\";\n export default function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) {\n classCheckPrivateStaticAccess(receiver, classConstructor);\n classCheckPrivateStaticFieldDescriptor(descriptor, \"set\");\n return classApplyDescriptorDestructureSet(receiver, descriptor);\n }\n`;\n\nhelpers.classCheckPrivateStaticAccess = helper(\"7.13.10\")`\n export default function _classCheckPrivateStaticAccess(receiver, classConstructor) {\n if (receiver !== classConstructor) {\n throw new TypeError(\"Private static access of wrong provenance\");\n }\n }\n`;\n\nhelpers.classCheckPrivateStaticFieldDescriptor = helper(\"7.13.10\")`\n export default function _classCheckPrivateStaticFieldDescriptor(descriptor, action) {\n if (descriptor === undefined) {\n throw new TypeError(\"attempted to \" + action + \" private static field before its declaration\");\n }\n }\n`;\n\nhelpers.decorate = helper(\"7.1.5\")`\n import toArray from \"toArray\";\n import toPropertyKey from \"toPropertyKey\";\n\n // These comments are stripped by @babel/template\n /*::\n type PropertyDescriptor =\n | {\n value: any,\n writable: boolean,\n configurable: boolean,\n enumerable: boolean,\n }\n | {\n get?: () => any,\n set?: (v: any) => void,\n configurable: boolean,\n enumerable: boolean,\n };\n\n type FieldDescriptor ={\n writable: boolean,\n configurable: boolean,\n enumerable: boolean,\n };\n\n type Placement = \"static\" | \"prototype\" | \"own\";\n type Key = string | symbol; // PrivateName is not supported yet.\n\n type ElementDescriptor =\n | {\n kind: \"method\",\n key: Key,\n placement: Placement,\n descriptor: PropertyDescriptor\n }\n | {\n kind: \"field\",\n key: Key,\n placement: Placement,\n descriptor: FieldDescriptor,\n initializer?: () => any,\n };\n\n // This is exposed to the user code\n type ElementObjectInput = ElementDescriptor & {\n [@@toStringTag]?: \"Descriptor\"\n };\n\n // This is exposed to the user code\n type ElementObjectOutput = ElementDescriptor & {\n [@@toStringTag]?: \"Descriptor\"\n extras?: ElementDescriptor[],\n finisher?: ClassFinisher,\n };\n\n // This is exposed to the user code\n type ClassObject = {\n [@@toStringTag]?: \"Descriptor\",\n kind: \"class\",\n elements: ElementDescriptor[],\n };\n\n type ElementDecorator = (descriptor: ElementObjectInput) => ?ElementObjectOutput;\n type ClassDecorator = (descriptor: ClassObject) => ?ClassObject;\n type ClassFinisher = <A, B>(cl: Class<A>) => Class<B>;\n\n // Only used by Babel in the transform output, not part of the spec.\n type ElementDefinition =\n | {\n kind: \"method\",\n value: any,\n key: Key,\n static?: boolean,\n decorators?: ElementDecorator[],\n }\n | {\n kind: \"field\",\n value: () => any,\n key: Key,\n static?: boolean,\n decorators?: ElementDecorator[],\n };\n\n declare function ClassFactory<C>(initialize: (instance: C) => void): {\n F: Class<C>,\n d: ElementDefinition[]\n }\n\n */\n\n /*::\n // Various combinations with/without extras and with one or many finishers\n\n type ElementFinisherExtras = {\n element: ElementDescriptor,\n finisher?: ClassFinisher,\n extras?: ElementDescriptor[],\n };\n\n type ElementFinishersExtras = {\n element: ElementDescriptor,\n finishers: ClassFinisher[],\n extras: ElementDescriptor[],\n };\n\n type ElementsFinisher = {\n elements: ElementDescriptor[],\n finisher?: ClassFinisher,\n };\n\n type ElementsFinishers = {\n elements: ElementDescriptor[],\n finishers: ClassFinisher[],\n };\n\n */\n\n /*::\n\n type Placements = {\n static: Key[],\n prototype: Key[],\n own: Key[],\n };\n\n */\n\n // ClassDefinitionEvaluation (Steps 26-*)\n export default function _decorate(\n decorators /*: ClassDecorator[] */,\n factory /*: ClassFactory */,\n superClass /*: ?Class<*> */,\n mixins /*: ?Array<Function> */,\n ) /*: Class<*> */ {\n var api = _getDecoratorsApi();\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n api = mixins[i](api);\n }\n }\n\n var r = factory(function initialize(O) {\n api.initializeInstanceElements(O, decorated.elements);\n }, superClass);\n var decorated = api.decorateClass(\n _coalesceClassElements(r.d.map(_createElementDescriptor)),\n decorators,\n );\n\n api.initializeClassElements(r.F, decorated.elements);\n\n return api.runClassFinishers(r.F, decorated.finishers);\n }\n\n function _getDecoratorsApi() {\n _getDecoratorsApi = function() {\n return api;\n };\n\n var api = {\n elementsDefinitionOrder: [[\"method\"], [\"field\"]],\n\n // InitializeInstanceElements\n initializeInstanceElements: function(\n /*::<C>*/ O /*: C */,\n elements /*: ElementDescriptor[] */,\n ) {\n [\"method\", \"field\"].forEach(function(kind) {\n elements.forEach(function(element /*: ElementDescriptor */) {\n if (element.kind === kind && element.placement === \"own\") {\n this.defineClassElement(O, element);\n }\n }, this);\n }, this);\n },\n\n // InitializeClassElements\n initializeClassElements: function(\n /*::<C>*/ F /*: Class<C> */,\n elements /*: ElementDescriptor[] */,\n ) {\n var proto = F.prototype;\n\n [\"method\", \"field\"].forEach(function(kind) {\n elements.forEach(function(element /*: ElementDescriptor */) {\n var placement = element.placement;\n if (\n element.kind === kind &&\n (placement === \"static\" || placement === \"prototype\")\n ) {\n var receiver = placement === \"static\" ? F : proto;\n this.defineClassElement(receiver, element);\n }\n }, this);\n }, this);\n },\n\n // DefineClassElement\n defineClassElement: function(\n /*::<C>*/ receiver /*: C | Class<C> */,\n element /*: ElementDescriptor */,\n ) {\n var descriptor /*: PropertyDescriptor */ = element.descriptor;\n if (element.kind === \"field\") {\n var initializer = element.initializer;\n descriptor = {\n enumerable: descriptor.enumerable,\n writable: descriptor.writable,\n configurable: descriptor.configurable,\n value: initializer === void 0 ? void 0 : initializer.call(receiver),\n };\n }\n Object.defineProperty(receiver, element.key, descriptor);\n },\n\n // DecorateClass\n decorateClass: function(\n elements /*: ElementDescriptor[] */,\n decorators /*: ClassDecorator[] */,\n ) /*: ElementsFinishers */ {\n var newElements /*: ElementDescriptor[] */ = [];\n var finishers /*: ClassFinisher[] */ = [];\n var placements /*: Placements */ = {\n static: [],\n prototype: [],\n own: [],\n };\n\n elements.forEach(function(element /*: ElementDescriptor */) {\n this.addElementPlacement(element, placements);\n }, this);\n\n elements.forEach(function(element /*: ElementDescriptor */) {\n if (!_hasDecorators(element)) return newElements.push(element);\n\n var elementFinishersExtras /*: ElementFinishersExtras */ = this.decorateElement(\n element,\n placements,\n );\n newElements.push(elementFinishersExtras.element);\n newElements.push.apply(newElements, elementFinishersExtras.extras);\n finishers.push.apply(finishers, elementFinishersExtras.finishers);\n }, this);\n\n if (!decorators) {\n return { elements: newElements, finishers: finishers };\n }\n\n var result /*: ElementsFinishers */ = this.decorateConstructor(\n newElements,\n decorators,\n );\n finishers.push.apply(finishers, result.finishers);\n result.finishers = finishers;\n\n return result;\n },\n\n // AddElementPlacement\n addElementPlacement: function(\n element /*: ElementDescriptor */,\n placements /*: Placements */,\n silent /*: boolean */,\n ) {\n var keys = placements[element.placement];\n if (!silent && keys.indexOf(element.key) !== -1) {\n throw new TypeError(\"Duplicated element (\" + element.key + \")\");\n }\n keys.push(element.key);\n },\n\n // DecorateElement\n decorateElement: function(\n element /*: ElementDescriptor */,\n placements /*: Placements */,\n ) /*: ElementFinishersExtras */ {\n var extras /*: ElementDescriptor[] */ = [];\n var finishers /*: ClassFinisher[] */ = [];\n\n for (\n var decorators = element.decorators, i = decorators.length - 1;\n i >= 0;\n i--\n ) {\n // (inlined) RemoveElementPlacement\n var keys = placements[element.placement];\n keys.splice(keys.indexOf(element.key), 1);\n\n var elementObject /*: ElementObjectInput */ = this.fromElementDescriptor(\n element,\n );\n var elementFinisherExtras /*: ElementFinisherExtras */ = this.toElementFinisherExtras(\n (0, decorators[i])(elementObject) /*: ElementObjectOutput */ ||\n elementObject,\n );\n\n element = elementFinisherExtras.element;\n this.addElementPlacement(element, placements);\n\n if (elementFinisherExtras.finisher) {\n finishers.push(elementFinisherExtras.finisher);\n }\n\n var newExtras /*: ElementDescriptor[] | void */ =\n elementFinisherExtras.extras;\n if (newExtras) {\n for (var j = 0; j < newExtras.length; j++) {\n this.addElementPlacement(newExtras[j], placements);\n }\n extras.push.apply(extras, newExtras);\n }\n }\n\n return { element: element, finishers: finishers, extras: extras };\n },\n\n // DecorateConstructor\n decorateConstructor: function(\n elements /*: ElementDescriptor[] */,\n decorators /*: ClassDecorator[] */,\n ) /*: ElementsFinishers */ {\n var finishers /*: ClassFinisher[] */ = [];\n\n for (var i = decorators.length - 1; i >= 0; i--) {\n var obj /*: ClassObject */ = this.fromClassDescriptor(elements);\n var elementsAndFinisher /*: ElementsFinisher */ = this.toClassDescriptor(\n (0, decorators[i])(obj) /*: ClassObject */ || obj,\n );\n\n if (elementsAndFinisher.finisher !== undefined) {\n finishers.push(elementsAndFinisher.finisher);\n }\n\n if (elementsAndFinisher.elements !== undefined) {\n elements = elementsAndFinisher.elements;\n\n for (var j = 0; j < elements.length - 1; j++) {\n for (var k = j + 1; k < elements.length; k++) {\n if (\n elements[j].key === elements[k].key &&\n elements[j].placement === elements[k].placement\n ) {\n throw new TypeError(\n \"Duplicated element (\" + elements[j].key + \")\",\n );\n }\n }\n }\n }\n }\n\n return { elements: elements, finishers: finishers };\n },\n\n // FromElementDescriptor\n fromElementDescriptor: function(\n element /*: ElementDescriptor */,\n ) /*: ElementObject */ {\n var obj /*: ElementObject */ = {\n kind: element.kind,\n key: element.key,\n placement: element.placement,\n descriptor: element.descriptor,\n };\n\n var desc = {\n value: \"Descriptor\",\n configurable: true,\n };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n\n if (element.kind === \"field\") obj.initializer = element.initializer;\n\n return obj;\n },\n\n // ToElementDescriptors\n toElementDescriptors: function(\n elementObjects /*: ElementObject[] */,\n ) /*: ElementDescriptor[] */ {\n if (elementObjects === undefined) return;\n return toArray(elementObjects).map(function(elementObject) {\n var element = this.toElementDescriptor(elementObject);\n this.disallowProperty(elementObject, \"finisher\", \"An element descriptor\");\n this.disallowProperty(elementObject, \"extras\", \"An element descriptor\");\n return element;\n }, this);\n },\n\n // ToElementDescriptor\n toElementDescriptor: function(\n elementObject /*: ElementObject */,\n ) /*: ElementDescriptor */ {\n var kind = String(elementObject.kind);\n if (kind !== \"method\" && kind !== \"field\") {\n throw new TypeError(\n 'An element descriptor\\\\'s .kind property must be either \"method\" or' +\n ' \"field\", but a decorator created an element descriptor with' +\n ' .kind \"' +\n kind +\n '\"',\n );\n }\n\n var key = toPropertyKey(elementObject.key);\n\n var placement = String(elementObject.placement);\n if (\n placement !== \"static\" &&\n placement !== \"prototype\" &&\n placement !== \"own\"\n ) {\n throw new TypeError(\n 'An element descriptor\\\\'s .placement property must be one of \"static\",' +\n ' \"prototype\" or \"own\", but a decorator created an element descriptor' +\n ' with .placement \"' +\n placement +\n '\"',\n );\n }\n\n var descriptor /*: PropertyDescriptor */ = elementObject.descriptor;\n\n this.disallowProperty(elementObject, \"elements\", \"An element descriptor\");\n\n var element /*: ElementDescriptor */ = {\n kind: kind,\n key: key,\n placement: placement,\n descriptor: Object.assign({}, descriptor),\n };\n\n if (kind !== \"field\") {\n this.disallowProperty(elementObject, \"initializer\", \"A method descriptor\");\n } else {\n this.disallowProperty(\n descriptor,\n \"get\",\n \"The property descriptor of a field descriptor\",\n );\n this.disallowProperty(\n descriptor,\n \"set\",\n \"The property descriptor of a field descriptor\",\n );\n this.disallowProperty(\n descriptor,\n \"value\",\n \"The property descriptor of a field descriptor\",\n );\n\n element.initializer = elementObject.initializer;\n }\n\n return element;\n },\n\n toElementFinisherExtras: function(\n elementObject /*: ElementObject */,\n ) /*: ElementFinisherExtras */ {\n var element /*: ElementDescriptor */ = this.toElementDescriptor(\n elementObject,\n );\n var finisher /*: ClassFinisher */ = _optionalCallableProperty(\n elementObject,\n \"finisher\",\n );\n var extras /*: ElementDescriptors[] */ = this.toElementDescriptors(\n elementObject.extras,\n );\n\n return { element: element, finisher: finisher, extras: extras };\n },\n\n // FromClassDescriptor\n fromClassDescriptor: function(\n elements /*: ElementDescriptor[] */,\n ) /*: ClassObject */ {\n var obj = {\n kind: \"class\",\n elements: elements.map(this.fromElementDescriptor, this),\n };\n\n var desc = { value: \"Descriptor\", configurable: true };\n Object.defineProperty(obj, Symbol.toStringTag, desc);\n\n return obj;\n },\n\n // ToClassDescriptor\n toClassDescriptor: function(\n obj /*: ClassObject */,\n ) /*: ElementsFinisher */ {\n var kind = String(obj.kind);\n if (kind !== \"class\") {\n throw new TypeError(\n 'A class descriptor\\\\'s .kind property must be \"class\", but a decorator' +\n ' created a class descriptor with .kind \"' +\n kind +\n '\"',\n );\n }\n\n this.disallowProperty(obj, \"key\", \"A class descriptor\");\n this.disallowProperty(obj, \"placement\", \"A class descriptor\");\n this.disallowProperty(obj, \"descriptor\", \"A class descriptor\");\n this.disallowProperty(obj, \"initializer\", \"A class descriptor\");\n this.disallowProperty(obj, \"extras\", \"A class descriptor\");\n\n var finisher = _optionalCallableProperty(obj, \"finisher\");\n var elements = this.toElementDescriptors(obj.elements);\n\n return { elements: elements, finisher: finisher };\n },\n\n // RunClassFinishers\n runClassFinishers: function(\n constructor /*: Class<*> */,\n finishers /*: ClassFinisher[] */,\n ) /*: Class<*> */ {\n for (var i = 0; i < finishers.length; i++) {\n var newConstructor /*: ?Class<*> */ = (0, finishers[i])(constructor);\n if (newConstructor !== undefined) {\n // NOTE: This should check if IsConstructor(newConstructor) is false.\n if (typeof newConstructor !== \"function\") {\n throw new TypeError(\"Finishers must return a constructor.\");\n }\n constructor = newConstructor;\n }\n }\n return constructor;\n },\n\n disallowProperty: function(obj, name, objectType) {\n if (obj[name] !== undefined) {\n throw new TypeError(objectType + \" can't have a .\" + name + \" property.\");\n }\n }\n };\n\n return api;\n }\n\n // ClassElementEvaluation\n function _createElementDescriptor(\n def /*: ElementDefinition */,\n ) /*: ElementDescriptor */ {\n var key = toPropertyKey(def.key);\n\n var descriptor /*: PropertyDescriptor */;\n if (def.kind === \"method\") {\n descriptor = {\n value: def.value,\n writable: true,\n configurable: true,\n enumerable: false,\n };\n } else if (def.kind === \"get\") {\n descriptor = { get: def.value, configurable: true, enumerable: false };\n } else if (def.kind === \"set\") {\n descriptor = { set: def.value, configurable: true, enumerable: false };\n } else if (def.kind === \"field\") {\n descriptor = { configurable: true, writable: true, enumerable: true };\n }\n\n var element /*: ElementDescriptor */ = {\n kind: def.kind === \"field\" ? \"field\" : \"method\",\n key: key,\n placement: def.static\n ? \"static\"\n : def.kind === \"field\"\n ? \"own\"\n : \"prototype\",\n descriptor: descriptor,\n };\n if (def.decorators) element.decorators = def.decorators;\n if (def.kind === \"field\") element.initializer = def.value;\n\n return element;\n }\n\n // CoalesceGetterSetter\n function _coalesceGetterSetter(\n element /*: ElementDescriptor */,\n other /*: ElementDescriptor */,\n ) {\n if (element.descriptor.get !== undefined) {\n other.descriptor.get = element.descriptor.get;\n } else {\n other.descriptor.set = element.descriptor.set;\n }\n }\n\n // CoalesceClassElements\n function _coalesceClassElements(\n elements /*: ElementDescriptor[] */,\n ) /*: ElementDescriptor[] */ {\n var newElements /*: ElementDescriptor[] */ = [];\n\n var isSameElement = function(\n other /*: ElementDescriptor */,\n ) /*: boolean */ {\n return (\n other.kind === \"method\" &&\n other.key === element.key &&\n other.placement === element.placement\n );\n };\n\n for (var i = 0; i < elements.length; i++) {\n var element /*: ElementDescriptor */ = elements[i];\n var other /*: ElementDescriptor */;\n\n if (\n element.kind === \"method\" &&\n (other = newElements.find(isSameElement))\n ) {\n if (\n _isDataDescriptor(element.descriptor) ||\n _isDataDescriptor(other.descriptor)\n ) {\n if (_hasDecorators(element) || _hasDecorators(other)) {\n throw new ReferenceError(\n \"Duplicated methods (\" + element.key + \") can't be decorated.\",\n );\n }\n other.descriptor = element.descriptor;\n } else {\n if (_hasDecorators(element)) {\n if (_hasDecorators(other)) {\n throw new ReferenceError(\n \"Decorators can't be placed on different accessors with for \" +\n \"the same property (\" +\n element.key +\n \").\",\n );\n }\n other.decorators = element.decorators;\n }\n _coalesceGetterSetter(element, other);\n }\n } else {\n newElements.push(element);\n }\n }\n\n return newElements;\n }\n\n function _hasDecorators(element /*: ElementDescriptor */) /*: boolean */ {\n return element.decorators && element.decorators.length;\n }\n\n function _isDataDescriptor(desc /*: PropertyDescriptor */) /*: boolean */ {\n return (\n desc !== undefined &&\n !(desc.value === undefined && desc.writable === undefined)\n );\n }\n\n function _optionalCallableProperty /*::<T>*/(\n obj /*: T */,\n name /*: $Keys<T> */,\n ) /*: ?Function */ {\n var value = obj[name];\n if (value !== undefined && typeof value !== \"function\") {\n throw new TypeError(\"Expected '\" + name + \"' to be a function\");\n }\n return value;\n }\n\n`;\n\nhelpers.classPrivateMethodGet = helper(\"7.1.6\")`\n export default function _classPrivateMethodGet(receiver, privateSet, fn) {\n if (!privateSet.has(receiver)) {\n throw new TypeError(\"attempted to get private field on non-instance\");\n }\n return fn;\n }\n`;\n\nhelpers.checkPrivateRedeclaration = helper(\"7.14.1\")`\n export default function _checkPrivateRedeclaration(obj, privateCollection) {\n if (privateCollection.has(obj)) {\n throw new TypeError(\"Cannot initialize the same private elements twice on an object\");\n }\n }\n`;\n\nhelpers.classPrivateFieldInitSpec = helper(\"7.14.1\")`\n import checkPrivateRedeclaration from \"checkPrivateRedeclaration\";\n\n export default function _classPrivateFieldInitSpec(obj, privateMap, value) {\n checkPrivateRedeclaration(obj, privateMap);\n privateMap.set(obj, value);\n }\n`;\n\nhelpers.classPrivateMethodInitSpec = helper(\"7.14.1\")`\n import checkPrivateRedeclaration from \"checkPrivateRedeclaration\";\n\n export default function _classPrivateMethodInitSpec(obj, privateSet) {\n checkPrivateRedeclaration(obj, privateSet);\n privateSet.add(obj);\n }\n`;\n\nif (!process.env.BABEL_8_BREAKING) {\n // Use readOnlyError instead\n helpers.classPrivateMethodSet = helper(\"7.1.6\")`\n export default function _classPrivateMethodSet() {\n throw new TypeError(\"attempted to reassign private method\");\n }\n `;\n}\n\nhelpers.identity = helper(\"7.17.0\")`\n export default function _identity(x) {\n return x;\n }\n`;\n\nhelpers.nullishReceiverError = helper(\"7.22.6\")`\n export default function _nullishReceiverError(r) {\n throw new TypeError(\"Cannot set property of null or undefined.\");\n }\n`;\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAGA,IAAAC,iBAAA,GAAAD,OAAA;AAOA,MAAME,OAA+B,GAAAC,MAAA,CAAAC,MAAA;EAAKC,SAAS,EAAE;AAAI,GAAKC,yBAAS,CAAE;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAC3DP,OAAO;AAEtB,MAAMQ,MAAM,GAAIC,UAAkB,IAAMC,GAAyB,KAAM;EACrED,UAAU;EACVE,GAAG,EAAEA,CAAA,KAAMC,iBAAQ,CAACC,OAAO,CAACF,GAAG,CAACD,GAAG;AACrC,CAAC,CAAC;AAEiC;EACjCV,OAAO,CAACc,UAAU,GAAGN,MAAM,CAAC,cAAc,CAAE;AAC9C;AACA;AACA;AACA,GAAG;AACH;AAEAR,OAAO,CAACe,kBAAkB,GAAGP,MAAM,CAAC,cAAc,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgB,gBAAgB,GAAGR,MAAM,CAAC,cAAc,CAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiB,cAAc,GAAGT,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkB,WAAW,GAAGV,MAAM,CAAC,cAAc,CAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACmB,0BAA0B,GAAGX,MAAM,CAAC,cAAc,CAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACoB,QAAQ,GAAGZ,MAAM,CAAC,cAAc,CAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACqB,cAAc,GAAGb,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAACsB,OAAO,GAAGd,MAAM,CAAC,cAAc,CAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEkC;EACjCR,OAAO,CAACuB,YAAY,GAAGf,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AAEAR,OAAO,CAACwB,QAAQ,GAAGhB,MAAM,CAAC,cAAc,CAAE;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACyB,aAAa,GAAGjB,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAAC0B,cAAc,GAAGlB,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC2B,cAAc,GAAGnB,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC4B,wBAAwB,GAAGpB,MAAM,CAAC,OAAO,CAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAAC6B,SAAS,GAAGrB,MAAM,CAAC,cAAc,CAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC8B,gBAAgB,GAAGtB,MAAM,CAAC,cAAc,CAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAAC+B,eAAe,GAAGvB,MAAM,CAAC,cAAc,CAAE;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgC,UAAU,GAAGxB,MAAM,CAAC,cAAc,CAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiC,qBAAqB,GAAGzB,MAAM,CAAC,cAAc,CAAE;AACvD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkC,aAAa,GAAG1B,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACmC,wBAAwB,GAAG3B,MAAM,CAAC,cAAc,CAAE;AAC1D;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACoC,4BAA4B,GAAG5B,MAAM,CAAC,cAAc,CAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACqC,uBAAuB,GAAG7B,MAAM,CAAC,cAAc,CAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACsC,qBAAqB,GAAG9B,MAAM,CAAC,cAAc,CAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACuC,yBAAyB,GAAG/B,MAAM,CAAC,cAAc,CAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAGDR,OAAO,CAACwC,WAAW,GAAGhC,MAAM,CAAC,OAAO,CAAE;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AAEFR,OAAO,CAACyC,aAAa,GAAGjC,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAODR,OAAO,CAAC0C,GAAG,GAAGlC,MAAM,CAAC,cAAc,CAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC2C,GAAG,GAAGnC,MAAM,CAAC,cAAc,CAAE;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC4C,qBAAqB,GAAGpC,MAAM,CAAC,cAAc,CAAE;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC6C,0BAA0B,GAAGrC,MAAM,CAAC,cAAc,CAAE;AAC5D;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC8C,aAAa,GAAGtC,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC+C,cAAc,GAAGvC,MAAM,CAAC,SAAS,CAAE;AAC3C;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgD,iBAAiB,GAAGxC,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiD,iBAAiB,GAAGzC,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkD,GAAG,GAAG1C,MAAM,CAAC,OAAO,CAAE;AAC9B;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACmD,WAAW,GAAG3C,MAAM,CAAC,cAAc,CAAE;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACoD,aAAa,GAAG5C,MAAM,CAAC,cAAc,CAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACqD,kBAAkB,GAAG7C,MAAM,CAAC,cAAc,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACsD,OAAO,GAAG9C,MAAM,CAAC,cAAc,CAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACuD,iBAAiB,GAAG/C,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACwD,iBAAiB,GAAGhD,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACyD,cAAc,GAAGjD,MAAM,CAAC,cAAc,CAAE;AAChD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC0D,cAAc,GAAGlD,MAAM,CAAC,OAAO,CAAE;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC2D,eAAe,GAAGnD,MAAM,CAAC,cAAc,CAAE;AACjD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC4D,0BAA0B,GAAGpD,MAAM,CAAC,OAAO,CAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC6D,gBAAgB,GAAGrD,MAAM,CAAC,OAAO,CAAE;AAC3C;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC8D,iBAAiB,GAAGtD,MAAM,CAAC,cAAc,CAAE;AACnD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC+D,eAAe,GAAGvD,MAAM,CAAC,cAAc,CAAE;AACjD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgE,yBAAyB,GAAGxD,MAAM,CAAC,OAAO,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiE,8BAA8B,GAAGzD,MAAM,CAAC,OAAO,CAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkE,sBAAsB,GAAG1D,MAAM,CAAC,cAAc,CAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAMDR,OAAO,CAACmE,wBAAwB,GAAG3D,MAAM,CAAC,cAAc,CAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAKDR,OAAO,CAACoE,yBAAyB,GAAG5D,MAAM,CAAC,cAAc,CAAE;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAMDR,OAAO,CAACqE,wBAAwB,GAAG7D,MAAM,CAAC,cAAc,CAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACsE,yBAAyB,GAAG9D,MAAM,CAAC,cAAc,CAAE;AAC3D;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACuE,0BAA0B,GAAG/D,MAAM,CAAC,cAAc,CAAE;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACwE,oBAAoB,GAAGhE,MAAM,CAAC,cAAc,CAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACyE,oBAAoB,GAAGjE,MAAM,CAAC,cAAc,CAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC0E,+BAA+B,GAAGlE,MAAM,CAAC,OAAO,CAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC2E,2BAA2B,GAAGnE,MAAM,CAAC,SAAS,CAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC4E,8BAA8B,GAAGpE,MAAM,CAAC,OAAO,CAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC6E,8BAA8B,GAAGrE,MAAM,CAAC,OAAO,CAAE;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC8E,2BAA2B,GAAGtE,MAAM,CAAC,OAAO,CAAE;AACtD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC+E,2BAA2B,GAAGvE,MAAM,CAAC,OAAO,CAAE;AACtD;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACgF,uBAAuB,GAAGxE,MAAM,CAAC,SAAS,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACiF,uBAAuB,GAAGzE,MAAM,CAAC,SAAS,CAAE;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACkF,kCAAkC,GAAG1E,MAAM,CAAC,SAAS,CAAE;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACmF,qCAAqC,GAAG3E,MAAM,CAAC,SAAS,CAAE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACoF,6BAA6B,GAAG5E,MAAM,CAAC,SAAS,CAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACqF,sCAAsC,GAAG7E,MAAM,CAAC,SAAS,CAAE;AACnE;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACsF,QAAQ,GAAG9E,MAAM,CAAC,OAAO,CAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACuF,qBAAqB,GAAG/E,MAAM,CAAC,OAAO,CAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACwF,yBAAyB,GAAGhF,MAAM,CAAC,QAAQ,CAAE;AACrD;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAACyF,yBAAyB,GAAGjF,MAAM,CAAC,QAAQ,CAAE;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC0F,0BAA0B,GAAGlF,MAAM,CAAC,QAAQ,CAAE;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEkC;EAEjCR,OAAO,CAAC2F,qBAAqB,GAAGnF,MAAM,CAAC,OAAO,CAAE;AAClD;AACA;AACA;AACA,GAAG;AACH;AAEAR,OAAO,CAAC4F,QAAQ,GAAGpF,MAAM,CAAC,QAAQ,CAAE;AACpC;AACA;AACA;AACA,CAAC;AAEDR,OAAO,CAAC6F,oBAAoB,GAAGrF,MAAM,CAAC,QAAQ,CAAE;AAChD;AACA;AACA;AACA,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs.js b/node_modules/@babel/helpers/lib/helpers/applyDecs.js index 3f5586b0..3bb23ecf 100644 --- a/node_modules/@babel/helpers/lib/helpers/applyDecs.js +++ b/node_modules/@babel/helpers/lib/helpers/applyDecs.js @@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = applyDecs; +var _setFunctionName = require("setFunctionName"); +var _toPropertyKey = require("toPropertyKey"); function old_createMetadataMethodsForProperty(metadataMap, kind, property, decoratorFinishedRef) { return { getMetadata: function (key) { @@ -108,7 +110,7 @@ function old_memberDec(dec, name, desc, metadataMap, initializers, kind, isStati } var ctx = { kind: kindStr, - name: isPrivate ? "#" + name : name, + name: isPrivate ? "#" + name : _toPropertyKey(name), isStatic: isStatic, isPrivate: isPrivate }; @@ -207,26 +209,35 @@ function old_getInit(desc) { } function old_applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, metadataMap, initializers) { var decs = decInfo[0]; - var desc, initializer, value; + var desc, initializer, prefix, value; if (isPrivate) { if (kind === 0 || kind === 1) { desc = { get: decInfo[3], set: decInfo[4] }; + prefix = "get"; } else if (kind === 3) { desc = { get: decInfo[3] }; + prefix = "get"; } else if (kind === 4) { desc = { set: decInfo[3] }; + prefix = "set"; } else { desc = { value: decInfo[3] }; } + if (kind !== 0) { + if (kind === 1) { + _setFunctionName(decInfo[4], "#" + name, "set"); + } + _setFunctionName(decInfo[3], "#" + name, prefix); + } } else if (kind !== 0) { desc = Object.getOwnPropertyDescriptor(base, name); } diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs.js.map b/node_modules/@babel/helpers/lib/helpers/applyDecs.js.map index d97d618d..16cee29e 100644 --- a/node_modules/@babel/helpers/lib/helpers/applyDecs.js.map +++ b/node_modules/@babel/helpers/lib/helpers/applyDecs.js.map @@ -1 +1 @@ -{"version":3,"names":["old_createMetadataMethodsForProperty","metadataMap","kind","property","decoratorFinishedRef","getMetadata","key","old_assertNotFinished","old_assertMetadataKey","metadataForKey","pub","public","priv","private","get","Object","hasOwnProperty","call","constructor","setMetadata","value","Map","set","old_convertMetadataMapToFinal","obj","parentMetadataMap","Symbol","metadata","for","metadataKeys","getOwnPropertySymbols","length","i","metaForKey","parentMetaForKey","parentPub","setPrototypeOf","privArr","Array","from","values","parentPriv","concat","old_createAddInitializerMethod","initializers","addInitializer","initializer","old_assertCallable","push","old_memberDec","dec","name","desc","isStatic","isPrivate","kindStr","ctx","v","metadataKind","metadataName","access","assign","fnName","Error","TypeError","fn","hint","old_assertValidReturnValue","type","undefined","init","old_getInit","console","warn","old_applyMemberDec","ret","base","decInfo","decs","getOwnPropertyDescriptor","newValue","newInit","instance","ownInitializers","originalInitializer","args","defineProperty","old_applyMemberDecs","Class","protoMetadataMap","staticMetadataMap","decInfos","protoInitializers","staticInitializers","existingProtoNonFields","existingStaticNonFields","isArray","prototype","existingNonFields","existingKind","old_pushInitializers","old_applyClassDecs","targetClass","classDecs","newClass","nextNewClass","applyDecs","memberDecs"],"sources":["../../src/helpers/applyDecs.js"],"sourcesContent":["/* @minVersion 7.17.8 */\n\n/**\n * NOTE: This is an old version of the helper, used for 2021-12 decorators.\n * Updates should be done in applyDecs2203R.js.\n */\n\n/**\n Enums are used in this file, but not assigned to vars to avoid non-hoistable values\n\n CONSTRUCTOR = 0;\n PUBLIC = 1;\n PRIVATE = 2;\n\n FIELD = 0;\n ACCESSOR = 1;\n METHOD = 2;\n GETTER = 3;\n SETTER = 4;\n\n STATIC = 5;\n\n CLASS = 10; // only used in assertValidReturnValue\n*/\n\nfunction old_createMetadataMethodsForProperty(\n metadataMap,\n kind,\n property,\n decoratorFinishedRef\n) {\n return {\n getMetadata: function (key) {\n old_assertNotFinished(decoratorFinishedRef, \"getMetadata\");\n old_assertMetadataKey(key);\n\n var metadataForKey = metadataMap[key];\n\n if (metadataForKey === void 0) return void 0;\n\n if (kind === 1 /* PUBLIC */) {\n var pub = metadataForKey.public;\n if (pub !== void 0) {\n return pub[property];\n }\n } else if (kind === 2 /* PRIVATE */) {\n var priv = metadataForKey.private;\n if (priv !== void 0) {\n return priv.get(property);\n }\n } else if (Object.hasOwnProperty.call(metadataForKey, \"constructor\")) {\n return metadataForKey.constructor;\n }\n },\n setMetadata: function (key, value) {\n old_assertNotFinished(decoratorFinishedRef, \"setMetadata\");\n old_assertMetadataKey(key);\n\n var metadataForKey = metadataMap[key];\n\n if (metadataForKey === void 0) {\n metadataForKey = metadataMap[key] = {};\n }\n\n if (kind === 1 /* PUBLIC */) {\n var pub = metadataForKey.public;\n\n if (pub === void 0) {\n pub = metadataForKey.public = {};\n }\n\n pub[property] = value;\n } else if (kind === 2 /* PRIVATE */) {\n var priv = metadataForKey.priv;\n\n if (priv === void 0) {\n priv = metadataForKey.private = new Map();\n }\n\n priv.set(property, value);\n } else {\n metadataForKey.constructor = value;\n }\n },\n };\n}\n\nfunction old_convertMetadataMapToFinal(obj, metadataMap) {\n var parentMetadataMap = obj[Symbol.metadata || Symbol.for(\"Symbol.metadata\")];\n var metadataKeys = Object.getOwnPropertySymbols(metadataMap);\n\n if (metadataKeys.length === 0) return;\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i];\n var metaForKey = metadataMap[key];\n var parentMetaForKey = parentMetadataMap ? parentMetadataMap[key] : null;\n\n var pub = metaForKey.public;\n var parentPub = parentMetaForKey ? parentMetaForKey.public : null;\n\n if (pub && parentPub) {\n Object.setPrototypeOf(pub, parentPub);\n }\n\n var priv = metaForKey.private;\n\n if (priv) {\n var privArr = Array.from(priv.values());\n var parentPriv = parentMetaForKey ? parentMetaForKey.private : null;\n\n if (parentPriv) {\n privArr = privArr.concat(parentPriv);\n }\n\n metaForKey.private = privArr;\n }\n\n if (parentMetaForKey) {\n Object.setPrototypeOf(metaForKey, parentMetaForKey);\n }\n }\n\n if (parentMetadataMap) {\n Object.setPrototypeOf(metadataMap, parentMetadataMap);\n }\n\n obj[Symbol.metadata || Symbol.for(\"Symbol.metadata\")] = metadataMap;\n}\n\nfunction old_createAddInitializerMethod(initializers, decoratorFinishedRef) {\n return function addInitializer(initializer) {\n old_assertNotFinished(decoratorFinishedRef, \"addInitializer\");\n old_assertCallable(initializer, \"An initializer\");\n initializers.push(initializer);\n };\n}\n\nfunction old_memberDec(\n dec,\n name,\n desc,\n metadataMap,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n) {\n var kindStr;\n\n switch (kind) {\n case 1 /* ACCESSOR */:\n kindStr = \"accessor\";\n break;\n case 2 /* METHOD */:\n kindStr = \"method\";\n break;\n case 3 /* GETTER */:\n kindStr = \"getter\";\n break;\n case 4 /* SETTER */:\n kindStr = \"setter\";\n break;\n default:\n kindStr = \"field\";\n }\n\n var ctx = {\n kind: kindStr,\n name: isPrivate ? \"#\" + name : name,\n isStatic: isStatic,\n isPrivate: isPrivate,\n };\n\n var decoratorFinishedRef = { v: false };\n\n if (kind !== 0 /* FIELD */) {\n ctx.addInitializer = old_createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n );\n }\n\n var metadataKind, metadataName;\n\n if (isPrivate) {\n metadataKind = 2 /* PRIVATE */;\n metadataName = Symbol(name);\n\n var access = {};\n\n if (kind === 0 /* FIELD */) {\n access.get = desc.get;\n access.set = desc.set;\n } else if (kind === 2 /* METHOD */) {\n access.get = function () {\n return desc.value;\n };\n } else {\n // replace with values that will go through the final getter and setter\n if (kind === 1 /* ACCESSOR */ || kind === 3 /* GETTER */) {\n access.get = function () {\n return desc.get.call(this);\n };\n }\n\n if (kind === 1 /* ACCESSOR */ || kind === 4 /* SETTER */) {\n access.set = function (v) {\n desc.set.call(this, v);\n };\n }\n }\n\n ctx.access = access;\n } else {\n metadataKind = 1 /* PUBLIC */;\n metadataName = name;\n }\n\n try {\n return dec(\n value,\n Object.assign(\n ctx,\n old_createMetadataMethodsForProperty(\n metadataMap,\n metadataKind,\n metadataName,\n decoratorFinishedRef\n )\n )\n );\n } finally {\n decoratorFinishedRef.v = true;\n }\n}\n\nfunction old_assertNotFinished(decoratorFinishedRef, fnName) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call \" + fnName + \" after decoration was finished\"\n );\n }\n}\n\nfunction old_assertMetadataKey(key) {\n if (typeof key !== \"symbol\") {\n throw new TypeError(\"Metadata keys must be symbols, received: \" + key);\n }\n}\n\nfunction old_assertCallable(fn, hint) {\n if (typeof fn !== \"function\") {\n throw new TypeError(hint + \" must be a function\");\n }\n}\n\nfunction old_assertValidReturnValue(kind, value) {\n var type = typeof value;\n\n if (kind === 1 /* ACCESSOR */) {\n if (type !== \"object\" || value === null) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\"\n );\n }\n if (value.get !== undefined) {\n old_assertCallable(value.get, \"accessor.get\");\n }\n if (value.set !== undefined) {\n old_assertCallable(value.set, \"accessor.set\");\n }\n if (value.init !== undefined) {\n old_assertCallable(value.init, \"accessor.init\");\n }\n if (value.initializer !== undefined) {\n old_assertCallable(value.initializer, \"accessor.initializer\");\n }\n } else if (type !== \"function\") {\n var hint;\n if (kind === 0 /* FIELD */) {\n hint = \"field\";\n } else if (kind === 10 /* CLASS */) {\n hint = \"class\";\n } else {\n hint = \"method\";\n }\n throw new TypeError(hint + \" decorators must return a function or void 0\");\n }\n}\n\nfunction old_getInit(desc) {\n var initializer;\n if (\n (initializer = desc.init) == null &&\n (initializer = desc.initializer) &&\n typeof console !== \"undefined\"\n ) {\n console.warn(\".initializer has been renamed to .init as of March 2022\");\n }\n return initializer;\n}\n\nfunction old_applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n metadataMap,\n initializers\n) {\n var decs = decInfo[0];\n\n var desc, initializer, value;\n\n if (isPrivate) {\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n desc = {\n get: decInfo[3],\n set: decInfo[4],\n };\n } else if (kind === 3 /* GETTER */) {\n desc = {\n get: decInfo[3],\n };\n } else if (kind === 4 /* SETTER */) {\n desc = {\n set: decInfo[3],\n };\n } else {\n desc = {\n value: decInfo[3],\n };\n }\n } else if (kind !== 0 /* FIELD */) {\n desc = Object.getOwnPropertyDescriptor(base, name);\n }\n\n if (kind === 1 /* ACCESSOR */) {\n value = {\n get: desc.get,\n set: desc.set,\n };\n } else if (kind === 2 /* METHOD */) {\n value = desc.value;\n } else if (kind === 3 /* GETTER */) {\n value = desc.get;\n } else if (kind === 4 /* SETTER */) {\n value = desc.set;\n }\n\n var newValue, get, set;\n\n if (typeof decs === \"function\") {\n newValue = old_memberDec(\n decs,\n name,\n desc,\n metadataMap,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n );\n\n if (newValue !== void 0) {\n old_assertValidReturnValue(kind, newValue);\n\n if (kind === 0 /* FIELD */) {\n initializer = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n initializer = old_getInit(newValue);\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n }\n } else {\n for (var i = decs.length - 1; i >= 0; i--) {\n var dec = decs[i];\n\n newValue = old_memberDec(\n dec,\n name,\n desc,\n metadataMap,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n );\n\n if (newValue !== void 0) {\n old_assertValidReturnValue(kind, newValue);\n var newInit;\n\n if (kind === 0 /* FIELD */) {\n newInit = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n newInit = old_getInit(newValue);\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n\n if (newInit !== void 0) {\n if (initializer === void 0) {\n initializer = newInit;\n } else if (typeof initializer === \"function\") {\n initializer = [initializer, newInit];\n } else {\n initializer.push(newInit);\n }\n }\n }\n }\n }\n\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n if (initializer === void 0) {\n // If the initializer was void 0, sub in a dummy initializer\n initializer = function (instance, init) {\n return init;\n };\n } else if (typeof initializer !== \"function\") {\n var ownInitializers = initializer;\n\n initializer = function (instance, init) {\n var value = init;\n\n for (var i = 0; i < ownInitializers.length; i++) {\n value = ownInitializers[i].call(instance, value);\n }\n\n return value;\n };\n } else {\n var originalInitializer = initializer;\n\n initializer = function (instance, init) {\n return originalInitializer.call(instance, init);\n };\n }\n\n ret.push(initializer);\n }\n\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n desc.get = value.get;\n desc.set = value.set;\n } else if (kind === 2 /* METHOD */) {\n desc.value = value;\n } else if (kind === 3 /* GETTER */) {\n desc.get = value;\n } else if (kind === 4 /* SETTER */) {\n desc.set = value;\n }\n\n if (isPrivate) {\n if (kind === 1 /* ACCESSOR */) {\n ret.push(function (instance, args) {\n return value.get.call(instance, args);\n });\n ret.push(function (instance, args) {\n return value.set.call(instance, args);\n });\n } else if (kind === 2 /* METHOD */) {\n ret.push(value);\n } else {\n ret.push(function (instance, args) {\n return value.call(instance, args);\n });\n }\n } else {\n Object.defineProperty(base, name, desc);\n }\n }\n}\n\nfunction old_applyMemberDecs(\n ret,\n Class,\n protoMetadataMap,\n staticMetadataMap,\n decInfos\n) {\n var protoInitializers;\n var staticInitializers;\n\n var existingProtoNonFields = new Map();\n var existingStaticNonFields = new Map();\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var isStatic = kind >= 5; /* STATIC */\n var base;\n var metadataMap;\n var initializers;\n\n if (isStatic) {\n base = Class;\n metadataMap = staticMetadataMap;\n kind = kind - 5 /* STATIC */;\n // initialize staticInitializers when we see a non-field static member\n if (kind !== 0 /* FIELD */) {\n staticInitializers = staticInitializers || [];\n initializers = staticInitializers;\n }\n } else {\n base = Class.prototype;\n metadataMap = protoMetadataMap;\n // initialize protoInitializers when we see a non-field member\n if (kind !== 0 /* FIELD */) {\n protoInitializers = protoInitializers || [];\n initializers = protoInitializers;\n }\n }\n\n if (kind !== 0 /* FIELD */ && !isPrivate) {\n var existingNonFields = isStatic\n ? existingStaticNonFields\n : existingProtoNonFields;\n\n var existingKind = existingNonFields.get(name) || 0;\n\n if (\n existingKind === true ||\n (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ ||\n (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name\n );\n } else if (!existingKind && kind > 2 /* METHOD */) {\n existingNonFields.set(name, kind);\n } else {\n existingNonFields.set(name, true);\n }\n }\n\n old_applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n metadataMap,\n initializers\n );\n }\n\n old_pushInitializers(ret, protoInitializers);\n old_pushInitializers(ret, staticInitializers);\n}\n\nfunction old_pushInitializers(ret, initializers) {\n if (initializers) {\n ret.push(function (instance) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(instance);\n }\n return instance;\n });\n }\n}\n\nfunction old_applyClassDecs(ret, targetClass, metadataMap, classDecs) {\n if (classDecs.length > 0) {\n var initializers = [];\n var newClass = targetClass;\n var name = targetClass.name;\n\n for (var i = classDecs.length - 1; i >= 0; i--) {\n var decoratorFinishedRef = { v: false };\n\n try {\n var ctx = Object.assign(\n {\n kind: \"class\",\n name: name,\n addInitializer: old_createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n ),\n },\n old_createMetadataMethodsForProperty(\n metadataMap,\n 0 /* CONSTRUCTOR */,\n name,\n decoratorFinishedRef\n )\n );\n var nextNewClass = classDecs[i](newClass, ctx);\n } finally {\n decoratorFinishedRef.v = true;\n }\n\n if (nextNewClass !== undefined) {\n old_assertValidReturnValue(10 /* CLASS */, nextNewClass);\n newClass = nextNewClass;\n }\n }\n\n ret.push(newClass, function () {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(newClass);\n }\n });\n }\n}\n\n/**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n dec, // dec or array of decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n )\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\nexport default function applyDecs(targetClass, memberDecs, classDecs) {\n var ret = [];\n var staticMetadataMap = {};\n\n var protoMetadataMap = {};\n\n old_applyMemberDecs(\n ret,\n targetClass,\n protoMetadataMap,\n staticMetadataMap,\n memberDecs\n );\n\n old_convertMetadataMapToFinal(targetClass.prototype, protoMetadataMap);\n\n old_applyClassDecs(ret, targetClass, staticMetadataMap, classDecs);\n\n old_convertMetadataMapToFinal(targetClass, staticMetadataMap);\n\n return ret;\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_setFunctionName","require","_toPropertyKey","old_createMetadataMethodsForProperty","metadataMap","kind","property","decoratorFinishedRef","getMetadata","key","old_assertNotFinished","old_assertMetadataKey","metadataForKey","pub","public","priv","private","get","Object","hasOwnProperty","call","constructor","setMetadata","value","Map","set","old_convertMetadataMapToFinal","obj","parentMetadataMap","Symbol","metadata","for","metadataKeys","getOwnPropertySymbols","length","i","metaForKey","parentMetaForKey","parentPub","setPrototypeOf","privArr","Array","from","values","parentPriv","concat","old_createAddInitializerMethod","initializers","addInitializer","initializer","old_assertCallable","push","old_memberDec","dec","name","desc","isStatic","isPrivate","kindStr","ctx","toPropertyKey","v","metadataKind","metadataName","access","assign","fnName","Error","TypeError","fn","hint","old_assertValidReturnValue","type","undefined","init","old_getInit","console","warn","old_applyMemberDec","ret","base","decInfo","decs","prefix","setFunctionName","getOwnPropertyDescriptor","newValue","newInit","instance","ownInitializers","originalInitializer","args","defineProperty","old_applyMemberDecs","Class","protoMetadataMap","staticMetadataMap","decInfos","protoInitializers","staticInitializers","existingProtoNonFields","existingStaticNonFields","isArray","prototype","existingNonFields","existingKind","old_pushInitializers","old_applyClassDecs","targetClass","classDecs","newClass","nextNewClass","applyDecs","memberDecs"],"sources":["../../src/helpers/applyDecs.js"],"sourcesContent":["/* @minVersion 7.17.8 */\n\nimport setFunctionName from \"setFunctionName\";\nimport toPropertyKey from \"toPropertyKey\";\n/**\n * NOTE: This is an old version of the helper, used for 2021-12 decorators.\n * Updates should be done in applyDecs2203R.js.\n */\n\n/**\n Enums are used in this file, but not assigned to vars to avoid non-hoistable values\n\n CONSTRUCTOR = 0;\n PUBLIC = 1;\n PRIVATE = 2;\n\n FIELD = 0;\n ACCESSOR = 1;\n METHOD = 2;\n GETTER = 3;\n SETTER = 4;\n\n STATIC = 5;\n\n CLASS = 10; // only used in assertValidReturnValue\n*/\n\nfunction old_createMetadataMethodsForProperty(\n metadataMap,\n kind,\n property,\n decoratorFinishedRef\n) {\n return {\n getMetadata: function (key) {\n old_assertNotFinished(decoratorFinishedRef, \"getMetadata\");\n old_assertMetadataKey(key);\n\n var metadataForKey = metadataMap[key];\n\n if (metadataForKey === void 0) return void 0;\n\n if (kind === 1 /* PUBLIC */) {\n var pub = metadataForKey.public;\n if (pub !== void 0) {\n return pub[property];\n }\n } else if (kind === 2 /* PRIVATE */) {\n var priv = metadataForKey.private;\n if (priv !== void 0) {\n return priv.get(property);\n }\n } else if (Object.hasOwnProperty.call(metadataForKey, \"constructor\")) {\n return metadataForKey.constructor;\n }\n },\n setMetadata: function (key, value) {\n old_assertNotFinished(decoratorFinishedRef, \"setMetadata\");\n old_assertMetadataKey(key);\n\n var metadataForKey = metadataMap[key];\n\n if (metadataForKey === void 0) {\n metadataForKey = metadataMap[key] = {};\n }\n\n if (kind === 1 /* PUBLIC */) {\n var pub = metadataForKey.public;\n\n if (pub === void 0) {\n pub = metadataForKey.public = {};\n }\n\n pub[property] = value;\n } else if (kind === 2 /* PRIVATE */) {\n var priv = metadataForKey.priv;\n\n if (priv === void 0) {\n priv = metadataForKey.private = new Map();\n }\n\n priv.set(property, value);\n } else {\n metadataForKey.constructor = value;\n }\n },\n };\n}\n\nfunction old_convertMetadataMapToFinal(obj, metadataMap) {\n var parentMetadataMap = obj[Symbol.metadata || Symbol.for(\"Symbol.metadata\")];\n var metadataKeys = Object.getOwnPropertySymbols(metadataMap);\n\n if (metadataKeys.length === 0) return;\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i];\n var metaForKey = metadataMap[key];\n var parentMetaForKey = parentMetadataMap ? parentMetadataMap[key] : null;\n\n var pub = metaForKey.public;\n var parentPub = parentMetaForKey ? parentMetaForKey.public : null;\n\n if (pub && parentPub) {\n Object.setPrototypeOf(pub, parentPub);\n }\n\n var priv = metaForKey.private;\n\n if (priv) {\n var privArr = Array.from(priv.values());\n var parentPriv = parentMetaForKey ? parentMetaForKey.private : null;\n\n if (parentPriv) {\n privArr = privArr.concat(parentPriv);\n }\n\n metaForKey.private = privArr;\n }\n\n if (parentMetaForKey) {\n Object.setPrototypeOf(metaForKey, parentMetaForKey);\n }\n }\n\n if (parentMetadataMap) {\n Object.setPrototypeOf(metadataMap, parentMetadataMap);\n }\n\n obj[Symbol.metadata || Symbol.for(\"Symbol.metadata\")] = metadataMap;\n}\n\nfunction old_createAddInitializerMethod(initializers, decoratorFinishedRef) {\n return function addInitializer(initializer) {\n old_assertNotFinished(decoratorFinishedRef, \"addInitializer\");\n old_assertCallable(initializer, \"An initializer\");\n initializers.push(initializer);\n };\n}\n\nfunction old_memberDec(\n dec,\n name,\n desc,\n metadataMap,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n) {\n var kindStr;\n\n switch (kind) {\n case 1 /* ACCESSOR */:\n kindStr = \"accessor\";\n break;\n case 2 /* METHOD */:\n kindStr = \"method\";\n break;\n case 3 /* GETTER */:\n kindStr = \"getter\";\n break;\n case 4 /* SETTER */:\n kindStr = \"setter\";\n break;\n default:\n kindStr = \"field\";\n }\n\n var ctx = {\n kind: kindStr,\n name: isPrivate ? \"#\" + name : toPropertyKey(name),\n isStatic: isStatic,\n isPrivate: isPrivate,\n };\n\n var decoratorFinishedRef = { v: false };\n\n if (kind !== 0 /* FIELD */) {\n ctx.addInitializer = old_createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n );\n }\n\n var metadataKind, metadataName;\n\n if (isPrivate) {\n metadataKind = 2 /* PRIVATE */;\n metadataName = Symbol(name);\n\n var access = {};\n\n if (kind === 0 /* FIELD */) {\n access.get = desc.get;\n access.set = desc.set;\n } else if (kind === 2 /* METHOD */) {\n access.get = function () {\n return desc.value;\n };\n } else {\n // replace with values that will go through the final getter and setter\n if (kind === 1 /* ACCESSOR */ || kind === 3 /* GETTER */) {\n access.get = function () {\n return desc.get.call(this);\n };\n }\n\n if (kind === 1 /* ACCESSOR */ || kind === 4 /* SETTER */) {\n access.set = function (v) {\n desc.set.call(this, v);\n };\n }\n }\n\n ctx.access = access;\n } else {\n metadataKind = 1 /* PUBLIC */;\n metadataName = name;\n }\n\n try {\n return dec(\n value,\n Object.assign(\n ctx,\n old_createMetadataMethodsForProperty(\n metadataMap,\n metadataKind,\n metadataName,\n decoratorFinishedRef\n )\n )\n );\n } finally {\n decoratorFinishedRef.v = true;\n }\n}\n\nfunction old_assertNotFinished(decoratorFinishedRef, fnName) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call \" + fnName + \" after decoration was finished\"\n );\n }\n}\n\nfunction old_assertMetadataKey(key) {\n if (typeof key !== \"symbol\") {\n throw new TypeError(\"Metadata keys must be symbols, received: \" + key);\n }\n}\n\nfunction old_assertCallable(fn, hint) {\n if (typeof fn !== \"function\") {\n throw new TypeError(hint + \" must be a function\");\n }\n}\n\nfunction old_assertValidReturnValue(kind, value) {\n var type = typeof value;\n\n if (kind === 1 /* ACCESSOR */) {\n if (type !== \"object\" || value === null) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\"\n );\n }\n if (value.get !== undefined) {\n old_assertCallable(value.get, \"accessor.get\");\n }\n if (value.set !== undefined) {\n old_assertCallable(value.set, \"accessor.set\");\n }\n if (value.init !== undefined) {\n old_assertCallable(value.init, \"accessor.init\");\n }\n if (value.initializer !== undefined) {\n old_assertCallable(value.initializer, \"accessor.initializer\");\n }\n } else if (type !== \"function\") {\n var hint;\n if (kind === 0 /* FIELD */) {\n hint = \"field\";\n } else if (kind === 10 /* CLASS */) {\n hint = \"class\";\n } else {\n hint = \"method\";\n }\n throw new TypeError(hint + \" decorators must return a function or void 0\");\n }\n}\n\nfunction old_getInit(desc) {\n var initializer;\n if (\n (initializer = desc.init) == null &&\n (initializer = desc.initializer) &&\n typeof console !== \"undefined\"\n ) {\n console.warn(\".initializer has been renamed to .init as of March 2022\");\n }\n return initializer;\n}\n\nfunction old_applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n metadataMap,\n initializers\n) {\n var decs = decInfo[0];\n\n var desc, initializer, prefix, value;\n\n if (isPrivate) {\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n desc = {\n get: decInfo[3],\n set: decInfo[4],\n };\n prefix = \"get\";\n } else if (kind === 3 /* GETTER */) {\n desc = {\n get: decInfo[3],\n };\n prefix = \"get\";\n } else if (kind === 4 /* SETTER */) {\n desc = {\n set: decInfo[3],\n };\n prefix = \"set\";\n } else {\n desc = {\n value: decInfo[3],\n };\n }\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n setFunctionName(decInfo[4], \"#\" + name, \"set\");\n }\n setFunctionName(decInfo[3], \"#\" + name, prefix);\n }\n } else if (kind !== 0 /* FIELD */) {\n desc = Object.getOwnPropertyDescriptor(base, name);\n }\n\n if (kind === 1 /* ACCESSOR */) {\n value = {\n get: desc.get,\n set: desc.set,\n };\n } else if (kind === 2 /* METHOD */) {\n value = desc.value;\n } else if (kind === 3 /* GETTER */) {\n value = desc.get;\n } else if (kind === 4 /* SETTER */) {\n value = desc.set;\n }\n\n var newValue, get, set;\n\n if (typeof decs === \"function\") {\n newValue = old_memberDec(\n decs,\n name,\n desc,\n metadataMap,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n );\n\n if (newValue !== void 0) {\n old_assertValidReturnValue(kind, newValue);\n\n if (kind === 0 /* FIELD */) {\n initializer = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n initializer = old_getInit(newValue);\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n }\n } else {\n for (var i = decs.length - 1; i >= 0; i--) {\n var dec = decs[i];\n\n newValue = old_memberDec(\n dec,\n name,\n desc,\n metadataMap,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n );\n\n if (newValue !== void 0) {\n old_assertValidReturnValue(kind, newValue);\n var newInit;\n\n if (kind === 0 /* FIELD */) {\n newInit = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n newInit = old_getInit(newValue);\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n\n if (newInit !== void 0) {\n if (initializer === void 0) {\n initializer = newInit;\n } else if (typeof initializer === \"function\") {\n initializer = [initializer, newInit];\n } else {\n initializer.push(newInit);\n }\n }\n }\n }\n }\n\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n if (initializer === void 0) {\n // If the initializer was void 0, sub in a dummy initializer\n initializer = function (instance, init) {\n return init;\n };\n } else if (typeof initializer !== \"function\") {\n var ownInitializers = initializer;\n\n initializer = function (instance, init) {\n var value = init;\n\n for (var i = 0; i < ownInitializers.length; i++) {\n value = ownInitializers[i].call(instance, value);\n }\n\n return value;\n };\n } else {\n var originalInitializer = initializer;\n\n initializer = function (instance, init) {\n return originalInitializer.call(instance, init);\n };\n }\n\n ret.push(initializer);\n }\n\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n desc.get = value.get;\n desc.set = value.set;\n } else if (kind === 2 /* METHOD */) {\n desc.value = value;\n } else if (kind === 3 /* GETTER */) {\n desc.get = value;\n } else if (kind === 4 /* SETTER */) {\n desc.set = value;\n }\n\n if (isPrivate) {\n if (kind === 1 /* ACCESSOR */) {\n ret.push(function (instance, args) {\n return value.get.call(instance, args);\n });\n ret.push(function (instance, args) {\n return value.set.call(instance, args);\n });\n } else if (kind === 2 /* METHOD */) {\n ret.push(value);\n } else {\n ret.push(function (instance, args) {\n return value.call(instance, args);\n });\n }\n } else {\n Object.defineProperty(base, name, desc);\n }\n }\n}\n\nfunction old_applyMemberDecs(\n ret,\n Class,\n protoMetadataMap,\n staticMetadataMap,\n decInfos\n) {\n var protoInitializers;\n var staticInitializers;\n\n var existingProtoNonFields = new Map();\n var existingStaticNonFields = new Map();\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var isStatic = kind >= 5; /* STATIC */\n var base;\n var metadataMap;\n var initializers;\n\n if (isStatic) {\n base = Class;\n metadataMap = staticMetadataMap;\n kind = kind - 5 /* STATIC */;\n // initialize staticInitializers when we see a non-field static member\n if (kind !== 0 /* FIELD */) {\n staticInitializers = staticInitializers || [];\n initializers = staticInitializers;\n }\n } else {\n base = Class.prototype;\n metadataMap = protoMetadataMap;\n // initialize protoInitializers when we see a non-field member\n if (kind !== 0 /* FIELD */) {\n protoInitializers = protoInitializers || [];\n initializers = protoInitializers;\n }\n }\n\n if (kind !== 0 /* FIELD */ && !isPrivate) {\n var existingNonFields = isStatic\n ? existingStaticNonFields\n : existingProtoNonFields;\n\n var existingKind = existingNonFields.get(name) || 0;\n\n if (\n existingKind === true ||\n (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ ||\n (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name\n );\n } else if (!existingKind && kind > 2 /* METHOD */) {\n existingNonFields.set(name, kind);\n } else {\n existingNonFields.set(name, true);\n }\n }\n\n old_applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n metadataMap,\n initializers\n );\n }\n\n old_pushInitializers(ret, protoInitializers);\n old_pushInitializers(ret, staticInitializers);\n}\n\nfunction old_pushInitializers(ret, initializers) {\n if (initializers) {\n ret.push(function (instance) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(instance);\n }\n return instance;\n });\n }\n}\n\nfunction old_applyClassDecs(ret, targetClass, metadataMap, classDecs) {\n if (classDecs.length > 0) {\n var initializers = [];\n var newClass = targetClass;\n var name = targetClass.name;\n\n for (var i = classDecs.length - 1; i >= 0; i--) {\n var decoratorFinishedRef = { v: false };\n\n try {\n var ctx = Object.assign(\n {\n kind: \"class\",\n name: name,\n addInitializer: old_createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n ),\n },\n old_createMetadataMethodsForProperty(\n metadataMap,\n 0 /* CONSTRUCTOR */,\n name,\n decoratorFinishedRef\n )\n );\n var nextNewClass = classDecs[i](newClass, ctx);\n } finally {\n decoratorFinishedRef.v = true;\n }\n\n if (nextNewClass !== undefined) {\n old_assertValidReturnValue(10 /* CLASS */, nextNewClass);\n newClass = nextNewClass;\n }\n }\n\n ret.push(newClass, function () {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(newClass);\n }\n });\n }\n}\n\n/**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n dec, // dec or array of decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n )\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\nexport default function applyDecs(targetClass, memberDecs, classDecs) {\n var ret = [];\n var staticMetadataMap = {};\n\n var protoMetadataMap = {};\n\n old_applyMemberDecs(\n ret,\n targetClass,\n protoMetadataMap,\n staticMetadataMap,\n memberDecs\n );\n\n old_convertMetadataMapToFinal(targetClass.prototype, protoMetadataMap);\n\n old_applyClassDecs(ret, targetClass, staticMetadataMap, classDecs);\n\n old_convertMetadataMapToFinal(targetClass, staticMetadataMap);\n\n return ret;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js b/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js index 13bb1678..8f2750d4 100644 --- a/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js +++ b/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js @@ -4,6 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = applyDecs2203R; +var _setFunctionName = require("setFunctionName"); +var _toPropertyKey = require("toPropertyKey"); function applyDecs2203RFactory() { function createAddInitializerMethod(initializers, decoratorFinishedRef) { return function addInitializer(initializer) { @@ -32,7 +34,7 @@ function applyDecs2203RFactory() { } var ctx = { kind: kindStr, - name: isPrivate ? "#" + name : name, + name: isPrivate ? "#" + name : _toPropertyKey(name), static: isStatic, private: isPrivate }; @@ -124,26 +126,35 @@ function applyDecs2203RFactory() { } function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers) { var decs = decInfo[0]; - var desc, init, value; + var desc, init, prefix, value; if (isPrivate) { if (kind === 0 || kind === 1) { desc = { get: decInfo[3], set: decInfo[4] }; + prefix = "get"; } else if (kind === 3) { desc = { get: decInfo[3] }; + prefix = "get"; } else if (kind === 4) { desc = { set: decInfo[3] }; + prefix = "set"; } else { desc = { value: decInfo[3] }; } + if (kind !== 0) { + if (kind === 1) { + _setFunctionName(decInfo[4], "#" + name, "set"); + } + _setFunctionName(decInfo[3], "#" + name, prefix); + } } else if (kind !== 0) { desc = Object.getOwnPropertyDescriptor(base, name); } diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js.map b/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js.map index 1912daa1..3bc7de91 100644 --- a/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js.map +++ b/node_modules/@babel/helpers/lib/helpers/applyDecs2203R.js.map @@ -1 +1 @@ -{"version":3,"names":["applyDecs2203RFactory","createAddInitializerMethod","initializers","decoratorFinishedRef","addInitializer","initializer","assertNotFinished","assertCallable","push","memberDec","dec","name","desc","kind","isStatic","isPrivate","value","kindStr","ctx","static","private","v","get","set","call","access","fnName","Error","fn","hint","TypeError","assertValidReturnValue","type","undefined","init","applyMemberDec","ret","base","decInfo","decs","Object","getOwnPropertyDescriptor","newValue","i","length","newInit","instance","ownInitializers","originalInitializer","args","defineProperty","applyMemberDecs","Class","decInfos","protoInitializers","staticInitializers","existingProtoNonFields","Map","existingStaticNonFields","Array","isArray","prototype","existingNonFields","existingKind","pushInitializers","applyClassDecs","targetClass","classDecs","newClass","nextNewClass","applyDecs2203R","memberDecs","e","c","exports","default"],"sources":["../../src/helpers/applyDecs2203R.js"],"sourcesContent":["/* @minVersion 7.20.0 */\n\n/**\n Enums are used in this file, but not assigned to vars to avoid non-hoistable values\n\n CONSTRUCTOR = 0;\n PUBLIC = 1;\n PRIVATE = 2;\n\n FIELD = 0;\n ACCESSOR = 1;\n METHOD = 2;\n GETTER = 3;\n SETTER = 4;\n\n STATIC = 5;\n\n CLASS = 10; // only used in assertValidReturnValue\n*/\n\nfunction applyDecs2203RFactory() {\n function createAddInitializerMethod(initializers, decoratorFinishedRef) {\n return function addInitializer(initializer) {\n assertNotFinished(decoratorFinishedRef, \"addInitializer\");\n assertCallable(initializer, \"An initializer\");\n initializers.push(initializer);\n };\n }\n\n function memberDec(\n dec,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n ) {\n var kindStr;\n\n switch (kind) {\n case 1 /* ACCESSOR */:\n kindStr = \"accessor\";\n break;\n case 2 /* METHOD */:\n kindStr = \"method\";\n break;\n case 3 /* GETTER */:\n kindStr = \"getter\";\n break;\n case 4 /* SETTER */:\n kindStr = \"setter\";\n break;\n default:\n kindStr = \"field\";\n }\n\n var ctx = {\n kind: kindStr,\n name: isPrivate ? \"#\" + name : name,\n static: isStatic,\n private: isPrivate,\n };\n\n var decoratorFinishedRef = { v: false };\n\n if (kind !== 0 /* FIELD */) {\n ctx.addInitializer = createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n );\n }\n\n var get, set;\n if (kind === 0 /* FIELD */) {\n if (isPrivate) {\n get = desc.get;\n set = desc.set;\n } else {\n get = function () {\n return this[name];\n };\n set = function (v) {\n this[name] = v;\n };\n }\n } else if (kind === 2 /* METHOD */) {\n get = function () {\n return desc.value;\n };\n } else {\n // replace with values that will go through the final getter and setter\n if (kind === 1 /* ACCESSOR */ || kind === 3 /* GETTER */) {\n get = function () {\n return desc.get.call(this);\n };\n }\n\n if (kind === 1 /* ACCESSOR */ || kind === 4 /* SETTER */) {\n set = function (v) {\n desc.set.call(this, v);\n };\n }\n }\n ctx.access =\n get && set ? { get: get, set: set } : get ? { get: get } : { set: set };\n\n try {\n return dec(value, ctx);\n } finally {\n decoratorFinishedRef.v = true;\n }\n }\n\n function assertNotFinished(decoratorFinishedRef, fnName) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call \" + fnName + \" after decoration was finished\"\n );\n }\n }\n\n function assertCallable(fn, hint) {\n if (typeof fn !== \"function\") {\n throw new TypeError(hint + \" must be a function\");\n }\n }\n\n function assertValidReturnValue(kind, value) {\n var type = typeof value;\n\n if (kind === 1 /* ACCESSOR */) {\n if (type !== \"object\" || value === null) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\"\n );\n }\n if (value.get !== undefined) {\n assertCallable(value.get, \"accessor.get\");\n }\n if (value.set !== undefined) {\n assertCallable(value.set, \"accessor.set\");\n }\n if (value.init !== undefined) {\n assertCallable(value.init, \"accessor.init\");\n }\n } else if (type !== \"function\") {\n var hint;\n if (kind === 0 /* FIELD */) {\n hint = \"field\";\n } else if (kind === 10 /* CLASS */) {\n hint = \"class\";\n } else {\n hint = \"method\";\n }\n throw new TypeError(\n hint + \" decorators must return a function or void 0\"\n );\n }\n }\n\n function applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers\n ) {\n var decs = decInfo[0];\n\n var desc, init, value;\n\n if (isPrivate) {\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n desc = {\n get: decInfo[3],\n set: decInfo[4],\n };\n } else if (kind === 3 /* GETTER */) {\n desc = {\n get: decInfo[3],\n };\n } else if (kind === 4 /* SETTER */) {\n desc = {\n set: decInfo[3],\n };\n } else {\n desc = {\n value: decInfo[3],\n };\n }\n } else if (kind !== 0 /* FIELD */) {\n desc = Object.getOwnPropertyDescriptor(base, name);\n }\n\n if (kind === 1 /* ACCESSOR */) {\n value = {\n get: desc.get,\n set: desc.set,\n };\n } else if (kind === 2 /* METHOD */) {\n value = desc.value;\n } else if (kind === 3 /* GETTER */) {\n value = desc.get;\n } else if (kind === 4 /* SETTER */) {\n value = desc.set;\n }\n\n var newValue, get, set;\n\n if (typeof decs === \"function\") {\n newValue = memberDec(\n decs,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n );\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n\n if (kind === 0 /* FIELD */) {\n init = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n init = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n }\n } else {\n for (var i = decs.length - 1; i >= 0; i--) {\n var dec = decs[i];\n\n newValue = memberDec(\n dec,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n );\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n var newInit;\n\n if (kind === 0 /* FIELD */) {\n newInit = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n newInit = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n\n if (newInit !== void 0) {\n if (init === void 0) {\n init = newInit;\n } else if (typeof init === \"function\") {\n init = [init, newInit];\n } else {\n init.push(newInit);\n }\n }\n }\n }\n }\n\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n if (init === void 0) {\n // If the initializer was void 0, sub in a dummy initializer\n init = function (instance, init) {\n return init;\n };\n } else if (typeof init !== \"function\") {\n var ownInitializers = init;\n\n init = function (instance, init) {\n var value = init;\n\n for (var i = 0; i < ownInitializers.length; i++) {\n value = ownInitializers[i].call(instance, value);\n }\n\n return value;\n };\n } else {\n var originalInitializer = init;\n\n init = function (instance, init) {\n return originalInitializer.call(instance, init);\n };\n }\n\n ret.push(init);\n }\n\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n desc.get = value.get;\n desc.set = value.set;\n } else if (kind === 2 /* METHOD */) {\n desc.value = value;\n } else if (kind === 3 /* GETTER */) {\n desc.get = value;\n } else if (kind === 4 /* SETTER */) {\n desc.set = value;\n }\n\n if (isPrivate) {\n if (kind === 1 /* ACCESSOR */) {\n ret.push(function (instance, args) {\n return value.get.call(instance, args);\n });\n ret.push(function (instance, args) {\n return value.set.call(instance, args);\n });\n } else if (kind === 2 /* METHOD */) {\n ret.push(value);\n } else {\n ret.push(function (instance, args) {\n return value.call(instance, args);\n });\n }\n } else {\n Object.defineProperty(base, name, desc);\n }\n }\n }\n\n function applyMemberDecs(Class, decInfos) {\n var ret = [];\n var protoInitializers;\n var staticInitializers;\n\n var existingProtoNonFields = new Map();\n var existingStaticNonFields = new Map();\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var isStatic = kind >= 5; /* STATIC */\n var base;\n var initializers;\n\n if (isStatic) {\n base = Class;\n kind = kind - 5 /* STATIC */;\n // initialize staticInitializers when we see a non-field static member\n if (kind !== 0 /* FIELD */) {\n staticInitializers = staticInitializers || [];\n initializers = staticInitializers;\n }\n } else {\n base = Class.prototype;\n // initialize protoInitializers when we see a non-field member\n if (kind !== 0 /* FIELD */) {\n protoInitializers = protoInitializers || [];\n initializers = protoInitializers;\n }\n }\n\n if (kind !== 0 /* FIELD */ && !isPrivate) {\n var existingNonFields = isStatic\n ? existingStaticNonFields\n : existingProtoNonFields;\n\n var existingKind = existingNonFields.get(name) || 0;\n\n if (\n existingKind === true ||\n (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ ||\n (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name\n );\n } else if (!existingKind && kind > 2 /* METHOD */) {\n existingNonFields.set(name, kind);\n } else {\n existingNonFields.set(name, true);\n }\n }\n\n applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers\n );\n }\n\n pushInitializers(ret, protoInitializers);\n pushInitializers(ret, staticInitializers);\n return ret;\n }\n\n function pushInitializers(ret, initializers) {\n if (initializers) {\n ret.push(function (instance) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(instance);\n }\n return instance;\n });\n }\n }\n\n function applyClassDecs(targetClass, classDecs) {\n if (classDecs.length > 0) {\n var initializers = [];\n var newClass = targetClass;\n var name = targetClass.name;\n\n for (var i = classDecs.length - 1; i >= 0; i--) {\n var decoratorFinishedRef = { v: false };\n\n try {\n var nextNewClass = classDecs[i](newClass, {\n kind: \"class\",\n name: name,\n addInitializer: createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n ),\n });\n } finally {\n decoratorFinishedRef.v = true;\n }\n\n if (nextNewClass !== undefined) {\n assertValidReturnValue(10 /* CLASS */, nextNewClass);\n newClass = nextNewClass;\n }\n }\n\n return [\n newClass,\n function () {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(newClass);\n }\n },\n ];\n }\n // The transformer will not emit assignment when there are no class decorators,\n // so we don't have to return an empty array here.\n }\n\n /**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n dec, // dec or array of decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n )\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\n\n return function applyDecs2203R(targetClass, memberDecs, classDecs) {\n return {\n e: applyMemberDecs(targetClass, memberDecs),\n // Lazily apply class decorations so that member init locals can be properly bound.\n get c() {\n return applyClassDecs(targetClass, classDecs);\n },\n };\n };\n}\n\nexport default function applyDecs2203R(targetClass, memberDecs, classDecs) {\n return (applyDecs2203R = applyDecs2203RFactory())(\n targetClass,\n memberDecs,\n classDecs\n );\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_setFunctionName","require","_toPropertyKey","applyDecs2203RFactory","createAddInitializerMethod","initializers","decoratorFinishedRef","addInitializer","initializer","assertNotFinished","assertCallable","push","memberDec","dec","name","desc","kind","isStatic","isPrivate","value","kindStr","ctx","toPropertyKey","static","private","v","get","set","call","access","fnName","Error","fn","hint","TypeError","assertValidReturnValue","type","undefined","init","applyMemberDec","ret","base","decInfo","decs","prefix","setFunctionName","Object","getOwnPropertyDescriptor","newValue","i","length","newInit","instance","ownInitializers","originalInitializer","args","defineProperty","applyMemberDecs","Class","decInfos","protoInitializers","staticInitializers","existingProtoNonFields","Map","existingStaticNonFields","Array","isArray","prototype","existingNonFields","existingKind","pushInitializers","applyClassDecs","targetClass","classDecs","newClass","nextNewClass","applyDecs2203R","memberDecs","e","c","exports","default"],"sources":["../../src/helpers/applyDecs2203R.js"],"sourcesContent":["/* @minVersion 7.20.0 */\n\nimport setFunctionName from \"setFunctionName\";\nimport toPropertyKey from \"toPropertyKey\";\n\n/**\n Enums are used in this file, but not assigned to vars to avoid non-hoistable values\n\n CONSTRUCTOR = 0;\n PUBLIC = 1;\n PRIVATE = 2;\n\n FIELD = 0;\n ACCESSOR = 1;\n METHOD = 2;\n GETTER = 3;\n SETTER = 4;\n\n STATIC = 5;\n\n CLASS = 10; // only used in assertValidReturnValue\n*/\n\nfunction applyDecs2203RFactory() {\n function createAddInitializerMethod(initializers, decoratorFinishedRef) {\n return function addInitializer(initializer) {\n assertNotFinished(decoratorFinishedRef, \"addInitializer\");\n assertCallable(initializer, \"An initializer\");\n initializers.push(initializer);\n };\n }\n\n function memberDec(\n dec,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n ) {\n var kindStr;\n\n switch (kind) {\n case 1 /* ACCESSOR */:\n kindStr = \"accessor\";\n break;\n case 2 /* METHOD */:\n kindStr = \"method\";\n break;\n case 3 /* GETTER */:\n kindStr = \"getter\";\n break;\n case 4 /* SETTER */:\n kindStr = \"setter\";\n break;\n default:\n kindStr = \"field\";\n }\n\n var ctx = {\n kind: kindStr,\n name: isPrivate ? \"#\" + name : toPropertyKey(name),\n static: isStatic,\n private: isPrivate,\n };\n\n var decoratorFinishedRef = { v: false };\n\n if (kind !== 0 /* FIELD */) {\n ctx.addInitializer = createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n );\n }\n\n var get, set;\n if (kind === 0 /* FIELD */) {\n if (isPrivate) {\n get = desc.get;\n set = desc.set;\n } else {\n get = function () {\n return this[name];\n };\n set = function (v) {\n this[name] = v;\n };\n }\n } else if (kind === 2 /* METHOD */) {\n get = function () {\n return desc.value;\n };\n } else {\n // replace with values that will go through the final getter and setter\n if (kind === 1 /* ACCESSOR */ || kind === 3 /* GETTER */) {\n get = function () {\n return desc.get.call(this);\n };\n }\n\n if (kind === 1 /* ACCESSOR */ || kind === 4 /* SETTER */) {\n set = function (v) {\n desc.set.call(this, v);\n };\n }\n }\n ctx.access =\n get && set ? { get: get, set: set } : get ? { get: get } : { set: set };\n\n try {\n return dec(value, ctx);\n } finally {\n decoratorFinishedRef.v = true;\n }\n }\n\n function assertNotFinished(decoratorFinishedRef, fnName) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call \" + fnName + \" after decoration was finished\"\n );\n }\n }\n\n function assertCallable(fn, hint) {\n if (typeof fn !== \"function\") {\n throw new TypeError(hint + \" must be a function\");\n }\n }\n\n function assertValidReturnValue(kind, value) {\n var type = typeof value;\n\n if (kind === 1 /* ACCESSOR */) {\n if (type !== \"object\" || value === null) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\"\n );\n }\n if (value.get !== undefined) {\n assertCallable(value.get, \"accessor.get\");\n }\n if (value.set !== undefined) {\n assertCallable(value.set, \"accessor.set\");\n }\n if (value.init !== undefined) {\n assertCallable(value.init, \"accessor.init\");\n }\n } else if (type !== \"function\") {\n var hint;\n if (kind === 0 /* FIELD */) {\n hint = \"field\";\n } else if (kind === 10 /* CLASS */) {\n hint = \"class\";\n } else {\n hint = \"method\";\n }\n throw new TypeError(\n hint + \" decorators must return a function or void 0\"\n );\n }\n }\n\n function applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers\n ) {\n var decs = decInfo[0];\n\n var desc, init, prefix, value;\n\n if (isPrivate) {\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n desc = {\n get: decInfo[3],\n set: decInfo[4],\n };\n prefix = \"get\";\n } else if (kind === 3 /* GETTER */) {\n desc = {\n get: decInfo[3],\n };\n prefix = \"get\";\n } else if (kind === 4 /* SETTER */) {\n desc = {\n set: decInfo[3],\n };\n prefix = \"set\";\n } else {\n desc = {\n value: decInfo[3],\n };\n }\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n setFunctionName(decInfo[4], \"#\" + name, \"set\");\n }\n setFunctionName(decInfo[3], \"#\" + name, prefix);\n }\n } else if (kind !== 0 /* FIELD */) {\n desc = Object.getOwnPropertyDescriptor(base, name);\n }\n\n if (kind === 1 /* ACCESSOR */) {\n value = {\n get: desc.get,\n set: desc.set,\n };\n } else if (kind === 2 /* METHOD */) {\n value = desc.value;\n } else if (kind === 3 /* GETTER */) {\n value = desc.get;\n } else if (kind === 4 /* SETTER */) {\n value = desc.set;\n }\n\n var newValue, get, set;\n\n if (typeof decs === \"function\") {\n newValue = memberDec(\n decs,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n );\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n\n if (kind === 0 /* FIELD */) {\n init = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n init = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n }\n } else {\n for (var i = decs.length - 1; i >= 0; i--) {\n var dec = decs[i];\n\n newValue = memberDec(\n dec,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value\n );\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n var newInit;\n\n if (kind === 0 /* FIELD */) {\n newInit = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n newInit = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n\n if (newInit !== void 0) {\n if (init === void 0) {\n init = newInit;\n } else if (typeof init === \"function\") {\n init = [init, newInit];\n } else {\n init.push(newInit);\n }\n }\n }\n }\n }\n\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n if (init === void 0) {\n // If the initializer was void 0, sub in a dummy initializer\n init = function (instance, init) {\n return init;\n };\n } else if (typeof init !== \"function\") {\n var ownInitializers = init;\n\n init = function (instance, init) {\n var value = init;\n\n for (var i = 0; i < ownInitializers.length; i++) {\n value = ownInitializers[i].call(instance, value);\n }\n\n return value;\n };\n } else {\n var originalInitializer = init;\n\n init = function (instance, init) {\n return originalInitializer.call(instance, init);\n };\n }\n\n ret.push(init);\n }\n\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n desc.get = value.get;\n desc.set = value.set;\n } else if (kind === 2 /* METHOD */) {\n desc.value = value;\n } else if (kind === 3 /* GETTER */) {\n desc.get = value;\n } else if (kind === 4 /* SETTER */) {\n desc.set = value;\n }\n\n if (isPrivate) {\n if (kind === 1 /* ACCESSOR */) {\n ret.push(function (instance, args) {\n return value.get.call(instance, args);\n });\n ret.push(function (instance, args) {\n return value.set.call(instance, args);\n });\n } else if (kind === 2 /* METHOD */) {\n ret.push(value);\n } else {\n ret.push(function (instance, args) {\n return value.call(instance, args);\n });\n }\n } else {\n Object.defineProperty(base, name, desc);\n }\n }\n }\n\n function applyMemberDecs(Class, decInfos) {\n var ret = [];\n var protoInitializers;\n var staticInitializers;\n\n var existingProtoNonFields = new Map();\n var existingStaticNonFields = new Map();\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var isStatic = kind >= 5; /* STATIC */\n var base;\n var initializers;\n\n if (isStatic) {\n base = Class;\n kind = kind - 5 /* STATIC */;\n // initialize staticInitializers when we see a non-field static member\n if (kind !== 0 /* FIELD */) {\n staticInitializers = staticInitializers || [];\n initializers = staticInitializers;\n }\n } else {\n base = Class.prototype;\n // initialize protoInitializers when we see a non-field member\n if (kind !== 0 /* FIELD */) {\n protoInitializers = protoInitializers || [];\n initializers = protoInitializers;\n }\n }\n\n if (kind !== 0 /* FIELD */ && !isPrivate) {\n var existingNonFields = isStatic\n ? existingStaticNonFields\n : existingProtoNonFields;\n\n var existingKind = existingNonFields.get(name) || 0;\n\n if (\n existingKind === true ||\n (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ ||\n (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name\n );\n } else if (!existingKind && kind > 2 /* METHOD */) {\n existingNonFields.set(name, kind);\n } else {\n existingNonFields.set(name, true);\n }\n }\n\n applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers\n );\n }\n\n pushInitializers(ret, protoInitializers);\n pushInitializers(ret, staticInitializers);\n return ret;\n }\n\n function pushInitializers(ret, initializers) {\n if (initializers) {\n ret.push(function (instance) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(instance);\n }\n return instance;\n });\n }\n }\n\n function applyClassDecs(targetClass, classDecs) {\n if (classDecs.length > 0) {\n var initializers = [];\n var newClass = targetClass;\n var name = targetClass.name;\n\n for (var i = classDecs.length - 1; i >= 0; i--) {\n var decoratorFinishedRef = { v: false };\n\n try {\n var nextNewClass = classDecs[i](newClass, {\n kind: \"class\",\n name: name,\n addInitializer: createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n ),\n });\n } finally {\n decoratorFinishedRef.v = true;\n }\n\n if (nextNewClass !== undefined) {\n assertValidReturnValue(10 /* CLASS */, nextNewClass);\n newClass = nextNewClass;\n }\n }\n\n return [\n newClass,\n function () {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(newClass);\n }\n },\n ];\n }\n // The transformer will not emit assignment when there are no class decorators,\n // so we don't have to return an empty array here.\n }\n\n /**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n dec, // dec or array of decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n )\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\n\n return function applyDecs2203R(targetClass, memberDecs, classDecs) {\n return {\n e: applyMemberDecs(targetClass, memberDecs),\n // Lazily apply class decorations so that member init locals can be properly bound.\n get c() {\n return applyClassDecs(targetClass, classDecs);\n },\n };\n };\n}\n\nexport default function applyDecs2203R(targetClass, memberDecs, classDecs) {\n return (applyDecs2203R = applyDecs2203RFactory())(\n targetClass,\n memberDecs,\n classDecs\n );\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js b/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js index b0b02b68..aebfbff6 100644 --- a/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js +++ b/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js @@ -5,6 +5,8 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = applyDecs2301; var _checkInRHS = require("checkInRHS"); +var _setFunctionName = require("setFunctionName"); +var _toPropertyKey = require("toPropertyKey"); function applyDecs2301Factory() { function createAddInitializerMethod(initializers, decoratorFinishedRef) { return function addInitializer(initializer) { @@ -38,7 +40,7 @@ function applyDecs2301Factory() { } var ctx = { kind: kindStr, - name: isPrivate ? "#" + name : name, + name: isPrivate ? "#" + name : _toPropertyKey(name), static: isStatic, private: isPrivate }; @@ -159,28 +161,37 @@ function applyDecs2301Factory() { } function applyMemberDec(ret, base, decInfo, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand) { var decs = decInfo[0]; - var desc, init, value; + var desc, init, prefix, value; if (isPrivate) { if (kind === 0 || kind === 1) { desc = { get: curryThis1(decInfo[3]), set: curryThis2(decInfo[4]) }; + prefix = "get"; } else { if (kind === 3) { desc = { get: decInfo[3] }; + prefix = "get"; } else if (kind === 4) { desc = { set: decInfo[3] }; + prefix = "set"; } else { desc = { value: decInfo[3] }; } } + if (kind !== 0) { + if (kind === 1) { + _setFunctionName(desc.set, "#" + name, "set"); + } + _setFunctionName(desc[prefix || "value"], "#" + name, prefix); + } } else if (kind !== 0) { desc = Object.getOwnPropertyDescriptor(base, name); } diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js.map b/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js.map index 13a62980..92444314 100644 --- a/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js.map +++ b/node_modules/@babel/helpers/lib/helpers/applyDecs2301.js.map @@ -1 +1 @@ -{"version":3,"names":["_checkInRHS","require","applyDecs2301Factory","createAddInitializerMethod","initializers","decoratorFinishedRef","addInitializer","initializer","assertNotFinished","assertCallable","push","assertInstanceIfPrivate","has","target","TypeError","memberDec","dec","name","desc","kind","isStatic","isPrivate","value","hasPrivateBrand","kindStr","ctx","static","private","v","get","set","t","call","bind","access","fnName","Error","fn","hint","assertValidReturnValue","type","undefined","init","curryThis1","curryThis2","applyMemberDec","ret","base","decInfo","decs","Object","getOwnPropertyDescriptor","newValue","i","length","newInit","instance","ownInitializers","originalInitializer","args","defineProperty","applyMemberDecs","Class","decInfos","instanceBrand","protoInitializers","staticInitializers","staticBrand","existingProtoNonFields","Map","existingStaticNonFields","Array","isArray","_","checkInRHS","prototype","existingNonFields","existingKind","pushInitializers","applyClassDecs","targetClass","classDecs","newClass","nextNewClass","applyDecs2301","memberDecs","e","c","exports","default"],"sources":["../../src/helpers/applyDecs2301.js"],"sourcesContent":["/* @minVersion 7.21.0 */\n\nimport checkInRHS from \"checkInRHS\";\n\n/**\n Enums are used in this file, but not assigned to vars to avoid non-hoistable values\n\n CONSTRUCTOR = 0;\n PUBLIC = 1;\n PRIVATE = 2;\n\n FIELD = 0;\n ACCESSOR = 1;\n METHOD = 2;\n GETTER = 3;\n SETTER = 4;\n\n STATIC = 5;\n\n CLASS = 10; // only used in assertValidReturnValue\n*/\n\nfunction applyDecs2301Factory() {\n function createAddInitializerMethod(initializers, decoratorFinishedRef) {\n return function addInitializer(initializer) {\n assertNotFinished(decoratorFinishedRef, \"addInitializer\");\n assertCallable(initializer, \"An initializer\");\n initializers.push(initializer);\n };\n }\n\n function assertInstanceIfPrivate(has, target) {\n if (!has(target)) {\n throw new TypeError(\n \"Attempted to access private element on non-instance\"\n );\n }\n }\n\n function memberDec(\n dec,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value,\n hasPrivateBrand\n ) {\n var kindStr;\n\n switch (kind) {\n case 1 /* ACCESSOR */:\n kindStr = \"accessor\";\n break;\n case 2 /* METHOD */:\n kindStr = \"method\";\n break;\n case 3 /* GETTER */:\n kindStr = \"getter\";\n break;\n case 4 /* SETTER */:\n kindStr = \"setter\";\n break;\n default:\n kindStr = \"field\";\n }\n\n var ctx = {\n kind: kindStr,\n name: isPrivate ? \"#\" + name : name,\n static: isStatic,\n private: isPrivate,\n };\n\n var decoratorFinishedRef = { v: false };\n\n if (kind !== 0 /* FIELD */) {\n ctx.addInitializer = createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n );\n }\n\n var get, set;\n if (!isPrivate && (kind === 0 /* FIELD */ || kind === 2) /* METHOD */) {\n get = function (target) {\n return target[name];\n };\n if (kind === 0 /* FIELD */) {\n set = function (target, v) {\n target[name] = v;\n };\n }\n } else if (kind === 2 /* METHOD */) {\n // Assert: isPrivate is true.\n get = function (target) {\n assertInstanceIfPrivate(hasPrivateBrand, target);\n return desc.value;\n };\n } else {\n // Assert: If kind === 0, then isPrivate is true.\n var t = kind === 0 /* FIELD */ || kind === 1; /* ACCESSOR */\n if (t || kind === 3 /* GETTER */) {\n if (isPrivate) {\n get = function (target) {\n assertInstanceIfPrivate(hasPrivateBrand, target);\n return desc.get.call(target);\n };\n } else {\n get = function (target) {\n return desc.get.call(target);\n };\n }\n }\n if (t || kind === 4 /* SETTER */) {\n if (isPrivate) {\n set = function (target, value) {\n assertInstanceIfPrivate(hasPrivateBrand, target);\n desc.set.call(target, value);\n };\n } else {\n set = function (target, value) {\n desc.set.call(target, value);\n };\n }\n }\n }\n var has = isPrivate\n ? hasPrivateBrand.bind()\n : function (target) {\n return name in target;\n };\n ctx.access =\n get && set\n ? { get: get, set: set, has: has }\n : get\n ? { get: get, has: has }\n : { set: set, has: has };\n\n try {\n return dec(value, ctx);\n } finally {\n decoratorFinishedRef.v = true;\n }\n }\n\n function assertNotFinished(decoratorFinishedRef, fnName) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call \" + fnName + \" after decoration was finished\"\n );\n }\n }\n\n function assertCallable(fn, hint) {\n if (typeof fn !== \"function\") {\n throw new TypeError(hint + \" must be a function\");\n }\n }\n\n function assertValidReturnValue(kind, value) {\n var type = typeof value;\n\n if (kind === 1 /* ACCESSOR */) {\n if (type !== \"object\" || value === null) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\"\n );\n }\n if (value.get !== undefined) {\n assertCallable(value.get, \"accessor.get\");\n }\n if (value.set !== undefined) {\n assertCallable(value.set, \"accessor.set\");\n }\n if (value.init !== undefined) {\n assertCallable(value.init, \"accessor.init\");\n }\n } else if (type !== \"function\") {\n var hint;\n if (kind === 0 /* FIELD */) {\n hint = \"field\";\n } else if (kind === 10 /* CLASS */) {\n hint = \"class\";\n } else {\n hint = \"method\";\n }\n throw new TypeError(\n hint + \" decorators must return a function or void 0\"\n );\n }\n }\n\n function curryThis1(fn) {\n return function () {\n return fn(this);\n };\n }\n function curryThis2(fn) {\n return function (value) {\n fn(this, value);\n };\n }\n\n function applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers,\n hasPrivateBrand\n ) {\n var decs = decInfo[0];\n\n var desc, init, value;\n\n if (isPrivate) {\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n desc = {\n get: curryThis1(decInfo[3]),\n set: curryThis2(decInfo[4]),\n };\n } else {\n if (kind === 3 /* GETTER */) {\n desc = {\n get: decInfo[3],\n };\n } else if (kind === 4 /* SETTER */) {\n desc = {\n set: decInfo[3],\n };\n } else {\n desc = {\n value: decInfo[3],\n };\n }\n }\n } else if (kind !== 0 /* FIELD */) {\n desc = Object.getOwnPropertyDescriptor(base, name);\n }\n\n if (kind === 1 /* ACCESSOR */) {\n value = {\n get: desc.get,\n set: desc.set,\n };\n } else if (kind === 2 /* METHOD */) {\n value = desc.value;\n } else if (kind === 3 /* GETTER */) {\n value = desc.get;\n } else if (kind === 4 /* SETTER */) {\n value = desc.set;\n }\n\n var newValue, get, set;\n\n if (typeof decs === \"function\") {\n newValue = memberDec(\n decs,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value,\n hasPrivateBrand\n );\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n\n if (kind === 0 /* FIELD */) {\n init = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n init = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n }\n } else {\n for (var i = decs.length - 1; i >= 0; i--) {\n var dec = decs[i];\n\n newValue = memberDec(\n dec,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value,\n hasPrivateBrand\n );\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n var newInit;\n\n if (kind === 0 /* FIELD */) {\n newInit = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n newInit = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n\n if (newInit !== void 0) {\n if (init === void 0) {\n init = newInit;\n } else if (typeof init === \"function\") {\n init = [init, newInit];\n } else {\n init.push(newInit);\n }\n }\n }\n }\n }\n\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n if (init === void 0) {\n // If the initializer was void 0, sub in a dummy initializer\n init = function (instance, init) {\n return init;\n };\n } else if (typeof init !== \"function\") {\n var ownInitializers = init;\n\n init = function (instance, init) {\n var value = init;\n\n for (var i = 0; i < ownInitializers.length; i++) {\n value = ownInitializers[i].call(instance, value);\n }\n\n return value;\n };\n } else {\n var originalInitializer = init;\n\n init = function (instance, init) {\n return originalInitializer.call(instance, init);\n };\n }\n\n ret.push(init);\n }\n\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n desc.get = value.get;\n desc.set = value.set;\n } else if (kind === 2 /* METHOD */) {\n desc.value = value;\n } else if (kind === 3 /* GETTER */) {\n desc.get = value;\n } else if (kind === 4 /* SETTER */) {\n desc.set = value;\n }\n\n if (isPrivate) {\n if (kind === 1 /* ACCESSOR */) {\n ret.push(function (instance, args) {\n return value.get.call(instance, args);\n });\n ret.push(function (instance, args) {\n return value.set.call(instance, args);\n });\n } else if (kind === 2 /* METHOD */) {\n ret.push(value);\n } else {\n ret.push(function (instance, args) {\n return value.call(instance, args);\n });\n }\n } else {\n Object.defineProperty(base, name, desc);\n }\n }\n }\n\n function applyMemberDecs(Class, decInfos, instanceBrand) {\n var ret = [];\n var protoInitializers;\n var staticInitializers;\n var staticBrand;\n\n var existingProtoNonFields = new Map();\n var existingStaticNonFields = new Map();\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var isStatic = kind >= 5; /* STATIC */\n var base;\n var initializers;\n var hasPrivateBrand = instanceBrand;\n\n if (isStatic) {\n base = Class;\n kind = kind - 5 /* STATIC */;\n // initialize staticInitializers when we see a non-field static member\n if (kind !== 0 /* FIELD */) {\n staticInitializers = staticInitializers || [];\n initializers = staticInitializers;\n }\n if (isPrivate && !staticBrand) {\n staticBrand = function (_) {\n return checkInRHS(_) === Class;\n };\n }\n hasPrivateBrand = staticBrand;\n } else {\n base = Class.prototype;\n // initialize protoInitializers when we see a non-field member\n if (kind !== 0 /* FIELD */) {\n protoInitializers = protoInitializers || [];\n initializers = protoInitializers;\n }\n }\n\n if (kind !== 0 /* FIELD */ && !isPrivate) {\n var existingNonFields = isStatic\n ? existingStaticNonFields\n : existingProtoNonFields;\n\n var existingKind = existingNonFields.get(name) || 0;\n\n if (\n existingKind === true ||\n (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ ||\n (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name\n );\n } else if (!existingKind && kind > 2 /* METHOD */) {\n existingNonFields.set(name, kind);\n } else {\n existingNonFields.set(name, true);\n }\n }\n\n applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers,\n hasPrivateBrand\n );\n }\n\n pushInitializers(ret, protoInitializers);\n pushInitializers(ret, staticInitializers);\n return ret;\n }\n\n function pushInitializers(ret, initializers) {\n if (initializers) {\n ret.push(function (instance) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(instance);\n }\n return instance;\n });\n }\n }\n\n function applyClassDecs(targetClass, classDecs) {\n if (classDecs.length > 0) {\n var initializers = [];\n var newClass = targetClass;\n var name = targetClass.name;\n\n for (var i = classDecs.length - 1; i >= 0; i--) {\n var decoratorFinishedRef = { v: false };\n\n try {\n var nextNewClass = classDecs[i](newClass, {\n kind: \"class\",\n name: name,\n addInitializer: createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n ),\n });\n } finally {\n decoratorFinishedRef.v = true;\n }\n\n if (nextNewClass !== undefined) {\n assertValidReturnValue(10 /* CLASS */, nextNewClass);\n newClass = nextNewClass;\n }\n }\n\n return [\n newClass,\n function () {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(newClass);\n }\n },\n ];\n }\n // The transformer will not emit assignment when there are no class decorators,\n // so we don't have to return an empty array here.\n }\n\n /**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n dec, // dec or array of decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n )\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\n return function applyDecs2301(\n targetClass,\n memberDecs,\n classDecs,\n instanceBrand\n ) {\n return {\n e: applyMemberDecs(targetClass, memberDecs, instanceBrand),\n // Lazily apply class decorations so that member init locals can be properly bound.\n get c() {\n return applyClassDecs(targetClass, classDecs);\n },\n };\n };\n}\n\nexport default function applyDecs2301(\n targetClass,\n memberDecs,\n classDecs,\n instanceBrand\n) {\n return (applyDecs2301 = applyDecs2301Factory())(\n targetClass,\n memberDecs,\n classDecs,\n instanceBrand\n );\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_checkInRHS","require","_setFunctionName","_toPropertyKey","applyDecs2301Factory","createAddInitializerMethod","initializers","decoratorFinishedRef","addInitializer","initializer","assertNotFinished","assertCallable","push","assertInstanceIfPrivate","has","target","TypeError","memberDec","dec","name","desc","kind","isStatic","isPrivate","value","hasPrivateBrand","kindStr","ctx","toPropertyKey","static","private","v","get","set","t","call","bind","access","fnName","Error","fn","hint","assertValidReturnValue","type","undefined","init","curryThis1","curryThis2","applyMemberDec","ret","base","decInfo","decs","prefix","setFunctionName","Object","getOwnPropertyDescriptor","newValue","i","length","newInit","instance","ownInitializers","originalInitializer","args","defineProperty","applyMemberDecs","Class","decInfos","instanceBrand","protoInitializers","staticInitializers","staticBrand","existingProtoNonFields","Map","existingStaticNonFields","Array","isArray","_","checkInRHS","prototype","existingNonFields","existingKind","pushInitializers","applyClassDecs","targetClass","classDecs","newClass","nextNewClass","applyDecs2301","memberDecs","e","c","exports","default"],"sources":["../../src/helpers/applyDecs2301.js"],"sourcesContent":["/* @minVersion 7.21.0 */\n\nimport checkInRHS from \"checkInRHS\";\nimport setFunctionName from \"setFunctionName\";\nimport toPropertyKey from \"toPropertyKey\";\n\n/**\n Enums are used in this file, but not assigned to vars to avoid non-hoistable values\n\n CONSTRUCTOR = 0;\n PUBLIC = 1;\n PRIVATE = 2;\n\n FIELD = 0;\n ACCESSOR = 1;\n METHOD = 2;\n GETTER = 3;\n SETTER = 4;\n\n STATIC = 5;\n\n CLASS = 10; // only used in assertValidReturnValue\n*/\n\nfunction applyDecs2301Factory() {\n function createAddInitializerMethod(initializers, decoratorFinishedRef) {\n return function addInitializer(initializer) {\n assertNotFinished(decoratorFinishedRef, \"addInitializer\");\n assertCallable(initializer, \"An initializer\");\n initializers.push(initializer);\n };\n }\n\n function assertInstanceIfPrivate(has, target) {\n if (!has(target)) {\n throw new TypeError(\n \"Attempted to access private element on non-instance\"\n );\n }\n }\n\n function memberDec(\n dec,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value,\n hasPrivateBrand\n ) {\n var kindStr;\n\n switch (kind) {\n case 1 /* ACCESSOR */:\n kindStr = \"accessor\";\n break;\n case 2 /* METHOD */:\n kindStr = \"method\";\n break;\n case 3 /* GETTER */:\n kindStr = \"getter\";\n break;\n case 4 /* SETTER */:\n kindStr = \"setter\";\n break;\n default:\n kindStr = \"field\";\n }\n\n var ctx = {\n kind: kindStr,\n name: isPrivate ? \"#\" + name : toPropertyKey(name),\n static: isStatic,\n private: isPrivate,\n };\n\n var decoratorFinishedRef = { v: false };\n\n if (kind !== 0 /* FIELD */) {\n ctx.addInitializer = createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n );\n }\n\n var get, set;\n if (!isPrivate && (kind === 0 /* FIELD */ || kind === 2) /* METHOD */) {\n get = function (target) {\n return target[name];\n };\n if (kind === 0 /* FIELD */) {\n set = function (target, v) {\n target[name] = v;\n };\n }\n } else if (kind === 2 /* METHOD */) {\n // Assert: isPrivate is true.\n get = function (target) {\n assertInstanceIfPrivate(hasPrivateBrand, target);\n return desc.value;\n };\n } else {\n // Assert: If kind === 0, then isPrivate is true.\n var t = kind === 0 /* FIELD */ || kind === 1; /* ACCESSOR */\n if (t || kind === 3 /* GETTER */) {\n if (isPrivate) {\n get = function (target) {\n assertInstanceIfPrivate(hasPrivateBrand, target);\n return desc.get.call(target);\n };\n } else {\n get = function (target) {\n return desc.get.call(target);\n };\n }\n }\n if (t || kind === 4 /* SETTER */) {\n if (isPrivate) {\n set = function (target, value) {\n assertInstanceIfPrivate(hasPrivateBrand, target);\n desc.set.call(target, value);\n };\n } else {\n set = function (target, value) {\n desc.set.call(target, value);\n };\n }\n }\n }\n var has = isPrivate\n ? hasPrivateBrand.bind()\n : function (target) {\n return name in target;\n };\n ctx.access =\n get && set\n ? { get: get, set: set, has: has }\n : get\n ? { get: get, has: has }\n : { set: set, has: has };\n\n try {\n return dec(value, ctx);\n } finally {\n decoratorFinishedRef.v = true;\n }\n }\n\n function assertNotFinished(decoratorFinishedRef, fnName) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call \" + fnName + \" after decoration was finished\"\n );\n }\n }\n\n function assertCallable(fn, hint) {\n if (typeof fn !== \"function\") {\n throw new TypeError(hint + \" must be a function\");\n }\n }\n\n function assertValidReturnValue(kind, value) {\n var type = typeof value;\n\n if (kind === 1 /* ACCESSOR */) {\n if (type !== \"object\" || value === null) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\"\n );\n }\n if (value.get !== undefined) {\n assertCallable(value.get, \"accessor.get\");\n }\n if (value.set !== undefined) {\n assertCallable(value.set, \"accessor.set\");\n }\n if (value.init !== undefined) {\n assertCallable(value.init, \"accessor.init\");\n }\n } else if (type !== \"function\") {\n var hint;\n if (kind === 0 /* FIELD */) {\n hint = \"field\";\n } else if (kind === 10 /* CLASS */) {\n hint = \"class\";\n } else {\n hint = \"method\";\n }\n throw new TypeError(\n hint + \" decorators must return a function or void 0\"\n );\n }\n }\n\n function curryThis1(fn) {\n return function () {\n return fn(this);\n };\n }\n function curryThis2(fn) {\n return function (value) {\n fn(this, value);\n };\n }\n\n function applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers,\n hasPrivateBrand\n ) {\n var decs = decInfo[0];\n\n var desc, init, prefix, value;\n\n if (isPrivate) {\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n desc = {\n get: curryThis1(decInfo[3]),\n set: curryThis2(decInfo[4]),\n };\n prefix = \"get\";\n } else {\n if (kind === 3 /* GETTER */) {\n desc = {\n get: decInfo[3],\n };\n prefix = \"get\";\n } else if (kind === 4 /* SETTER */) {\n desc = {\n set: decInfo[3],\n };\n prefix = \"set\";\n } else {\n desc = {\n value: decInfo[3],\n };\n }\n }\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n setFunctionName(desc.set, \"#\" + name, \"set\");\n }\n setFunctionName(desc[prefix || \"value\"], \"#\" + name, prefix);\n }\n } else if (kind !== 0 /* FIELD */) {\n desc = Object.getOwnPropertyDescriptor(base, name);\n }\n\n if (kind === 1 /* ACCESSOR */) {\n value = {\n get: desc.get,\n set: desc.set,\n };\n } else if (kind === 2 /* METHOD */) {\n value = desc.value;\n } else if (kind === 3 /* GETTER */) {\n value = desc.get;\n } else if (kind === 4 /* SETTER */) {\n value = desc.set;\n }\n\n var newValue, get, set;\n\n if (typeof decs === \"function\") {\n newValue = memberDec(\n decs,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value,\n hasPrivateBrand\n );\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n\n if (kind === 0 /* FIELD */) {\n init = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n init = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n }\n } else {\n for (var i = decs.length - 1; i >= 0; i--) {\n var dec = decs[i];\n\n newValue = memberDec(\n dec,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value,\n hasPrivateBrand\n );\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n var newInit;\n\n if (kind === 0 /* FIELD */) {\n newInit = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n newInit = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n\n if (newInit !== void 0) {\n if (init === void 0) {\n init = newInit;\n } else if (typeof init === \"function\") {\n init = [init, newInit];\n } else {\n init.push(newInit);\n }\n }\n }\n }\n }\n\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n if (init === void 0) {\n // If the initializer was void 0, sub in a dummy initializer\n init = function (instance, init) {\n return init;\n };\n } else if (typeof init !== \"function\") {\n var ownInitializers = init;\n\n init = function (instance, init) {\n var value = init;\n\n for (var i = 0; i < ownInitializers.length; i++) {\n value = ownInitializers[i].call(instance, value);\n }\n\n return value;\n };\n } else {\n var originalInitializer = init;\n\n init = function (instance, init) {\n return originalInitializer.call(instance, init);\n };\n }\n\n ret.push(init);\n }\n\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n desc.get = value.get;\n desc.set = value.set;\n } else if (kind === 2 /* METHOD */) {\n desc.value = value;\n } else if (kind === 3 /* GETTER */) {\n desc.get = value;\n } else if (kind === 4 /* SETTER */) {\n desc.set = value;\n }\n\n if (isPrivate) {\n if (kind === 1 /* ACCESSOR */) {\n ret.push(function (instance, args) {\n return value.get.call(instance, args);\n });\n ret.push(function (instance, args) {\n return value.set.call(instance, args);\n });\n } else if (kind === 2 /* METHOD */) {\n ret.push(value);\n } else {\n ret.push(function (instance, args) {\n return value.call(instance, args);\n });\n }\n } else {\n Object.defineProperty(base, name, desc);\n }\n }\n }\n\n function applyMemberDecs(Class, decInfos, instanceBrand) {\n var ret = [];\n var protoInitializers;\n var staticInitializers;\n var staticBrand;\n\n var existingProtoNonFields = new Map();\n var existingStaticNonFields = new Map();\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var isStatic = kind >= 5; /* STATIC */\n var base;\n var initializers;\n var hasPrivateBrand = instanceBrand;\n\n if (isStatic) {\n base = Class;\n kind = kind - 5 /* STATIC */;\n // initialize staticInitializers when we see a non-field static member\n if (kind !== 0 /* FIELD */) {\n staticInitializers = staticInitializers || [];\n initializers = staticInitializers;\n }\n if (isPrivate && !staticBrand) {\n staticBrand = function (_) {\n return checkInRHS(_) === Class;\n };\n }\n hasPrivateBrand = staticBrand;\n } else {\n base = Class.prototype;\n // initialize protoInitializers when we see a non-field member\n if (kind !== 0 /* FIELD */) {\n protoInitializers = protoInitializers || [];\n initializers = protoInitializers;\n }\n }\n\n if (kind !== 0 /* FIELD */ && !isPrivate) {\n var existingNonFields = isStatic\n ? existingStaticNonFields\n : existingProtoNonFields;\n\n var existingKind = existingNonFields.get(name) || 0;\n\n if (\n existingKind === true ||\n (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ ||\n (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name\n );\n } else if (!existingKind && kind > 2 /* METHOD */) {\n existingNonFields.set(name, kind);\n } else {\n existingNonFields.set(name, true);\n }\n }\n\n applyMemberDec(\n ret,\n base,\n decInfo,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers,\n hasPrivateBrand\n );\n }\n\n pushInitializers(ret, protoInitializers);\n pushInitializers(ret, staticInitializers);\n return ret;\n }\n\n function pushInitializers(ret, initializers) {\n if (initializers) {\n ret.push(function (instance) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(instance);\n }\n return instance;\n });\n }\n }\n\n function applyClassDecs(targetClass, classDecs) {\n if (classDecs.length > 0) {\n var initializers = [];\n var newClass = targetClass;\n var name = targetClass.name;\n\n for (var i = classDecs.length - 1; i >= 0; i--) {\n var decoratorFinishedRef = { v: false };\n\n try {\n var nextNewClass = classDecs[i](newClass, {\n kind: \"class\",\n name: name,\n addInitializer: createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n ),\n });\n } finally {\n decoratorFinishedRef.v = true;\n }\n\n if (nextNewClass !== undefined) {\n assertValidReturnValue(10 /* CLASS */, nextNewClass);\n newClass = nextNewClass;\n }\n }\n\n return [\n newClass,\n function () {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(newClass);\n }\n },\n ];\n }\n // The transformer will not emit assignment when there are no class decorators,\n // so we don't have to return an empty array here.\n }\n\n /**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n dec, // dec or array of decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n )\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\n return function applyDecs2301(\n targetClass,\n memberDecs,\n classDecs,\n instanceBrand\n ) {\n return {\n e: applyMemberDecs(targetClass, memberDecs, instanceBrand),\n // Lazily apply class decorations so that member init locals can be properly bound.\n get c() {\n return applyClassDecs(targetClass, classDecs);\n },\n };\n };\n}\n\nexport default function applyDecs2301(\n targetClass,\n memberDecs,\n classDecs,\n instanceBrand\n) {\n return (applyDecs2301 = applyDecs2301Factory())(\n targetClass,\n memberDecs,\n classDecs,\n instanceBrand\n );\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js b/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js index 35ad119c..9fd946b3 100644 --- a/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js +++ b/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js @@ -4,398 +4,228 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = applyDecs2305; -var _checkInRHS = require("checkInRHS"); -function createAddInitializerMethod(initializers, decoratorFinishedRef) { - return function addInitializer(initializer) { - assertNotFinished(decoratorFinishedRef, "addInitializer"); - assertCallable(initializer, "An initializer"); - initializers.push(initializer); - }; -} -function assertInstanceIfPrivate(has, target) { - if (!has(target)) { - throw new TypeError("Attempted to access private element on non-instance"); - } -} -function memberDec(dec, thisArg, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand, metadata) { - var kindStr; - switch (kind) { - case 1: - kindStr = "accessor"; - break; - case 2: - kindStr = "method"; - break; - case 3: - kindStr = "getter"; - break; - case 4: - kindStr = "setter"; - break; - default: - kindStr = "field"; - } - var ctx = { - kind: kindStr, - name: isPrivate ? "#" + name : name, - static: isStatic, - private: isPrivate, - metadata: metadata - }; - var decoratorFinishedRef = { - v: false - }; - if (kind !== 0) { - ctx.addInitializer = createAddInitializerMethod(initializers, decoratorFinishedRef); - } - var get, set; - if (!isPrivate && (kind === 0 || kind === 2)) { - get = function (target) { - return target[name]; - }; - if (kind === 0) { - set = function (target, v) { - target[name] = v; - }; - } - } else if (kind === 2) { - get = function (target) { - assertInstanceIfPrivate(hasPrivateBrand, target); - return desc.value; - }; - } else { - var t = kind === 0 || kind === 1; - if (t || kind === 3) { - if (isPrivate) { - get = function (target) { - assertInstanceIfPrivate(hasPrivateBrand, target); - return desc.get.call(target); - }; - } else { - get = function (target) { - return desc.get.call(target); - }; - } - } - if (t || kind === 4) { - if (isPrivate) { - set = function (target, value) { - assertInstanceIfPrivate(hasPrivateBrand, target); - desc.set.call(target, value); - }; - } else { - set = function (target, value) { - desc.set.call(target, value); - }; +var _checkInRHS = require("./checkInRHS.js"); +var _setFunctionName = require("./setFunctionName.js"); +var _toPropertyKey = require("./toPropertyKey.js"); +function applyDecs2305(targetClass, memberDecs, classDecs, classDecsHaveThis, instanceBrand, parentClass) { + function _bindPropCall(obj, name, before) { + return function (_this, value) { + if (before) { + before(_this); } - } - } - var has = isPrivate ? hasPrivateBrand.bind() : function (target) { - return name in target; - }; - ctx.access = get && set ? { - get: get, - set: set, - has: has - } : get ? { - get: get, - has: has - } : { - set: set, - has: has - }; - try { - return dec.call(thisArg, value, ctx); - } finally { - decoratorFinishedRef.v = true; - } -} -function assertNotFinished(decoratorFinishedRef, fnName) { - if (decoratorFinishedRef.v) { - throw new Error("attempted to call " + fnName + " after decoration was finished"); - } -} -function assertCallable(fn, hint) { - if (typeof fn !== "function") { - throw new TypeError(hint + " must be a function"); + return obj[name].call(_this, value); + }; } -} -function assertValidReturnValue(kind, value) { - var type = typeof value; - if (kind === 1) { - if (type !== "object" || value === null) { - throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); - } - if (value.get !== undefined) { - assertCallable(value.get, "accessor.get"); - } - if (value.set !== undefined) { - assertCallable(value.set, "accessor.set"); - } - if (value.init !== undefined) { - assertCallable(value.init, "accessor.init"); + function runInitializers(initializers, value) { + for (var i = 0; i < initializers.length; i++) { + initializers[i].call(value); } - } else if (type !== "function") { - var hint; - if (kind === 0) { - hint = "field"; - } else if (kind === 5) { - hint = "class"; - } else { - hint = "method"; - } - throw new TypeError(hint + " decorators must return a function or void 0"); - } -} -function curryThis1(fn) { - return function () { - return fn(this); - }; -} -function curryThis2(fn) { - return function (value) { - fn(this, value); - }; -} -function applyMemberDec(ret, base, decInfo, decoratorsHaveThis, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand, metadata) { - var decs = decInfo[0]; - if (!decoratorsHaveThis && !Array.isArray(decs)) { - decs = [decs]; + return value; } - var desc, init, value; - if (isPrivate) { - if (kind === 0 || kind === 1) { - desc = { - get: curryThis1(decInfo[3]), - set: curryThis2(decInfo[4]) - }; - } else { - if (kind === 3) { - desc = { - get: decInfo[3] - }; - } else if (kind === 4) { - desc = { - set: decInfo[3] - }; - } else { - desc = { - value: decInfo[3] - }; + function assertCallable(fn, hint1, hint2, throwUndefined) { + if (typeof fn !== "function") { + if (throwUndefined || fn !== void 0) { + throw new TypeError(hint1 + " must " + (hint2 || "be") + " a function" + (throwUndefined ? "" : " or undefined")); } } - } else if (kind !== 0) { - desc = Object.getOwnPropertyDescriptor(base, name); + return fn; } - if (kind === 1) { - value = { - get: desc.get, - set: desc.set - }; - } else if (kind === 2) { - value = desc.value; - } else if (kind === 3) { - value = desc.get; - } else if (kind === 4) { - value = desc.set; - } - var newValue, get, set; - var inc = decoratorsHaveThis ? 2 : 1; - for (var i = decs.length - 1; i >= 0; i -= inc) { - var dec = decs[i]; - newValue = memberDec(dec, decoratorsHaveThis ? decs[i - 1] : undefined, name, desc, initializers, kind, isStatic, isPrivate, value, hasPrivateBrand, metadata); - if (newValue !== void 0) { - assertValidReturnValue(kind, newValue); - var newInit; - if (kind === 0) { - newInit = newValue; - } else if (kind === 1) { - newInit = newValue.init; - get = newValue.get || value.get; - set = newValue.set || value.set; - value = { - get: get, - set: set - }; - } else { - value = newValue; + function applyDec(Class, decInfo, decoratorsHaveThis, name, kind, metadata, initializers, ret, isStatic, isPrivate, isField, isAccessor, hasPrivateBrand) { + function assertInstanceIfPrivate(target) { + if (!hasPrivateBrand(target)) { + throw new TypeError("Attempted to access private element on non-instance"); + } + } + var decs = decInfo[0], + decVal = decInfo[3], + _, + isClass = !ret; + if (!isClass) { + if (!decoratorsHaveThis && !Array.isArray(decs)) { + decs = [decs]; } - if (newInit !== void 0) { - if (init === void 0) { - init = newInit; - } else if (typeof init === "function") { - init = [init, newInit]; + var desc = {}, + init = [], + key = kind === 3 ? "get" : kind === 4 || isAccessor ? "set" : "value"; + if (isPrivate) { + if (isField || isAccessor) { + desc = { + get: (0, _setFunctionName.default)(function () { + return decVal(this); + }, name, "get"), + set: function (value) { + decInfo[4](this, value); + } + }; } else { - init.push(newInit); + desc[key] = decVal; + } + if (!isField) { + (0, _setFunctionName.default)(desc[key], name, kind === 2 ? "" : key); } + } else if (!isField) { + desc = Object.getOwnPropertyDescriptor(Class, name); } } - } - if (kind === 0 || kind === 1) { - if (init === void 0) { - init = function (instance, init) { - return init; + var newValue; + for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) { + var dec = decs[i], + decThis = decoratorsHaveThis ? decs[i - 1] : void 0; + var decoratorFinishedRef = {}; + var ctx = { + kind: ["field", "accessor", "method", "getter", "setter", "field", "class"][kind], + name: name, + metadata: metadata, + addInitializer: function (decoratorFinishedRef, initializer) { + if (decoratorFinishedRef.v) { + throw new Error("attempted to call addInitializer after decoration was finished"); + } + assertCallable(initializer, "An initializer", "be", true); + initializers.push(initializer); + }.bind(null, decoratorFinishedRef) }; - } else if (typeof init !== "function") { - var ownInitializers = init; - init = function (instance, init) { - var value = init; - for (var i = ownInitializers.length - 1; i >= 0; i--) { - value = ownInitializers[i].call(instance, value); + try { + if (isClass) { + newValue = dec.call(decThis, Class, ctx); + } else { + ctx.static = isStatic; + ctx.private = isPrivate; + var get, set; + if (!isPrivate && (isField || kind === 2)) { + get = function (target) { + return target[name]; + }; + if (isField) { + set = function (target, v) { + target[name] = v; + }; + } + } else if (kind === 2) { + get = function (_this) { + assertInstanceIfPrivate(_this); + return desc.value; + }; + } else { + if (kind < 2 || kind === 3) { + get = _bindPropCall(desc, "get", isPrivate && assertInstanceIfPrivate); + } + if (kind < 2 || kind === 4) { + set = _bindPropCall(desc, "set", isPrivate && assertInstanceIfPrivate); + } + } + var access = ctx.access = { + has: isPrivate ? hasPrivateBrand.bind() : function (target) { + return name in target; + } + }; + if (get) access.get = get; + if (set) access.set = set; + newValue = dec.call(decThis, isAccessor ? { + get: desc.get, + set: desc.set + } : desc[key], ctx); + if (isAccessor) { + if (typeof newValue === "object" && newValue) { + if (_ = assertCallable(newValue.get, "accessor.get")) { + desc.get = _; + } + if (_ = assertCallable(newValue.set, "accessor.set")) { + desc.set = _; + } + if (_ = assertCallable(newValue.init, "accessor.init")) { + init.push(_); + } + } else if (newValue !== void 0) { + throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); + } + } else if (assertCallable(newValue, (isField ? "field" : "method") + " decorators", "return")) { + if (isField) { + init.push(newValue); + } else { + desc[key] = newValue; + } + } } - return value; - }; - } else { - var originalInitializer = init; - init = function (instance, init) { - return originalInitializer.call(instance, init); - }; + } finally { + decoratorFinishedRef.v = true; + } } - ret.push(init); - } - if (kind !== 0) { - if (kind === 1) { - desc.get = value.get; - desc.set = value.set; - } else if (kind === 2) { - desc.value = value; - } else if (kind === 3) { - desc.get = value; - } else if (kind === 4) { - desc.set = value; + if (isField || isAccessor) { + ret.push(function (instance, value) { + for (var i = init.length - 1; i >= 0; i--) { + value = init[i].call(instance, value); + } + return value; + }); } - if (isPrivate) { - if (kind === 1) { - ret.push(function (instance, args) { - return value.get.call(instance, args); - }); - ret.push(function (instance, args) { - return value.set.call(instance, args); - }); - } else if (kind === 2) { - ret.push(value); + if (!isField && !isClass) { + if (isPrivate) { + if (isAccessor) { + ret.push(_bindPropCall(desc, "get"), _bindPropCall(desc, "set")); + } else { + ret.push(kind === 2 ? desc[key] : _bindPropCall.call.bind(desc[key])); + } } else { - ret.push(function (instance, args) { - return value.call(instance, args); - }); + Object.defineProperty(Class, name, desc); } - } else { - Object.defineProperty(base, name, desc); } + return newValue; } -} -function applyMemberDecs(Class, decInfos, instanceBrand, metadata) { - var ret = []; - var protoInitializers; - var staticInitializers; - var staticBrand; - var existingProtoNonFields = new Map(); - var existingStaticNonFields = new Map(); - for (var i = 0; i < decInfos.length; i++) { - var decInfo = decInfos[i]; - if (!Array.isArray(decInfo)) continue; - var kind = decInfo[1]; - var name = decInfo[2]; - var isPrivate = decInfo.length > 3; - var decoratorsHaveThis = kind & 16; - var isStatic = !!(kind & 8); - var base; - var initializers; - var hasPrivateBrand = instanceBrand; - kind &= 7; - if (isStatic) { - base = Class; - if (kind !== 0) { - staticInitializers = staticInitializers || []; - initializers = staticInitializers; - } - if (isPrivate && !staticBrand) { - staticBrand = function (_) { - return _checkInRHS(_) === Class; - }; - } - hasPrivateBrand = staticBrand; - } else { - base = Class.prototype; - if (kind !== 0) { - protoInitializers = protoInitializers || []; - initializers = protoInitializers; + function applyMemberDecs(Class, decInfos, instanceBrand, metadata) { + var ret = []; + var protoInitializers; + var staticInitializers; + var staticBrand = function (_) { + return (0, _checkInRHS.default)(_) === Class; + }; + var existingNonFields = new Map(); + function pushInitializers(initializers) { + if (initializers) { + ret.push(runInitializers.bind(null, initializers)); } } - if (kind !== 0 && !isPrivate) { - var existingNonFields = isStatic ? existingStaticNonFields : existingProtoNonFields; - var existingKind = existingNonFields.get(name) || 0; - if (existingKind === true || existingKind === 3 && kind !== 4 || existingKind === 4 && kind !== 3) { - throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name); + for (var i = 0; i < decInfos.length; i++) { + var decInfo = decInfos[i]; + if (!Array.isArray(decInfo)) continue; + var kind = decInfo[1]; + var name = decInfo[2]; + var isPrivate = decInfo.length > 3; + var decoratorsHaveThis = kind & 16; + var isStatic = !!(kind & 8); + kind &= 7; + var isField = kind === 0; + var key = name + "/" + isStatic; + if (!isField && !isPrivate) { + var existingKind = existingNonFields.get(key); + if (existingKind === true || existingKind === 3 && kind !== 4 || existingKind === 4 && kind !== 3) { + throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + name); + } + existingNonFields.set(key, kind > 2 ? kind : true); } - existingNonFields.set(name, !existingKind && kind > 2 ? kind : true); + applyDec(isStatic ? Class : Class.prototype, decInfo, decoratorsHaveThis, isPrivate ? "#" + name : (0, _toPropertyKey.default)(name), kind, metadata, isStatic ? staticInitializers = staticInitializers || [] : protoInitializers = protoInitializers || [], ret, isStatic, isPrivate, isField, kind === 1, isStatic && isPrivate ? staticBrand : instanceBrand); } - applyMemberDec(ret, base, decInfo, decoratorsHaveThis, name, kind, isStatic, isPrivate, initializers, hasPrivateBrand, metadata); + pushInitializers(protoInitializers); + pushInitializers(staticInitializers); + return ret; } - pushInitializers(ret, protoInitializers); - pushInitializers(ret, staticInitializers); - return ret; -} -function pushInitializers(ret, initializers) { - if (initializers) { - ret.push(function (instance) { - for (var i = 0; i < initializers.length; i++) { - initializers[i].call(instance); - } - return instance; + function defineMetadata(Class, metadata) { + return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), { + configurable: true, + enumerable: true, + value: metadata }); } -} -function applyClassDecs(targetClass, classDecs, decoratorsHaveThis, metadata) { - if (classDecs.length) { - var initializers = []; - var newClass = targetClass; - var name = targetClass.name; - var inc = decoratorsHaveThis ? 2 : 1; - for (var i = classDecs.length - 1; i >= 0; i -= inc) { - var decoratorFinishedRef = { - v: false - }; - try { - var nextNewClass = classDecs[i].call(decoratorsHaveThis ? classDecs[i - 1] : undefined, newClass, { - kind: "class", - name: name, - addInitializer: createAddInitializerMethod(initializers, decoratorFinishedRef), - metadata - }); - } finally { - decoratorFinishedRef.v = true; - } - if (nextNewClass !== undefined) { - assertValidReturnValue(5, nextNewClass); - newClass = nextNewClass; - } - } - return [defineMetadata(newClass, metadata), function () { - for (var i = 0; i < initializers.length; i++) { - initializers[i].call(newClass); - } - }]; - } -} -function defineMetadata(Class, metadata) { - return Object.defineProperty(Class, Symbol.metadata || Symbol.for("Symbol.metadata"), { - configurable: true, - enumerable: true, - value: metadata - }); -} -function applyDecs2305(targetClass, memberDecs, classDecs, classDecsHaveThis, instanceBrand, parentClass) { if (arguments.length >= 6) { var parentMetadata = parentClass[Symbol.metadata || Symbol.for("Symbol.metadata")]; } - var metadata = Object.create(parentMetadata === void 0 ? null : parentMetadata); + var metadata = Object.create(parentMetadata == null ? null : parentMetadata); var e = applyMemberDecs(targetClass, memberDecs, instanceBrand, metadata); if (!classDecs.length) defineMetadata(targetClass, metadata); return { e: e, get c() { - return applyClassDecs(targetClass, classDecs, classDecsHaveThis, metadata); + var initializers = []; + return classDecs.length && [defineMetadata(assertCallable(applyDec(targetClass, [classDecs], classDecsHaveThis, targetClass.name, 5, metadata, initializers), "class decorators", "return") || targetClass, metadata), runInitializers.bind(null, initializers, targetClass)]; } }; } diff --git a/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map b/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map index 74abf174..1ecd4f0a 100644 --- a/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map +++ b/node_modules/@babel/helpers/lib/helpers/applyDecs2305.js.map @@ -1 +1 @@ -{"version":3,"names":["_checkInRHS","require","createAddInitializerMethod","initializers","decoratorFinishedRef","addInitializer","initializer","assertNotFinished","assertCallable","push","assertInstanceIfPrivate","has","target","TypeError","memberDec","dec","thisArg","name","desc","kind","isStatic","isPrivate","value","hasPrivateBrand","metadata","kindStr","ctx","static","private","v","get","set","t","call","bind","access","fnName","Error","fn","hint","assertValidReturnValue","type","undefined","init","curryThis1","curryThis2","applyMemberDec","ret","base","decInfo","decoratorsHaveThis","decs","Array","isArray","Object","getOwnPropertyDescriptor","newValue","inc","i","length","newInit","instance","ownInitializers","originalInitializer","args","defineProperty","applyMemberDecs","Class","decInfos","instanceBrand","protoInitializers","staticInitializers","staticBrand","existingProtoNonFields","Map","existingStaticNonFields","_","checkInRHS","prototype","existingNonFields","existingKind","pushInitializers","applyClassDecs","targetClass","classDecs","newClass","nextNewClass","defineMetadata","Symbol","for","configurable","enumerable","applyDecs2305","memberDecs","classDecsHaveThis","parentClass","arguments","parentMetadata","create","e","c"],"sources":["../../src/helpers/applyDecs2305.js"],"sourcesContent":["/* @minVersion 7.21.0 */\n\nimport checkInRHS from \"checkInRHS\";\n\n/**\n Enums are used in this file, but not assigned to vars to avoid non-hoistable values\n\n CONSTRUCTOR = 0;\n PUBLIC = 1;\n PRIVATE = 2;\n\n FIELD = 0;\n ACCESSOR = 1;\n METHOD = 2;\n GETTER = 3;\n SETTER = 4;\n CLASS = 5; // only used in assertValidReturnValue\n\n STATIC = 8;\n\n DECORATORS_HAVE_THIS = 16;\n*/\n\nfunction createAddInitializerMethod(initializers, decoratorFinishedRef) {\n return function addInitializer(initializer) {\n assertNotFinished(decoratorFinishedRef, \"addInitializer\");\n assertCallable(initializer, \"An initializer\");\n initializers.push(initializer);\n };\n}\n\nfunction assertInstanceIfPrivate(has, target) {\n if (!has(target)) {\n throw new TypeError(\"Attempted to access private element on non-instance\");\n }\n}\n\nfunction memberDec(\n dec,\n thisArg,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value,\n hasPrivateBrand,\n metadata\n) {\n var kindStr;\n\n switch (kind) {\n case 1 /* ACCESSOR */:\n kindStr = \"accessor\";\n break;\n case 2 /* METHOD */:\n kindStr = \"method\";\n break;\n case 3 /* GETTER */:\n kindStr = \"getter\";\n break;\n case 4 /* SETTER */:\n kindStr = \"setter\";\n break;\n default:\n kindStr = \"field\";\n }\n\n var ctx = {\n kind: kindStr,\n name: isPrivate ? \"#\" + name : name,\n static: isStatic,\n private: isPrivate,\n metadata: metadata,\n };\n\n var decoratorFinishedRef = { v: false };\n\n if (kind !== 0 /* FIELD */) {\n ctx.addInitializer = createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n );\n }\n\n var get, set;\n if (!isPrivate && (kind === 0 /* FIELD */ || kind === 2) /* METHOD */) {\n get = function (target) {\n return target[name];\n };\n if (kind === 0 /* FIELD */) {\n set = function (target, v) {\n target[name] = v;\n };\n }\n } else if (kind === 2 /* METHOD */) {\n // Assert: isPrivate is true.\n get = function (target) {\n assertInstanceIfPrivate(hasPrivateBrand, target);\n return desc.value;\n };\n } else {\n // Assert: If kind === 0, then isPrivate is true.\n var t = kind === 0 /* FIELD */ || kind === 1; /* ACCESSOR */\n if (t || kind === 3 /* GETTER */) {\n if (isPrivate) {\n get = function (target) {\n assertInstanceIfPrivate(hasPrivateBrand, target);\n return desc.get.call(target);\n };\n } else {\n get = function (target) {\n return desc.get.call(target);\n };\n }\n }\n if (t || kind === 4 /* SETTER */) {\n if (isPrivate) {\n set = function (target, value) {\n assertInstanceIfPrivate(hasPrivateBrand, target);\n desc.set.call(target, value);\n };\n } else {\n set = function (target, value) {\n desc.set.call(target, value);\n };\n }\n }\n }\n var has = isPrivate\n ? hasPrivateBrand.bind()\n : function (target) {\n return name in target;\n };\n ctx.access =\n get && set\n ? { get: get, set: set, has: has }\n : get\n ? { get: get, has: has }\n : { set: set, has: has };\n\n try {\n return dec.call(thisArg, value, ctx);\n } finally {\n decoratorFinishedRef.v = true;\n }\n}\n\nfunction assertNotFinished(decoratorFinishedRef, fnName) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call \" + fnName + \" after decoration was finished\"\n );\n }\n}\n\nfunction assertCallable(fn, hint) {\n if (typeof fn !== \"function\") {\n throw new TypeError(hint + \" must be a function\");\n }\n}\n\nfunction assertValidReturnValue(kind, value) {\n var type = typeof value;\n\n if (kind === 1 /* ACCESSOR */) {\n if (type !== \"object\" || value === null) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\"\n );\n }\n if (value.get !== undefined) {\n assertCallable(value.get, \"accessor.get\");\n }\n if (value.set !== undefined) {\n assertCallable(value.set, \"accessor.set\");\n }\n if (value.init !== undefined) {\n assertCallable(value.init, \"accessor.init\");\n }\n } else if (type !== \"function\") {\n var hint;\n if (kind === 0 /* FIELD */) {\n hint = \"field\";\n } else if (kind === 5 /* CLASS */) {\n hint = \"class\";\n } else {\n hint = \"method\";\n }\n throw new TypeError(hint + \" decorators must return a function or void 0\");\n }\n}\n\nfunction curryThis1(fn) {\n return function () {\n return fn(this);\n };\n}\nfunction curryThis2(fn) {\n return function (value) {\n fn(this, value);\n };\n}\n\nfunction applyMemberDec(\n ret,\n base,\n decInfo,\n decoratorsHaveThis,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers,\n hasPrivateBrand,\n metadata\n) {\n var decs = decInfo[0];\n\n if (!decoratorsHaveThis && !Array.isArray(decs)) {\n decs = [decs];\n }\n\n var desc, init, value;\n\n if (isPrivate) {\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n desc = {\n get: curryThis1(decInfo[3]),\n set: curryThis2(decInfo[4]),\n };\n } else {\n if (kind === 3 /* GETTER */) {\n desc = {\n get: decInfo[3],\n };\n } else if (kind === 4 /* SETTER */) {\n desc = {\n set: decInfo[3],\n };\n } else {\n desc = {\n value: decInfo[3],\n };\n }\n }\n } else if (kind !== 0 /* FIELD */) {\n desc = Object.getOwnPropertyDescriptor(base, name);\n }\n\n if (kind === 1 /* ACCESSOR */) {\n value = {\n get: desc.get,\n set: desc.set,\n };\n } else if (kind === 2 /* METHOD */) {\n value = desc.value;\n } else if (kind === 3 /* GETTER */) {\n value = desc.get;\n } else if (kind === 4 /* SETTER */) {\n value = desc.set;\n }\n\n var newValue, get, set;\n\n var inc = decoratorsHaveThis ? 2 : 1;\n\n for (var i = decs.length - 1; i >= 0; i -= inc) {\n var dec = decs[i];\n\n newValue = memberDec(\n dec,\n decoratorsHaveThis ? decs[i - 1] : undefined,\n name,\n desc,\n initializers,\n kind,\n isStatic,\n isPrivate,\n value,\n hasPrivateBrand,\n metadata\n );\n\n if (newValue !== void 0) {\n assertValidReturnValue(kind, newValue);\n var newInit;\n\n if (kind === 0 /* FIELD */) {\n newInit = newValue;\n } else if (kind === 1 /* ACCESSOR */) {\n newInit = newValue.init;\n get = newValue.get || value.get;\n set = newValue.set || value.set;\n\n value = { get: get, set: set };\n } else {\n value = newValue;\n }\n\n if (newInit !== void 0) {\n if (init === void 0) {\n init = newInit;\n } else if (typeof init === \"function\") {\n init = [init, newInit];\n } else {\n init.push(newInit);\n }\n }\n }\n }\n\n if (kind === 0 /* FIELD */ || kind === 1 /* ACCESSOR */) {\n if (init === void 0) {\n // If the initializer was void 0, sub in a dummy initializer\n init = function (instance, init) {\n return init;\n };\n } else if (typeof init !== \"function\") {\n var ownInitializers = init;\n\n init = function (instance, init) {\n var value = init;\n\n for (var i = ownInitializers.length - 1; i >= 0; i--) {\n value = ownInitializers[i].call(instance, value);\n }\n\n return value;\n };\n } else {\n var originalInitializer = init;\n\n init = function (instance, init) {\n return originalInitializer.call(instance, init);\n };\n }\n\n ret.push(init);\n }\n\n if (kind !== 0 /* FIELD */) {\n if (kind === 1 /* ACCESSOR */) {\n desc.get = value.get;\n desc.set = value.set;\n } else if (kind === 2 /* METHOD */) {\n desc.value = value;\n } else if (kind === 3 /* GETTER */) {\n desc.get = value;\n } else if (kind === 4 /* SETTER */) {\n desc.set = value;\n }\n\n if (isPrivate) {\n if (kind === 1 /* ACCESSOR */) {\n ret.push(function (instance, args) {\n return value.get.call(instance, args);\n });\n ret.push(function (instance, args) {\n return value.set.call(instance, args);\n });\n } else if (kind === 2 /* METHOD */) {\n ret.push(value);\n } else {\n ret.push(function (instance, args) {\n return value.call(instance, args);\n });\n }\n } else {\n Object.defineProperty(base, name, desc);\n }\n }\n}\n\nfunction applyMemberDecs(Class, decInfos, instanceBrand, metadata) {\n var ret = [];\n var protoInitializers;\n var staticInitializers;\n var staticBrand;\n\n var existingProtoNonFields = new Map();\n var existingStaticNonFields = new Map();\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var decoratorsHaveThis = kind & 16; /* DECORATORS_HAVE_THIS */\n var isStatic = !!(kind & 8); /* STATIC */\n var base;\n var initializers;\n var hasPrivateBrand = instanceBrand;\n\n kind &= 7 /* 0b111 */;\n\n if (isStatic) {\n base = Class;\n // initialize staticInitializers when we see a non-field static member\n if (kind !== 0 /* FIELD */) {\n staticInitializers = staticInitializers || [];\n initializers = staticInitializers;\n }\n if (isPrivate && !staticBrand) {\n staticBrand = function (_) {\n return checkInRHS(_) === Class;\n };\n }\n hasPrivateBrand = staticBrand;\n } else {\n base = Class.prototype;\n // initialize protoInitializers when we see a non-field member\n if (kind !== 0 /* FIELD */) {\n protoInitializers = protoInitializers || [];\n initializers = protoInitializers;\n }\n }\n\n if (kind !== 0 /* FIELD */ && !isPrivate) {\n var existingNonFields = isStatic\n ? existingStaticNonFields\n : existingProtoNonFields;\n\n var existingKind = existingNonFields.get(name) || 0;\n\n if (\n existingKind === true ||\n (existingKind === 3 /* GETTER */ && kind !== 4) /* SETTER */ ||\n (existingKind === 4 /* SETTER */ && kind !== 3) /* GETTER */\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name\n );\n }\n existingNonFields.set(\n name,\n !existingKind && kind > 2 /* METHOD */ ? kind : true\n );\n }\n\n applyMemberDec(\n ret,\n base,\n decInfo,\n decoratorsHaveThis,\n name,\n kind,\n isStatic,\n isPrivate,\n initializers,\n hasPrivateBrand,\n metadata\n );\n }\n\n pushInitializers(ret, protoInitializers);\n pushInitializers(ret, staticInitializers);\n return ret;\n}\n\nfunction pushInitializers(ret, initializers) {\n if (initializers) {\n ret.push(function (instance) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(instance);\n }\n return instance;\n });\n }\n}\n\nfunction applyClassDecs(targetClass, classDecs, decoratorsHaveThis, metadata) {\n if (classDecs.length) {\n var initializers = [];\n var newClass = targetClass;\n var name = targetClass.name;\n\n var inc = decoratorsHaveThis ? 2 : 1;\n\n for (var i = classDecs.length - 1; i >= 0; i -= inc) {\n var decoratorFinishedRef = { v: false };\n\n try {\n var nextNewClass = classDecs[i].call(\n decoratorsHaveThis ? classDecs[i - 1] : undefined,\n newClass,\n {\n kind: \"class\",\n name: name,\n addInitializer: createAddInitializerMethod(\n initializers,\n decoratorFinishedRef\n ),\n metadata,\n }\n );\n } finally {\n decoratorFinishedRef.v = true;\n }\n\n if (nextNewClass !== undefined) {\n assertValidReturnValue(5 /* CLASS */, nextNewClass);\n newClass = nextNewClass;\n }\n }\n\n return [\n defineMetadata(newClass, metadata),\n function () {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(newClass);\n }\n },\n ];\n }\n // The transformer will not emit assignment when there are no class decorators,\n // so we don't have to return an empty array here.\n}\n\nfunction defineMetadata(Class, metadata) {\n return Object.defineProperty(\n Class,\n Symbol.metadata || Symbol.for(\"Symbol.metadata\"),\n { configurable: true, enumerable: true, value: metadata }\n );\n}\n\n/**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n decs, // dec, or array of decs, or array of this values and decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n );\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\n\nexport default function applyDecs2305(\n targetClass,\n memberDecs,\n classDecs,\n classDecsHaveThis,\n instanceBrand,\n parentClass\n) {\n if (arguments.length >= 6) {\n var parentMetadata =\n parentClass[Symbol.metadata || Symbol.for(\"Symbol.metadata\")];\n }\n var metadata = Object.create(\n parentMetadata === void 0 ? null : parentMetadata\n );\n var e = applyMemberDecs(targetClass, memberDecs, instanceBrand, metadata);\n if (!classDecs.length) defineMetadata(targetClass, metadata);\n return {\n e: e,\n // Lazily apply class decorations so that member init locals can be properly bound.\n get c() {\n return applyClassDecs(\n targetClass,\n classDecs,\n classDecsHaveThis,\n metadata\n );\n },\n };\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_checkInRHS","require","_setFunctionName","_toPropertyKey","applyDecs2305","targetClass","memberDecs","classDecs","classDecsHaveThis","instanceBrand","parentClass","_bindPropCall","obj","name","before","_this","value","call","runInitializers","initializers","i","length","assertCallable","fn","hint1","hint2","throwUndefined","TypeError","applyDec","Class","decInfo","decoratorsHaveThis","kind","metadata","ret","isStatic","isPrivate","isField","isAccessor","hasPrivateBrand","assertInstanceIfPrivate","target","decs","decVal","_","isClass","Array","isArray","desc","init","key","get","setFunctionName","set","Object","getOwnPropertyDescriptor","newValue","dec","decThis","decoratorFinishedRef","ctx","addInitializer","initializer","v","Error","push","bind","static","private","access","has","instance","defineProperty","applyMemberDecs","decInfos","protoInitializers","staticInitializers","staticBrand","checkInRHS","existingNonFields","Map","pushInitializers","existingKind","prototype","toPropertyKey","defineMetadata","Symbol","for","configurable","enumerable","arguments","parentMetadata","create","e","c"],"sources":["../../src/helpers/applyDecs2305.ts"],"sourcesContent":["/* @minVersion 7.21.0 */\n/* @mangleFns */\n\nimport checkInRHS from \"./checkInRHS.ts\";\nimport setFunctionName from \"./setFunctionName.ts\";\nimport toPropertyKey from \"./toPropertyKey.ts\";\n\nconst enum PROP_KIND {\n FIELD = 0,\n ACCESSOR = 1,\n METHOD = 2,\n GETTER = 3,\n SETTER = 4,\n CLASS = 5,\n\n STATIC = 8,\n\n DECORATORS_HAVE_THIS = 16,\n}\n\ntype DecoratorFinishedRef = { v?: boolean };\ntype DecoratorContextAccess = {\n get?: (target: object) => any;\n set?: (target: object, value: any) => void;\n has: (target: object) => boolean;\n};\ntype DecoratorContext = {\n kind: \"accessor\" | \"method\" | \"getter\" | \"setter\" | \"field\" | \"class\";\n name: string;\n static?: boolean;\n private?: boolean;\n access?: DecoratorContextAccess;\n metadata?: any;\n addInitializer?: (initializer: Function) => void;\n};\ntype DecoratorInfo =\n | [\n decs: Function | Function[],\n kind: PROP_KIND,\n name: string,\n any?,\n Function?,\n ]\n | [classDecs: Function[]];\n\n/**\n Basic usage:\n\n applyDecs(\n Class,\n [\n // member decorators\n [\n decs, // dec, or array of decs, or array of this values and decs\n 0, // kind of value being decorated\n 'prop', // name of public prop on class containing the value being decorated,\n '#p', // the name of the private property (if is private, void 0 otherwise),\n ]\n ],\n [\n // class decorators\n dec1, dec2\n ]\n )\n ```\n\n Fully transpiled example:\n\n ```js\n @dec\n class Class {\n @dec\n a = 123;\n\n @dec\n #a = 123;\n\n @dec\n @dec2\n accessor b = 123;\n\n @dec\n accessor #b = 123;\n\n @dec\n c() { console.log('c'); }\n\n @dec\n #c() { console.log('privC'); }\n\n @dec\n get d() { console.log('d'); }\n\n @dec\n get #d() { console.log('privD'); }\n\n @dec\n set e(v) { console.log('e'); }\n\n @dec\n set #e(v) { console.log('privE'); }\n }\n\n\n // becomes\n let initializeInstance;\n let initializeClass;\n\n let initA;\n let initPrivA;\n\n let initB;\n let initPrivB, getPrivB, setPrivB;\n\n let privC;\n let privD;\n let privE;\n\n let Class;\n class _Class {\n static {\n let ret = applyDecs(\n this,\n [\n [dec, 0, 'a'],\n [dec, 0, 'a', (i) => i.#a, (i, v) => i.#a = v],\n [[dec, dec2], 1, 'b'],\n [dec, 1, 'b', (i) => i.#privBData, (i, v) => i.#privBData = v],\n [dec, 2, 'c'],\n [dec, 2, 'c', () => console.log('privC')],\n [dec, 3, 'd'],\n [dec, 3, 'd', () => console.log('privD')],\n [dec, 4, 'e'],\n [dec, 4, 'e', () => console.log('privE')],\n ],\n [\n dec\n ]\n );\n\n initA = ret[0];\n\n initPrivA = ret[1];\n\n initB = ret[2];\n\n initPrivB = ret[3];\n getPrivB = ret[4];\n setPrivB = ret[5];\n\n privC = ret[6];\n\n privD = ret[7];\n\n privE = ret[8];\n\n initializeInstance = ret[9];\n\n Class = ret[10]\n\n initializeClass = ret[11];\n }\n\n a = (initializeInstance(this), initA(this, 123));\n\n #a = initPrivA(this, 123);\n\n #bData = initB(this, 123);\n get b() { return this.#bData }\n set b(v) { this.#bData = v }\n\n #privBData = initPrivB(this, 123);\n get #b() { return getPrivB(this); }\n set #b(v) { setPrivB(this, v); }\n\n c() { console.log('c'); }\n\n #c(...args) { return privC(this, ...args) }\n\n get d() { console.log('d'); }\n\n get #d() { return privD(this); }\n\n set e(v) { console.log('e'); }\n\n set #e(v) { privE(this, v); }\n }\n\n initializeClass(Class);\n */\n\nexport default /* @no-mangle */ function applyDecs2305(\n targetClass: any,\n memberDecs: DecoratorInfo[],\n classDecs: Function[],\n classDecsHaveThis: number,\n instanceBrand: Function,\n parentClass: any,\n) {\n function _bindPropCall(obj: any, name: string, before?: Function) {\n return function (_this: any, value?: any) {\n if (before) {\n before(_this);\n }\n return obj[name].call(_this, value);\n };\n }\n\n function runInitializers(initializers: Function[], value: any) {\n for (var i = 0; i < initializers.length; i++) {\n initializers[i].call(value);\n }\n return value;\n }\n\n function assertCallable(\n fn: any,\n hint1: string,\n hint2?: string,\n throwUndefined?: boolean,\n ) {\n if (typeof fn !== \"function\") {\n if (throwUndefined || fn !== void 0) {\n throw new TypeError(\n hint1 +\n \" must \" +\n (hint2 || \"be\") +\n \" a function\" +\n (throwUndefined ? \"\" : \" or undefined\"),\n );\n }\n }\n return fn;\n }\n\n /* @no-mangle */\n function applyDec(\n Class: any,\n decInfo: DecoratorInfo,\n decoratorsHaveThis: number,\n name: string,\n kind: PROP_KIND,\n metadata: any,\n initializers: Function[],\n ret?: Function[],\n isStatic?: boolean,\n isPrivate?: boolean,\n isField?: boolean,\n isAccessor?: boolean,\n hasPrivateBrand?: Function,\n ) {\n function assertInstanceIfPrivate(target: any) {\n if (!hasPrivateBrand(target)) {\n throw new TypeError(\n \"Attempted to access private element on non-instance\",\n );\n }\n }\n\n var decs = decInfo[0],\n decVal = decInfo[3],\n _: any,\n isClass = !ret;\n\n if (!isClass) {\n if (!decoratorsHaveThis && !Array.isArray(decs)) {\n decs = [decs];\n }\n\n var desc: PropertyDescriptor = {},\n init: Function[] = [],\n key: \"get\" | \"set\" | \"value\" =\n kind === PROP_KIND.GETTER\n ? \"get\"\n : kind === PROP_KIND.SETTER || isAccessor\n ? \"set\"\n : \"value\";\n\n if (isPrivate) {\n if (isField || isAccessor) {\n desc = {\n get: setFunctionName(\n function (this: any) {\n return decVal(this);\n },\n name,\n \"get\",\n ),\n set: function (this: any, value: any) {\n decInfo[4](this, value);\n },\n };\n } else {\n desc[key] = decVal;\n }\n\n if (!isField) {\n setFunctionName(\n desc[key],\n name,\n kind === PROP_KIND.METHOD ? \"\" : key,\n );\n }\n } else if (!isField) {\n desc = Object.getOwnPropertyDescriptor(Class, name);\n }\n }\n\n var newValue;\n\n for (var i = decs.length - 1; i >= 0; i -= decoratorsHaveThis ? 2 : 1) {\n var dec = (decs as Function[])[i],\n decThis = decoratorsHaveThis ? (decs as any[])[i - 1] : void 0;\n\n var decoratorFinishedRef: DecoratorFinishedRef = {};\n var ctx: DecoratorContext = {\n kind: [\n \"field\",\n \"accessor\",\n \"method\",\n \"getter\",\n \"setter\",\n \"field\",\n \"class\",\n ][kind] as any,\n\n name: name,\n metadata: metadata,\n addInitializer: function (\n decoratorFinishedRef: DecoratorFinishedRef,\n initializer: Function,\n ) {\n if (decoratorFinishedRef.v) {\n throw new Error(\n \"attempted to call addInitializer after decoration was finished\",\n );\n }\n assertCallable(initializer, \"An initializer\", \"be\", true);\n initializers.push(initializer);\n }.bind(null, decoratorFinishedRef),\n };\n\n try {\n if (isClass) {\n newValue = dec.call(decThis, Class, ctx);\n } else {\n ctx.static = isStatic;\n ctx.private = isPrivate;\n\n var get, set;\n if (!isPrivate && (isField || kind === PROP_KIND.METHOD)) {\n get = function (target: any) {\n return target[name];\n };\n if (isField) {\n set = function (target: any, v: any) {\n target[name] = v;\n };\n }\n } else if (kind === PROP_KIND.METHOD) {\n get = function (_this: any) {\n assertInstanceIfPrivate(_this);\n return desc.value;\n };\n } else {\n if (kind < PROP_KIND.METHOD || kind === PROP_KIND.GETTER) {\n get = _bindPropCall(\n desc,\n \"get\",\n isPrivate && assertInstanceIfPrivate,\n );\n }\n if (kind < PROP_KIND.METHOD || kind === PROP_KIND.SETTER) {\n set = _bindPropCall(\n desc,\n \"set\",\n isPrivate && assertInstanceIfPrivate,\n );\n }\n }\n\n var access: DecoratorContextAccess = (ctx.access = {\n has: isPrivate\n ? // @ts-expect-error no thisArg\n hasPrivateBrand.bind()\n : function (target: object) {\n return name in target;\n },\n });\n if (get) access.get = get;\n if (set) access.set = set;\n\n newValue = dec.call(\n decThis,\n isAccessor\n ? {\n get: desc.get,\n set: desc.set,\n }\n : desc[key],\n ctx,\n );\n\n if (isAccessor) {\n if (typeof newValue === \"object\" && newValue) {\n if ((_ = assertCallable(newValue.get, \"accessor.get\"))) {\n desc.get = _;\n }\n if ((_ = assertCallable(newValue.set, \"accessor.set\"))) {\n desc.set = _;\n }\n if ((_ = assertCallable(newValue.init, \"accessor.init\"))) {\n init.push(_);\n }\n } else if (newValue !== void 0) {\n throw new TypeError(\n \"accessor decorators must return an object with get, set, or init properties or void 0\",\n );\n }\n } else if (\n assertCallable(\n newValue,\n (isField ? \"field\" : \"method\") + \" decorators\",\n \"return\",\n )\n ) {\n if (isField) {\n init.push(newValue);\n } else {\n desc[key] = newValue;\n }\n }\n }\n } finally {\n decoratorFinishedRef.v = true;\n }\n }\n\n if (isField || isAccessor) {\n ret.push(function (instance: any, value: any) {\n for (var i = init.length - 1; i >= 0; i--) {\n value = init[i].call(instance, value);\n }\n return value;\n });\n }\n\n if (!isField && !isClass) {\n if (isPrivate) {\n if (isAccessor) {\n ret.push(_bindPropCall(desc, \"get\"), _bindPropCall(desc, \"set\"));\n } else {\n ret.push(\n kind === PROP_KIND.METHOD\n ? desc[key]\n : _bindPropCall.call.bind(desc[key]),\n );\n }\n } else {\n Object.defineProperty(Class, name, desc);\n }\n }\n return newValue;\n }\n\n /* @no-mangle */\n function applyMemberDecs(\n Class: any,\n decInfos: DecoratorInfo[],\n instanceBrand: Function,\n metadata: any,\n ) {\n var ret: Function[] = [];\n var protoInitializers: Function[];\n var staticInitializers: Function[];\n var staticBrand = function (_: any) {\n return checkInRHS(_) === Class;\n };\n\n var existingNonFields = new Map();\n\n function pushInitializers(initializers: Function[]) {\n if (initializers) {\n ret.push(runInitializers.bind(null, initializers));\n }\n }\n\n for (var i = 0; i < decInfos.length; i++) {\n var decInfo = decInfos[i];\n\n // skip computed property names\n if (!Array.isArray(decInfo)) continue;\n\n var kind = decInfo[1];\n var name = decInfo[2];\n var isPrivate = decInfo.length > 3;\n\n var decoratorsHaveThis = kind & PROP_KIND.DECORATORS_HAVE_THIS;\n var isStatic = !!(kind & PROP_KIND.STATIC);\n\n kind &= 7; /* 0b111 */\n\n var isField = kind === PROP_KIND.FIELD;\n\n var key = name + \"/\" + isStatic;\n\n if (!isField && !isPrivate) {\n var existingKind = existingNonFields.get(key);\n\n if (\n existingKind === true ||\n (existingKind === PROP_KIND.GETTER && kind !== PROP_KIND.SETTER) ||\n (existingKind === PROP_KIND.SETTER && kind !== PROP_KIND.GETTER)\n ) {\n throw new Error(\n \"Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: \" +\n name,\n );\n }\n existingNonFields.set(key, kind > PROP_KIND.METHOD ? kind : true);\n }\n\n applyDec(\n isStatic ? Class : Class.prototype,\n decInfo,\n decoratorsHaveThis,\n isPrivate ? \"#\" + name : (toPropertyKey(name) as string),\n kind,\n metadata,\n isStatic\n ? (staticInitializers = staticInitializers || [])\n : (protoInitializers = protoInitializers || []),\n ret,\n isStatic,\n isPrivate,\n isField,\n kind === PROP_KIND.ACCESSOR,\n isStatic && isPrivate ? staticBrand : instanceBrand,\n );\n }\n\n pushInitializers(protoInitializers);\n pushInitializers(staticInitializers);\n return ret;\n }\n\n function defineMetadata(Class: any, metadata: any) {\n return Object.defineProperty(\n Class,\n Symbol.metadata || Symbol.for(\"Symbol.metadata\"),\n { configurable: true, enumerable: true, value: metadata },\n );\n }\n\n if (arguments.length >= 6) {\n var parentMetadata =\n parentClass[Symbol.metadata || Symbol.for(\"Symbol.metadata\")];\n }\n var metadata = Object.create(parentMetadata == null ? null : parentMetadata);\n var e = applyMemberDecs(targetClass, memberDecs, instanceBrand, metadata);\n if (!classDecs.length) defineMetadata(targetClass, metadata);\n return {\n e: e,\n // Lazily apply class decorations so that member init locals can be properly bound.\n get c() {\n // The transformer will not emit assignment when there are no class decorators,\n // so we don't have to return an empty array here.\n var initializers: Function[] = [];\n return (\n classDecs.length && [\n defineMetadata(\n assertCallable(\n applyDec(\n targetClass,\n [classDecs],\n classDecsHaveThis,\n targetClass.name,\n PROP_KIND.CLASS,\n metadata,\n initializers,\n ),\n \"class decorators\",\n \"return\",\n ) || targetClass,\n metadata,\n ),\n runInitializers.bind(null, initializers, targetClass),\n ]\n );\n },\n };\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers/checkInRHS.js.map b/node_modules/@babel/helpers/lib/helpers/checkInRHS.js.map index f66d7b2b..1308196c 100644 --- a/node_modules/@babel/helpers/lib/helpers/checkInRHS.js.map +++ b/node_modules/@babel/helpers/lib/helpers/checkInRHS.js.map @@ -1 +1 @@ -{"version":3,"names":["_checkInRHS","value","Object","TypeError"],"sources":["../../src/helpers/checkInRHS.js"],"sourcesContent":["/* @minVersion 7.20.5 */\n\nexport default function _checkInRHS(value) {\n if (Object(value) !== value) {\n throw TypeError(\n \"right-hand side of 'in' should be an object, got \" +\n (value !== null ? typeof value : \"null\")\n );\n }\n return value;\n}\n"],"mappings":";;;;;;AAEe,SAASA,WAAWA,CAACC,KAAK,EAAE;EACzC,IAAIC,MAAM,CAACD,KAAK,CAAC,KAAKA,KAAK,EAAE;IAC3B,MAAME,SAAS,CACb,mDAAmD,IAChDF,KAAK,KAAK,IAAI,GAAG,OAAOA,KAAK,GAAG,MAAM,CAC3C,CAAC;EACH;EACA,OAAOA,KAAK;AACd"}
\ No newline at end of file +{"version":3,"names":["_checkInRHS","value","Object","TypeError"],"sources":["../../src/helpers/checkInRHS.ts"],"sourcesContent":["/* @minVersion 7.20.5 */\n\nexport default function _checkInRHS(value: unknown) {\n if (Object(value) !== value) {\n throw TypeError(\n \"right-hand side of 'in' should be an object, got \" +\n (value !== null ? typeof value : \"null\"),\n );\n }\n return value;\n}\n"],"mappings":";;;;;;AAEe,SAASA,WAAWA,CAACC,KAAc,EAAE;EAClD,IAAIC,MAAM,CAACD,KAAK,CAAC,KAAKA,KAAK,EAAE;IAC3B,MAAME,SAAS,CACb,mDAAmD,IAChDF,KAAK,KAAK,IAAI,GAAG,OAAOA,KAAK,GAAG,MAAM,CAC3C,CAAC;EACH;EACA,OAAOA,KAAK;AACd"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers/setFunctionName.js b/node_modules/@babel/helpers/lib/helpers/setFunctionName.js new file mode 100644 index 00000000..f711baf1 --- /dev/null +++ b/node_modules/@babel/helpers/lib/helpers/setFunctionName.js @@ -0,0 +1,21 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = setFunctionName; +function setFunctionName(fn, name, prefix) { + if (typeof name === "symbol") { + name = name.description; + name = name ? "[" + name + "]" : ""; + } + try { + Object.defineProperty(fn, "name", { + configurable: true, + value: prefix ? prefix + " " + name : name + }); + } catch (_) {} + return fn; +} + +//# sourceMappingURL=setFunctionName.js.map diff --git a/node_modules/@babel/helpers/lib/helpers/setFunctionName.js.map b/node_modules/@babel/helpers/lib/helpers/setFunctionName.js.map new file mode 100644 index 00000000..44a1c21a --- /dev/null +++ b/node_modules/@babel/helpers/lib/helpers/setFunctionName.js.map @@ -0,0 +1 @@ +{"version":3,"names":["setFunctionName","fn","name","prefix","description","Object","defineProperty","configurable","value","_"],"sources":["../../src/helpers/setFunctionName.ts"],"sourcesContent":["/* @minVersion 7.23.6 */\n\n// https://tc39.es/ecma262/#sec-setfunctionname\nexport default function setFunctionName<T extends Function>(\n fn: T,\n name: symbol | string,\n prefix?: string,\n): T {\n if (typeof name === \"symbol\") {\n name = name.description;\n name = name ? \"[\" + (name as string) + \"]\" : \"\";\n }\n // In some older browsers .name was non-configurable, here we catch any\n // errors thrown by defineProperty.\n try {\n Object.defineProperty(fn, \"name\", {\n configurable: true,\n value: prefix ? prefix + \" \" + name : name,\n });\n } catch (_) {}\n return fn;\n}\n"],"mappings":";;;;;;AAGe,SAASA,eAAeA,CACrCC,EAAK,EACLC,IAAqB,EACrBC,MAAe,EACZ;EACH,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;IAC5BA,IAAI,GAAGA,IAAI,CAACE,WAAW;IACvBF,IAAI,GAAGA,IAAI,GAAG,GAAG,GAAIA,IAAe,GAAG,GAAG,GAAG,EAAE;EACjD;EAGA,IAAI;IACFG,MAAM,CAACC,cAAc,CAACL,EAAE,EAAE,MAAM,EAAE;MAChCM,YAAY,EAAE,IAAI;MAClBC,KAAK,EAAEL,MAAM,GAAGA,MAAM,GAAG,GAAG,GAAGD,IAAI,GAAGA;IACxC,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOO,CAAC,EAAE,CAAC;EACb,OAAOR,EAAE;AACX"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers/toPrimitive.js b/node_modules/@babel/helpers/lib/helpers/toPrimitive.js new file mode 100644 index 00000000..f56a3abf --- /dev/null +++ b/node_modules/@babel/helpers/lib/helpers/toPrimitive.js @@ -0,0 +1,18 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = toPrimitive; +function toPrimitive(input, hint) { + if (typeof input !== "object" || !input) return input; + var prim = input[Symbol.toPrimitive]; + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + return (hint === "string" ? String : Number)(input); +} + +//# sourceMappingURL=toPrimitive.js.map diff --git a/node_modules/@babel/helpers/lib/helpers/toPrimitive.js.map b/node_modules/@babel/helpers/lib/helpers/toPrimitive.js.map new file mode 100644 index 00000000..c63b302a --- /dev/null +++ b/node_modules/@babel/helpers/lib/helpers/toPrimitive.js.map @@ -0,0 +1 @@ +{"version":3,"names":["toPrimitive","input","hint","prim","Symbol","undefined","res","call","TypeError","String","Number"],"sources":["../../src/helpers/toPrimitive.ts"],"sourcesContent":["/* @minVersion 7.1.5 */\n\n// https://tc39.es/ecma262/#sec-toprimitive\nexport default function toPrimitive(\n input: unknown,\n hint?: \"default\" | \"string\" | \"number\",\n) {\n if (typeof input !== \"object\" || !input) return input;\n // @ts-expect-error Symbol.toPrimitive might not index {}\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n"],"mappings":";;;;;;AAGe,SAASA,WAAWA,CACjCC,KAAc,EACdC,IAAsC,EACtC;EACA,IAAI,OAAOD,KAAK,KAAK,QAAQ,IAAI,CAACA,KAAK,EAAE,OAAOA,KAAK;EAErD,IAAIE,IAAI,GAAGF,KAAK,CAACG,MAAM,CAACJ,WAAW,CAAC;EACpC,IAAIG,IAAI,KAAKE,SAAS,EAAE;IACtB,IAAIC,GAAG,GAAGH,IAAI,CAACI,IAAI,CAACN,KAAK,EAAEC,IAAI,IAAI,SAAS,CAAC;IAC7C,IAAI,OAAOI,GAAG,KAAK,QAAQ,EAAE,OAAOA,GAAG;IACvC,MAAM,IAAIE,SAAS,CAAC,8CAA8C,CAAC;EACrE;EACA,OAAO,CAACN,IAAI,KAAK,QAAQ,GAAGO,MAAM,GAAGC,MAAM,EAAET,KAAK,CAAC;AACrD"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers/toPropertyKey.js b/node_modules/@babel/helpers/lib/helpers/toPropertyKey.js new file mode 100644 index 00000000..92493ff1 --- /dev/null +++ b/node_modules/@babel/helpers/lib/helpers/toPropertyKey.js @@ -0,0 +1,13 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = toPropertyKey; +var _toPrimitive = require("./toPrimitive.js"); +function toPropertyKey(arg) { + var key = (0, _toPrimitive.default)(arg, "string"); + return typeof key === "symbol" ? key : String(key); +} + +//# sourceMappingURL=toPropertyKey.js.map diff --git a/node_modules/@babel/helpers/lib/helpers/toPropertyKey.js.map b/node_modules/@babel/helpers/lib/helpers/toPropertyKey.js.map new file mode 100644 index 00000000..bdcdbc23 --- /dev/null +++ b/node_modules/@babel/helpers/lib/helpers/toPropertyKey.js.map @@ -0,0 +1 @@ +{"version":3,"names":["_toPrimitive","require","toPropertyKey","arg","key","toPrimitive","String"],"sources":["../../src/helpers/toPropertyKey.ts"],"sourcesContent":["/* @minVersion 7.1.5 */\n\n// https://tc39.es/ecma262/#sec-topropertykey\n\nimport toPrimitive from \"./toPrimitive.ts\";\n\nexport default function toPropertyKey(arg: unknown) {\n var key = toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n}\n"],"mappings":";;;;;;AAIA,IAAAA,YAAA,GAAAC,OAAA;AAEe,SAASC,aAAaA,CAACC,GAAY,EAAE;EAClD,IAAIC,GAAG,GAAG,IAAAC,oBAAW,EAACF,GAAG,EAAE,QAAQ,CAAC;EACpC,OAAO,OAAOC,GAAG,KAAK,QAAQ,GAAGA,GAAG,GAAGE,MAAM,CAACF,GAAG,CAAC;AACpD"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/helpers/using.js b/node_modules/@babel/helpers/lib/helpers/using.js index 117c28d7..b98a85d9 100644 --- a/node_modules/@babel/helpers/lib/helpers/using.js +++ b/node_modules/@babel/helpers/lib/helpers/using.js @@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", { exports.default = _using; function _using(stack, value, isAwait) { if (value === null || value === void 0) return value; - if (typeof value !== "object") { - throw new TypeError("using declarations can only be used with objects, null, or undefined."); + if (Object(value) !== value) { + throw new TypeError("using declarations can only be used with objects, functions, null, or undefined."); } if (isAwait) { var dispose = value[Symbol.asyncDispose || Symbol.for("Symbol.asyncDispose")]; diff --git a/node_modules/@babel/helpers/lib/helpers/using.js.map b/node_modules/@babel/helpers/lib/helpers/using.js.map index 48be2f96..17296b1f 100644 --- a/node_modules/@babel/helpers/lib/helpers/using.js.map +++ b/node_modules/@babel/helpers/lib/helpers/using.js.map @@ -1 +1 @@ -{"version":3,"names":["_using","stack","value","isAwait","TypeError","dispose","Symbol","asyncDispose","for","push","v","d","a"],"sources":["../../src/helpers/using.js"],"sourcesContent":["/* @minVersion 7.22.0 */\n\nexport default function _using(stack, value, isAwait) {\n if (value === null || value === void 0) return value;\n if (typeof value !== \"object\") {\n throw new TypeError(\n \"using declarations can only be used with objects, null, or undefined.\"\n );\n }\n // core-js-pure uses Symbol.for for polyfilling well-known symbols\n if (isAwait) {\n var dispose =\n value[Symbol.asyncDispose || Symbol.for(\"Symbol.asyncDispose\")];\n }\n if (dispose === null || dispose === void 0) {\n dispose = value[Symbol.dispose || Symbol.for(\"Symbol.dispose\")];\n }\n if (typeof dispose !== \"function\") {\n throw new TypeError(`Property [Symbol.dispose] is not a function.`);\n }\n stack.push({ v: value, d: dispose, a: isAwait });\n return value;\n}\n"],"mappings":";;;;;;AAEe,SAASA,MAAMA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACpD,IAAID,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,KAAK,CAAC,EAAE,OAAOA,KAAK;EACpD,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,MAAM,IAAIE,SAAS,CACjB,uEACF,CAAC;EACH;EAEA,IAAID,OAAO,EAAE;IACX,IAAIE,OAAO,GACTH,KAAK,CAACI,MAAM,CAACC,YAAY,IAAID,MAAM,CAACE,GAAG,CAAC,qBAAqB,CAAC,CAAC;EACnE;EACA,IAAIH,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK,KAAK,CAAC,EAAE;IAC1CA,OAAO,GAAGH,KAAK,CAACI,MAAM,CAACD,OAAO,IAAIC,MAAM,CAACE,GAAG,CAAC,gBAAgB,CAAC,CAAC;EACjE;EACA,IAAI,OAAOH,OAAO,KAAK,UAAU,EAAE;IACjC,MAAM,IAAID,SAAS,CAAE,8CAA6C,CAAC;EACrE;EACAH,KAAK,CAACQ,IAAI,CAAC;IAAEC,CAAC,EAAER,KAAK;IAAES,CAAC,EAAEN,OAAO;IAAEO,CAAC,EAAET;EAAQ,CAAC,CAAC;EAChD,OAAOD,KAAK;AACd"}
\ No newline at end of file +{"version":3,"names":["_using","stack","value","isAwait","Object","TypeError","dispose","Symbol","asyncDispose","for","push","v","d","a"],"sources":["../../src/helpers/using.js"],"sourcesContent":["/* @minVersion 7.22.0 */\n\nexport default function _using(stack, value, isAwait) {\n if (value === null || value === void 0) return value;\n if (Object(value) !== value) {\n throw new TypeError(\n \"using declarations can only be used with objects, functions, null, or undefined.\"\n );\n }\n // core-js-pure uses Symbol.for for polyfilling well-known symbols\n if (isAwait) {\n var dispose =\n value[Symbol.asyncDispose || Symbol.for(\"Symbol.asyncDispose\")];\n }\n if (dispose === null || dispose === void 0) {\n dispose = value[Symbol.dispose || Symbol.for(\"Symbol.dispose\")];\n }\n if (typeof dispose !== \"function\") {\n throw new TypeError(`Property [Symbol.dispose] is not a function.`);\n }\n stack.push({ v: value, d: dispose, a: isAwait });\n return value;\n}\n"],"mappings":";;;;;;AAEe,SAASA,MAAMA,CAACC,KAAK,EAAEC,KAAK,EAAEC,OAAO,EAAE;EACpD,IAAID,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,KAAK,CAAC,EAAE,OAAOA,KAAK;EACpD,IAAIE,MAAM,CAACF,KAAK,CAAC,KAAKA,KAAK,EAAE;IAC3B,MAAM,IAAIG,SAAS,CACjB,kFACF,CAAC;EACH;EAEA,IAAIF,OAAO,EAAE;IACX,IAAIG,OAAO,GACTJ,KAAK,CAACK,MAAM,CAACC,YAAY,IAAID,MAAM,CAACE,GAAG,CAAC,qBAAqB,CAAC,CAAC;EACnE;EACA,IAAIH,OAAO,KAAK,IAAI,IAAIA,OAAO,KAAK,KAAK,CAAC,EAAE;IAC1CA,OAAO,GAAGJ,KAAK,CAACK,MAAM,CAACD,OAAO,IAAIC,MAAM,CAACE,GAAG,CAAC,gBAAgB,CAAC,CAAC;EACjE;EACA,IAAI,OAAOH,OAAO,KAAK,UAAU,EAAE;IACjC,MAAM,IAAID,SAAS,CAAE,8CAA6C,CAAC;EACrE;EACAJ,KAAK,CAACS,IAAI,CAAC;IAAEC,CAAC,EAAET,KAAK;IAAEU,CAAC,EAAEN,OAAO;IAAEO,CAAC,EAAEV;EAAQ,CAAC,CAAC;EAChD,OAAOD,KAAK;AACd"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/lib/index.js b/node_modules/@babel/helpers/lib/index.js index a6e1c96d..711eb5f3 100644 --- a/node_modules/@babel/helpers/lib/index.js +++ b/node_modules/@babel/helpers/lib/index.js @@ -134,6 +134,7 @@ function permuteHelperAST(file, metadata, id, localBindings, getDependency) { }); const toRename = {}; const bindings = new Set(localBindings || []); + if (id.type === "Identifier") bindings.add(id.name); localBindingNames.forEach(name => { let newName = name; while (bindings.has(newName)) newName = "_" + newName; @@ -234,9 +235,7 @@ function ensure(name, newFileClass) { FileClass || (FileClass = newFileClass); loadHelper(name); } -const list = Object.keys(_helpers.default).map(name => name.replace(/^_/, "")); -exports.list = list; -var _default = get; -exports.default = _default; +const list = exports.list = Object.keys(_helpers.default).map(name => name.replace(/^_/, "")); +var _default = exports.default = get; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/helpers/lib/index.js.map b/node_modules/@babel/helpers/lib/index.js.map index d27f5917..7e92d672 100644 --- a/node_modules/@babel/helpers/lib/index.js.map +++ b/node_modules/@babel/helpers/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_traverse","require","_t","_helpers","assignmentExpression","cloneNode","expressionStatement","file","identifier","makePath","path","parts","parentPath","push","key","inList","listKey","reverse","join","FileClass","undefined","getHelperMetadata","globals","Set","localBindingNames","dependencies","Map","exportName","exportPath","exportBindingAssignments","importPaths","importBindingsReferences","dependencyVisitor","ImportDeclaration","child","name","node","source","value","helpers","buildCodeFrameError","get","length","isImportDefaultSpecifier","bindingIdentifier","specifiers","local","set","ExportDefaultDeclaration","decl","isFunctionDeclaration","id","ExportAllDeclaration","ExportNamedDeclaration","Statement","isImportDeclaration","isExportDeclaration","skip","referenceVisitor","Program","bindings","scope","getAllBindings","Object","keys","forEach","has","add","ReferencedIdentifier","binding","getBinding","AssignmentExpression","left","getBindingIdentifiers","isIdentifier","isProgram","traverse","ast","Error","Array","from","permuteHelperAST","metadata","localBindings","getDependency","dependenciesRefs","toRename","newName","type","exp","imps","map","p","impsBindingRefs","replaceWith","assignPath","assign","pushContainer","rename","remove","helperData","create","loadHelper","helper","ReferenceError","code","fn","fakeFile","stop","filename","inputMap","minVersion","build","nodes","program","body","getDependencies","values","ensure","newFileClass","list","replace","exports","_default","default"],"sources":["../src/index.ts"],"sourcesContent":["import type { File } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\nimport traverse from \"@babel/traverse\";\nimport {\n assignmentExpression,\n cloneNode,\n expressionStatement,\n file,\n identifier,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport helpers from \"./helpers.ts\";\n\nfunction makePath(path: NodePath) {\n const parts = [];\n\n for (; path.parentPath; path = path.parentPath) {\n parts.push(path.key);\n if (path.inList) parts.push(path.listKey);\n }\n\n return parts.reverse().join(\".\");\n}\n\nlet FileClass: typeof File | undefined = undefined;\n\ninterface HelperMetadata {\n globals: string[];\n localBindingNames: string[];\n dependencies: Map<t.Identifier, string>;\n exportBindingAssignments: string[];\n exportPath: string;\n exportName: string;\n importBindingsReferences: string[];\n importPaths: string[];\n}\n\n/**\n * Given a file AST for a given helper, get a bunch of metadata about it so that Babel can quickly render\n * the helper is whatever context it is needed in.\n */\nfunction getHelperMetadata(file: File): HelperMetadata {\n const globals = new Set<string>();\n const localBindingNames = new Set<string>();\n // Maps imported identifier -> helper name\n const dependencies = new Map<t.Identifier, string>();\n\n let exportName: string | undefined;\n let exportPath: string | undefined;\n const exportBindingAssignments: string[] = [];\n const importPaths: string[] = [];\n const importBindingsReferences: string[] = [];\n\n const dependencyVisitor: Visitor = {\n ImportDeclaration(child) {\n const name = child.node.source.value;\n if (!helpers[name]) {\n throw child.buildCodeFrameError(`Unknown helper ${name}`);\n }\n if (\n child.get(\"specifiers\").length !== 1 ||\n // @ts-expect-error isImportDefaultSpecifier does not work with NodePath union\n !child.get(\"specifiers.0\").isImportDefaultSpecifier()\n ) {\n throw child.buildCodeFrameError(\n \"Helpers can only import a default value\",\n );\n }\n const bindingIdentifier = child.node.specifiers[0].local;\n dependencies.set(bindingIdentifier, name);\n importPaths.push(makePath(child));\n },\n ExportDefaultDeclaration(child) {\n const decl = child.get(\"declaration\");\n\n if (!decl.isFunctionDeclaration() || !decl.node.id) {\n throw decl.buildCodeFrameError(\n \"Helpers can only export named function declarations\",\n );\n }\n\n exportName = decl.node.id.name;\n exportPath = makePath(child);\n },\n ExportAllDeclaration(child) {\n throw child.buildCodeFrameError(\"Helpers can only export default\");\n },\n ExportNamedDeclaration(child) {\n throw child.buildCodeFrameError(\"Helpers can only export default\");\n },\n Statement(child) {\n if (child.isImportDeclaration() || child.isExportDeclaration()) return;\n\n child.skip();\n },\n };\n\n const referenceVisitor: Visitor = {\n Program(path) {\n const bindings = path.scope.getAllBindings();\n\n Object.keys(bindings).forEach(name => {\n if (name === exportName) return;\n if (dependencies.has(bindings[name].identifier)) return;\n\n localBindingNames.add(name);\n });\n },\n ReferencedIdentifier(child) {\n const name = child.node.name;\n const binding = child.scope.getBinding(name);\n if (!binding) {\n globals.add(name);\n } else if (dependencies.has(binding.identifier)) {\n importBindingsReferences.push(makePath(child));\n }\n },\n AssignmentExpression(child) {\n const left = child.get(\"left\");\n\n if (!(exportName in left.getBindingIdentifiers())) return;\n\n if (!left.isIdentifier()) {\n throw left.buildCodeFrameError(\n \"Only simple assignments to exports are allowed in helpers\",\n );\n }\n\n const binding = child.scope.getBinding(exportName);\n\n if (binding?.scope.path.isProgram()) {\n exportBindingAssignments.push(makePath(child));\n }\n },\n };\n\n traverse(file.ast, dependencyVisitor, file.scope);\n traverse(file.ast, referenceVisitor, file.scope);\n\n if (!exportPath) throw new Error(\"Helpers must have a default export.\");\n\n // Process these in reverse so that mutating the references does not invalidate any later paths in\n // the list.\n exportBindingAssignments.reverse();\n\n return {\n globals: Array.from(globals),\n localBindingNames: Array.from(localBindingNames),\n dependencies,\n exportBindingAssignments,\n exportPath,\n exportName,\n importBindingsReferences,\n importPaths,\n };\n}\n\ntype GetDependency = (name: string) => t.Expression;\n\n/**\n * Given a helper AST and information about how it will be used, update the AST to match the usage.\n */\nfunction permuteHelperAST(\n file: File,\n metadata: HelperMetadata,\n id?: t.Identifier | t.MemberExpression,\n localBindings?: string[],\n getDependency?: GetDependency,\n) {\n if (localBindings && !id) {\n throw new Error(\"Unexpected local bindings for module-based helpers.\");\n }\n\n if (!id) return;\n\n const {\n localBindingNames,\n dependencies,\n exportBindingAssignments,\n exportPath,\n exportName,\n importBindingsReferences,\n importPaths,\n } = metadata;\n\n const dependenciesRefs: Record<string, t.Expression> = {};\n dependencies.forEach((name, id) => {\n dependenciesRefs[id.name] =\n (typeof getDependency === \"function\" && getDependency(name)) || id;\n });\n\n const toRename: Record<string, string> = {};\n const bindings = new Set(localBindings || []);\n localBindingNames.forEach(name => {\n let newName = name;\n while (bindings.has(newName)) newName = \"_\" + newName;\n\n if (newName !== name) toRename[name] = newName;\n });\n\n if (id.type === \"Identifier\" && exportName !== id.name) {\n toRename[exportName] = id.name;\n }\n\n const { path } = file;\n\n // We need to compute these in advance because removing nodes would\n // invalidate the paths.\n const exp: NodePath<t.ExportDefaultDeclaration> = path.get(exportPath);\n const imps: NodePath<t.ImportDeclaration>[] = importPaths.map(p =>\n path.get(p),\n );\n const impsBindingRefs: NodePath<t.Identifier>[] =\n importBindingsReferences.map(p => path.get(p));\n\n // We assert that this is a FunctionDeclaration in dependencyVisitor.\n const decl = exp.get(\"declaration\") as NodePath<t.FunctionDeclaration>;\n\n if (id.type === \"Identifier\") {\n exp.replaceWith(decl);\n } else if (id.type === \"MemberExpression\") {\n exportBindingAssignments.forEach(assignPath => {\n const assign: NodePath<t.Expression> = path.get(assignPath);\n assign.replaceWith(assignmentExpression(\"=\", id, assign.node));\n });\n exp.replaceWith(decl);\n path.pushContainer(\n \"body\",\n expressionStatement(\n assignmentExpression(\"=\", id, identifier(exportName)),\n ),\n );\n } else {\n throw new Error(\"Unexpected helper format.\");\n }\n\n Object.keys(toRename).forEach(name => {\n path.scope.rename(name, toRename[name]);\n });\n\n for (const path of imps) path.remove();\n for (const path of impsBindingRefs) {\n const node = cloneNode(dependenciesRefs[path.node.name]);\n path.replaceWith(node);\n }\n}\n\ninterface HelperData {\n build: (\n getDependency: GetDependency,\n id: t.Identifier | t.MemberExpression,\n localBindings: string[],\n ) => {\n nodes: t.Program[\"body\"];\n globals: string[];\n };\n minVersion: string;\n getDependencies: () => string[];\n}\n\nconst helperData: Record<string, HelperData> = Object.create(null);\nfunction loadHelper(name: string) {\n if (!helperData[name]) {\n const helper = helpers[name];\n if (!helper) {\n throw Object.assign(new ReferenceError(`Unknown helper ${name}`), {\n code: \"BABEL_HELPER_UNKNOWN\",\n helper: name,\n });\n }\n\n const fn = (): File => {\n if (!process.env.BABEL_8_BREAKING) {\n if (!FileClass) {\n const fakeFile = { ast: file(helper.ast()), path: null } as File;\n traverse(fakeFile.ast, {\n Program: path => (fakeFile.path = path).stop(),\n });\n return fakeFile;\n }\n }\n return new FileClass(\n { filename: `babel-helper://${name}` },\n {\n ast: file(helper.ast()),\n code: \"[internal Babel helper code]\",\n inputMap: null,\n },\n );\n };\n\n // We compute the helper metadata lazily, so that we skip that\n // work if we only need the `.minVersion` (for example because\n // of a call to `.availableHelper` when `@babel/runtime`).\n let metadata: HelperMetadata | null = null;\n\n helperData[name] = {\n minVersion: helper.minVersion,\n build(getDependency, id, localBindings) {\n const file = fn();\n metadata ||= getHelperMetadata(file);\n permuteHelperAST(file, metadata, id, localBindings, getDependency);\n\n return {\n nodes: file.ast.program.body,\n globals: metadata.globals,\n };\n },\n getDependencies() {\n metadata ||= getHelperMetadata(fn());\n return Array.from(metadata.dependencies.values());\n },\n };\n }\n\n return helperData[name];\n}\n\nexport function get(\n name: string,\n getDependency?: GetDependency,\n id?: t.Identifier | t.MemberExpression,\n localBindings?: string[],\n) {\n return loadHelper(name).build(getDependency, id, localBindings);\n}\n\nexport function minVersion(name: string) {\n return loadHelper(name).minVersion;\n}\n\nexport function getDependencies(name: string): ReadonlyArray<string> {\n return loadHelper(name).getDependencies();\n}\n\nexport function ensure(name: string, newFileClass: typeof File) {\n // We inject the File class here rather than importing it to avoid\n // circular dependencies between @babel/core and @babel/helpers.\n FileClass ||= newFileClass;\n\n loadHelper(name);\n}\n\nexport const list = Object.keys(helpers).map(name => name.replace(/^_/, \"\"));\n\nexport default get;\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_traverse","require","_t","_helpers","assignmentExpression","cloneNode","expressionStatement","file","identifier","makePath","path","parts","parentPath","push","key","inList","listKey","reverse","join","FileClass","undefined","getHelperMetadata","globals","Set","localBindingNames","dependencies","Map","exportName","exportPath","exportBindingAssignments","importPaths","importBindingsReferences","dependencyVisitor","ImportDeclaration","child","name","node","source","value","helpers","buildCodeFrameError","get","length","isImportDefaultSpecifier","bindingIdentifier","specifiers","local","set","ExportDefaultDeclaration","decl","isFunctionDeclaration","id","ExportAllDeclaration","ExportNamedDeclaration","Statement","isImportDeclaration","isExportDeclaration","skip","referenceVisitor","Program","bindings","scope","getAllBindings","Object","keys","forEach","has","add","ReferencedIdentifier","binding","getBinding","AssignmentExpression","left","getBindingIdentifiers","isIdentifier","isProgram","traverse","ast","Error","Array","from","permuteHelperAST","metadata","localBindings","getDependency","dependenciesRefs","toRename","type","newName","exp","imps","map","p","impsBindingRefs","replaceWith","assignPath","assign","pushContainer","rename","remove","helperData","create","loadHelper","helper","ReferenceError","code","fn","fakeFile","stop","filename","inputMap","minVersion","build","nodes","program","body","getDependencies","values","ensure","newFileClass","list","exports","replace","_default","default"],"sources":["../src/index.ts"],"sourcesContent":["import type { File } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\nimport traverse from \"@babel/traverse\";\nimport {\n assignmentExpression,\n cloneNode,\n expressionStatement,\n file,\n identifier,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport helpers from \"./helpers.ts\";\n\nfunction makePath(path: NodePath) {\n const parts = [];\n\n for (; path.parentPath; path = path.parentPath) {\n parts.push(path.key);\n if (path.inList) parts.push(path.listKey);\n }\n\n return parts.reverse().join(\".\");\n}\n\nlet FileClass: typeof File | undefined = undefined;\n\ninterface HelperMetadata {\n globals: string[];\n localBindingNames: string[];\n dependencies: Map<t.Identifier, string>;\n exportBindingAssignments: string[];\n exportPath: string;\n exportName: string;\n importBindingsReferences: string[];\n importPaths: string[];\n}\n\n/**\n * Given a file AST for a given helper, get a bunch of metadata about it so that Babel can quickly render\n * the helper is whatever context it is needed in.\n */\nfunction getHelperMetadata(file: File): HelperMetadata {\n const globals = new Set<string>();\n const localBindingNames = new Set<string>();\n // Maps imported identifier -> helper name\n const dependencies = new Map<t.Identifier, string>();\n\n let exportName: string | undefined;\n let exportPath: string | undefined;\n const exportBindingAssignments: string[] = [];\n const importPaths: string[] = [];\n const importBindingsReferences: string[] = [];\n\n const dependencyVisitor: Visitor = {\n ImportDeclaration(child) {\n const name = child.node.source.value;\n if (!helpers[name]) {\n throw child.buildCodeFrameError(`Unknown helper ${name}`);\n }\n if (\n child.get(\"specifiers\").length !== 1 ||\n // @ts-expect-error isImportDefaultSpecifier does not work with NodePath union\n !child.get(\"specifiers.0\").isImportDefaultSpecifier()\n ) {\n throw child.buildCodeFrameError(\n \"Helpers can only import a default value\",\n );\n }\n const bindingIdentifier = child.node.specifiers[0].local;\n dependencies.set(bindingIdentifier, name);\n importPaths.push(makePath(child));\n },\n ExportDefaultDeclaration(child) {\n const decl = child.get(\"declaration\");\n\n if (!decl.isFunctionDeclaration() || !decl.node.id) {\n throw decl.buildCodeFrameError(\n \"Helpers can only export named function declarations\",\n );\n }\n\n exportName = decl.node.id.name;\n exportPath = makePath(child);\n },\n ExportAllDeclaration(child) {\n throw child.buildCodeFrameError(\"Helpers can only export default\");\n },\n ExportNamedDeclaration(child) {\n throw child.buildCodeFrameError(\"Helpers can only export default\");\n },\n Statement(child) {\n if (child.isImportDeclaration() || child.isExportDeclaration()) return;\n\n child.skip();\n },\n };\n\n const referenceVisitor: Visitor = {\n Program(path) {\n const bindings = path.scope.getAllBindings();\n\n Object.keys(bindings).forEach(name => {\n if (name === exportName) return;\n if (dependencies.has(bindings[name].identifier)) return;\n\n localBindingNames.add(name);\n });\n },\n ReferencedIdentifier(child) {\n const name = child.node.name;\n const binding = child.scope.getBinding(name);\n if (!binding) {\n globals.add(name);\n } else if (dependencies.has(binding.identifier)) {\n importBindingsReferences.push(makePath(child));\n }\n },\n AssignmentExpression(child) {\n const left = child.get(\"left\");\n\n if (!(exportName in left.getBindingIdentifiers())) return;\n\n if (!left.isIdentifier()) {\n throw left.buildCodeFrameError(\n \"Only simple assignments to exports are allowed in helpers\",\n );\n }\n\n const binding = child.scope.getBinding(exportName);\n\n if (binding?.scope.path.isProgram()) {\n exportBindingAssignments.push(makePath(child));\n }\n },\n };\n\n traverse(file.ast, dependencyVisitor, file.scope);\n traverse(file.ast, referenceVisitor, file.scope);\n\n if (!exportPath) throw new Error(\"Helpers must have a default export.\");\n\n // Process these in reverse so that mutating the references does not invalidate any later paths in\n // the list.\n exportBindingAssignments.reverse();\n\n return {\n globals: Array.from(globals),\n localBindingNames: Array.from(localBindingNames),\n dependencies,\n exportBindingAssignments,\n exportPath,\n exportName,\n importBindingsReferences,\n importPaths,\n };\n}\n\ntype GetDependency = (name: string) => t.Expression;\n\n/**\n * Given a helper AST and information about how it will be used, update the AST to match the usage.\n */\nfunction permuteHelperAST(\n file: File,\n metadata: HelperMetadata,\n id?: t.Identifier | t.MemberExpression,\n localBindings?: string[],\n getDependency?: GetDependency,\n) {\n if (localBindings && !id) {\n throw new Error(\"Unexpected local bindings for module-based helpers.\");\n }\n\n if (!id) return;\n\n const {\n localBindingNames,\n dependencies,\n exportBindingAssignments,\n exportPath,\n exportName,\n importBindingsReferences,\n importPaths,\n } = metadata;\n\n const dependenciesRefs: Record<string, t.Expression> = {};\n dependencies.forEach((name, id) => {\n dependenciesRefs[id.name] =\n (typeof getDependency === \"function\" && getDependency(name)) || id;\n });\n\n const toRename: Record<string, string> = {};\n const bindings = new Set(localBindings || []);\n if (id.type === \"Identifier\") bindings.add(id.name);\n localBindingNames.forEach(name => {\n let newName = name;\n while (bindings.has(newName)) newName = \"_\" + newName;\n\n if (newName !== name) toRename[name] = newName;\n });\n\n if (id.type === \"Identifier\" && exportName !== id.name) {\n toRename[exportName] = id.name;\n }\n\n const { path } = file;\n\n // We need to compute these in advance because removing nodes would\n // invalidate the paths.\n const exp: NodePath<t.ExportDefaultDeclaration> = path.get(exportPath);\n const imps: NodePath<t.ImportDeclaration>[] = importPaths.map(p =>\n path.get(p),\n );\n const impsBindingRefs: NodePath<t.Identifier>[] =\n importBindingsReferences.map(p => path.get(p));\n\n // We assert that this is a FunctionDeclaration in dependencyVisitor.\n const decl = exp.get(\"declaration\") as NodePath<t.FunctionDeclaration>;\n\n if (id.type === \"Identifier\") {\n exp.replaceWith(decl);\n } else if (id.type === \"MemberExpression\") {\n exportBindingAssignments.forEach(assignPath => {\n const assign: NodePath<t.Expression> = path.get(assignPath);\n assign.replaceWith(assignmentExpression(\"=\", id, assign.node));\n });\n exp.replaceWith(decl);\n path.pushContainer(\n \"body\",\n expressionStatement(\n assignmentExpression(\"=\", id, identifier(exportName)),\n ),\n );\n } else {\n throw new Error(\"Unexpected helper format.\");\n }\n\n Object.keys(toRename).forEach(name => {\n path.scope.rename(name, toRename[name]);\n });\n\n for (const path of imps) path.remove();\n for (const path of impsBindingRefs) {\n const node = cloneNode(dependenciesRefs[path.node.name]);\n path.replaceWith(node);\n }\n}\n\ninterface HelperData {\n build: (\n getDependency: GetDependency,\n id: t.Identifier | t.MemberExpression,\n localBindings: string[],\n ) => {\n nodes: t.Program[\"body\"];\n globals: string[];\n };\n minVersion: string;\n getDependencies: () => string[];\n}\n\nconst helperData: Record<string, HelperData> = Object.create(null);\nfunction loadHelper(name: string) {\n if (!helperData[name]) {\n const helper = helpers[name];\n if (!helper) {\n throw Object.assign(new ReferenceError(`Unknown helper ${name}`), {\n code: \"BABEL_HELPER_UNKNOWN\",\n helper: name,\n });\n }\n\n const fn = (): File => {\n if (!process.env.BABEL_8_BREAKING) {\n if (!FileClass) {\n const fakeFile = { ast: file(helper.ast()), path: null } as File;\n traverse(fakeFile.ast, {\n Program: path => (fakeFile.path = path).stop(),\n });\n return fakeFile;\n }\n }\n return new FileClass(\n { filename: `babel-helper://${name}` },\n {\n ast: file(helper.ast()),\n code: \"[internal Babel helper code]\",\n inputMap: null,\n },\n );\n };\n\n // We compute the helper metadata lazily, so that we skip that\n // work if we only need the `.minVersion` (for example because\n // of a call to `.availableHelper` when `@babel/runtime`).\n let metadata: HelperMetadata | null = null;\n\n helperData[name] = {\n minVersion: helper.minVersion,\n build(getDependency, id, localBindings) {\n const file = fn();\n metadata ||= getHelperMetadata(file);\n permuteHelperAST(file, metadata, id, localBindings, getDependency);\n\n return {\n nodes: file.ast.program.body,\n globals: metadata.globals,\n };\n },\n getDependencies() {\n metadata ||= getHelperMetadata(fn());\n return Array.from(metadata.dependencies.values());\n },\n };\n }\n\n return helperData[name];\n}\n\nexport function get(\n name: string,\n getDependency?: GetDependency,\n id?: t.Identifier | t.MemberExpression,\n localBindings?: string[],\n) {\n return loadHelper(name).build(getDependency, id, localBindings);\n}\n\nexport function minVersion(name: string) {\n return loadHelper(name).minVersion;\n}\n\nexport function getDependencies(name: string): ReadonlyArray<string> {\n return loadHelper(name).getDependencies();\n}\n\nexport function ensure(name: string, newFileClass: typeof File) {\n // We inject the File class here rather than importing it to avoid\n // circular dependencies between @babel/core and @babel/helpers.\n FileClass ||= newFileClass;\n\n loadHelper(name);\n}\n\nexport const list = Object.keys(helpers).map(name => name.replace(/^_/, \"\"));\n\nexport default get;\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/helpers/package.json b/node_modules/@babel/helpers/package.json index 794abfc0..05118b9f 100644 --- a/node_modules/@babel/helpers/package.json +++ b/node_modules/@babel/helpers/package.json @@ -1,6 +1,6 @@ { "name": "@babel/helpers", - "version": "7.23.2", + "version": "7.23.6", "description": "Collection of helper functions used by Babel transforms.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-helpers", @@ -16,15 +16,14 @@ "main": "./lib/index.js", "dependencies": { "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.2", - "@babel/types": "^7.23.0" + "@babel/traverse": "^7.23.6", + "@babel/types": "^7.23.6" }, "devDependencies": { - "@babel/generator": "^7.23.0", + "@babel/generator": "^7.23.6", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/parser": "^7.23.0", - "regenerator-runtime": "^0.14.0", - "terser": "^5.19.2" + "@babel/parser": "^7.23.6", + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/helpers/scripts/generate-helpers.js b/node_modules/@babel/helpers/scripts/generate-helpers.js index e2a31886..b9d1e5f1 100644 --- a/node_modules/@babel/helpers/scripts/generate-helpers.js +++ b/node_modules/@babel/helpers/scripts/generate-helpers.js @@ -1,7 +1,11 @@ +/* eslint-disable import/no-extraneous-dependencies */ import fs from "fs"; import { join } from "path"; import { URL, fileURLToPath } from "url"; -import { minify } from "terser"; // eslint-disable-line import/no-extraneous-dependencies +import { minify } from "terser"; +import { transformSync } from "@babel/core"; +import presetTypescript from "@babel/preset-typescript"; +import { gzipSync } from "zlib"; const HELPERS_FOLDER = new URL("../src/helpers", import.meta.url); const IGNORED_FILES = new Set(["package.json"]); @@ -30,14 +34,16 @@ export default Object.freeze({ const [helperName] = file.split("."); + const isTs = file.endsWith(".ts"); + const filePath = join(fileURLToPath(HELPERS_FOLDER), file); - if (!file.endsWith(".js")) { + if (!file.endsWith(".js") && !isTs) { console.error("ignoring", filePath); continue; } - const fileContents = await fs.promises.readFile(filePath, "utf8"); - const minVersionMatch = fileContents.match( + let code = await fs.promises.readFile(filePath, "utf8"); + const minVersionMatch = code.match( /^\s*\/\*\s*@minVersion\s+(?<minVersion>\S+)\s*\*\/\s*$/m ); if (!minVersionMatch) { @@ -45,16 +51,64 @@ export default Object.freeze({ } const { minVersion } = minVersionMatch.groups; - const source = await minify(fileContents, { - mangle: { keep_fnames: true }, - // The _typeof helper has a custom directive that we must keep - compress: { directives: false }, - }); + const mangleFns = code.includes("@mangleFns"); + const noMangleFns = []; + + code = transformSync(code, { + configFile: false, + babelrc: false, + filename: filePath, + presets: [ + [ + presetTypescript, + { + onlyRemoveTypeImports: true, + optimizeConstEnums: true, + }, + ], + ], + plugins: [ + /** + * @type {import("@babel/core").PluginObj} + */ + { + visitor: { + ImportDeclaration(path) { + const source = path.node.source; + source.value = source.value + .replace(/\.ts$/, "") + .replace(/^\.\//, ""); + }, + FunctionDeclaration(path) { + if ( + mangleFns && + path.node.leadingComments?.find(c => + c.value.includes("@no-mangle") + ) + ) { + const name = path.node.id.name; + if (name) noMangleFns.push(name); + } + }, + }, + }, + ], + }).code; + code = ( + await minify(code, { + mangle: { + keep_fnames: mangleFns ? new RegExp(noMangleFns.join("|")) : true, + }, + // The _typeof helper has a custom directive that we must keep + compress: { directives: false, passes: 10 }, + }) + ).code; output += `\ + // size: ${code.length}, gzip size: ${gzipSync(code).length} ${JSON.stringify(helperName)}: helper( ${JSON.stringify(minVersion)}, - ${JSON.stringify(source.code)}, + ${JSON.stringify(code)}, ), `; } diff --git a/node_modules/@babel/highlight/lib/index.js b/node_modules/@babel/highlight/lib/index.js index cb718afd..a45bc5a8 100644 --- a/node_modules/@babel/highlight/lib/index.js +++ b/node_modules/@babel/highlight/lib/index.js @@ -8,8 +8,8 @@ exports.shouldHighlight = shouldHighlight; var _jsTokens = require("js-tokens"); var _helperValidatorIdentifier = require("@babel/helper-validator-identifier"); var _chalk = _interopRequireWildcard(require("chalk"), true); -function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } -function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } +function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); } +function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); function getDefs(chalk) { return { diff --git a/node_modules/@babel/highlight/lib/index.js.map b/node_modules/@babel/highlight/lib/index.js.map index 08a23774..5a178807 100644 --- a/node_modules/@babel/highlight/lib/index.js.map +++ b/node_modules/@babel/highlight/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_jsTokens","require","_helperValidatorIdentifier","_chalk","_interopRequireWildcard","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","sometimesKeywords","Set","getDefs","chalk","keyword","cyan","capitalized","yellow","jsxIdentifier","punctuator","number","magenta","string","green","regex","comment","grey","invalid","white","bgRed","bold","NEWLINE","BRACKET","tokenize","JSX_TAG","getTokenType","token","offset","text","type","isKeyword","value","isStrictReservedWord","test","slice","toLowerCase","match","jsTokens","exec","matchToToken","index","highlightTokens","defs","highlighted","colorize","split","map","str","join","shouldHighlight","options","level","forceColor","chalkWithForcedColor","undefined","getChalk","_chalkWithForcedColor","constructor","enabled","exports","highlight","code"],"sources":["../src/index.ts"],"sourcesContent":["/// <reference path=\"../../../lib/third-party-libs.d.ts\" />\n\nimport type { Token as JSToken, JSXToken } from \"js-tokens\";\nimport jsTokens from \"js-tokens\";\n\nimport {\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nimport chalk, { Chalk as ChalkClass, type ChalkInstance as Chalk } from \"chalk\";\n\n/**\n * Names that are always allowed as identifiers, but also appear as keywords\n * within certain syntactic productions.\n *\n * https://tc39.es/ecma262/#sec-keywords-and-reserved-words\n *\n * `target` has been omitted since it is very likely going to be a false\n * positive.\n */\nconst sometimesKeywords = new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\n\ntype InternalTokenType =\n | \"keyword\"\n | \"capitalized\"\n | \"jsxIdentifier\"\n | \"punctuator\"\n | \"number\"\n | \"string\"\n | \"regex\"\n | \"comment\"\n | \"invalid\";\n\ntype Token = {\n type: InternalTokenType | \"uncolored\";\n value: string;\n};\n/**\n * Chalk styles for token types.\n */\nfunction getDefs(chalk: Chalk): Record<InternalTokenType, Chalk> {\n return {\n keyword: chalk.cyan,\n capitalized: chalk.yellow,\n jsxIdentifier: chalk.yellow,\n punctuator: chalk.yellow,\n number: chalk.magenta,\n string: chalk.green,\n regex: chalk.magenta,\n comment: chalk.grey,\n invalid: chalk.white.bgRed.bold,\n };\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * RegExp to test for the three types of brackets.\n */\nconst BRACKET = /^[()[\\]{}]$/;\n\nlet tokenize: (\n text: string,\n) => Generator<{ type: InternalTokenType | \"uncolored\"; value: string }>;\n\nif (process.env.BABEL_8_BREAKING) {\n /**\n * Get the type of token, specifying punctuator type.\n */\n const getTokenType = function (\n token: JSToken | JSXToken,\n ): InternalTokenType | \"uncolored\" {\n if (token.type === \"IdentifierName\") {\n if (\n isKeyword(token.value) ||\n isStrictReservedWord(token.value, true) ||\n sometimesKeywords.has(token.value)\n ) {\n return \"keyword\";\n }\n\n if (token.value[0] !== token.value[0].toLowerCase()) {\n return \"capitalized\";\n }\n }\n\n if (token.type === \"Punctuator\" && BRACKET.test(token.value)) {\n return \"uncolored\";\n }\n\n if (token.type === \"Invalid\" && token.value === \"@\") {\n return \"punctuator\";\n }\n\n switch (token.type) {\n case \"NumericLiteral\":\n return \"number\";\n\n case \"StringLiteral\":\n case \"JSXString\":\n case \"NoSubstitutionTemplate\":\n return \"string\";\n\n case \"RegularExpressionLiteral\":\n return \"regex\";\n\n case \"Punctuator\":\n case \"JSXPunctuator\":\n return \"punctuator\";\n\n case \"MultiLineComment\":\n case \"SingleLineComment\":\n return \"comment\";\n\n case \"Invalid\":\n case \"JSXInvalid\":\n return \"invalid\";\n\n case \"JSXIdentifier\":\n return \"jsxIdentifier\";\n\n default:\n return \"uncolored\";\n }\n };\n\n /**\n * Turn a string of JS into an array of objects.\n */\n tokenize = function* (text: string): Generator<Token> {\n for (const token of jsTokens(text, { jsx: true })) {\n switch (token.type) {\n case \"TemplateHead\":\n yield { type: \"string\", value: token.value.slice(0, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateMiddle\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateTail\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1) };\n break;\n\n default:\n yield {\n type: getTokenType(token),\n value: token.value,\n };\n }\n }\n };\n} else {\n /**\n * RegExp to test for what seems to be a JSX tag name.\n */\n const JSX_TAG = /^[a-z][\\w-]*$/i;\n\n // The token here is defined in js-tokens@4. However we don't bother\n // typing it since the whole block will be removed in Babel 8\n const getTokenType = function (token: any, offset: number, text: string) {\n if (token.type === \"name\") {\n if (\n isKeyword(token.value) ||\n isStrictReservedWord(token.value, true) ||\n sometimesKeywords.has(token.value)\n ) {\n return \"keyword\";\n }\n\n if (\n JSX_TAG.test(token.value) &&\n (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) == \"</\")\n ) {\n return \"jsxIdentifier\";\n }\n\n if (token.value[0] !== token.value[0].toLowerCase()) {\n return \"capitalized\";\n }\n }\n\n if (token.type === \"punctuator\" && BRACKET.test(token.value)) {\n return \"bracket\";\n }\n\n if (\n token.type === \"invalid\" &&\n (token.value === \"@\" || token.value === \"#\")\n ) {\n return \"punctuator\";\n }\n\n return token.type;\n };\n\n tokenize = function* (text: string) {\n let match;\n while ((match = (jsTokens as any).default.exec(text))) {\n const token = (jsTokens as any).matchToToken(match);\n\n yield {\n type: getTokenType(token, match.index, text),\n value: token.value,\n };\n }\n };\n}\n\n/**\n * Highlight `text` using the token definitions in `defs`.\n */\nfunction highlightTokens(defs: Record<string, Chalk>, text: string) {\n let highlighted = \"\";\n\n for (const { type, value } of tokenize(text)) {\n const colorize = defs[type];\n if (colorize) {\n highlighted += value\n .split(NEWLINE)\n .map(str => colorize(str))\n .join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n\n return highlighted;\n}\n\n/**\n * Highlight `text` using the token definitions in `defs`.\n */\n\ntype Options = {\n forceColor?: boolean;\n};\n\n/**\n * Whether the code should be highlighted given the passed options.\n */\nexport function shouldHighlight(options: Options): boolean {\n return chalk.level > 0 || options.forceColor;\n}\n\nlet chalkWithForcedColor: Chalk = undefined;\nfunction getChalk(forceColor: boolean) {\n if (forceColor) {\n chalkWithForcedColor ??= process.env.BABEL_8_BREAKING\n ? new ChalkClass({ level: 1 })\n : // @ts-expect-error .Instance was .constructor in chalk 2\n new chalk.constructor({ enabled: true, level: 1 });\n return chalkWithForcedColor;\n }\n return chalk;\n}\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.getChalk = (options: Options) => getChalk(options.forceColor);\n}\n\n/**\n * Highlight `code`.\n */\nexport default function highlight(code: string, options: Options = {}): string {\n if (code !== \"\" && shouldHighlight(options)) {\n const defs = getDefs(getChalk(options.forceColor));\n return highlightTokens(defs, code);\n } else {\n return code;\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_jsTokens","require","_helperValidatorIdentifier","_chalk","_interopRequireWildcard","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","sometimesKeywords","Set","getDefs","chalk","keyword","cyan","capitalized","yellow","jsxIdentifier","punctuator","number","magenta","string","green","regex","comment","grey","invalid","white","bgRed","bold","NEWLINE","BRACKET","tokenize","JSX_TAG","getTokenType","token","offset","text","type","isKeyword","value","isStrictReservedWord","test","slice","toLowerCase","match","jsTokens","exec","matchToToken","index","highlightTokens","defs","highlighted","colorize","split","map","str","join","shouldHighlight","options","level","forceColor","chalkWithForcedColor","undefined","getChalk","_chalkWithForcedColor","constructor","enabled","exports","highlight","code"],"sources":["../src/index.ts"],"sourcesContent":["/// <reference path=\"../../../lib/third-party-libs.d.ts\" />\n\nimport type { Token as JSToken, JSXToken } from \"js-tokens\";\nimport jsTokens from \"js-tokens\";\n\nimport {\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nimport chalk, { Chalk as ChalkClass, type ChalkInstance as Chalk } from \"chalk\";\n\n/**\n * Names that are always allowed as identifiers, but also appear as keywords\n * within certain syntactic productions.\n *\n * https://tc39.es/ecma262/#sec-keywords-and-reserved-words\n *\n * `target` has been omitted since it is very likely going to be a false\n * positive.\n */\nconst sometimesKeywords = new Set([\"as\", \"async\", \"from\", \"get\", \"of\", \"set\"]);\n\ntype InternalTokenType =\n | \"keyword\"\n | \"capitalized\"\n | \"jsxIdentifier\"\n | \"punctuator\"\n | \"number\"\n | \"string\"\n | \"regex\"\n | \"comment\"\n | \"invalid\";\n\ntype Token = {\n type: InternalTokenType | \"uncolored\";\n value: string;\n};\n/**\n * Chalk styles for token types.\n */\nfunction getDefs(chalk: Chalk): Record<InternalTokenType, Chalk> {\n return {\n keyword: chalk.cyan,\n capitalized: chalk.yellow,\n jsxIdentifier: chalk.yellow,\n punctuator: chalk.yellow,\n number: chalk.magenta,\n string: chalk.green,\n regex: chalk.magenta,\n comment: chalk.grey,\n invalid: chalk.white.bgRed.bold,\n };\n}\n\n/**\n * RegExp to test for newlines in terminal.\n */\nconst NEWLINE = /\\r\\n|[\\n\\r\\u2028\\u2029]/;\n\n/**\n * RegExp to test for the three types of brackets.\n */\nconst BRACKET = /^[()[\\]{}]$/;\n\nlet tokenize: (\n text: string,\n) => Generator<{ type: InternalTokenType | \"uncolored\"; value: string }>;\n\nif (process.env.BABEL_8_BREAKING) {\n /**\n * Get the type of token, specifying punctuator type.\n */\n const getTokenType = function (\n token: JSToken | JSXToken,\n ): InternalTokenType | \"uncolored\" {\n if (token.type === \"IdentifierName\") {\n if (\n isKeyword(token.value) ||\n isStrictReservedWord(token.value, true) ||\n sometimesKeywords.has(token.value)\n ) {\n return \"keyword\";\n }\n\n if (token.value[0] !== token.value[0].toLowerCase()) {\n return \"capitalized\";\n }\n }\n\n if (token.type === \"Punctuator\" && BRACKET.test(token.value)) {\n return \"uncolored\";\n }\n\n if (token.type === \"Invalid\" && token.value === \"@\") {\n return \"punctuator\";\n }\n\n switch (token.type) {\n case \"NumericLiteral\":\n return \"number\";\n\n case \"StringLiteral\":\n case \"JSXString\":\n case \"NoSubstitutionTemplate\":\n return \"string\";\n\n case \"RegularExpressionLiteral\":\n return \"regex\";\n\n case \"Punctuator\":\n case \"JSXPunctuator\":\n return \"punctuator\";\n\n case \"MultiLineComment\":\n case \"SingleLineComment\":\n return \"comment\";\n\n case \"Invalid\":\n case \"JSXInvalid\":\n return \"invalid\";\n\n case \"JSXIdentifier\":\n return \"jsxIdentifier\";\n\n default:\n return \"uncolored\";\n }\n };\n\n /**\n * Turn a string of JS into an array of objects.\n */\n tokenize = function* (text: string): Generator<Token> {\n for (const token of jsTokens(text, { jsx: true })) {\n switch (token.type) {\n case \"TemplateHead\":\n yield { type: \"string\", value: token.value.slice(0, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateMiddle\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1, -2) };\n yield { type: \"punctuator\", value: \"${\" };\n break;\n\n case \"TemplateTail\":\n yield { type: \"punctuator\", value: \"}\" };\n yield { type: \"string\", value: token.value.slice(1) };\n break;\n\n default:\n yield {\n type: getTokenType(token),\n value: token.value,\n };\n }\n }\n };\n} else {\n /**\n * RegExp to test for what seems to be a JSX tag name.\n */\n const JSX_TAG = /^[a-z][\\w-]*$/i;\n\n // The token here is defined in js-tokens@4. However we don't bother\n // typing it since the whole block will be removed in Babel 8\n const getTokenType = function (token: any, offset: number, text: string) {\n if (token.type === \"name\") {\n if (\n isKeyword(token.value) ||\n isStrictReservedWord(token.value, true) ||\n sometimesKeywords.has(token.value)\n ) {\n return \"keyword\";\n }\n\n if (\n JSX_TAG.test(token.value) &&\n (text[offset - 1] === \"<\" || text.slice(offset - 2, offset) == \"</\")\n ) {\n return \"jsxIdentifier\";\n }\n\n if (token.value[0] !== token.value[0].toLowerCase()) {\n return \"capitalized\";\n }\n }\n\n if (token.type === \"punctuator\" && BRACKET.test(token.value)) {\n return \"bracket\";\n }\n\n if (\n token.type === \"invalid\" &&\n (token.value === \"@\" || token.value === \"#\")\n ) {\n return \"punctuator\";\n }\n\n return token.type;\n };\n\n tokenize = function* (text: string) {\n let match;\n while ((match = (jsTokens as any).default.exec(text))) {\n const token = (jsTokens as any).matchToToken(match);\n\n yield {\n type: getTokenType(token, match.index, text),\n value: token.value,\n };\n }\n };\n}\n\n/**\n * Highlight `text` using the token definitions in `defs`.\n */\nfunction highlightTokens(defs: Record<string, Chalk>, text: string) {\n let highlighted = \"\";\n\n for (const { type, value } of tokenize(text)) {\n const colorize = defs[type];\n if (colorize) {\n highlighted += value\n .split(NEWLINE)\n .map(str => colorize(str))\n .join(\"\\n\");\n } else {\n highlighted += value;\n }\n }\n\n return highlighted;\n}\n\n/**\n * Highlight `text` using the token definitions in `defs`.\n */\n\ntype Options = {\n forceColor?: boolean;\n};\n\n/**\n * Whether the code should be highlighted given the passed options.\n */\nexport function shouldHighlight(options: Options): boolean {\n return chalk.level > 0 || options.forceColor;\n}\n\nlet chalkWithForcedColor: Chalk = undefined;\nfunction getChalk(forceColor: boolean) {\n if (forceColor) {\n chalkWithForcedColor ??= process.env.BABEL_8_BREAKING\n ? new ChalkClass({ level: 1 })\n : // @ts-expect-error .Instance was .constructor in chalk 2\n new chalk.constructor({ enabled: true, level: 1 });\n return chalkWithForcedColor;\n }\n return chalk;\n}\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.getChalk = (options: Options) => getChalk(options.forceColor);\n}\n\n/**\n * Highlight `code`.\n */\nexport default function highlight(code: string, options: Options = {}): string {\n if (code !== \"\" && shouldHighlight(options)) {\n const defs = getDefs(getChalk(options.forceColor));\n return highlightTokens(defs, code);\n } else {\n return code;\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/highlight/package.json b/node_modules/@babel/highlight/package.json index d88c9722..640f8366 100644 --- a/node_modules/@babel/highlight/package.json +++ b/node_modules/@babel/highlight/package.json @@ -1,6 +1,6 @@ { "name": "@babel/highlight", - "version": "7.22.20", + "version": "7.23.4", "description": "Syntax highlight JavaScript strings for output in terminals.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-highlight", diff --git a/node_modules/@babel/parser/lib/index.js b/node_modules/@babel/parser/lib/index.js index bcf69004..68ee00ca 100644 --- a/node_modules/@babel/parser/lib/index.js +++ b/node_modules/@babel/parser/lib/index.js @@ -3488,11 +3488,6 @@ function newAsyncArrowScope() { function newExpressionScope() { return new ExpressionScope(); } -const PARAM = 0b0000, - PARAM_YIELD = 0b0001, - PARAM_AWAIT = 0b0010, - PARAM_RETURN = 0b0100, - PARAM_IN = 0b1000; class ProductionParameterHandler { constructor() { this.stacks = []; @@ -3507,20 +3502,20 @@ class ProductionParameterHandler { return this.stacks[this.stacks.length - 1]; } get hasAwait() { - return (this.currentFlags() & PARAM_AWAIT) > 0; + return (this.currentFlags() & 2) > 0; } get hasYield() { - return (this.currentFlags() & PARAM_YIELD) > 0; + return (this.currentFlags() & 1) > 0; } get hasReturn() { - return (this.currentFlags() & PARAM_RETURN) > 0; + return (this.currentFlags() & 4) > 0; } get hasIn() { - return (this.currentFlags() & PARAM_IN) > 0; + return (this.currentFlags() & 8) > 0; } } function functionFlags(isAsync, isGenerator) { - return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0); + return (isAsync ? 2 : 0) | (isGenerator ? 1 : 0); } class UtilParser extends Tokenizer { addExtra(node, key, value, enumerable = true) { @@ -3717,9 +3712,9 @@ class UtilParser extends Tokenizer { }; } enterInitialScopes() { - let paramFlags = PARAM; + let paramFlags = 0; if (this.inModule) { - paramFlags |= PARAM_AWAIT; + paramFlags |= 2; } this.scope.enter(1); this.prodParam.enter(paramFlags); @@ -8762,7 +8757,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { node.body = inner; } else { this.scope.enter(256); - this.prodParam.enter(PARAM); + this.prodParam.enter(0); node.body = this.tsParseModuleBlock(); this.prodParam.exit(); this.scope.exit(); @@ -8780,7 +8775,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { } if (this.match(5)) { this.scope.enter(256); - this.prodParam.enter(PARAM); + this.prodParam.enter(0); node.body = this.tsParseModuleBlock(); this.prodParam.exit(); this.scope.exit(); @@ -8907,7 +8902,7 @@ var typescript = superClass => class TypeScriptParserMixin extends superClass { case "global": if (this.match(5)) { this.scope.enter(256); - this.prodParam.enter(PARAM); + this.prodParam.enter(0); const mod = node; mod.global = true; mod.id = expr; @@ -11338,7 +11333,7 @@ class ExpressionParser extends LValParser { const oldLabels = this.state.labels; this.state.labels = []; if (isAsync) { - this.prodParam.enter(PARAM_AWAIT); + this.prodParam.enter(2); node.body = this.parseBlock(); this.prodParam.exit(); } else { @@ -11902,7 +11897,7 @@ class ExpressionParser extends LValParser { this.scope.enter(2 | 4); let flags = functionFlags(isAsync, false); if (!this.match(5) && this.prodParam.hasIn) { - flags |= PARAM_IN; + flags |= 8; } this.prodParam.enter(flags); this.initFunction(node, isAsync); @@ -11936,7 +11931,7 @@ class ExpressionParser extends LValParser { const oldStrict = this.state.strict; const oldLabels = this.state.labels; this.state.labels = []; - this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN); + this.prodParam.enter(this.prodParam.currentFlags() | 4); node.body = this.parseBlock(true, false, hasStrictModeDirective => { const nonSimple = !this.isSimpleParamList(node.params); if (hasStrictModeDirective && nonSimple) { @@ -12277,9 +12272,9 @@ class ExpressionParser extends LValParser { } allowInAnd(callback) { const flags = this.prodParam.currentFlags(); - const prodParamToSet = PARAM_IN & ~flags; + const prodParamToSet = 8 & ~flags; if (prodParamToSet) { - this.prodParam.enter(flags | PARAM_IN); + this.prodParam.enter(flags | 8); try { return callback(); } finally { @@ -12290,9 +12285,9 @@ class ExpressionParser extends LValParser { } disallowInAnd(callback) { const flags = this.prodParam.currentFlags(); - const prodParamToClear = PARAM_IN & flags; + const prodParamToClear = 8 & flags; if (prodParamToClear) { - this.prodParam.enter(flags & ~PARAM_IN); + this.prodParam.enter(flags & ~8); try { return callback(); } finally { @@ -13207,7 +13202,7 @@ class StatementParser extends ExpressionParser { } body.push(stmt); } - afterBlockParse == null ? void 0 : afterBlockParse.call(this, hasStrictModeDirective); + afterBlockParse == null || afterBlockParse.call(this, hasStrictModeDirective); if (!oldStrict) { this.setStrict(false); } @@ -13583,7 +13578,7 @@ class StatementParser extends ExpressionParser { this.scope.enter(64 | 128 | 16); const oldLabels = this.state.labels; this.state.labels = []; - this.prodParam.enter(PARAM); + this.prodParam.enter(0); const body = member.body = []; this.parseBlockOrModuleBlockBody(body, undefined, false, 8); this.prodParam.exit(); @@ -13655,7 +13650,7 @@ class StatementParser extends ExpressionParser { parseInitializer(node) { this.scope.enter(64 | 16); this.expressionScope.enter(newExpressionScope()); - this.prodParam.enter(PARAM); + this.prodParam.enter(0); node.value = this.eat(29) ? this.parseMaybeAssignAllowIn() : null; this.expressionScope.exit(); this.prodParam.exit(); diff --git a/node_modules/@babel/parser/lib/index.js.map b/node_modules/@babel/parser/lib/index.js.map index daa63dbc..c68cfb7a 100644 --- a/node_modules/@babel/parser/lib/index.js.map +++ b/node_modules/@babel/parser/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/util/location.ts","../src/parse-error/module-errors.ts","../src/parse-error/to-node-description.ts","../src/parse-error/standard-errors.ts","../src/parse-error/strict-mode-errors.ts","../src/parse-error/pipeline-operator-errors.ts","../src/parse-error.ts","../src/plugins/estree.ts","../src/tokenizer/context.ts","../src/tokenizer/types.ts","../../babel-helper-validator-identifier/src/identifier.ts","../../babel-helper-validator-identifier/src/keyword.ts","../src/util/identifier.ts","../src/util/scope.ts","../src/plugins/flow/scope.ts","../src/parser/base.ts","../src/parser/comments.ts","../src/util/whitespace.ts","../src/tokenizer/state.ts","../../babel-helper-string-parser/src/index.ts","../src/tokenizer/index.ts","../src/util/class-scope.ts","../src/util/expression-scope.ts","../src/util/production-parameter.ts","../src/parser/util.ts","../src/parser/node.ts","../src/plugins/flow/index.ts","../src/plugins/jsx/xhtml.ts","../src/plugins/jsx/index.ts","../src/plugins/typescript/scope.ts","../src/parser/lval.ts","../src/plugins/typescript/index.ts","../src/plugins/placeholders.ts","../src/plugins/v8intrinsic.ts","../src/plugin-utils.ts","../src/options.ts","../src/parser/expression.ts","../src/parser/statement.ts","../src/parser/index.ts","../src/index.ts"],"sourcesContent":["export type Pos = {\n start: number;\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n line: number;\n column: number;\n index: number;\n\n constructor(line: number, col: number, index: number) {\n this.line = line;\n this.column = col;\n this.index = index;\n }\n}\n\nexport class SourceLocation {\n start: Position;\n end: Position;\n filename: string;\n identifierName: string | undefined | null;\n\n constructor(start: Position, end?: Position) {\n this.start = start;\n // (may start as null, but initialized later)\n this.end = end;\n }\n}\n\n/**\n * creates a new position with a non-zero column offset from the given position.\n * This function should be only be used when we create AST node out of the token\n * boundaries, such as TemplateElement ends before tt.templateNonTail. This\n * function does not skip whitespaces.\n */\nexport function createPositionWithColumnOffset(\n position: Position,\n columnOffset: number,\n) {\n const { line, column, index } = position;\n return new Position(line, column + columnOffset, index + columnOffset);\n}\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\n\nconst code = \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\nexport default {\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} satisfies ParseErrorTemplates;\n","const 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};\n\ntype NodeTypesWithDescriptions = keyof Omit<\n typeof NodeDescriptions,\n \"UpdateExpression\"\n>;\n\ntype NodeWithDescription =\n | {\n type: \"UpdateExpression\";\n prefix: boolean;\n }\n | {\n type: NodeTypesWithDescriptions;\n };\n\n// @ts-expect-error prefix is specified only when type is UpdateExpression\n// eslint-disable-next-line no-confusing-arrow\nconst toNodeDescription = ({ type, prefix }: NodeWithDescription) =>\n type === \"UpdateExpression\"\n ? NodeDescriptions.UpdateExpression[String(prefix) as \"true\" | \"false\"]\n : NodeDescriptions[type];\n\nexport default toNodeDescription;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport type LValAncestor =\n | { type: \"UpdateExpression\"; prefix: boolean }\n | {\n type:\n | \"ArrayPattern\"\n | \"AssignmentExpression\"\n | \"CatchClause\"\n | \"ForOfStatement\"\n | \"FormalParameters\"\n | \"ForInStatement\"\n | \"ForStatement\"\n | \"ImportSpecifier\"\n | \"ImportNamespaceSpecifier\"\n | \"ImportDefaultSpecifier\"\n | \"ParenthesizedExpression\"\n | \"ObjectPattern\"\n | \"RestElement\"\n | \"VariableDeclarator\";\n };\n\nexport default {\n AccessorIsGenerator: ({ kind }: { kind: \"get\" | \"set\" }) =>\n `A ${kind}ter cannot be a generator.`,\n ArgumentsInClass:\n \"'arguments' is only allowed in functions and class methods.\",\n AsyncFunctionInSingleStatementContext:\n \"Async functions can only be declared at the top level or inside a block.\",\n AwaitBindingIdentifier:\n \"Can not use 'await' as identifier inside an async function.\",\n AwaitBindingIdentifierInStaticBlock:\n \"Can not use 'await' as identifier inside a static block.\",\n AwaitExpressionFormalParameter:\n \"'await' is not allowed in async function parameters.\",\n AwaitUsingNotInAsyncContext:\n \"'await using' is only allowed within async functions and at the top levels of modules.\",\n AwaitNotInAsyncContext:\n \"'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:\n \"A 'set' accessor function argument must not be a rest parameter.\",\n ConstructorClassField: \"Classes may not have a field named 'constructor'.\",\n ConstructorClassPrivateField:\n \"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 }: {\n kind: \"const\" | \"destructuring\";\n }) => `Missing initializer in ${kind} declaration.`,\n DecoratorArgumentsOutsideParentheses:\n \"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.\",\n DecoratorBeforeExport:\n \"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.\",\n DecoratorsBeforeAfterExport:\n \"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.\",\n DecoratorConstructor:\n \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n DecoratorExportClass:\n \"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:\n 'Only `import defer * as x from \"./module\"` is valid.',\n DeletePrivateField: \"Deleting a private field is not allowed.\",\n DestructureNamedImport:\n \"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: ({ exportName }: { exportName: string }) =>\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: ({ phase }: { phase: string }) =>\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 }: {\n localName: string;\n exportName: string;\n }) =>\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:\n \"'from' is not allowed as an identifier after 'export default'.\",\n\n ForInOfLoopInitializer: ({\n type,\n }: {\n type: \"ForInStatement\" | \"ForOfStatement\";\n }) =>\n `'${\n type === \"ForInStatement\" ? \"for-in\" : \"for-of\"\n }' loop variable declaration may not have an initializer.`,\n ForInUsing: \"For-in loop may not start with 'using' declaration.\",\n\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:\n \"Generators can only be declared at the top level or inside a block.\",\n\n IllegalBreakContinue: ({\n type,\n }: {\n type: \"BreakStatement\" | \"ContinueStatement\";\n }) => `Unsyntactic ${type === \"BreakStatement\" ? \"break\" : \"continue\"}.`,\n\n IllegalLanguageModeDirective:\n \"Illegal 'use strict' directive in function with non-simple parameter list.\",\n IllegalReturn: \"'return' outside of function.\",\n ImportAttributesUseAssert:\n \"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.\",\n ImportBindingIsString: ({ importName }: { importName: string }) =>\n `A string literal cannot be used as an imported binding.\\n- Did you mean \\`import { \"${importName}\" as foo }\\`?`,\n ImportCallArgumentTrailingComma:\n \"Trailing comma is disallowed inside import(...) arguments.\",\n ImportCallArity: ({ maxArgumentCount }: { maxArgumentCount: 1 | 2 }) =>\n `\\`import()\\` requires exactly ${\n maxArgumentCount === 1 ? \"one argument\" : \"one or two arguments\"\n }.`,\n ImportCallNotNewExpression: \"Cannot use new with import(...).\",\n ImportCallSpreadArgument: \"`...` is not allowed in `import()`.\",\n ImportJSONBindingNotDefault:\n \"A JSON module can only be imported with `default`.\",\n ImportReflectionHasAssertion: \"`import module x` cannot have assertions.\",\n ImportReflectionNotBinding:\n 'Only `import module x from \"./module\"` is valid.',\n IncompatibleRegExpUVFlags:\n \"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: ({ radix }: { radix: number }) =>\n `Expected number in radix ${radix}.`,\n InvalidEscapeSequence: \"Bad character escape sequence.\",\n InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template.\",\n InvalidEscapedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Escape sequence in keyword ${reservedWord}.`,\n InvalidIdentifier: ({ identifierName }: { identifierName: string }) =>\n `Invalid identifier ${identifierName}.`,\n InvalidLhs: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsBinding: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsOptionalChaining: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid optional chaining in the left-hand side of ${toNodeDescription(\n ancestor,\n )}.`,\n InvalidNumber: \"Invalid number.\",\n InvalidOrMissingExponent:\n \"Floating-point numbers require a valid exponent after the 'e'.\",\n InvalidOrUnexpectedToken: ({ unexpected }: { unexpected: string }) =>\n `Unexpected character '${unexpected}'.`,\n InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern.\",\n InvalidPrivateFieldResolution: ({\n identifierName,\n }: {\n identifierName: string;\n }) => `Private name #${identifierName} is not defined.`,\n InvalidPropertyBindingPattern: \"Binding member expression.\",\n InvalidRecordProperty:\n \"Only properties and spread elements are allowed in record definitions.\",\n InvalidRestAssignmentPattern: \"Invalid rest operator's argument.\",\n LabelRedeclaration: ({ labelName }: { labelName: string }) =>\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:\n \"Only '=' operator can be used for specifying default value.\",\n MissingSemicolon: \"Missing semicolon.\",\n MissingPlugin: ({ missingPlugin }: { missingPlugin: [string] }) =>\n `This experimental syntax requires enabling the parser plugin: ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n // FIXME: Would be nice to make this \"missingPlugins\" instead.\n // Also, seems like we can drop the \"(s)\" from the message and just make it \"s\".\n MissingOneOfPlugins: ({ missingPlugin }: { missingPlugin: string[] }) =>\n `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX.\",\n MixingCoalesceWithLogical:\n \"Nullish coalescing operator(??) requires parens when mixing with logical operators.\",\n ModuleAttributeDifferentFromType:\n \"The only accepted module attribute is `type`.\",\n ModuleAttributeInvalidValue:\n \"Only string literals are allowed as module attribute values.\",\n ModuleAttributesWithDuplicateKeys: ({ key }: { key: string }) =>\n `Duplicate key \"${key}\" is not allowed in module attributes.`,\n ModuleExportNameHasLoneSurrogate: ({\n surrogateCharCode,\n }: {\n surrogateCharCode: number;\n }) =>\n `An export name cannot include a lone surrogate, found '\\\\u${surrogateCharCode.toString(\n 16,\n )}'.`,\n ModuleExportUndefined: ({ localName }: { localName: string }) =>\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:\n \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\",\n ObsoleteAwaitStar:\n \"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\",\n OptionalChainingNoNew:\n \"Constructors in/after an Optional Chain are not allowed.\",\n OptionalChainingNoTemplate:\n \"Tagged Template Literals are not allowed in optionalChain.\",\n OverrideOnConstructor:\n \"'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: ({ identifierName }: { identifierName: string }) =>\n `Private names are only allowed in property accesses (\\`obj.#${identifierName}\\`) or in \\`in\\` expressions (\\`#${identifierName} in obj\\`).`,\n PrivateNameRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Duplicate private name #${identifierName}.`,\n RecordExpressionBarIncorrectEndSyntaxType:\n \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionBarIncorrectStartSyntaxType:\n \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionHashIncorrectStartSyntaxType:\n \"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:\n \"In non-strict mode code, functions can only be declared at top level or inside a block.\",\n SloppyFunctionAnnexB:\n \"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:\n 'Only `import source x from \"./module\"` is valid.',\n StaticPrototype: \"Classes may not have static property named prototype.\",\n SuperNotAllowed:\n \"`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:\n \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionBarIncorrectStartSyntaxType:\n \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionHashIncorrectStartSyntaxType:\n \"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:\n 'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.',\n UnexpectedDigitAfterHash: \"Unexpected digit after hash token.\",\n UnexpectedImportExport:\n \"'import' and 'export' may only appear at the top level.\",\n UnexpectedKeyword: ({ keyword }: { keyword: string }) =>\n `Unexpected keyword '${keyword}'.`,\n UnexpectedLeadingDecorator:\n \"Leading decorators must be attached to a class declaration.\",\n UnexpectedLexicalDeclaration:\n \"Lexical declaration cannot appear in a single-statement context.\",\n UnexpectedNewTarget:\n \"`new.target` can only be used in functions or class properties.\",\n UnexpectedNumericSeparator:\n \"A numeric separator is only allowed between two digits.\",\n UnexpectedPrivateField: \"Unexpected private name.\",\n UnexpectedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Unexpected reserved word '${reservedWord}'.`,\n UnexpectedSuper: \"'super' is only allowed in object methods and classes.\",\n UnexpectedToken: ({\n expected,\n unexpected,\n }: {\n expected?: string | null;\n unexpected?: string | null;\n }) =>\n `Unexpected token${unexpected ? ` '${unexpected}'.` : \"\"}${\n expected ? `, expected \"${expected}\"` : \"\"\n }`,\n UnexpectedTokenUnaryExponentiation:\n \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n UnexpectedUsingDeclaration:\n \"Using declaration cannot appear in the top level when source type is `script`.\",\n UnsupportedBind: \"Binding should be performed on object property.\",\n UnsupportedDecoratorExport:\n \"A decorated export must export a class declaration.\",\n UnsupportedDefaultExport:\n \"Only expressions, functions or classes are allowed as the `default` export.\",\n UnsupportedImport:\n \"`import` can only be used in `import()` or `import.meta`.\",\n UnsupportedMetaProperty: ({\n target,\n onlyValidPropertyName,\n }: {\n target: string;\n onlyValidPropertyName: string;\n }) =>\n `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`,\n UnsupportedParameterDecorator:\n \"Decorators cannot be used to decorate parameters.\",\n UnsupportedPropertyDecorator:\n \"Decorators cannot be used to decorate object literal properties.\",\n UnsupportedSuper:\n \"'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 UsingDeclarationHasBindingPattern:\n \"Using declaration cannot have destructuring patterns.\",\n VarRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Identifier '${identifierName}' has already been declared.`,\n YieldBindingIdentifier:\n \"Can not use 'yield' as identifier inside a generator.\",\n YieldInParameter: \"Yield expression is not allowed in formal parameters.\",\n ZeroDigitNumericSeparator:\n \"Numeric separator can not be used after leading 0.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error\";\n\nexport default {\n StrictDelete: \"Deleting local variable in strict mode.\",\n\n // `referenceName` is the StringValue[1] of an IdentifierReference[2], which\n // is represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-IdentifierReference\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArguments: ({ referenceName }: { referenceName: string }) =>\n `Assigning to '${referenceName}' in strict mode.`,\n\n // `bindingName` is the StringValue[1] of a BindingIdentifier[2], which is\n // represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-BindingIdentifier\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArgumentsBinding: ({ bindingName }: { bindingName: string }) =>\n `Binding '${bindingName}' in strict mode.`,\n\n StrictFunction:\n \"In strict mode code, functions can only be declared at top level or inside a block.\",\n\n StrictNumericEscape: \"The only valid numeric escape in strict mode is '\\\\0'.\",\n\n StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode.\",\n\n StrictWith: \"'with' in strict mode.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport const UnparenthesizedPipeBodyDescriptions = new Set([\n \"ArrowFunctionExpression\",\n \"AssignmentExpression\",\n \"ConditionalExpression\",\n \"YieldExpression\",\n] as const);\n\ntype GetSetMemberType<T extends Set<any>> = T extends Set<infer M>\n ? M\n : unknown;\n\ntype UnparenthesizedPipeBodyTypes = GetSetMemberType<\n typeof UnparenthesizedPipeBodyDescriptions\n>;\n\nexport default {\n // This error is only used by the smart-mix proposal\n PipeBodyIsTighter:\n \"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:\n 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n PipeTopicUnbound:\n \"Topic reference is unbound; it must be inside a pipe body.\",\n PipeTopicUnconfiguredToken: ({ token }: { token: string }) =>\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:\n \"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\",\n PipeUnparenthesizedBody: ({ type }: { type: UnparenthesizedPipeBodyTypes }) =>\n `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({\n type,\n })}; please wrap it in parentheses.`,\n\n // Messages whose codes start with “Pipeline” or “PrimaryTopic”\n // are retained for backwards compatibility\n // with the deprecated smart-mix pipe operator proposal plugin.\n // They are subject to removal in a future major version.\n PipelineBodyNoArrow:\n 'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.',\n PipelineBodySequenceExpression:\n \"Pipeline body may not be a comma-separated sequence expression.\",\n PipelineHeadSequenceExpression:\n \"Pipeline head should not be a comma-separated sequence expression.\",\n PipelineTopicUnused:\n \"Pipeline is in topic style but does not use topic reference.\",\n PrimaryTopicNotAllowed:\n \"Topic reference was used in a lexical context without topic binding.\",\n PrimaryTopicRequiresSmartPipeline:\n 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n} satisfies ParseErrorTemplates;\n","import { Position } from \"./util/location.ts\";\nimport type { Undone } from \"./parser/node.ts\";\nimport type { Node } from \"./types.ts\";\n\ntype SyntaxPlugin =\n | \"flow\"\n | \"typescript\"\n | \"jsx\"\n | \"pipelineOperator\"\n | \"placeholders\";\n\ntype ParseErrorCode =\n | \"BABEL_PARSER_SYNTAX_ERROR\"\n | \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\n// Babel uses \"normal\" SyntaxErrors for it's errors, but adds some extra\n// functionality. This functionality is defined in the\n// `ParseErrorSpecification` interface below. We may choose to change to someday\n// give our errors their own full-blown class, but until then this allow us to\n// keep all the desirable properties of SyntaxErrors (like their name in stack\n// traces, etc.), and also allows us to punt on any publicly facing\n// class-hierarchy decisions until Babel 8.\ninterface ParseErrorSpecification<ErrorDetails> {\n // Look, these *could* be readonly, but then Flow complains when we initially\n // set them. We could do a whole dance and make a special interface that's not\n // readonly for when we create the error, then cast it to the readonly\n // interface for public use, but the previous implementation didn't have them\n // as readonly, so let's just not worry about it for now.\n code: ParseErrorCode;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n missingPlugin?: string | string[];\n loc: Position;\n details: ErrorDetails;\n\n // We should consider removing this as it now just contains the same\n // information as `loc.index`.\n // pos: number;\n}\n\nexport type ParseError<ErrorDetails> = SyntaxError &\n ParseErrorSpecification<ErrorDetails>;\n\n// By `ParseErrorConstructor`, we mean something like the new-less style\n// `ErrorConstructor`[1], since `ParseError`'s are not themselves actually\n// separate classes from `SyntaxError`'s.\n//\n// 1. https://github.com/microsoft/TypeScript/blob/v4.5.5/lib/lib.es5.d.ts#L1027\nexport type ParseErrorConstructor<ErrorDetails> = (a: {\n loc: Position;\n details: ErrorDetails;\n}) => ParseError<ErrorDetails>;\n\ntype ToMessage<ErrorDetails> = (self: ErrorDetails) => string;\n\ntype ParseErrorCredentials<ErrorDetails> = {\n code: string;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n toMessage: ToMessage<ErrorDetails>;\n};\n\nfunction defineHidden(obj: object, key: string, value: unknown) {\n Object.defineProperty(obj, key, {\n enumerable: false,\n configurable: true,\n value,\n });\n}\n\nfunction toParseErrorConstructor<ErrorDetails extends object>({\n toMessage,\n ...properties\n}: ParseErrorCredentials<ErrorDetails>): ParseErrorConstructor<ErrorDetails> {\n type ConstructorArgument = {\n loc: Position;\n details: ErrorDetails;\n };\n\n return function constructor({ loc, details }: ConstructorArgument) {\n const error = new SyntaxError();\n Object.assign(error, properties, { loc, pos: loc.index });\n if (\"missingPlugin\" in details) {\n Object.assign(error, { missingPlugin: details.missingPlugin });\n }\n\n type Overrides = {\n loc?: Position;\n details?: ErrorDetails;\n };\n defineHidden(error, \"clone\", function clone(overrides: Overrides = {}) {\n const { line, column, index } = overrides.loc ?? loc;\n return constructor({\n loc: new Position(line, column, index),\n details: { ...details, ...overrides.details },\n });\n });\n\n defineHidden(error, \"details\", details);\n\n Object.defineProperty(error, \"message\", {\n configurable: true,\n get(this: ParseError<ErrorDetails>): string {\n const message = `${toMessage(details)} (${loc.line}:${loc.column})`;\n this.message = message;\n return message;\n },\n set(value: string) {\n Object.defineProperty(this, \"message\", { value, writable: true });\n },\n });\n\n return error as ParseError<ErrorDetails>;\n };\n}\n\ntype ParseErrorTemplate =\n | string\n | ToMessage<any>\n | { message: string | ToMessage<any>; code?: ParseErrorCode };\n\nexport type ParseErrorTemplates = { [reasonCode: string]: ParseErrorTemplate };\n\n// This is the templated form of `ParseErrorEnum`.\n//\n// Note: We could factor out the return type calculation into something like\n// `ParseErrorConstructor<T extends ParseErrorTemplates>`, and then we could\n// reuse it in the non-templated form of `ParseErrorEnum`, but TypeScript\n// doesn't seem to drill down that far when showing you the computed type of\n// an object in an editor, so we'll leave it inlined for now.\nexport function ParseErrorEnum(a: TemplateStringsArray): <\n T extends ParseErrorTemplates,\n>(\n parseErrorTemplates: T,\n) => {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage<any> }\n ? T[K][\"message\"] extends ToMessage<any>\n ? Parameters<T[K][\"message\"]>[0]\n : {}\n : T[K] extends ToMessage<any>\n ? Parameters<T[K]>[0]\n : {}\n >;\n};\n\nexport function ParseErrorEnum<T extends ParseErrorTemplates>(\n parseErrorTemplates: T,\n syntaxPlugin?: SyntaxPlugin,\n): {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage<any> }\n ? T[K][\"message\"] extends ToMessage<any>\n ? Parameters<T[K][\"message\"]>[0]\n : {}\n : T[K] extends ToMessage<any>\n ? Parameters<T[K]>[0]\n : {}\n >;\n};\n\n// You call `ParseErrorEnum` with a mapping from `ReasonCode`'s to either:\n//\n// 1. a static error message,\n// 2. `toMessage` functions that define additional necessary `details` needed by\n// the `ParseError`, or\n// 3. Objects that contain a `message` of one of the above and overridden `code`\n// and/or `reasonCode`:\n//\n// ParseErrorEnum `optionalSyntaxPlugin` ({\n// ErrorWithStaticMessage: \"message\",\n// ErrorWithDynamicMessage: ({ type } : { type: string }) => `${type}`),\n// ErrorWithOverriddenCodeAndOrReasonCode: {\n// message: ({ type }: { type: string }) => `${type}`),\n// code: \"AN_ERROR_CODE\",\n// ...(BABEL_8_BREAKING ? { } : { reasonCode: \"CustomErrorReasonCode\" })\n// }\n// });\n//\nexport function ParseErrorEnum(\n argument: TemplateStringsArray | ParseErrorTemplates,\n syntaxPlugin?: SyntaxPlugin,\n) {\n // If the first parameter is an array, that means we were called with a tagged\n // template literal. Extract the syntaxPlugin from this, and call again in\n // the \"normalized\" form.\n if (Array.isArray(argument)) {\n return (parseErrorTemplates: ParseErrorTemplates) =>\n ParseErrorEnum(parseErrorTemplates, argument[0]);\n }\n\n const ParseErrorConstructors = {} as Record<\n string,\n ParseErrorConstructor<unknown>\n >;\n\n for (const reasonCode of Object.keys(argument)) {\n const template = (argument as ParseErrorTemplates)[reasonCode];\n const { message, ...rest } =\n typeof template === \"string\"\n ? { message: () => template }\n : typeof template === \"function\"\n ? { message: template }\n : template;\n const toMessage = typeof message === \"string\" ? () => message : message;\n\n ParseErrorConstructors[reasonCode] = toParseErrorConstructor({\n code: \"BABEL_PARSER_SYNTAX_ERROR\",\n reasonCode,\n toMessage,\n ...(syntaxPlugin ? { syntaxPlugin } : {}),\n ...rest,\n });\n }\n\n return ParseErrorConstructors;\n}\n\nexport type RaiseProperties<ErrorDetails> = {\n at: Position | Undone<Node>;\n} & ErrorDetails;\n\nimport ModuleErrors from \"./parse-error/module-errors.ts\";\nimport StandardErrors from \"./parse-error/standard-errors.ts\";\nimport StrictModeErrors from \"./parse-error/strict-mode-errors.ts\";\nimport PipelineOperatorErrors from \"./parse-error/pipeline-operator-errors.ts\";\n\nexport const Errors = {\n ...ParseErrorEnum(ModuleErrors),\n ...ParseErrorEnum(StandardErrors),\n ...ParseErrorEnum(StrictModeErrors),\n ...ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors),\n};\n\nexport type { LValAncestor } from \"./parse-error/standard-errors.ts\";\n","import type { TokenType } from \"../tokenizer/types.ts\";\nimport type Parser from \"../parser/index.ts\";\nimport type { ExpressionErrors } from \"../parser/util.ts\";\nimport type * as N from \"../types.ts\";\nimport type { Node as NodeType, NodeBase, File } from \"../types.ts\";\nimport type { Position } from \"../util/location.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { BindingTypes } from \"../util/scopeflags.ts\";\n\nconst { defineProperty } = Object;\nconst toUnenumerable = (object: any, key: string) =>\n defineProperty(object, key, { enumerable: false, value: object[key] });\n\nfunction toESTreeLocation(node: any) {\n node.loc.start && toUnenumerable(node.loc.start, \"index\");\n node.loc.end && toUnenumerable(node.loc.end, \"index\");\n\n return node;\n}\n\nexport default (superClass: typeof Parser) =>\n class ESTreeParserMixin extends superClass implements Parser {\n parse(): File {\n const file = toESTreeLocation(super.parse());\n\n if (this.options.tokens) {\n file.tokens = file.tokens.map(toESTreeLocation);\n }\n\n return file;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseRegExpLiteral({ pattern, flags }): N.EstreeRegExpLiteral {\n let regex: RegExp | null = null;\n try {\n regex = new RegExp(pattern, flags);\n } catch (e) {\n // In environments that don't support these flags value will\n // be null as the regex can't be represented natively.\n }\n const node = this.estreeParseLiteral<N.EstreeRegExpLiteral>(regex);\n node.regex = { pattern, flags };\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseBigIntLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n let bigInt: BigInt | null;\n try {\n bigInt = BigInt(value);\n } catch {\n bigInt = null;\n }\n const node = this.estreeParseLiteral<N.EstreeBigIntLiteral>(bigInt);\n node.bigint = String(node.value || value);\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseDecimalLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/experimental/decimal.md\n // todo: use BigDecimal when node supports it.\n const decimal: null = null;\n const node = this.estreeParseLiteral(decimal);\n node.decimal = String(node.value || value);\n\n return node;\n }\n\n estreeParseLiteral<T extends N.Node>(value: any) {\n // @ts-expect-error ESTree plugin changes node types\n return this.parseLiteral<T>(value, \"Literal\");\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseStringLiteral(value: any): N.Node {\n return this.estreeParseLiteral(value);\n }\n\n parseNumericLiteral(value: any): any {\n return this.estreeParseLiteral(value);\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseNullLiteral(): N.Node {\n return this.estreeParseLiteral(null);\n }\n\n parseBooleanLiteral(value: boolean): N.BooleanLiteral {\n return this.estreeParseLiteral(value);\n }\n\n // Cast a Directive to an ExpressionStatement. Mutates the input Directive.\n directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n const expression = directive.value as any as N.EstreeLiteral;\n delete directive.value;\n\n expression.type = \"Literal\";\n // @ts-expect-error N.EstreeLiteral.raw is not defined.\n expression.raw = expression.extra.raw;\n expression.value = expression.extra.expressionValue;\n\n const stmt = directive as any as N.ExpressionStatement;\n stmt.type = \"ExpressionStatement\";\n stmt.expression = expression;\n // @ts-expect-error N.ExpressionStatement.directive is not defined\n stmt.directive = expression.extra.rawValue;\n\n delete expression.extra;\n\n return stmt;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: boolean): void {\n super.initFunction(node, isAsync);\n node.expression = false;\n }\n\n checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n if (node != null && this.isObjectProperty(node)) {\n // @ts-expect-error plugin typings\n this.checkDeclaration((node as unknown as N.EstreeProperty).value);\n } else {\n super.checkDeclaration(node);\n }\n }\n\n getObjectOrClassMethodParams(method: N.ObjectMethod | N.ClassMethod) {\n return (method as any as N.EstreeProperty | N.EstreeMethodDefinition)\n .value.params;\n }\n\n isValidDirective(stmt: N.Statement): boolean {\n return (\n stmt.type === \"ExpressionStatement\" &&\n stmt.expression.type === \"Literal\" &&\n typeof stmt.expression.value === \"string\" &&\n !stmt.expression.extra?.parenthesized\n );\n }\n\n parseBlockBody(\n node: N.BlockStatementLike,\n allowDirectives: boolean | undefined | null,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void {\n super.parseBlockBody(\n node,\n allowDirectives,\n topLevel,\n end,\n afterBlockParse,\n );\n\n const directiveStatements = node.directives.map(d =>\n this.directiveToStmt(d),\n );\n // @ts-expect-error estree plugin typings\n node.body = directiveStatements.concat(node.body);\n delete node.directives;\n }\n\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n this.parseMethod(\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n \"ClassMethod\",\n true,\n );\n if (method.typeParameters) {\n // @ts-expect-error mutate AST types\n method.value.typeParameters = method.typeParameters;\n delete method.typeParameters;\n }\n classBody.body.push(method);\n }\n\n parsePrivateName(): any {\n const node = super.parsePrivateName();\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return node;\n }\n }\n return this.convertPrivateNameToPrivateIdentifier(node);\n }\n\n convertPrivateNameToPrivateIdentifier(\n node: N.PrivateName,\n ): N.EstreePrivateIdentifier {\n const name = super.getPrivateNameSV(node);\n node = node as any;\n delete node.id;\n // @ts-expect-error mutate AST types\n node.name = name;\n // @ts-expect-error mutate AST types\n node.type = \"PrivateIdentifier\";\n return node as unknown as N.EstreePrivateIdentifier;\n }\n\n isPrivateName(node: N.Node): boolean {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.isPrivateName(node);\n }\n }\n return node.type === \"PrivateIdentifier\";\n }\n\n getPrivateNameSV(node: N.Node): string {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.getPrivateNameSV(node);\n }\n }\n return node.name;\n }\n\n // @ts-expect-error plugin may override interfaces\n parseLiteral<T extends N.Literal>(value: any, type: T[\"type\"]): T {\n const node = super.parseLiteral<T>(value, type);\n // @ts-expect-error mutating AST types\n node.raw = node.extra.raw;\n delete node.extra;\n\n return node;\n }\n\n parseFunctionBody(\n node: N.Function,\n allowExpression?: boolean | null,\n isMethod: boolean = false,\n ): void {\n super.parseFunctionBody(node, allowExpression, isMethod);\n node.expression = node.body.type !== \"BlockStatement\";\n }\n\n // @ts-expect-error plugin may override interfaces\n parseMethod<\n T extends N.ClassPrivateMethod | N.ObjectMethod | N.ClassMethod,\n >(\n node: Undone<T>,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: T[\"type\"],\n inClassScope: boolean = false,\n ): N.EstreeMethodDefinition {\n let funcNode = this.startNode<N.MethodLike>();\n funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n funcNode = super.parseMethod(\n // @ts-expect-error todo(flow->ts)\n funcNode,\n isGenerator,\n isAsync,\n isConstructor,\n allowDirectSuper,\n type,\n inClassScope,\n );\n // @ts-expect-error mutate AST types\n funcNode.type = \"FunctionExpression\";\n delete funcNode.kind;\n // @ts-expect-error mutate AST types\n node.value = funcNode;\n if (type === \"ClassPrivateMethod\") {\n node.computed = false;\n }\n return this.finishNode(\n // @ts-expect-error cast methods to estree types\n node as Undone<N.EstreeMethodDefinition>,\n \"MethodDefinition\",\n );\n }\n\n parseClassProperty(...args: [N.ClassProperty]): any {\n const propertyNode = super.parseClassProperty(...args) as any;\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as N.EstreePropertyDefinition;\n }\n }\n propertyNode.type = \"PropertyDefinition\";\n return propertyNode as N.EstreePropertyDefinition;\n }\n\n parseClassPrivateProperty(...args: [N.ClassPrivateProperty]): any {\n const propertyNode = super.parseClassPrivateProperty(...args) as any;\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as N.EstreePropertyDefinition;\n }\n }\n propertyNode.type = \"PropertyDefinition\";\n propertyNode.computed = false;\n return propertyNode as N.EstreePropertyDefinition;\n }\n\n parseObjectMethod(\n prop: N.ObjectMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n ): N.ObjectMethod | undefined | null {\n const node: N.EstreeProperty = super.parseObjectMethod(\n prop,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n ) as any;\n\n if (node) {\n node.type = \"Property\";\n if ((node as any as N.ClassMethod).kind === \"method\") {\n node.kind = \"init\";\n }\n node.shorthand = false;\n }\n\n return node as any;\n }\n\n parseObjectProperty(\n prop: N.ObjectProperty,\n startLoc: Position | undefined | null,\n isPattern: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectProperty | undefined | null {\n const node: N.EstreeProperty = super.parseObjectProperty(\n prop,\n startLoc,\n isPattern,\n refExpressionErrors,\n ) as any;\n\n if (node) {\n node.kind = \"init\";\n node.type = \"Property\";\n }\n\n return node as any;\n }\n\n isValidLVal(\n type: string,\n isUnparenthesizedInAssign: boolean,\n binding: BindingTypes,\n ) {\n return type === \"Property\"\n ? \"value\"\n : super.isValidLVal(type, isUnparenthesizedInAssign, binding);\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n if (node != null && this.isObjectProperty(node)) {\n return this.isAssignable(node.value, isBinding);\n }\n return super.isAssignable(node, isBinding);\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): void {\n if (node != null && this.isObjectProperty(node)) {\n const { key, value } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(\n this.getPrivateNameSV(key),\n key.loc.start,\n );\n }\n this.toAssignable(value, isLHS);\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n\n toAssignableObjectExpressionProp(\n prop: N.Node,\n isLast: boolean,\n isLHS: boolean,\n ) {\n if (prop.kind === \"get\" || prop.kind === \"set\") {\n this.raise(Errors.PatternHasAccessor, { at: prop.key });\n } else if (prop.method) {\n this.raise(Errors.PatternHasMethod, { at: prop.key });\n } else {\n super.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n }\n }\n\n finishCallExpression<T extends N.CallExpression | N.OptionalCallExpression>(\n unfinished: Undone<T>,\n optional: boolean,\n ): T {\n const node = super.finishCallExpression(unfinished, optional);\n\n if (node.callee.type === \"Import\") {\n (node as N.Node as N.EstreeImportExpression).type = \"ImportExpression\";\n (node as N.Node as N.EstreeImportExpression).source = node.arguments[0];\n if (\n this.hasPlugin(\"importAttributes\") ||\n this.hasPlugin(\"importAssertions\")\n ) {\n (node as N.Node as N.EstreeImportExpression).options =\n node.arguments[1] ?? null;\n // compatibility with previous ESTree AST\n (node as N.Node as N.EstreeImportExpression).attributes =\n node.arguments[1] ?? null;\n }\n // arguments isn't optional in the type definition\n delete node.arguments;\n // callee isn't optional in the type definition\n delete node.callee;\n }\n\n return node;\n }\n\n toReferencedArguments(\n node:\n | N.CallExpression\n | N.OptionalCallExpression\n | N.EstreeImportExpression,\n /* isParenthesizedExpr?: boolean, */\n ) {\n // ImportExpressions do not have an arguments array.\n if (node.type === \"ImportExpression\") {\n return;\n }\n\n super.toReferencedArguments(node);\n }\n\n parseExport(\n unfinished: Undone<N.AnyExport>,\n decorators: N.Decorator[] | null,\n ) {\n const exportStartLoc = this.state.lastTokStartLoc;\n const node = super.parseExport(unfinished, decorators);\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n // @ts-expect-error mutating AST types\n node.exported = null;\n break;\n\n case \"ExportNamedDeclaration\":\n if (\n node.specifiers.length === 1 &&\n // @ts-expect-error mutating AST types\n node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n ) {\n // @ts-expect-error mutating AST types\n node.type = \"ExportAllDeclaration\";\n // @ts-expect-error mutating AST types\n node.exported = node.specifiers[0].exported;\n delete node.specifiers;\n }\n\n // fallthrough\n case \"ExportDefaultDeclaration\":\n {\n const { declaration } = node;\n if (\n declaration?.type === \"ClassDeclaration\" &&\n declaration.decorators?.length > 0 &&\n // decorator comes before export\n declaration.start === node.start\n ) {\n this.resetStartLocation(\n node,\n // For compatibility with ESLint's keyword-spacing rule, which assumes that an\n // export declaration must start with export.\n // https://github.com/babel/babel/issues/15085\n // Here we reset export declaration's start to be the start of the export token\n exportStartLoc,\n );\n }\n }\n\n break;\n }\n\n return node;\n }\n\n parseSubscript(\n base: N.Expression,\n startLoc: Position,\n noCalls: boolean | undefined | null,\n state: N.ParseSubscriptState,\n ) {\n const node = super.parseSubscript(base, startLoc, noCalls, state);\n\n if (state.optionalChainMember) {\n // https://github.com/estree/estree/blob/master/es2020.md#chainexpression\n if (\n node.type === \"OptionalMemberExpression\" ||\n node.type === \"OptionalCallExpression\"\n ) {\n node.type = node.type.substring(8); // strip Optional prefix\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 (\n node.type === \"MemberExpression\" ||\n node.type === \"CallExpression\"\n ) {\n node.optional = false;\n }\n\n return node;\n }\n\n isOptionalMemberExpression(node: N.Node) {\n if (node.type === \"ChainExpression\") {\n return node.expression.type === \"MemberExpression\";\n }\n return super.isOptionalMemberExpression(node);\n }\n\n hasPropertyAsPrivateName(node: N.Node): boolean {\n if (node.type === \"ChainExpression\") {\n node = node.expression;\n }\n return super.hasPropertyAsPrivateName(node);\n }\n\n // @ts-expect-error override interfaces\n isObjectProperty(node: N.Node): boolean {\n return node.type === \"Property\" && node.kind === \"init\" && !node.method;\n }\n\n isObjectMethod(node: N.Node): boolean {\n return node.method || node.kind === \"get\" || node.kind === \"set\";\n }\n\n finishNodeAt<T extends NodeType>(\n node: Undone<T>,\n type: T[\"type\"],\n endLoc: Position,\n ): T {\n return toESTreeLocation(super.finishNodeAt(node, type, endLoc));\n }\n\n resetStartLocation(node: N.Node, startLoc: Position) {\n super.resetStartLocation(node, startLoc);\n toESTreeLocation(node);\n }\n\n resetEndLocation(\n node: NodeBase,\n endLoc: Position = this.state.lastTokEndLoc,\n ): void {\n super.resetEndLocation(node, endLoc);\n toESTreeLocation(node);\n }\n };\n","// The token context is used in JSX plugin to track\n// jsx tag / jsx text / normal JavaScript expression\n\nexport class TokContext {\n constructor(token: string, preserveSpace?: boolean) {\n this.token = token;\n this.preserveSpace = !!preserveSpace;\n }\n\n token: string;\n preserveSpace: boolean;\n}\n\nconst types: {\n [key: string]: TokContext;\n} = {\n brace: new TokContext(\"{\"), // normal JavaScript expression\n j_oTag: new TokContext(\"<tag\"), // JSX opening tag\n j_cTag: new TokContext(\"</tag\"), // JSX closing tag\n j_expr: new TokContext(\"<tag>...</tag>\", true), // JSX expressions\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n types.template = new TokContext(\"`\", true);\n}\n\nexport { types };\n","import { types as tc, type TokContext } from \"./context.ts\";\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between 1) binary\n// expression (<) and JSX Tag start (<name>); 2) object literal and JSX\n// texts. It is set on the `updateContext` function in the JSX plugin.\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n keyword?: string;\n beforeExpr?: boolean;\n startsExpr?: boolean;\n rightAssociative?: boolean;\n isLoop?: boolean;\n isAssign?: boolean;\n prefix?: boolean;\n postfix?: boolean;\n binop?: number | null;\n};\n\n// Internally the tokenizer stores token as a number\nexport type TokenType = number;\n\n// The `ExportedTokenType` is exported via `tokTypes` and accessible\n// when `tokens: true` is enabled. Unlike internal token type, it provides\n// metadata of the tokens.\nexport class ExportedTokenType {\n label: string;\n keyword: string | undefined | null;\n beforeExpr: boolean;\n startsExpr: boolean;\n rightAssociative: boolean;\n isLoop: boolean;\n isAssign: boolean;\n prefix: boolean;\n postfix: boolean;\n binop: number | undefined | null;\n // todo(Babel 8): remove updateContext from exposed token layout\n declare updateContext:\n | ((context: Array<TokContext>) => void)\n | undefined\n | null;\n\n constructor(label: string, conf: TokenOptions = {}) {\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 if (!process.env.BABEL_8_BREAKING) {\n this.updateContext = null;\n }\n }\n}\n\n// A map from keyword/keyword-like string value to the token type\nexport const keywords = new Map<string, TokenType>();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n options.keyword = name;\n const token = createToken(name, options);\n keywords.set(name, token);\n return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n return createToken(name, { beforeExpr, binop });\n}\n\nlet tokenTypeCounter = -1;\nexport const tokenTypes: ExportedTokenType[] = [];\nconst tokenLabels: string[] = [];\nconst tokenBinops: number[] = [];\nconst tokenBeforeExprs: boolean[] = [];\nconst tokenStartsExprs: boolean[] = [];\nconst tokenPrefixes: boolean[] = [];\n\nfunction createToken(name: string, options: TokenOptions = {}): TokenType {\n ++tokenTypeCounter;\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n tokenTypes.push(new ExportedTokenType(name, options));\n\n return tokenTypeCounter;\n}\n\nfunction createKeywordLike(\n name: string,\n options: TokenOptions = {},\n): TokenType {\n ++tokenTypeCounter;\n keywords.set(name, tokenTypeCounter);\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n // In the exported token type, we set the label as \"name\" for backward compatibility with Babel 7\n tokenTypes.push(new ExportedTokenType(\"name\", options));\n\n return tokenTypeCounter;\n}\n\n// For performance the token type helpers depend on the following declarations order.\n// When adding new token types, please also check if the token helpers need update.\n\nexport type InternalTokenTypes = typeof tt;\n\nexport const tt = {\n // Punctuation token types.\n bracketL: createToken(\"[\", { beforeExpr, startsExpr }),\n bracketHashL: createToken(\"#[\", { beforeExpr, startsExpr }),\n bracketBarL: createToken(\"[|\", { beforeExpr, startsExpr }),\n bracketR: createToken(\"]\"),\n bracketBarR: createToken(\"|]\"),\n braceL: createToken(\"{\", { beforeExpr, startsExpr }),\n braceBarL: createToken(\"{|\", { beforeExpr, startsExpr }),\n braceHashL: createToken(\"#{\", { beforeExpr, startsExpr }),\n braceR: createToken(\"}\"),\n braceBarR: createToken(\"|}\"),\n parenL: createToken(\"(\", { beforeExpr, startsExpr }),\n parenR: createToken(\")\"),\n comma: createToken(\",\", { beforeExpr }),\n semi: createToken(\";\", { beforeExpr }),\n colon: createToken(\":\", { beforeExpr }),\n doubleColon: createToken(\"::\", { beforeExpr }),\n dot: createToken(\".\"),\n question: createToken(\"?\", { beforeExpr }),\n questionDot: createToken(\"?.\"),\n arrow: createToken(\"=>\", { beforeExpr }),\n template: createToken(\"template\"),\n ellipsis: createToken(\"...\", { beforeExpr }),\n backQuote: createToken(\"`\", { startsExpr }),\n dollarBraceL: createToken(\"${\", { beforeExpr, startsExpr }),\n // start: isTemplate\n templateTail: createToken(\"...`\", { startsExpr }),\n templateNonTail: createToken(\"...${\", { beforeExpr, startsExpr }),\n // end: isTemplate\n at: createToken(\"@\"),\n hash: createToken(\"#\", { startsExpr }),\n\n // Special hashbang token.\n interpreterDirective: createToken(\"#!...\"),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n // start: isAssign\n eq: createToken(\"=\", { beforeExpr, isAssign }),\n assign: createToken(\"_=\", { beforeExpr, isAssign }),\n slashAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // These are only needed to support % and ^ as a Hack-pipe topic token.\n // When the proposal settles on a token, the others can be merged with\n // tt.assign.\n xorAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n moduloAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // end: isAssign\n\n incDec: createToken(\"++/--\", { prefix, postfix, startsExpr }),\n bang: createToken(\"!\", { beforeExpr, prefix, startsExpr }),\n tilde: createToken(\"~\", { beforeExpr, prefix, startsExpr }),\n\n // More possible topic tokens.\n // When the proposal settles on a token, at least one of these may be removed.\n doubleCaret: createToken(\"^^\", { startsExpr }),\n doubleAt: createToken(\"@@\", { startsExpr }),\n\n // start: isBinop\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(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n // startsExpr: required by v8intrinsic plugin\n modulo: createToken(\"%\", { binop: 10, startsExpr }),\n // unset `beforeExpr` as it can be `function *`\n star: createToken(\"*\", { binop: 10 }),\n slash: createBinop(\"/\", 10),\n exponent: createToken(\"**\", {\n beforeExpr,\n binop: 11,\n rightAssociative: true,\n }),\n\n // Keywords\n // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n // when new keywords are added\n // start: isLiteralPropertyName\n // start: isKeyword\n _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n // end: isBinop\n _break: createKeyword(\"break\"),\n _case: createKeyword(\"case\", { beforeExpr }),\n _catch: createKeyword(\"catch\"),\n _continue: createKeyword(\"continue\"),\n _debugger: createKeyword(\"debugger\"),\n _default: createKeyword(\"default\", { beforeExpr }),\n _else: createKeyword(\"else\", { beforeExpr }),\n _finally: createKeyword(\"finally\"),\n _function: createKeyword(\"function\", { startsExpr }),\n _if: createKeyword(\"if\"),\n _return: createKeyword(\"return\", { beforeExpr }),\n _switch: createKeyword(\"switch\"),\n _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n _try: createKeyword(\"try\"),\n _var: createKeyword(\"var\"),\n _const: createKeyword(\"const\"),\n _with: createKeyword(\"with\"),\n _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n _this: createKeyword(\"this\", { startsExpr }),\n _super: createKeyword(\"super\", { startsExpr }),\n _class: createKeyword(\"class\", { startsExpr }),\n _extends: createKeyword(\"extends\", { beforeExpr }),\n _export: createKeyword(\"export\"),\n _import: createKeyword(\"import\", { startsExpr }),\n _null: createKeyword(\"null\", { startsExpr }),\n _true: createKeyword(\"true\", { startsExpr }),\n _false: createKeyword(\"false\", { startsExpr }),\n _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n // start: isLoop\n _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n _for: createKeyword(\"for\", { isLoop }),\n _while: createKeyword(\"while\", { isLoop }),\n // end: isLoop\n // end: isKeyword\n\n // Primary literals\n // start: isIdentifier\n _as: createKeywordLike(\"as\", { startsExpr }),\n _assert: createKeywordLike(\"assert\", { startsExpr }),\n _async: createKeywordLike(\"async\", { startsExpr }),\n _await: createKeywordLike(\"await\", { startsExpr }),\n _defer: createKeywordLike(\"defer\", { startsExpr }),\n _from: createKeywordLike(\"from\", { startsExpr }),\n _get: createKeywordLike(\"get\", { startsExpr }),\n _let: createKeywordLike(\"let\", { startsExpr }),\n _meta: createKeywordLike(\"meta\", { startsExpr }),\n _of: createKeywordLike(\"of\", { startsExpr }),\n _sent: createKeywordLike(\"sent\", { startsExpr }),\n _set: createKeywordLike(\"set\", { startsExpr }),\n _source: createKeywordLike(\"source\", { startsExpr }),\n _static: createKeywordLike(\"static\", { startsExpr }),\n _using: createKeywordLike(\"using\", { startsExpr }),\n _yield: createKeywordLike(\"yield\", { startsExpr }),\n\n // Flow and TypeScript Keywordlike\n _asserts: createKeywordLike(\"asserts\", { startsExpr }),\n _checks: createKeywordLike(\"checks\", { startsExpr }),\n _exports: createKeywordLike(\"exports\", { startsExpr }),\n _global: createKeywordLike(\"global\", { startsExpr }),\n _implements: createKeywordLike(\"implements\", { startsExpr }),\n _intrinsic: createKeywordLike(\"intrinsic\", { startsExpr }),\n _infer: createKeywordLike(\"infer\", { startsExpr }),\n _is: createKeywordLike(\"is\", { startsExpr }),\n _mixins: createKeywordLike(\"mixins\", { startsExpr }),\n _proto: createKeywordLike(\"proto\", { startsExpr }),\n _require: createKeywordLike(\"require\", { startsExpr }),\n _satisfies: createKeywordLike(\"satisfies\", { startsExpr }),\n // start: isTSTypeOperator\n _keyof: createKeywordLike(\"keyof\", { startsExpr }),\n _readonly: createKeywordLike(\"readonly\", { startsExpr }),\n _unique: createKeywordLike(\"unique\", { startsExpr }),\n // end: isTSTypeOperator\n // start: isTSDeclarationStart\n _abstract: createKeywordLike(\"abstract\", { startsExpr }),\n _declare: createKeywordLike(\"declare\", { startsExpr }),\n _enum: createKeywordLike(\"enum\", { startsExpr }),\n _module: createKeywordLike(\"module\", { startsExpr }),\n _namespace: createKeywordLike(\"namespace\", { startsExpr }),\n // start: isFlowInterfaceOrTypeOrOpaque\n _interface: createKeywordLike(\"interface\", { startsExpr }),\n _type: createKeywordLike(\"type\", { startsExpr }),\n // end: isTSDeclarationStart\n _opaque: createKeywordLike(\"opaque\", { startsExpr }),\n // end: isFlowInterfaceOrTypeOrOpaque\n name: createToken(\"name\", { startsExpr }),\n // end: isIdentifier\n\n string: createToken(\"string\", { startsExpr }),\n num: createToken(\"num\", { startsExpr }),\n bigint: createToken(\"bigint\", { startsExpr }),\n decimal: createToken(\"decimal\", { startsExpr }),\n // end: isLiteralPropertyName\n regexp: createToken(\"regexp\", { startsExpr }),\n privateName: createToken(\"#name\", { startsExpr }),\n eof: createToken(\"eof\"),\n\n // jsx plugin\n jsxName: createToken(\"jsxName\"),\n jsxText: createToken(\"jsxText\", { beforeExpr: true }),\n jsxTagStart: createToken(\"jsxTagStart\", { startsExpr: true }),\n jsxTagEnd: createToken(\"jsxTagEnd\"),\n\n // placeholder plugin\n placeholder: createToken(\"%%\", { startsExpr: true }),\n} as const;\n\nexport function tokenIsIdentifier(token: TokenType): boolean {\n return token >= tt._as && token <= tt.name;\n}\n\nexport function tokenKeywordOrIdentifierIsKeyword(token: TokenType): boolean {\n // we can remove the token >= tt._in check when we\n // know a token is either keyword or identifier\n return token <= tt._while;\n}\n\nexport function tokenIsKeywordOrIdentifier(token: TokenType): boolean {\n return token >= tt._in && token <= tt.name;\n}\n\nexport function tokenIsLiteralPropertyName(token: TokenType): boolean {\n return token >= tt._in && token <= tt.decimal;\n}\n\nexport function tokenComesBeforeExpression(token: TokenType): boolean {\n return tokenBeforeExprs[token];\n}\n\nexport function tokenCanStartExpression(token: TokenType): boolean {\n return tokenStartsExprs[token];\n}\n\nexport function tokenIsAssignment(token: TokenType): boolean {\n return token >= tt.eq && token <= tt.moduloAssign;\n}\n\nexport function tokenIsFlowInterfaceOrTypeOrOpaque(token: TokenType): boolean {\n return token >= tt._interface && token <= tt._opaque;\n}\n\nexport function tokenIsLoop(token: TokenType): boolean {\n return token >= tt._do && token <= tt._while;\n}\n\nexport function tokenIsKeyword(token: TokenType): boolean {\n return token >= tt._in && token <= tt._while;\n}\n\nexport function tokenIsOperator(token: TokenType): boolean {\n return token >= tt.pipeline && token <= tt._instanceof;\n}\n\nexport function tokenIsPostfix(token: TokenType): boolean {\n return token === tt.incDec;\n}\n\nexport function tokenIsPrefix(token: TokenType): boolean {\n return tokenPrefixes[token];\n}\n\nexport function tokenIsTSTypeOperator(token: TokenType): boolean {\n return token >= tt._keyof && token <= tt._unique;\n}\n\nexport function tokenIsTSDeclarationStart(token: TokenType): boolean {\n return token >= tt._abstract && token <= tt._type;\n}\n\nexport function tokenLabelName(token: TokenType): string {\n return tokenLabels[token];\n}\n\nexport function tokenOperatorPrecedence(token: TokenType): number {\n return tokenBinops[token];\n}\n\nexport function tokenIsBinaryOperator(token: TokenType): boolean {\n return tokenBinops[token] !== -1;\n}\n\nexport function tokenIsRightAssociative(token: TokenType): boolean {\n return token === tt.exponent;\n}\n\nexport function tokenIsTemplate(token: TokenType): boolean {\n return token >= tt.templateTail && token <= tt.templateNonTail;\n}\n\nexport function getExportedToken(token: TokenType): ExportedTokenType {\n return tokenTypes[token];\n}\n\nexport function isTokenType(obj: any): boolean {\n return typeof obj === \"number\";\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n tokenTypes[tt.braceR].updateContext = context => {\n context.pop();\n };\n\n tokenTypes[tt.braceL].updateContext =\n tokenTypes[tt.braceHashL].updateContext =\n tokenTypes[tt.dollarBraceL].updateContext =\n context => {\n context.push(tc.brace);\n };\n\n tokenTypes[tt.backQuote].updateContext = context => {\n if (context[context.length - 1] === tc.template) {\n context.pop();\n } else {\n context.push(tc.template);\n }\n };\n\n tokenTypes[tt.jsxTagStart].updateContext = context => {\n context.push(tc.j_expr, tc.j_oTag);\n };\n}\n","import * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\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-\\u1c88\\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-\\ua7ca\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7d9\\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\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\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\\u0898-\\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\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\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,68,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,349,41,7,1,79,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,159,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,264,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,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,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,757,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];\n/* prettier-ignore */\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,370,1,81,2,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,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,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,406,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,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,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,983,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\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\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\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","const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n","import * as charCodes from \"charcodes\";\nimport { isIdentifierStart } from \"@babel/helper-validator-identifier\";\n\nexport {\n isIdentifierStart,\n isIdentifierChar,\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(\n current: number,\n next: number,\n next2: number,\n): boolean {\n return (\n current === charCodes.atSign &&\n next === charCodes.atSign &&\n isIdentifierStart(next2)\n );\n}\n\n// This is the comprehensive set of JavaScript reserved words\n// If a word is in this set, it could be a reserved word,\n// depending on sourceType/strictMode/binding info. In other words\n// if a word is not in this set, it is not a reserved word under\n// any circumstance.\nconst reservedWordLikeSet = new Set([\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n // strict\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n // strictBind\n \"eval\",\n \"arguments\",\n // reservedWorkLike\n \"enum\",\n \"await\",\n]);\n\nexport function canBeReservedWord(word: string): boolean {\n return reservedWordLikeSet.has(word);\n}\n","import { ScopeFlag, BindingFlag, type BindingTypes } from \"./scopeflags.ts\";\nimport type { Position } from \"./location.ts\";\nimport type * as N from \"../types.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type Tokenizer from \"../tokenizer/index.ts\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n declare flags: ScopeFlag;\n // A set of var-declared names in the current lexical scope\n var: Set<string> = new Set();\n // A set of lexically-declared names in the current lexical scope\n lexical: Set<string> = new Set();\n // A set of lexically-declared FunctionDeclaration names in the current lexical scope\n functions: Set<string> = new Set();\n\n constructor(flags: ScopeFlag) {\n this.flags = flags;\n }\n}\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler<IScope extends Scope = Scope> {\n parser: Tokenizer;\n scopeStack: Array<IScope> = [];\n inModule: boolean;\n undefinedExports: Map<string, Position> = new Map();\n\n constructor(parser: Tokenizer, inModule: boolean) {\n this.parser = parser;\n this.inModule = inModule;\n }\n\n get inTopLevel() {\n return (this.currentScope().flags & ScopeFlag.PROGRAM) > 0;\n }\n get inFunction() {\n return (this.currentVarScopeFlags() & ScopeFlag.FUNCTION) > 0;\n }\n get allowSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.SUPER) > 0;\n }\n get allowDirectSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.DIRECT_SUPER) > 0;\n }\n get inClass() {\n return (this.currentThisScopeFlags() & ScopeFlag.CLASS) > 0;\n }\n get inClassAndNotInNonArrowFunction() {\n const flags = this.currentThisScopeFlags();\n return (flags & ScopeFlag.CLASS) > 0 && (flags & ScopeFlag.FUNCTION) === 0;\n }\n get inStaticBlock() {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.STATIC_BLOCK) {\n return true;\n }\n if (flags & (ScopeFlag.VAR | ScopeFlag.CLASS)) {\n // function body, module body, class property initializers\n return false;\n }\n }\n }\n get inNonArrowFunction() {\n return (this.currentThisScopeFlags() & ScopeFlag.FUNCTION) > 0;\n }\n get treatFunctionsAsVar() {\n return this.treatFunctionsAsVarInScope(this.currentScope());\n }\n\n createScope(flags: ScopeFlag): Scope {\n return new Scope(flags);\n }\n\n enter(flags: ScopeFlag) {\n /*:: +createScope: (flags:ScopeFlag) => IScope; */\n // @ts-expect-error This method will be overwritten by subclasses\n this.scopeStack.push(this.createScope(flags));\n }\n\n exit(): ScopeFlag {\n const scope = this.scopeStack.pop();\n return scope.flags;\n }\n\n // The spec says:\n // > At the top level of a function, or script, function declarations are\n // > treated like var declarations rather than like lexical declarations.\n treatFunctionsAsVarInScope(scope: IScope): boolean {\n return !!(\n scope.flags & (ScopeFlag.FUNCTION | ScopeFlag.STATIC_BLOCK) ||\n (!this.parser.inModule && scope.flags & ScopeFlag.PROGRAM)\n );\n }\n\n declareName(name: string, bindingType: BindingTypes, loc: Position) {\n let scope = this.currentScope();\n if (\n bindingType & BindingFlag.SCOPE_LEXICAL ||\n bindingType & BindingFlag.SCOPE_FUNCTION\n ) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n scope.functions.add(name);\n } else {\n scope.lexical.add(name);\n }\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n this.maybeExportDefined(scope, name);\n }\n } else if (bindingType & BindingFlag.SCOPE_VAR) {\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.var.add(name);\n this.maybeExportDefined(scope, name);\n\n if (scope.flags & ScopeFlag.VAR) break;\n }\n }\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n maybeExportDefined(scope: IScope, name: string) {\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n checkRedeclarationInScope(\n scope: IScope,\n name: string,\n bindingType: BindingTypes,\n loc: Position,\n ) {\n if (this.isRedeclaredInScope(scope, name, bindingType)) {\n this.parser.raise(Errors.VarRedeclaration, {\n at: loc,\n identifierName: name,\n });\n }\n }\n\n isRedeclaredInScope(\n scope: IScope,\n name: string,\n bindingType: BindingTypes,\n ): boolean {\n if (!(bindingType & BindingFlag.KIND_VALUE)) return false;\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n return (\n scope.lexical.has(name) ||\n scope.functions.has(name) ||\n scope.var.has(name)\n );\n }\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n return (\n scope.lexical.has(name) ||\n (!this.treatFunctionsAsVarInScope(scope) && scope.var.has(name))\n );\n }\n\n return (\n (scope.lexical.has(name) &&\n // Annex B.3.4\n // https://tc39.es/ecma262/#sec-variablestatements-in-catch-blocks\n !(\n scope.flags & ScopeFlag.SIMPLE_CATCH &&\n scope.lexical.values().next().value === name\n )) ||\n (!this.treatFunctionsAsVarInScope(scope) && scope.functions.has(name))\n );\n }\n\n checkLocalExport(id: N.Identifier) {\n const { name } = id;\n const topLevelScope = this.scopeStack[0];\n if (\n !topLevelScope.lexical.has(name) &&\n !topLevelScope.var.has(name) &&\n // In strict mode, scope.functions will always be empty.\n // Modules are strict by default, but the `scriptMode` option\n // can overwrite this behavior.\n !topLevelScope.functions.has(name)\n ) {\n this.undefinedExports.set(name, id.loc.start);\n }\n }\n\n currentScope(): IScope {\n return this.scopeStack[this.scopeStack.length - 1];\n }\n\n currentVarScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.VAR) {\n return flags;\n }\n }\n }\n\n // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n currentThisScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (\n flags & (ScopeFlag.VAR | ScopeFlag.CLASS) &&\n !(flags & ScopeFlag.ARROW)\n ) {\n return flags;\n }\n }\n }\n}\n","import type { Position } from \"../../util/location.ts\";\nimport ScopeHandler, { Scope } from \"../../util/scope.ts\";\nimport {\n BindingFlag,\n type ScopeFlag,\n type BindingTypes,\n} from \"../../util/scopeflags.ts\";\nimport type * as N from \"../../types.ts\";\n\n// Reference implementation: https://github.com/facebook/flow/blob/23aeb2a2ef6eb4241ce178fde5d8f17c5f747fb5/src/typing/env.ml#L536-L584\nclass FlowScope extends Scope {\n // declare function foo(): type;\n declareFunctions: Set<string> = new Set();\n}\n\nexport default class FlowScopeHandler extends ScopeHandler<FlowScope> {\n createScope(flags: ScopeFlag): FlowScope {\n return new FlowScope(flags);\n }\n\n declareName(name: string, bindingType: BindingTypes, loc: Position) {\n const scope = this.currentScope();\n if (bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.add(name);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n }\n\n isRedeclaredInScope(\n scope: FlowScope,\n name: string,\n bindingType: BindingTypes,\n ): boolean {\n if (super.isRedeclaredInScope(scope, name, bindingType)) return true;\n\n if (bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN) {\n return (\n !scope.declareFunctions.has(name) &&\n (scope.lexical.has(name) || scope.functions.has(name))\n );\n }\n\n return false;\n }\n\n checkLocalExport(id: N.Identifier) {\n if (!this.scopeStack[0].declareFunctions.has(id.name)) {\n super.checkLocalExport(id);\n }\n }\n}\n","import type { Options } from \"../options.ts\";\nimport type State from \"../tokenizer/state.ts\";\nimport type { PluginsMap } from \"./index.ts\";\nimport type ScopeHandler from \"../util/scope.ts\";\nimport type ExpressionScopeHandler from \"../util/expression-scope.ts\";\nimport type ClassScopeHandler from \"../util/class-scope.ts\";\nimport type ProductionParameterHandler from \"../util/production-parameter.ts\";\nimport type {\n ParserPluginWithOptions,\n PluginConfig,\n PluginOptions,\n} from \"../typings.ts\";\n\nexport default class BaseParser {\n // Properties set by constructor in index.js\n declare options: Options;\n declare inModule: boolean;\n declare scope: ScopeHandler<any>;\n declare classScope: ClassScopeHandler;\n declare prodParam: ProductionParameterHandler;\n declare expressionScope: ExpressionScopeHandler;\n declare plugins: PluginsMap;\n declare filename: string | undefined | null;\n // Names of exports store. `default` is stored as a name for both\n // `export default foo;` and `export { foo as default };`.\n declare exportedIdentifiers: Set<string>;\n sawUnambiguousESM: boolean = false;\n ambiguousScriptDifferentAst: boolean = false;\n\n // Initialized by Tokenizer\n declare state: State;\n // input and length are not in state as they are constant and we do\n // not want to ever copy them, which happens if state gets cloned\n declare input: string;\n declare length: number;\n\n // This method accepts either a string (plugin name) or an array pair\n // (plugin name and options object). If an options object is given,\n // then each value is non-recursively checked for identity with that\n // plugin’s actual option value.\n hasPlugin(pluginConfig: PluginConfig): boolean {\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(\n pluginOptions,\n ) as (keyof typeof pluginOptions)[]) {\n if (actualOptions?.[key] !== pluginOptions[key]) {\n return false;\n }\n }\n return true;\n }\n }\n\n getPluginOption<\n PluginName extends ParserPluginWithOptions[0],\n OptionName extends keyof PluginOptions<PluginName>,\n >(plugin: PluginName, name: OptionName) {\n return (this.plugins.get(plugin) as null | PluginOptions<PluginName>)?.[\n name\n ];\n }\n}\n","/*:: declare var invariant; */\n\nimport BaseParser from \"./base.ts\";\nimport type { Comment, Node, Identifier } from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport type { Undone } from \"./node.ts\";\n\n/**\n * A whitespace token containing comments\n */\nexport type CommentWhitespace = {\n /**\n * the start of the whitespace token.\n */\n start: number;\n /**\n * the end of the whitespace token.\n */\n end: number;\n /**\n * the containing comments\n */\n comments: Array<Comment>;\n /**\n * the immediately preceding AST node of the whitespace token\n */\n leadingNode: Node | null;\n /**\n * the immediately following AST node of the whitespace token\n */\n trailingNode: Node | null;\n /**\n * the innermost AST node containing the whitespace with minimal size (|end - start|)\n */\n containingNode: Node | null;\n};\n\n/**\n * Merge comments with node's trailingComments or assign comments to be\n * trailingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setTrailingComments(node: Undone<Node>, comments: Array<Comment>) {\n if (node.trailingComments === undefined) {\n node.trailingComments = comments;\n } else {\n node.trailingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's leadingComments or assign comments to be\n * leadingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setLeadingComments(node: Undone<Node>, comments: Array<Comment>) {\n if (node.leadingComments === undefined) {\n node.leadingComments = comments;\n } else {\n node.leadingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's innerComments or assign comments to be\n * innerComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nexport function setInnerComments(\n node: Undone<Node>,\n comments?: Array<Comment>,\n) {\n if (node.innerComments === undefined) {\n node.innerComments = comments;\n } else {\n node.innerComments.unshift(...comments);\n }\n}\n\n/**\n * Given node and elements array, if elements has non-null element,\n * merge comments to its trailingComments, otherwise merge comments\n * to node's innerComments\n */\nfunction adjustInnerComments(\n node: Undone<Node>,\n elements: Array<Node>,\n commentWS: CommentWhitespace,\n) {\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}\n\nexport default class CommentsParser extends BaseParser {\n addComment(comment: Comment): void {\n if (this.filename) comment.loc.filename = this.filename;\n this.state.comments.push(comment);\n }\n\n /**\n * Given a newly created AST node _n_, attach _n_ to a comment whitespace _w_ if applicable\n * {@see {@link CommentWhitespace}}\n */\n processComment(node: Node): void {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n const lastCommentWS = commentStack[i];\n\n if (lastCommentWS.start === node.end) {\n lastCommentWS.leadingNode = node;\n i--;\n }\n\n const { start: nodeStart } = node;\n // invariant: for all 0 <= j <= i, let c = commentStack[j], c must satisfy c.end < node.end\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n if (commentEnd > nodeStart) {\n // by definition of commentWhiteSpace, this implies commentWS.start > nodeStart\n // so node can be a containingNode candidate. At this time we can finalize the comment\n // whitespace, because\n // 1) its leadingNode or trailingNode, if exists, will not change\n // 2) its containingNode have been assigned and will not change because it is the\n // innermost minimal-sized AST node\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 // stop the loop when commentEnd <= nodeStart\n break;\n }\n }\n }\n\n /**\n * Assign the comments of comment whitespaces to related AST nodes.\n * Also adjust innerComments following trailing comma.\n */\n finalizeComment(commentWS: CommentWhitespace) {\n const { comments } = 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 /*:: invariant(commentWS.containingNode !== null) */\n const { containingNode: node, start: commentStart } = commentWS;\n if (this.input.charCodeAt(commentStart - 1) === charCodes.comma) {\n // If a commentWhitespace follows a comma and the containingNode allows\n // list structures with trailing comma, merge it to the trailingComment\n // of the last non-null list element\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 default: {\n setInnerComments(node, comments);\n }\n }\n } else {\n setInnerComments(node, comments);\n }\n }\n }\n\n /**\n * Drains remaining commentStack and applies finalizeComment\n * to each comment whitespace. Used only in parseExpression\n * where the top level AST node is _not_ Program\n * {@see {@link CommentsParser#finalizeComment}}\n */\n finalizeRemainingComments() {\n const { commentStack } = this.state;\n for (let i = commentStack.length - 1; i >= 0; i--) {\n this.finalizeComment(commentStack[i]);\n }\n this.state.commentStack = [];\n }\n\n /* eslint-disable no-irregular-whitespace */\n /**\n * Reset previous node trailing comments. Used in object / class\n * property parsing. We parse `async`, `static`, `set` and `get`\n * as an identifier but may reinterpret it into an async/static/accessor\n * method later. In this case the identifier is not part of the AST and we\n * should sync the knowledge to commentStacks\n *\n * For example, when parsing\n * ```\n * async /* 1 */ function f() {}\n * ```\n * the comment whitespace `/* 1 */` has leading node Identifier(async). When\n * we see the function token, we create a Function node and mark `/* 1 */` as\n * inner comments. So `/* 1 */` should be detached from the Identifier node.\n *\n * @param node the last finished AST node _before_ current token\n */\n /* eslint-enable no-irregular-whitespace */\n resetPreviousNodeTrailingComments(node: Node) {\n const { commentStack } = this.state;\n const { length } = commentStack;\n if (length === 0) return;\n const commentWS = commentStack[length - 1];\n if (commentWS.leadingNode === node) {\n commentWS.leadingNode = null;\n }\n }\n\n /* eslint-disable no-irregular-whitespace */\n /**\n * Reset previous node leading comments, assuming that `node` is a\n * single-token node. Used in import phase modifiers parsing. We parse\n * `module` in `import module foo from ...` as an identifier but may\n * reinterpret it into a phase modifier later. In this case the identifier is\n * not part of the AST and we should sync the knowledge to commentStacks\n *\n * For example, when parsing\n * ```\n * import /* 1 */ module a from \"a\";\n * ```\n * the comment whitespace `/* 1 */` has trailing node Identifier(module). When\n * we see that `module` is not a default import binding, we mark `/* 1 */` as\n * inner comments of the ImportDeclaration. So `/* 1 */` should be detached from\n * the Identifier node.\n *\n * @param node the last finished AST node _before_ current token\n */\n /* eslint-enable no-irregular-whitespace */\n resetPreviousIdentifierLeadingComments(node: Identifier) {\n const { commentStack } = this.state;\n const { length } = commentStack;\n if (length === 0) return;\n\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\n /**\n * Attach a node to the comment whitespaces right before/after\n * the given range.\n *\n * This is used to properly attach comments around parenthesized\n * expressions as leading/trailing comments of the inner expression.\n */\n takeSurroundingComments(node: Node, start: number, end: number) {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n const commentStart = commentWS.start;\n\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}\n","import * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n switch (code) {\n case charCodes.lineFeed:\n case charCodes.carriageReturn:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return true;\n\n default:\n return false;\n }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nexport const skipWhiteSpaceInLine =\n /(?:[^\\S\\n\\r\\u2028\\u2029]|\\/\\/.*|\\/\\*.*?\\*\\/)*/g;\n\n// Skip whitespace and single-line comments, including /* no newline here */.\n// After this RegExp matches, its lastIndex points to a line terminator, or\n// the start of multi-line comment (which is effectively a line terminator),\n// or the end of string.\nexport const skipWhiteSpaceToLineBreak = new RegExp(\n // Unfortunately JS doesn't support Perl's atomic /(?>pattern)/ or\n // possessive quantifiers, so we use a trick to prevent backtracking\n // when the look-ahead for line terminator fails.\n \"(?=(\" +\n // Capture the whitespace and comments that should be skipped inside\n // a look-ahead assertion, and then re-match the group as a unit.\n skipWhiteSpaceInLine.source +\n \"))\\\\1\" +\n // Look-ahead for either line terminator, start of multi-line comment,\n // or end of string.\n /(?=[\\n\\r\\u2028\\u2029]|\\/\\*(?!.*?\\*\\/)|$)/.source,\n \"y\", // sticky\n);\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n switch (code) {\n case 0x0009: // CHARACTER TABULATION\n case 0x000b: // LINE TABULATION\n case 0x000c: // FORM FEED\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.oghamSpaceMark:\n case 0x2000: // EN QUAD\n case 0x2001: // EM QUAD\n case 0x2002: // EN SPACE\n case 0x2003: // EM SPACE\n case 0x2004: // THREE-PER-EM SPACE\n case 0x2005: // FOUR-PER-EM SPACE\n case 0x2006: // SIX-PER-EM SPACE\n case 0x2007: // FIGURE SPACE\n case 0x2008: // PUNCTUATION SPACE\n case 0x2009: // THIN SPACE\n case 0x200a: // HAIR SPACE\n case 0x202f: // NARROW NO-BREAK SPACE\n case 0x205f: // MEDIUM MATHEMATICAL SPACE\n case 0x3000: // IDEOGRAPHIC SPACE\n case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n return true;\n\n default:\n return false;\n }\n}\n","import type { Options } from \"../options.ts\";\nimport type * as N from \"../types.ts\";\nimport type { CommentWhitespace } from \"../parser/comments\";\nimport { Position } from \"../util/location.ts\";\n\nimport { types as ct, type TokContext } from \"./context.ts\";\nimport { tt, type TokenType } from \"./types.ts\";\nimport type { Errors } from \"../parse-error.ts\";\nimport type { ParseError } from \"../parse-error.ts\";\n\nexport type DeferredStrictError =\n | typeof Errors.StrictNumericEscape\n | typeof Errors.StrictOctalLiteral;\n\ntype TopicContextState = {\n // When a topic binding has been currently established,\n // then this is 1. Otherwise, it is 0. This is forwards compatible\n // with a future plugin for multiple lexical topics.\n maxNumOfResolvableTopics: number;\n // When a topic binding has been currently established, and if that binding\n // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n // `null`. This is forwards compatible with a future plugin for multiple\n // lexical topics.\n maxTopicIndex: null | 0;\n};\n\nexport default class State {\n strict: boolean;\n curLine: number;\n lineStart: number;\n\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n startLoc: Position;\n endLoc: Position;\n\n init({ strictMode, sourceType, startLine, startColumn }: Options): void {\n this.strict =\n strictMode === false\n ? false\n : strictMode === true\n ? true\n : sourceType === \"module\";\n\n this.curLine = startLine;\n this.lineStart = -startColumn;\n this.startLoc = this.endLoc = new Position(startLine, startColumn, 0);\n }\n\n errors: ParseError<any>[] = [];\n\n // Used to signify the start of a potential arrow function\n potentialArrowAt: number = -1;\n\n // Used to signify the start of an expression which looks like a\n // typed arrow function, but it isn't\n // e.g. a ? (b) : c => d\n // ^\n noArrowAt: number[] = [];\n\n // Used to signify the start of an expression whose params, if it looks like\n // an arrow function, shouldn't be converted to assignable nodes.\n // This is used to defer the validation of typed arrow functions inside\n // conditional expressions.\n // e.g. a ? (b) : c => d\n // ^\n noArrowParamsConversionAt: number[] = [];\n\n // Flags to track\n maybeInArrowParameters: boolean = false;\n inType: boolean = false;\n noAnonFunctionType: boolean = false;\n hasFlowComment: boolean = false;\n isAmbientContext: boolean = false;\n inAbstractClass: boolean = false;\n inDisallowConditionalTypesContext: boolean = false;\n\n // For the Hack-style pipelines plugin\n topicContext: TopicContextState = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null,\n };\n\n // For the F#-style pipelines plugin\n soloAwait: boolean = false;\n inFSharpPipelineDirectBody: boolean = false;\n\n // Labels in scope.\n labels: Array<{\n kind: \"loop\" | \"switch\" | undefined | null;\n name?: string | null;\n statementStart?: number;\n }> = [];\n\n // Comment store for Program.comments\n comments: Array<N.Comment> = [];\n\n // Comment attachment store\n commentStack: Array<CommentWhitespace> = [];\n\n // The current position of the tokenizer in the input.\n pos: number = 0;\n\n // Properties of the current token:\n // Its type\n type: TokenType = tt.eof;\n\n // For tokens that include more information than their type, the value\n value: any = null;\n\n // Its start and end offset\n start: number = 0;\n end: number = 0;\n\n // Position information for the previous token\n // this is initialized when generating the second token.\n lastTokEndLoc: Position = null;\n // this is initialized when generating the second token.\n lastTokStartLoc: Position = null;\n lastTokStart: number = 0;\n\n // The context stack is used to track whether the apostrophe \"`\" starts\n // or ends a string template\n context: Array<TokContext> = [ct.brace];\n // Used to track whether a JSX element is allowed to form\n canStartJSXElement: boolean = true;\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n containsEsc: boolean = false;\n\n // Used to track invalid escape sequences in template literals,\n // that must be reported if the template is not tagged.\n firstInvalidTemplateEscapePos: null | Position = null;\n\n // This property is used to track the following errors\n // - StrictNumericEscape\n // - StrictOctalLiteral\n //\n // in a literal that occurs prior to/immediately after a \"use strict\" directive.\n\n // todo(JLHwung): set strictErrors to null and avoid recording string errors\n // after a non-directive is parsed\n strictErrors: Map<number, [DeferredStrictError, Position]> = new Map();\n\n // Tokens length in token store\n tokensLength: number = 0;\n\n curPosition(): Position {\n return new Position(this.curLine, this.pos - this.lineStart, this.pos);\n }\n\n clone(skipArrays?: boolean): State {\n const state = new State();\n const keys = Object.keys(this) as (keyof State)[];\n for (let i = 0, length = keys.length; i < length; i++) {\n const key = keys[i];\n let val = this[key];\n\n if (!skipArrays && Array.isArray(val)) {\n val = val.slice();\n }\n\n // @ts-expect-error val must conform to S[key]\n state[key] = val;\n }\n\n return state;\n }\n}\n\nexport type LookaheadState = {\n pos: number;\n value: any;\n type: TokenType;\n start: number;\n end: number;\n context: TokContext[];\n startLoc: Position;\n lastTokEndLoc: Position;\n curLine: number;\n lineStart: number;\n curPosition: () => Position;\n /* Used only in readToken_mult_modulo */\n inType: boolean;\n // These boolean properties are not initialized in createLookaheadState()\n // instead they will only be set by the tokenizer\n containsEsc?: boolean;\n};\n","import * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = 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 === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\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 process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = input.slice(startPos, pos + 2).match(/^[0-7]+/)!;\n\n let octalStr = match[0];\n\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 (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\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: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n","/*:: declare var invariant; */\n\nimport type { Options } from \"../options.ts\";\nimport {\n Position,\n SourceLocation,\n createPositionWithColumnOffset,\n} from \"../util/location.ts\";\nimport CommentsParser, { type CommentWhitespace } from \"../parser/comments.ts\";\nimport type * as N from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier.ts\";\nimport {\n tokenIsKeyword,\n tokenLabelName,\n tt,\n keywords as keywordTypes,\n type TokenType,\n} from \"./types.ts\";\nimport type { TokContext } from \"./context.ts\";\nimport {\n Errors,\n type ParseError,\n type ParseErrorConstructor,\n type RaiseProperties,\n} from \"../parse-error.ts\";\nimport {\n lineBreakG,\n isNewLine,\n isWhitespace,\n skipWhiteSpace,\n skipWhiteSpaceInLine,\n} from \"../util/whitespace.ts\";\nimport State from \"./state.ts\";\nimport type { LookaheadState, DeferredStrictError } from \"./state.ts\";\n\nimport {\n readInt,\n readCodePoint,\n readStringContents,\n type IntErrorHandlers,\n type CodePointErrorHandlers,\n type StringContentsErrorHandlers,\n} from \"@babel/helper-string-parser\";\n\nimport type { Plugin } from \"../typings.ts\";\n\nfunction buildPosition(pos: number, lineStart: number, curLine: number) {\n return new Position(curLine, pos - lineStart, pos);\n}\n\nconst VALID_REGEX_FLAGS = new Set([\n charCodes.lowercaseG,\n charCodes.lowercaseM,\n charCodes.lowercaseS,\n charCodes.lowercaseI,\n charCodes.lowercaseY,\n charCodes.lowercaseU,\n charCodes.lowercaseD,\n charCodes.lowercaseV,\n]);\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n constructor(state: State) {\n this.type = state.type;\n this.value = state.value;\n this.start = state.start;\n this.end = state.end;\n this.loc = new SourceLocation(state.startLoc, state.endLoc);\n }\n\n declare type: TokenType;\n declare value: any;\n declare start: number;\n declare end: number;\n declare loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default abstract class Tokenizer extends CommentsParser {\n isLookahead: boolean;\n\n // Token store.\n tokens: Array<Token | N.Comment> = [];\n\n constructor(options: Options, input: string) {\n super();\n this.state = new State();\n this.state.init(options);\n this.input = input;\n this.length = input.length;\n this.isLookahead = false;\n }\n\n pushToken(token: Token | N.Comment) {\n // Pop out invalid tokens trapped by try-catch parsing.\n // Those parsing branches are mainly created by typescript and flow plugins.\n this.tokens.length = this.state.tokensLength;\n this.tokens.push(token);\n ++this.state.tokensLength;\n }\n\n // Move to the next token\n\n next(): void {\n this.checkKeywordEscapes();\n if (this.options.tokens) {\n this.pushToken(new Token(this.state));\n }\n\n this.state.lastTokStart = this.state.start;\n this.state.lastTokEndLoc = this.state.endLoc;\n this.state.lastTokStartLoc = this.state.startLoc;\n this.nextToken();\n }\n\n eat(type: TokenType): boolean {\n if (this.match(type)) {\n this.next();\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Whether current token matches given type\n */\n match(type: TokenType): boolean {\n return this.state.type === type;\n }\n\n /**\n * Create a LookaheadState from current parser state\n */\n createLookaheadState(state: State): LookaheadState {\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\n /**\n * lookahead peeks the next token, skipping changes to token context and\n * comment stack. For performance it returns a limited LookaheadState\n * instead of full parser state.\n *\n * The { column, line } Loc info is not included in lookahead since such usage\n * is rare. Although it may return other location properties e.g. `curLine` and\n * `lineStart`, these properties are not listed in the LookaheadState interface\n * and thus the returned value is _NOT_ reliable.\n *\n * The tokenizer should make best efforts to avoid using any parser state\n * other than those defined in LookaheadState\n */\n lookahead(): LookaheadState {\n const old = this.state;\n // @ts-expect-error For performance we use a simplified tokenizer state structure\n this.state = this.createLookaheadState(old);\n\n this.isLookahead = true;\n this.nextToken();\n this.isLookahead = false;\n\n const curr = this.state;\n this.state = old;\n return curr;\n }\n\n nextTokenStart(): number {\n return this.nextTokenStartSince(this.state.pos);\n }\n\n nextTokenStartSince(pos: number): number {\n skipWhiteSpace.lastIndex = pos;\n return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos;\n }\n\n lookaheadCharCode(): number {\n return this.input.charCodeAt(this.nextTokenStart());\n }\n\n /**\n * Similar to nextToken, but it will stop at line break when it is seen before the next token\n *\n * @returns {number} position of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n nextTokenInLineStart(): number {\n return this.nextTokenInLineStartSince(this.state.pos);\n }\n\n nextTokenInLineStartSince(pos: number): number {\n skipWhiteSpaceInLine.lastIndex = pos;\n return skipWhiteSpaceInLine.test(this.input)\n ? skipWhiteSpaceInLine.lastIndex\n : pos;\n }\n\n /**\n * Similar to lookaheadCharCode, but it will return the char code of line break if it is\n * seen before the next token\n *\n * @returns {number} char code of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n lookaheadInLineCharCode(): number {\n return this.input.charCodeAt(this.nextTokenInLineStart());\n }\n\n codePointAtPos(pos: number): number {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `input` is mostly ASCII, an inlined `charCodeAt` wins here\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\n // Toggle strict mode. Re-reads the next number or string to please\n // pedantic tests (`\"use strict\"; 010;` should fail).\n\n setStrict(strict: boolean): void {\n this.state.strict = strict;\n if (strict) {\n // Throw an error for any string decimal escape found before/immediately\n // after a \"use strict\" directive. Strict mode will be set at parse\n // time for any literals that occur after the next node of the strict\n // directive.\n this.state.strictErrors.forEach(([toParseError, at]) =>\n this.raise(toParseError, { at }),\n );\n this.state.strictErrors.clear();\n }\n }\n\n curContext(): TokContext {\n return this.state.context[this.state.context.length - 1];\n }\n\n // Read a single token, updating the parser object's token-related properties.\n nextToken(): void {\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(tt.eof);\n return;\n }\n\n this.getTokenFromCode(this.codePointAtPos(this.state.pos));\n }\n\n // Skips a block comment, whose end is marked by commentEnd.\n // *-/ is used by the Flow plugin, when parsing block comments nested\n // inside Flow comments.\n skipBlockComment(commentEnd: \"*/\" | \"*-/\"): N.CommentBlock | undefined {\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 // We have to call this again here because startLoc may not be set...\n // This seems to be for performance reasons:\n // https://github.com/babel/babel/commit/acf2a10899f696a8aaf34df78bf9725b5ea7f2da\n throw this.raise(Errors.UnterminatedComment, {\n at: this.state.curPosition(),\n });\n }\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\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n /*:: invariant(startLoc) */\n\n const comment: N.CommentBlock = {\n type: \"CommentBlock\",\n value: this.input.slice(start + 2, end),\n start,\n end: end + commentEnd.length,\n loc: new SourceLocation(startLoc, this.state.curPosition()),\n };\n if (this.options.tokens) this.pushToken(comment);\n return comment;\n }\n\n skipLineComment(startSkip: number): N.CommentLine | undefined {\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\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n /*:: invariant(startLoc) */\n\n const end = this.state.pos;\n const value = this.input.slice(start + startSkip, end);\n\n const comment: N.CommentLine = {\n type: \"CommentLine\",\n value,\n start,\n end,\n loc: new SourceLocation(startLoc, this.state.curPosition()),\n };\n if (this.options.tokens) this.pushToken(comment);\n return comment;\n }\n\n // Called at the start of the parse and after every token. Skips\n // whitespace and comments, and.\n\n skipSpace(): void {\n const spaceStart = this.state.pos;\n const comments = [];\n loop: while (this.state.pos < this.length) {\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.tab:\n ++this.state.pos;\n break;\n case charCodes.carriageReturn:\n if (\n this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n ) {\n ++this.state.pos;\n }\n // fall through\n case charCodes.lineFeed:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n ++this.state.pos;\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n break;\n\n case charCodes.slash:\n switch (this.input.charCodeAt(this.state.pos + 1)) {\n case charCodes.asterisk: {\n const comment = this.skipBlockComment(\"*/\");\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n break;\n }\n\n case charCodes.slash: {\n const comment = this.skipLineComment(2);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n break;\n }\n\n default:\n break loop;\n }\n break;\n\n default:\n if (isWhitespace(ch)) {\n ++this.state.pos;\n } else if (\n ch === charCodes.dash &&\n !this.inModule &&\n this.options.annexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.dash &&\n this.input.charCodeAt(pos + 2) === charCodes.greaterThan &&\n (spaceStart === 0 || this.state.lineStart > spaceStart)\n ) {\n // A `-->` line comment\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n } else {\n break loop;\n }\n } else if (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.options.annexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.exclamationMark &&\n this.input.charCodeAt(pos + 2) === charCodes.dash &&\n this.input.charCodeAt(pos + 3) === charCodes.dash\n ) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n const comment = this.skipLineComment(4);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n } else {\n break loop;\n }\n } else {\n break loop;\n }\n }\n }\n\n if (comments.length > 0) {\n const end = this.state.pos;\n const commentWhitespace: CommentWhitespace = {\n start: spaceStart,\n end,\n comments,\n leadingNode: null,\n trailingNode: null,\n containingNode: null,\n };\n this.state.commentStack.push(commentWhitespace);\n }\n }\n\n // Called at the end of every token. Sets `end`, `val`, and\n // maintains `context` and `canStartJSXElement`, and skips the space after\n // the token, so that the next one's `start` will point at the\n // right position.\n\n finishToken(type: TokenType, val?: any): void {\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\n if (!this.isLookahead) {\n this.updateContext(prevType);\n }\n }\n\n replaceToken(type: TokenType): void {\n this.state.type = type;\n // @ts-expect-error the prevType of updateContext is required\n // only when the new type is tt.slash/tt.jsxTagEnd\n this.updateContext();\n }\n\n // ### Token reading\n\n // This is the function that is called to fetch the next token. It\n // is somewhat obscure, because it works in character codes rather\n // than characters, and because operator parsing has been inlined\n // into it.\n //\n // All in the name of speed.\n\n // number sign is \"#\"\n readToken_numberSign(): void {\n if (this.state.pos === 0 && this.readToken_interpreter()) {\n return;\n }\n\n const nextPos = this.state.pos + 1;\n const next = this.codePointAtPos(nextPos);\n if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n throw this.raise(Errors.UnexpectedDigitAfterHash, {\n at: this.state.curPosition(),\n });\n }\n\n if (\n next === charCodes.leftCurlyBrace ||\n (next === charCodes.leftSquareBracket && this.hasPlugin(\"recordAndTuple\"))\n ) {\n // When we see `#{`, it is likely to be a hash record.\n // However we don't yell at `#[` since users may intend to use \"computed private fields\",\n // which is not allowed in the spec. Throwing expecting recordAndTuple is\n // misleading\n this.expectPlugin(\"recordAndTuple\");\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") === \"bar\") {\n throw this.raise(\n next === charCodes.leftCurlyBrace\n ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n { at: this.state.curPosition() },\n );\n }\n\n this.state.pos += 2;\n if (next === charCodes.leftCurlyBrace) {\n // #{\n this.finishToken(tt.braceHashL);\n } else {\n // #[\n this.finishToken(tt.bracketHashL);\n }\n } else if (isIdentifierStart(next)) {\n ++this.state.pos;\n this.finishToken(tt.privateName, this.readWord1(next));\n } else if (next === charCodes.backslash) {\n ++this.state.pos;\n this.finishToken(tt.privateName, this.readWord1());\n } else {\n this.finishOp(tt.hash, 1);\n }\n }\n\n readToken_dot(): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n this.readNumber(true);\n return;\n }\n\n if (\n next === charCodes.dot &&\n this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n ) {\n this.state.pos += 3;\n this.finishToken(tt.ellipsis);\n } else {\n ++this.state.pos;\n this.finishToken(tt.dot);\n }\n }\n\n readToken_slash(): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.slashAssign, 2);\n } else {\n this.finishOp(tt.slash, 1);\n }\n }\n\n readToken_interpreter(): boolean {\n if (this.state.pos !== 0 || this.length < 2) return false;\n\n let ch = this.input.charCodeAt(this.state.pos + 1);\n if (ch !== charCodes.exclamationMark) return false;\n\n const start = this.state.pos;\n this.state.pos += 1;\n\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n\n const value = this.input.slice(start + 2, this.state.pos);\n\n this.finishToken(tt.interpreterDirective, value);\n\n return true;\n }\n\n readToken_mult_modulo(code: number): void {\n // '%' or '*'\n let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n let width = 1;\n let next = this.input.charCodeAt(this.state.pos + 1);\n\n // Exponentiation operator '**'\n if (code === charCodes.asterisk && next === charCodes.asterisk) {\n width++;\n next = this.input.charCodeAt(this.state.pos + 2);\n type = tt.exponent;\n }\n\n // '%=' or '*='\n if (next === charCodes.equalsTo && !this.state.inType) {\n width++;\n // `tt.moduloAssign` is only needed to support % as a Hack-pipe topic token.\n // If the proposal ends up choosing a different token,\n // it can be merged with tt.assign.\n type = code === charCodes.percentSign ? tt.moduloAssign : tt.assign;\n }\n\n this.finishOp(type, width);\n }\n\n readToken_pipe_amp(code: number): void {\n // '||' '&&' '||=' '&&='\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n if (next === code) {\n if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n this.finishOp(tt.assign, 3);\n } else {\n this.finishOp(\n code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n 2,\n );\n }\n return;\n }\n\n if (code === charCodes.verticalBar) {\n // '|>'\n if (next === charCodes.greaterThan) {\n this.finishOp(tt.pipeline, 2);\n return;\n }\n // '|}'\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n next === charCodes.rightCurlyBrace\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, {\n at: this.state.curPosition(),\n });\n }\n this.state.pos += 2;\n this.finishToken(tt.braceBarR);\n return;\n }\n\n // '|]'\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n next === charCodes.rightSquareBracket\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, {\n at: this.state.curPosition(),\n });\n }\n this.state.pos += 2;\n this.finishToken(tt.bracketBarR);\n return;\n }\n }\n\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.assign, 2);\n return;\n }\n\n this.finishOp(\n code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n 1,\n );\n }\n\n readToken_caret(): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n // '^='\n if (next === charCodes.equalsTo && !this.state.inType) {\n // `tt.xorAssign` is only needed to support ^ as a Hack-pipe topic token.\n // If the proposal ends up choosing a different token,\n // it can be merged with tt.assign.\n this.finishOp(tt.xorAssign, 2);\n }\n // '^^'\n else if (\n next === charCodes.caret &&\n // If the ^^ token is not enabled, we don't throw but parse two single ^s\n // because it could be a ^ hack token followed by a ^ binary operator.\n this.hasPlugin([\n \"pipelineOperator\",\n { proposal: \"hack\", topicToken: \"^^\" },\n ])\n ) {\n this.finishOp(tt.doubleCaret, 2);\n\n // `^^^` is forbidden and must be separated by a space.\n const lookaheadCh = this.input.codePointAt(this.state.pos);\n if (lookaheadCh === charCodes.caret) {\n this.unexpected();\n }\n }\n // '^'\n else {\n this.finishOp(tt.bitwiseXOR, 1);\n }\n }\n\n readToken_atSign(): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n // '@@'\n if (\n next === charCodes.atSign &&\n this.hasPlugin([\n \"pipelineOperator\",\n { proposal: \"hack\", topicToken: \"@@\" },\n ])\n ) {\n this.finishOp(tt.doubleAt, 2);\n }\n // '@'\n else {\n this.finishOp(tt.at, 1);\n }\n }\n\n readToken_plus_min(code: number): void {\n // '+-'\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n if (next === code) {\n this.finishOp(tt.incDec, 2);\n return;\n }\n\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.assign, 2);\n } else {\n this.finishOp(tt.plusMin, 1);\n }\n }\n\n readToken_lt(): void {\n // '<'\n const { pos } = this.state;\n const next = this.input.charCodeAt(pos + 1);\n\n if (next === charCodes.lessThan) {\n if (this.input.charCodeAt(pos + 2) === charCodes.equalsTo) {\n this.finishOp(tt.assign, 3);\n return;\n }\n this.finishOp(tt.bitShiftL, 2);\n return;\n }\n\n if (next === charCodes.equalsTo) {\n // <=\n this.finishOp(tt.relational, 2);\n return;\n }\n\n this.finishOp(tt.lt, 1);\n }\n\n readToken_gt(): void {\n // '>'\n const { pos } = this.state;\n const next = this.input.charCodeAt(pos + 1);\n\n if (next === charCodes.greaterThan) {\n const size =\n this.input.charCodeAt(pos + 2) === charCodes.greaterThan ? 3 : 2;\n if (this.input.charCodeAt(pos + size) === charCodes.equalsTo) {\n this.finishOp(tt.assign, size + 1);\n return;\n }\n this.finishOp(tt.bitShiftR, size);\n return;\n }\n\n if (next === charCodes.equalsTo) {\n // <= | >=\n this.finishOp(tt.relational, 2);\n return;\n }\n\n this.finishOp(tt.gt, 1);\n }\n\n readToken_eq_excl(code: number): void {\n // '=!'\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === charCodes.equalsTo) {\n this.finishOp(\n tt.equality,\n this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo\n ? 3\n : 2,\n );\n return;\n }\n if (code === charCodes.equalsTo && next === charCodes.greaterThan) {\n // '=>'\n this.state.pos += 2;\n this.finishToken(tt.arrow);\n return;\n }\n this.finishOp(code === charCodes.equalsTo ? tt.eq : tt.bang, 1);\n }\n\n readToken_question(): void {\n // '?'\n const next = this.input.charCodeAt(this.state.pos + 1);\n const next2 = this.input.charCodeAt(this.state.pos + 2);\n if (next === charCodes.questionMark) {\n if (next2 === charCodes.equalsTo) {\n // '??='\n this.finishOp(tt.assign, 3);\n } else {\n // '??'\n this.finishOp(tt.nullishCoalescing, 2);\n }\n } else if (\n next === charCodes.dot &&\n !(next2 >= charCodes.digit0 && next2 <= charCodes.digit9)\n ) {\n // '.' not followed by a number\n this.state.pos += 2;\n this.finishToken(tt.questionDot);\n } else {\n ++this.state.pos;\n this.finishToken(tt.question);\n }\n }\n\n getTokenFromCode(code: number): void {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n\n case charCodes.dot:\n this.readToken_dot();\n return;\n // Punctuation tokens.\n case charCodes.leftParenthesis:\n ++this.state.pos;\n this.finishToken(tt.parenL);\n return;\n case charCodes.rightParenthesis:\n ++this.state.pos;\n this.finishToken(tt.parenR);\n return;\n case charCodes.semicolon:\n ++this.state.pos;\n this.finishToken(tt.semi);\n return;\n case charCodes.comma:\n ++this.state.pos;\n this.finishToken(tt.comma);\n return;\n case charCodes.leftSquareBracket:\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(\n Errors.TupleExpressionBarIncorrectStartSyntaxType,\n { at: this.state.curPosition() },\n );\n }\n\n // [|\n this.state.pos += 2;\n this.finishToken(tt.bracketBarL);\n } else {\n ++this.state.pos;\n this.finishToken(tt.bracketL);\n }\n return;\n case charCodes.rightSquareBracket:\n ++this.state.pos;\n this.finishToken(tt.bracketR);\n return;\n case charCodes.leftCurlyBrace:\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(\n Errors.RecordExpressionBarIncorrectStartSyntaxType,\n { at: this.state.curPosition() },\n );\n }\n\n // {|\n this.state.pos += 2;\n this.finishToken(tt.braceBarL);\n } else {\n ++this.state.pos;\n this.finishToken(tt.braceL);\n }\n return;\n case charCodes.rightCurlyBrace:\n ++this.state.pos;\n this.finishToken(tt.braceR);\n return;\n\n case charCodes.colon:\n if (\n this.hasPlugin(\"functionBind\") &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.colon\n ) {\n this.finishOp(tt.doubleColon, 2);\n } else {\n ++this.state.pos;\n this.finishToken(tt.colon);\n }\n return;\n\n case charCodes.questionMark:\n this.readToken_question();\n return;\n\n case charCodes.graveAccent:\n this.readTemplateToken();\n return;\n\n case charCodes.digit0: {\n const next = this.input.charCodeAt(this.state.pos + 1);\n // '0x', '0X' - hex number\n if (next === charCodes.lowercaseX || next === charCodes.uppercaseX) {\n this.readRadixNumber(16);\n return;\n }\n // '0o', '0O' - octal number\n if (next === charCodes.lowercaseO || next === charCodes.uppercaseO) {\n this.readRadixNumber(8);\n return;\n }\n // '0b', '0B' - binary number\n if (next === charCodes.lowercaseB || next === charCodes.uppercaseB) {\n this.readRadixNumber(2);\n return;\n }\n }\n // Anything else beginning with a digit is an integer, octal\n // number, or float. (fall through)\n case charCodes.digit1:\n case charCodes.digit2:\n case charCodes.digit3:\n case charCodes.digit4:\n case charCodes.digit5:\n case charCodes.digit6:\n case charCodes.digit7:\n case charCodes.digit8:\n case charCodes.digit9:\n this.readNumber(false);\n return;\n\n // Quotes produce strings.\n case charCodes.quotationMark:\n case charCodes.apostrophe:\n this.readString(code);\n return;\n\n // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n\n case charCodes.slash:\n this.readToken_slash();\n return;\n\n case charCodes.percentSign:\n case charCodes.asterisk:\n this.readToken_mult_modulo(code);\n return;\n\n case charCodes.verticalBar:\n case charCodes.ampersand:\n this.readToken_pipe_amp(code);\n return;\n\n case charCodes.caret:\n this.readToken_caret();\n return;\n\n case charCodes.plusSign:\n case charCodes.dash:\n this.readToken_plus_min(code);\n return;\n\n case charCodes.lessThan:\n this.readToken_lt();\n return;\n\n case charCodes.greaterThan:\n this.readToken_gt();\n return;\n\n case charCodes.equalsTo:\n case charCodes.exclamationMark:\n this.readToken_eq_excl(code);\n return;\n\n case charCodes.tilde:\n this.finishOp(tt.tilde, 1);\n return;\n\n case charCodes.atSign:\n this.readToken_atSign();\n return;\n\n case charCodes.numberSign:\n this.readToken_numberSign();\n return;\n\n case charCodes.backslash:\n this.readWord();\n return;\n\n default:\n if (isIdentifierStart(code)) {\n this.readWord(code);\n return;\n }\n }\n\n throw this.raise(Errors.InvalidOrUnexpectedToken, {\n at: this.state.curPosition(),\n unexpected: String.fromCodePoint(code),\n });\n }\n\n finishOp(type: TokenType, size: number): void {\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\n readRegexp(): void {\n const startLoc = this.state.startLoc;\n const start = this.state.start + 1;\n let escaped, inClass;\n let { pos } = this.state;\n for (; ; ++pos) {\n if (pos >= this.length) {\n // FIXME: explain\n throw this.raise(Errors.UnterminatedRegExp, {\n at: createPositionWithColumnOffset(startLoc, 1),\n });\n }\n const ch = this.input.charCodeAt(pos);\n if (isNewLine(ch)) {\n throw this.raise(Errors.UnterminatedRegExp, {\n at: createPositionWithColumnOffset(startLoc, 1),\n });\n }\n if (escaped) {\n escaped = false;\n } else {\n if (ch === charCodes.leftSquareBracket) {\n inClass = true;\n } else if (ch === charCodes.rightSquareBracket && inClass) {\n inClass = false;\n } else if (ch === charCodes.slash && !inClass) {\n break;\n }\n escaped = ch === charCodes.backslash;\n }\n }\n const content = this.input.slice(start, pos);\n ++pos;\n\n let mods = \"\";\n\n const nextPos = () =>\n // (pos + 1) + 1 - start\n createPositionWithColumnOffset(startLoc, pos + 2 - start);\n\n while (pos < this.length) {\n const cp = this.codePointAtPos(pos);\n // It doesn't matter if cp > 0xffff, the loop will either throw or break because we check on cp\n const char = String.fromCharCode(cp);\n\n // @ts-expect-error VALID_REGEX_FLAGS.has should accept expanded type: number\n if (VALID_REGEX_FLAGS.has(cp)) {\n if (cp === charCodes.lowercaseV) {\n if (mods.includes(\"u\")) {\n this.raise(Errors.IncompatibleRegExpUVFlags, { at: nextPos() });\n }\n } else if (cp === charCodes.lowercaseU) {\n if (mods.includes(\"v\")) {\n this.raise(Errors.IncompatibleRegExpUVFlags, { at: nextPos() });\n }\n }\n if (mods.includes(char)) {\n this.raise(Errors.DuplicateRegExpFlags, { at: nextPos() });\n }\n } else if (isIdentifierChar(cp) || cp === charCodes.backslash) {\n this.raise(Errors.MalformedRegExpFlags, { at: nextPos() });\n } else {\n break;\n }\n\n ++pos;\n mods += char;\n }\n this.state.pos = pos;\n\n this.finishToken(tt.regexp, {\n pattern: content,\n flags: mods,\n });\n }\n\n // Read an integer in the given radix. Return null if zero digits\n // were read, the integer value otherwise. When `len` is given, this\n // will return `null` unless the integer has exactly `len` digits.\n // When `forceLen` is `true`, it means that we already know that in case\n // of a malformed number we have to skip `len` characters anyway, instead\n // of bailing out early. For example, in \"\\u{123Z}\" we want to read up to }\n // anyway, while in \"\\u00Z\" we will stop at Z instead of consuming four\n // characters (and thus the closing quote).\n\n readInt(\n radix: number,\n len?: number,\n forceLen: boolean = false,\n allowNumSeparator: boolean | \"bail\" = true,\n ): number | null {\n const { n, pos } = readInt(\n this.input,\n this.state.pos,\n this.state.lineStart,\n this.state.curLine,\n radix,\n len,\n forceLen,\n allowNumSeparator,\n this.errorHandlers_readInt,\n /* bailOnError */ false,\n );\n this.state.pos = pos;\n return n;\n }\n\n readRadixNumber(radix: number): void {\n const startLoc = this.state.curPosition();\n let isBigInt = false;\n\n this.state.pos += 2; // 0x\n const val = this.readInt(radix);\n if (val == null) {\n this.raise(Errors.InvalidDigit, {\n // Numeric literals can't have newlines, so this is safe to do.\n at: createPositionWithColumnOffset(startLoc, 2),\n radix,\n });\n }\n const next = this.input.charCodeAt(this.state.pos);\n\n if (next === charCodes.lowercaseN) {\n ++this.state.pos;\n isBigInt = true;\n } else if (next === charCodes.lowercaseM) {\n throw this.raise(Errors.InvalidDecimal, { at: startLoc });\n }\n\n if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {\n throw this.raise(Errors.NumberIdentifier, {\n at: this.state.curPosition(),\n });\n }\n\n if (isBigInt) {\n const str = this.input\n .slice(startLoc.index, this.state.pos)\n .replace(/[_n]/g, \"\");\n this.finishToken(tt.bigint, str);\n return;\n }\n\n this.finishToken(tt.num, val);\n }\n\n // Read an integer, octal integer, or floating-point number.\n\n readNumber(startsWithDot: boolean): void {\n const start = this.state.pos;\n const startLoc = this.state.curPosition();\n let isFloat = false;\n let isBigInt = false;\n let isDecimal = false;\n let hasExponent = false;\n let isOctal = false;\n\n if (!startsWithDot && this.readInt(10) === null) {\n this.raise(Errors.InvalidNumber, { at: this.state.curPosition() });\n }\n const hasLeadingZero =\n this.state.pos - start >= 2 &&\n this.input.charCodeAt(start) === charCodes.digit0;\n\n if (hasLeadingZero) {\n const integer = this.input.slice(start, this.state.pos);\n this.recordStrictModeErrors(Errors.StrictOctalLiteral, { at: startLoc });\n if (!this.state.strict) {\n // disallow numeric separators in non octal decimals and legacy octal likes\n const underscorePos = integer.indexOf(\"_\");\n if (underscorePos > 0) {\n // Numeric literals can't have newlines, so this is safe to do.\n this.raise(Errors.ZeroDigitNumericSeparator, {\n at: createPositionWithColumnOffset(startLoc, underscorePos),\n });\n }\n }\n isOctal = hasLeadingZero && !/[89]/.test(integer);\n }\n\n let next = this.input.charCodeAt(this.state.pos);\n if (next === charCodes.dot && !isOctal) {\n ++this.state.pos;\n this.readInt(10);\n isFloat = true;\n next = this.input.charCodeAt(this.state.pos);\n }\n\n if (\n (next === charCodes.uppercaseE || next === charCodes.lowercaseE) &&\n !isOctal\n ) {\n next = this.input.charCodeAt(++this.state.pos);\n if (next === charCodes.plusSign || next === charCodes.dash) {\n ++this.state.pos;\n }\n if (this.readInt(10) === null) {\n this.raise(Errors.InvalidOrMissingExponent, { at: startLoc });\n }\n isFloat = true;\n hasExponent = true;\n next = this.input.charCodeAt(this.state.pos);\n }\n\n if (next === charCodes.lowercaseN) {\n // disallow floats, legacy octal syntax and non octal decimals\n // new style octal (\"0o\") is handled in this.readRadixNumber\n if (isFloat || hasLeadingZero) {\n this.raise(Errors.InvalidBigIntLiteral, { at: startLoc });\n }\n ++this.state.pos;\n isBigInt = true;\n }\n\n if (next === charCodes.lowercaseM) {\n this.expectPlugin(\"decimal\", this.state.curPosition());\n if (hasExponent || hasLeadingZero) {\n this.raise(Errors.InvalidDecimal, { at: startLoc });\n }\n ++this.state.pos;\n isDecimal = true;\n }\n\n if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {\n throw this.raise(Errors.NumberIdentifier, {\n at: this.state.curPosition(),\n });\n }\n\n // remove \"_\" for numeric literal separator, and trailing `m` or `n`\n const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, \"\");\n\n if (isBigInt) {\n this.finishToken(tt.bigint, str);\n return;\n }\n\n if (isDecimal) {\n this.finishToken(tt.decimal, str);\n return;\n }\n\n const val = isOctal ? parseInt(str, 8) : parseFloat(str);\n this.finishToken(tt.num, val);\n }\n\n // Read a string value, interpreting backslash-escapes.\n\n readCodePoint(throwOnInvalid: boolean): number | null {\n const { code, pos } = readCodePoint(\n this.input,\n this.state.pos,\n this.state.lineStart,\n this.state.curLine,\n throwOnInvalid,\n this.errorHandlers_readCodePoint,\n );\n this.state.pos = pos;\n return code;\n }\n\n readString(quote: number): void {\n const { str, pos, curLine, lineStart } = readStringContents(\n quote === charCodes.quotationMark ? \"double\" : \"single\",\n this.input,\n this.state.pos + 1, // skip the quote\n this.state.lineStart,\n this.state.curLine,\n this.errorHandlers_readStringContents_string,\n );\n this.state.pos = pos + 1; // skip the quote\n this.state.lineStart = lineStart;\n this.state.curLine = curLine;\n this.finishToken(tt.string, str);\n }\n\n // Reads template continuation `}...`\n readTemplateContinuation(): void {\n if (!this.match(tt.braceR)) {\n this.unexpected(null, tt.braceR);\n }\n // rewind pos to `}`\n this.state.pos--;\n this.readTemplateToken();\n }\n\n // Reads template string tokens.\n readTemplateToken(): void {\n const opening = this.input[this.state.pos];\n const { str, firstInvalidLoc, pos, curLine, lineStart } =\n readStringContents(\n \"template\",\n this.input,\n this.state.pos + 1, // skip '`' or `}`\n this.state.lineStart,\n this.state.curLine,\n this.errorHandlers_readStringContents_template,\n );\n this.state.pos = pos + 1; // skip '`' or `$`\n this.state.lineStart = lineStart;\n this.state.curLine = curLine;\n\n if (firstInvalidLoc) {\n this.state.firstInvalidTemplateEscapePos = new Position(\n firstInvalidLoc.curLine,\n firstInvalidLoc.pos - firstInvalidLoc.lineStart,\n firstInvalidLoc.pos,\n );\n }\n\n if (this.input.codePointAt(pos) === charCodes.graveAccent) {\n this.finishToken(\n tt.templateTail,\n firstInvalidLoc ? null : opening + str + \"`\",\n );\n } else {\n this.state.pos++; // skip '{'\n this.finishToken(\n tt.templateNonTail,\n firstInvalidLoc ? null : opening + str + \"${\",\n );\n }\n }\n\n recordStrictModeErrors(\n toParseError: DeferredStrictError,\n { at }: { at: Position },\n ) {\n const index = at.index;\n\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\n // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\n // to whether the word contained a '\\u' escape.\n //\n // Incrementally adds only escaped chars, adding other chunks as-is\n // as a micro-optimization.\n //\n // When `firstCode` is given, it assumes it is always an identifier start and\n // will skip reading start position again\n\n readWord1(firstCode?: number): string {\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\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 === charCodes.backslash) {\n this.state.containsEsc = true;\n\n word += this.input.slice(chunkStart, this.state.pos);\n const escStart = this.state.curPosition();\n const identifierCheck =\n this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n\n if (this.input.charCodeAt(++this.state.pos) !== charCodes.lowercaseU) {\n this.raise(Errors.MissingUnicodeEscape, {\n at: this.state.curPosition(),\n });\n chunkStart = this.state.pos - 1;\n continue;\n }\n\n ++this.state.pos;\n const esc = this.readCodePoint(true);\n if (esc !== null) {\n if (!identifierCheck(esc)) {\n this.raise(Errors.EscapedCharNotAnIdentifier, { at: escStart });\n }\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\n // Read an identifier or keyword token. Will check for reserved\n // words when necessary.\n\n readWord(firstCode?: number): void {\n const word = this.readWord1(firstCode);\n const type = keywordTypes.get(word);\n if (type !== undefined) {\n // We don't use word as state.value here because word is a dynamic string\n // while token label is a shared constant string\n this.finishToken(type, tokenLabelName(type));\n } else {\n this.finishToken(tt.name, word);\n }\n }\n\n checkKeywordEscapes(): void {\n const { type } = this.state;\n if (tokenIsKeyword(type) && this.state.containsEsc) {\n this.raise(Errors.InvalidEscapedReservedWord, {\n at: this.state.startLoc,\n reservedWord: tokenLabelName(type),\n });\n }\n }\n\n /**\n * Raise a `ParseError` given the appropriate properties. If passed a\n * `Position` for the `at` property, raises the `ParseError` at that location.\n * Otherwise, if passed a `Node`, raises the `ParseError` at the start\n * location of that `Node`.\n *\n * If `errorRecovery` is `true`, the error is pushed to the errors array and\n * returned. If `errorRecovery` is `false`, the error is instead thrown.\n */\n raise<ErrorDetails>(\n toParseError: ParseErrorConstructor<ErrorDetails>,\n raiseProperties: RaiseProperties<ErrorDetails>,\n ): ParseError<ErrorDetails> {\n const { at, ...details } = raiseProperties;\n const loc = at instanceof Position ? at : at.loc.start;\n // @ts-expect-error: refine details typing\n const error = toParseError({ loc, details });\n\n if (!this.options.errorRecovery) throw error;\n if (!this.isLookahead) this.state.errors.push(error);\n\n return error;\n }\n\n /**\n * If `errorRecovery` is `false`, this method behaves identically to `raise`.\n * If `errorRecovery` is `true`, this method will first see if there is\n * already an error stored at the same `Position`, and replaces it with the\n * one generated here.\n */\n raiseOverwrite<ErrorDetails>(\n toParseError: ParseErrorConstructor<ErrorDetails>,\n raiseProperties: RaiseProperties<ErrorDetails>,\n ): ParseError<ErrorDetails> | never {\n const { at, ...details } = raiseProperties;\n const loc = at instanceof Position ? at : at.loc.start;\n const pos = loc.index;\n const errors = this.state.errors;\n\n for (let i = errors.length - 1; i >= 0; i--) {\n const error = errors[i];\n if (error.loc.index === pos) {\n // @ts-expect-error: refine details typing\n return (errors[i] = toParseError({ loc, details }));\n }\n if (error.loc.index < pos) break;\n }\n\n return this.raise(toParseError, raiseProperties);\n }\n\n // updateContext is used by the jsx plugin\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateContext(prevType: TokenType): void {}\n\n // Raise an unexpected token error. Can take the expected token type.\n unexpected(loc?: Position | null, type?: TokenType): void {\n throw this.raise(Errors.UnexpectedToken, {\n expected: type ? tokenLabelName(type) : null,\n at: loc != null ? loc : this.state.startLoc,\n });\n }\n\n expectPlugin(pluginName: Plugin, loc?: Position): true {\n if (this.hasPlugin(pluginName)) {\n return true;\n }\n\n throw this.raise(Errors.MissingPlugin, {\n at: loc != null ? loc : this.state.startLoc,\n missingPlugin: [pluginName],\n });\n }\n\n expectOnePlugin(pluginNames: Plugin[]): void {\n if (!pluginNames.some(name => this.hasPlugin(name))) {\n throw this.raise(Errors.MissingOneOfPlugins, {\n at: this.state.startLoc,\n missingPlugin: pluginNames,\n });\n }\n }\n\n errorBuilder(error: ParseErrorConstructor<{}>) {\n return (pos: number, lineStart: number, curLine: number) => {\n this.raise(error, {\n at: buildPosition(pos, lineStart, curLine),\n });\n };\n }\n\n errorHandlers_readInt: IntErrorHandlers = {\n invalidDigit: (pos, lineStart, curLine, radix) => {\n if (!this.options.errorRecovery) return false;\n\n this.raise(Errors.InvalidDigit, {\n at: buildPosition(pos, lineStart, curLine),\n radix,\n });\n // Continue parsing the number as if there was no invalid digit.\n return true;\n },\n numericSeparatorInEscapeSequence: this.errorBuilder(\n Errors.NumericSeparatorInEscapeSequence,\n ),\n unexpectedNumericSeparator: this.errorBuilder(\n Errors.UnexpectedNumericSeparator,\n ),\n };\n\n errorHandlers_readCodePoint: CodePointErrorHandlers = {\n ...this.errorHandlers_readInt,\n invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence),\n invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint),\n };\n\n errorHandlers_readStringContents_string: StringContentsErrorHandlers = {\n ...this.errorHandlers_readCodePoint,\n strictNumericEscape: (pos, lineStart, curLine) => {\n this.recordStrictModeErrors(Errors.StrictNumericEscape, {\n at: buildPosition(pos, lineStart, curLine),\n });\n },\n unterminated: (pos, lineStart, curLine) => {\n throw this.raise(Errors.UnterminatedString, {\n // Report the error at the string quote\n at: buildPosition(pos - 1, lineStart, curLine),\n });\n },\n };\n\n errorHandlers_readStringContents_template: StringContentsErrorHandlers = {\n ...this.errorHandlers_readCodePoint,\n strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape),\n unterminated: (pos, lineStart, curLine) => {\n throw this.raise(Errors.UnterminatedTemplate, {\n at: buildPosition(pos, lineStart, curLine),\n });\n },\n };\n}\n","import { ClassElementType } from \"./scopeflags.ts\";\nimport type { Position } from \"./location.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type Tokenizer from \"../tokenizer/index.ts\";\n\nexport class ClassScope {\n // A list of private named declared in the current class\n privateNames: Set<string> = new Set();\n\n // A list of private getters of setters without their counterpart\n loneAccessors: Map<string, ClassElementType> = new Map();\n\n // A list of private names used before being defined, mapping to\n // their position.\n undefinedPrivateNames: Map<string, Position> = new Map();\n}\n\nexport default class ClassScopeHandler {\n parser: Tokenizer;\n stack: Array<ClassScope> = [];\n undefinedPrivateNames: Map<string, Position> = new Map();\n\n constructor(parser: Tokenizer) {\n this.parser = parser;\n }\n\n current(): ClassScope {\n return this.stack[this.stack.length - 1];\n }\n\n enter() {\n this.stack.push(new ClassScope());\n }\n\n exit() {\n const oldClassScope = this.stack.pop();\n\n // Migrate the usage of not yet defined private names to the outer\n // class scope, or raise an error if we reached the top-level scope.\n\n const current = this.current();\n\n // Array.from is needed because this is compiled to an array-like for loop\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, {\n at: loc,\n identifierName: name,\n });\n }\n }\n }\n\n declarePrivateName(\n name: string,\n elementType: ClassElementType,\n loc: Position,\n ) {\n const { privateNames, loneAccessors, undefinedPrivateNames } =\n this.current();\n let redefined = privateNames.has(name);\n\n if (elementType & ClassElementType.KIND_ACCESSOR) {\n const accessor = redefined && loneAccessors.get(name);\n if (accessor) {\n const oldStatic = accessor & ClassElementType.FLAG_STATIC;\n const newStatic = elementType & ClassElementType.FLAG_STATIC;\n\n const oldKind = accessor & ClassElementType.KIND_ACCESSOR;\n const newKind = elementType & ClassElementType.KIND_ACCESSOR;\n\n // The private name can be duplicated only if it is used by\n // two accessors with different kind (get and set), and if\n // they have the same placement (static or not).\n redefined = oldKind === newKind || oldStatic !== newStatic;\n\n if (!redefined) loneAccessors.delete(name);\n } else if (!redefined) {\n loneAccessors.set(name, elementType);\n }\n }\n\n if (redefined) {\n this.parser.raise(Errors.PrivateNameRedeclaration, {\n at: loc,\n identifierName: name,\n });\n }\n\n privateNames.add(name);\n undefinedPrivateNames.delete(name);\n }\n\n usePrivateName(name: string, loc: Position) {\n let classScope;\n for (classScope of this.stack) {\n if (classScope.privateNames.has(name)) return;\n }\n\n if (classScope) {\n classScope.undefinedPrivateNames.set(name, loc);\n } else {\n // top-level\n this.parser.raise(Errors.InvalidPrivateFieldResolution, {\n at: loc,\n identifierName: name,\n });\n }\n }\n}\n","import { Errors, type ParseErrorConstructor } from \"../parse-error.ts\";\nimport type { Position } from \"./location.ts\";\nimport type { Node } from \"../types.ts\";\nimport type Tokenizer from \"../tokenizer/index.ts\";\n\n/**\n * @module util/expression-scope\n\nExpressionScope is used to track declaration errors in these ambiguous patterns:\n\n- CoverParenthesizedExpressionAndArrowParameterList\n e.g. we don't know if `({ x })` is an parenthesized expression or an\n arrow function parameters until we see an `=>` after `)`.\n\n- CoverCallExpressionAndAsyncArrowHead\n e.g. we don't know if `async({ x })` is a call expression or an async arrow\n function parameters until we see an `=>` after `)`\n\nThe following declaration errors (@see parser-errors/standard) will be recorded in\nsome expression scopes and thrown later when we know what the ambiguous pattern is\n\n- AwaitBindingIdentifier\n- AwaitExpressionFormalParameter\n- YieldInParameter\n- InvalidParenthesizedAssignment when parenthesized is an identifier\n\nThere are four different expression scope\n- Expression\n A general scope that represents program / function body / static block. No errors\n will be recorded nor thrown in this scope.\n\n- MaybeArrowParameterDeclaration\n A scope that represents ambiguous arrow head e.g. `(x)`. Errors will be recorded\n alongside parent scopes and thrown when `ExpressionScopeHandler#validateAsPattern`\n is called.\n\n- MaybeAsyncArrowParameterDeclaration\n A scope that represents ambiguous async arrow head e.g. `async(x)`. Errors will\n be recorded alongside parent scopes and thrown when\n `ExpressionScopeHandler#validateAsPattern` is called.\n\n- ParameterDeclaration\n A scope that represents unambiguous function parameters `function(x)`. Errors\n recorded in this scope will be thrown immediately. No errors will be recorded in\n this scope.\n\n// @see {@link https://docs.google.com/document/d/1FAvEp9EUK-G8kHfDIEo_385Hs2SUBCYbJ5H-NnLvq8M|V8 Expression Scope design docs}\n */\n\nconst enum ExpressionScopeType {\n kExpression = 0,\n kMaybeArrowParameterDeclaration = 1,\n kMaybeAsyncArrowParameterDeclaration = 2,\n kParameterDeclaration = 3,\n}\n\nclass ExpressionScope {\n declare type: ExpressionScopeType;\n\n constructor(type: ExpressionScopeType = ExpressionScopeType.kExpression) {\n this.type = type;\n }\n\n canBeArrowParameterDeclaration(): this is ArrowHeadParsingScope {\n return (\n this.type === ExpressionScopeType.kMaybeAsyncArrowParameterDeclaration ||\n this.type === ExpressionScopeType.kMaybeArrowParameterDeclaration\n );\n }\n\n isCertainlyParameterDeclaration() {\n return this.type === ExpressionScopeType.kParameterDeclaration;\n }\n}\n\ntype ArrowHeadParsingParameterInitializerError =\n | typeof Errors.AwaitExpressionFormalParameter\n | typeof Errors.YieldInParameter;\ntype ArrowHeadParsingDeclarationError =\n | ArrowHeadParsingParameterInitializerError\n | typeof Errors.InvalidParenthesizedAssignment\n | typeof Errors.AwaitBindingIdentifier;\n\nclass ArrowHeadParsingScope extends ExpressionScope {\n declarationErrors: Map<number, [ParseErrorConstructor<{}>, Position]> =\n new Map();\n constructor(\n type:\n | ExpressionScopeType.kMaybeArrowParameterDeclaration\n | ExpressionScopeType.kMaybeAsyncArrowParameterDeclaration,\n ) {\n super(type);\n }\n recordDeclarationError(\n ParsingErrorClass: ParseErrorConstructor<{}>,\n {\n at,\n }: {\n at: Position;\n },\n ) {\n const index = at.index;\n\n this.declarationErrors.set(index, [ParsingErrorClass, at]);\n }\n clearDeclarationError(index: number) {\n this.declarationErrors.delete(index);\n }\n iterateErrors(\n iterator: (a: [ArrowHeadParsingDeclarationError, Position]) => void,\n ) {\n this.declarationErrors.forEach(iterator);\n }\n}\n\nexport default class ExpressionScopeHandler {\n parser: Tokenizer;\n stack: Array<ExpressionScope> = [new ExpressionScope()];\n\n constructor(parser: Tokenizer) {\n this.parser = parser;\n }\n enter(scope: ExpressionScope) {\n this.stack.push(scope);\n }\n\n exit() {\n this.stack.pop();\n }\n\n /**\n * Record likely parameter initializer errors\n *\n * When current scope is a ParameterDeclaration, the error will be thrown immediately,\n * otherwise it will be recorded to any ancestry MaybeArrowParameterDeclaration and\n * MaybeAsyncArrowParameterDeclaration scope until an Expression scope is seen.\n */\n recordParameterInitializerError(\n toParseError: ArrowHeadParsingParameterInitializerError,\n {\n at: node,\n }: {\n at: Node;\n },\n ): void {\n const origin = { at: node.loc.start };\n const { stack } = this;\n let i = stack.length - 1;\n let scope: ExpressionScope = stack[i];\n while (!scope.isCertainlyParameterDeclaration()) {\n if (scope.canBeArrowParameterDeclaration()) {\n scope.recordDeclarationError(toParseError, origin);\n } else {\n /*:: invariant(scope.type == ExpressionScopeType.kExpression) */\n // Type-Expression is the boundary where initializer error can populate to\n return;\n }\n scope = stack[--i];\n }\n this.parser.raise(toParseError, origin);\n }\n\n /**\n * Record errors that must be thrown if the current pattern ends up being an arrow\n * function parameter. This is used to record parenthesized identifiers, and to record\n * \"a as T\" and \"<T> a\" type assertions when parsing typescript.\n *\n * A parenthesized identifier (or type assertion) in LHS can be ambiguous because the assignment\n * can be transformed to an assignable later, but not vice versa:\n * For example, in `([(a) = []] = []) => {}`, we think `(a) = []` is an LHS in `[(a) = []]`,\n * an LHS within `[(a) = []] = []`. However the LHS chain is then transformed by toAssignable,\n * and we should throw assignment `(a)`, which is only valid in LHS. Hence we record the\n * location of parenthesized `(a)` to current scope if it is one of MaybeArrowParameterDeclaration\n * and MaybeAsyncArrowParameterDeclaration\n *\n * Unlike `recordParameterInitializerError`, we don't record to ancestry scope because we\n * validate arrow head parsing scope before exit, and then the LHS will be unambiguous:\n * For example, in `( x = ( [(a) = []] = [] ) ) => {}`, we should not record `(a)` in `( x = ... ) =>`\n * arrow scope because when we finish parsing `( [(a) = []] = [] )`, it is an unambiguous assignment\n * expression and can not be cast to pattern\n */\n recordArrowParameterBindingError(\n error: ParseErrorConstructor<{}>,\n {\n at: node,\n }: {\n at: Node;\n },\n ): void {\n const { stack } = this;\n const scope: ExpressionScope = stack[stack.length - 1];\n const origin = { at: 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\n /**\n * Record likely async arrow parameter errors\n *\n * Errors will be recorded to any ancestry MaybeAsyncArrowParameterDeclaration\n * scope until an Expression scope is seen.\n */\n recordAsyncArrowParametersError({ at }: { at: Position }): void {\n const { stack } = this;\n let i = stack.length - 1;\n let scope: ExpressionScope = stack[i];\n while (scope.canBeArrowParameterDeclaration()) {\n if (\n scope.type === ExpressionScopeType.kMaybeAsyncArrowParameterDeclaration\n ) {\n scope.recordDeclarationError(Errors.AwaitBindingIdentifier, { at });\n }\n scope = stack[--i];\n }\n }\n\n validateAsPattern(): void {\n const { stack } = this;\n const currentScope = stack[stack.length - 1];\n if (!currentScope.canBeArrowParameterDeclaration()) return;\n currentScope.iterateErrors(([toParseError, loc]) => {\n this.parser.raise(toParseError, { at: loc });\n // iterate from parent scope\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}\n\nexport function newParameterDeclarationScope() {\n return new ExpressionScope(ExpressionScopeType.kParameterDeclaration);\n}\n\nexport function newArrowHeadScope() {\n return new ArrowHeadParsingScope(\n ExpressionScopeType.kMaybeArrowParameterDeclaration,\n );\n}\n\nexport function newAsyncArrowScope() {\n return new ArrowHeadParsingScope(\n ExpressionScopeType.kMaybeAsyncArrowParameterDeclaration,\n );\n}\n\nexport function newExpressionScope() {\n return new ExpressionScope();\n}\n","export const // Initial Parameter flags\n PARAM = 0b0000,\n // track [Yield] production parameter\n PARAM_YIELD = 0b0001,\n // track [Await] production parameter\n PARAM_AWAIT = 0b0010,\n // track [Return] production parameter\n PARAM_RETURN = 0b0100,\n PARAM_IN = 0b1000; // track [In] production parameter\n\n// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n// async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n// ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport type ParamKind = number;\n\n// todo(flow->ts) - check if more granular type can be used,\n// type below is not good because things like PARAM_AWAIT|PARAM_YIELD are not included\n// export type ParamKind =\n// | typeof PARAM\n// | typeof PARAM_AWAIT\n// | typeof PARAM_IN\n// | typeof PARAM_RETURN\n// | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n stacks: Array<number> = [];\n enter(flags: number) {\n this.stacks.push(flags);\n }\n\n exit() {\n this.stacks.pop();\n }\n\n currentFlags(): number {\n return this.stacks[this.stacks.length - 1];\n }\n\n get hasAwait(): boolean {\n return (this.currentFlags() & PARAM_AWAIT) > 0;\n }\n\n get hasYield(): boolean {\n return (this.currentFlags() & PARAM_YIELD) > 0;\n }\n\n get hasReturn(): boolean {\n return (this.currentFlags() & PARAM_RETURN) > 0;\n }\n\n get hasIn(): boolean {\n return (this.currentFlags() & PARAM_IN) > 0;\n }\n}\n\nexport function functionFlags(\n isAsync: boolean,\n isGenerator: boolean,\n): ParamKind {\n return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0);\n}\n","import type { Position } from \"../util/location.ts\";\nimport {\n tokenIsLiteralPropertyName,\n tt,\n type TokenType,\n} from \"../tokenizer/types.ts\";\nimport Tokenizer from \"../tokenizer/index.ts\";\nimport type State from \"../tokenizer/state.ts\";\nimport type {\n EstreePropertyDefinition,\n Node,\n ObjectProperty,\n} from \"../types.ts\";\nimport { lineBreak, skipWhiteSpaceToLineBreak } from \"../util/whitespace.ts\";\nimport { isIdentifierChar } from \"../util/identifier.ts\";\nimport ClassScopeHandler from \"../util/class-scope.ts\";\nimport ExpressionScopeHandler from \"../util/expression-scope.ts\";\nimport { ScopeFlag } from \"../util/scopeflags.ts\";\nimport ProductionParameterHandler, {\n PARAM_AWAIT,\n PARAM,\n} from \"../util/production-parameter.ts\";\nimport {\n Errors,\n type ParseError,\n type ParseErrorConstructor,\n} from \"../parse-error.ts\";\nimport type Parser from \"./index.ts\";\n\nimport type ScopeHandler from \"../util/scope.ts\";\n\ntype TryParse<Node, Error, Thrown, Aborted, FailState> = {\n node: Node;\n error: Error;\n thrown: Thrown;\n aborted: Aborted;\n failState: FailState;\n};\n\n// ## Parser utilities\n\nexport default abstract class UtilParser extends Tokenizer {\n // Forward-declaration: defined in parser/index.js\n abstract getScopeHandler(): { new (...args: any): ScopeHandler };\n\n addExtra(\n node: Partial<Node>,\n key: string,\n value: any,\n enumerable: boolean = true,\n ): void {\n if (!node) return;\n\n const extra = (node.extra = node.extra || {});\n if (enumerable) {\n extra[key] = value;\n } else {\n Object.defineProperty(extra, key, { enumerable, value });\n }\n }\n\n // Tests whether parsed token is a contextual keyword.\n\n isContextual(token: TokenType): boolean {\n return this.state.type === token && !this.state.containsEsc;\n }\n\n isUnparsedContextual(nameStart: number, name: string): boolean {\n const nameEnd = nameStart + name.length;\n if (this.input.slice(nameStart, nameEnd) === name) {\n const nextCh = this.input.charCodeAt(nameEnd);\n return !(\n isIdentifierChar(nextCh) ||\n // check if `nextCh is between 0xd800 - 0xdbff,\n // if `nextCh` is NaN, `NaN & 0xfc00` is 0, the function\n // returns true\n (nextCh & 0xfc00) === 0xd800\n );\n }\n return false;\n }\n\n isLookaheadContextual(name: string): boolean {\n const next = this.nextTokenStart();\n return this.isUnparsedContextual(next, name);\n }\n\n // Consumes contextual keyword if possible.\n\n eatContextual(token: TokenType): boolean {\n if (this.isContextual(token)) {\n this.next();\n return true;\n }\n return false;\n }\n\n // Asserts that following token is given contextual keyword.\n\n expectContextual(\n token: TokenType,\n toParseError?: ParseErrorConstructor<any>,\n ): void {\n if (!this.eatContextual(token)) {\n if (toParseError != null) {\n throw this.raise(toParseError, { at: this.state.startLoc });\n }\n this.unexpected(null, token);\n }\n }\n\n // Test whether a semicolon can be inserted at the current position.\n\n canInsertSemicolon(): boolean {\n return (\n this.match(tt.eof) ||\n this.match(tt.braceR) ||\n this.hasPrecedingLineBreak()\n );\n }\n\n hasPrecedingLineBreak(): boolean {\n return lineBreak.test(\n this.input.slice(this.state.lastTokEndLoc.index, this.state.start),\n );\n }\n\n hasFollowingLineBreak(): boolean {\n skipWhiteSpaceToLineBreak.lastIndex = this.state.end;\n return skipWhiteSpaceToLineBreak.test(this.input);\n }\n\n isLineTerminator(): boolean {\n return this.eat(tt.semi) || this.canInsertSemicolon();\n }\n\n // Consume a semicolon, or, failing that, see if we are allowed to\n // pretend that there is a semicolon at this position.\n\n semicolon(allowAsi: boolean = true): void {\n if (allowAsi ? this.isLineTerminator() : this.eat(tt.semi)) return;\n this.raise(Errors.MissingSemicolon, { at: this.state.lastTokEndLoc });\n }\n\n // Expect a token of a given type. If found, consume it, otherwise,\n // raise an unexpected token error at given pos.\n\n expect(type: TokenType, loc?: Position | null): void {\n this.eat(type) || this.unexpected(loc, type);\n }\n\n // tryParse will clone parser state.\n // It is expensive and should be used with cautions\n tryParse<T extends Node | ReadonlyArray<Node>>(\n fn: (abort: (node?: T) => never) => T,\n oldState: State = this.state.clone(),\n ):\n | TryParse<T, null, false, false, null>\n | TryParse<T | null, ParseError<any>, boolean, false, State>\n | TryParse<T | null, null, false, true, State> {\n const abortSignal: {\n node: T | null;\n } = { node: null };\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 // tokensLength should be preserved during error recovery mode\n // since the parser does not halt and will instead parse the\n // remaining tokens\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\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 // @ts-expect-error casting general syntax error to parse error\n return { node: null, error, thrown: true, aborted: false, failState };\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\n throw error;\n }\n }\n\n checkExpressionErrors(\n refExpressionErrors: ExpressionErrors | undefined | null,\n andThrow: boolean,\n ) {\n if (!refExpressionErrors) return false;\n const {\n shorthandAssignLoc,\n doubleProtoLoc,\n privateKeyLoc,\n optionalParametersLoc,\n } = refExpressionErrors;\n\n const hasErrors =\n !!shorthandAssignLoc ||\n !!doubleProtoLoc ||\n !!optionalParametersLoc ||\n !!privateKeyLoc;\n\n if (!andThrow) {\n return hasErrors;\n }\n\n if (shorthandAssignLoc != null) {\n this.raise(Errors.InvalidCoverInitializedName, {\n at: shorthandAssignLoc,\n });\n }\n\n if (doubleProtoLoc != null) {\n this.raise(Errors.DuplicateProto, { at: doubleProtoLoc });\n }\n\n if (privateKeyLoc != null) {\n this.raise(Errors.UnexpectedPrivateField, { at: privateKeyLoc });\n }\n\n if (optionalParametersLoc != null) {\n this.unexpected(optionalParametersLoc);\n }\n }\n\n /**\n * Test if current token is a literal property name\n * https://tc39.es/ecma262/#prod-LiteralPropertyName\n * LiteralPropertyName:\n * IdentifierName\n * StringLiteral\n * NumericLiteral\n * BigIntLiteral\n */\n isLiteralPropertyName(): boolean {\n return tokenIsLiteralPropertyName(this.state.type);\n }\n\n /**\n * Test if given node is a PrivateName\n * will be overridden in ESTree plugin\n */\n isPrivateName(node: Node): boolean {\n return node.type === \"PrivateName\";\n }\n\n /**\n * Return the string value of a given private name\n * WITHOUT `#`\n * @see {@link https://tc39.es/ecma262/#sec-static-semantics-stringvalue}\n */\n getPrivateNameSV(node: Node): string {\n return node.id.name;\n }\n\n /**\n * Return whether the given node is a member/optional chain that\n * contains a private name as its property\n * It is overridden in ESTree plugin\n */\n hasPropertyAsPrivateName(node: Node): boolean {\n return (\n (node.type === \"MemberExpression\" ||\n node.type === \"OptionalMemberExpression\") &&\n this.isPrivateName(node.property)\n );\n }\n\n isObjectProperty(\n node: Node,\n ): node is ObjectProperty | EstreePropertyDefinition {\n return node.type === \"ObjectProperty\";\n }\n\n isObjectMethod(node: Node): boolean {\n return node.type === \"ObjectMethod\";\n }\n\n initializeScopes(\n this: Parser,\n inModule: boolean = this.options.sourceType === \"module\",\n ): () => void {\n // Initialize state\n const oldLabels = this.state.labels;\n this.state.labels = [];\n\n const oldExportedIdentifiers = this.exportedIdentifiers;\n this.exportedIdentifiers = new Set();\n\n // initialize scopes\n const oldInModule = this.inModule;\n this.inModule = inModule;\n\n const oldScope = this.scope;\n const ScopeHandler = this.getScopeHandler();\n this.scope = new ScopeHandler(this, inModule);\n\n const oldProdParam = this.prodParam;\n this.prodParam = new ProductionParameterHandler();\n\n const oldClassScope = this.classScope;\n this.classScope = new ClassScopeHandler(this);\n\n const oldExpressionScope = this.expressionScope;\n this.expressionScope = new ExpressionScopeHandler(this);\n\n return () => {\n // Revert state\n this.state.labels = oldLabels;\n this.exportedIdentifiers = oldExportedIdentifiers;\n\n // Revert scopes\n this.inModule = oldInModule;\n this.scope = oldScope;\n this.prodParam = oldProdParam;\n this.classScope = oldClassScope;\n this.expressionScope = oldExpressionScope;\n };\n }\n\n enterInitialScopes() {\n let paramFlags = PARAM;\n if (this.inModule) {\n paramFlags |= PARAM_AWAIT;\n }\n this.scope.enter(ScopeFlag.PROGRAM);\n this.prodParam.enter(paramFlags);\n }\n\n checkDestructuringPrivate(refExpressionErrors: ExpressionErrors) {\n const { privateKeyLoc } = refExpressionErrors;\n if (privateKeyLoc !== null) {\n this.expectPlugin(\"destructuringPrivate\", privateKeyLoc);\n }\n }\n}\n\n/**\n * The ExpressionErrors is a context struct used to track ambiguous patterns\n * When we are sure the parsed pattern is a RHS, which means it is not a pattern,\n * we will throw on this position on invalid assign syntax, otherwise it will be reset to -1\n *\n * Types of ExpressionErrors:\n *\n * - **shorthandAssignLoc**: track initializer `=` position\n * - **doubleProtoLoc**: track the duplicate `__proto__` key position\n * - **privateKey**: track private key `#p` position\n * - **optionalParametersLoc**: track the optional parameter (`?`).\n * It's only used by typescript and flow plugins\n */\nexport class ExpressionErrors {\n shorthandAssignLoc: Position | undefined | null = null;\n doubleProtoLoc: Position | undefined | null = null;\n privateKeyLoc: Position | undefined | null = null;\n optionalParametersLoc: Position | undefined | null = null;\n}\n","import type Parser from \"./index.ts\";\nimport UtilParser from \"./util.ts\";\nimport { SourceLocation, type Position } from \"../util/location.ts\";\nimport type { Comment, Node as NodeType, NodeBase } from \"../types.ts\";\n\n// Start an AST node, attaching a start offset.\n\nclass Node implements NodeBase {\n constructor(parser: Parser, pos: number, loc: Position) {\n this.start = pos;\n this.end = 0;\n this.loc = new SourceLocation(loc);\n if (parser?.options.ranges) this.range = [pos, 0];\n if (parser?.filename) this.loc.filename = parser.filename;\n }\n\n type: string = \"\";\n declare start: number;\n declare end: number;\n declare loc: SourceLocation;\n declare range: [number, number];\n declare leadingComments: Array<Comment>;\n declare trailingComments: Array<Comment>;\n declare innerComments: Array<Comment>;\n declare extra: {\n [key: string]: any;\n };\n}\nconst NodePrototype = Node.prototype;\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-expect-error __clone is not defined in Node prototype\n NodePrototype.__clone = function (): Node {\n const newNode = new Node(undefined, this.start, this.loc.start);\n const keys = Object.keys(this) as (keyof Node)[];\n for (let i = 0, length = keys.length; i < length; i++) {\n const key = keys[i];\n // Do not clone comments that are already attached to the node\n if (\n key !== \"leadingComments\" &&\n key !== \"trailingComments\" &&\n key !== \"innerComments\"\n ) {\n // @ts-expect-error cloning this to newNode\n newNode[key] = this[key];\n }\n }\n\n return newNode;\n };\n}\n\nfunction clonePlaceholder(node: any): any {\n return cloneIdentifier(node);\n}\n\nexport function cloneIdentifier(node: any): any {\n // We don't need to clone `typeAnnotations` and `optional`: because\n // cloneIdentifier is only used in object shorthand and named import/export.\n // Neither of them allow type annotations after the identifier or optional identifier\n const { type, start, end, loc, range, extra, name } = 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}\n\nexport function cloneStringLiteral(node: any): any {\n const { type, start, end, loc, range, extra } = 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 // estree set node.raw instead of node.extra\n cloned.raw = node.raw;\n } else {\n cloned.extra = extra;\n }\n cloned.value = node.value;\n return cloned;\n}\n\nexport type Undone<T extends NodeType> = Omit<T, \"type\">;\n\nexport abstract class NodeUtils extends UtilParser {\n startNode<T extends NodeType>(): Undone<T> {\n // @ts-expect-error cast Node as Undone<T>\n return new Node(this, this.state.start, this.state.startLoc);\n }\n\n startNodeAt<T extends NodeType>(loc: Position): Undone<T> {\n // @ts-expect-error cast Node as Undone<T>\n return new Node(this, loc.index, loc);\n }\n\n /** Start a new node with a previous node's location. */\n startNodeAtNode<T extends NodeType>(type: Undone<NodeType>): Undone<T> {\n return this.startNodeAt(type.loc.start);\n }\n\n // Finish an AST node, adding `type` and `end` properties.\n\n finishNode<T extends NodeType>(node: Undone<T>, type: T[\"type\"]): T {\n return this.finishNodeAt(node, type, this.state.lastTokEndLoc);\n }\n\n // Finish node at given position\n\n finishNodeAt<T extends NodeType>(\n node: Omit<T, \"type\">,\n type: T[\"type\"],\n endLoc: Position,\n ): T {\n if (process.env.NODE_ENV !== \"production\" && node.end > 0) {\n throw new Error(\n \"Do not call finishNode*() twice on the same node.\" +\n \" Instead use resetEndLocation() or change type directly.\",\n );\n }\n // @ts-expect-error migrate to Babel types AST typings\n node.type = type;\n // @ts-expect-error migrate to Babel types AST typings\n node.end = endLoc.index;\n node.loc.end = endLoc;\n if (this.options.ranges) node.range[1] = endLoc.index;\n if (this.options.attachComment) this.processComment(node as T);\n return node as T;\n }\n\n resetStartLocation(node: NodeBase, startLoc: Position): void {\n node.start = startLoc.index;\n node.loc.start = startLoc;\n if (this.options.ranges) node.range[0] = startLoc.index;\n }\n\n resetEndLocation(\n node: NodeBase,\n endLoc: Position = this.state.lastTokEndLoc,\n ): void {\n node.end = endLoc.index;\n node.loc.end = endLoc;\n if (this.options.ranges) node.range[1] = endLoc.index;\n }\n\n /**\n * Reset the start location of node to the start location of locationNode\n */\n resetStartLocationFromNode(node: NodeBase, locationNode: NodeBase): void {\n this.resetStartLocation(node, locationNode.loc.start);\n }\n}\n","/*:: declare var invariant; */\n\nimport type Parser from \"../../parser/index.ts\";\nimport {\n tokenIsIdentifier,\n tokenIsKeyword,\n tokenIsKeywordOrIdentifier,\n tokenIsLiteralPropertyName,\n tokenLabelName,\n tt,\n type TokenType,\n tokenIsFlowInterfaceOrTypeOrOpaque,\n} from \"../../tokenizer/types.ts\";\nimport type * as N from \"../../types.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../../util/identifier.ts\";\nimport FlowScopeHandler from \"./scope.ts\";\nimport {\n BindingFlag,\n ScopeFlag,\n type BindingTypes,\n} from \"../../util/scopeflags.ts\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport type { ParseStatementFlag } from \"../../parser/statement.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport { cloneIdentifier, type Undone } from \"../../parser/node.ts\";\n\nconst reservedTypes = new Set([\n \"_\",\n \"any\",\n \"bool\",\n \"boolean\",\n \"empty\",\n \"extends\",\n \"false\",\n \"interface\",\n \"mixed\",\n \"null\",\n \"number\",\n \"static\",\n \"string\",\n \"true\",\n \"typeof\",\n \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = ParseErrorEnum`flow`({\n AmbiguousConditionalArrow:\n \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n AmbiguousDeclareModuleKind:\n \"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 // TODO: When we get proper string enums in typescript make this ReservedType.\n // Not really worth it to do the whole $Values dance with reservedTypes set.\n AssignReservedType: ({ reservedType }: { reservedType: string }) =>\n `Cannot overwrite reserved type ${reservedType}.`,\n DeclareClassElement:\n \"The `declare` modifier can only appear on class fields.\",\n DeclareClassFieldInitializer:\n \"Initializers are not allowed in fields with the `declare` modifier.\",\n DuplicateDeclareModuleExports:\n \"Duplicate `declare module.exports` statement.\",\n EnumBooleanMemberNotInitialized: ({\n memberName,\n enumName,\n }: {\n memberName: string;\n enumName: string;\n }) =>\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 }: {\n memberName: string;\n enumName: string;\n }) =>\n `Enum member names need to be unique, but the name \\`${memberName}\\` has already been used before in enum \\`${enumName}\\`.`,\n EnumInconsistentMemberValues: ({ enumName }: { enumName: string }) =>\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 }: {\n invalidEnumType: string;\n enumName: string;\n }) =>\n `Enum type \\`${invalidEnumType}\\` is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n EnumInvalidExplicitTypeUnknownSupplied: ({\n enumName,\n }: {\n enumName: string;\n }) =>\n `Supplied enum type is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n\n // TODO: When moving to typescript, we should either have each of the\n // following errors only accept the specific strings they want:\n //\n // ...PrimaryType: explicitType: \"string\" | \"number\" | \"boolean\"\n // ...SymbolType: explicitType: \"symbol\"\n // ...UnknownType: explicitType: null\n //\n // Or, alternatively, merge these three errors together into one\n // `EnumInvalidMemberInitializer` error that can accept `EnumExplicitType`\n // without alteration, and then just have its message change based on the\n // explicitType.\n EnumInvalidMemberInitializerPrimaryType: ({\n enumName,\n memberName,\n explicitType,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `Enum \\`${enumName}\\` has type \\`${explicitType}\\`, so the initializer of \\`${memberName}\\` needs to be a ${explicitType} literal.`,\n EnumInvalidMemberInitializerSymbolType: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `Symbol enum members cannot be initialized. Use \\`${memberName},\\` in enum \\`${enumName}\\`.`,\n EnumInvalidMemberInitializerUnknownType: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\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 }: {\n enumName: string;\n memberName: string;\n suggestion: string;\n }) =>\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 }: {\n enumName: string;\n memberName: string;\n }) =>\n `Number enum members need to be initialized, e.g. \\`${memberName} = 1\\` in enum \\`${enumName}\\`.`,\n EnumStringMemberInconsistentlyInitialized: ({\n enumName,\n }: {\n enumName: string;\n }) =>\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:\n \"An `import module` declaration can not use `type` or `typeof` keyword.\",\n ImportTypeShorthandOnlyInPureImport:\n \"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:\n \"Explicit inexact syntax cannot appear inside an explicit exact object type.\",\n InexactInsideNonObject:\n \"Explicit inexact syntax cannot appear in class or interface definitions.\",\n InexactVariance: \"Explicit inexact syntax cannot have variance.\",\n InvalidNonTypeImportInDeclareModule:\n \"Imports within a `declare module` body must always be `import type` or `import typeof`.\",\n MissingTypeParamDefault:\n \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n NestedDeclareModule:\n \"`declare module` cannot be used inside another `declare module`.\",\n NestedFlowComment: \"Cannot have a flow comment inside another flow comment.\",\n PatternIsOptional: {\n message:\n \"A binding pattern parameter cannot be optional in an implementation signature.\",\n // For consistency in TypeScript and Flow error codes\n ...(!process.env.BABEL_8_BREAKING\n ? { reasonCode: \"OptionalBindingPattern\" }\n : {}),\n },\n SetterMayNotHaveThisParam: \"A setter cannot have a `this` parameter.\",\n SpreadVariance: \"Spread properties cannot have variance.\",\n ThisParamAnnotationRequired:\n \"A type annotation is required for the `this` parameter.\",\n ThisParamBannedInConstructor:\n \"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\",\n ThisParamMayNotBeOptional: \"The `this` parameter cannot be optional.\",\n ThisParamMustBeFirst:\n \"The `this` parameter must be the first function parameter.\",\n ThisParamNoDefault: \"The `this` parameter may not have a default value.\",\n TypeBeforeInitializer:\n \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeCastInPattern:\n \"The type cast expression is expected to be wrapped with parenthesis.\",\n UnexpectedExplicitInexactInObject:\n \"Explicit inexact syntax must appear at the end of an inexact object.\",\n UnexpectedReservedType: ({ reservedType }: { reservedType: string }) =>\n `Unexpected reserved type ${reservedType}.`,\n UnexpectedReservedUnderscore:\n \"`_` is only allowed as a type argument to call or new.\",\n UnexpectedSpaceBetweenModuloChecks:\n \"Spaces between `%` and `checks` are not allowed here.\",\n UnexpectedSpreadType:\n \"Spread operator cannot appear in class or interface definitions.\",\n UnexpectedSubtractionOperand:\n 'Unexpected token, expected \"number\" or \"bigint\".',\n UnexpectedTokenAfterTypeParameter:\n \"Expected an arrow function after this type parameter declaration.\",\n UnexpectedTypeParameterBeforeAsyncArrowFunction:\n \"Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.\",\n UnsupportedDeclareExportKind: ({\n unsupportedExportKind,\n suggestion,\n }: {\n unsupportedExportKind: string;\n suggestion: string;\n }) =>\n `\\`declare export ${unsupportedExportKind}\\` is not supported. Use \\`${suggestion}\\` instead.`,\n UnsupportedStatementInDeclareModule:\n \"Only declares and type imports are allowed inside declare module.\",\n UnterminatedFlowComment: \"Unterminated flow-comment.\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n return (\n bodyElement.type === \"DeclareExportAllDeclaration\" ||\n (bodyElement.type === \"DeclareExportDeclaration\" &&\n (!bodyElement.declaration ||\n (bodyElement.declaration.type !== \"TypeAlias\" &&\n bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nconst exportSuggestions = {\n const: \"declare export var\",\n let: \"declare export var\",\n type: \"export type\",\n interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition<T>(\n list: T[],\n test: (c: T, b: number, a: T[]) => boolean | undefined | null,\n): [T[], T[]] {\n const list1: T[] = [];\n const list2: T[] = [];\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}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\n\ntype EnumContext = {\n enumName: string;\n explicitType: EnumExplicitType;\n memberName: string;\n};\n\ntype EnumMemberInit =\n | {\n type: \"number\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"string\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"boolean\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"invalid\";\n loc: Position;\n }\n | {\n type: \"none\";\n loc: Position;\n };\n\nexport default (superClass: typeof Parser) =>\n class FlowParserMixin extends superClass implements Parser {\n // The value of the @flow/@noflow pragma. Initially undefined, transitions\n // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n // past the initial comment.\n flowPragma: void | null | \"flow\" | \"noflow\" = undefined;\n\n getScopeHandler(): {\n new (...args: any): FlowScopeHandler;\n } {\n return FlowScopeHandler;\n }\n\n shouldParseTypes(): boolean {\n return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n }\n\n shouldParseEnums(): boolean {\n return !!this.getPluginOption(\"flow\", \"enums\");\n }\n\n finishToken(type: TokenType, val: any): void {\n if (\n type !== tt.string &&\n type !== tt.semi &&\n type !== tt.interpreterDirective\n ) {\n if (this.flowPragma === undefined) {\n this.flowPragma = null;\n }\n }\n super.finishToken(type, val);\n }\n\n addComment(comment: N.Comment): void {\n if (this.flowPragma === undefined) {\n // Try to parse a flow pragma.\n const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n if (!matches) {\n // do nothing\n } 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\n flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tok || tt.colon);\n\n const type = this.flowParseType();\n this.state.inType = oldInType;\n return type;\n }\n\n flowParsePredicate(): N.FlowPredicate {\n const node = this.startNode();\n const moduloLoc = this.state.startLoc;\n this.next(); // eat `%`\n this.expectContextual(tt._checks);\n // Force '%' and 'checks' to be adjacent\n if (this.state.lastTokStart > moduloLoc.index + 1) {\n this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, {\n at: moduloLoc,\n });\n }\n if (this.eat(tt.parenL)) {\n node.value = super.parseExpression();\n this.expect(tt.parenR);\n return this.finishNode(node, \"DeclaredPredicate\");\n } else {\n return this.finishNode(node, \"InferredPredicate\");\n }\n }\n\n flowParseTypeAndPredicateInitialiser(): [\n N.FlowType | undefined | null,\n N.FlowPredicate | undefined | null,\n ] {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tt.colon);\n let type = null;\n let predicate = null;\n if (this.match(tt.modulo)) {\n this.state.inType = oldInType;\n predicate = this.flowParsePredicate();\n } else {\n type = this.flowParseType();\n this.state.inType = oldInType;\n if (this.match(tt.modulo)) {\n predicate = this.flowParsePredicate();\n }\n }\n return [type, predicate];\n }\n\n flowParseDeclareClass(\n node: Undone<N.FlowDeclareClass>,\n ): N.FlowDeclareClass {\n this.next();\n this.flowParseInterfaceish(node, /*isClass*/ true);\n return this.finishNode(node, \"DeclareClass\");\n }\n\n flowParseDeclareFunction(\n node: Undone<N.FlowDeclareFunction>,\n ): N.FlowDeclareFunction {\n this.next();\n\n const id = (node.id = this.parseIdentifier());\n\n const typeNode = this.startNode();\n const typeContainer = this.startNode<N.TypeAnnotation>();\n\n if (this.match(tt.lt)) {\n typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n typeNode.typeParameters = null;\n }\n\n this.expect(tt.parenL);\n const tmp = this.flowParseFunctionTypeParams();\n typeNode.params = tmp.params;\n typeNode.rest = tmp.rest;\n typeNode.this = tmp._this;\n this.expect(tt.parenR);\n\n [typeNode.returnType, node.predicate] =\n this.flowParseTypeAndPredicateInitialiser();\n\n typeContainer.typeAnnotation = this.finishNode(\n typeNode,\n \"FunctionTypeAnnotation\",\n );\n\n id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n this.resetEndLocation(id);\n this.semicolon();\n\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_FLOW_DECLARE_FN,\n node.id.loc.start,\n );\n\n return this.finishNode(node, \"DeclareFunction\");\n }\n\n flowParseDeclare(\n node: Undone<N.FlowDeclare>,\n insideModule?: boolean,\n ): N.FlowDeclare {\n if (this.match(tt._class)) {\n return this.flowParseDeclareClass(node);\n } else if (this.match(tt._function)) {\n return this.flowParseDeclareFunction(node);\n } else if (this.match(tt._var)) {\n return this.flowParseDeclareVariable(node);\n } else if (this.eatContextual(tt._module)) {\n if (this.match(tt.dot)) {\n return this.flowParseDeclareModuleExports(node);\n } else {\n if (insideModule) {\n this.raise(FlowErrors.NestedDeclareModule, {\n at: this.state.lastTokStartLoc,\n });\n }\n return this.flowParseDeclareModule(node);\n }\n } else if (this.isContextual(tt._type)) {\n return this.flowParseDeclareTypeAlias(node);\n } else if (this.isContextual(tt._opaque)) {\n return this.flowParseDeclareOpaqueType(node);\n } else if (this.isContextual(tt._interface)) {\n return this.flowParseDeclareInterface(node);\n } else if (this.match(tt._export)) {\n return this.flowParseDeclareExportDeclaration(node, insideModule);\n } else {\n this.unexpected();\n }\n }\n\n flowParseDeclareVariable(\n node: Undone<N.FlowDeclareVariable>,\n ): N.FlowDeclareVariable {\n this.next();\n node.id = this.flowParseTypeAnnotatableIdentifier(\n /*allowPrimitiveOverride*/ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_VAR,\n node.id.loc.start,\n );\n this.semicolon();\n return this.finishNode(node, \"DeclareVariable\");\n }\n\n flowParseDeclareModule(\n node: Undone<N.FlowDeclareModule>,\n ): N.FlowDeclareModule {\n this.scope.enter(ScopeFlag.OTHER);\n\n if (this.match(tt.string)) {\n node.id = super.parseExprAtom();\n } else {\n node.id = this.parseIdentifier();\n }\n\n const bodyNode = (node.body = this.startNode());\n // @ts-expect-error refine typings\n const body = (bodyNode.body = []);\n this.expect(tt.braceL);\n while (!this.match(tt.braceR)) {\n let bodyNode = this.startNode<N.ImportDeclaration>();\n\n if (this.match(tt._import)) {\n this.next();\n if (!this.isContextual(tt._type) && !this.match(tt._typeof)) {\n this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, {\n at: this.state.lastTokStartLoc,\n });\n }\n super.parseImport(bodyNode);\n } else {\n this.expectContextual(\n tt._declare,\n FlowErrors.UnsupportedStatementInDeclareModule,\n );\n // @ts-expect-error refine typings\n bodyNode = this.flowParseDeclare(bodyNode, true);\n }\n\n body.push(bodyNode);\n }\n\n this.scope.exit();\n\n this.expect(tt.braceR);\n\n this.finishNode(bodyNode, \"BlockStatement\");\n\n let kind: \"CommonJS\" | \"ES\" | null = null;\n let hasModuleExport = false;\n body.forEach(bodyElement => {\n if (isEsModuleType(bodyElement)) {\n if (kind === \"CommonJS\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, {\n at: bodyElement,\n });\n }\n kind = \"ES\";\n } else if (bodyElement.type === \"DeclareModuleExports\") {\n if (hasModuleExport) {\n this.raise(FlowErrors.DuplicateDeclareModuleExports, {\n at: bodyElement,\n });\n }\n if (kind === \"ES\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, {\n at: bodyElement,\n });\n }\n kind = \"CommonJS\";\n hasModuleExport = true;\n }\n });\n\n node.kind = kind || \"CommonJS\";\n return this.finishNode(node, \"DeclareModule\");\n }\n\n flowParseDeclareExportDeclaration(\n node: Undone<N.FlowDeclareExportDeclaration>,\n insideModule?: boolean | null,\n ): N.FlowDeclareExportDeclaration {\n this.expect(tt._export);\n\n if (this.eat(tt._default)) {\n if (this.match(tt._function) || this.match(tt._class)) {\n // declare export default class ...\n // declare export default function ...\n node.declaration = this.flowParseDeclare(this.startNode());\n } else {\n // declare export default [type];\n node.declaration = this.flowParseType();\n this.semicolon();\n }\n node.default = true;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else {\n if (\n this.match(tt._const) ||\n this.isLet() ||\n ((this.isContextual(tt._type) || this.isContextual(tt._interface)) &&\n !insideModule)\n ) {\n const label = this.state.value as\n | \"const\"\n | \"let\"\n | \"type\"\n | \"interface\";\n throw this.raise(FlowErrors.UnsupportedDeclareExportKind, {\n at: this.state.startLoc,\n unsupportedExportKind: label,\n suggestion: exportSuggestions[label],\n });\n }\n\n if (\n this.match(tt._var) || // declare export var ...\n this.match(tt._function) || // declare export function ...\n this.match(tt._class) || // declare export class ...\n this.isContextual(tt._opaque) // declare export opaque ..\n ) {\n node.declaration = this.flowParseDeclare(this.startNode());\n node.default = false;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else if (\n this.match(tt.star) || // declare export * from ''\n this.match(tt.braceL) || // declare export {} ...\n this.isContextual(tt._interface) || // declare export interface ...\n this.isContextual(tt._type) || // declare export type ...\n this.isContextual(tt._opaque) // declare export opaque type ...\n ) {\n node = this.parseExport(\n node as Undone<N.ExportNamedDeclaration | N.ExportAllDeclaration>,\n /* decorators */ null,\n );\n if (node.type === \"ExportNamedDeclaration\") {\n node.type = \"ExportDeclaration\";\n node.default = false;\n delete node.exportKind;\n }\n\n node.type = \"Declare\" + node.type;\n\n return node as N.Node;\n }\n }\n\n this.unexpected();\n }\n\n flowParseDeclareModuleExports(\n node: Undone<N.FlowDeclareModuleExports>,\n ): N.FlowDeclareModuleExports {\n this.next();\n this.expectContextual(tt._exports);\n node.typeAnnotation = this.flowParseTypeAnnotation();\n this.semicolon();\n\n return this.finishNode(node, \"DeclareModuleExports\");\n }\n\n flowParseDeclareTypeAlias(\n node: Undone<N.FlowDeclareTypeAlias>,\n ): N.FlowDeclareTypeAlias {\n this.next();\n const finished = this.flowParseTypeAlias(node);\n // Don't do finishNode as we don't want to process comments twice\n finished.type = \"DeclareTypeAlias\";\n return finished;\n }\n\n flowParseDeclareOpaqueType(\n node: Undone<N.FlowDeclareOpaqueType>,\n ): N.FlowDeclareOpaqueType {\n this.next();\n const finished = this.flowParseOpaqueType(node, true);\n // Don't do finishNode as we don't want to process comments twice\n finished.type = \"DeclareOpaqueType\";\n return finished;\n }\n\n flowParseDeclareInterface(\n node: Undone<N.FlowDeclareInterface>,\n ): N.FlowDeclareInterface {\n this.next();\n this.flowParseInterfaceish(node, /* isClass */ false);\n return this.finishNode(node, \"DeclareInterface\");\n }\n\n // Interfaces\n\n flowParseInterfaceish(node: Undone<N.FlowDeclare>, isClass: boolean): void {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ !isClass,\n /* declaration */ true,\n );\n\n this.scope.declareName(\n node.id.name,\n isClass ? BindingFlag.TYPE_FUNCTION : BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.extends = [];\n\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (!isClass && this.eat(tt.comma));\n }\n\n if (isClass) {\n node.implements = [];\n node.mixins = [];\n\n if (this.eatContextual(tt._mixins)) {\n do {\n node.mixins.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n if (this.eatContextual(tt._implements)) {\n do {\n node.implements.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\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\n flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n const node = this.startNode();\n\n node.id = this.flowParseQualifiedTypeIdentifier();\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n\n return this.finishNode(node, \"InterfaceExtends\");\n }\n\n flowParseInterface(node: Undone<N.FlowInterface>): N.FlowInterface {\n this.flowParseInterfaceish(node, /* isClass */ false);\n return this.finishNode(node, \"InterfaceDeclaration\");\n }\n\n checkNotUnderscore(word: string) {\n if (word === \"_\") {\n this.raise(FlowErrors.UnexpectedReservedUnderscore, {\n at: this.state.startLoc,\n });\n }\n }\n\n checkReservedType(word: string, startLoc: Position, declaration?: boolean) {\n if (!reservedTypes.has(word)) return;\n\n this.raise(\n declaration\n ? FlowErrors.AssignReservedType\n : FlowErrors.UnexpectedReservedType,\n {\n at: startLoc,\n reservedType: word,\n },\n );\n }\n\n flowParseRestrictedIdentifier(\n liberal?: boolean,\n declaration?: boolean,\n ): N.Identifier {\n this.checkReservedType(\n this.state.value,\n this.state.startLoc,\n declaration,\n );\n return this.parseIdentifier(liberal);\n }\n\n // Type aliases\n\n flowParseTypeAlias(node: Undone<N.FlowTypeAlias>): N.FlowTypeAlias {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ false,\n /* declaration */ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.right = this.flowParseTypeInitialiser(tt.eq);\n this.semicolon();\n\n return this.finishNode(node, \"TypeAlias\");\n }\n\n flowParseOpaqueType(\n node: Undone<N.FlowOpaqueType>,\n declare: boolean,\n ): N.FlowOpaqueType {\n this.expectContextual(tt._type);\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n // Parse the supertype\n node.supertype = null;\n if (this.match(tt.colon)) {\n node.supertype = this.flowParseTypeInitialiser(tt.colon);\n }\n\n node.impltype = null;\n if (!declare) {\n node.impltype = this.flowParseTypeInitialiser(tt.eq);\n }\n this.semicolon();\n\n return this.finishNode(node, \"OpaqueType\");\n }\n\n // Type annotations\n\n flowParseTypeParameter(requireDefault: boolean = false): N.TypeParameter {\n const nodeStartLoc = this.state.startLoc;\n\n const node = this.startNode<N.TypeParameter>();\n\n const variance = this.flowParseVariance();\n\n const ident = this.flowParseTypeAnnotatableIdentifier();\n node.name = ident.name;\n // @ts-expect-error migrate to Babel types\n node.variance = variance;\n // @ts-expect-error migrate to Babel types\n node.bound = ident.typeAnnotation;\n\n if (this.match(tt.eq)) {\n this.eat(tt.eq);\n // @ts-expect-error migrate to Babel types\n node.default = this.flowParseType();\n } else {\n if (requireDefault) {\n this.raise(FlowErrors.MissingTypeParamDefault, { at: nodeStartLoc });\n }\n }\n\n return this.finishNode(node, \"TypeParameter\");\n }\n\n flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n const oldInType = this.state.inType;\n const node = this.startNode<N.TypeParameterDeclaration>();\n node.params = [];\n\n this.state.inType = true;\n\n // istanbul ignore else: this condition is already checked at all call sites\n if (this.match(tt.lt) || this.match(tt.jsxTagStart)) {\n this.next();\n } else {\n this.unexpected();\n }\n\n let defaultRequired = false;\n\n do {\n const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n node.params.push(typeParameter);\n\n if (typeParameter.default) {\n defaultRequired = true;\n }\n\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n } while (!this.match(tt.gt));\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterDeclaration\");\n }\n\n flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n const node = this.startNode<N.TypeParameterInstantiation>();\n const oldInType = this.state.inType;\n node.params = [];\n\n this.state.inType = true;\n\n this.expect(tt.lt);\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = false;\n while (!this.match(tt.gt)) {\n node.params.push(this.flowParseType());\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n }\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n const node = this.startNode<N.TypeParameterInstantiation>();\n const oldInType = this.state.inType;\n node.params = [];\n\n this.state.inType = true;\n\n this.expect(tt.lt);\n while (!this.match(tt.gt)) {\n node.params.push(this.flowParseTypeOrImplicitInstantiation());\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n }\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseInterfaceType(): N.FlowInterfaceType {\n const node = this.startNode<N.FlowInterfaceType>();\n this.expectContextual(tt._interface);\n\n node.extends = [];\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n node.body = this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: false,\n allowProto: false,\n allowInexact: false,\n });\n\n return this.finishNode(node, \"InterfaceTypeAnnotation\");\n }\n\n flowParseObjectPropertyKey(): N.Expression {\n return this.match(tt.num) || this.match(tt.string)\n ? super.parseExprAtom()\n : this.parseIdentifier(true);\n }\n\n flowParseObjectTypeIndexer(\n node: Undone<N.FlowObjectTypeIndexer>,\n isStatic: boolean,\n variance?: N.FlowVariance | null,\n ): N.FlowObjectTypeIndexer {\n node.static = isStatic;\n\n // Note: bracketL has already been consumed\n if (this.lookahead().type === tt.colon) {\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(tt.bracketR);\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n\n return this.finishNode(node, \"ObjectTypeIndexer\");\n }\n\n flowParseObjectTypeInternalSlot(\n node: Undone<N.FlowObjectTypeInternalSlot>,\n isStatic: boolean,\n ): N.FlowObjectTypeInternalSlot {\n node.static = isStatic;\n // Note: both bracketL have already been consumed\n node.id = this.flowParseObjectPropertyKey();\n this.expect(tt.bracketR);\n this.expect(tt.bracketR);\n if (this.match(tt.lt) || this.match(tt.parenL)) {\n node.method = true;\n node.optional = false;\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.loc.start),\n );\n } else {\n node.method = false;\n if (this.eat(tt.question)) {\n node.optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n }\n return this.finishNode(node, \"ObjectTypeInternalSlot\");\n }\n\n flowParseObjectTypeMethodish(\n node: Undone<N.FlowFunctionTypeAnnotation>,\n ): N.FlowFunctionTypeAnnotation {\n node.params = [];\n node.rest = null;\n node.typeParameters = null;\n node.this = null;\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n this.expect(tt.parenL);\n if (this.match(tt._this)) {\n node.this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n node.this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n node.params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n\n if (this.eat(tt.ellipsis)) {\n node.rest = this.flowParseFunctionTypeParam(false);\n }\n this.expect(tt.parenR);\n node.returnType = this.flowParseTypeInitialiser();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n\n flowParseObjectTypeCallProperty(\n node: Undone<N.FlowObjectTypeCallProperty>,\n isStatic: boolean,\n ): N.FlowObjectTypeCallProperty {\n const valueNode = this.startNode();\n node.static = isStatic;\n node.value = this.flowParseObjectTypeMethodish(valueNode);\n return this.finishNode(node, \"ObjectTypeCallProperty\");\n }\n\n flowParseObjectType({\n allowStatic,\n allowExact,\n allowSpread,\n allowProto,\n allowInexact,\n }: {\n allowStatic: boolean;\n allowExact: boolean;\n allowSpread: boolean;\n allowProto: boolean;\n allowInexact: boolean;\n }): N.FlowObjectTypeAnnotation {\n const oldInType = this.state.inType;\n this.state.inType = true;\n\n const nodeStart = this.startNode();\n\n nodeStart.callProperties = [];\n nodeStart.properties = [];\n nodeStart.indexers = [];\n nodeStart.internalSlots = [];\n\n let endDelim;\n let exact;\n let inexact = false;\n if (allowExact && this.match(tt.braceBarL)) {\n this.expect(tt.braceBarL);\n endDelim = tt.braceBarR;\n exact = true;\n } else {\n this.expect(tt.braceL);\n endDelim = tt.braceR;\n exact = false;\n }\n\n nodeStart.exact = exact;\n\n while (!this.match(endDelim)) {\n let isStatic = false;\n let protoStartLoc: Position | undefined | null = null;\n let inexactStartLoc: Position | undefined | null = null;\n const node = this.startNode();\n\n if (allowProto && this.isContextual(tt._proto)) {\n const lookahead = this.lookahead();\n\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n protoStartLoc = this.state.startLoc;\n allowStatic = false;\n }\n }\n\n if (allowStatic && this.isContextual(tt._static)) {\n const lookahead = this.lookahead();\n\n // static is a valid identifier name\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n isStatic = true;\n }\n }\n\n const variance = this.flowParseVariance();\n\n if (this.eat(tt.bracketL)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (this.eat(tt.bracketL)) {\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.internalSlots.push(\n this.flowParseObjectTypeInternalSlot(node, isStatic),\n );\n } else {\n nodeStart.indexers.push(\n this.flowParseObjectTypeIndexer(node, isStatic, variance),\n );\n }\n } else if (this.match(tt.parenL) || this.match(tt.lt)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.callProperties.push(\n this.flowParseObjectTypeCallProperty(node, isStatic),\n );\n } else {\n let kind = \"init\";\n\n if (this.isContextual(tt._get) || this.isContextual(tt._set)) {\n const lookahead = this.lookahead();\n if (tokenIsLiteralPropertyName(lookahead.type)) {\n kind = this.state.value;\n this.next();\n }\n }\n\n const propOrInexact = this.flowParseObjectTypeProperty(\n node,\n isStatic,\n protoStartLoc,\n variance,\n kind,\n allowSpread,\n allowInexact ?? !exact,\n );\n\n if (propOrInexact === null) {\n inexact = true;\n inexactStartLoc = this.state.lastTokStartLoc;\n } else {\n nodeStart.properties.push(propOrInexact);\n }\n }\n\n this.flowObjectTypeSemicolon();\n\n if (\n inexactStartLoc &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.raise(FlowErrors.UnexpectedExplicitInexactInObject, {\n at: inexactStartLoc,\n });\n }\n }\n\n this.expect(endDelim);\n\n /* The inexact flag should only be added on ObjectTypeAnnotations that\n * are not the body of an interface, declare interface, or declare class.\n * Since spreads are only allowed in object types, checking that is\n * sufficient here.\n */\n if (allowSpread) {\n nodeStart.inexact = inexact;\n }\n\n const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n this.state.inType = oldInType;\n\n return out;\n }\n\n flowParseObjectTypeProperty(\n node: Undone<N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty>,\n isStatic: boolean,\n protoStartLoc: Position | undefined | null,\n variance: N.FlowVariance | undefined | null,\n kind: string,\n allowSpread: boolean,\n allowInexact: boolean,\n ): N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty | null {\n if (this.eat(tt.ellipsis)) {\n const isInexactToken =\n this.match(tt.comma) ||\n this.match(tt.semi) ||\n this.match(tt.braceR) ||\n this.match(tt.braceBarR);\n\n if (isInexactToken) {\n if (!allowSpread) {\n this.raise(FlowErrors.InexactInsideNonObject, {\n at: this.state.lastTokStartLoc,\n });\n } else if (!allowInexact) {\n this.raise(FlowErrors.InexactInsideExact, {\n at: this.state.lastTokStartLoc,\n });\n }\n if (variance) {\n this.raise(FlowErrors.InexactVariance, { at: variance });\n }\n\n return null;\n }\n\n if (!allowSpread) {\n this.raise(FlowErrors.UnexpectedSpreadType, {\n at: this.state.lastTokStartLoc,\n });\n }\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.raise(FlowErrors.SpreadVariance, { at: variance });\n }\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\n let optional = false;\n if (this.match(tt.lt) || this.match(tt.parenL)) {\n // This is a method property\n node.method = true;\n\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.loc.start),\n );\n if (kind === \"get\" || kind === \"set\") {\n this.flowCheckGetterSetterParams(node);\n }\n /** Declared classes/interfaces do not allow spread */\n if (\n !allowSpread &&\n node.key.name === \"constructor\" &&\n node.value.this\n ) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, {\n at: node.value.this,\n });\n }\n } else {\n if (kind !== \"init\") this.unexpected();\n\n node.method = false;\n\n if (this.eat(tt.question)) {\n optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n }\n\n node.optional = optional;\n\n return this.finishNode(node, \"ObjectTypeProperty\");\n }\n }\n\n // This is similar to checkGetterSetterParams, but as\n // @babel/parser uses non estree properties we cannot reuse it here\n flowCheckGetterSetterParams(\n property: Undone<\n N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty\n >,\n ): void {\n const paramCount = property.kind === \"get\" ? 0 : 1;\n const length =\n property.value.params.length + (property.value.rest ? 1 : 0);\n\n if (property.value.this) {\n this.raise(\n property.kind === \"get\"\n ? FlowErrors.GetterMayNotHaveThisParam\n : FlowErrors.SetterMayNotHaveThisParam,\n { at: property.value.this },\n );\n }\n\n if (length !== paramCount) {\n this.raise(\n property.kind === \"get\"\n ? Errors.BadGetterArity\n : Errors.BadSetterArity,\n { at: property },\n );\n }\n\n if (property.kind === \"set\" && property.value.rest) {\n this.raise(Errors.BadSetterRestParameter, { at: property });\n }\n }\n\n flowObjectTypeSemicolon(): void {\n if (\n !this.eat(tt.semi) &&\n !this.eat(tt.comma) &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.unexpected();\n }\n }\n\n flowParseQualifiedTypeIdentifier(\n startLoc?: Position,\n id?: N.Identifier,\n ): N.FlowQualifiedTypeIdentifier {\n startLoc ??= this.state.startLoc;\n let node: N.Identifier | N.FlowQualifiedTypeIdentifier =\n id || this.flowParseRestrictedIdentifier(true);\n\n while (this.eat(tt.dot)) {\n const node2 = this.startNodeAt<N.FlowQualifiedTypeIdentifier>(startLoc);\n node2.qualification = node;\n node2.id = this.flowParseRestrictedIdentifier(true);\n node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n }\n\n return node;\n }\n\n flowParseGenericType(\n startLoc: Position,\n id: N.Identifier,\n ): N.FlowGenericTypeAnnotation {\n const node = this.startNodeAt(startLoc);\n\n node.typeParameters = null;\n node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id);\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n }\n\n return this.finishNode(node, \"GenericTypeAnnotation\");\n }\n\n flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n const node = this.startNode();\n this.expect(tt._typeof);\n node.argument = this.flowParsePrimaryType();\n return this.finishNode(node, \"TypeofTypeAnnotation\");\n }\n\n flowParseTupleType(): N.FlowTupleTypeAnnotation {\n const node = this.startNode();\n node.types = [];\n this.expect(tt.bracketL);\n // We allow trailing commas\n while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n node.types.push(this.flowParseType());\n if (this.match(tt.bracketR)) break;\n this.expect(tt.comma);\n }\n this.expect(tt.bracketR);\n return this.finishNode(node, \"TupleTypeAnnotation\");\n }\n\n flowParseFunctionTypeParam(first: boolean): N.FlowFunctionTypeParam {\n let name = null;\n let optional = false;\n let typeAnnotation = null;\n const node = this.startNode<N.FlowFunctionTypeParam>();\n const lh = this.lookahead();\n const isThis = this.state.type === tt._this;\n\n if (lh.type === tt.colon || lh.type === tt.question) {\n if (isThis && !first) {\n this.raise(FlowErrors.ThisParamMustBeFirst, { at: node });\n }\n name = this.parseIdentifier(isThis);\n if (this.eat(tt.question)) {\n optional = true;\n if (isThis) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, { at: 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\n reinterpretTypeAsFunctionTypeParam(\n type: N.FlowType,\n ): N.FlowFunctionTypeParam {\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\n flowParseFunctionTypeParams(params: N.FlowFunctionTypeParam[] = []): {\n params: N.FlowFunctionTypeParam[];\n rest: N.FlowFunctionTypeParam | undefined | null;\n _this: N.FlowFunctionTypeParam | undefined | null;\n } {\n let rest: N.FlowFunctionTypeParam | undefined | null = null;\n let _this: N.FlowFunctionTypeParam | undefined | null = null;\n if (this.match(tt._this)) {\n _this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n _this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n if (this.eat(tt.ellipsis)) {\n rest = this.flowParseFunctionTypeParam(false);\n }\n return { params, rest, _this };\n }\n\n flowIdentToTypeAnnotation(\n startLoc: Position,\n node: Undone<N.FlowTypeAnnotation>,\n id: N.Identifier,\n ): N.FlowTypeAnnotation {\n switch (id.name) {\n case \"any\":\n return this.finishNode(node, \"AnyTypeAnnotation\");\n\n case \"bool\":\n case \"boolean\":\n return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n case \"mixed\":\n return this.finishNode(node, \"MixedTypeAnnotation\");\n\n case \"empty\":\n return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n case \"number\":\n return this.finishNode(node, \"NumberTypeAnnotation\");\n\n case \"string\":\n return this.finishNode(node, \"StringTypeAnnotation\");\n\n case \"symbol\":\n return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n default:\n this.checkNotUnderscore(id.name);\n return this.flowParseGenericType(startLoc, id);\n }\n }\n\n // The parsing of types roughly parallels the parsing of expressions, and\n // primary types are kind of like primary expressions...they're the\n // primitives with which other types are constructed.\n flowParsePrimaryType(): N.FlowTypeAnnotation {\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\n switch (this.state.type) {\n case tt.braceL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: true,\n allowProto: false,\n allowInexact: true,\n });\n\n case tt.braceBarL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: true,\n allowSpread: true,\n allowProto: false,\n allowInexact: false,\n });\n\n case tt.bracketL:\n this.state.noAnonFunctionType = false;\n type = this.flowParseTupleType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n return type;\n\n case tt.lt:\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n this.expect(tt.parenL);\n tmp = this.flowParseFunctionTypeParams();\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n case tt.parenL:\n this.next();\n\n // Check to see if this is actually a grouped type\n if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n if (tokenIsIdentifier(this.state.type) || this.match(tt._this)) {\n const token = this.lookahead().type;\n isGroupedType = token !== tt.question && token !== tt.colon;\n } else {\n isGroupedType = true;\n }\n }\n\n if (isGroupedType) {\n this.state.noAnonFunctionType = false;\n type = this.flowParseType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n // A `,` or a `) =>` means this is an anonymous function type\n if (\n this.state.noAnonFunctionType ||\n !(\n this.match(tt.comma) ||\n (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n )\n ) {\n this.expect(tt.parenR);\n return type;\n } else {\n // Eat a comma if there is one\n this.eat(tt.comma);\n }\n }\n\n if (type) {\n tmp = this.flowParseFunctionTypeParams([\n this.reinterpretTypeAsFunctionTypeParam(type),\n ]);\n } else {\n tmp = this.flowParseFunctionTypeParams();\n }\n\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n node.typeParameters = null;\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n case tt.string:\n return this.parseLiteral<N.StringLiteralTypeAnnotation>(\n this.state.value,\n \"StringLiteralTypeAnnotation\",\n );\n\n case tt._true:\n case tt._false:\n node.value = this.match(tt._true);\n this.next();\n return this.finishNode(\n node as Undone<N.BooleanLiteralTypeAnnotation>,\n \"BooleanLiteralTypeAnnotation\",\n );\n\n case tt.plusMin:\n if (this.state.value === \"-\") {\n this.next();\n if (this.match(tt.num)) {\n return this.parseLiteralAtNode<N.NumberLiteralTypeAnnotation>(\n -this.state.value,\n \"NumberLiteralTypeAnnotation\",\n node,\n );\n }\n\n if (this.match(tt.bigint)) {\n return this.parseLiteralAtNode<N.BigIntLiteralTypeAnnotation>(\n -this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n node,\n );\n }\n\n throw this.raise(FlowErrors.UnexpectedSubtractionOperand, {\n at: this.state.startLoc,\n });\n }\n this.unexpected();\n return;\n case tt.num:\n return this.parseLiteral(\n this.state.value,\n \"NumberLiteralTypeAnnotation\",\n );\n\n case tt.bigint:\n return this.parseLiteral(\n this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n );\n\n case tt._void:\n this.next();\n return this.finishNode(node, \"VoidTypeAnnotation\");\n\n case tt._null:\n this.next();\n return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n case tt._this:\n this.next();\n return this.finishNode(node, \"ThisTypeAnnotation\");\n\n case tt.star:\n this.next();\n return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n case tt._typeof:\n return this.flowParseTypeofType();\n\n default:\n if (tokenIsKeyword(this.state.type)) {\n const label = tokenLabelName(this.state.type);\n this.next();\n return super.createIdentifier(node as Undone<N.Identifier>, label);\n } else if (tokenIsIdentifier(this.state.type)) {\n if (this.isContextual(tt._interface)) {\n return this.flowParseInterfaceType();\n }\n\n return this.flowIdentToTypeAnnotation(\n startLoc,\n node,\n this.parseIdentifier(),\n );\n }\n }\n\n this.unexpected();\n }\n\n flowParsePostfixType(): N.FlowTypeAnnotation {\n const startLoc = this.state.startLoc;\n let type = this.flowParsePrimaryType();\n let seenOptionalIndexedAccess = false;\n while (\n (this.match(tt.bracketL) || this.match(tt.questionDot)) &&\n !this.canInsertSemicolon()\n ) {\n const node = this.startNodeAt(startLoc);\n const optional = this.eat(tt.questionDot);\n seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional;\n this.expect(tt.bracketL);\n if (!optional && this.match(tt.bracketR)) {\n node.elementType = type;\n this.next(); // eat `]`\n type = this.finishNode(node, \"ArrayTypeAnnotation\");\n } else {\n node.objectType = type;\n node.indexType = this.flowParseType();\n this.expect(tt.bracketR);\n if (seenOptionalIndexedAccess) {\n node.optional = optional;\n type = this.finishNode<N.FlowOptionalIndexedAccessType>(\n // @ts-expect-error todo(flow->ts)\n node,\n \"OptionalIndexedAccessType\",\n );\n } else {\n type = this.finishNode<N.FlowIndexedAccessType>(\n // @ts-expect-error todo(flow->ts)\n node,\n \"IndexedAccessType\",\n );\n }\n }\n }\n return type;\n }\n\n flowParsePrefixType(): N.FlowTypeAnnotation {\n const node = this.startNode();\n if (this.eat(tt.question)) {\n node.typeAnnotation = this.flowParsePrefixType();\n return this.finishNode(node, \"NullableTypeAnnotation\");\n } else {\n return this.flowParsePostfixType();\n }\n }\n\n flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n const param = this.flowParsePrefixType();\n if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\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\n flowParseIntersectionType(): N.FlowTypeAnnotation {\n const node = this.startNode();\n this.eat(tt.bitwiseAND);\n const type = this.flowParseAnonFunctionWithoutParens();\n node.types = [type];\n while (this.eat(tt.bitwiseAND)) {\n node.types.push(this.flowParseAnonFunctionWithoutParens());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"IntersectionTypeAnnotation\");\n }\n\n flowParseUnionType(): N.FlowTypeAnnotation {\n const node = this.startNode();\n this.eat(tt.bitwiseOR);\n const type = this.flowParseIntersectionType();\n node.types = [type];\n while (this.eat(tt.bitwiseOR)) {\n node.types.push(this.flowParseIntersectionType());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"UnionTypeAnnotation\");\n }\n\n flowParseType(): N.FlowTypeAnnotation {\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\n flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n if (this.state.type === tt.name && 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\n flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n const node = this.startNode<N.FlowTypeAnnotation>();\n node.typeAnnotation = this.flowParseTypeInitialiser();\n return this.finishNode(node, \"TypeAnnotation\");\n }\n\n flowParseTypeAnnotatableIdentifier(\n allowPrimitiveOverride?: boolean,\n ): N.Identifier {\n const ident = allowPrimitiveOverride\n ? this.parseIdentifier()\n : this.flowParseRestrictedIdentifier();\n if (this.match(tt.colon)) {\n // @ts-expect-error: refine typings\n ident.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(ident);\n }\n return ident;\n }\n\n typeCastToParameter(node: N.Node): N.Node {\n node.expression.typeAnnotation = node.typeAnnotation;\n\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n\n return node.expression;\n }\n\n flowParseVariance(): N.FlowVariance | undefined | null {\n let variance = null;\n if (this.match(tt.plusMin)) {\n variance = this.startNode<N.FlowVariance>();\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\n // ==================================\n // Overrides\n // ==================================\n\n parseFunctionBody(\n node: N.Function,\n allowExpressionBody?: boolean | null,\n isMethod: boolean = false,\n ): void {\n if (allowExpressionBody) {\n this.forwardNoArrowParamsConversionAt(node, () =>\n super.parseFunctionBody(node, true, isMethod),\n );\n return;\n }\n\n super.parseFunctionBody(node, false, isMethod);\n }\n\n parseFunctionBodyAndFinish<\n T extends\n | N.Function\n | N.TSDeclareMethod\n | N.TSDeclareFunction\n | N.ClassPrivateMethod,\n >(node: Undone<T>, type: T[\"type\"], isMethod: boolean = false): T {\n if (this.match(tt.colon)) {\n const typeNode = this.startNode<N.TypeAnnotation>();\n\n [\n typeNode.typeAnnotation,\n // @ts-expect-error predicate may not exist\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser();\n\n node.returnType = typeNode.typeAnnotation\n ? this.finishNode(typeNode, \"TypeAnnotation\")\n : null;\n }\n\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n\n // interfaces and enums\n parseStatementLike(flags: ParseStatementFlag): N.Statement {\n // strict mode handling of `interface` since it's a reserved word\n if (this.state.strict && this.isContextual(tt._interface)) {\n const lookahead = this.lookahead();\n if (tokenIsKeywordOrIdentifier(lookahead.type)) {\n const node = this.startNode<N.FlowInterface>();\n this.next();\n return this.flowParseInterface(node);\n }\n } else if (this.shouldParseEnums() && this.isContextual(tt._enum)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n const stmt = super.parseStatementLike(flags);\n // We will parse a flow pragma in any comment before the first statement.\n if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n this.flowPragma = null;\n }\n return stmt;\n }\n\n // declares, interfaces and type aliases\n parseExpressionStatement(\n node: N.ExpressionStatement,\n expr: N.Expression,\n decorators: N.Decorator[] | null,\n ): N.ExpressionStatement {\n if (expr.type === \"Identifier\") {\n if (expr.name === \"declare\") {\n if (\n this.match(tt._class) ||\n tokenIsIdentifier(this.state.type) ||\n this.match(tt._function) ||\n this.match(tt._var) ||\n this.match(tt._export)\n ) {\n // @ts-expect-error: refine typings\n return this.flowParseDeclare(node);\n }\n } else if (tokenIsIdentifier(this.state.type)) {\n if (expr.name === \"interface\") {\n // @ts-expect-error: refine typings\n return this.flowParseInterface(node);\n } else if (expr.name === \"type\") {\n // @ts-expect-error: refine typings\n return this.flowParseTypeAlias(node);\n } else if (expr.name === \"opaque\") {\n // @ts-expect-error: refine typings\n return this.flowParseOpaqueType(node, false);\n }\n }\n }\n\n return super.parseExpressionStatement(node, expr, decorators);\n }\n\n // export type\n shouldParseExportDeclaration(): boolean {\n const { type } = this.state;\n if (\n tokenIsFlowInterfaceOrTypeOrOpaque(type) ||\n (this.shouldParseEnums() && type === tt._enum)\n ) {\n return !this.state.containsEsc;\n }\n return super.shouldParseExportDeclaration();\n }\n\n isExportDefaultSpecifier(): boolean {\n const { type } = this.state;\n if (\n tokenIsFlowInterfaceOrTypeOrOpaque(type) ||\n (this.shouldParseEnums() && type === tt._enum)\n ) {\n return this.state.containsEsc;\n }\n\n return super.isExportDefaultSpecifier();\n }\n\n parseExportDefaultExpression(): N.Expression | N.Declaration {\n if (this.shouldParseEnums() && this.isContextual(tt._enum)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n return super.parseExportDefaultExpression();\n }\n\n parseConditional(\n expr: N.Expression,\n\n startLoc: Position,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n if (!this.match(tt.question)) return expr;\n\n if (this.state.maybeInArrowParameters) {\n const nextCh = this.lookaheadCharCode();\n // These tokens cannot start an expression, so if one of them follows\n // ? then we are probably in an arrow function parameters list and we\n // don't parse the conditional expression.\n if (\n nextCh === charCodes.comma || // (a?, b) => c\n nextCh === charCodes.equalsTo || // (a? = b) => c\n nextCh === charCodes.colon || // (a?: b) => c\n nextCh === charCodes.rightParenthesis // (a?) => c\n ) {\n /*:: invariant(refExpressionErrors != null) */\n this.setOptionalParametersError(refExpressionErrors);\n return expr;\n }\n }\n\n this.expect(tt.question);\n const state = this.state.clone();\n const originalNoArrowAt = this.state.noArrowAt;\n const node = this.startNodeAt(startLoc);\n let { consequent, failed } = this.tryParseConditionalConsequent();\n let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n if (failed || invalid.length > 0) {\n const noArrowAt = [...originalNoArrowAt];\n\n if (invalid.length > 0) {\n this.state = state;\n this.state.noArrowAt = noArrowAt;\n\n for (let i = 0; i < invalid.length; i++) {\n noArrowAt.push(invalid[i].start);\n }\n\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n [valid, invalid] = this.getArrowLikeExpressions(consequent);\n }\n\n if (failed && valid.length > 1) {\n // if there are two or more possible correct ways of parsing, throw an\n // error.\n // e.g. Source: a ? (b): c => (d): e => f\n // Result 1: a ? b : (c => ((d): e => f))\n // Result 2: a ? ((b): c => d) : (e => f)\n this.raise(FlowErrors.AmbiguousConditionalArrow, {\n at: state.startLoc,\n });\n }\n\n if (failed && valid.length === 1) {\n this.state = state;\n noArrowAt.push(valid[0].start);\n this.state.noArrowAt = noArrowAt;\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n }\n }\n\n this.getArrowLikeExpressions(consequent, true);\n\n this.state.noArrowAt = originalNoArrowAt;\n this.expect(tt.colon);\n\n node.test = expr;\n node.consequent = consequent;\n node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n this.parseMaybeAssign(undefined, undefined),\n );\n\n return this.finishNode(node, \"ConditionalExpression\");\n }\n\n tryParseConditionalConsequent(): {\n consequent: N.Expression;\n failed: boolean;\n } {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n\n const consequent = this.parseMaybeAssignAllowIn();\n const failed = !this.match(tt.colon);\n\n this.state.noArrowParamsConversionAt.pop();\n\n return { consequent, failed };\n }\n\n // Given an expression, walks through out its arrow functions whose body is\n // an expression and through out conditional expressions. It returns every\n // function which has been parsed with a return type but could have been\n // parenthesized expressions.\n // These functions are separated into two arrays: one containing the ones\n // whose parameters can be converted to assignable lists, one containing the\n // others.\n getArrowLikeExpressions(\n node: N.Expression,\n disallowInvalid?: boolean,\n ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n const stack = [node];\n const arrows: N.ArrowFunctionExpression[] = [];\n\n while (stack.length !== 0) {\n const node = stack.pop();\n if (node.type === \"ArrowFunctionExpression\") {\n if (node.typeParameters || !node.returnType) {\n // This is an arrow expression without ambiguity, so check its parameters\n // @ts-expect-error: refine typings\n this.finishArrowValidation(node);\n } else {\n // @ts-expect-error: refine typings\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\n if (disallowInvalid) {\n arrows.forEach(node => this.finishArrowValidation(node));\n return [arrows, []];\n }\n\n return partition(arrows, node =>\n node.params.every(param => this.isAssignable(param, true)),\n );\n }\n\n finishArrowValidation(node: N.ArrowFunctionExpression) {\n this.toAssignableList(\n // node.params is Expression[] instead of $ReadOnlyArray<Pattern> because it\n // has not been converted yet.\n node.params as any as N.Expression[],\n node.extra?.trailingCommaLoc,\n /* isLHS */ false,\n );\n // Enter scope, as checkParams defines bindings\n this.scope.enter(ScopeFlag.FUNCTION | ScopeFlag.ARROW);\n // Use super's method to force the parameters to be checked\n super.checkParams(node, false, true);\n this.scope.exit();\n }\n\n forwardNoArrowParamsConversionAt<T>(\n node: Undone<N.Node>,\n parse: () => T,\n ): T {\n let result: T;\n if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n result = parse();\n this.state.noArrowParamsConversionAt.pop();\n } else {\n result = parse();\n }\n\n return result;\n }\n\n parseParenItem(\n node: N.Expression,\n\n startLoc: Position,\n ): N.Expression {\n node = super.parseParenItem(node, startLoc);\n if (this.eat(tt.question)) {\n node.optional = true;\n // Include questionmark in location of node\n // Don't use this.finishNode() as otherwise we might process comments twice and\n // include already consumed parens\n this.resetEndLocation(node);\n }\n\n if (this.match(tt.colon)) {\n const typeCastNode = this.startNodeAt(startLoc);\n typeCastNode.expression = node;\n typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n return this.finishNode(typeCastNode, \"TypeCastExpression\");\n }\n\n return node;\n }\n\n assertModuleNodeAllowed(node: N.Node) {\n if (\n (node.type === \"ImportDeclaration\" &&\n (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n (node.type === \"ExportNamedDeclaration\" &&\n node.exportKind === \"type\") ||\n (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n ) {\n // Allow Flowtype imports and exports in all conditions because\n // Flow itself does not care about 'sourceType'.\n return;\n }\n\n super.assertModuleNodeAllowed(node);\n }\n\n parseExportDeclaration(\n node: N.ExportNamedDeclaration,\n ): N.Declaration | undefined | null {\n if (this.isContextual(tt._type)) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n\n if (this.match(tt.braceL)) {\n // export type { foo, bar };\n node.specifiers = this.parseExportSpecifiers(\n /* isInTypeExport */ true,\n );\n super.parseExportFrom(node);\n return null;\n } else {\n // export type Foo = Bar;\n // @ts-expect-error: refine typings\n return this.flowParseTypeAlias(declarationNode);\n }\n } else if (this.isContextual(tt._opaque)) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n // export opaque type Foo = Bar;\n // @ts-expect-error: refine typings\n return this.flowParseOpaqueType(declarationNode, false);\n } else if (this.isContextual(tt._interface)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n // @ts-expect-error: refine typings\n return this.flowParseInterface(declarationNode);\n } else if (this.shouldParseEnums() && this.isContextual(tt._enum)) {\n node.exportKind = \"value\";\n const declarationNode = this.startNode();\n this.next();\n // @ts-expect-error: refine typings\n return this.flowParseEnumDeclaration(declarationNode);\n } else {\n return super.parseExportDeclaration(node);\n }\n }\n\n eatExportStar(node: N.Node): boolean {\n if (super.eatExportStar(node)) return true;\n\n if (this.isContextual(tt._type) && this.lookahead().type === tt.star) {\n node.exportKind = \"type\";\n this.next();\n this.next();\n return true;\n }\n\n return false;\n }\n\n maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n const { startLoc } = this.state;\n const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n if (hasNamespace && node.exportKind === \"type\") {\n this.unexpected(startLoc);\n }\n return hasNamespace;\n }\n\n parseClassId(\n node: N.Class,\n isStatement: boolean,\n optionalId?: boolean | null,\n ) {\n super.parseClassId(node, isStatement, optionalId);\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n }\n\n parseClassMember(\n classBody: N.ClassBody,\n member: any,\n state: N.ParseClassMemberState,\n ): void {\n const { startLoc } = this.state;\n if (this.isContextual(tt._declare)) {\n if (super.parseClassMemberFromModifier(classBody, member)) {\n // 'declare' is a class element name\n return;\n }\n\n member.declare = true;\n }\n\n super.parseClassMember(classBody, member, state);\n\n if (member.declare) {\n if (\n member.type !== \"ClassProperty\" &&\n member.type !== \"ClassPrivateProperty\" &&\n member.type !== \"PropertyDefinition\" // Used by estree plugin\n ) {\n this.raise(FlowErrors.DeclareClassElement, { at: startLoc });\n } else if (member.value) {\n this.raise(FlowErrors.DeclareClassFieldInitializer, {\n at: member.value,\n });\n }\n }\n }\n\n isIterator(word: string): boolean {\n return word === \"iterator\" || word === \"asyncIterator\";\n }\n\n readIterator(): void {\n const word = super.readWord1();\n const fullWord = \"@@\" + word;\n\n // Allow @@iterator and @@asyncIterator as a identifier only inside type\n if (!this.isIterator(word) || !this.state.inType) {\n this.raise(Errors.InvalidIdentifier, {\n at: this.state.curPosition(),\n identifierName: fullWord,\n });\n }\n\n this.finishToken(tt.name, fullWord);\n }\n\n // ensure that inside flow types, we bypass the jsx parser plugin\n getTokenFromCode(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n this.finishOp(tt.braceBarL, 2);\n } else if (\n this.state.inType &&\n (code === charCodes.greaterThan || code === charCodes.lessThan)\n ) {\n this.finishOp(code === charCodes.greaterThan ? tt.gt : tt.lt, 1);\n } else if (this.state.inType && code === charCodes.questionMark) {\n if (next === charCodes.dot) {\n this.finishOp(tt.questionDot, 2);\n } else {\n // allow double nullable types in Flow: ??string\n this.finishOp(tt.question, 1);\n }\n } else if (\n isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))\n ) {\n this.state.pos += 2; // eat \"@@\"\n this.readIterator();\n } else {\n super.getTokenFromCode(code);\n }\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n if (node.type === \"TypeCastExpression\") {\n return this.isAssignable(node.expression, isBinding);\n } else {\n return super.isAssignable(node, isBinding);\n }\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): void {\n if (\n !isLHS &&\n node.type === \"AssignmentExpression\" &&\n node.left.type === \"TypeCastExpression\"\n ) {\n node.left = this.typeCastToParameter(node.left);\n }\n super.toAssignable(node, isLHS);\n }\n\n // turn type casts that we found in function parameter head into type annotated params\n toAssignableList(\n exprList: N.Expression[],\n trailingCommaLoc: Position | undefined | null,\n isLHS: boolean,\n ): void {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (expr?.type === \"TypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(expr);\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n\n // this is a list of nodes, from something like a call expression, we need to filter the\n // type casts that we've found that are illegal in this context\n toReferencedList(\n exprList: ReadonlyArray<N.Expression | undefined | null>,\n isParenthesizedExpr?: boolean,\n ): ReadonlyArray<N.Expression | undefined | null> {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (\n expr &&\n expr.type === \"TypeCastExpression\" &&\n !expr.extra?.parenthesized &&\n (exprList.length > 1 || !isParenthesizedExpr)\n ) {\n this.raise(FlowErrors.TypeCastInPattern, {\n at: expr.typeAnnotation,\n });\n }\n }\n\n return exprList;\n }\n\n parseArrayLike(\n close: TokenType,\n canBePattern: boolean,\n isTuple: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ArrayExpression | N.TupleExpression {\n const node = super.parseArrayLike(\n close,\n canBePattern,\n isTuple,\n refExpressionErrors,\n );\n\n // This could be an array pattern:\n // ([a: string, b: string]) => {}\n // In this case, we don't have to call toReferencedList. We will\n // call it, if needed, when we are sure that it is a parenthesized\n // expression by calling toReferencedListDeep.\n if (canBePattern && !this.state.maybeInArrowParameters) {\n this.toReferencedList(node.elements);\n }\n\n return node;\n }\n\n isValidLVal(type: string, isParenthesized: boolean, binding: BindingTypes) {\n return (\n type === \"TypeCastExpression\" ||\n super.isValidLVal(type, isParenthesized, binding)\n );\n }\n\n // parse class property type annotations\n parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n if (this.match(tt.colon)) {\n // @ts-expect-error refine typings\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassProperty(node);\n }\n\n parseClassPrivateProperty(\n node: N.ClassPrivateProperty,\n ): N.ClassPrivateProperty {\n if (this.match(tt.colon)) {\n // @ts-expect-error refine typings\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassPrivateProperty(node);\n }\n\n // determine whether or not we're currently in the position where a class method would appear\n isClassMethod(): boolean {\n return this.match(tt.lt) || super.isClassMethod();\n }\n\n // determine whether or not we're currently in the position where a class property would appear\n isClassProperty(): boolean {\n return this.match(tt.colon) || super.isClassProperty();\n }\n\n isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n }\n\n // parse type parameters for class methods\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n if ((method as any).variance) {\n this.unexpected((method as any).variance.loc.start);\n }\n delete (method as any).variance;\n if (this.match(tt.lt)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassMethod(\n classBody,\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n );\n\n if (method.params && isConstructor) {\n const params = method.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, { at: method });\n }\n // estree support\n } else if (\n // @ts-expect-error TS does not know about the face that estree can replace ClassMethod with MethodDefinition\n method.type === \"MethodDefinition\" &&\n isConstructor &&\n // @ts-expect-error estree\n method.value.params\n ) {\n // @ts-expect-error estree\n const params = method.value.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, { at: method });\n }\n }\n }\n\n pushClassPrivateMethod(\n classBody: N.ClassBody,\n method: N.ClassPrivateMethod,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n if ((method as any).variance) {\n this.unexpected((method as any).variance.loc.start);\n }\n delete (method as any).variance;\n if (this.match(tt.lt)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n\n // parse a the super class type parameters and implements\n parseClassSuper(node: N.Class): void {\n super.parseClassSuper(node);\n if (node.superClass && this.match(tt.lt)) {\n node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n }\n if (this.isContextual(tt._implements)) {\n this.next();\n const implemented: N.FlowClassImplements[] = (node.implements = []);\n do {\n const node = this.startNode();\n node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n implemented.push(this.finishNode(node, \"ClassImplements\"));\n } while (this.eat(tt.comma));\n }\n }\n\n checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\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, { at: param });\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.SetterMayNotHaveThisParam, { at: param });\n }\n }\n }\n\n parsePropertyNamePrefixOperator(\n node: N.ObjectOrClassMember | N.ClassMember,\n ): void {\n node.variance = this.flowParseVariance();\n }\n\n // parse type parameters for object method shorthand\n parseObjPropValue(\n prop: Undone<N.ObjectMethod | N.ObjectProperty>,\n startLoc: Position | undefined | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectMethod | N.ObjectProperty {\n if ((prop as any).variance) {\n this.unexpected((prop as any).variance.loc.start);\n }\n delete (prop as any).variance;\n\n let typeParameters;\n\n // method shorthand\n if (this.match(tt.lt) && !isAccessor) {\n typeParameters = this.flowParseTypeParameterDeclaration();\n if (!this.match(tt.parenL)) this.unexpected();\n }\n\n const result = super.parseObjPropValue(\n prop,\n startLoc,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n refExpressionErrors,\n );\n\n // add typeParameters if we found them\n if (typeParameters) {\n // @ts-expect-error: refine typings\n (result.value || result).typeParameters = typeParameters;\n }\n return result;\n }\n\n parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n if (this.eat(tt.question)) {\n if (param.type !== \"Identifier\") {\n this.raise(FlowErrors.PatternIsOptional, { at: param });\n }\n if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, { at: param });\n }\n\n (param as any as N.Identifier).optional = true;\n }\n if (this.match(tt.colon)) {\n // @ts-expect-error: refine typings\n param.typeAnnotation = this.flowParseTypeAnnotation();\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamAnnotationRequired, { at: param });\n }\n\n if (this.match(tt.eq) && this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamNoDefault, { at: param });\n }\n\n this.resetEndLocation(param);\n return param;\n }\n\n parseMaybeDefault(\n startLoc?: Position | null,\n left?: N.Pattern | null,\n ): N.Pattern {\n const node = super.parseMaybeDefault(startLoc, left);\n\n if (\n node.type === \"AssignmentPattern\" &&\n node.typeAnnotation &&\n node.right.start < node.typeAnnotation.start\n ) {\n this.raise(FlowErrors.TypeBeforeInitializer, {\n at: node.typeAnnotation,\n });\n }\n\n return node;\n }\n\n checkImportReflection(node: Undone<N.ImportDeclaration>) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(FlowErrors.ImportReflectionHasImportType, {\n at: node.specifiers[0].loc.start,\n });\n }\n }\n\n parseImportSpecifierLocal<\n T extends\n | N.ImportSpecifier\n | N.ImportDefaultSpecifier\n | N.ImportNamespaceSpecifier,\n >(node: N.ImportDeclaration, specifier: Undone<T>, type: T[\"type\"]): void {\n specifier.local = hasTypeImportKind(node)\n ? this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n )\n : this.parseIdentifier();\n\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n\n isPotentialImportPhase(isExport: boolean): boolean {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(tt._type)) {\n if (!isExport) return true;\n const ch = this.lookaheadCharCode();\n return ch === charCodes.leftCurlyBrace || ch === charCodes.asterisk;\n }\n return !isExport && this.isContextual(tt._typeof);\n }\n\n applyImportPhase(\n node: Undone<N.ImportDeclaration | N.ExportNamedDeclaration>,\n isExport: boolean,\n phase: string | null,\n loc?: Position,\n ): void {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n if (!phase && this.match(tt._default)) {\n // TODO: Align with our TS AST and always add .exportKind\n return;\n }\n (node as N.ExportNamedDeclaration).exportKind =\n phase === \"type\" ? phase : \"value\";\n } else {\n if (phase === \"type\" && this.match(tt.star)) this.unexpected();\n (node as N.ImportDeclaration).importKind =\n phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n\n // parse import-type/typeof shorthand\n parseImportSpecifier(\n specifier: any,\n importedIsString: boolean,\n isInTypeOnlyImport: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isMaybeTypeOnly: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindingType: BindingTypes | undefined,\n ): N.ImportSpecifier {\n const firstIdent = specifier.imported;\n\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\n let isBinding = false;\n if (this.isContextual(tt._as) && !this.isLookaheadContextual(\"as\")) {\n const as_ident = this.parseIdentifier(true);\n if (\n specifierTypeKind !== null &&\n !tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n // `import {type as ,` or `import {type as }`\n specifier.imported = as_ident;\n specifier.importKind = specifierTypeKind;\n specifier.local = cloneIdentifier(as_ident);\n } else {\n // `import {type as foo`\n specifier.imported = firstIdent;\n specifier.importKind = null;\n specifier.local = this.parseIdentifier();\n }\n } else {\n if (\n specifierTypeKind !== null &&\n tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n // `import {type foo`\n specifier.imported = this.parseIdentifier(true);\n specifier.importKind = specifierTypeKind;\n } else {\n if (importedIsString) {\n /*:: invariant(firstIdent instanceof N.StringLiteral) */\n throw this.raise(Errors.ImportBindingIsString, {\n at: specifier,\n importName: firstIdent.value,\n });\n }\n /*:: invariant(firstIdent instanceof N.Node) */\n specifier.imported = firstIdent;\n specifier.importKind = null;\n }\n\n if (this.eatContextual(tt._as)) {\n specifier.local = this.parseIdentifier();\n } else {\n isBinding = true;\n specifier.local = cloneIdentifier(specifier.imported);\n }\n }\n\n const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n if (isInTypeOnlyImport && specifierIsTypeImport) {\n this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, {\n at: specifier,\n });\n }\n\n if (isInTypeOnlyImport || specifierIsTypeImport) {\n this.checkReservedType(\n specifier.local.name,\n specifier.local.loc.start,\n /* declaration */ true,\n );\n }\n\n if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) {\n this.checkReservedWord(\n specifier.local.name,\n specifier.loc.start,\n true,\n true,\n );\n }\n\n return this.finishImportSpecifier(specifier, \"ImportSpecifier\");\n }\n\n parseBindingAtom(): N.Pattern {\n switch (this.state.type) {\n case tt._this:\n // \"this\" may be the name of a parameter, so allow it.\n return this.parseIdentifier(/* liberal */ true);\n default:\n return super.parseBindingAtom();\n }\n }\n\n // parse function type parameters - function foo<T>() {}\n parseFunctionParams(\n node: Undone<N.Function>,\n isConstructor: boolean,\n ): void {\n // @ts-expect-error kind may not index node\n const kind = node.kind;\n if (kind !== \"get\" && kind !== \"set\" && this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.parseFunctionParams(node, isConstructor);\n }\n\n // parse flow type annotations on variable declarator heads - let foo: string = bar\n parseVarId(\n decl: N.VariableDeclarator,\n kind: \"var\" | \"let\" | \"const\",\n ): void {\n super.parseVarId(decl, kind);\n if (this.match(tt.colon)) {\n // @ts-expect-error: refine typings\n decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(decl.id); // set end position to end of type\n }\n }\n\n // parse the return type of an async arrow function - let foo = (async (): number => {});\n parseAsyncArrowFromCallExpression(\n node: N.ArrowFunctionExpression,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n // @ts-expect-error refine typings\n node.returnType = this.flowParseTypeAnnotation();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n }\n\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n\n // todo description\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.colon) || super.shouldParseAsyncArrow();\n }\n\n // We need to support type parameter declarations for arrow functions. This\n // is tricky. There are three situations we need to handle\n //\n // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n // fails, we'll try an arrow function. If that fails, we'll throw the JSX\n // error.\n // 2. This is an arrow function. We'll parse the type parameter declaration,\n // parse the rest, make sure the rest is an arrow function, and go from\n // there\n // 3. This is neither. Just call the super method\n parseMaybeAssign(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ): N.Expression {\n let state = null;\n\n let jsx;\n\n if (\n this.hasPlugin(\"jsx\") &&\n (this.match(tt.jsxTagStart) || this.match(tt.lt))\n ) {\n state = this.state.clone();\n\n jsx = this.tryParse(\n () => super.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n state,\n );\n\n /*:: invariant(!jsx.aborted) */\n /*:: invariant(jsx.node != null) */\n if (!jsx.error) return jsx.node;\n\n // Remove `tc.j_expr` and `tc.j_oTag` from context added\n // by parsing `jsxTagStart` to stop the JSX plugin from\n // messing with the tokens\n const { context } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === tc.j_oTag || currentContext === tc.j_expr) {\n context.pop();\n }\n }\n\n if (jsx?.error || this.match(tt.lt)) {\n state = state || this.state.clone();\n\n let typeParameters: N.TypeParameterDeclaration;\n\n const arrow = this.tryParse(abort => {\n typeParameters = this.flowParseTypeParameterDeclaration();\n\n const arrowExpression = this.forwardNoArrowParamsConversionAt(\n typeParameters,\n () => {\n const result = super.parseMaybeAssign(\n refExpressionErrors,\n afterLeftParse,\n );\n\n this.resetStartLocationFromNode(result, typeParameters);\n\n return result;\n },\n );\n\n // <T>(() => {});\n // <T>(() => {}: any);\n if (arrowExpression.extra?.parenthesized) abort();\n\n // The above can return a TypeCastExpression when the arrow\n // expression is not wrapped in parens. See also `this.parseParenItem`.\n // (<T>() => {}: any);\n const expr = this.maybeUnwrapTypeCastExpression(arrowExpression);\n\n if (expr.type !== \"ArrowFunctionExpression\") abort();\n\n expr.typeParameters = typeParameters;\n this.resetStartLocationFromNode(expr, typeParameters);\n\n return arrowExpression;\n }, state);\n\n let arrowExpression:\n | N.ArrowFunctionExpression\n | N.TypeCastExpression\n | undefined\n | null = null;\n\n if (\n arrow.node &&\n // @ts-expect-error: refine tryParse typings\n this.maybeUnwrapTypeCastExpression(arrow.node).type ===\n \"ArrowFunctionExpression\"\n ) {\n if (!arrow.error && !arrow.aborted) {\n // <T> async () => {}\n // @ts-expect-error: refine tryParse typings\n if (arrow.node.async) {\n /*:: invariant(typeParameters) */\n this.raise(\n FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction,\n { at: typeParameters },\n );\n }\n // @ts-expect-error: refine tryParse typings\n return arrow.node;\n }\n\n // @ts-expect-error: refine typings\n arrowExpression = arrow.node;\n }\n\n // If we are here, both JSX and Flow parsing attempts failed.\n // Give the precedence to the JSX error, except if JSX had an\n // unrecoverable error while Flow didn't.\n // If the error is recoverable, we can only re-report it if there is\n // a node we can return.\n\n if (jsx?.node) {\n /*:: invariant(jsx.failState) */\n this.state = jsx.failState;\n return jsx.node;\n }\n\n if (arrowExpression) {\n /*:: invariant(arrow.failState) */\n this.state = arrow.failState;\n return arrowExpression;\n }\n\n if (jsx?.thrown) throw jsx.error;\n if (arrow.thrown) throw arrow.error;\n\n /*:: invariant(typeParameters) */\n throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, {\n at: typeParameters,\n });\n }\n\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n\n // handle return types for arrow functions\n parseArrow(\n node: Undone<N.ArrowFunctionExpression>,\n ): Undone<N.ArrowFunctionExpression> | undefined | null {\n if (this.match(tt.colon)) {\n // @ts-expect-error todo(flow->ts)\n const result = this.tryParse(() => {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n\n const typeNode = this.startNode<N.TypeAnnotation>();\n\n [\n typeNode.typeAnnotation,\n // @ts-expect-error (destructuring not supported yet)\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser();\n\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n if (this.canInsertSemicolon()) this.unexpected();\n if (!this.match(tt.arrow)) this.unexpected();\n\n return typeNode;\n });\n\n if (result.thrown) return null;\n /*:: invariant(result.node) */\n\n if (result.error) this.state = result.failState;\n\n // assign after it is clear it is an arrow\n // @ts-expect-error todo(flow->ts)\n node.returnType = result.node.typeAnnotation\n ? this.finishNode(result.node, \"TypeAnnotation\")\n : null;\n }\n\n return super.parseArrow(node);\n }\n\n shouldParseArrow(params: Array<N.Node>): boolean {\n return this.match(tt.colon) || super.shouldParseArrow(params);\n }\n\n setArrowFunctionParameters(\n node: N.ArrowFunctionExpression,\n params: N.Pattern[],\n ): void {\n if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n node.params = params;\n } else {\n super.setArrowFunctionParameters(node, params);\n }\n }\n\n checkParams(\n node: N.Function,\n allowDuplicates: boolean,\n isArrowFunction?: boolean | null,\n strictModeChanged: boolean = true,\n ): void {\n if (\n isArrowFunction &&\n this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n ) {\n return;\n }\n\n // ensure the `this` param is first, if it exists\n for (let i = 0; i < node.params.length; i++) {\n if (this.isThisParam(node.params[i]) && i > 0) {\n this.raise(FlowErrors.ThisParamMustBeFirst, { at: node.params[i] });\n }\n }\n\n super.checkParams(\n node,\n allowDuplicates,\n isArrowFunction,\n strictModeChanged,\n );\n }\n\n parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n return super.parseParenAndDistinguishExpression(\n canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n );\n }\n\n parseSubscripts(\n base: N.Expression,\n\n startLoc: Position,\n noCalls?: boolean | null,\n ): N.Expression {\n if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.state.noArrowAt.indexOf(startLoc.index) !== -1\n ) {\n this.next();\n\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.arguments = super.parseCallExpressionArguments(tt.parenR, false);\n base = this.finishNode(node, \"CallExpression\");\n } else if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.match(tt.lt)\n ) {\n const state = this.state.clone();\n const arrow = this.tryParse(\n abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(),\n state,\n );\n\n /*:: invariant(arrow.node != null) */\n // @ts-expect-error: refine tryParse typings\n if (!arrow.error && !arrow.aborted) return arrow.node;\n\n const result = this.tryParse(\n () => super.parseSubscripts(base, startLoc, noCalls),\n state,\n );\n\n if (result.node && !result.error) return result.node;\n\n if (arrow.node) {\n this.state = arrow.failState;\n // @ts-expect-error: refine tryParse typings\n return arrow.node;\n }\n\n if (result.node) {\n this.state = result.failState;\n return result.node;\n }\n\n throw arrow.error || result.error;\n }\n\n return super.parseSubscripts(base, startLoc, noCalls);\n }\n\n parseSubscript(\n base: N.Expression,\n\n startLoc: Position,\n noCalls: boolean | undefined | null,\n subscriptState: N.ParseSubscriptState,\n ): N.Expression {\n if (this.match(tt.questionDot) && 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<N.OptionalCallExpression>(startLoc);\n node.callee = base;\n node.typeArguments = this.flowParseTypeParameterInstantiation();\n this.expect(tt.parenL);\n node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n node.optional = true;\n return this.finishCallExpression(node, /* optional */ true);\n } else if (!noCalls && this.shouldParseTypes() && this.match(tt.lt)) {\n const node = this.startNodeAt<\n N.OptionalCallExpression | N.CallExpression\n >(startLoc);\n node.callee = base;\n\n const result = this.tryParse(() => {\n node.typeArguments =\n this.flowParseTypeParameterInstantiationCallOrNew();\n this.expect(tt.parenL);\n node.arguments = super.parseCallExpressionArguments(tt.parenR, false);\n if (subscriptState.optionalChainMember) {\n (node as Undone<N.OptionalCallExpression>).optional = false;\n }\n return this.finishCallExpression(\n node,\n subscriptState.optionalChainMember,\n );\n });\n\n if (result.node) {\n if (result.error) this.state = result.failState;\n return result.node;\n }\n }\n\n return super.parseSubscript(\n base,\n\n startLoc,\n noCalls,\n subscriptState,\n );\n }\n\n parseNewCallee(node: N.NewExpression): void {\n super.parseNewCallee(node);\n\n let targs = null;\n if (this.shouldParseTypes() && this.match(tt.lt)) {\n targs = this.tryParse(() =>\n this.flowParseTypeParameterInstantiationCallOrNew(),\n ).node;\n }\n node.typeArguments = targs;\n }\n\n parseAsyncArrowWithTypeParameters(\n startLoc: Position,\n ): N.ArrowFunctionExpression | undefined | null {\n const node = this.startNodeAt<N.ArrowFunctionExpression>(startLoc);\n this.parseFunctionParams(node, false);\n if (!this.parseArrow(node)) return;\n return super.parseArrowExpression(\n node,\n /* params */ undefined,\n /* isAsync */ true,\n );\n }\n\n readToken_mult_modulo(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.asterisk &&\n next === charCodes.slash &&\n this.state.hasFlowComment\n ) {\n this.state.hasFlowComment = false;\n this.state.pos += 2;\n this.nextToken();\n return;\n }\n\n super.readToken_mult_modulo(code);\n }\n\n readToken_pipe_amp(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.verticalBar &&\n next === charCodes.rightCurlyBrace\n ) {\n // '|}'\n this.finishOp(tt.braceBarR, 2);\n return;\n }\n\n super.readToken_pipe_amp(code);\n }\n\n parseTopLevel(file: N.File, program: N.Program): N.File {\n const fileNode = super.parseTopLevel(file, program);\n if (this.state.hasFlowComment) {\n this.raise(FlowErrors.UnterminatedFlowComment, {\n at: this.state.curPosition(),\n });\n }\n return fileNode;\n }\n\n skipBlockComment(): N.CommentBlock | undefined {\n if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n if (this.state.hasFlowComment) {\n throw this.raise(FlowErrors.NestedFlowComment, {\n at: this.state.startLoc,\n });\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\n return super.skipBlockComment(this.state.hasFlowComment ? \"*-/\" : \"*/\");\n }\n\n skipFlowComment(): number | false {\n const { pos } = this.state;\n let shiftToFirstNonWhiteSpace = 2;\n while (\n [charCodes.space, charCodes.tab].includes(\n // @ts-expect-error testing whether a number is included\n this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n )\n ) {\n shiftToFirstNonWhiteSpace++;\n }\n\n const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n return shiftToFirstNonWhiteSpace + 2; // check for /*::\n }\n if (\n this.input.slice(\n shiftToFirstNonWhiteSpace + pos,\n shiftToFirstNonWhiteSpace + pos + 12,\n ) === \"flow-include\"\n ) {\n return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n }\n if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n }\n return false;\n }\n\n hasFlowCommentCompletion(): void {\n const end = this.input.indexOf(\"*/\", this.state.pos);\n if (end === -1) {\n throw this.raise(Errors.UnterminatedComment, {\n at: this.state.curPosition(),\n });\n }\n }\n\n // Flow enum parsing\n\n flowEnumErrorBooleanMemberNotInitialized(\n loc: Position,\n {\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumBooleanMemberNotInitialized, {\n at: loc,\n memberName,\n enumName,\n });\n }\n\n flowEnumErrorInvalidMemberInitializer(\n loc: Position,\n enumContext: EnumContext,\n ) {\n return this.raise(\n !enumContext.explicitType\n ? FlowErrors.EnumInvalidMemberInitializerUnknownType\n : enumContext.explicitType === \"symbol\"\n ? FlowErrors.EnumInvalidMemberInitializerSymbolType\n : FlowErrors.EnumInvalidMemberInitializerPrimaryType,\n {\n at: loc,\n ...enumContext,\n },\n );\n }\n\n flowEnumErrorNumberMemberNotInitialized(\n loc: Position,\n {\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumNumberMemberNotInitialized, {\n at: loc,\n enumName,\n memberName,\n });\n }\n\n flowEnumErrorStringMemberInconsistentlyInitialized(\n node: N.Node,\n {\n enumName,\n }: {\n enumName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, {\n at: node,\n enumName,\n });\n }\n\n flowEnumMemberInit(): EnumMemberInit {\n const startLoc = this.state.startLoc;\n const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n switch (this.state.type) {\n case tt.num: {\n const literal = this.parseNumericLiteral(this.state.value);\n if (endOfInit()) {\n return { type: \"number\", loc: literal.loc.start, value: literal };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n case tt.string: {\n const literal = this.parseStringLiteral(this.state.value);\n if (endOfInit()) {\n return { type: \"string\", loc: literal.loc.start, value: literal };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n case tt._true:\n case tt._false: {\n const literal = this.parseBooleanLiteral(this.match(tt._true));\n if (endOfInit()) {\n return {\n type: \"boolean\",\n loc: literal.loc.start,\n value: literal,\n };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n default:\n return { type: \"invalid\", loc: startLoc };\n }\n }\n\n flowEnumMemberRaw(): {\n id: N.Node;\n init: EnumMemberInit;\n } {\n const loc = this.state.startLoc;\n const id = this.parseIdentifier(true);\n const init = this.eat(tt.eq)\n ? this.flowEnumMemberInit()\n : { type: \"none\" as const, loc };\n return { id, init };\n }\n\n flowEnumCheckExplicitTypeMismatch(\n loc: Position,\n context: EnumContext,\n expectedType: EnumExplicitType,\n ): void {\n const { explicitType } = context;\n if (explicitType === null) {\n return;\n }\n if (explicitType !== expectedType) {\n this.flowEnumErrorInvalidMemberInitializer(loc, context);\n }\n }\n\n flowEnumMembers({\n enumName,\n explicitType,\n }: {\n enumName: string;\n explicitType: EnumExplicitType;\n }): {\n members: {\n booleanMembers: Array<N.Node>;\n numberMembers: Array<N.Node>;\n stringMembers: Array<N.Node>;\n defaultedMembers: Array<N.Node>;\n };\n hasUnknownMembers: boolean;\n } {\n const seenNames = new Set();\n const members = {\n // @ts-expect-error: migrate to Babel types\n booleanMembers: [],\n // @ts-expect-error: migrate to Babel types\n numberMembers: [],\n // @ts-expect-error: migrate to Babel types\n stringMembers: [],\n // @ts-expect-error: migrate to Babel types\n defaultedMembers: [],\n };\n let hasUnknownMembers = false;\n while (!this.match(tt.braceR)) {\n if (this.eat(tt.ellipsis)) {\n hasUnknownMembers = true;\n break;\n }\n const memberNode = this.startNode();\n const { id, init } = this.flowEnumMemberRaw();\n const memberName = id.name;\n if (memberName === \"\") {\n continue;\n }\n if (/^[a-z]/.test(memberName)) {\n this.raise(FlowErrors.EnumInvalidMemberName, {\n at: 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, {\n at: id,\n memberName,\n enumName,\n });\n }\n seenNames.add(memberName);\n const context = { enumName, explicitType, memberName };\n memberNode.id = id;\n switch (init.type) {\n case \"boolean\": {\n this.flowEnumCheckExplicitTypeMismatch(\n init.loc,\n context,\n \"boolean\",\n );\n memberNode.init = init.value;\n members.booleanMembers.push(\n this.finishNode(memberNode, \"EnumBooleanMember\"),\n );\n break;\n }\n case \"number\": {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"number\");\n memberNode.init = init.value;\n members.numberMembers.push(\n this.finishNode(memberNode, \"EnumNumberMember\"),\n );\n break;\n }\n case \"string\": {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"string\");\n memberNode.init = init.value;\n members.stringMembers.push(\n this.finishNode(memberNode, \"EnumStringMember\"),\n );\n break;\n }\n case \"invalid\": {\n throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context);\n }\n case \"none\": {\n switch (explicitType) {\n case \"boolean\":\n this.flowEnumErrorBooleanMemberNotInitialized(\n init.loc,\n context,\n );\n break;\n case \"number\":\n this.flowEnumErrorNumberMemberNotInitialized(init.loc, context);\n break;\n default:\n members.defaultedMembers.push(\n this.finishNode(memberNode, \"EnumDefaultedMember\"),\n );\n }\n }\n }\n\n if (!this.match(tt.braceR)) {\n this.expect(tt.comma);\n }\n }\n return { members, hasUnknownMembers };\n }\n\n flowEnumStringMembers(\n initializedMembers: Array<N.Node>,\n defaultedMembers: Array<N.Node>,\n {\n enumName,\n }: {\n enumName: string;\n },\n ): Array<N.Node> {\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\n flowEnumParseExplicitType({\n enumName,\n }: {\n enumName: string;\n }): EnumExplicitType {\n if (!this.eatContextual(tt._of)) return null;\n\n if (!tokenIsIdentifier(this.state.type)) {\n throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, {\n at: this.state.startLoc,\n enumName,\n });\n }\n\n const { value } = this.state;\n this.next();\n\n if (\n value !== \"boolean\" &&\n value !== \"number\" &&\n value !== \"string\" &&\n value !== \"symbol\"\n ) {\n this.raise(FlowErrors.EnumInvalidExplicitType, {\n at: this.state.startLoc,\n enumName,\n invalidEnumType: value,\n });\n }\n\n return value;\n }\n\n flowEnumBody(node: Undone<N.Node>, id: N.Node): N.Node {\n const enumName = id.name;\n const nameLoc = id.loc.start;\n const explicitType = this.flowEnumParseExplicitType({ enumName });\n this.expect(tt.braceL);\n const { members, hasUnknownMembers } = this.flowEnumMembers({\n enumName,\n explicitType,\n });\n node.hasUnknownMembers = hasUnknownMembers;\n\n switch (explicitType) {\n case \"boolean\":\n node.explicitType = true;\n node.members = members.booleanMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumBooleanBody\");\n case \"number\":\n node.explicitType = true;\n node.members = members.numberMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n case \"string\":\n node.explicitType = true;\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n case \"symbol\":\n node.members = members.defaultedMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumSymbolBody\");\n default: {\n // `explicitType` is `null`\n const empty = () => {\n node.members = [];\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n };\n node.explicitType = false;\n\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\n if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n return empty();\n } else if (!boolsLen && !numsLen) {\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\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(tt.braceR);\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(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n } else {\n this.raise(FlowErrors.EnumInconsistentMemberValues, {\n at: nameLoc,\n enumName,\n });\n return empty();\n }\n }\n }\n }\n\n flowParseEnumDeclaration(node: Undone<N.Node>): N.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\n // check if the next token is a tt.lt\n isLookaheadToken_lt(): boolean {\n const next = this.nextTokenStart();\n if (this.input.charCodeAt(next) === charCodes.lessThan) {\n const afterNext = this.input.charCodeAt(next + 1);\n return (\n afterNext !== charCodes.lessThan && afterNext !== charCodes.equalsTo\n );\n }\n return false;\n }\n\n maybeUnwrapTypeCastExpression(node: N.Node) {\n return node.type === \"TypeCastExpression\" ? node.expression : node;\n }\n };\n","const entities: {\n __proto__: null;\n [name: string]: string;\n} = {\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} as const;\nexport default entities;\n","import * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml.ts\";\nimport type Parser from \"../../parser/index.ts\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport {\n tokenComesBeforeExpression,\n tokenIsKeyword,\n tokenLabelName,\n type TokenType,\n tt,\n} from \"../../tokenizer/types.ts\";\nimport type { TokContext } from \"../../tokenizer/context.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport type * as N from \"../../types.ts\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { isNewLine } from \"../../util/whitespace.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport type { Undone } from \"../../parser/node.ts\";\n\n/* eslint sort-keys: \"error\" */\nconst JsxErrors = ParseErrorEnum`jsx`({\n AttributeIsEmpty:\n \"JSX attributes must only be assigned a non-empty expression.\",\n MissingClosingTagElement: ({ openingTagName }: { openingTagName: string }) =>\n `Expected corresponding JSX closing tag for <${openingTagName}>.`,\n MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>.\",\n UnexpectedSequenceExpression:\n \"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\",\n // FIXME: Unify with Errors.UnexpectedToken\n UnexpectedToken: ({\n unexpected,\n HTMLEntity,\n }: {\n unexpected: string;\n HTMLEntity: string;\n }) =>\n `Unexpected token \\`${unexpected}\\`. Did you mean \\`${HTMLEntity}\\` or \\`{'${unexpected}'}\\`?`,\n UnsupportedJsxValue:\n \"JSX value should be either an expression or a quoted JSX text.\",\n UnterminatedJsxContent: \"Unterminated JSX contents.\",\n UnwrappedAdjacentJSXElements:\n \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\",\n});\n\n/* eslint-disable sort-keys */\n\nfunction isFragment(object?: N.JSXElement | null): boolean {\n return object\n ? object.type === \"JSXOpeningFragment\" ||\n object.type === \"JSXClosingFragment\"\n : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n if (object.type === \"JSXIdentifier\") {\n return object.name;\n }\n\n if (object.type === \"JSXNamespacedName\") {\n return object.namespace.name + \":\" + object.name.name;\n }\n\n if (object.type === \"JSXMemberExpression\") {\n return (\n getQualifiedJSXName(object.object) +\n \".\" +\n getQualifiedJSXName(object.property)\n );\n }\n\n // istanbul ignore next\n throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport interface IJSXParserMixin {\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement;\n}\n\nexport default (superClass: typeof Parser) =>\n class JSXParserMixin extends superClass implements Parser, IJSXParserMixin {\n // Reads inline JSX contents token.\n\n jsxReadToken(): void {\n let out = \"\";\n let chunkStart = this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(JsxErrors.UnterminatedJsxContent, {\n at: this.state.startLoc,\n });\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n\n switch (ch) {\n case charCodes.lessThan:\n case charCodes.leftCurlyBrace:\n if (this.state.pos === this.state.start) {\n if (ch === charCodes.lessThan && this.state.canStartJSXElement) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagStart);\n } else {\n super.getTokenFromCode(ch);\n }\n return;\n }\n out += this.input.slice(chunkStart, this.state.pos);\n this.finishToken(tt.jsxText, out);\n return;\n\n case charCodes.ampersand:\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n break;\n\n case charCodes.greaterThan:\n case charCodes.rightCurlyBrace:\n if (process.env.BABEL_8_BREAKING) {\n this.raise(JsxErrors.UnexpectedToken, {\n at: this.state.curPosition(),\n unexpected: this.input[this.state.pos],\n HTMLEntity:\n ch === charCodes.rightCurlyBrace ? \"}\" : \">\",\n });\n }\n /* falls through */\n\n default:\n if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(true);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n }\n }\n\n jsxReadNewLine(normalizeCRLF: boolean): string {\n const ch = this.input.charCodeAt(this.state.pos);\n let out;\n ++this.state.pos;\n if (\n ch === charCodes.carriageReturn &&\n this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n ) {\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\n return out;\n }\n\n jsxReadString(quote: number): void {\n let out = \"\";\n let chunkStart = ++this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(Errors.UnterminatedString, {\n at: this.state.startLoc,\n });\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n if (ch === quote) break;\n if (ch === charCodes.ampersand) {\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(tt.string, out);\n }\n\n jsxReadEntity(): string {\n const startPos = ++this.state.pos;\n if (this.codePointAtPos(this.state.pos) === charCodes.numberSign) {\n ++this.state.pos;\n\n let radix = 10;\n if (this.codePointAtPos(this.state.pos) === charCodes.lowercaseX) {\n radix = 16;\n ++this.state.pos;\n }\n\n const codePoint = this.readInt(\n radix,\n /* len */ undefined,\n /* forceLen */ false,\n /* allowNumSeparator */ \"bail\",\n );\n if (\n codePoint !== null &&\n this.codePointAtPos(this.state.pos) === charCodes.semicolon\n ) {\n ++this.state.pos;\n return String.fromCodePoint(codePoint);\n }\n } else {\n let count = 0;\n let semi = false;\n while (\n count++ < 10 &&\n this.state.pos < this.length &&\n !(semi = this.codePointAtPos(this.state.pos) == charCodes.semicolon)\n ) {\n ++this.state.pos;\n }\n\n if (semi) {\n const desc = this.input.slice(startPos, this.state.pos);\n const entity = XHTMLEntities[desc];\n ++this.state.pos;\n\n if (entity) {\n return entity;\n }\n }\n }\n\n // Not a valid entity\n this.state.pos = startPos;\n return \"&\";\n }\n\n // Read a JSX identifier (valid tag or attribute name).\n //\n // Optimized version since JSX identifiers can\"t contain\n // escape characters and so can be read as single slice.\n // Also assumes that first character was already checked\n // by isIdentifierStart in readToken.\n\n jsxReadWord(): void {\n let ch;\n const start = this.state.pos;\n do {\n ch = this.input.charCodeAt(++this.state.pos);\n } while (isIdentifierChar(ch) || ch === charCodes.dash);\n this.finishToken(tt.jsxName, this.input.slice(start, this.state.pos));\n }\n\n // Parse next token as JSX identifier\n\n jsxParseIdentifier(): N.JSXIdentifier {\n const node = this.startNode();\n if (this.match(tt.jsxName)) {\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\n // Parse namespaced identifier.\n\n jsxParseNamespacedName(): N.JSXNamespacedName {\n const startLoc = this.state.startLoc;\n const name = this.jsxParseIdentifier();\n if (!this.eat(tt.colon)) return name;\n\n const node = this.startNodeAt(startLoc);\n node.namespace = name;\n node.name = this.jsxParseIdentifier();\n return this.finishNode(node, \"JSXNamespacedName\");\n }\n\n // Parses element name in any form - namespaced, member\n // or single identifier.\n\n jsxParseElementName():\n | N.JSXIdentifier\n | N.JSXNamespacedName\n | N.JSXMemberExpression {\n const startLoc = this.state.startLoc;\n let node = this.jsxParseNamespacedName();\n if (node.type === \"JSXNamespacedName\") {\n return node;\n }\n while (this.eat(tt.dot)) {\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\n // Parses any type of JSX attribute value.\n\n jsxParseAttributeValue(): N.Expression {\n let node;\n switch (this.state.type) {\n case tt.braceL:\n node = this.startNode();\n this.setContext(tc.brace);\n this.next();\n node = this.jsxParseExpressionContainer(node, tc.j_oTag);\n if (node.expression.type === \"JSXEmptyExpression\") {\n this.raise(JsxErrors.AttributeIsEmpty, { at: node });\n }\n return node;\n\n case tt.jsxTagStart:\n case tt.string:\n return this.parseExprAtom();\n\n default:\n throw this.raise(JsxErrors.UnsupportedJsxValue, {\n at: this.state.startLoc,\n });\n }\n }\n\n // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n // and so it should start at the end of last read token (left brace) and finish\n // at the beginning of the next one (right brace).\n\n jsxParseEmptyExpression(): N.JSXEmptyExpression {\n const node = this.startNodeAt(this.state.lastTokEndLoc);\n return this.finishNodeAt(node, \"JSXEmptyExpression\", this.state.startLoc);\n }\n\n // Parse JSX spread child\n\n jsxParseSpreadChild(node: Undone<N.JSXSpreadChild>): N.JSXSpreadChild {\n this.next(); // ellipsis\n node.expression = this.parseExpression();\n this.setContext(tc.j_expr);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXSpreadChild\");\n }\n\n // Parses JSX expression enclosed into curly brackets.\n\n jsxParseExpressionContainer(\n node: Undone<N.JSXExpressionContainer>,\n previousContext: TokContext,\n ): N.JSXExpressionContainer {\n if (this.match(tt.braceR)) {\n node.expression = this.jsxParseEmptyExpression();\n } else {\n const expression = this.parseExpression();\n\n if (process.env.BABEL_8_BREAKING) {\n if (\n expression.type === \"SequenceExpression\" &&\n !expression.extra?.parenthesized\n ) {\n this.raise(JsxErrors.UnexpectedSequenceExpression, {\n at: expression.expressions[1],\n });\n }\n }\n\n node.expression = expression;\n }\n this.setContext(previousContext);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXExpressionContainer\");\n }\n\n // Parses following JSX attribute name-value pair.\n\n jsxParseAttribute(): N.JSXAttribute {\n const node = this.startNode();\n if (this.match(tt.braceL)) {\n this.setContext(tc.brace);\n this.next();\n this.expect(tt.ellipsis);\n node.argument = this.parseMaybeAssignAllowIn();\n this.setContext(tc.j_oTag);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n return this.finishNode(node, \"JSXSpreadAttribute\");\n }\n node.name = this.jsxParseNamespacedName();\n node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n return this.finishNode(node, \"JSXAttribute\");\n }\n\n // Parses JSX opening tag starting after \"<\".\n\n jsxParseOpeningElementAt(startLoc: Position): N.JSXOpeningElement {\n const node = this.startNodeAt<N.JSXOpeningElement | N.JSXOpeningFragment>(\n startLoc,\n );\n if (this.eat(tt.jsxTagEnd)) {\n // @ts-expect-error migrate to Babel types\n return this.finishNode(node, \"JSXOpeningFragment\");\n }\n node.name = this.jsxParseElementName();\n return this.jsxParseOpeningElementAfterName(\n node as Undone<N.JSXOpeningElement>,\n );\n }\n\n jsxParseOpeningElementAfterName(\n node: Undone<N.JSXOpeningElement>,\n ): N.JSXOpeningElement {\n const attributes: N.JSXAttribute[] = [];\n while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n attributes.push(this.jsxParseAttribute());\n }\n node.attributes = attributes;\n node.selfClosing = this.eat(tt.slash);\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXOpeningElement\");\n }\n\n // Parses JSX closing tag starting after \"</\".\n\n jsxParseClosingElementAt(startLoc: Position): N.JSXClosingElement {\n const node = this.startNodeAt(startLoc);\n if (this.eat(tt.jsxTagEnd)) {\n return this.finishNode(node, \"JSXClosingFragment\");\n }\n node.name = this.jsxParseElementName();\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXClosingElement\");\n }\n\n // Parses entire JSX element, including it\"s opening tag\n // (starting after \"<\"), attributes, contents and closing tag.\n\n jsxParseElementAt(startLoc: Position): N.JSXElement {\n const node = this.startNodeAt(startLoc);\n const children = [];\n const openingElement = this.jsxParseOpeningElementAt(startLoc);\n let closingElement = null;\n\n if (!openingElement.selfClosing) {\n contents: for (;;) {\n switch (this.state.type) {\n case tt.jsxTagStart:\n startLoc = this.state.startLoc;\n this.next();\n if (this.eat(tt.slash)) {\n closingElement = this.jsxParseClosingElementAt(startLoc);\n break contents;\n }\n children.push(this.jsxParseElementAt(startLoc));\n break;\n\n case tt.jsxText:\n children.push(this.parseExprAtom());\n break;\n\n case tt.braceL: {\n const node = this.startNode<\n N.JSXSpreadChild | N.JSXExpressionContainer\n >();\n this.setContext(tc.brace);\n this.next();\n if (this.match(tt.ellipsis)) {\n children.push(this.jsxParseSpreadChild(node));\n } else {\n children.push(\n this.jsxParseExpressionContainer(node, tc.j_expr),\n );\n }\n\n break;\n }\n // istanbul ignore next - should never happen\n default:\n this.unexpected();\n }\n }\n\n if (\n isFragment(openingElement) &&\n !isFragment(closingElement) &&\n closingElement !== null\n ) {\n this.raise(JsxErrors.MissingClosingTagFragment, {\n at: closingElement,\n });\n } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n this.raise(JsxErrors.MissingClosingTagElement, {\n at: closingElement,\n openingTagName: getQualifiedJSXName(openingElement.name),\n });\n } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n if (\n getQualifiedJSXName(closingElement.name) !==\n getQualifiedJSXName(openingElement.name)\n ) {\n this.raise(JsxErrors.MissingClosingTagElement, {\n at: closingElement,\n openingTagName: getQualifiedJSXName(openingElement.name),\n });\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(tt.lt)) {\n throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, {\n at: this.state.startLoc,\n });\n }\n\n return isFragment(openingElement)\n ? this.finishNode(node, \"JSXFragment\")\n : this.finishNode(node, \"JSXElement\");\n }\n\n // Parses entire JSX element from current position.\n\n jsxParseElement(): N.JSXElement {\n const startLoc = this.state.startLoc;\n this.next();\n return this.jsxParseElementAt(startLoc);\n }\n\n setContext(newContext: TokContext) {\n const { context } = this.state;\n context[context.length - 1] = newContext;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n parseExprAtom(refExpressionErrors?: ExpressionErrors | null): N.Expression {\n if (this.match(tt.jsxText)) {\n return this.parseLiteral(this.state.value, \"JSXText\");\n } else if (this.match(tt.jsxTagStart)) {\n return this.jsxParseElement();\n } else if (\n this.match(tt.lt) &&\n this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n ) {\n // In case we encounter an lt token here it will always be the start of\n // jsx as the lt sign is not allowed in places that expect an expression\n this.replaceToken(tt.jsxTagStart);\n return this.jsxParseElement();\n } else {\n return super.parseExprAtom(refExpressionErrors);\n }\n }\n\n skipSpace() {\n const curContext = this.curContext();\n if (!curContext.preserveSpace) super.skipSpace();\n }\n\n getTokenFromCode(code: number): void {\n const context = this.curContext();\n\n if (context === tc.j_expr) {\n this.jsxReadToken();\n return;\n }\n\n if (context === tc.j_oTag || context === tc.j_cTag) {\n if (isIdentifierStart(code)) {\n this.jsxReadWord();\n return;\n }\n\n if (code === charCodes.greaterThan) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagEnd);\n return;\n }\n\n if (\n (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n context === tc.j_oTag\n ) {\n this.jsxReadString(code);\n return;\n }\n }\n\n if (\n code === charCodes.lessThan &&\n this.state.canStartJSXElement &&\n this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n ) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagStart);\n return;\n }\n\n super.getTokenFromCode(code);\n }\n\n updateContext(prevType: TokenType): void {\n const { context, type } = this.state;\n if (type === tt.slash && prevType === tt.jsxTagStart) {\n // do not consider JSX expr -> JSX open tag -> ... anymore\n // reconsider as closing tag context\n context.splice(-2, 2, tc.j_cTag);\n this.state.canStartJSXElement = false;\n } else if (type === tt.jsxTagStart) {\n // start opening tag context\n context.push(tc.j_oTag);\n } else if (type === tt.jsxTagEnd) {\n const out = context[context.length - 1];\n if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n context.pop();\n this.state.canStartJSXElement =\n context[context.length - 1] === tc.j_expr;\n } else {\n this.setContext(tc.j_expr);\n this.state.canStartJSXElement = true;\n }\n } else {\n this.state.canStartJSXElement = tokenComesBeforeExpression(type);\n }\n }\n };\n","import type { Position } from \"../../util/location.ts\";\nimport ScopeHandler, { Scope } from \"../../util/scope.ts\";\nimport {\n BindingFlag,\n ScopeFlag,\n type BindingTypes,\n} from \"../../util/scopeflags.ts\";\nimport type * as N from \"../../types.ts\";\nimport { Errors } from \"../../parse-error.ts\";\n\nclass TypeScriptScope extends Scope {\n types: Set<string> = new Set();\n\n // enums (which are also in .types)\n enums: Set<string> = new Set();\n\n // const enums (which are also in .enums and .types)\n constEnums: Set<string> = new Set();\n\n // classes (which are also in .lexical) and interface (which are also in .types)\n classes: Set<string> = new Set();\n\n // namespaces and ambient functions (or classes) are too difficult to track,\n // especially without type analysis.\n // We need to track them anyway, to avoid \"X is not defined\" errors\n // when exporting them.\n exportOnlyBindings: Set<string> = new Set();\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler<TypeScriptScope> {\n importsStack: Set<string>[] = [];\n\n createScope(flags: ScopeFlag): TypeScriptScope {\n this.importsStack.push(new Set()); // Always keep the top-level scope for export checks.\n\n return new TypeScriptScope(flags);\n }\n\n enter(flags: ScopeFlag): void {\n if (flags == ScopeFlag.TS_MODULE) {\n this.importsStack.push(new Set());\n }\n\n super.enter(flags);\n }\n\n exit() {\n const flags = super.exit();\n\n if (flags == ScopeFlag.TS_MODULE) {\n this.importsStack.pop();\n }\n\n return flags;\n }\n\n hasImport(name: string, allowShadow?: boolean) {\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\n declareName(name: string, bindingType: BindingTypes, loc: Position) {\n if (bindingType & BindingFlag.FLAG_TS_IMPORT) {\n if (this.hasImport(name, true)) {\n this.parser.raise(Errors.VarRedeclaration, {\n at: loc,\n identifierName: name,\n });\n }\n this.importsStack[this.importsStack.length - 1].add(name);\n return;\n }\n\n const scope = this.currentScope();\n if (bindingType & BindingFlag.FLAG_TS_EXPORT_ONLY) {\n this.maybeExportDefined(scope, name);\n scope.exportOnlyBindings.add(name);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n\n if (bindingType & BindingFlag.KIND_TYPE) {\n if (!(bindingType & BindingFlag.KIND_VALUE)) {\n // \"Value\" bindings have already been registered by the superclass.\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n }\n scope.types.add(name);\n }\n if (bindingType & BindingFlag.FLAG_TS_ENUM) scope.enums.add(name);\n if (bindingType & BindingFlag.FLAG_TS_CONST_ENUM) {\n scope.constEnums.add(name);\n }\n if (bindingType & BindingFlag.FLAG_CLASS) scope.classes.add(name);\n }\n\n isRedeclaredInScope(\n scope: TypeScriptScope,\n name: string,\n bindingType: BindingTypes,\n ): boolean {\n if (scope.enums.has(name)) {\n if (bindingType & BindingFlag.FLAG_TS_ENUM) {\n // Enums can be merged with other enums if they are both\n // const or both non-const.\n const isConst = !!(bindingType & BindingFlag.FLAG_TS_CONST_ENUM);\n const wasConst = scope.constEnums.has(name);\n return isConst !== wasConst;\n }\n return true;\n }\n if (bindingType & BindingFlag.FLAG_CLASS && scope.classes.has(name)) {\n if (scope.lexical.has(name)) {\n // Classes can be merged with interfaces\n return !!(bindingType & BindingFlag.KIND_VALUE);\n } else {\n // Interface can be merged with other classes or interfaces\n return false;\n }\n }\n if (bindingType & BindingFlag.KIND_TYPE && scope.types.has(name)) {\n return true;\n }\n\n return super.isRedeclaredInScope(scope, name, bindingType);\n }\n\n checkLocalExport(id: N.Identifier) {\n const { name } = id;\n\n if (this.hasImport(name)) return;\n\n const len = this.scopeStack.length;\n for (let i = len - 1; i >= 0; i--) {\n const scope = this.scopeStack[i];\n if (scope.types.has(name) || scope.exportOnlyBindings.has(name)) return;\n }\n\n super.checkLocalExport(id);\n }\n}\n","import * as charCodes from \"charcodes\";\nimport { tt, type TokenType } from \"../tokenizer/types.ts\";\nimport type {\n AssignmentPattern,\n TSParameterProperty,\n Decorator,\n Expression,\n Identifier,\n Node,\n Pattern,\n RestElement,\n SpreadElement,\n ObjectOrClassMember,\n ClassMember,\n ObjectMember,\n TsNamedTypeElementBase,\n PrivateName,\n ObjectExpression,\n ObjectPattern,\n ArrayExpression,\n ArrayPattern,\n} from \"../types.ts\";\nimport type { Pos, Position } from \"../util/location.ts\";\nimport {\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n} from \"../util/identifier.ts\";\nimport { NodeUtils, type Undone } from \"./node.ts\";\nimport { type BindingTypes, BindingFlag } from \"../util/scopeflags.ts\";\nimport type { ExpressionErrors } from \"./util.ts\";\nimport { Errors, type LValAncestor } from \"../parse-error.ts\";\nimport type Parser from \"./index.ts\";\n\nconst getOwn = <T extends {}>(object: T, key: keyof T) =>\n Object.hasOwnProperty.call(object, key) && object[key];\n\nconst unwrapParenthesizedExpression = (node: Node): Node => {\n return node.type === \"ParenthesizedExpression\"\n ? unwrapParenthesizedExpression(node.expression)\n : node;\n};\n\nexport const enum ParseBindingListFlags {\n ALLOW_EMPTY = 1 << 0,\n IS_FUNCTION_PARAMS = 1 << 1,\n IS_CONSTRUCTOR_PARAMS = 1 << 2,\n}\n\nexport default abstract class LValParser extends NodeUtils {\n // Forward-declaration: defined in expression.js\n abstract parseIdentifier(liberal?: boolean): Identifier;\n abstract parseMaybeAssign(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n refNeedsArrowPos?: Pos | null,\n ): Expression;\n\n abstract parseMaybeAssignAllowIn(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n refNeedsArrowPos?: Pos | null,\n ): Expression;\n\n abstract parseObjectLike<T extends ObjectPattern | ObjectExpression>(\n close: TokenType,\n isPattern: boolean,\n isRecord?: boolean,\n refExpressionErrors?: ExpressionErrors,\n ): T;\n abstract parseObjPropValue(\n prop: any,\n startLoc: Position | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): void;\n abstract parsePropertyName(\n prop: ObjectOrClassMember | ClassMember | TsNamedTypeElementBase,\n ): Expression | Identifier;\n abstract parsePrivateName(): PrivateName;\n // Forward-declaration: defined in statement.js\n abstract parseDecorator(): Decorator;\n\n /**\n * Convert existing expression atom to assignable pattern\n * if possible. Also checks invalid destructuring targets:\n *\n * - Parenthesized Destructuring patterns\n * - RestElement is not the last element\n * - Missing `=` in assignment pattern\n *\n * NOTE: There is a corresponding \"isAssignable\" method.\n * When this one is updated, please check if also that one needs to be updated.\n *\n * @param node The expression atom\n * @param isLHS Whether we are parsing a LeftHandSideExpression.\n * If isLHS is `true`, the following cases are allowed: `[(a)] = [0]`, `[(a.b)] = [0]`\n * If isLHS is `false`, we are in an arrow function parameters list.\n */\n toAssignable(node: Node, isLHS: boolean = false): void {\n let parenthesized = undefined;\n if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n parenthesized = unwrapParenthesizedExpression(node);\n if (isLHS) {\n // an LHS can be reinterpreted to a binding pattern but not vice versa.\n // therefore a parenthesized identifier is ambiguous until we are sure it is an assignment expression\n // i.e. `([(a) = []] = []) => {}`\n // see also `recordArrowParameterBindingError` signature in packages/babel-parser/src/util/expression-scope.js\n if (parenthesized.type === \"Identifier\") {\n this.expressionScope.recordArrowParameterBindingError(\n Errors.InvalidParenthesizedAssignment,\n { at: node },\n );\n } else if (\n parenthesized.type !== \"MemberExpression\" &&\n !this.isOptionalMemberExpression(parenthesized)\n ) {\n // A parenthesized member expression can be in LHS but not in pattern.\n // If the LHS is later interpreted as a pattern, `checkLVal` will throw for member expression binding\n // i.e. `([(a.b) = []] = []) => {}`\n this.raise(Errors.InvalidParenthesizedAssignment, { at: node });\n }\n } else {\n this.raise(Errors.InvalidParenthesizedAssignment, { at: node });\n }\n }\n\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break;\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n for (\n let i = 0, length = node.properties.length, last = length - 1;\n i < length;\n i++\n ) {\n const prop = node.properties[i];\n const isLast = i === last;\n this.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n\n if (\n isLast &&\n prop.type === \"RestElement\" &&\n node.extra?.trailingCommaLoc\n ) {\n this.raise(Errors.RestTrailingComma, {\n at: node.extra.trailingCommaLoc,\n });\n }\n }\n break;\n\n case \"ObjectProperty\": {\n const { key, value } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(\n this.getPrivateNameSV(key),\n key.loc.start,\n );\n }\n this.toAssignable(value, isLHS);\n break;\n }\n\n case \"SpreadElement\": {\n throw new Error(\n \"Internal @babel/parser error (this is a bug, please report it).\" +\n \" SpreadElement should be converted by .toAssignable's caller.\",\n );\n }\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n this.toAssignableList(\n node.elements,\n node.extra?.trailingCommaLoc,\n isLHS,\n );\n break;\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") {\n this.raise(Errors.MissingEqInAssignment, { at: node.left.loc.end });\n }\n\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isLHS);\n break;\n\n case \"ParenthesizedExpression\":\n /*::invariant (parenthesized !== undefined) */\n this.toAssignable(parenthesized, isLHS);\n break;\n\n default:\n // We don't know how to deal with this node. It will\n // be reported by a later call to checkLVal\n }\n }\n\n toAssignableObjectExpressionProp(\n prop: Node,\n isLast: boolean,\n isLHS: boolean,\n ) {\n if (prop.type === \"ObjectMethod\") {\n this.raise(\n prop.kind === \"get\" || prop.kind === \"set\"\n ? Errors.PatternHasAccessor\n : Errors.PatternHasMethod,\n { at: prop.key },\n );\n } else if (prop.type === \"SpreadElement\") {\n prop.type = \"RestElement\";\n const arg = prop.argument;\n this.checkToRestConversion(arg, /* allowPattern */ false);\n this.toAssignable(arg, isLHS);\n\n if (!isLast) {\n this.raise(Errors.RestTrailingComma, { at: prop });\n }\n } else {\n this.toAssignable(prop, isLHS);\n }\n }\n\n // Convert list of expression atoms to binding list.\n\n toAssignableList(\n exprList: Expression[],\n trailingCommaLoc: Position | undefined | null,\n isLHS: boolean,\n ): void {\n const end = exprList.length - 1;\n\n for (let i = 0; i <= end; i++) {\n const elt = exprList[i];\n if (!elt) continue;\n\n if (elt.type === \"SpreadElement\") {\n elt.type = \"RestElement\";\n const arg = elt.argument;\n this.checkToRestConversion(arg, /* allowPattern */ true);\n this.toAssignable(arg, isLHS);\n } else {\n this.toAssignable(elt, isLHS);\n }\n\n if (elt.type === \"RestElement\") {\n if (i < end) {\n this.raise(Errors.RestTrailingComma, { at: elt });\n } else if (trailingCommaLoc) {\n this.raise(Errors.RestTrailingComma, { at: trailingCommaLoc });\n }\n }\n }\n }\n\n isAssignable(node: Node, isBinding?: boolean): boolean {\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n return true;\n\n case \"ObjectExpression\": {\n const last = node.properties.length - 1;\n return (node.properties as ObjectExpression[\"properties\"]).every(\n (prop, i) => {\n return (\n prop.type !== \"ObjectMethod\" &&\n (i === last || prop.type !== \"SpreadElement\") &&\n this.isAssignable(prop)\n );\n },\n );\n }\n\n case \"ObjectProperty\":\n return this.isAssignable(node.value);\n\n case \"SpreadElement\":\n return this.isAssignable(node.argument);\n\n case \"ArrayExpression\":\n return (node as ArrayExpression).elements.every(\n element => element === null || this.isAssignable(element),\n );\n\n case \"AssignmentExpression\":\n return node.operator === \"=\";\n\n case \"ParenthesizedExpression\":\n return this.isAssignable(node.expression);\n\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n return !isBinding;\n\n default:\n return false;\n }\n }\n\n // Convert list of expression atoms to a list of\n\n toReferencedList(\n exprList: ReadonlyArray<Expression | undefined | null>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isParenthesizedExpr?: boolean,\n ): ReadonlyArray<Expression | undefined | null> {\n return exprList;\n }\n\n toReferencedListDeep(\n exprList: ReadonlyArray<Expression | undefined | null>,\n isParenthesizedExpr?: boolean,\n ): void {\n this.toReferencedList(exprList, isParenthesizedExpr);\n\n for (const expr of exprList) {\n if (expr?.type === \"ArrayExpression\") {\n this.toReferencedListDeep(expr.elements);\n }\n }\n }\n\n // Parses spread element.\n\n parseSpread(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n ): SpreadElement {\n const node = this.startNode<SpreadElement>();\n this.next();\n node.argument = this.parseMaybeAssignAllowIn(\n refExpressionErrors,\n undefined,\n );\n return this.finishNode(node, \"SpreadElement\");\n }\n\n // https://tc39.es/ecma262/#prod-BindingRestProperty\n // https://tc39.es/ecma262/#prod-BindingRestElement\n parseRestBinding(this: Parser): RestElement {\n const node = this.startNode<RestElement>();\n this.next(); // eat `...`\n node.argument = this.parseBindingAtom();\n return this.finishNode(node, \"RestElement\");\n }\n\n // Parses lvalue (assignable) atom.\n parseBindingAtom(this: Parser): Pattern {\n // https://tc39.es/ecma262/#prod-BindingPattern\n switch (this.state.type) {\n case tt.bracketL: {\n const node = this.startNode<ArrayPattern>();\n this.next();\n // @ts-expect-error: Fixme: TSParameterProperty can not be assigned to node.elements\n node.elements = this.parseBindingList(\n tt.bracketR,\n charCodes.rightSquareBracket,\n ParseBindingListFlags.ALLOW_EMPTY,\n );\n return this.finishNode(node, \"ArrayPattern\");\n }\n\n case tt.braceL:\n return this.parseObjectLike(tt.braceR, true);\n }\n\n // https://tc39.es/ecma262/#prod-BindingIdentifier\n return this.parseIdentifier();\n }\n\n // https://tc39.es/ecma262/#prod-BindingElementList\n parseBindingList(\n this: Parser,\n close: TokenType,\n closeCharCode: (typeof charCodes)[keyof typeof charCodes],\n flags: ParseBindingListFlags,\n ): Array<Pattern | TSParameterProperty> {\n const allowEmpty = flags & ParseBindingListFlags.ALLOW_EMPTY;\n\n const elts: Array<Pattern | TSParameterProperty> = [];\n let first = true;\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n }\n if (allowEmpty && this.match(tt.comma)) {\n elts.push(null);\n } else if (this.eat(close)) {\n break;\n } else if (this.match(tt.ellipsis)) {\n elts.push(\n this.parseAssignableListItemTypes(this.parseRestBinding(), flags),\n );\n if (!this.checkCommaAfterRest(closeCharCode)) {\n this.expect(close);\n break;\n }\n } else {\n const decorators = [];\n if (this.match(tt.at) && this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedParameterDecorator, {\n at: this.state.startLoc,\n });\n }\n // invariant: hasPlugin(\"decorators-legacy\")\n while (this.match(tt.at)) {\n decorators.push(this.parseDecorator());\n }\n elts.push(this.parseAssignableListItem(flags, decorators));\n }\n }\n return elts;\n }\n\n // https://tc39.es/ecma262/#prod-BindingRestProperty\n parseBindingRestProperty(\n this: Parser,\n prop: Undone<RestElement>,\n ): RestElement {\n this.next(); // eat '...'\n // Don't use parseRestBinding() as we only allow Identifier here.\n prop.argument = this.parseIdentifier();\n this.checkCommaAfterRest(charCodes.rightCurlyBrace);\n return this.finishNode(prop, \"RestElement\");\n }\n\n // https://tc39.es/ecma262/#prod-BindingProperty\n parseBindingProperty(this: Parser): ObjectMember | RestElement {\n const prop = this.startNode<ObjectMember | RestElement>();\n const { type, startLoc } = this.state;\n if (type === tt.ellipsis) {\n return this.parseBindingRestProperty(prop as Undone<RestElement>);\n } else if (type === tt.privateName) {\n this.expectPlugin(\"destructuringPrivate\", startLoc);\n this.classScope.usePrivateName(this.state.value, startLoc);\n (prop as Undone<ObjectMember>).key = this.parsePrivateName();\n } else {\n this.parsePropertyName(prop as Undone<ObjectMember>);\n }\n (prop as Undone<ObjectMember>).method = false;\n return this.parseObjPropValue(\n prop as Undone<ObjectMember>,\n startLoc,\n false /* isGenerator */,\n false /* isAsync */,\n true /* isPattern */,\n false /* isAccessor */,\n );\n }\n\n parseAssignableListItem(\n this: Parser,\n flags: ParseBindingListFlags,\n decorators: Decorator[],\n ): Pattern | TSParameterProperty {\n const left = this.parseMaybeDefault();\n this.parseAssignableListItemTypes(left, flags);\n const elt = this.parseMaybeDefault(left.loc.start, left);\n if (decorators.length) {\n left.decorators = decorators;\n }\n return elt;\n }\n\n // Used by flow/typescript plugin to add type annotations to binding elements\n parseAssignableListItemTypes(\n param: Pattern,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n flags: ParseBindingListFlags,\n ): Pattern {\n return param;\n }\n\n // Parses assignment pattern around given atom if possible.\n // https://tc39.es/ecma262/#prod-BindingElement\n parseMaybeDefault(\n this: Parser,\n startLoc?: Position | null,\n left?: Pattern | null,\n ): Pattern {\n startLoc ??= this.state.startLoc;\n left = left ?? this.parseBindingAtom();\n if (!this.eat(tt.eq)) return left;\n\n const node = this.startNodeAt<AssignmentPattern>(startLoc);\n node.left = left;\n node.right = this.parseMaybeAssignAllowIn();\n return this.finishNode(node, \"AssignmentPattern\");\n }\n /**\n * Return information use in determining whether a Node of a given type is an LVal,\n * possibly given certain additional context information.\n *\n * Subclasser notes: This method has kind of a lot of mixed, but related,\n * responsibilities. If we can definitively determine with the information\n * provided that this either *is* or *isn't* a valid `LVal`, then the return\n * value is easy: just return `true` or `false`. However, if it is a valid\n * LVal *ancestor*, and thus its descendants must be subsequently visited to\n * continue the \"investigation\", then this method should return the relevant\n * child key as a `string`. In some special cases, you additionally want to\n * convey that this node should be treated as if it were parenthesized. In\n * that case, a tuple of [key: string, parenthesized: boolean] is returned.\n * The `string`-only return option is actually just a shorthand for:\n * `[key: string, parenthesized: false]`.\n *\n * @param type A Node `type` string\n * @param isUnparenthesizedInAssign\n * Whether the node in question is unparenthesized and its parent\n * is either an assignment pattern or an assignment expression.\n * @param binding\n * The binding operation that is being considered for this potential\n * LVal.\n * @returns `true` or `false` if we can immediately determine whether the node\n * type in question can be treated as an `LVal`.\n * A `string` key to traverse if we must check this child.\n * A `[string, boolean]` tuple if we need to check this child and\n * treat is as parenthesized.\n */\n isValidLVal(\n type: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isUnparenthesizedInAssign: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n binding: BindingTypes,\n ): string | boolean {\n return getOwn(\n {\n AssignmentPattern: \"left\",\n RestElement: \"argument\",\n ObjectProperty: \"value\",\n ParenthesizedExpression: \"expression\",\n ArrayPattern: \"elements\",\n ObjectPattern: \"properties\",\n },\n // @ts-expect-error refine string to enum\n type,\n );\n }\n\n // Overridden by the estree plugin\n isOptionalMemberExpression(expression: Node) {\n return expression.type === \"OptionalMemberExpression\";\n }\n\n /**\n * Verify that a target expression is an lval (something that can be assigned to).\n *\n * @param expression The expression in question to check.\n * @param options A set of options described below.\n * @param options.in\n * The relevant ancestor to provide context information for the error\n * if the check fails.\n * @param options.binding\n * The desired binding type. If the given expression is an identifier\n * and `binding` is not `BindingFlag.TYPE_NONE`, `checkLVal` will register binding\n * to the parser scope See also `src/util/scopeflags.js`\n * @param options.checkClashes\n * An optional string set to check if an identifier name is included.\n * `checkLVal` will add checked identifier name to `checkClashes` It is\n * used in tracking duplicates in function parameter lists. If it is\n * false, `checkLVal` will skip duplicate checks\n * @param options.strictModeChanged\n * Whether an identifier has been parsed in a sloppy context but should\n * be reinterpreted as strict-mode. e.g. `(arguments) => { \"use strict \"}`\n * @param options.hasParenthesizedAncestor\n * This is only used internally during recursive calls, and you should\n * not have to set it yourself.\n */\n\n checkLVal(\n expression: Expression | ObjectMember | RestElement,\n {\n in: ancestor,\n binding = BindingFlag.TYPE_NONE,\n checkClashes = false,\n strictModeChanged = false,\n hasParenthesizedAncestor = false,\n }: {\n in: LValAncestor;\n binding?: BindingTypes;\n checkClashes?: Set<string> | false;\n strictModeChanged?: boolean;\n hasParenthesizedAncestor?: boolean;\n },\n ): void {\n const type = expression.type;\n\n // If we find here an ObjectMethod, it's because this was originally\n // an ObjectExpression which has then been converted.\n // toAssignable already reported this error with a nicer message.\n if (this.isObjectMethod(expression)) return;\n\n const isOptionalMemberExpression =\n this.isOptionalMemberExpression(expression);\n\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, {\n at: expression,\n ancestor,\n });\n }\n }\n\n if (binding !== BindingFlag.TYPE_NONE) {\n this.raise(Errors.InvalidPropertyBindingPattern, { at: expression });\n }\n return;\n }\n\n if (type === \"Identifier\") {\n this.checkIdentifier(\n expression as Identifier,\n binding,\n strictModeChanged,\n );\n\n const { name } = expression as Identifier;\n\n if (checkClashes) {\n if (checkClashes.has(name)) {\n this.raise(Errors.ParamDupe, { at: expression });\n } else {\n checkClashes.add(name);\n }\n }\n\n return;\n }\n\n const validity = this.isValidLVal(\n type,\n !(hasParenthesizedAncestor || expression.extra?.parenthesized) &&\n ancestor.type === \"AssignmentExpression\",\n binding,\n );\n\n if (validity === true) return;\n if (validity === false) {\n const ParseErrorClass =\n binding === BindingFlag.TYPE_NONE\n ? Errors.InvalidLhs\n : Errors.InvalidLhsBinding;\n\n this.raise(ParseErrorClass, { at: expression, ancestor });\n return;\n }\n\n const [key, isParenthesizedExpression] = Array.isArray(validity)\n ? validity\n : [validity, type === \"ParenthesizedExpression\"];\n const nextAncestor =\n type === \"ArrayPattern\" || type === \"ObjectPattern\"\n ? ({ type } as const)\n : ancestor;\n\n // @ts-expect-error key may not index expression.\n for (const child of [].concat(expression[key])) {\n if (child) {\n this.checkLVal(child, {\n in: nextAncestor,\n binding,\n checkClashes,\n strictModeChanged,\n hasParenthesizedAncestor: isParenthesizedExpression,\n });\n }\n }\n }\n\n checkIdentifier(\n at: Identifier,\n bindingType: BindingTypes,\n strictModeChanged: boolean = false,\n ) {\n if (\n this.state.strict &&\n (strictModeChanged\n ? isStrictBindReservedWord(at.name, this.inModule)\n : isStrictBindOnlyReservedWord(at.name))\n ) {\n if (bindingType === BindingFlag.TYPE_NONE) {\n this.raise(Errors.StrictEvalArguments, { at, referenceName: at.name });\n } else {\n this.raise(Errors.StrictEvalArgumentsBinding, {\n at,\n bindingName: at.name,\n });\n }\n }\n\n if (bindingType & BindingFlag.FLAG_NO_LET_IN_LEXICAL && at.name === \"let\") {\n this.raise(Errors.LetInLexicalBinding, { at });\n }\n\n if (!(bindingType & BindingFlag.TYPE_NONE)) {\n this.declareNameFromIdentifier(at, bindingType);\n }\n }\n\n declareNameFromIdentifier(identifier: Identifier, binding: BindingTypes) {\n this.scope.declareName(identifier.name, binding, identifier.loc.start);\n }\n\n checkToRestConversion(node: Node, allowPattern: boolean): void {\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 /* falls through */\n default:\n this.raise(Errors.InvalidRestAssignmentPattern, { at: node });\n }\n }\n\n checkCommaAfterRest(\n close: (typeof charCodes)[keyof typeof charCodes],\n ): boolean {\n if (!this.match(tt.comma)) {\n return false;\n }\n\n this.raise(\n this.lookaheadCharCode() === close\n ? Errors.RestTrailingComma\n : Errors.ElementAfterRest,\n { at: this.state.startLoc },\n );\n\n return true;\n }\n}\n","/*:: declare var invariant; */\n\nimport type State from \"../../tokenizer/state.ts\";\nimport {\n tokenIsIdentifier,\n tokenIsTSDeclarationStart,\n tokenIsTSTypeOperator,\n tokenOperatorPrecedence,\n tokenIsKeywordOrIdentifier,\n tt,\n type TokenType,\n tokenIsTemplate,\n tokenCanStartExpression,\n} from \"../../tokenizer/types.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport type * as N from \"../../types.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { createPositionWithColumnOffset } from \"../../util/location.ts\";\nimport type Parser from \"../../parser/index.ts\";\nimport {\n type BindingTypes,\n ScopeFlag,\n BindingFlag,\n} from \"../../util/scopeflags.ts\";\nimport TypeScriptScopeHandler from \"./scope.ts\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport type { ParseStatementFlag } from \"../../parser/statement.ts\";\nimport { PARAM } from \"../../util/production-parameter.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport { cloneIdentifier, type Undone } from \"../../parser/node.ts\";\nimport type { Pattern } from \"../../types.ts\";\nimport type { Expression } from \"../../types.ts\";\nimport type { IJSXParserMixin } from \"../jsx/index.ts\";\nimport { ParseBindingListFlags } from \"../../parser/lval.ts\";\n\nconst getOwn = <T extends {}>(object: T, key: keyof T) =>\n Object.hasOwnProperty.call(object, key) && object[key];\n\ntype TsModifier =\n | \"readonly\"\n | \"abstract\"\n | \"declare\"\n | \"static\"\n | \"override\"\n | \"const\"\n | N.Accessibility\n | N.VarianceAnnotations;\n\nfunction nonNull<T>(x?: T | null): T {\n if (x == null) {\n throw new Error(`Unexpected ${x} value.`);\n }\n return x;\n}\n\nfunction assert(x: boolean): void {\n if (!x) {\n throw new Error(\"Assert fail\");\n }\n}\n\ntype ParsingContext =\n | \"EnumMembers\"\n | \"HeritageClauseElement\"\n | \"TupleElementTypes\"\n | \"TypeMembers\"\n | \"TypeParametersOrArguments\";\n\ntype ModifierBase = {\n accessibility?: N.Accessibility;\n} & {\n [key in TsModifier]?: boolean | undefined | null;\n};\n\n/* eslint sort-keys: \"error\" */\nconst TSErrors = ParseErrorEnum`typescript`({\n AbstractMethodHasImplementation: ({ methodName }: { methodName: string }) =>\n `Method '${methodName}' cannot have an implementation because it is marked abstract.`,\n AbstractPropertyHasInitializer: ({\n propertyName,\n }: {\n propertyName: string;\n }) =>\n `Property '${propertyName}' cannot have an initializer because it is marked abstract.`,\n // TODO: Accesor -> Accessor\n AccesorCannotDeclareThisParameter:\n \"'get' and 'set' accessors cannot declare 'this' parameters.\",\n AccesorCannotHaveTypeParameters: \"An accessor cannot have type parameters.\",\n AccessorCannotBeOptional:\n \"An 'accessor' property cannot be declared optional.\",\n ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier.\",\n ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier.\",\n ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference:\n \"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\",\n ConstructorHasTypeParameters:\n \"Type parameters cannot appear on a constructor declaration.\",\n DeclareAccessor: ({ kind }: { kind: \"get\" | \"set\" }) =>\n `'declare' is not allowed in ${kind}ters.`,\n DeclareClassFieldHasInitializer:\n \"Initializers are not allowed in ambient contexts.\",\n DeclareFunctionHasImplementation:\n \"An implementation cannot be declared in ambient contexts.\",\n DuplicateAccessibilityModifier:\n // `Accessibility modifier already seen: ${modifier}` would be more helpful.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ({ modifier }: { modifier: N.Accessibility }) =>\n `Accessibility modifier already seen.`,\n DuplicateModifier: ({ modifier }: { modifier: TsModifier }) =>\n `Duplicate modifier: '${modifier}'.`,\n // `token` matches the terminology used by typescript:\n // https://github.com/microsoft/TypeScript/blob/main/src/compiler/types.ts#L2915\n EmptyHeritageClauseType: ({ token }: { token: \"extends\" | \"implements\" }) =>\n `'${token}' list cannot be empty.`,\n EmptyTypeArguments: \"Type argument list cannot be empty.\",\n EmptyTypeParameters: \"Type parameter list cannot be empty.\",\n ExpectedAmbientAfterExportDeclare:\n \"'export declare' must be followed by an ambient declaration.\",\n ImportAliasHasImportType: \"An import alias can not use 'import type'.\",\n ImportReflectionHasImportType:\n \"An `import module` declaration can not use `type` modifier\",\n IncompatibleModifiers: ({\n modifiers,\n }: {\n modifiers: [TsModifier, TsModifier];\n }) =>\n `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`,\n IndexSignatureHasAbstract:\n \"Index signatures cannot have the 'abstract' modifier.\",\n IndexSignatureHasAccessibility: ({\n modifier,\n }: {\n modifier: N.Accessibility;\n }) =>\n `Index signatures cannot have an accessibility modifier ('${modifier}').`,\n IndexSignatureHasDeclare:\n \"Index signatures cannot have the 'declare' modifier.\",\n IndexSignatureHasOverride:\n \"'override' modifier cannot appear on an index signature.\",\n IndexSignatureHasStatic:\n \"Index signatures cannot have the 'static' modifier.\",\n InitializerNotAllowedInAmbientContext:\n \"Initializers are not allowed in ambient contexts.\",\n InvalidModifierOnTypeMember: ({ modifier }: { modifier: TsModifier }) =>\n `'${modifier}' modifier cannot appear on a type member.`,\n InvalidModifierOnTypeParameter: ({ modifier }: { modifier: TsModifier }) =>\n `'${modifier}' modifier cannot appear on a type parameter.`,\n InvalidModifierOnTypeParameterPositions: ({\n modifier,\n }: {\n modifier: TsModifier;\n }) =>\n `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`,\n InvalidModifiersOrder: ({\n orderedModifiers,\n }: {\n orderedModifiers: [TsModifier, TsModifier];\n }) =>\n `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`,\n InvalidPropertyAccessAfterInstantiationExpression:\n \"Invalid property access after an instantiation expression. \" +\n \"You can either wrap the instantiation expression in parentheses, or delete the type arguments.\",\n InvalidTupleMemberLabel:\n \"Tuple members must be labeled with a simple identifier.\",\n MissingInterfaceName:\n \"'interface' declarations must be followed by an identifier.\",\n NonAbstractClassHasAbstractMethod:\n \"Abstract methods can only appear within an abstract class.\",\n NonClassMethodPropertyHasAbstractModifer:\n \"'abstract' modifier can only appear on a class, method, or property declaration.\",\n OptionalTypeBeforeRequired:\n \"A required element cannot follow an optional element.\",\n OverrideNotInSubClass:\n \"This member cannot have an 'override' modifier because its containing class does not extend another class.\",\n PatternIsOptional:\n \"A binding pattern parameter cannot be optional in an implementation signature.\",\n PrivateElementHasAbstract:\n \"Private elements cannot have the 'abstract' modifier.\",\n PrivateElementHasAccessibility: ({\n modifier,\n }: {\n modifier: N.Accessibility;\n }) =>\n `Private elements cannot have an accessibility modifier ('${modifier}').`,\n ReadonlyForMethodSignature:\n \"'readonly' modifier can only appear on a property declaration or index signature.\",\n ReservedArrowTypeParam:\n \"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.\",\n ReservedTypeAssertion:\n \"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\",\n // TODO: Accesor -> Accessor\n SetAccesorCannotHaveOptionalParameter:\n \"A 'set' accessor cannot have an optional parameter.\",\n SetAccesorCannotHaveRestParameter:\n \"A 'set' accessor cannot have rest parameter.\",\n SetAccesorCannotHaveReturnType:\n \"A 'set' accessor cannot have a return type annotation.\",\n SingleTypeParameterWithoutTrailingComma: ({\n typeParameterName,\n }: {\n typeParameterName: string;\n }) =>\n `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`,\n StaticBlockCannotHaveModifier:\n \"Static class blocks cannot have any modifier.\",\n TupleOptionalAfterType:\n \"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:\n \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeImportCannotSpecifyDefaultAndNamed:\n \"A type-only import can specify a default import or named bindings, but not both.\",\n TypeModifierIsUsedInTypeExports:\n \"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\",\n TypeModifierIsUsedInTypeImports:\n \"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\",\n UnexpectedParameterModifier:\n \"A parameter property is only allowed in a constructor implementation.\",\n UnexpectedReadonly:\n \"'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:\n \"Argument in a type import must be a string literal.\",\n UnsupportedParameterPropertyKind:\n \"A parameter property may not be declared using a binding pattern.\",\n UnsupportedSignatureParameterKind: ({ type }: { type: string }) =>\n `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.`,\n});\n\n/* eslint-disable sort-keys */\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\n// It also doesn't handle \"intrinsic\", since usually it's not a keyword.\nfunction keywordTypeFromName(value: string): N.TsKeywordTypeType | undefined {\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}\n\nfunction tsIsAccessModifier(modifier: string): modifier is N.Accessibility {\n return (\n modifier === \"private\" || modifier === \"public\" || modifier === \"protected\"\n );\n}\n\nfunction tsIsVarianceAnnotations(\n modifier: string,\n): modifier is N.VarianceAnnotations {\n return modifier === \"in\" || modifier === \"out\";\n}\n\ntype ClassWithMixin<\n T extends new (...args: any) => any,\n M extends object,\n> = T extends new (...args: infer P) => infer I\n ? new (...args: P) => I & M\n : never;\n\nexport default (superClass: ClassWithMixin<typeof Parser, IJSXParserMixin>) =>\n class TypeScriptParserMixin extends superClass implements Parser {\n getScopeHandler(): {\n new (...args: any): TypeScriptScopeHandler;\n } {\n return TypeScriptScopeHandler;\n }\n\n tsIsIdentifier(): boolean {\n // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n // See https://github.com/Microsoft/TypeScript/issues/15008\n return tokenIsIdentifier(this.state.type);\n }\n\n tsTokenCanFollowModifier() {\n return (\n (this.match(tt.bracketL) ||\n this.match(tt.braceL) ||\n this.match(tt.star) ||\n this.match(tt.ellipsis) ||\n this.match(tt.privateName) ||\n this.isLiteralPropertyName()) &&\n !this.hasPrecedingLineBreak()\n );\n }\n\n tsNextTokenCanFollowModifier() {\n // Note: TypeScript's implementation is much more complicated because\n // more things are considered modifiers there.\n // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n this.next();\n return this.tsTokenCanFollowModifier();\n }\n\n /** Parses a modifier matching one the given modifier names. */\n tsParseModifier<T extends TsModifier>(\n allowedModifiers: T[],\n stopOnStartOfClassStaticBlock?: boolean,\n ): T | undefined | null {\n if (\n !tokenIsIdentifier(this.state.type) &&\n this.state.type !== tt._in &&\n this.state.type !== tt._const\n ) {\n return undefined;\n }\n\n const modifier = this.state.value;\n if (allowedModifiers.indexOf(modifier) !== -1) {\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\n /** Parses a list of modifiers, in any order.\n * If you need a specific order, you must call this function multiple times:\n * this.tsParseModifiers({ modified: node, allowedModifiers: [\"public\"] });\n * this.tsParseModifiers({ modified: node, allowedModifiers: [\"abstract\", \"readonly\"] });\n */\n tsParseModifiers<N extends ModifierBase>(\n {\n allowedModifiers,\n disallowedModifiers,\n stopOnStartOfClassStaticBlock,\n errorTemplate = TSErrors.InvalidModifierOnTypeMember,\n }: {\n allowedModifiers: readonly TsModifier[];\n disallowedModifiers?: TsModifier[];\n stopOnStartOfClassStaticBlock?: boolean;\n errorTemplate?: typeof TSErrors.InvalidModifierOnTypeMember;\n },\n modified: N,\n ): void {\n const enforceOrder = (\n loc: Position,\n modifier: TsModifier,\n before: TsModifier,\n after: TsModifier,\n ) => {\n if (modifier === before && modified[after]) {\n this.raise(TSErrors.InvalidModifiersOrder, {\n at: loc,\n orderedModifiers: [before, after],\n });\n }\n };\n const incompatible = (\n loc: Position,\n modifier: TsModifier,\n mod1: TsModifier,\n mod2: TsModifier,\n ) => {\n if (\n (modified[mod1] && modifier === mod2) ||\n (modified[mod2] && modifier === mod1)\n ) {\n this.raise(TSErrors.IncompatibleModifiers, {\n at: loc,\n modifiers: [mod1, mod2],\n });\n }\n };\n\n for (;;) {\n const { startLoc } = this.state;\n const modifier: TsModifier | undefined | null = this.tsParseModifier(\n allowedModifiers.concat(disallowedModifiers ?? []),\n stopOnStartOfClassStaticBlock,\n );\n\n if (!modifier) break;\n\n if (tsIsAccessModifier(modifier)) {\n if (modified.accessibility) {\n this.raise(TSErrors.DuplicateAccessibilityModifier, {\n at: 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\n modified.accessibility = modifier;\n }\n } else if (tsIsVarianceAnnotations(modifier)) {\n if (modified[modifier]) {\n this.raise(TSErrors.DuplicateModifier, { at: startLoc, modifier });\n }\n modified[modifier] = true;\n\n enforceOrder(startLoc, modifier, \"in\", \"out\");\n } else {\n if (Object.hasOwnProperty.call(modified, modifier)) {\n this.raise(TSErrors.DuplicateModifier, { at: startLoc, modifier });\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\n incompatible(startLoc, modifier, \"declare\", \"override\");\n incompatible(startLoc, modifier, \"static\", \"abstract\");\n }\n modified[modifier] = true;\n }\n\n if (disallowedModifiers?.includes(modifier)) {\n this.raise(errorTemplate, {\n at: startLoc,\n modifier,\n });\n }\n }\n }\n\n tsIsListTerminator(kind: ParsingContext): boolean {\n switch (kind) {\n case \"EnumMembers\":\n case \"TypeMembers\":\n return this.match(tt.braceR);\n case \"HeritageClauseElement\":\n return this.match(tt.braceL);\n case \"TupleElementTypes\":\n return this.match(tt.bracketR);\n case \"TypeParametersOrArguments\":\n return this.match(tt.gt);\n }\n }\n\n tsParseList<T extends N.Node>(\n kind: ParsingContext,\n parseElement: () => T,\n ): T[] {\n const result: T[] = [];\n while (!this.tsIsListTerminator(kind)) {\n // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n result.push(parseElement());\n }\n return result;\n }\n\n tsParseDelimitedList<T extends N.Node>(\n kind: ParsingContext,\n parseElement: () => T,\n refTrailingCommaPos?: {\n value: number;\n },\n ): T[] {\n return nonNull(\n this.tsParseDelimitedListWorker(\n kind,\n parseElement,\n /* expectSuccess */ true,\n refTrailingCommaPos,\n ),\n );\n }\n\n /**\n * If !expectSuccess, returns undefined instead of failing to parse.\n * If expectSuccess, parseElement should always return a defined value.\n */\n tsParseDelimitedListWorker<T extends N.Node>(\n kind: ParsingContext,\n parseElement: () => T | undefined | null,\n expectSuccess: boolean,\n refTrailingCommaPos?: {\n value: number;\n },\n ): T[] | undefined | null {\n const result = [];\n let trailingCommaPos = -1;\n\n for (;;) {\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n trailingCommaPos = -1;\n\n const element = parseElement();\n if (element == null) {\n return undefined;\n }\n result.push(element);\n\n if (this.eat(tt.comma)) {\n trailingCommaPos = this.state.lastTokStart;\n continue;\n }\n\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n\n if (expectSuccess) {\n // This will fail with an error about a missing comma\n this.expect(tt.comma);\n }\n return undefined;\n }\n\n if (refTrailingCommaPos) {\n refTrailingCommaPos.value = trailingCommaPos;\n }\n\n return result;\n }\n\n tsParseBracketedList<T extends N.Node>(\n kind: ParsingContext,\n parseElement: () => T,\n bracket: boolean,\n skipFirstToken: boolean,\n refTrailingCommaPos?: {\n value: number;\n },\n ): T[] {\n if (!skipFirstToken) {\n if (bracket) {\n this.expect(tt.bracketL);\n } else {\n this.expect(tt.lt);\n }\n }\n\n const result = this.tsParseDelimitedList(\n kind,\n parseElement,\n refTrailingCommaPos,\n );\n\n if (bracket) {\n this.expect(tt.bracketR);\n } else {\n this.expect(tt.gt);\n }\n\n return result;\n }\n\n tsParseImportType(): N.TsImportType {\n const node = this.startNode<N.TsImportType>();\n this.expect(tt._import);\n this.expect(tt.parenL);\n if (!this.match(tt.string)) {\n this.raise(TSErrors.UnsupportedImportTypeArgument, {\n at: this.state.startLoc,\n });\n }\n\n // For compatibility to estree we cannot call parseLiteral directly here\n node.argument = super.parseExprAtom() as N.StringLiteral;\n this.expect(tt.parenR);\n\n if (this.eat(tt.dot)) {\n // In this instance, the entity name will actually itself be a\n // qualifier, so allow it to be a reserved word as well.\n node.qualifier = this.tsParseEntityName();\n }\n if (this.match(tt.lt)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSImportType\");\n }\n\n tsParseEntityName(allowReservedWords: boolean = true): N.TsEntityName {\n let entity: N.TsEntityName = this.parseIdentifier(allowReservedWords);\n while (this.eat(tt.dot)) {\n const node: Undone<N.TsQualifiedName> =\n this.startNodeAtNode<N.TsQualifiedName>(entity);\n node.left = entity;\n node.right = this.parseIdentifier(allowReservedWords);\n entity = this.finishNode(node, \"TSQualifiedName\");\n }\n return entity;\n }\n\n tsParseTypeReference(): N.TsTypeReference {\n const node = this.startNode<N.TsTypeReference>();\n node.typeName = this.tsParseEntityName();\n if (!this.hasPrecedingLineBreak() && this.match(tt.lt)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSTypeReference\");\n }\n\n tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n this.next();\n const node = this.startNodeAtNode<N.TsTypePredicate>(lhs);\n node.parameterName = lhs;\n node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n node.asserts = false;\n return this.finishNode(node, \"TSTypePredicate\");\n }\n\n tsParseThisTypeNode(): N.TsThisType {\n const node = this.startNode<N.TsThisType>();\n this.next();\n return this.finishNode(node, \"TSThisType\");\n }\n\n tsParseTypeQuery(): N.TsTypeQuery {\n const node = this.startNode<N.TsTypeQuery>();\n this.expect(tt._typeof);\n if (this.match(tt._import)) {\n node.exprName = this.tsParseImportType();\n } else {\n node.exprName = this.tsParseEntityName();\n }\n if (!this.hasPrecedingLineBreak() && this.match(tt.lt)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSTypeQuery\");\n }\n\n tsParseInOutModifiers = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"in\", \"out\"],\n disallowedModifiers: [\n \"const\",\n \"public\",\n \"private\",\n \"protected\",\n \"readonly\",\n \"declare\",\n \"abstract\",\n \"override\",\n ],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameter,\n });\n\n tsParseConstModifier = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"const\"],\n // for better error recovery\n disallowedModifiers: [\"in\", \"out\"],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions,\n });\n\n tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"in\", \"out\", \"const\"],\n disallowedModifiers: [\n \"public\",\n \"private\",\n \"protected\",\n \"readonly\",\n \"declare\",\n \"abstract\",\n \"override\",\n ],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameter,\n });\n\n tsParseTypeParameter(\n parseModifiers: (node: Undone<N.TsTypeParameter>) => void,\n ): N.TsTypeParameter {\n const node = this.startNode<N.TsTypeParameter>();\n\n parseModifiers(node);\n\n node.name = this.tsParseTypeParameterName();\n node.constraint = this.tsEatThenParseType(tt._extends);\n node.default = this.tsEatThenParseType(tt.eq);\n return this.finishNode(node, \"TSTypeParameter\");\n }\n\n tsTryParseTypeParameters(\n parseModifiers: (node: N.TsTypeParameter) => void,\n ): N.TsTypeParameterDeclaration | undefined | null {\n if (this.match(tt.lt)) {\n return this.tsParseTypeParameters(parseModifiers);\n }\n }\n\n tsParseTypeParameters(parseModifiers: (node: N.TsTypeParameter) => void) {\n const node = this.startNode<N.TsTypeParameterDeclaration>();\n\n if (this.match(tt.lt) || this.match(tt.jsxTagStart)) {\n this.next();\n } else {\n this.unexpected();\n }\n\n const refTrailingCommaPos = { value: -1 };\n\n node.params = this.tsParseBracketedList(\n \"TypeParametersOrArguments\",\n // @ts-expect-error refine typings\n this.tsParseTypeParameter.bind(this, parseModifiers),\n /* bracket */ false,\n /* skipFirstToken */ true,\n refTrailingCommaPos,\n );\n if (node.params.length === 0) {\n this.raise(TSErrors.EmptyTypeParameters, { at: node });\n }\n if (refTrailingCommaPos.value !== -1) {\n this.addExtra(node, \"trailingComma\", refTrailingCommaPos.value);\n }\n return this.finishNode(node, \"TSTypeParameterDeclaration\");\n }\n\n // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n // but here it's always false, because this is only used for types.\n tsFillSignature(\n returnToken: TokenType,\n signature: Undone<N.TsSignatureDeclaration>,\n ): void {\n // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n const returnTokenRequired = returnToken === tt.arrow;\n\n // https://github.com/babel/babel/issues/9231\n const paramsKey = process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\";\n const returnTypeKey = process.env.BABEL_8_BREAKING\n ? \"returnType\"\n : \"typeAnnotation\";\n\n signature.typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n this.expect(tt.parenL);\n signature[paramsKey] = this.tsParseBindingListForSignature();\n if (returnTokenRequired) {\n signature[returnTypeKey] =\n this.tsParseTypeOrTypePredicateAnnotation(returnToken);\n } else if (this.match(returnToken)) {\n signature[returnTypeKey] =\n this.tsParseTypeOrTypePredicateAnnotation(returnToken);\n }\n }\n\n tsParseBindingListForSignature(): Array<\n N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern\n > {\n const list = super.parseBindingList(\n tt.parenR,\n charCodes.rightParenthesis,\n ParseBindingListFlags.IS_FUNCTION_PARAMS,\n );\n for (const pattern of list) {\n const { type } = pattern;\n if (type === \"AssignmentPattern\" || type === \"TSParameterProperty\") {\n this.raise(TSErrors.UnsupportedSignatureParameterKind, {\n at: pattern,\n type,\n });\n }\n }\n return list as Exclude<\n (typeof list)[0],\n N.AssignmentPattern | N.TSParameterProperty\n >[];\n }\n\n tsParseTypeMemberSemicolon(): void {\n if (!this.eat(tt.comma) && !this.isLineTerminator()) {\n this.expect(tt.semi);\n }\n }\n\n tsParseSignatureMember(\n kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n node: Undone<\n N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration\n >,\n ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n this.tsFillSignature(tt.colon, node);\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, kind);\n }\n\n tsIsUnambiguouslyIndexSignature() {\n this.next(); // Skip '{'\n if (tokenIsIdentifier(this.state.type)) {\n this.next();\n return this.match(tt.colon);\n }\n return false;\n }\n\n tsTryParseIndexSignature(\n node: Undone<N.TsIndexSignature>,\n ): N.TsIndexSignature | undefined {\n if (\n !(\n this.match(tt.bracketL) &&\n this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n )\n ) {\n return;\n }\n\n this.expect(tt.bracketL);\n const id = this.parseIdentifier();\n id.typeAnnotation = this.tsParseTypeAnnotation();\n this.resetEndLocation(id); // set end position to end of type\n\n this.expect(tt.bracketR);\n node.parameters = [id];\n\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, \"TSIndexSignature\");\n }\n\n tsParsePropertyOrMethodSignature(\n node: N.TsPropertySignature | N.TsMethodSignature,\n readonly: boolean,\n ): N.TsPropertySignature | N.TsMethodSignature {\n if (this.eat(tt.question)) node.optional = true;\n const nodeAny: any = node;\n\n if (this.match(tt.parenL) || this.match(tt.lt)) {\n if (readonly) {\n this.raise(TSErrors.ReadonlyForMethodSignature, { at: node });\n }\n const method: N.TsMethodSignature = nodeAny;\n if (method.kind && this.match(tt.lt)) {\n this.raise(TSErrors.AccesorCannotHaveTypeParameters, {\n at: this.state.curPosition(),\n });\n }\n this.tsFillSignature(tt.colon, method);\n this.tsParseTypeMemberSemicolon();\n const paramsKey = process.env.BABEL_8_BREAKING\n ? \"params\"\n : \"parameters\";\n const returnTypeKey = process.env.BABEL_8_BREAKING\n ? \"returnType\"\n : \"typeAnnotation\";\n if (method.kind === \"get\") {\n if (method[paramsKey].length > 0) {\n this.raise(Errors.BadGetterArity, { at: this.state.curPosition() });\n if (this.isThisParam(method[paramsKey][0])) {\n this.raise(TSErrors.AccesorCannotDeclareThisParameter, {\n at: this.state.curPosition(),\n });\n }\n }\n } else if (method.kind === \"set\") {\n if (method[paramsKey].length !== 1) {\n this.raise(Errors.BadSetterArity, { at: this.state.curPosition() });\n } else {\n const firstParameter = method[paramsKey][0];\n if (this.isThisParam(firstParameter)) {\n this.raise(TSErrors.AccesorCannotDeclareThisParameter, {\n at: this.state.curPosition(),\n });\n }\n if (\n firstParameter.type === \"Identifier\" &&\n firstParameter.optional\n ) {\n this.raise(TSErrors.SetAccesorCannotHaveOptionalParameter, {\n at: this.state.curPosition(),\n });\n }\n if (firstParameter.type === \"RestElement\") {\n this.raise(TSErrors.SetAccesorCannotHaveRestParameter, {\n at: this.state.curPosition(),\n });\n }\n }\n if (method[returnTypeKey]) {\n this.raise(TSErrors.SetAccesorCannotHaveReturnType, {\n at: method[returnTypeKey],\n });\n }\n } else {\n method.kind = \"method\";\n }\n return this.finishNode(method, \"TSMethodSignature\");\n } else {\n const property: N.TsPropertySignature = 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\n tsParseTypeMember(): N.TsTypeElement {\n const node: any = this.startNode();\n\n if (this.match(tt.parenL) || this.match(tt.lt)) {\n return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n }\n\n if (this.match(tt._new)) {\n const id = this.startNode<N.Identifier>();\n this.next();\n if (this.match(tt.parenL) || this.match(tt.lt)) {\n return this.tsParseSignatureMember(\n \"TSConstructSignatureDeclaration\",\n node,\n );\n } else {\n node.key = this.createIdentifier(id, \"new\");\n return this.tsParsePropertyOrMethodSignature(node, false);\n }\n }\n\n this.tsParseModifiers(\n {\n allowedModifiers: [\"readonly\"],\n disallowedModifiers: [\n \"declare\",\n \"abstract\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"override\",\n ],\n },\n node,\n );\n\n const idx = this.tsTryParseIndexSignature(node);\n if (idx) {\n return idx;\n }\n\n super.parsePropertyName(node);\n if (\n !node.computed &&\n node.key.type === \"Identifier\" &&\n (node.key.name === \"get\" || node.key.name === \"set\") &&\n this.tsTokenCanFollowModifier()\n ) {\n node.kind = node.key.name;\n super.parsePropertyName(node);\n }\n return this.tsParsePropertyOrMethodSignature(node, !!node.readonly);\n }\n\n tsParseTypeLiteral(): N.TsTypeLiteral {\n const node = this.startNode<N.TsTypeLiteral>();\n node.members = this.tsParseObjectTypeMembers();\n return this.finishNode(node, \"TSTypeLiteral\");\n }\n\n tsParseObjectTypeMembers(): Array<N.TsTypeElement> {\n this.expect(tt.braceL);\n const members = this.tsParseList(\n \"TypeMembers\",\n this.tsParseTypeMember.bind(this),\n );\n this.expect(tt.braceR);\n return members;\n }\n\n tsIsStartOfMappedType(): boolean {\n this.next();\n if (this.eat(tt.plusMin)) {\n return this.isContextual(tt._readonly);\n }\n if (this.isContextual(tt._readonly)) {\n this.next();\n }\n if (!this.match(tt.bracketL)) {\n return false;\n }\n this.next();\n if (!this.tsIsIdentifier()) {\n return false;\n }\n this.next();\n return this.match(tt._in);\n }\n\n tsParseMappedTypeParameter(): N.TsTypeParameter {\n const node = this.startNode<N.TsTypeParameter>();\n node.name = this.tsParseTypeParameterName();\n node.constraint = this.tsExpectThenParseType(tt._in);\n return this.finishNode(node, \"TSTypeParameter\");\n }\n\n tsParseMappedType(): N.TsMappedType {\n const node = this.startNode<N.TsMappedType>();\n\n this.expect(tt.braceL);\n\n if (this.match(tt.plusMin)) {\n node.readonly = this.state.value;\n this.next();\n this.expectContextual(tt._readonly);\n } else if (this.eatContextual(tt._readonly)) {\n node.readonly = true;\n }\n\n this.expect(tt.bracketL);\n node.typeParameter = this.tsParseMappedTypeParameter();\n node.nameType = this.eatContextual(tt._as) ? this.tsParseType() : null;\n\n this.expect(tt.bracketR);\n\n if (this.match(tt.plusMin)) {\n node.optional = this.state.value;\n this.next();\n this.expect(tt.question);\n } else if (this.eat(tt.question)) {\n node.optional = true;\n }\n\n node.typeAnnotation = this.tsTryParseType();\n this.semicolon();\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"TSMappedType\");\n }\n\n tsParseTupleType(): N.TsTupleType {\n const node = this.startNode<N.TsTupleType>();\n node.elementTypes = this.tsParseBracketedList(\n \"TupleElementTypes\",\n this.tsParseTupleElementType.bind(this),\n /* bracket */ true,\n /* skipFirstToken */ false,\n );\n\n // Validate the elementTypes to ensure that no mandatory elements\n // follow optional elements\n let seenOptionalElement = false;\n node.elementTypes.forEach(elementNode => {\n const { type } = elementNode;\n\n if (\n seenOptionalElement &&\n type !== \"TSRestType\" &&\n type !== \"TSOptionalType\" &&\n !(type === \"TSNamedTupleMember\" && elementNode.optional)\n ) {\n this.raise(TSErrors.OptionalTypeBeforeRequired, {\n at: elementNode,\n });\n }\n\n seenOptionalElement ||=\n (type === \"TSNamedTupleMember\" && elementNode.optional) ||\n type === \"TSOptionalType\";\n });\n\n return this.finishNode(node, \"TSTupleType\");\n }\n\n tsParseTupleElementType(): N.TsNamedTupleMember | N.TsType {\n // parses `...TsType[]`\n\n const { startLoc } = this.state;\n\n const rest = this.eat(tt.ellipsis);\n\n let labeled: boolean;\n let label: N.Identifier;\n let optional: boolean;\n let type: N.TsNamedTupleMember | N.TsType;\n\n const isWord = tokenIsKeywordOrIdentifier(this.state.type);\n const chAfterWord = isWord ? this.lookaheadCharCode() : null;\n if (chAfterWord === charCodes.colon) {\n labeled = true;\n optional = false;\n label = this.parseIdentifier(true);\n this.expect(tt.colon);\n type = this.tsParseType();\n } else if (chAfterWord === charCodes.questionMark) {\n optional = true;\n const startLoc = this.state.startLoc;\n const wordName = this.state.value;\n const typeOrLabel = this.tsParseNonArrayType();\n\n if (this.lookaheadCharCode() === charCodes.colon) {\n labeled = true;\n label = this.createIdentifier(\n this.startNodeAt<N.Identifier>(startLoc),\n wordName,\n );\n this.expect(tt.question);\n this.expect(tt.colon);\n type = this.tsParseType();\n } else {\n labeled = false;\n type = typeOrLabel;\n this.expect(tt.question);\n }\n } else {\n type = this.tsParseType();\n optional = this.eat(tt.question);\n // In this case (labeled === true) could be only in invalid label.\n // E.g. [x.y:type]\n // An error is raised while processing node.\n labeled = this.eat(tt.colon);\n }\n\n if (labeled) {\n let labeledNode: Undone<N.TsNamedTupleMember>;\n if (label) {\n labeledNode = this.startNodeAtNode<N.TsNamedTupleMember>(label);\n labeledNode.optional = optional;\n labeledNode.label = label;\n labeledNode.elementType = type;\n\n if (this.eat(tt.question)) {\n labeledNode.optional = true;\n this.raise(TSErrors.TupleOptionalAfterType, {\n at: this.state.lastTokStartLoc,\n });\n }\n } else {\n labeledNode = this.startNodeAtNode<N.TsNamedTupleMember>(type);\n labeledNode.optional = optional;\n this.raise(TSErrors.InvalidTupleMemberLabel, { at: type });\n // @ts-expect-error This produces an invalid AST, but at least we don't drop\n // nodes representing the invalid source.\n labeledNode.label = type;\n labeledNode.elementType = this.tsParseType();\n }\n type = this.finishNode(labeledNode, \"TSNamedTupleMember\");\n } else if (optional) {\n const optionalTypeNode = this.startNodeAtNode<N.TsOptionalType>(type);\n optionalTypeNode.typeAnnotation = type;\n type = this.finishNode(optionalTypeNode, \"TSOptionalType\");\n }\n\n if (rest) {\n const restNode = this.startNodeAt<N.TsRestType>(startLoc);\n restNode.typeAnnotation = type;\n type = this.finishNode(restNode, \"TSRestType\");\n }\n\n return type;\n }\n\n tsParseParenthesizedType(): N.TsParenthesizedType {\n const node = this.startNode<N.TsParenthesizedType>();\n this.expect(tt.parenL);\n node.typeAnnotation = this.tsParseType();\n this.expect(tt.parenR);\n return this.finishNode(node, \"TSParenthesizedType\");\n }\n\n tsParseFunctionOrConstructorType(\n type: \"TSFunctionType\" | \"TSConstructorType\",\n abstract?: boolean,\n ): N.TsFunctionOrConstructorType {\n const node = this.startNode<\n N.TsFunctionOrConstructorType | N.TsConstructorType\n >();\n if (type === \"TSConstructorType\") {\n (node as Undone<N.TsConstructorType>).abstract = !!abstract;\n if (abstract) this.next();\n this.next(); // eat `new`\n }\n this.tsInAllowConditionalTypesContext(() =>\n this.tsFillSignature(tt.arrow, node),\n );\n return this.finishNode(node, type);\n }\n\n tsParseLiteralTypeNode(): N.TsLiteralType {\n const node = this.startNode<N.TsLiteralType>();\n switch (this.state.type) {\n case tt.num:\n case tt.bigint:\n case tt.string:\n case tt._true:\n case tt._false:\n // For compatibility to estree we cannot call parseLiteral directly here\n // @ts-expect-error refine typings\n node.literal = super.parseExprAtom();\n break;\n default:\n this.unexpected();\n }\n return this.finishNode(node, \"TSLiteralType\");\n }\n\n tsParseTemplateLiteralType(): N.TsType {\n const node = this.startNode<N.TsLiteralType>();\n node.literal = super.parseTemplate(false);\n return this.finishNode(node, \"TSLiteralType\");\n }\n\n parseTemplateSubstitution(): N.TsType | N.Node {\n if (this.state.inType) return this.tsParseType();\n return super.parseTemplateSubstitution();\n }\n\n tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n const thisKeyword = this.tsParseThisTypeNode();\n if (this.isContextual(tt._is) && !this.hasPrecedingLineBreak()) {\n return this.tsParseThisTypePredicate(thisKeyword);\n } else {\n return thisKeyword;\n }\n }\n\n tsParseNonArrayType(): N.TsType {\n switch (this.state.type) {\n case tt.string:\n case tt.num:\n case tt.bigint:\n case tt._true:\n case tt._false:\n return this.tsParseLiteralTypeNode();\n case tt.plusMin:\n if (this.state.value === \"-\") {\n const node = this.startNode<N.TsLiteralType>();\n const nextToken = this.lookahead();\n if (nextToken.type !== tt.num && nextToken.type !== tt.bigint) {\n this.unexpected();\n }\n // @ts-expect-error: parseMaybeUnary must returns unary expression\n node.literal = this.parseMaybeUnary();\n return this.finishNode(node, \"TSLiteralType\");\n }\n break;\n case tt._this:\n return this.tsParseThisTypeOrThisTypePredicate();\n case tt._typeof:\n return this.tsParseTypeQuery();\n case tt._import:\n return this.tsParseImportType();\n case tt.braceL:\n return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n ? this.tsParseMappedType()\n : this.tsParseTypeLiteral();\n case tt.bracketL:\n return this.tsParseTupleType();\n case tt.parenL:\n if (process.env.BABEL_8_BREAKING) {\n if (!this.options.createParenthesizedExpressions) {\n const startLoc = this.state.startLoc;\n this.next();\n const type = this.tsParseType();\n this.expect(tt.parenR);\n this.addExtra(type, \"parenthesized\", true);\n this.addExtra(type, \"parenStart\", startLoc.index);\n return type;\n }\n }\n\n return this.tsParseParenthesizedType();\n case tt.templateNonTail:\n case tt.templateTail:\n return this.tsParseTemplateLiteralType();\n default: {\n const { type } = this.state;\n if (\n tokenIsIdentifier(type) ||\n type === tt._void ||\n type === tt._null\n ) {\n const nodeType =\n type === tt._void\n ? \"TSVoidKeyword\"\n : type === tt._null\n ? \"TSNullKeyword\"\n : keywordTypeFromName(this.state.value);\n if (\n nodeType !== undefined &&\n this.lookaheadCharCode() !== charCodes.dot\n ) {\n const node = this.startNode<N.TsKeywordType>();\n this.next();\n return this.finishNode(node, nodeType);\n }\n return this.tsParseTypeReference();\n }\n }\n }\n\n this.unexpected();\n }\n\n tsParseArrayTypeOrHigher(): N.TsType {\n let type = this.tsParseNonArrayType();\n while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n if (this.match(tt.bracketR)) {\n const node = this.startNodeAtNode<N.TsArrayType>(type);\n node.elementType = type;\n this.expect(tt.bracketR);\n type = this.finishNode(node, \"TSArrayType\");\n } else {\n const node = this.startNodeAtNode<N.TsIndexedAccessType>(type);\n node.objectType = type;\n node.indexType = this.tsParseType();\n this.expect(tt.bracketR);\n type = this.finishNode(node, \"TSIndexedAccessType\");\n }\n }\n return type;\n }\n\n tsParseTypeOperator(): N.TsTypeOperator {\n const node = this.startNode<N.TsTypeOperator>();\n const operator = this.state.value;\n this.next(); // eat operator\n node.operator = operator;\n node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n if (operator === \"readonly\") {\n this.tsCheckTypeAnnotationForReadOnly(\n // @ts-expect-error todo(flow->ts)\n node,\n );\n }\n\n return this.finishNode(node, \"TSTypeOperator\");\n }\n\n tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n switch (node.typeAnnotation.type) {\n case \"TSTupleType\":\n case \"TSArrayType\":\n return;\n default:\n this.raise(TSErrors.UnexpectedReadonly, { at: node });\n }\n }\n\n tsParseInferType(): N.TsInferType {\n const node = this.startNode<N.TsInferType>();\n this.expectContextual(tt._infer);\n const typeParameter = this.startNode<N.TsTypeParameter>();\n typeParameter.name = this.tsParseTypeParameterName();\n typeParameter.constraint = this.tsTryParse(() =>\n this.tsParseConstraintForInferType(),\n );\n node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n return this.finishNode(node, \"TSInferType\");\n }\n\n tsParseConstraintForInferType() {\n if (this.eat(tt._extends)) {\n const constraint = this.tsInDisallowConditionalTypesContext(() =>\n this.tsParseType(),\n );\n if (\n this.state.inDisallowConditionalTypesContext ||\n !this.match(tt.question)\n ) {\n return constraint;\n }\n }\n }\n\n tsParseTypeOperatorOrHigher(): N.TsType {\n const isTypeOperator =\n tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc;\n return isTypeOperator\n ? this.tsParseTypeOperator()\n : this.isContextual(tt._infer)\n ? this.tsParseInferType()\n : this.tsInAllowConditionalTypesContext(() =>\n this.tsParseArrayTypeOrHigher(),\n );\n }\n\n tsParseUnionOrIntersectionType(\n kind: \"TSUnionType\" | \"TSIntersectionType\",\n parseConstituentType: () => N.TsType,\n operator: TokenType,\n ): N.TsType {\n const node = this.startNode<N.TsUnionType | N.TsIntersectionType>();\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\n tsParseIntersectionTypeOrHigher(): N.TsType {\n return this.tsParseUnionOrIntersectionType(\n \"TSIntersectionType\",\n this.tsParseTypeOperatorOrHigher.bind(this),\n tt.bitwiseAND,\n );\n }\n\n tsParseUnionTypeOrHigher() {\n return this.tsParseUnionOrIntersectionType(\n \"TSUnionType\",\n this.tsParseIntersectionTypeOrHigher.bind(this),\n tt.bitwiseOR,\n );\n }\n\n tsIsStartOfFunctionType() {\n if (this.match(tt.lt)) {\n return true;\n }\n return (\n this.match(tt.parenL) &&\n this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n );\n }\n\n tsSkipParameterStart(): boolean {\n if (tokenIsIdentifier(this.state.type) || this.match(tt._this)) {\n this.next();\n return true;\n }\n\n if (this.match(tt.braceL)) {\n // Return true if we can parse an object pattern without errors\n const { errors } = this.state;\n const previousErrorCount = errors.length;\n try {\n this.parseObjectLike(tt.braceR, true);\n return errors.length === previousErrorCount;\n } catch {\n return false;\n }\n }\n\n if (this.match(tt.bracketL)) {\n this.next();\n // Return true if we can parse an array pattern without errors\n const { errors } = this.state;\n const previousErrorCount = errors.length;\n try {\n super.parseBindingList(\n tt.bracketR,\n charCodes.rightSquareBracket,\n ParseBindingListFlags.ALLOW_EMPTY,\n );\n return errors.length === previousErrorCount;\n } catch {\n return false;\n }\n }\n\n return false;\n }\n\n tsIsUnambiguouslyStartOfFunctionType(): boolean {\n this.next();\n if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n // ( )\n // ( ...\n return true;\n }\n if (this.tsSkipParameterStart()) {\n if (\n this.match(tt.colon) ||\n this.match(tt.comma) ||\n this.match(tt.question) ||\n this.match(tt.eq)\n ) {\n // ( xxx :\n // ( xxx ,\n // ( xxx ?\n // ( xxx =\n return true;\n }\n if (this.match(tt.parenR)) {\n this.next();\n if (this.match(tt.arrow)) {\n // ( xxx ) =>\n return true;\n }\n }\n }\n return false;\n }\n\n tsParseTypeOrTypePredicateAnnotation(\n returnToken: TokenType,\n ): N.TsTypeAnnotation {\n return this.tsInType(() => {\n const t = this.startNode<N.TsTypeAnnotation>();\n this.expect(returnToken);\n\n const node = this.startNode<N.TsTypePredicate>();\n\n const asserts = !!this.tsTryParse(\n this.tsParseTypePredicateAsserts.bind(this),\n );\n\n if (asserts && this.match(tt._this)) {\n // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n // : asserts this is type\n let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n // : asserts this\n if (thisTypePredicate.type === \"TSThisType\") {\n node.parameterName = thisTypePredicate;\n node.asserts = true;\n (node as N.TsTypePredicate).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\n const typePredicateVariable =\n this.tsIsIdentifier() &&\n this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n if (!typePredicateVariable) {\n if (!asserts) {\n // : type\n return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n }\n\n // : asserts foo\n node.parameterName = this.parseIdentifier();\n node.asserts = asserts;\n (node as N.TsTypePredicate).typeAnnotation = null;\n t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n\n // : asserts foo is type\n const type = this.tsParseTypeAnnotation(/* eatColon */ 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\n tsTryParseTypeOrTypePredicateAnnotation(): N.TsTypeAnnotation | undefined {\n if (this.match(tt.colon)) {\n return this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n }\n }\n\n tsTryParseTypeAnnotation(): N.TsTypeAnnotation | undefined {\n if (this.match(tt.colon)) {\n return this.tsParseTypeAnnotation();\n }\n }\n\n tsTryParseType(): N.TsType | undefined {\n return this.tsEatThenParseType(tt.colon);\n }\n\n tsParseTypePredicatePrefix(): N.Identifier | undefined {\n const id = this.parseIdentifier();\n if (this.isContextual(tt._is) && !this.hasPrecedingLineBreak()) {\n this.next();\n return id;\n }\n }\n\n tsParseTypePredicateAsserts(): boolean {\n if (this.state.type !== tt._asserts) {\n return false;\n }\n const containsEsc = this.state.containsEsc;\n this.next();\n if (!tokenIsIdentifier(this.state.type) && !this.match(tt._this)) {\n return false;\n }\n\n if (containsEsc) {\n this.raise(Errors.InvalidEscapedReservedWord, {\n at: this.state.lastTokStartLoc,\n reservedWord: \"asserts\",\n });\n }\n\n return true;\n }\n\n tsParseTypeAnnotation(\n eatColon = true,\n t: Undone<N.TsTypeAnnotation> = this.startNode<N.TsTypeAnnotation>(),\n ): N.TsTypeAnnotation {\n this.tsInType(() => {\n if (eatColon) this.expect(tt.colon);\n t.typeAnnotation = this.tsParseType();\n });\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n\n /** Be sure to be in a type context before calling this, using `tsInType`. */\n tsParseType(): N.TsType {\n // Need to set `state.inType` so that we don't parse JSX in a type context.\n assert(this.state.inType);\n const type = this.tsParseNonConditionalType();\n\n if (\n this.state.inDisallowConditionalTypesContext ||\n this.hasPrecedingLineBreak() ||\n !this.eat(tt._extends)\n ) {\n return type;\n }\n const node = this.startNodeAtNode<N.TsConditionalType>(type);\n node.checkType = type;\n\n node.extendsType = this.tsInDisallowConditionalTypesContext(() =>\n this.tsParseNonConditionalType(),\n );\n\n this.expect(tt.question);\n node.trueType = this.tsInAllowConditionalTypesContext(() =>\n this.tsParseType(),\n );\n\n this.expect(tt.colon);\n node.falseType = this.tsInAllowConditionalTypesContext(() =>\n this.tsParseType(),\n );\n\n return this.finishNode(node, \"TSConditionalType\");\n }\n\n isAbstractConstructorSignature(): boolean {\n return (\n this.isContextual(tt._abstract) && this.lookahead().type === tt._new\n );\n }\n\n tsParseNonConditionalType(): N.TsType {\n if (this.tsIsStartOfFunctionType()) {\n return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n }\n if (this.match(tt._new)) {\n // As in `new () => Date`\n return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n } else if (this.isAbstractConstructorSignature()) {\n // As in `abstract new () => Date`\n return this.tsParseFunctionOrConstructorType(\n \"TSConstructorType\",\n /* abstract */ true,\n );\n }\n return this.tsParseUnionTypeOrHigher();\n }\n\n tsParseTypeAssertion(): N.TsTypeAssertion {\n if (this.getPluginOption(\"typescript\", \"disallowAmbiguousJSXLike\")) {\n this.raise(TSErrors.ReservedTypeAssertion, { at: this.state.startLoc });\n }\n\n const node = this.startNode<N.TsTypeAssertion>();\n node.typeAnnotation = this.tsInType(() => {\n this.next(); // \"<\"\n return this.match(tt._const)\n ? this.tsParseTypeReference()\n : this.tsParseType();\n });\n this.expect(tt.gt);\n node.expression = this.parseMaybeUnary();\n return this.finishNode(node, \"TSTypeAssertion\");\n }\n\n tsParseHeritageClause(\n token: \"extends\" | \"implements\",\n ): Array<N.TsExpressionWithTypeArguments> {\n const originalStartLoc = this.state.startLoc;\n\n const delimitedList = this.tsParseDelimitedList(\n \"HeritageClauseElement\",\n () => {\n const node = this.startNode<N.TsExpressionWithTypeArguments>();\n node.expression = this.tsParseEntityName();\n if (this.match(tt.lt)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n\n return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n },\n );\n\n if (!delimitedList.length) {\n this.raise(TSErrors.EmptyHeritageClauseType, {\n at: originalStartLoc,\n token,\n });\n }\n\n return delimitedList;\n }\n\n tsParseInterfaceDeclaration(\n node: Undone<N.TsInterfaceDeclaration>,\n properties: {\n declare?: true;\n } = {},\n ): N.TsInterfaceDeclaration | null {\n if (this.hasFollowingLineBreak()) return null;\n this.expectContextual(tt._interface);\n if (properties.declare) node.declare = true;\n if (tokenIsIdentifier(this.state.type)) {\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_INTERFACE);\n } else {\n node.id = null;\n this.raise(TSErrors.MissingInterfaceName, { at: this.state.startLoc });\n }\n\n node.typeParameters = this.tsTryParseTypeParameters(\n this.tsParseInOutConstModifiers,\n );\n if (this.eat(tt._extends)) {\n node.extends = this.tsParseHeritageClause(\"extends\");\n }\n const body = this.startNode<N.TSInterfaceBody>();\n body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n node.body = this.finishNode(body, \"TSInterfaceBody\");\n return this.finishNode(node, \"TSInterfaceDeclaration\");\n }\n\n tsParseTypeAliasDeclaration(\n node: N.TsTypeAliasDeclaration,\n ): N.TsTypeAliasDeclaration {\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_TYPE);\n\n node.typeAnnotation = this.tsInType(() => {\n node.typeParameters = this.tsTryParseTypeParameters(\n this.tsParseInOutModifiers,\n );\n\n this.expect(tt.eq);\n\n if (\n this.isContextual(tt._intrinsic) &&\n this.lookahead().type !== tt.dot\n ) {\n const node = this.startNode<N.TsKeywordType>();\n this.next();\n return this.finishNode(node, \"TSIntrinsicKeyword\");\n }\n\n return this.tsParseType();\n });\n\n this.semicolon();\n return this.finishNode(node, \"TSTypeAliasDeclaration\");\n }\n\n tsInNoContext<T>(cb: () => T): T {\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 }\n\n /**\n * Runs `cb` in a type context.\n * This should be called one token *before* the first type token,\n * so that the call to `next()` is run in type context.\n */\n tsInType<T>(cb: () => T): T {\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\n tsInDisallowConditionalTypesContext<T>(cb: () => T): T {\n const oldInDisallowConditionalTypesContext =\n this.state.inDisallowConditionalTypesContext;\n this.state.inDisallowConditionalTypesContext = true;\n try {\n return cb();\n } finally {\n this.state.inDisallowConditionalTypesContext =\n oldInDisallowConditionalTypesContext;\n }\n }\n\n tsInAllowConditionalTypesContext<T>(cb: () => T): T {\n const oldInDisallowConditionalTypesContext =\n this.state.inDisallowConditionalTypesContext;\n this.state.inDisallowConditionalTypesContext = false;\n try {\n return cb();\n } finally {\n this.state.inDisallowConditionalTypesContext =\n oldInDisallowConditionalTypesContext;\n }\n }\n\n tsEatThenParseType(token: TokenType): N.TsType | undefined {\n if (this.match(token)) {\n return this.tsNextThenParseType();\n }\n }\n\n tsExpectThenParseType(token: TokenType): N.TsType {\n return this.tsInType(() => {\n this.expect(token);\n return this.tsParseType();\n });\n }\n\n tsNextThenParseType(): N.TsType {\n return this.tsInType(() => {\n this.next();\n return this.tsParseType();\n });\n }\n\n tsParseEnumMember(): N.TsEnumMember {\n const node = this.startNode<N.TsEnumMember>();\n // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n node.id = this.match(tt.string)\n ? super.parseStringLiteral(this.state.value)\n : this.parseIdentifier(/* liberal */ true);\n if (this.eat(tt.eq)) {\n node.initializer = super.parseMaybeAssignAllowIn();\n }\n return this.finishNode(node, \"TSEnumMember\");\n }\n\n tsParseEnumDeclaration(\n node: Undone<N.TsEnumDeclaration>,\n properties: {\n const?: true;\n declare?: true;\n } = {},\n ): N.TsEnumDeclaration {\n if (properties.const) node.const = true;\n if (properties.declare) node.declare = true;\n this.expectContextual(tt._enum);\n node.id = this.parseIdentifier();\n this.checkIdentifier(\n node.id,\n node.const ? BindingFlag.TYPE_TS_CONST_ENUM : BindingFlag.TYPE_TS_ENUM,\n );\n\n this.expect(tt.braceL);\n node.members = this.tsParseDelimitedList(\n \"EnumMembers\",\n this.tsParseEnumMember.bind(this),\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"TSEnumDeclaration\");\n }\n\n tsParseModuleBlock(): N.TsModuleBlock {\n const node = this.startNode<N.TsModuleBlock>();\n this.scope.enter(ScopeFlag.OTHER);\n\n this.expect(tt.braceL);\n // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n super.parseBlockOrModuleBlockBody(\n (node.body = []),\n /* directives */ undefined,\n /* topLevel */ true,\n /* end */ tt.braceR,\n );\n this.scope.exit();\n return this.finishNode(node, \"TSModuleBlock\");\n }\n\n tsParseModuleOrNamespaceDeclaration(\n node: Undone<N.TsModuleDeclaration>,\n nested: boolean = false,\n ): N.TsModuleDeclaration {\n node.id = this.parseIdentifier();\n\n if (!nested) {\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_NAMESPACE);\n }\n\n if (this.eat(tt.dot)) {\n const inner = this.startNode<N.TsModuleDeclaration>();\n this.tsParseModuleOrNamespaceDeclaration(inner, true);\n // @ts-expect-error Fixme: refine typings\n node.body = inner;\n } else {\n this.scope.enter(ScopeFlag.TS_MODULE);\n this.prodParam.enter(PARAM);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n }\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n\n tsParseAmbientExternalModuleDeclaration(\n node: N.TsModuleDeclaration,\n ): N.TsModuleDeclaration {\n if (this.isContextual(tt._global)) {\n node.global = true;\n node.id = this.parseIdentifier();\n } else if (this.match(tt.string)) {\n node.id = super.parseStringLiteral(this.state.value);\n } else {\n this.unexpected();\n }\n if (this.match(tt.braceL)) {\n this.scope.enter(ScopeFlag.TS_MODULE);\n this.prodParam.enter(PARAM);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n } else {\n this.semicolon();\n }\n\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n\n tsParseImportEqualsDeclaration(\n node: Undone<N.TsImportEqualsDeclaration>,\n maybeDefaultIdentifier?: N.Identifier | null,\n isExport?: boolean,\n ): N.TsImportEqualsDeclaration {\n node.isExport = isExport || false;\n node.id = maybeDefaultIdentifier || this.parseIdentifier();\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_VALUE_IMPORT);\n this.expect(tt.eq);\n const moduleReference = this.tsParseModuleReference();\n if (\n node.importKind === \"type\" &&\n moduleReference.type !== \"TSExternalModuleReference\"\n ) {\n this.raise(TSErrors.ImportAliasHasImportType, {\n at: moduleReference,\n });\n }\n node.moduleReference = moduleReference;\n this.semicolon();\n return this.finishNode(node, \"TSImportEqualsDeclaration\");\n }\n\n tsIsExternalModuleReference(): boolean {\n return (\n this.isContextual(tt._require) &&\n this.lookaheadCharCode() === charCodes.leftParenthesis\n );\n }\n\n tsParseModuleReference(): N.TsModuleReference {\n return this.tsIsExternalModuleReference()\n ? this.tsParseExternalModuleReference()\n : this.tsParseEntityName(/* allowReservedWords */ false);\n }\n\n tsParseExternalModuleReference(): N.TsExternalModuleReference {\n const node = this.startNode<N.TsExternalModuleReference>();\n this.expectContextual(tt._require);\n this.expect(tt.parenL);\n if (!this.match(tt.string)) {\n this.unexpected();\n }\n // For compatibility to estree we cannot call parseLiteral directly here\n node.expression = super.parseExprAtom() as N.StringLiteral;\n this.expect(tt.parenR);\n this.sawUnambiguousESM = true;\n return this.finishNode(node, \"TSExternalModuleReference\");\n }\n\n // Utilities\n\n tsLookAhead<T>(f: () => T): T {\n const state = this.state.clone();\n const res = f();\n this.state = state;\n return res;\n }\n\n tsTryParseAndCatch<T extends N.NodeBase | undefined | null>(\n f: () => T,\n ): T | undefined | null {\n const result = this.tryParse(\n abort =>\n // @ts-expect-error todo(flow->ts)\n f() || abort(),\n );\n\n if (result.aborted || !result.node) return;\n if (result.error) this.state = result.failState;\n // @ts-expect-error refine typings\n return result.node;\n }\n\n tsTryParse<T>(f: () => T | undefined | false): T | undefined {\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\n tsTryParseDeclare(nany: any): N.Declaration | undefined {\n if (this.isLineTerminator()) {\n return;\n }\n let startType = this.state.type;\n let kind: \"let\" | null;\n\n if (this.isContextual(tt._let)) {\n startType = tt._var;\n kind = \"let\";\n }\n\n // @ts-expect-error refine typings\n return this.tsInAmbientContext(() => {\n switch (startType) {\n case tt._function:\n nany.declare = true;\n return super.parseFunctionStatement(\n nany,\n /* async */ false,\n /* isHangingDeclaration */ false,\n );\n case tt._class:\n // While this is also set by tsParseExpressionStatement, we need to set it\n // before parsing the class declaration to know how to register it in the scope.\n nany.declare = true;\n return this.parseClass(\n nany,\n /* isStatement */ true,\n /* optionalId */ false,\n );\n case tt._enum:\n return this.tsParseEnumDeclaration(nany, { declare: true });\n case tt._global:\n return this.tsParseAmbientExternalModuleDeclaration(nany);\n case tt._const:\n case tt._var:\n if (!this.match(tt._const) || !this.isLookaheadContextual(\"enum\")) {\n nany.declare = true;\n return this.parseVarStatement(\n nany,\n kind || this.state.value,\n true,\n );\n }\n\n // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n this.expect(tt._const);\n return this.tsParseEnumDeclaration(nany, {\n const: true,\n declare: true,\n });\n case tt._interface: {\n const result = this.tsParseInterfaceDeclaration(nany, {\n declare: true,\n });\n if (result) return result;\n }\n // fallthrough\n default:\n if (tokenIsIdentifier(startType)) {\n return this.tsParseDeclaration(\n nany,\n this.state.value,\n /* next */ true,\n /* decorators */ null,\n );\n }\n }\n });\n }\n\n // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n tsTryParseExportDeclaration(): N.Declaration | undefined {\n return this.tsParseDeclaration(\n this.startNode(),\n this.state.value,\n /* next */ true,\n /* decorators */ null,\n );\n }\n\n tsParseExpressionStatement(\n node: Undone<N.TsModuleDeclaration>,\n expr: N.Identifier,\n decorators: N.Decorator[] | null,\n ): N.Declaration | undefined {\n switch (expr.name) {\n case \"declare\": {\n const declaration = this.tsTryParseDeclare(node);\n if (declaration) {\n declaration.declare = true;\n }\n return declaration;\n }\n case \"global\":\n // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n if (this.match(tt.braceL)) {\n this.scope.enter(ScopeFlag.TS_MODULE);\n this.prodParam.enter(PARAM);\n const mod = node;\n mod.global = true;\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\n default:\n return this.tsParseDeclaration(\n node,\n expr.name,\n /* next */ false,\n decorators,\n );\n }\n }\n\n // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n tsParseDeclaration(\n node: any,\n value: string,\n next: boolean,\n decorators: N.Decorator[] | null,\n ): N.Declaration | undefined | null {\n // no declaration apart from enum can be followed by a line break.\n switch (value) {\n case \"abstract\":\n if (\n this.tsCheckLineTerminator(next) &&\n (this.match(tt._class) || tokenIsIdentifier(this.state.type))\n ) {\n return this.tsParseAbstractDeclaration(node, decorators);\n }\n break;\n\n case \"module\":\n if (this.tsCheckLineTerminator(next)) {\n if (this.match(tt.string)) {\n return this.tsParseAmbientExternalModuleDeclaration(node);\n } else if (tokenIsIdentifier(this.state.type)) {\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n }\n break;\n\n case \"namespace\":\n if (\n this.tsCheckLineTerminator(next) &&\n tokenIsIdentifier(this.state.type)\n ) {\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n break;\n\n case \"type\":\n if (\n this.tsCheckLineTerminator(next) &&\n tokenIsIdentifier(this.state.type)\n ) {\n return this.tsParseTypeAliasDeclaration(node);\n }\n break;\n }\n }\n\n tsCheckLineTerminator(next: boolean) {\n if (next) {\n if (this.hasFollowingLineBreak()) return false;\n this.next();\n return true;\n }\n return !this.isLineTerminator();\n }\n\n tsTryParseGenericAsyncArrowFunction(\n startLoc: Position,\n ): N.ArrowFunctionExpression | undefined {\n if (!this.match(tt.lt)) return;\n\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n this.state.maybeInArrowParameters = true;\n\n const res: Undone<N.ArrowFunctionExpression> | undefined =\n this.tsTryParseAndCatch(() => {\n const node = this.startNodeAt<N.ArrowFunctionExpression>(startLoc);\n node.typeParameters = this.tsParseTypeParameters(\n this.tsParseConstModifier,\n );\n // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n super.parseFunctionParams(node);\n node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n this.expect(tt.arrow);\n return node;\n });\n\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n if (!res) return;\n\n return super.parseArrowExpression(\n res,\n /* params are already set */ null,\n /* async */ true,\n );\n }\n\n // Used when parsing type arguments from ES productions, where the first token\n // has been created without state.inType. Thus we need to rescan the lt token.\n tsParseTypeArgumentsInExpression(): N.TsTypeParameterInstantiation | void {\n if (this.reScan_lt() !== tt.lt) return;\n return this.tsParseTypeArguments();\n }\n\n tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n const node = this.startNode<N.TsTypeParameterInstantiation>();\n node.params = this.tsInType(() =>\n // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n this.tsInNoContext(() => {\n this.expect(tt.lt);\n return this.tsParseDelimitedList(\n \"TypeParametersOrArguments\",\n this.tsParseType.bind(this),\n );\n }),\n );\n if (node.params.length === 0) {\n this.raise(TSErrors.EmptyTypeArguments, { at: node });\n } else if (!this.state.inType && this.curContext() === tc.brace) {\n // rescan `>` when we are no longer in type context and JSX parsing context\n // since it was tokenized when `inType` is `true`.\n this.reScan_lt_gt();\n }\n this.expect(tt.gt);\n return this.finishNode(node, \"TSTypeParameterInstantiation\");\n }\n\n tsIsDeclarationStart(): boolean {\n return tokenIsTSDeclarationStart(this.state.type);\n }\n\n // ======================================================\n // OVERRIDES\n // ======================================================\n\n isExportDefaultSpecifier(): boolean {\n if (this.tsIsDeclarationStart()) return false;\n return super.isExportDefaultSpecifier();\n }\n\n parseAssignableListItem(\n flags: ParseBindingListFlags,\n decorators: N.Decorator[],\n ): N.Pattern | N.TSParameterProperty {\n // Store original location to include modifiers in range\n const startLoc = this.state.startLoc;\n\n const modified: ModifierBase = {};\n this.tsParseModifiers(\n {\n allowedModifiers: [\n \"public\",\n \"private\",\n \"protected\",\n \"override\",\n \"readonly\",\n ],\n },\n modified,\n );\n const accessibility = modified.accessibility;\n const override = modified.override;\n const readonly = modified.readonly;\n if (\n !(flags & ParseBindingListFlags.IS_CONSTRUCTOR_PARAMS) &&\n (accessibility || readonly || override)\n ) {\n this.raise(TSErrors.UnexpectedParameterModifier, { at: startLoc });\n }\n\n const left = this.parseMaybeDefault();\n this.parseAssignableListItemTypes(left, flags);\n const elt = this.parseMaybeDefault(left.loc.start, left);\n if (accessibility || readonly || override) {\n const pp = this.startNodeAt<N.TSParameterProperty>(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, { at: pp });\n }\n pp.parameter = elt as any as N.Identifier | N.AssignmentPattern;\n return this.finishNode(pp, \"TSParameterProperty\");\n }\n\n if (decorators.length) {\n left.decorators = decorators;\n }\n\n return elt;\n }\n\n isSimpleParameter(node: N.Pattern | N.TSParameterProperty) {\n return (\n (node.type === \"TSParameterProperty\" &&\n super.isSimpleParameter(node.parameter)) ||\n super.isSimpleParameter(node)\n );\n }\n\n tsDisallowOptionalPattern(node: Undone<N.Function>) {\n for (const param of node.params) {\n if (\n param.type !== \"Identifier\" &&\n (param as any).optional &&\n !this.state.isAmbientContext\n ) {\n this.raise(TSErrors.PatternIsOptional, { at: param });\n }\n }\n }\n\n setArrowFunctionParameters(\n node: Undone<N.ArrowFunctionExpression>,\n params: N.Expression[],\n trailingCommaLoc?: Position | null,\n ): void {\n super.setArrowFunctionParameters(node, params, trailingCommaLoc);\n this.tsDisallowOptionalPattern(node);\n }\n\n parseFunctionBodyAndFinish<\n T extends\n | N.Function\n | N.TSDeclareMethod\n | N.TSDeclareFunction\n | N.ClassPrivateMethod,\n >(node: Undone<T>, type: T[\"type\"], isMethod: boolean = false): T {\n if (this.match(tt.colon)) {\n node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n }\n\n const bodilessType =\n type === \"FunctionDeclaration\"\n ? \"TSDeclareFunction\"\n : type === \"ClassMethod\" || type === \"ClassPrivateMethod\"\n ? \"TSDeclareMethod\"\n : undefined;\n if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n return this.finishNode(node, bodilessType);\n }\n if (bodilessType === \"TSDeclareFunction\" && this.state.isAmbientContext) {\n this.raise(TSErrors.DeclareFunctionHasImplementation, { at: node });\n if ((node as Undone<N.FunctionDeclaration>).declare) {\n return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod);\n }\n }\n this.tsDisallowOptionalPattern(node);\n\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n\n registerFunctionStatementId(node: N.Function): void {\n if (!node.body && node.id) {\n // Function ids are validated after parsing their body.\n // For bodiless function, we need to do it here.\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_AMBIENT);\n } else {\n super.registerFunctionStatementId(node);\n }\n }\n\n tsCheckForInvalidTypeCasts(items: Array<N.Expression | undefined | null>) {\n items.forEach(node => {\n if (node?.type === \"TSTypeCastExpression\") {\n this.raise(TSErrors.UnexpectedTypeAnnotation, {\n at: node.typeAnnotation,\n });\n }\n });\n }\n\n toReferencedList(\n exprList: Array<N.Expression | undefined | null>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isInParens?: boolean,\n ): Array<N.Expression | undefined | null> {\n // Handles invalid scenarios like: `f(a:b)`, `(a:b);`, and `(a:b,c:d)`.\n //\n // Note that `f<T>(a:b)` goes through a different path and is handled\n // in `parseSubscript` directly.\n this.tsCheckForInvalidTypeCasts(exprList);\n return exprList;\n }\n\n parseArrayLike(\n close: TokenType,\n canBePattern: boolean,\n isTuple: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ArrayExpression | N.TupleExpression {\n const node = super.parseArrayLike(\n close,\n canBePattern,\n isTuple,\n refExpressionErrors,\n );\n\n if (node.type === \"ArrayExpression\") {\n this.tsCheckForInvalidTypeCasts(node.elements);\n }\n\n return node;\n }\n\n parseSubscript(\n base: N.Expression,\n\n startLoc: Position,\n noCalls: boolean | undefined | null,\n state: N.ParseSubscriptState,\n ): N.Expression {\n if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n // When ! is consumed as a postfix operator (non-null assertion),\n // disallow JSX tag forming after. e.g. When parsing `p! < n.p!`\n // `<n.p` can not be a start of JSX tag\n this.state.canStartJSXElement = false;\n this.next();\n\n const nonNullExpression =\n this.startNodeAt<N.TsNonNullExpression>(startLoc);\n nonNullExpression.expression = base;\n return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n }\n\n let isOptionalCall = false;\n if (\n this.match(tt.questionDot) &&\n this.lookaheadCharCode() === charCodes.lessThan\n ) {\n if (noCalls) {\n state.stop = true;\n return base;\n }\n state.optionalChainMember = isOptionalCall = true;\n this.next();\n }\n\n // handles 'f<<T>'\n if (this.match(tt.lt) || this.match(tt.bitShiftL)) {\n let missingParenErrorLoc;\n // tsTryParseAndCatch is expensive, so avoid if not necessary.\n // There are number of things we are going to \"maybe\" parse, like type arguments on\n // tagged template expressions. If any of them fail, walk it back and continue.\n const result = this.tsTryParseAndCatch(() => {\n if (!noCalls && this.atPossibleAsyncArrow(base)) {\n // Almost certainly this is a generic async function `async <T>() => ...\n // But it might be a call with a type argument `async<T>();`\n const asyncArrowFn =\n this.tsTryParseGenericAsyncArrowFunction(startLoc);\n if (asyncArrowFn) {\n return asyncArrowFn;\n }\n }\n\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n if (!typeArguments) return;\n\n if (isOptionalCall && !this.match(tt.parenL)) {\n missingParenErrorLoc = this.state.curPosition();\n return;\n }\n\n if (tokenIsTemplate(this.state.type)) {\n const result = super.parseTaggedTemplateExpression(\n base,\n\n startLoc,\n state,\n );\n result.typeParameters = typeArguments;\n return result;\n }\n\n if (!noCalls && this.eat(tt.parenL)) {\n const node = this.startNodeAt<\n N.CallExpression | N.OptionalCallExpression\n >(startLoc);\n node.callee = base;\n // possibleAsync always false here, because we would have handled it above.\n // @ts-expect-error (won't be any undefined arguments)\n node.arguments = this.parseCallExpressionArguments(\n tt.parenR,\n /* possibleAsync */ false,\n );\n\n // Handles invalid case: `f<T>(a:b)`\n this.tsCheckForInvalidTypeCasts(node.arguments);\n\n node.typeParameters = typeArguments;\n if (state.optionalChainMember) {\n (node as Undone<N.OptionalCallExpression>).optional =\n isOptionalCall;\n }\n\n return this.finishCallExpression(node, state.optionalChainMember);\n }\n\n const tokenType = this.state.type;\n if (\n // a<b>>c is not (a<b>)>c, but a<(b>>c)\n tokenType === tt.gt ||\n // a<b>>>c is not (a<b>)>>c, but a<(b>>>c)\n tokenType === tt.bitShiftR ||\n // a<b>c is (a<b)>c\n (tokenType !== tt.parenL &&\n tokenCanStartExpression(tokenType) &&\n !this.hasPrecedingLineBreak())\n ) {\n // Bail out.\n return;\n }\n\n const node = this.startNodeAt<N.TsInstantiationExpression>(startLoc);\n node.expression = base;\n node.typeParameters = typeArguments;\n return this.finishNode(node, \"TSInstantiationExpression\");\n });\n\n if (missingParenErrorLoc) {\n this.unexpected(missingParenErrorLoc, tt.parenL);\n }\n\n if (result) {\n if (\n result.type === \"TSInstantiationExpression\" &&\n (this.match(tt.dot) ||\n (this.match(tt.questionDot) &&\n this.lookaheadCharCode() !== charCodes.leftParenthesis))\n ) {\n this.raise(\n TSErrors.InvalidPropertyAccessAfterInstantiationExpression,\n { at: this.state.startLoc },\n );\n }\n return result;\n }\n }\n\n return super.parseSubscript(base, startLoc, noCalls, state);\n }\n\n parseNewCallee(node: N.NewExpression): void {\n super.parseNewCallee(node);\n\n const { callee } = node;\n if (\n callee.type === \"TSInstantiationExpression\" &&\n !callee.extra?.parenthesized\n ) {\n node.typeParameters = callee.typeParameters;\n node.callee = callee.expression;\n }\n }\n\n parseExprOp(\n left: N.Expression,\n leftStartLoc: Position,\n minPrec: number,\n ): N.Expression {\n let isSatisfies: boolean;\n if (\n tokenOperatorPrecedence(tt._in) > minPrec &&\n !this.hasPrecedingLineBreak() &&\n (this.isContextual(tt._as) ||\n (isSatisfies = this.isContextual(tt._satisfies)))\n ) {\n const node = this.startNodeAt<\n N.TsAsExpression | N.TsSatisfiesExpression\n >(leftStartLoc);\n node.expression = left;\n node.typeAnnotation = this.tsInType(() => {\n this.next(); // \"as\" or \"satisfies\"\n if (this.match(tt._const)) {\n if (isSatisfies) {\n this.raise(Errors.UnexpectedKeyword, {\n at: this.state.startLoc,\n keyword: \"const\",\n });\n }\n return this.tsParseTypeReference();\n }\n\n return this.tsParseType();\n });\n this.finishNode(\n node,\n isSatisfies ? \"TSSatisfiesExpression\" : \"TSAsExpression\",\n );\n // rescan `<`, `>` because they were scanned when this.state.inType was true\n this.reScan_lt_gt();\n return this.parseExprOp(\n // @ts-expect-error todo(flow->ts)\n node,\n leftStartLoc,\n minPrec,\n );\n }\n\n return super.parseExprOp(left, leftStartLoc, minPrec);\n }\n\n checkReservedWord(\n word: string,\n startLoc: Position,\n checkKeywords: boolean,\n isBinding: boolean,\n ): void {\n // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n // And we have a type checker anyway, so don't bother having the parser do it.\n if (!this.state.isAmbientContext) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n\n checkImportReflection(node: Undone<N.ImportDeclaration>) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(TSErrors.ImportReflectionHasImportType, {\n at: node.specifiers[0].loc.start,\n });\n }\n }\n\n /*\n Don't bother doing this check in TypeScript code because:\n 1. We may have a nested export statement with the same name:\n export const x = 0;\n export namespace N {\n export const x = 1;\n }\n 2. We have a type checker to warn us about this sort of thing.\n */\n checkDuplicateExports() {}\n\n isPotentialImportPhase(isExport: boolean): boolean {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(tt._type)) {\n const ch = this.lookaheadCharCode();\n return isExport\n ? ch === charCodes.leftCurlyBrace || ch === charCodes.asterisk\n : ch !== charCodes.equalsTo;\n }\n return !isExport && this.isContextual(tt._typeof);\n }\n\n applyImportPhase(\n node: Undone<N.ImportDeclaration | N.ExportNamedDeclaration>,\n isExport: boolean,\n phase: string | null,\n loc?: Position,\n ): void {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n (node as N.ExportNamedDeclaration).exportKind =\n phase === \"type\" ? \"type\" : \"value\";\n } else {\n (node as N.ImportDeclaration).importKind =\n phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n\n parseImport(\n node: Undone<N.ImportDeclaration | N.TsImportEqualsDeclaration>,\n ): N.AnyImport {\n if (this.match(tt.string)) {\n node.importKind = \"value\";\n return super.parseImport(node as Undone<N.ImportDeclaration>);\n }\n\n let importNode;\n if (\n tokenIsIdentifier(this.state.type) &&\n this.lookaheadCharCode() === charCodes.equalsTo\n ) {\n node.importKind = \"value\";\n return this.tsParseImportEqualsDeclaration(\n node as Undone<N.TsImportEqualsDeclaration>,\n );\n } else if (this.isContextual(tt._type)) {\n const maybeDefaultIdentifier = this.parseMaybeImportPhase(\n node as Undone<N.ImportDeclaration>,\n /* isExport */ false,\n );\n if (this.lookaheadCharCode() === charCodes.equalsTo) {\n return this.tsParseImportEqualsDeclaration(\n node as Undone<N.TsImportEqualsDeclaration>,\n maybeDefaultIdentifier,\n );\n } else {\n importNode = super.parseImportSpecifiersAndAfter(\n node as Undone<N.ImportDeclaration>,\n maybeDefaultIdentifier,\n );\n }\n } else {\n importNode = super.parseImport(node as Undone<N.ImportDeclaration>);\n }\n\n // `import type` can only be used on imports with named imports or with a\n // default import - but not both\n if (\n importNode.importKind === \"type\" &&\n // @ts-expect-error refine typings\n importNode.specifiers.length > 1 &&\n // @ts-expect-error refine typings\n importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n ) {\n this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, {\n at: importNode,\n });\n }\n\n return importNode;\n }\n\n parseExport(\n node: Undone<N.Node>,\n decorators: N.Decorator[] | null,\n ): N.AnyExport {\n if (this.match(tt._import)) {\n // `export import A = B;`\n this.next(); // eat `tt._import`\n let maybeDefaultIdentifier: N.Identifier | null = null;\n if (\n this.isContextual(tt._type) &&\n // We pass false here, because we are parsing an `import ... =`\n this.isPotentialImportPhase(/* isExport */ false)\n ) {\n maybeDefaultIdentifier = this.parseMaybeImportPhase(\n node as Undone<N.TsImportEqualsDeclaration>,\n /* isExport */ false,\n );\n } else {\n node.importKind = \"value\";\n }\n return this.tsParseImportEqualsDeclaration(\n node as Undone<N.TsImportEqualsDeclaration>,\n maybeDefaultIdentifier,\n /* isExport */ true,\n );\n } else if (this.eat(tt.eq)) {\n // `export = x;`\n const assign = node as Undone<N.TsExportAssignment>;\n assign.expression = super.parseExpression();\n this.semicolon();\n this.sawUnambiguousESM = true;\n return this.finishNode(assign, \"TSExportAssignment\");\n } else if (this.eatContextual(tt._as)) {\n // `export as namespace A;`\n const decl = node as Undone<N.TsNamespaceExportDeclaration>;\n // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n this.expectContextual(tt._namespace);\n decl.id = this.parseIdentifier();\n this.semicolon();\n return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n } else {\n return super.parseExport(\n node as Undone<N.ExportAllDeclaration | N.ExportDefaultDeclaration>,\n decorators,\n );\n }\n }\n\n isAbstractClass(): boolean {\n return (\n this.isContextual(tt._abstract) && this.lookahead().type === tt._class\n );\n }\n\n parseExportDefaultExpression(): N.Expression | N.Declaration {\n if (this.isAbstractClass()) {\n const cls = this.startNode<N.Class>();\n this.next(); // Skip \"abstract\"\n cls.abstract = true;\n return this.parseClass(cls, true, true);\n }\n\n // export default interface allowed in:\n // https://github.com/Microsoft/TypeScript/pull/16040\n if (this.match(tt._interface)) {\n const result = this.tsParseInterfaceDeclaration(\n this.startNode<N.TsInterfaceDeclaration>(),\n );\n if (result) return result;\n }\n\n return super.parseExportDefaultExpression();\n }\n\n parseVarStatement(\n node: N.VariableDeclaration,\n kind: \"var\" | \"let\" | \"const\" | \"using\",\n allowMissingInitializer: boolean = false,\n ) {\n const { isAmbientContext } = this.state;\n const declaration = super.parseVarStatement(\n node,\n kind,\n allowMissingInitializer || isAmbientContext,\n );\n\n if (!isAmbientContext) return declaration;\n\n for (const { id, init } of declaration.declarations) {\n // Empty initializer is the easy case that we want.\n if (!init) continue;\n\n // var and let aren't ever allowed initializers.\n if (kind !== \"const\" || !!id.typeAnnotation) {\n this.raise(TSErrors.InitializerNotAllowedInAmbientContext, {\n at: init,\n });\n } else if (\n !isValidAmbientConstInitializer(init, this.hasPlugin(\"estree\"))\n ) {\n this.raise(\n TSErrors.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference,\n { at: init },\n );\n }\n }\n\n return declaration;\n }\n\n parseStatementContent(\n flags: ParseStatementFlag,\n decorators?: N.Decorator[] | null,\n ): N.Statement {\n if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n const node = this.startNode<N.TsEnumDeclaration>();\n this.expect(tt._const); // eat 'const'\n return this.tsParseEnumDeclaration(node, { const: true });\n }\n\n if (this.isContextual(tt._enum)) {\n return this.tsParseEnumDeclaration(\n this.startNode<N.TsEnumDeclaration>(),\n );\n }\n\n if (this.isContextual(tt._interface)) {\n const result = this.tsParseInterfaceDeclaration(this.startNode());\n if (result) return result;\n }\n\n return super.parseStatementContent(flags, decorators);\n }\n\n parseAccessModifier(): N.Accessibility | undefined | null {\n return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n }\n\n tsHasSomeModifiers(member: any, modifiers: readonly TsModifier[]): boolean {\n return modifiers.some(modifier => {\n if (tsIsAccessModifier(modifier)) {\n return member.accessibility === modifier;\n }\n return !!member[modifier];\n });\n }\n\n tsIsStartOfStaticBlocks() {\n return (\n this.isContextual(tt._static) &&\n this.lookaheadCharCode() === charCodes.leftCurlyBrace\n );\n }\n\n parseClassMember(\n classBody: N.ClassBody,\n member: any,\n state: N.ParseClassMemberState,\n ): void {\n const modifiers = [\n \"declare\",\n \"private\",\n \"public\",\n \"protected\",\n \"override\",\n \"abstract\",\n \"readonly\",\n \"static\",\n ] as const;\n this.tsParseModifiers(\n {\n allowedModifiers: modifiers,\n disallowedModifiers: [\"in\", \"out\"],\n stopOnStartOfClassStaticBlock: true,\n errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions,\n },\n member,\n );\n\n const callParseClassMemberWithIsStatic = () => {\n if (this.tsIsStartOfStaticBlocks()) {\n this.next(); // eat \"static\"\n this.next(); // eat \"{\"\n if (this.tsHasSomeModifiers(member, modifiers)) {\n this.raise(TSErrors.StaticBlockCannotHaveModifier, {\n at: this.state.curPosition(),\n });\n }\n super.parseClassStaticBlock(classBody, member as N.StaticBlock);\n } else {\n this.parseClassMemberWithIsStatic(\n classBody,\n member,\n state,\n !!member.static,\n );\n }\n };\n if (member.declare) {\n this.tsInAmbientContext(callParseClassMemberWithIsStatic);\n } else {\n callParseClassMemberWithIsStatic();\n }\n }\n\n parseClassMemberWithIsStatic(\n classBody: N.ClassBody,\n member: Undone<N.ClassMember | N.TsIndexSignature>,\n state: N.ParseClassMemberState,\n isStatic: boolean,\n ): void {\n const idx = this.tsTryParseIndexSignature(\n member as Undone<N.TsIndexSignature>,\n );\n if (idx) {\n classBody.body.push(idx);\n\n if ((member as any).abstract) {\n this.raise(TSErrors.IndexSignatureHasAbstract, { at: member });\n }\n if ((member as any).accessibility) {\n this.raise(TSErrors.IndexSignatureHasAccessibility, {\n at: member,\n modifier: (member as any).accessibility,\n });\n }\n if ((member as any).declare) {\n this.raise(TSErrors.IndexSignatureHasDeclare, { at: member });\n }\n if ((member as any).override) {\n this.raise(TSErrors.IndexSignatureHasOverride, { at: member });\n }\n\n return;\n }\n\n if (!this.state.inAbstractClass && (member as any).abstract) {\n this.raise(TSErrors.NonAbstractClassHasAbstractMethod, {\n at: member,\n });\n }\n\n if ((member as any).override) {\n if (!state.hadSuperClass) {\n this.raise(TSErrors.OverrideNotInSubClass, { at: member });\n }\n }\n\n /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n super.parseClassMemberWithIsStatic(\n classBody,\n member as Undone<N.ClassMember>,\n state,\n isStatic,\n );\n }\n\n parsePostMemberNameModifiers(\n methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n ): void {\n const optional = this.eat(tt.question);\n if (optional) methodOrProp.optional = true;\n\n if ((methodOrProp as any).readonly && this.match(tt.parenL)) {\n this.raise(TSErrors.ClassMethodHasReadonly, { at: methodOrProp });\n }\n\n if ((methodOrProp as any).declare && this.match(tt.parenL)) {\n this.raise(TSErrors.ClassMethodHasDeclare, { at: methodOrProp });\n }\n }\n\n // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n // is that e.g. `type()` is valid JS, so we must try parsing that first.\n // If it's really a type, we will parse `type` as the statement, and can correct it here\n // by parsing the rest.\n // @ts-expect-error plugin overrides interfaces\n parseExpressionStatement(\n node: Undone<N.ExpressionStatement>,\n expr: N.Expression,\n decorators: N.Decorator[] | null,\n ): N.Statement {\n const decl =\n expr.type === \"Identifier\"\n ? // @ts-expect-error refine typings\n this.tsParseExpressionStatement(node, expr, decorators)\n : undefined;\n return decl || super.parseExpressionStatement(node, expr, decorators);\n }\n\n // export type\n // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n shouldParseExportDeclaration(): boolean {\n if (this.tsIsDeclarationStart()) return true;\n return super.shouldParseExportDeclaration();\n }\n\n // An apparent conditional expression could actually be an optional parameter in an arrow function.\n parseConditional(\n expr: N.Expression,\n\n startLoc: Position,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n // only do the expensive clone if there is a question mark\n // and if we come from inside parens\n if (!this.state.maybeInArrowParameters || !this.match(tt.question)) {\n return super.parseConditional(\n expr,\n\n startLoc,\n refExpressionErrors,\n );\n }\n\n const result = this.tryParse(() =>\n super.parseConditional(expr, startLoc),\n );\n\n if (!result.node) {\n if (result.error) {\n /*:: invariant(refExpressionErrors != null) */\n super.setOptionalParametersError(refExpressionErrors, result.error);\n }\n\n return expr;\n }\n if (result.error) this.state = result.failState;\n return result.node;\n }\n\n // Note: These \"type casts\" are *not* valid TS expressions.\n // But we parse them here and change them when completing the arrow function.\n parseParenItem(\n node: N.Expression,\n\n startLoc: Position,\n ): N.Expression {\n node = super.parseParenItem(node, startLoc);\n if (this.eat(tt.question)) {\n node.optional = true;\n // Include questionmark in location of node\n // Don't use this.finishNode() as otherwise we might process comments twice and\n // include already consumed parens\n this.resetEndLocation(node);\n }\n\n if (this.match(tt.colon)) {\n const typeCastNode = this.startNodeAt<N.TsTypeCastExpression>(startLoc);\n typeCastNode.expression = node;\n typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n }\n\n return node;\n }\n\n parseExportDeclaration(\n node: N.ExportNamedDeclaration,\n ): N.Declaration | undefined | null {\n if (!this.state.isAmbientContext && this.isContextual(tt._declare)) {\n return this.tsInAmbientContext(() => this.parseExportDeclaration(node));\n }\n\n // Store original location\n const startLoc = this.state.startLoc;\n\n const isDeclare = this.eatContextual(tt._declare);\n\n if (\n isDeclare &&\n (this.isContextual(tt._declare) || !this.shouldParseExportDeclaration())\n ) {\n throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, {\n at: this.state.startLoc,\n });\n }\n\n const isIdentifier = tokenIsIdentifier(this.state.type);\n const declaration: N.Declaration | undefined | null =\n (isIdentifier && this.tsTryParseExportDeclaration()) ||\n super.parseExportDeclaration(node);\n\n if (!declaration) return null;\n\n if (\n declaration.type === \"TSInterfaceDeclaration\" ||\n declaration.type === \"TSTypeAliasDeclaration\" ||\n isDeclare\n ) {\n node.exportKind = \"type\";\n }\n\n if (isDeclare) {\n // Reset location to include `declare` in range\n this.resetStartLocation(declaration, startLoc);\n\n declaration.declare = true;\n }\n\n return declaration;\n }\n\n parseClassId(\n node: N.Class,\n isStatement: boolean,\n optionalId?: boolean | null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindingType?: BindingTypes,\n ): void {\n if ((!isStatement || optionalId) && this.isContextual(tt._implements)) {\n return;\n }\n\n super.parseClassId(\n node,\n isStatement,\n optionalId,\n (node as any).declare\n ? BindingFlag.TYPE_TS_AMBIENT\n : BindingFlag.TYPE_CLASS,\n );\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseInOutConstModifiers,\n );\n if (typeParameters) node.typeParameters = typeParameters;\n }\n\n parseClassPropertyAnnotation(\n node: N.ClassProperty | N.ClassPrivateProperty | N.ClassAccessorProperty,\n ): void {\n if (!node.optional) {\n if (this.eat(tt.bang)) {\n node.definite = true;\n } else if (this.eat(tt.question)) {\n node.optional = true;\n }\n }\n\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n }\n\n parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n this.parseClassPropertyAnnotation(node);\n\n if (\n this.state.isAmbientContext &&\n !(node.readonly && !node.typeAnnotation) &&\n this.match(tt.eq)\n ) {\n this.raise(TSErrors.DeclareClassFieldHasInitializer, {\n at: this.state.startLoc,\n });\n }\n if (node.abstract && this.match(tt.eq)) {\n const { key } = node;\n this.raise(TSErrors.AbstractPropertyHasInitializer, {\n at: this.state.startLoc,\n propertyName:\n key.type === \"Identifier\" && !node.computed\n ? key.name\n : `[${this.input.slice(key.start, key.end)}]`,\n });\n }\n\n return super.parseClassProperty(node);\n }\n\n parseClassPrivateProperty(\n node: N.ClassPrivateProperty,\n ): N.ClassPrivateProperty {\n // @ts-expect-error abstract may not index node\n if (node.abstract) {\n this.raise(TSErrors.PrivateElementHasAbstract, { at: node });\n }\n\n // @ts-expect-error accessibility may not index node\n if (node.accessibility) {\n this.raise(TSErrors.PrivateElementHasAccessibility, {\n at: node,\n // @ts-expect-error refine typings\n modifier: node.accessibility,\n });\n }\n\n this.parseClassPropertyAnnotation(node);\n return super.parseClassPrivateProperty(node);\n }\n\n parseClassAccessorProperty(\n node: N.ClassAccessorProperty,\n ): N.ClassAccessorProperty {\n this.parseClassPropertyAnnotation(node);\n if (node.optional) {\n this.raise(TSErrors.AccessorCannotBeOptional, { at: node });\n }\n return super.parseClassAccessorProperty(node);\n }\n\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n if (typeParameters && isConstructor) {\n this.raise(TSErrors.ConstructorHasTypeParameters, {\n at: typeParameters,\n });\n }\n\n // @ts-expect-error declare does not exist in ClassMethod\n const { declare = false, kind } = method;\n\n if (declare && (kind === \"get\" || kind === \"set\")) {\n this.raise(TSErrors.DeclareAccessor, { at: method, kind });\n }\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassMethod(\n classBody,\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n );\n }\n\n pushClassPrivateMethod(\n classBody: N.ClassBody,\n method: N.ClassPrivateMethod,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n\n declareClassPrivateMethodInScope(\n node: N.ClassPrivateMethod | N.EstreeMethodDefinition | N.TSDeclareMethod,\n kind: number,\n ) {\n if (node.type === \"TSDeclareMethod\") return;\n // This happens when using the \"estree\" plugin.\n if (node.type === \"MethodDefinition\" && !node.value.body) return;\n\n super.declareClassPrivateMethodInScope(node, kind);\n }\n\n parseClassSuper(node: N.Class): void {\n super.parseClassSuper(node);\n // handle `extends f<<T>\n if (node.superClass && (this.match(tt.lt) || this.match(tt.bitShiftL))) {\n // @ts-expect-error refine typings\n node.superTypeParameters = this.tsParseTypeArgumentsInExpression();\n }\n if (this.eatContextual(tt._implements)) {\n node.implements = this.tsParseHeritageClause(\"implements\");\n }\n }\n\n parseObjPropValue(\n prop: Undone<N.ObjectMethod | N.ObjectProperty>,\n startLoc: Position | undefined | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ) {\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n if (typeParameters) prop.typeParameters = typeParameters;\n\n return super.parseObjPropValue(\n prop,\n\n startLoc,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n refExpressionErrors,\n );\n }\n\n parseFunctionParams(node: N.Function, isConstructor: boolean): void {\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n if (typeParameters) node.typeParameters = typeParameters;\n super.parseFunctionParams(node, isConstructor);\n }\n\n // `let x: number;`\n parseVarId(\n decl: N.VariableDeclarator,\n kind: \"var\" | \"let\" | \"const\" | \"using\",\n ): void {\n super.parseVarId(decl, kind);\n if (\n decl.id.type === \"Identifier\" &&\n !this.hasPrecedingLineBreak() &&\n this.eat(tt.bang)\n ) {\n decl.definite = true;\n }\n\n const type = this.tsTryParseTypeAnnotation();\n if (type) {\n decl.id.typeAnnotation = type;\n this.resetEndLocation(decl.id); // set end position to end of type\n }\n }\n\n // parse the return type of an async arrow function - let foo = (async (): number => {});\n parseAsyncArrowFromCallExpression(\n node: N.ArrowFunctionExpression,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n node.returnType = this.tsParseTypeAnnotation();\n }\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n\n parseMaybeAssign(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ): N.Expression {\n // Note: When the JSX plugin is on, type assertions (`<T> x`) aren't valid syntax.\n\n let state: State | undefined | null;\n let jsx;\n let typeCast;\n\n if (\n this.hasPlugin(\"jsx\") &&\n (this.match(tt.jsxTagStart) || this.match(tt.lt))\n ) {\n // Prefer to parse JSX if possible. But may be an arrow fn.\n state = this.state.clone();\n\n jsx = this.tryParse(\n () => super.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n state,\n );\n\n /*:: invariant(!jsx.aborted) */\n /*:: invariant(jsx.node != null) */\n if (!jsx.error) return jsx.node;\n\n // Remove `tc.j_expr` or `tc.j_oTag` from context added\n // by parsing `jsxTagStart` to stop the JSX plugin from\n // messing with the tokens\n const { context } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === tc.j_oTag || currentContext === tc.j_expr) {\n context.pop();\n }\n }\n\n if (!jsx?.error && !this.match(tt.lt)) {\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n\n // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n // If the state was cloned in the JSX parsing branch above but there\n // have been any error in the tryParse call, this.state is set to state\n // so we still need to clone it.\n if (!state || state === this.state) state = this.state.clone();\n\n let typeParameters: N.TsTypeParameterDeclaration | undefined | null;\n const arrow = this.tryParse(abort => {\n // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier);\n const expr = super.parseMaybeAssign(\n refExpressionErrors,\n afterLeftParse,\n );\n\n if (\n expr.type !== \"ArrowFunctionExpression\" ||\n expr.extra?.parenthesized\n ) {\n abort();\n }\n\n // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n if (typeParameters?.params.length !== 0) {\n this.resetStartLocationFromNode(expr, typeParameters);\n }\n expr.typeParameters = typeParameters;\n\n if (process.env.BABEL_8_BREAKING) {\n if (\n this.hasPlugin(\"jsx\") &&\n expr.typeParameters.params.length === 1 &&\n !expr.typeParameters.extra?.trailingComma\n ) {\n // report error if single type parameter used without trailing comma.\n const parameter = expr.typeParameters.params[0];\n if (!parameter.constraint) {\n // A single type parameter must either have constraints\n // or a trailing comma, otherwise it's ambiguous with JSX.\n this.raise(TSErrors.SingleTypeParameterWithoutTrailingComma, {\n at: createPositionWithColumnOffset(parameter.loc.end, 1),\n typeParameterName: parameter.name.name,\n });\n }\n }\n }\n\n return expr;\n }, state);\n\n /*:: invariant(arrow.node != null) */\n if (!arrow.error && !arrow.aborted) {\n // This error is reported outside of the this.tryParse call so that\n // in case of <T>(x) => 2, we don't consider <T>(x) as a type assertion\n // because of this error.\n if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);\n // @ts-expect-error refine typings\n return arrow.node;\n }\n\n if (!jsx) {\n // Try parsing a type cast instead of an arrow function.\n // This will never happen outside of JSX.\n // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n assert(!this.hasPlugin(\"jsx\"));\n\n // This will start with a type assertion (via parseMaybeUnary).\n // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n typeCast = this.tryParse(\n () => super.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n state,\n );\n /*:: invariant(!typeCast.aborted) */\n /*:: invariant(typeCast.node != null) */\n if (!typeCast.error) return typeCast.node;\n }\n\n if (jsx?.node) {\n /*:: invariant(jsx.failState) */\n this.state = jsx.failState;\n return jsx.node;\n }\n\n if (arrow.node) {\n /*:: invariant(arrow.failState) */\n this.state = arrow.failState;\n if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);\n // @ts-expect-error refine typings\n return arrow.node;\n }\n\n if (typeCast?.node) {\n /*:: invariant(typeCast.failState) */\n this.state = typeCast.failState;\n return typeCast.node;\n }\n\n throw jsx?.error || arrow.error || typeCast?.error;\n }\n\n reportReservedArrowTypeParam(node: any) {\n if (\n node.params.length === 1 &&\n !node.params[0].constraint &&\n !node.extra?.trailingComma &&\n this.getPluginOption(\"typescript\", \"disallowAmbiguousJSXLike\")\n ) {\n this.raise(TSErrors.ReservedArrowTypeParam, { at: node });\n }\n }\n\n // Handle type assertions\n parseMaybeUnary(\n refExpressionErrors?: ExpressionErrors | null,\n sawUnary?: boolean,\n ): N.Expression {\n if (!this.hasPlugin(\"jsx\") && this.match(tt.lt)) {\n return this.tsParseTypeAssertion();\n }\n return super.parseMaybeUnary(refExpressionErrors, sawUnary);\n }\n\n parseArrow(\n node: Undone<N.ArrowFunctionExpression>,\n ): Undone<N.ArrowFunctionExpression> | undefined | null {\n if (this.match(tt.colon)) {\n // This is different from how the TS parser does it.\n // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n const result = this.tryParse(abort => {\n const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n tt.colon,\n );\n if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n return returnType;\n });\n\n if (result.aborted) return;\n\n if (!result.thrown) {\n if (result.error) this.state = result.failState;\n // @ts-expect-error refine typings\n node.returnType = result.node;\n }\n }\n\n return super.parseArrow(node);\n }\n\n // Allow type annotations inside of a parameter list.\n parseAssignableListItemTypes(\n param: N.Pattern,\n flags: ParseBindingListFlags,\n ) {\n if (!(flags & ParseBindingListFlags.IS_FUNCTION_PARAMS)) return param;\n\n if (this.eat(tt.question)) {\n (param as any as N.Identifier).optional = true;\n }\n const type = this.tsTryParseTypeAnnotation();\n if (type) param.typeAnnotation = type;\n this.resetEndLocation(param);\n\n return param;\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\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\n toAssignable(node: N.Node, isLHS: boolean = false): void {\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(\n TSErrors.UnexpectedTypeCastInParameter,\n { at: node },\n );\n } else {\n this.raise(TSErrors.UnexpectedTypeCastInParameter, { at: 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 /* fall through */\n default:\n super.toAssignable(node, isLHS);\n }\n }\n\n toAssignableParenthesizedExpression(node: N.Node, isLHS: boolean): void {\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\n checkToRestConversion(node: N.Node, allowPattern: boolean): void {\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\n // @ts-expect-error plugin overrides interfaces\n isValidLVal(\n type:\n | \"TSTypeCastExpression\"\n | \"TSParameterProperty\"\n | \"TSNonNullExpression\"\n | \"TSAsExpression\"\n | \"TSSatisfiesExpression\"\n | \"TSTypeAssertion\",\n isUnparenthesizedInAssign: boolean,\n binding: BindingTypes,\n ) {\n return (\n getOwn(\n {\n // Allow \"typecasts\" to appear on the left of assignment expressions,\n // because it may be in an arrow function.\n // e.g. `const f = (foo: number = 0) => foo;`\n TSTypeCastExpression: true,\n TSParameterProperty: \"parameter\",\n TSNonNullExpression: \"expression\",\n TSAsExpression: (binding !== BindingFlag.TYPE_NONE ||\n !isUnparenthesizedInAssign) && [\"expression\", true],\n TSSatisfiesExpression: (binding !== BindingFlag.TYPE_NONE ||\n !isUnparenthesizedInAssign) && [\"expression\", true],\n TSTypeAssertion: (binding !== BindingFlag.TYPE_NONE ||\n !isUnparenthesizedInAssign) && [\"expression\", true],\n },\n type,\n ) || super.isValidLVal(type, isUnparenthesizedInAssign, binding)\n );\n }\n\n parseBindingAtom(): N.Pattern {\n if (this.state.type === tt._this) {\n return this.parseIdentifier(/* liberal */ true);\n }\n return super.parseBindingAtom();\n }\n\n parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n // handles `@f<<T>`\n if (this.match(tt.lt) || this.match(tt.bitShiftL)) {\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n\n if (this.match(tt.parenL)) {\n const call = super.parseMaybeDecoratorArguments(expr);\n call.typeParameters = typeArguments;\n return call;\n }\n\n this.unexpected(null, tt.parenL);\n }\n\n return super.parseMaybeDecoratorArguments(expr);\n }\n\n checkCommaAfterRest(\n close: (typeof charCodes)[keyof typeof charCodes],\n ): boolean {\n if (\n this.state.isAmbientContext &&\n this.match(tt.comma) &&\n this.lookaheadCharCode() === close\n ) {\n this.next();\n return false;\n }\n return super.checkCommaAfterRest(close);\n }\n\n // === === === === === === === === === === === === === === === ===\n // Note: All below methods are duplicates of something in flow.js.\n // Not sure what the best way to combine these is.\n // === === === === === === === === === === === === === === === ===\n\n isClassMethod(): boolean {\n return this.match(tt.lt) || super.isClassMethod();\n }\n\n isClassProperty(): boolean {\n return (\n this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n );\n }\n\n parseMaybeDefault(\n startLoc?: Position | null,\n left?: Pattern | null,\n ): N.Pattern {\n const node = super.parseMaybeDefault(startLoc, left);\n\n if (\n node.type === \"AssignmentPattern\" &&\n node.typeAnnotation &&\n node.right.start < node.typeAnnotation.start\n ) {\n this.raise(TSErrors.TypeAnnotationAfterAssign, {\n at: node.typeAnnotation,\n });\n }\n\n return node;\n }\n\n // ensure that inside types, we bypass the jsx parser plugin\n getTokenFromCode(code: number): void {\n if (this.state.inType) {\n if (code === charCodes.greaterThan) {\n this.finishOp(tt.gt, 1);\n return;\n }\n if (code === charCodes.lessThan) {\n this.finishOp(tt.lt, 1);\n return;\n }\n }\n super.getTokenFromCode(code);\n }\n\n // used after we have finished parsing types\n reScan_lt_gt() {\n const { type } = this.state;\n if (type === tt.lt) {\n this.state.pos -= 1;\n this.readToken_lt();\n } else if (type === tt.gt) {\n this.state.pos -= 1;\n this.readToken_gt();\n }\n }\n\n reScan_lt() {\n const { type } = this.state;\n if (type === tt.bitShiftL) {\n this.state.pos -= 2;\n this.finishOp(tt.lt, 1);\n return tt.lt;\n }\n return type;\n }\n\n toAssignableList(\n exprList: Expression[],\n trailingCommaLoc: Position | undefined | null,\n isLHS: boolean,\n ): void {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (expr?.type === \"TSTypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(\n expr as N.TsTypeCastExpression,\n );\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n\n typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n node.expression.typeAnnotation = node.typeAnnotation;\n\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n\n return node.expression;\n }\n\n shouldParseArrow(params: Array<N.Node>) {\n if (this.match(tt.colon)) {\n return params.every(expr => this.isAssignable(expr, true));\n }\n return super.shouldParseArrow(params);\n }\n\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.colon) || super.shouldParseAsyncArrow();\n }\n\n canHaveLeadingDecorator() {\n // Avoid unnecessary lookahead in checking for abstract class unless needed!\n return super.canHaveLeadingDecorator() || this.isAbstractClass();\n }\n\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement {\n // handles `<Component<<T>`\n if (this.match(tt.lt) || this.match(tt.bitShiftL)) {\n const typeArguments = this.tsTryParseAndCatch(() =>\n // @ts-expect-error: refine typings\n this.tsParseTypeArgumentsInExpression(),\n );\n // @ts-expect-error: refine typings\n if (typeArguments) node.typeParameters = typeArguments;\n }\n return super.jsxParseOpeningElementAfterName(node);\n }\n\n getGetterSetterExpectedParamCount(\n method: N.ObjectMethod | N.ClassMethod,\n ): number {\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\n return hasContextParam ? baseCount + 1 : baseCount;\n }\n\n parseCatchClauseParam(): N.Pattern {\n const param = super.parseCatchClauseParam();\n const type = this.tsTryParseTypeAnnotation();\n\n if (type) {\n param.typeAnnotation = type;\n this.resetEndLocation(param);\n }\n\n return param;\n }\n\n tsInAmbientContext<T>(cb: () => T): T {\n const oldIsAmbientContext = this.state.isAmbientContext;\n this.state.isAmbientContext = true;\n try {\n return cb();\n } finally {\n this.state.isAmbientContext = oldIsAmbientContext;\n }\n }\n\n parseClass<T extends N.Class>(\n node: Undone<T>,\n isStatement: boolean,\n optionalId?: boolean,\n ): T {\n const oldInAbstractClass = this.state.inAbstractClass;\n this.state.inAbstractClass = !!(node as any).abstract;\n try {\n return super.parseClass(node, isStatement, optionalId);\n } finally {\n this.state.inAbstractClass = oldInAbstractClass;\n }\n }\n\n tsParseAbstractDeclaration(\n node: any,\n decorators: N.Decorator[] | null,\n ): N.ClassDeclaration | N.TsInterfaceDeclaration | undefined | null {\n if (this.match(tt._class)) {\n node.abstract = true;\n return this.maybeTakeDecorators(\n decorators,\n this.parseClass<N.ClassDeclaration>(\n node as N.ClassDeclaration,\n /* isStatement */ true,\n /* optionalId */ false,\n ),\n );\n } else if (this.isContextual(tt._interface)) {\n // for invalid abstract interface\n\n // To avoid\n // abstract interface\n // Foo {}\n if (!this.hasFollowingLineBreak()) {\n node.abstract = true;\n this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, {\n at: node,\n });\n return this.tsParseInterfaceDeclaration(\n node as N.TsInterfaceDeclaration,\n );\n }\n } else {\n this.unexpected(null, tt._class);\n }\n }\n\n parseMethod<\n T extends N.ObjectMethod | N.ClassMethod | N.ClassPrivateMethod,\n >(\n node: Undone<T>,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: T[\"type\"],\n inClassScope?: boolean,\n ) {\n const method = super.parseMethod<T>(\n node,\n isGenerator,\n isAsync,\n isConstructor,\n allowDirectSuper,\n type,\n inClassScope,\n );\n // @ts-expect-error todo(flow->ts) property not defined for all types in union\n if (method.abstract) {\n const hasBody = this.hasPlugin(\"estree\")\n ? // @ts-expect-error estree typings\n !!method.value.body\n : !!method.body;\n if (hasBody) {\n const { key } = method;\n this.raise(TSErrors.AbstractMethodHasImplementation, {\n at: method,\n methodName:\n key.type === \"Identifier\" && !method.computed\n ? key.name\n : `[${this.input.slice(key.start, key.end)}]`,\n });\n }\n }\n return method;\n }\n\n tsParseTypeParameterName(): N.Identifier | string {\n const typeName: N.Identifier = this.parseIdentifier();\n return process.env.BABEL_8_BREAKING ? typeName : typeName.name;\n }\n\n shouldParseAsAmbientContext(): boolean {\n return !!this.getPluginOption(\"typescript\", \"dts\");\n }\n\n parse() {\n if (this.shouldParseAsAmbientContext()) {\n this.state.isAmbientContext = true;\n }\n return super.parse();\n }\n\n getExpression() {\n if (this.shouldParseAsAmbientContext()) {\n this.state.isAmbientContext = true;\n }\n return super.getExpression();\n }\n\n parseExportSpecifier(\n node: Undone<N.ExportSpecifier>,\n isString: boolean,\n isInTypeExport: boolean,\n isMaybeTypeOnly: boolean,\n ) {\n if (!isString && isMaybeTypeOnly) {\n this.parseTypeOnlyImportExportSpecifier(\n node,\n /* isImport */ false,\n isInTypeExport,\n );\n return this.finishNode<N.ExportSpecifier>(node, \"ExportSpecifier\");\n }\n node.exportKind = \"value\";\n return super.parseExportSpecifier(\n node,\n isString,\n isInTypeExport,\n isMaybeTypeOnly,\n );\n }\n\n parseImportSpecifier(\n specifier: Undone<N.ImportSpecifier>,\n importedIsString: boolean,\n isInTypeOnlyImport: boolean,\n isMaybeTypeOnly: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindingType: BindingTypes | undefined,\n ): N.ImportSpecifier {\n if (!importedIsString && isMaybeTypeOnly) {\n this.parseTypeOnlyImportExportSpecifier(\n specifier,\n /* isImport */ true,\n isInTypeOnlyImport,\n );\n return this.finishNode<N.ImportSpecifier>(specifier, \"ImportSpecifier\");\n }\n specifier.importKind = \"value\";\n return super.parseImportSpecifier(\n specifier,\n importedIsString,\n isInTypeOnlyImport,\n isMaybeTypeOnly,\n isInTypeOnlyImport\n ? BindingFlag.TYPE_TS_TYPE_IMPORT\n : BindingFlag.TYPE_TS_VALUE_IMPORT,\n );\n }\n\n parseTypeOnlyImportExportSpecifier(\n node: any,\n isImport: boolean,\n isInTypeOnlyImportExport: boolean,\n ): void {\n const leftOfAsKey = isImport ? \"imported\" : \"local\";\n const rightOfAsKey = isImport ? \"local\" : \"exported\";\n\n let leftOfAs = node[leftOfAsKey];\n let rightOfAs;\n\n let hasTypeSpecifier = false;\n let canParseAsKeyword = true;\n\n const loc = leftOfAs.loc.start;\n\n // https://github.com/microsoft/TypeScript/blob/fc4f9d83d5939047aa6bb2a43965c6e9bbfbc35b/src/compiler/parser.ts#L7411-L7456\n // import { type } from \"mod\"; - hasTypeSpecifier: false, leftOfAs: type\n // import { type as } from \"mod\"; - hasTypeSpecifier: true, leftOfAs: as\n // import { type as as } from \"mod\"; - hasTypeSpecifier: false, leftOfAs: type, rightOfAs: as\n // import { type as as as } from \"mod\"; - hasTypeSpecifier: true, leftOfAs: as, rightOfAs: as\n if (this.isContextual(tt._as)) {\n // { type as ...? }\n const firstAs = this.parseIdentifier();\n if (this.isContextual(tt._as)) {\n // { type as as ...? }\n const secondAs = this.parseIdentifier();\n if (tokenIsKeywordOrIdentifier(this.state.type)) {\n // { type as as something }\n hasTypeSpecifier = true;\n leftOfAs = firstAs;\n rightOfAs = isImport\n ? this.parseIdentifier()\n : this.parseModuleExportName();\n canParseAsKeyword = false;\n } else {\n // { type as as }\n rightOfAs = secondAs;\n canParseAsKeyword = false;\n }\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n // { type as something }\n canParseAsKeyword = false;\n rightOfAs = isImport\n ? this.parseIdentifier()\n : this.parseModuleExportName();\n } else {\n // { type as }\n hasTypeSpecifier = true;\n leftOfAs = firstAs;\n }\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n // { type something ...? }\n hasTypeSpecifier = true;\n if (isImport) {\n leftOfAs = this.parseIdentifier(true);\n if (!this.isContextual(tt._as)) {\n this.checkReservedWord(\n leftOfAs.name,\n leftOfAs.loc.start,\n true,\n true,\n );\n }\n } else {\n leftOfAs = this.parseModuleExportName();\n }\n }\n if (hasTypeSpecifier && isInTypeOnlyImportExport) {\n this.raise(\n isImport\n ? TSErrors.TypeModifierIsUsedInTypeImports\n : TSErrors.TypeModifierIsUsedInTypeExports,\n { at: loc },\n );\n }\n\n node[leftOfAsKey] = leftOfAs;\n node[rightOfAsKey] = rightOfAs;\n\n const kindKey = isImport ? \"importKind\" : \"exportKind\";\n node[kindKey] = hasTypeSpecifier ? \"type\" : \"value\";\n\n if (canParseAsKeyword && this.eatContextual(tt._as)) {\n node[rightOfAsKey] = isImport\n ? this.parseIdentifier()\n : this.parseModuleExportName();\n }\n if (!node[rightOfAsKey]) {\n node[rightOfAsKey] = cloneIdentifier(node[leftOfAsKey]);\n }\n if (isImport) {\n this.checkIdentifier(\n node[rightOfAsKey],\n hasTypeSpecifier\n ? BindingFlag.TYPE_TS_TYPE_IMPORT\n : BindingFlag.TYPE_TS_VALUE_IMPORT,\n );\n }\n }\n };\n\nfunction isPossiblyLiteralEnum(expression: N.Expression): boolean {\n if (expression.type !== \"MemberExpression\") return false;\n\n const { computed, property } = expression;\n\n if (\n computed &&\n property.type !== \"StringLiteral\" &&\n (property.type !== \"TemplateLiteral\" || property.expressions.length > 0)\n ) {\n return false;\n }\n\n return isUncomputedMemberExpressionChain(expression.object);\n}\n\n// If a const declaration has no type annotation and is initialized to\n// a string literal, numeric literal, or enum reference, then it is\n// allowed. In an ideal world, we'd check whether init was *actually* an\n// enum reference, but we allow anything that \"could be\" a literal enum\n// in `isPossiblyLiteralEnum` since we don't have all the information\n// that the typescript compiler has.\nfunction isValidAmbientConstInitializer(\n expression: N.Expression,\n estree: boolean,\n): boolean {\n const { type } = expression;\n if (expression.extra?.parenthesized) {\n return false;\n }\n if (estree) {\n if (type === \"Literal\") {\n const { value } = 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}\n\nfunction isNumber(expression: N.Expression, estree: boolean): boolean {\n if (estree) {\n return (\n expression.type === \"Literal\" &&\n (typeof expression.value === \"number\" || \"bigint\" in expression)\n );\n }\n return (\n expression.type === \"NumericLiteral\" || expression.type === \"BigIntLiteral\"\n );\n}\n\nfunction isNegativeNumber(expression: N.Expression, estree: boolean): boolean {\n if (expression.type === \"UnaryExpression\") {\n const { operator, argument } = expression as N.UnaryExpression;\n if (operator === \"-\" && isNumber(argument, estree)) {\n return true;\n }\n }\n return false;\n}\n\nfunction isUncomputedMemberExpressionChain(expression: N.Expression): boolean {\n if (expression.type === \"Identifier\") return true;\n if (expression.type !== \"MemberExpression\" || expression.computed) {\n return false;\n }\n\n return isUncomputedMemberExpressionChain(expression.object);\n}\n","import * as charCodes from \"charcodes\";\n\nimport { tokenLabelName, tt } from \"../tokenizer/types.ts\";\nimport type Parser from \"../parser/index.ts\";\nimport type * as N from \"../types.ts\";\nimport { ParseErrorEnum } from \"../parse-error.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { ExpressionErrors } from \"../parser/util.ts\";\nimport type { BindingTypes } from \"../util/scopeflags.ts\";\nimport type { Position } from \"../util/location.ts\";\n\ntype PossiblePlaceholders = {\n Identifier: N.Identifier;\n StringLiteral: N.StringLiteral;\n Expression: N.Expression;\n Statement: N.Statement;\n Declaration: N.Declaration;\n BlockStatement: N.BlockStatement;\n ClassBody: N.ClassBody;\n Pattern: N.Pattern;\n};\nexport type PlaceholderTypes = keyof PossiblePlaceholders;\n\ntype NodeOf<T extends keyof PossiblePlaceholders> = PossiblePlaceholders[T];\n// todo: when there is proper union type for Node\n// type NodeOf<T extends PlaceholderTypes> = Extract<N.Node, { type: T }>;\n\n// todo: Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T extends PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\n/* eslint sort-keys: \"error\" */\nconst PlaceholderErrors = ParseErrorEnum`placeholders`({\n ClassNameIsRequired: \"A class name is required.\",\n UnexpectedSpace: \"Unexpected space in placeholder.\",\n});\n\n/* eslint-disable sort-keys */\n\nexport default (superClass: typeof Parser) =>\n class PlaceholdersParserMixin extends superClass implements Parser {\n parsePlaceholder<T extends PlaceholderTypes>(\n expectedNode: T,\n ): /*?N.Placeholder<T>*/ MaybePlaceholder<T> | undefined | null {\n if (this.match(tt.placeholder)) {\n const node = this.startNode();\n this.next();\n this.assertNoSpace();\n\n // We can't use this.parseIdentifier because\n // we don't want nested placeholders.\n node.name = super.parseIdentifier(/* liberal */ true);\n\n this.assertNoSpace();\n this.expect(tt.placeholder);\n // @ts-expect-error placeholder typings\n return this.finishPlaceholder(node, expectedNode);\n }\n }\n\n finishPlaceholder<T extends PlaceholderTypes>(\n node: N.Node,\n expectedNode: T,\n ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n node.expectedNode = expectedNode;\n\n // @ts-expect-error todo(flow->ts)\n return isFinished ? node : this.finishNode(node, \"Placeholder\");\n }\n\n /* ============================================================ *\n * tokenizer/index.js *\n * ============================================================ */\n\n getTokenFromCode(code: number) {\n if (\n code === charCodes.percentSign &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n ) {\n this.finishOp(tt.placeholder, 2);\n } else {\n super.getTokenFromCode(code);\n }\n }\n\n /* ============================================================ *\n * parser/expression.js *\n * ============================================================ */\n\n parseExprAtom(\n refExpressionErrors?: ExpressionErrors | null,\n ): MaybePlaceholder<\"Expression\"> {\n return (\n this.parsePlaceholder(\"Expression\") ||\n super.parseExprAtom(refExpressionErrors)\n );\n }\n\n parseIdentifier(liberal?: boolean): MaybePlaceholder<\"Identifier\"> {\n // NOTE: This function only handles identifiers outside of\n // expressions and binding patterns, since they are already\n // handled by the parseExprAtom and parseBindingAtom functions.\n // This is needed, for example, to parse \"class %%NAME%% {}\".\n return (\n this.parsePlaceholder(\"Identifier\") || super.parseIdentifier(liberal)\n );\n }\n\n checkReservedWord(\n word: string,\n startLoc: Position,\n checkKeywords: boolean,\n isBinding: boolean,\n ) {\n // Sometimes we call #checkReservedWord(node.name), expecting\n // that node is an Identifier. If it is a Placeholder, name\n // will be undefined.\n if (word !== undefined) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n\n /* ============================================================ *\n * parser/lval.js *\n * ============================================================ */\n\n parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n return this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom();\n }\n\n isValidLVal(type: string, isParenthesized: boolean, binding: BindingTypes) {\n return (\n type === \"Placeholder\" ||\n super.isValidLVal(type, isParenthesized, binding)\n );\n }\n\n toAssignable(node: N.Node, isLHS: boolean): void {\n if (\n node &&\n node.type === \"Placeholder\" &&\n node.expectedNode === \"Expression\"\n ) {\n node.expectedNode = \"Pattern\";\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n\n /* ============================================================ *\n * parser/statement.js *\n * ============================================================ */\n\n chStartsBindingIdentifier(ch: number, pos: number): boolean {\n if (super.chStartsBindingIdentifier(ch, pos)) {\n return true;\n }\n\n // Accept \"let %%\" as the start of \"let %%placeholder%%\", as though the\n // placeholder were an identifier.\n const nextToken = this.lookahead();\n if (nextToken.type === tt.placeholder) {\n return true;\n }\n\n return false;\n }\n\n verifyBreakContinue(\n node: N.BreakStatement | N.ContinueStatement,\n isBreak: boolean,\n ) {\n // @ts-expect-error: node.label could be Placeholder\n if (node.label && node.label.type === \"Placeholder\") return;\n super.verifyBreakContinue(node, isBreak);\n }\n\n // @ts-expect-error Plugin will override parser interface\n parseExpressionStatement(\n node: MaybePlaceholder<\"Statement\">,\n expr: N.Expression,\n ): MaybePlaceholder<\"Statement\"> {\n if (expr.type !== \"Placeholder\" || expr.extra?.parenthesized) {\n // @ts-expect-error placeholder typings\n return super.parseExpressionStatement(node, expr);\n }\n\n if (this.match(tt.colon)) {\n // @ts-expect-error placeholder typings\n const stmt: N.LabeledStatement = node;\n stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n this.next();\n stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration();\n return this.finishNode(stmt, \"LabeledStatement\");\n }\n\n this.semicolon();\n node.name = expr.name;\n return this.finishPlaceholder(node, \"Statement\");\n }\n\n parseBlock(\n allowDirectives?: boolean,\n createNewLexicalScope?: boolean,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): MaybePlaceholder<\"BlockStatement\"> {\n return (\n this.parsePlaceholder(\"BlockStatement\") ||\n super.parseBlock(\n allowDirectives,\n createNewLexicalScope,\n afterBlockParse,\n )\n );\n }\n\n parseFunctionId(\n requireId?: boolean,\n ): MaybePlaceholder<\"Identifier\"> | undefined | null {\n return (\n this.parsePlaceholder(\"Identifier\") || super.parseFunctionId(requireId)\n );\n }\n // @ts-expect-error Plugin will override parser interface\n parseClass<T extends N.Class>(\n node: T,\n isStatement: /* T === ClassDeclaration */ boolean,\n optionalId?: boolean,\n ): T {\n const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n this.next();\n const oldStrict = this.state.strict;\n\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (placeholder) {\n if (\n this.match(tt._extends) ||\n this.match(tt.placeholder) ||\n this.match(tt.braceL)\n ) {\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, {\n at: this.state.startLoc,\n });\n }\n } else {\n this.parseClassId(node, isStatement, optionalId);\n }\n\n super.parseClassSuper(node);\n node.body =\n this.parsePlaceholder(\"ClassBody\") ||\n super.parseClassBody(!!node.superClass, oldStrict);\n return this.finishNode(node, type);\n }\n\n parseExport(node: N.Node, decorators: N.Decorator[] | null): N.AnyExport {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseExport(node, decorators);\n\n if (!this.isContextual(tt._from) && !this.match(tt.comma)) {\n // export %%DECL%%;\n node.specifiers = [];\n node.source = null;\n node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n return this.finishNode(node, \"ExportNamedDeclaration\");\n }\n\n // export %%NAME%% from \"foo\";\n this.expectPlugin(\"exportDefaultFrom\");\n const specifier = this.startNode();\n specifier.exported = placeholder;\n node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n return super.parseExport(node, decorators);\n }\n\n isExportDefaultSpecifier(): boolean {\n if (this.match(tt._default)) {\n const next = this.nextTokenStart();\n if (this.isUnparsedContextual(next, \"from\")) {\n if (\n this.input.startsWith(\n tokenLabelName(tt.placeholder),\n this.nextTokenStartSince(next + 4),\n )\n ) {\n return true;\n }\n }\n }\n return super.isExportDefaultSpecifier();\n }\n\n maybeParseExportDefaultSpecifier(\n node: Undone<\n | N.ExportDefaultDeclaration\n | N.ExportAllDeclaration\n | N.ExportNamedDeclaration\n >,\n maybeDefaultIdentifier: N.Identifier | null,\n ): node is Undone<N.ExportNamedDeclaration> {\n if ((node as N.ExportNamedDeclaration).specifiers?.length) {\n // \"export %%NAME%%\" has already been parsed by #parseExport.\n return true;\n }\n return super.maybeParseExportDefaultSpecifier(\n node,\n maybeDefaultIdentifier,\n );\n }\n\n checkExport(node: N.ExportNamedDeclaration): void {\n const { specifiers } = node;\n if (specifiers?.length) {\n node.specifiers = specifiers.filter(\n // @ts-expect-error placeholder typings\n node => node.exported.type === \"Placeholder\",\n );\n }\n super.checkExport(node);\n node.specifiers = specifiers;\n }\n\n parseImport(\n node: Undone<N.ImportDeclaration>,\n ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseImport(node);\n\n node.specifiers = [];\n\n if (!this.isContextual(tt._from) && !this.match(tt.comma)) {\n // import %%STRING%%;\n node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n // import %%DEFAULT%% ...\n const specifier =\n this.startNodeAtNode<N.ImportDefaultSpecifier>(placeholder);\n specifier.local = placeholder;\n node.specifiers.push(\n this.finishNode(specifier, \"ImportDefaultSpecifier\"),\n );\n\n if (this.eat(tt.comma)) {\n // import %%DEFAULT%%, * as ...\n const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n // import %%DEFAULT%%, { ...\n if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n }\n\n this.expectContextual(tt._from);\n node.source = this.parseImportSource();\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n // import ... from %%STRING%%;\n\n return (\n this.parsePlaceholder(\"StringLiteral\") || super.parseImportSource()\n );\n }\n\n // Throws if the current token and the prev one are separated by a space.\n assertNoSpace(): void {\n if (this.state.start > this.state.lastTokEndLoc.index) {\n this.raise(PlaceholderErrors.UnexpectedSpace, {\n at: this.state.lastTokEndLoc,\n });\n }\n }\n };\n","import type Parser from \"../parser/index.ts\";\nimport { tokenIsIdentifier, tt } from \"../tokenizer/types.ts\";\nimport type * as N from \"../types.ts\";\nimport type { ExpressionErrors } from \"../parser/util.ts\";\n\nexport default (superClass: typeof Parser) =>\n class V8IntrinsicMixin extends superClass implements Parser {\n parseV8Intrinsic(): N.Expression {\n if (this.match(tt.modulo)) {\n const v8IntrinsicStartLoc = this.state.startLoc;\n // let the `loc` of Identifier starts from `%`\n const node = this.startNode<N.Identifier>();\n this.next(); // eat '%'\n if (tokenIsIdentifier(this.state.type)) {\n const name = this.parseIdentifierName();\n const identifier = this.createIdentifier(node, name);\n // @ts-expect-error: avoid mutating AST types\n identifier.type = \"V8IntrinsicIdentifier\";\n if (this.match(tt.parenL)) {\n return identifier;\n }\n }\n this.unexpected(v8IntrinsicStartLoc);\n }\n }\n\n /* ============================================================ *\n * parser/expression.js *\n * ============================================================ */\n\n parseExprAtom(refExpressionErrors?: ExpressionErrors | null): N.Expression {\n return (\n this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors)\n );\n }\n };\n","import type Parser from \"./parser/index.ts\";\nimport type {\n ParserPluginWithOptions,\n PluginConfig,\n PluginOptions,\n} from \"./typings.ts\";\n\nexport type Plugin = PluginConfig;\n\nexport type PluginList = PluginConfig[];\n\nexport type MixinPlugin = (superClass: { new (...args: any): Parser }) => {\n new (...args: any): Parser;\n};\n\n// This function’s second parameter accepts either a string (plugin name) or an\n// array pair (plugin name and options object). If an options object is given,\n// then each value is non-recursively checked for identity with the actual\n// option value of each plugin in the first argument (which is an array of\n// plugin names or array pairs).\nexport function hasPlugin(\n plugins: PluginList,\n expectedConfig: PluginConfig,\n): boolean {\n // The expectedOptions object is by default an empty object if the given\n // expectedConfig argument does not give an options object (i.e., if it is a\n // string).\n const [expectedName, expectedOptions] =\n typeof expectedConfig === \"string\" ? [expectedConfig, {}] : expectedConfig;\n\n const expectedKeys = Object.keys(expectedOptions);\n\n const expectedOptionsIsEmpty = expectedKeys.length === 0;\n\n return plugins.some(p => {\n if (typeof p === \"string\") {\n return expectedOptionsIsEmpty && p === expectedName;\n } else {\n const [pluginName, pluginOptions] = p;\n if (pluginName !== expectedName) {\n return false;\n }\n for (const key of expectedKeys) {\n // @ts-expect-error key may not exist in plugin options\n if (pluginOptions[key] !== expectedOptions[key]) {\n return false;\n }\n }\n return true;\n }\n });\n}\n\nexport function getPluginOption<\n PluginName extends ParserPluginWithOptions[0],\n OptionName extends keyof PluginOptions<PluginName>,\n>(plugins: PluginList, name: PluginName, option: OptionName) {\n const plugin = plugins.find(plugin => {\n if (Array.isArray(plugin)) {\n return plugin[0] === name;\n } else {\n return plugin === name;\n }\n });\n\n if (plugin && Array.isArray(plugin) && plugin.length > 1) {\n return (plugin[1] as PluginOptions<PluginName>)[option];\n }\n\n return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"fsharp\", \"hack\", \"smart\"];\nconst TOPIC_TOKENS = [\"^^\", \"@@\", \"^\", \"%\", \"#\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n if (hasPlugin(plugins, \"decorators\")) {\n if (hasPlugin(plugins, \"decorators-legacy\")) {\n throw new Error(\n \"Cannot use the decorators and decorators-legacy plugin together\",\n );\n }\n\n const decoratorsBeforeExport = getPluginOption(\n plugins,\n \"decorators\",\n \"decoratorsBeforeExport\",\n );\n if (\n decoratorsBeforeExport != null &&\n typeof decoratorsBeforeExport !== \"boolean\"\n ) {\n throw new Error(\n \"'decoratorsBeforeExport' must be a boolean, if specified.\",\n );\n }\n\n const allowCallParenthesized = getPluginOption(\n plugins,\n \"decorators\",\n \"allowCallParenthesized\",\n );\n if (\n allowCallParenthesized != null &&\n typeof allowCallParenthesized !== \"boolean\"\n ) {\n throw new Error(\"'allowCallParenthesized' must be a boolean.\");\n }\n }\n\n if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n throw new Error(\"Cannot combine flow and typescript plugins.\");\n }\n\n if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n }\n\n if (hasPlugin(plugins, \"pipelineOperator\")) {\n const proposal = getPluginOption(plugins, \"pipelineOperator\", \"proposal\");\n\n if (!PIPELINE_PROPOSALS.includes(proposal)) {\n const proposalList = PIPELINE_PROPOSALS.map(p => `\"${p}\"`).join(\", \");\n throw new Error(\n `\"pipelineOperator\" requires \"proposal\" option whose value must be one of: ${proposalList}.`,\n );\n }\n\n const tupleSyntaxIsHash = hasPlugin(plugins, [\n \"recordAndTuple\",\n { syntaxType: \"hash\" },\n ]);\n\n if (proposal === \"hack\") {\n if (hasPlugin(plugins, \"placeholders\")) {\n throw new Error(\n \"Cannot combine placeholders plugin and Hack-style pipes.\",\n );\n }\n\n if (hasPlugin(plugins, \"v8intrinsic\")) {\n throw new Error(\n \"Cannot combine v8intrinsic plugin and Hack-style pipes.\",\n );\n }\n\n const topicToken = getPluginOption(\n plugins,\n \"pipelineOperator\",\n \"topicToken\",\n );\n\n if (!TOPIC_TOKENS.includes(topicToken)) {\n const tokenList = TOPIC_TOKENS.map(t => `\"${t}\"`).join(\", \");\n\n throw new Error(\n `\"pipelineOperator\" in \"proposal\": \"hack\" mode also requires a \"topicToken\" option whose value must be one of: ${tokenList}.`,\n );\n }\n\n if (topicToken === \"#\" && tupleSyntaxIsHash) {\n throw new Error(\n 'Plugin conflict between `[\"pipelineOperator\", { proposal: \"hack\", topicToken: \"#\" }]` and `[\"recordAndtuple\", { syntaxType: \"hash\"}]`.',\n );\n }\n } else if (proposal === \"smart\" && tupleSyntaxIsHash) {\n throw new Error(\n 'Plugin conflict between `[\"pipelineOperator\", { proposal: \"smart\" }]` and `[\"recordAndtuple\", { syntaxType: \"hash\"}]`.',\n );\n }\n }\n\n if (hasPlugin(plugins, \"moduleAttributes\")) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"`moduleAttributes` has been removed in Babel 8, please use `importAttributes` parser plugin, or `@babel/plugin-syntax-import-attributes`.\",\n );\n } else {\n if (\n hasPlugin(plugins, \"importAssertions\") ||\n hasPlugin(plugins, \"importAttributes\")\n ) {\n throw new Error(\n \"Cannot combine importAssertions, importAttributes and moduleAttributes plugins.\",\n );\n }\n const moduleAttributesVersionPluginOption = getPluginOption(\n plugins,\n \"moduleAttributes\",\n \"version\",\n );\n if (moduleAttributesVersionPluginOption !== \"may-2020\") {\n throw new Error(\n \"The 'moduleAttributes' plugin requires a 'version' option,\" +\n \" representing the last proposal update. Currently, the\" +\n \" only supported value is 'may-2020'.\",\n );\n }\n }\n }\n if (\n hasPlugin(plugins, \"importAssertions\") &&\n hasPlugin(plugins, \"importAttributes\")\n ) {\n throw new Error(\n \"Cannot combine importAssertions and importAttributes plugins.\",\n );\n }\n\n if (\n hasPlugin(plugins, \"recordAndTuple\") &&\n getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\") != null &&\n !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n )\n ) {\n throw new Error(\n \"The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: \" +\n RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n );\n }\n\n if (\n hasPlugin(plugins, \"asyncDoExpressions\") &&\n !hasPlugin(plugins, \"doExpressions\")\n ) {\n const error = new Error(\n \"'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.\",\n );\n // @ts-expect-error so @babel/core can provide better error message\n error.missingPlugins = \"doExpressions\";\n throw error;\n }\n\n if (\n hasPlugin(plugins, \"optionalChainingAssign\") &&\n getPluginOption(plugins, \"optionalChainingAssign\", \"version\") !== \"2023-07\"\n ) {\n throw new Error(\n \"The 'optionalChainingAssign' plugin requires a 'version' option,\" +\n \" representing the last proposal update. Currently, the\" +\n \" only supported value is '2023-07'.\",\n );\n }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree.ts\";\nimport flow from \"./plugins/flow/index.ts\";\nimport jsx from \"./plugins/jsx/index.ts\";\nimport typescript from \"./plugins/typescript/index.ts\";\nimport placeholders from \"./plugins/placeholders.ts\";\nimport v8intrinsic from \"./plugins/v8intrinsic.ts\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins = {\n estree,\n jsx,\n flow,\n typescript,\n v8intrinsic,\n placeholders,\n};\n\nexport const mixinPluginNames = Object.keys(mixinPlugins) as ReadonlyArray<\n \"estree\" | \"jsx\" | \"flow\" | \"typescript\" | \"v8intrinsic\" | \"placeholders\"\n>;\n","import type { PluginList } from \"./plugin-utils.ts\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n sourceType: SourceType;\n sourceFilename?: string;\n startColumn: number;\n startLine: number;\n allowAwaitOutsideFunction: boolean;\n allowReturnOutsideFunction: boolean;\n allowNewTargetOutsideFunction: boolean;\n allowImportExportEverywhere: boolean;\n allowSuperOutsideMethod: boolean;\n allowUndeclaredExports: boolean;\n plugins: PluginList;\n strictMode: boolean | undefined | null;\n ranges: boolean;\n tokens: boolean;\n createImportExpressions: boolean;\n createParenthesizedExpressions: boolean;\n errorRecovery: boolean;\n attachComment: boolean;\n annexB: boolean;\n};\n\nexport const defaultOptions: Options = {\n // Source type (\"script\" or \"module\") for different semantics\n sourceType: \"script\",\n // Source filename.\n sourceFilename: undefined,\n // Column (0-based) from which to start counting source. Useful for\n // integration with other tools.\n startColumn: 0,\n // Line (1-based) from which to start counting source. Useful for\n // integration with other tools.\n startLine: 1,\n // When enabled, await at the top level is not considered an\n // error.\n allowAwaitOutsideFunction: false,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, new.target outside a function or class is not\n // considered an error.\n allowNewTargetOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program.\n allowImportExportEverywhere: false,\n // TODO\n allowSuperOutsideMethod: false,\n // When enabled, export statements can reference undeclared variables.\n allowUndeclaredExports: false,\n // An array of plugins to enable\n plugins: [],\n // TODO\n strictMode: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // Adds all parsed tokens to a `tokens` property on the `File` node\n tokens: false,\n // Whether to create ImportExpression AST nodes (if false\n // `import(foo)` will be parsed as CallExpression(Import, [Identifier(foo)])\n createImportExpressions: false,\n // Whether to create ParenthesizedExpression AST nodes (if false\n // the parser sets extra.parenthesized on the expression nodes instead).\n createParenthesizedExpressions: false,\n // When enabled, errors are attached to the AST instead of being directly thrown.\n // Some errors will still throw, because @babel/parser can't always recover.\n errorRecovery: false,\n // When enabled, comments will be attached to adjacent AST nodes as one of\n // `leadingComments`, `trailingComments` and `innerComments`. The comment attachment\n // is vital to preserve comments after transform. If you don't print AST back,\n // consider set this option to `false` for performance\n attachComment: true,\n // When enabled, the parser will support Annex B syntax.\n // https://tc39.es/ecma262/#sec-additional-ecmascript-features-for-web-browsers\n annexB: true,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts?: Options | null): Options {\n if (opts == null) {\n return { ...defaultOptions };\n }\n if (opts.annexB != null && opts.annexB !== false) {\n throw new Error(\"The `annexB` option can only be set to `false`.\");\n }\n\n const options: any = {};\n for (const key of Object.keys(defaultOptions) as (keyof Options)[]) {\n options[key] = opts[key] ?? defaultOptions[key];\n }\n return options;\n}\n","// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport {\n tokenCanStartExpression,\n tokenIsAssignment,\n tokenIsIdentifier,\n tokenIsKeywordOrIdentifier,\n tokenIsOperator,\n tokenIsPostfix,\n tokenIsPrefix,\n tokenIsRightAssociative,\n tokenIsTemplate,\n tokenKeywordOrIdentifierIsKeyword,\n tokenLabelName,\n tokenOperatorPrecedence,\n tt,\n type TokenType,\n} from \"../tokenizer/types.ts\";\nimport type * as N from \"../types.ts\";\nimport LValParser from \"./lval.ts\";\nimport {\n isKeyword,\n isReservedWord,\n isStrictReservedWord,\n isStrictBindReservedWord,\n isIdentifierStart,\n canBeReservedWord,\n} from \"../util/identifier.ts\";\nimport {\n type Position,\n createPositionWithColumnOffset,\n} from \"../util/location.ts\";\nimport * as charCodes from \"charcodes\";\nimport { ScopeFlag, BindingFlag } from \"../util/scopeflags.ts\";\nimport { ExpressionErrors } from \"./util.ts\";\nimport {\n PARAM_AWAIT,\n PARAM_IN,\n PARAM_RETURN,\n functionFlags,\n} from \"../util/production-parameter.ts\";\nimport {\n newArrowHeadScope,\n newAsyncArrowScope,\n newExpressionScope,\n} from \"../util/expression-scope.ts\";\nimport { Errors, type ParseError } from \"../parse-error.ts\";\nimport { UnparenthesizedPipeBodyDescriptions } from \"../parse-error/pipeline-operator-errors.ts\";\nimport { setInnerComments } from \"./comments.ts\";\nimport { cloneIdentifier, type Undone } from \"./node.ts\";\nimport type Parser from \"./index.ts\";\n\nimport type { SourceType } from \"../options.ts\";\n\nexport default abstract class ExpressionParser extends LValParser {\n // Forward-declaration: defined in statement.js\n abstract parseBlock(\n allowDirectives?: boolean,\n createNewLexicalScope?: boolean,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): N.BlockStatement;\n abstract parseClass(\n node: N.Class,\n isStatement: boolean,\n optionalId?: boolean,\n ): N.Class;\n abstract parseDecorators(allowExport?: boolean): void;\n abstract parseFunction<T extends N.NormalFunction>(\n node: T,\n statement?: number,\n allowExpressionBody?: boolean,\n isAsync?: boolean,\n ): T;\n abstract parseFunctionParams(node: N.Function, isConstructor?: boolean): void;\n abstract parseBlockOrModuleBlockBody(\n body: N.Statement[],\n directives: N.Directive[] | null | undefined,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void;\n abstract parseProgram(\n program: N.Program,\n end: TokenType,\n sourceType?: SourceType,\n ): N.Program;\n\n // For object literal, check if property __proto__ has been used more than once.\n // If the expression is a destructuring assignment, then __proto__ may appear\n // multiple times. Otherwise, __proto__ is a duplicated key.\n\n // For record expression, check if property __proto__ exists\n\n checkProto(\n prop: N.ObjectMember | N.SpreadElement,\n isRecord: boolean | undefined | null,\n protoRef: {\n used: boolean;\n },\n refExpressionErrors?: ExpressionErrors | null,\n ): void {\n if (\n prop.type === \"SpreadElement\" ||\n this.isObjectMethod(prop) ||\n prop.computed ||\n // @ts-expect-error prop must be an ObjectProperty\n prop.shorthand\n ) {\n return;\n }\n\n const key = prop.key;\n // It is either an Identifier or a String/NumericLiteral\n const name = key.type === \"Identifier\" ? key.name : key.value;\n\n if (name === \"__proto__\") {\n if (isRecord) {\n this.raise(Errors.RecordNoProto, { at: key });\n return;\n }\n if (protoRef.used) {\n if (refExpressionErrors) {\n // Store the first redefinition's position, otherwise ignore because\n // we are parsing ambiguous pattern\n if (refExpressionErrors.doubleProtoLoc === null) {\n refExpressionErrors.doubleProtoLoc = key.loc.start;\n }\n } else {\n this.raise(Errors.DuplicateProto, { at: key });\n }\n }\n\n protoRef.used = true;\n }\n }\n\n shouldExitDescending(expr: N.Expression, potentialArrowAt: number): boolean {\n return (\n expr.type === \"ArrowFunctionExpression\" && expr.start === potentialArrowAt\n );\n }\n\n // Convenience method to parse an Expression only\n getExpression(this: Parser): N.Expression & N.ParserOutput {\n this.enterInitialScopes();\n this.nextToken();\n const expr = this.parseExpression();\n if (!this.match(tt.eof)) {\n this.unexpected();\n }\n // Unlike parseTopLevel, we need to drain remaining commentStacks\n // because the top level node is _not_ Program.\n this.finalizeRemainingComments();\n expr.comments = this.state.comments;\n expr.errors = this.state.errors;\n if (this.options.tokens) {\n expr.tokens = this.tokens;\n }\n // @ts-expect-error fixme: refine types\n return expr;\n }\n\n // ### Expression parsing\n\n // These nest, from the most general expression type at the top to\n // 'atomic', nondivisible expression types at the bottom. Most of\n // the functions will simply let the function (s) below them parse,\n // and, *if* the syntactic construct they handle is present, wrap\n // the AST node that the inner parser gave them in another node.\n\n // Parse a full expression.\n // - `disallowIn`\n // is used to forbid the `in` operator (in for loops initialization expressions)\n // When `disallowIn` is true, the production parameter [In] is not present.\n\n // - `refExpressionErrors `\n // provides reference for storing '=' operator inside shorthand\n // property assignment in contexts where both object expression\n // and object pattern might appear (so it's possible to raise\n // delayed syntax error at correct position).\n\n parseExpression(\n this: Parser,\n disallowIn?: boolean,\n refExpressionErrors?: ExpressionErrors,\n ): N.Expression {\n if (disallowIn) {\n return this.disallowInAnd(() =>\n this.parseExpressionBase(refExpressionErrors),\n );\n }\n return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors));\n }\n\n // https://tc39.es/ecma262/#prod-Expression\n parseExpressionBase(\n this: Parser,\n refExpressionErrors?: ExpressionErrors,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const expr = this.parseMaybeAssign(refExpressionErrors);\n if (this.match(tt.comma)) {\n const node = this.startNodeAt(startLoc);\n node.expressions = [expr];\n while (this.eat(tt.comma)) {\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\n // Set [~In] parameter for assignment expression\n parseMaybeAssignDisallowIn(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ) {\n return this.disallowInAnd(() =>\n this.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n );\n }\n\n // Set [+In] parameter for assignment expression\n parseMaybeAssignAllowIn(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ) {\n return this.allowInAnd(() =>\n this.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n );\n }\n\n // This method is only used by\n // the typescript and flow plugins.\n setOptionalParametersError(\n refExpressionErrors: ExpressionErrors,\n resultError?: ParseError<any>,\n ) {\n refExpressionErrors.optionalParametersLoc =\n resultError?.loc ?? this.state.startLoc;\n }\n\n // Parse an assignment expression. This includes applications of\n // operators like `+=`.\n // https://tc39.es/ecma262/#prod-AssignmentExpression\n parseMaybeAssign(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n if (this.isContextual(tt._yield)) {\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\n let ownExpressionErrors;\n if (refExpressionErrors) {\n ownExpressionErrors = false;\n } else {\n refExpressionErrors = new ExpressionErrors();\n ownExpressionErrors = true;\n }\n const { type } = this.state;\n\n if (type === tt.parenL || tokenIsIdentifier(type)) {\n this.state.potentialArrowAt = this.state.start;\n }\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<N.AssignmentExpression>(startLoc);\n const operator = this.state.value;\n node.operator = operator;\n\n if (this.match(tt.eq)) {\n this.toAssignable(left, /* isLHS */ true);\n node.left = left;\n\n const startIndex = startLoc.index;\n if (\n refExpressionErrors.doubleProtoLoc != null &&\n refExpressionErrors.doubleProtoLoc.index >= startIndex\n ) {\n refExpressionErrors.doubleProtoLoc = null; // reset because double __proto__ is valid in assignment expression\n }\n if (\n refExpressionErrors.shorthandAssignLoc != null &&\n refExpressionErrors.shorthandAssignLoc.index >= startIndex\n ) {\n refExpressionErrors.shorthandAssignLoc = null; // reset because shorthand default was used correctly\n }\n if (\n refExpressionErrors.privateKeyLoc != null &&\n refExpressionErrors.privateKeyLoc.index >= startIndex\n ) {\n this.checkDestructuringPrivate(refExpressionErrors);\n refExpressionErrors.privateKeyLoc = null; // reset because `({ #x: x })` is an assignable pattern\n }\n } else {\n node.left = left;\n }\n\n this.next();\n node.right = this.parseMaybeAssign();\n this.checkLVal(left, {\n in: this.finishNode(node, \"AssignmentExpression\"),\n });\n // @ts-expect-error todo(flow->ts) improve node types\n return node;\n } else if (ownExpressionErrors) {\n this.checkExpressionErrors(refExpressionErrors, true);\n }\n\n return left;\n }\n\n // Parse a ternary conditional (`?:`) operator.\n // https://tc39.es/ecma262/#prod-ConditionalExpression\n\n parseMaybeConditional(\n this: Parser,\n refExpressionErrors: ExpressionErrors,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseExprOps(refExpressionErrors);\n\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n\n return this.parseConditional(expr, startLoc, refExpressionErrors);\n }\n\n parseConditional(\n this: Parser,\n expr: N.Expression,\n startLoc: Position,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n if (this.eat(tt.question)) {\n const node = this.startNodeAt(startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssignAllowIn();\n this.expect(tt.colon);\n node.alternate = this.parseMaybeAssign();\n return this.finishNode(node, \"ConditionalExpression\");\n }\n return expr;\n }\n\n parseMaybeUnaryOrPrivate(\n this: Parser,\n refExpressionErrors?: ExpressionErrors,\n ): N.Expression | N.PrivateName {\n return this.match(tt.privateName)\n ? this.parsePrivateName()\n : this.parseMaybeUnary(refExpressionErrors);\n }\n\n // Start the precedence parser.\n // https://tc39.es/ecma262/#prod-ShortCircuitExpression\n\n parseExprOps(\n this: Parser,\n refExpressionErrors: ExpressionErrors,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors);\n\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n\n return this.parseExprOp(expr, startLoc, -1);\n }\n\n // Parse binary operators with the operator precedence parsing\n // algorithm. `left` is the left-hand side of the operator.\n // `minPrec` provides context that allows the function to stop and\n // defer further parser to one of its callers when it encounters an\n // operator that has a lower precedence than the set it is parsing.\n\n parseExprOp(\n this: Parser,\n left: N.Expression | N.PrivateName,\n leftStartLoc: Position,\n minPrec: number,\n ): N.Expression {\n if (this.isPrivateName(left)) {\n // https://tc39.es/ecma262/#prod-RelationalExpression\n // RelationalExpression [In, Yield, Await]\n // [+In] PrivateIdentifier in ShiftExpression[?Yield, ?Await]\n\n const value = this.getPrivateNameSV(left);\n\n if (\n minPrec >= tokenOperatorPrecedence(tt._in) ||\n !this.prodParam.hasIn ||\n !this.match(tt._in)\n ) {\n this.raise(Errors.PrivateInExpectedIn, {\n at: left,\n identifierName: value,\n });\n }\n\n this.classScope.usePrivateName(value, left.loc.start);\n }\n\n const op = this.state.type;\n if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(tt._in))) {\n let prec = tokenOperatorPrecedence(op);\n if (prec > minPrec) {\n if (op === tt.pipeline) {\n this.expectPlugin(\"pipelineOperator\");\n if (this.state.inFSharpPipelineDirectBody) {\n return left;\n }\n this.checkPipelineAtInfixOperator(left, leftStartLoc);\n }\n const node = this.startNodeAt<N.LogicalExpression | N.BinaryExpression>(\n leftStartLoc,\n );\n node.left = left;\n node.operator = this.state.value;\n\n const logical = op === tt.logicalOR || op === tt.logicalAND;\n const coalesce = op === tt.nullishCoalescing;\n\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = tokenOperatorPrecedence(tt.logicalAND);\n }\n\n this.next();\n\n if (\n op === tt.pipeline &&\n this.hasPlugin([\"pipelineOperator\", { proposal: \"minimal\" }])\n ) {\n if (this.state.type === tt._await && this.prodParam.hasAwait) {\n throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, {\n at: this.state.startLoc,\n });\n }\n }\n\n node.right = this.parseExprOpRightExpr(op, prec);\n const finishedNode = this.finishNode(\n node,\n logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\",\n );\n /* this check is for all ?? operators\n * a ?? b && c for this example\n * when op is coalesce and nextOp is logical (&&), throw at the pos of nextOp that it can not be mixed.\n * Symmetrically it also throws when op is logical and nextOp is coalesce\n */\n const nextOp = this.state.type;\n if (\n (coalesce && (nextOp === tt.logicalOR || nextOp === tt.logicalAND)) ||\n (logical && nextOp === tt.nullishCoalescing)\n ) {\n throw this.raise(Errors.MixingCoalesceWithLogical, {\n at: this.state.startLoc,\n });\n }\n\n return this.parseExprOp(finishedNode, leftStartLoc, minPrec);\n }\n }\n return left;\n }\n\n // Helper function for `parseExprOp`. Parse the right-hand side of binary-\n // operator expressions, then apply any operator-specific functions.\n\n parseExprOpRightExpr(\n this: Parser,\n op: TokenType,\n prec: number,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n switch (op) {\n case tt.pipeline:\n switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n case \"hack\":\n return this.withTopicBindingContext(() => {\n return this.parseHackPipeBody();\n });\n\n case \"smart\":\n return this.withTopicBindingContext(() => {\n if (this.prodParam.hasYield && this.isContextual(tt._yield)) {\n throw this.raise(Errors.PipeBodyIsTighter, {\n at: this.state.startLoc,\n });\n }\n return this.parseSmartPipelineBodyInStyle(\n this.parseExprOpBaseRightExpr(op, prec),\n startLoc,\n );\n });\n\n case \"fsharp\":\n return this.withSoloAwaitPermittingContext(() => {\n return this.parseFSharpPipelineBody(prec);\n });\n }\n\n // Falls through.\n default:\n return this.parseExprOpBaseRightExpr(op, prec);\n }\n }\n\n // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of\n // binary-operator expressions without applying any operator-specific functions.\n\n parseExprOpBaseRightExpr(\n this: Parser,\n op: TokenType,\n prec: number,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n\n return this.parseExprOp(\n this.parseMaybeUnaryOrPrivate(),\n startLoc,\n tokenIsRightAssociative(op) ? prec - 1 : prec,\n );\n }\n\n parseHackPipeBody(this: Parser): N.Expression {\n const { startLoc } = this.state;\n const body = this.parseMaybeAssign();\n const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(\n // @ts-expect-error TS2345: Argument of type 'string' is not assignable to parameter of type '\"ArrowFunctionExpression\" | \"YieldExpression\" | \"AssignmentExpression\" | \"ConditionalExpression\"'.\n body.type,\n );\n\n // TODO: Check how to handle type casts in Flow and TS once they are supported\n if (requiredParentheses && !body.extra?.parenthesized) {\n this.raise(Errors.PipeUnparenthesizedBody, {\n at: startLoc,\n // @ts-expect-error TS2322: Type 'string' is not assignable to type '\"AssignmentExpression\" | \"ArrowFunctionExpression\" | \"ConditionalExpression\" | \"YieldExpression\"'.\n type: body.type,\n });\n }\n if (!this.topicReferenceWasUsedInCurrentContext()) {\n // A Hack pipe body must use the topic reference at least once.\n this.raise(Errors.PipeTopicUnused, { at: startLoc });\n }\n\n return body;\n }\n\n checkExponentialAfterUnary(\n node: N.AwaitExpression | Undone<N.UnaryExpression>,\n ) {\n if (this.match(tt.exponent)) {\n this.raise(Errors.UnexpectedTokenUnaryExponentiation, {\n at: node.argument,\n });\n }\n }\n\n // Parse unary operators, both prefix and postfix.\n // https://tc39.es/ecma262/#prod-UnaryExpression\n parseMaybeUnary(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n sawUnary?: boolean,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const isAwait = this.isContextual(tt._await);\n\n if (isAwait && this.isAwaitAllowed()) {\n this.next();\n const expr = this.parseAwait(startLoc);\n if (!sawUnary) this.checkExponentialAfterUnary(expr);\n return expr;\n }\n const update = this.match(tt.incDec);\n const node = this.startNode<N.UnaryExpression | N.UpdateExpression>();\n if (tokenIsPrefix(this.state.type)) {\n node.operator = this.state.value;\n node.prefix = true;\n\n if (this.match(tt._throw)) {\n this.expectPlugin(\"throwExpressions\");\n }\n const isDelete = this.match(tt._delete);\n this.next();\n\n node.argument = this.parseMaybeUnary(null, true);\n\n this.checkExpressionErrors(refExpressionErrors, true);\n\n if (this.state.strict && isDelete) {\n const arg = node.argument;\n\n if (arg.type === \"Identifier\") {\n this.raise(Errors.StrictDelete, { at: node });\n } else if (this.hasPropertyAsPrivateName(arg)) {\n this.raise(Errors.DeletePrivateField, { at: node });\n }\n }\n\n if (!update) {\n if (!sawUnary) {\n this.checkExponentialAfterUnary(node as Undone<N.UnaryExpression>);\n }\n return this.finishNode(node, \"UnaryExpression\");\n }\n }\n\n const expr = this.parseUpdate(\n // @ts-expect-error using \"Undone\" node as \"done\"\n node,\n update,\n refExpressionErrors,\n );\n\n if (isAwait) {\n const { type } = this.state;\n const startsExpr = this.hasPlugin(\"v8intrinsic\")\n ? tokenCanStartExpression(type)\n : tokenCanStartExpression(type) && !this.match(tt.modulo);\n if (startsExpr && !this.isAmbiguousAwait()) {\n this.raiseOverwrite(Errors.AwaitNotInAsyncContext, { at: startLoc });\n return this.parseAwait(startLoc);\n }\n }\n\n return expr;\n }\n\n // https://tc39.es/ecma262/#prod-UpdateExpression\n parseUpdate(\n this: Parser,\n node: N.Expression,\n update: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n if (update) {\n // @ts-expect-error Type 'Node' is missing the following properties from type 'Undone<UpdateExpression>': prefix, operator, argument\n const updateExpressionNode = node as Undone<N.UpdateExpression>;\n this.checkLVal(updateExpressionNode.argument, {\n in: this.finishNode(updateExpressionNode, \"UpdateExpression\"),\n });\n return node;\n }\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<N.UpdateExpression>(startLoc);\n node.operator = this.state.value;\n node.prefix = false;\n node.argument = expr;\n this.next();\n this.checkLVal(expr, {\n in: (expr = this.finishNode(node, \"UpdateExpression\")),\n });\n }\n return expr;\n }\n\n // Parse call, dot, and `[]`-subscript expressions.\n // https://tc39.es/ecma262/#prod-LeftHandSideExpression\n parseExprSubscripts(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseExprAtom(refExpressionErrors);\n\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n\n return this.parseSubscripts(expr, startLoc);\n }\n\n parseSubscripts(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n noCalls?: boolean | null,\n ): N.Expression {\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\n // After parsing a subscript, this isn't \"async\" for sure.\n state.maybeAsyncArrow = false;\n } while (!state.stop);\n return base;\n }\n\n /**\n * @param state Set 'state.stop = true' to indicate that we should stop parsing subscripts.\n * state.optionalChainMember to indicate that the member is currently in OptionalChain\n */\n parseSubscript(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n noCalls: boolean | undefined | null,\n state: N.ParseSubscriptState,\n ): N.Expression {\n const { type } = this.state;\n if (!noCalls && type === tt.doubleColon) {\n return this.parseBind(base, startLoc, noCalls, state);\n } else if (tokenIsTemplate(type)) {\n return this.parseTaggedTemplateExpression(base, startLoc, state);\n }\n\n let optional = false;\n\n if (type === tt.questionDot) {\n if (noCalls) {\n this.raise(Errors.OptionalChainingNoNew, {\n at: this.state.startLoc,\n });\n if (this.lookaheadCharCode() === charCodes.leftParenthesis) {\n // stop at `?.` when parsing `new a?.()`\n state.stop = true;\n return base;\n }\n }\n state.optionalChainMember = optional = true;\n this.next();\n }\n\n if (!noCalls && this.match(tt.parenL)) {\n return this.parseCoverCallAndAsyncArrowHead(\n base,\n startLoc,\n state,\n optional,\n );\n } else {\n const computed = this.eat(tt.bracketL);\n if (computed || optional || this.eat(tt.dot)) {\n return this.parseMember(base, startLoc, state, computed, optional);\n } else {\n state.stop = true;\n return base;\n }\n }\n }\n\n // base[?Yield, ?Await] [ Expression[+In, ?Yield, ?Await] ]\n // base[?Yield, ?Await] . IdentifierName\n // base[?Yield, ?Await] . PrivateIdentifier\n // where `base` is one of CallExpression, MemberExpression and OptionalChain\n parseMember(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n state: N.ParseSubscriptState,\n computed: boolean,\n optional: boolean,\n ): N.OptionalMemberExpression | N.MemberExpression {\n const node = this.startNodeAt<\n N.OptionalMemberExpression | N.MemberExpression\n >(startLoc);\n node.object = base;\n node.computed = computed;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(tt.bracketR);\n } else if (this.match(tt.privateName)) {\n if (base.type === \"Super\") {\n this.raise(Errors.SuperPrivateField, { at: 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\n if (state.optionalChainMember) {\n (node as N.OptionalMemberExpression).optional = optional;\n return this.finishNode(node, \"OptionalMemberExpression\");\n } else {\n return this.finishNode(node, \"MemberExpression\");\n }\n }\n\n // https://github.com/tc39/proposal-bind-operator#syntax\n parseBind(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n noCalls: boolean | undefined | null,\n state: N.ParseSubscriptState,\n ): N.Expression {\n const node = this.startNodeAt(startLoc);\n node.object = base;\n this.next(); // eat '::'\n node.callee = this.parseNoCallExpr();\n state.stop = true;\n return this.parseSubscripts(\n this.finishNode(node, \"BindExpression\"),\n startLoc,\n noCalls,\n );\n }\n\n // https://tc39.es/ecma262/#prod-CoverCallExpressionAndAsyncArrowHead\n // CoverCallExpressionAndAsyncArrowHead\n // CallExpression[?Yield, ?Await] Arguments[?Yield, ?Await]\n // OptionalChain[?Yield, ?Await] Arguments[?Yield, ?Await]\n parseCoverCallAndAsyncArrowHead(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n state: N.ParseSubscriptState,\n optional: boolean,\n ): N.Expression {\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n let refExpressionErrors: ExpressionErrors | null = null;\n\n this.state.maybeInArrowParameters = true;\n this.next(); // eat `(`\n\n const node = this.startNodeAt<N.CallExpression | N.OptionalCallExpression>(\n startLoc,\n );\n node.callee = base;\n const { maybeAsyncArrow, optionalChainMember } = state;\n\n if (maybeAsyncArrow) {\n this.expressionScope.enter(newAsyncArrowScope());\n refExpressionErrors = new ExpressionErrors();\n }\n\n if (optionalChainMember) {\n // @ts-expect-error when optionalChainMember is true, node must be an optional call\n node.optional = optional;\n }\n\n if (optional) {\n node.arguments = this.parseCallExpressionArguments(tt.parenR);\n } else {\n node.arguments = this.parseCallExpressionArguments(\n tt.parenR,\n base.type === \"Import\",\n base.type !== \"Super\",\n // @ts-expect-error todo(flow->ts)\n node,\n refExpressionErrors,\n );\n }\n let finishedNode:\n | N.CallExpression\n | N.OptionalCallExpression\n | N.ArrowFunctionExpression = this.finishCallExpression(\n node,\n optionalChainMember,\n );\n\n if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n /*:: invariant(refExpressionErrors != null) */\n state.stop = true;\n this.checkDestructuringPrivate(refExpressionErrors);\n this.expressionScope.validateAsPattern();\n this.expressionScope.exit();\n finishedNode = this.parseAsyncArrowFromCallExpression(\n this.startNodeAt<N.ArrowFunctionExpression>(startLoc),\n finishedNode as N.CallExpression,\n );\n } else {\n if (maybeAsyncArrow) {\n this.checkExpressionErrors(refExpressionErrors, true);\n this.expressionScope.exit();\n }\n this.toReferencedArguments(finishedNode);\n }\n\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n return finishedNode;\n }\n\n toReferencedArguments(\n node: N.CallExpression | N.OptionalCallExpression,\n isParenthesizedExpr?: boolean,\n ) {\n this.toReferencedListDeep(node.arguments, isParenthesizedExpr);\n }\n\n // MemberExpression [?Yield, ?Await] TemplateLiteral[?Yield, ?Await, +Tagged]\n // CallExpression [?Yield, ?Await] TemplateLiteral[?Yield, ?Await, +Tagged]\n parseTaggedTemplateExpression(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n state: N.ParseSubscriptState,\n ): N.TaggedTemplateExpression {\n const node = this.startNodeAt<N.TaggedTemplateExpression>(startLoc);\n node.tag = base;\n node.quasi = this.parseTemplate(true);\n if (state.optionalChainMember) {\n this.raise(Errors.OptionalChainingNoTemplate, { at: startLoc });\n }\n return this.finishNode(node, \"TaggedTemplateExpression\");\n }\n\n atPossibleAsyncArrow(base: N.Expression): boolean {\n return (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.state.lastTokEndLoc.index === base.end &&\n !this.canInsertSemicolon() &&\n // check there are no escape sequences, such as \\u{61}sync\n base.end - base.start === 5 &&\n base.start === this.state.potentialArrowAt\n );\n }\n\n expectImportAttributesPlugin() {\n if (!this.hasPlugin(\"importAssertions\")) {\n this.expectPlugin(\"importAttributes\");\n }\n }\n\n finishCallExpression<T extends N.CallExpression | N.OptionalCallExpression>(\n node: Undone<T>,\n optional: boolean,\n ): T {\n if (node.callee.type === \"Import\") {\n if (node.arguments.length === 2) {\n if (process.env.BABEL_8_BREAKING) {\n this.expectImportAttributesPlugin();\n } else {\n if (!this.hasPlugin(\"moduleAttributes\")) {\n this.expectImportAttributesPlugin();\n }\n }\n }\n if (node.arguments.length === 0 || node.arguments.length > 2) {\n this.raise(Errors.ImportCallArity, {\n at: node,\n maxArgumentCount:\n this.hasPlugin(\"importAttributes\") ||\n this.hasPlugin(\"importAssertions\") ||\n this.hasPlugin(\"moduleAttributes\")\n ? 2\n : 1,\n });\n } else {\n for (const arg of node.arguments) {\n if (arg.type === \"SpreadElement\") {\n this.raise(Errors.ImportCallSpreadArgument, { at: arg });\n }\n }\n }\n }\n return this.finishNode(\n node,\n optional ? \"OptionalCallExpression\" : \"CallExpression\",\n );\n }\n\n parseCallExpressionArguments(\n this: Parser,\n close: TokenType,\n dynamicImport?: boolean,\n allowPlaceholder?: boolean,\n nodeForExtra?: N.Node | null,\n refExpressionErrors?: ExpressionErrors | null,\n ): Array<N.Expression | undefined | null> {\n const elts: N.Expression[] = [];\n let first = true;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n if (this.match(close)) {\n if (\n dynamicImport &&\n !this.hasPlugin(\"importAttributes\") &&\n !this.hasPlugin(\"importAssertions\") &&\n !this.hasPlugin(\"moduleAttributes\")\n ) {\n this.raise(Errors.ImportCallArgumentTrailingComma, {\n at: this.state.lastTokStartLoc,\n });\n }\n if (nodeForExtra) {\n this.addTrailingCommaExtraToNode(nodeForExtra);\n }\n this.next();\n break;\n }\n }\n\n elts.push(\n this.parseExprListItem(false, refExpressionErrors, allowPlaceholder),\n );\n }\n\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n return elts;\n }\n\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.arrow) && !this.canInsertSemicolon();\n }\n\n parseAsyncArrowFromCallExpression(\n this: Parser,\n node: Undone<N.ArrowFunctionExpression>,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n this.resetPreviousNodeTrailingComments(call);\n this.expect(tt.arrow);\n this.parseArrowExpression(\n node,\n call.arguments,\n true,\n call.extra?.trailingCommaLoc,\n );\n // mark inner comments of `async()` as inner comments of `async () =>`\n if (call.innerComments) {\n setInnerComments(node, call.innerComments);\n }\n // mark trailing comments of `async` to be inner comments\n if (call.callee.trailingComments) {\n setInnerComments(node, call.callee.trailingComments);\n }\n return node as N.ArrowFunctionExpression;\n }\n\n // Parse a no-call expression (like argument of `new` or `::` operators).\n // https://tc39.es/ecma262/#prod-MemberExpression\n parseNoCallExpr(this: Parser): N.Expression {\n const startLoc = this.state.startLoc;\n return this.parseSubscripts(this.parseExprAtom(), startLoc, true);\n }\n\n // Parse an atomic expression — either a single token that is an\n // expression, an expression started by a keyword like `function` or\n // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n // or `{}`.\n\n // https://tc39.es/ecma262/#prod-PrimaryExpression\n // https://tc39.es/ecma262/#prod-AsyncArrowFunction\n // PrimaryExpression\n // Super\n // Import\n // AsyncArrowFunction\n\n parseExprAtom(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n let node;\n let decorators: N.Decorator[] | null = null;\n\n const { type } = this.state;\n switch (type) {\n case tt._super:\n return this.parseSuper();\n\n case tt._import:\n node = this.startNode<N.MetaProperty | N.Import | N.ImportExpression>();\n this.next();\n\n if (this.match(tt.dot)) {\n return this.parseImportMetaProperty(node as Undone<N.MetaProperty>);\n }\n\n if (this.match(tt.parenL)) {\n if (this.options.createImportExpressions) {\n return this.parseImportCall(node as Undone<N.ImportExpression>);\n } else {\n return this.finishNode(node, \"Import\");\n }\n } else {\n this.raise(Errors.UnsupportedImport, {\n at: this.state.lastTokStartLoc,\n });\n return this.finishNode(node, \"Import\");\n }\n\n case tt._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\");\n\n case tt._do: {\n return this.parseDo(this.startNode(), false);\n }\n\n case tt.slash:\n case tt.slashAssign: {\n this.readRegexp();\n return this.parseRegExpLiteral(this.state.value);\n }\n\n case tt.num:\n return this.parseNumericLiteral(this.state.value);\n\n case tt.bigint:\n return this.parseBigIntLiteral(this.state.value);\n\n case tt.decimal:\n return this.parseDecimalLiteral(this.state.value);\n\n case tt.string:\n return this.parseStringLiteral(this.state.value);\n\n case tt._null:\n return this.parseNullLiteral();\n\n case tt._true:\n return this.parseBooleanLiteral(true);\n case tt._false:\n return this.parseBooleanLiteral(false);\n\n case tt.parenL: {\n const canBeArrow = this.state.potentialArrowAt === this.state.start;\n return this.parseParenAndDistinguishExpression(canBeArrow);\n }\n\n case tt.bracketBarL:\n case tt.bracketHashL: {\n return this.parseArrayLike(\n this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR,\n /* canBePattern */ false,\n /* isTuple */ true,\n );\n }\n case tt.bracketL: {\n return this.parseArrayLike(\n tt.bracketR,\n /* canBePattern */ true,\n /* isTuple */ false,\n refExpressionErrors,\n );\n }\n case tt.braceBarL:\n case tt.braceHashL: {\n return this.parseObjectLike(\n this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR,\n /* isPattern */ false,\n /* isRecord */ true,\n );\n }\n case tt.braceL: {\n return this.parseObjectLike(\n tt.braceR,\n /* isPattern */ false,\n /* isRecord */ false,\n refExpressionErrors,\n );\n }\n case tt._function:\n return this.parseFunctionOrFunctionSent();\n\n case tt.at:\n decorators = this.parseDecorators();\n // fall through\n case tt._class:\n return this.parseClass(\n this.maybeTakeDecorators(decorators, this.startNode()),\n false,\n );\n\n case tt._new:\n return this.parseNewOrNewTarget();\n\n case tt.templateNonTail:\n case tt.templateTail:\n return this.parseTemplate(false);\n\n // BindExpression[Yield]\n // :: MemberExpression[?Yield]\n case tt.doubleColon: {\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, { at: callee });\n }\n }\n\n case tt.privateName: {\n // Standalone private names are only allowed in \"#x in obj\"\n // expressions, and they are directly handled by callers of\n // parseExprOp. If we reach this, the input is always invalid.\n // We can throw a better error message and recover, rather than\n // just throwing \"Unexpected token\" (which is the default\n // behavior of this big switch statement).\n this.raise(Errors.PrivateInExpectedIn, {\n at: this.state.startLoc,\n identifierName: this.state.value,\n });\n return this.parsePrivateName();\n }\n\n case tt.moduloAssign: {\n return this.parseTopicReferenceThenEqualsSign(tt.modulo, \"%\");\n }\n\n case tt.xorAssign: {\n return this.parseTopicReferenceThenEqualsSign(tt.bitwiseXOR, \"^\");\n }\n\n case tt.doubleCaret:\n case tt.doubleAt: {\n return this.parseTopicReference(\"hack\");\n }\n\n case tt.bitwiseXOR:\n case tt.modulo:\n case tt.hash: {\n const pipeProposal = this.getPluginOption(\n \"pipelineOperator\",\n \"proposal\",\n );\n\n if (pipeProposal) {\n return this.parseTopicReference(pipeProposal);\n }\n this.unexpected();\n break;\n }\n\n case tt.lt: {\n const lookaheadCh = this.input.codePointAt(this.nextTokenStart());\n if (\n isIdentifierStart(lookaheadCh) || // Element/Type Parameter <foo>\n lookaheadCh === charCodes.greaterThan // Fragment <>\n ) {\n this.expectOnePlugin([\"jsx\", \"flow\", \"typescript\"]);\n } else {\n this.unexpected();\n }\n break;\n }\n\n default:\n if (tokenIsIdentifier(type)) {\n if (\n this.isContextual(tt._module) &&\n this.lookaheadInLineCharCode() === charCodes.leftCurlyBrace\n ) {\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\n if (\n !containsEsc &&\n id.name === \"async\" &&\n !this.canInsertSemicolon()\n ) {\n const { type } = this.state;\n if (type === tt._function) {\n this.resetPreviousNodeTrailingComments(id);\n this.next();\n return this.parseAsyncFunctionExpression(\n this.startNodeAtNode(id),\n );\n } else if (tokenIsIdentifier(type)) {\n // If the next token begins with \"=\", commit to parsing an async\n // arrow function. (Peeking ahead for \"=\" lets us avoid a more\n // expensive full-token lookahead on this common path.)\n if (this.lookaheadCharCode() === charCodes.equalsTo) {\n // although `id` is not used in async arrow unary function,\n // we don't need to reset `async`'s trailing comments because\n // it will be attached to the upcoming async arrow binding identifier\n return this.parseAsyncArrowUnaryFunction(\n this.startNodeAtNode(id),\n );\n } else {\n // Otherwise, treat \"async\" as an identifier and let calling code\n // deal with the current tt.name token.\n return id;\n }\n } else if (type === tt._do) {\n this.resetPreviousNodeTrailingComments(id);\n return this.parseDo(this.startNodeAtNode(id), true);\n }\n }\n\n if (\n canBeArrow &&\n this.match(tt.arrow) &&\n !this.canInsertSemicolon()\n ) {\n this.next();\n return this.parseArrowExpression(\n this.startNodeAtNode(id),\n [id],\n false,\n );\n }\n\n return id;\n } else {\n this.unexpected();\n }\n }\n }\n\n // This helper method should only be called\n // when the parser has reached a potential Hack pipe topic token\n // that is followed by an equals sign.\n // See <https://github.com/js-choi/proposal-hack-pipes>.\n // If we find ^= or %= in an expression position\n // (i.e., the tt.moduloAssign or tt.xorAssign token types), and if the\n // Hack-pipes proposal is active with ^ or % as its topicToken, then the ^ or\n // % could be the topic token (e.g., in x |> ^==y or x |> ^===y), and so we\n // reparse the current token as ^ or %.\n // Otherwise, this throws an unexpected-token error.\n parseTopicReferenceThenEqualsSign(\n topicTokenType: TokenType,\n topicTokenValue: string,\n ): N.Expression {\n const pipeProposal = this.getPluginOption(\"pipelineOperator\", \"proposal\");\n\n if (pipeProposal) {\n // Set the most-recent token to be a topic token\n // given by the tokenType and tokenValue.\n // Now the next readToken() call (in parseTopicReference)\n // will consume that “topic token”.\n this.state.type = topicTokenType;\n this.state.value = topicTokenValue;\n // Rewind the tokenizer to the end of the “topic token”, so that the\n // following token starts at the equals sign after that topic token.\n this.state.pos--;\n this.state.end--;\n // This is safe to do since the preceding character was either ^ or %, and\n // thus not a newline.\n this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1);\n // Now actually consume the topic token.\n return this.parseTopicReference(pipeProposal);\n } else {\n this.unexpected();\n }\n }\n\n // This helper method should only be called\n // when the proposal-pipeline-operator plugin is active,\n // and when the parser has reached a potential Hack pipe topic token.\n // Although a pipe-operator proposal is assumed to be active,\n // its configuration might not match the current token’s type.\n // See <https://github.com/js-choi/proposal-hack-pipes>.\n parseTopicReference(pipeProposal: string): N.Expression {\n const node = this.startNode<N.TopicReference>();\n const startLoc = this.state.startLoc;\n const tokenType = this.state.type;\n\n // Consume the current token.\n this.next();\n\n // If the pipe-operator plugin’s configuration matches the current token’s type,\n // then this will return `node`, will have been finished as a topic reference.\n // Otherwise, this will throw a `PipeTopicUnconfiguredToken` error.\n return this.finishTopicReference(node, startLoc, pipeProposal, tokenType);\n }\n\n // This helper method attempts to finish the given `node`\n // into a topic-reference node for the given `pipeProposal`.\n // See <https://github.com/js-choi/proposal-hack-pipes>.\n //\n // The method assumes that any topic token was consumed before it was called.\n //\n // If the `pipelineOperator` plugin is active,\n // and if the given `tokenType` matches the plugin’s configuration,\n // then this method will return the finished `node`.\n //\n // If the `pipelineOperator` plugin is active,\n // but if the given `tokenType` does not match the plugin’s configuration,\n // then this method will throw a `PipeTopicUnconfiguredToken` error.\n finishTopicReference(\n node: Undone<N.Node>,\n startLoc: Position,\n pipeProposal: string,\n tokenType: TokenType,\n ): N.Expression {\n if (\n this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)\n ) {\n // The token matches the plugin’s configuration.\n // The token is therefore a topic reference.\n\n // Determine the node type for the topic reference\n // that is appropriate for the active pipe-operator proposal.\n const nodeType =\n pipeProposal === \"smart\"\n ? \"PipelinePrimaryTopicReference\"\n : // The proposal must otherwise be \"hack\",\n // as enforced by testTopicReferenceConfiguration.\n \"TopicReference\";\n\n if (!this.topicReferenceIsAllowedInCurrentContext()) {\n this.raise(\n // The topic reference is not allowed in the current context:\n // it is outside of a pipe body.\n // Raise recoverable errors.\n pipeProposal === \"smart\"\n ? Errors.PrimaryTopicNotAllowed\n : // In this case, `pipeProposal === \"hack\"` is true.\n Errors.PipeTopicUnbound,\n { at: startLoc },\n );\n }\n\n // Register the topic reference so that its pipe body knows\n // that its topic was used at least once.\n this.registerTopicReference();\n\n return this.finishNode(node, nodeType);\n } else {\n // The token does not match the plugin’s configuration.\n throw this.raise(Errors.PipeTopicUnconfiguredToken, {\n at: startLoc,\n token: tokenLabelName(tokenType),\n });\n }\n }\n\n // This helper method tests whether the given token type\n // matches the pipelineOperator parser plugin’s configuration.\n // If the active pipe proposal is Hack style,\n // and if the given token is the same as the plugin configuration’s `topicToken`,\n // then this is a valid topic reference.\n // If the active pipe proposal is smart mix,\n // then the topic token must always be `#`.\n // If the active pipe proposal is neither (e.g., \"minimal\" or \"fsharp\"),\n // then an error is thrown.\n testTopicReferenceConfiguration(\n pipeProposal: string,\n startLoc: Position,\n tokenType: TokenType,\n ): boolean {\n switch (pipeProposal) {\n case \"hack\": {\n return this.hasPlugin([\n \"pipelineOperator\",\n {\n // @ts-expect-error token must have a label\n topicToken: tokenLabelName(tokenType),\n },\n ]);\n }\n case \"smart\":\n return tokenType === tt.hash;\n default:\n throw this.raise(Errors.PipeTopicRequiresHackPipes, { at: startLoc });\n }\n }\n\n // async [no LineTerminator here] AsyncArrowBindingIdentifier[?Yield] [no LineTerminator here] => AsyncConciseBody[?In]\n parseAsyncArrowUnaryFunction(\n this: Parser,\n node: Undone<N.ArrowFunctionExpression>,\n ): N.ArrowFunctionExpression {\n // We don't need to push a new ParameterDeclarationScope here since we are sure\n // 1) it is an async arrow, 2) no biding pattern is allowed in params\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, {\n at: this.state.curPosition(),\n });\n }\n this.expect(tt.arrow);\n // let foo = async bar => {};\n return this.parseArrowExpression(node, params, true);\n }\n\n // https://github.com/tc39/proposal-do-expressions\n // https://github.com/tc39/proposal-async-do-expressions\n parseDo(\n this: Parser,\n node: Undone<N.DoExpression>,\n isAsync: boolean,\n ): N.DoExpression {\n this.expectPlugin(\"doExpressions\");\n if (isAsync) {\n this.expectPlugin(\"asyncDoExpressions\");\n }\n node.async = isAsync;\n this.next(); // eat `do`\n const oldLabels = this.state.labels;\n this.state.labels = [];\n if (isAsync) {\n // AsyncDoExpression :\n // async [no LineTerminator here] do Block[~Yield, +Await, ~Return]\n this.prodParam.enter(PARAM_AWAIT);\n node.body = this.parseBlock();\n this.prodParam.exit();\n } else {\n node.body = this.parseBlock();\n }\n\n this.state.labels = oldLabels;\n return this.finishNode(node, \"DoExpression\");\n }\n\n // Parse the `super` keyword\n parseSuper(): N.Super {\n const node = this.startNode<N.Super>();\n this.next(); // eat `super`\n if (\n this.match(tt.parenL) &&\n !this.scope.allowDirectSuper &&\n !this.options.allowSuperOutsideMethod\n ) {\n this.raise(Errors.SuperNotAllowed, { at: node });\n } else if (\n !this.scope.allowSuper &&\n !this.options.allowSuperOutsideMethod\n ) {\n this.raise(Errors.UnexpectedSuper, { at: node });\n }\n\n if (\n !this.match(tt.parenL) &&\n !this.match(tt.bracketL) &&\n !this.match(tt.dot)\n ) {\n this.raise(Errors.UnsupportedSuper, { at: node });\n }\n\n return this.finishNode(node, \"Super\");\n }\n\n parsePrivateName(): N.PrivateName {\n const node = this.startNode<N.PrivateName>();\n const id = this.startNodeAt<N.Identifier>(\n // The position is hardcoded because we merge `#` and name into a single\n // tt.privateName token\n createPositionWithColumnOffset(this.state.startLoc, 1),\n );\n const name = this.state.value;\n this.next(); // eat #name;\n node.id = this.createIdentifier(id, name);\n return this.finishNode(node, \"PrivateName\");\n }\n\n parseFunctionOrFunctionSent(\n this: Parser,\n ): N.FunctionExpression | N.MetaProperty {\n const node = this.startNode<N.FunctionExpression | N.MetaProperty>();\n\n // We do not do parseIdentifier here because when parseFunctionOrFunctionSent\n // is called we already know that the current token is a \"name\" with the value \"function\"\n // This will improve perf a tiny little bit as we do not do validation but more importantly\n // here is that parseIdentifier will remove an item from the expression stack\n // if \"function\" or \"class\" is parsed as identifier (in objects e.g.), which should not happen here.\n this.next(); // eat `function`\n\n if (this.prodParam.hasYield && this.match(tt.dot)) {\n const meta = this.createIdentifier(\n this.startNodeAtNode<N.Identifier>(node),\n \"function\",\n );\n this.next(); // eat `.`\n // https://github.com/tc39/proposal-function.sent#syntax-1\n if (this.match(tt._sent)) {\n this.expectPlugin(\"functionSent\");\n } else if (!this.hasPlugin(\"functionSent\")) {\n // The code wasn't `function.sent` but just `function.`, so a simple error is less confusing.\n this.unexpected();\n }\n return this.parseMetaProperty(\n node as Undone<N.MetaProperty>,\n meta,\n \"sent\",\n );\n }\n return this.parseFunction(node as Undone<N.FunctionExpression>);\n }\n\n parseMetaProperty(\n node: Undone<N.MetaProperty>,\n meta: N.Identifier,\n propertyName: string,\n ): N.MetaProperty {\n node.meta = meta;\n\n const containsEsc = this.state.containsEsc;\n\n node.property = this.parseIdentifier(true);\n\n if (node.property.name !== propertyName || containsEsc) {\n this.raise(Errors.UnsupportedMetaProperty, {\n at: node.property,\n target: meta.name,\n onlyValidPropertyName: propertyName,\n });\n }\n\n return this.finishNode(node, \"MetaProperty\");\n }\n\n // https://tc39.es/ecma262/#prod-ImportMeta\n parseImportMetaProperty(\n this: Parser,\n node: Undone<N.MetaProperty | N.ImportExpression>,\n ): N.MetaProperty | N.ImportExpression {\n const id = this.createIdentifier(\n this.startNodeAtNode<N.Identifier>(node),\n \"import\",\n );\n this.next(); // eat `.`\n\n if (this.isContextual(tt._meta)) {\n if (!this.inModule) {\n this.raise(Errors.ImportMetaOutsideModule, { at: id });\n }\n this.sawUnambiguousESM = true;\n } else if (this.isContextual(tt._source) || this.isContextual(tt._defer)) {\n const isSource = this.isContextual(tt._source);\n\n // TODO: The proposal doesn't mention import.defer yet because it was\n // pending on a decision for import.source. Wait to enable it until it's\n // included in the proposal.\n if (!isSource) this.unexpected();\n\n this.expectPlugin(\n isSource ? \"sourcePhaseImports\" : \"deferredImportEvaluation\",\n );\n if (!this.options.createImportExpressions) {\n throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, {\n at: this.state.startLoc,\n phase: this.state.value,\n });\n }\n this.next();\n (node as Undone<N.ImportExpression>).phase = isSource\n ? \"source\"\n : \"defer\";\n return this.parseImportCall(node as Undone<N.ImportExpression>);\n }\n\n return this.parseMetaProperty(node as Undone<N.MetaProperty>, id, \"meta\");\n }\n\n parseLiteralAtNode<T extends N.Node>(\n value: any,\n type: T[\"type\"],\n node: any,\n ): T {\n this.addExtra(node, \"rawValue\", value);\n this.addExtra(node, \"raw\", this.input.slice(node.start, this.state.end));\n node.value = value;\n this.next();\n return this.finishNode<T>(node, type);\n }\n\n parseLiteral<T extends N.Node>(value: any, type: T[\"type\"]): T {\n const node = this.startNode();\n return this.parseLiteralAtNode(value, type, node);\n }\n\n parseStringLiteral(value: any) {\n return this.parseLiteral<N.StringLiteral>(value, \"StringLiteral\");\n }\n\n parseNumericLiteral(value: any) {\n return this.parseLiteral<N.NumericLiteral>(value, \"NumericLiteral\");\n }\n\n parseBigIntLiteral(value: any) {\n return this.parseLiteral<N.BigIntLiteral>(value, \"BigIntLiteral\");\n }\n\n parseDecimalLiteral(value: any) {\n return this.parseLiteral<N.DecimalLiteral>(value, \"DecimalLiteral\");\n }\n\n parseRegExpLiteral(value: {\n value: any;\n pattern: string;\n flags: N.RegExpLiteral[\"flags\"];\n }) {\n const node = this.parseLiteral<N.RegExpLiteral>(\n value.value,\n \"RegExpLiteral\",\n );\n node.pattern = value.pattern;\n node.flags = value.flags;\n return node;\n }\n\n parseBooleanLiteral(value: boolean) {\n const node = this.startNode<N.BooleanLiteral>();\n node.value = value;\n this.next();\n return this.finishNode(node, \"BooleanLiteral\");\n }\n\n parseNullLiteral() {\n const node = this.startNode<N.NullLiteral>();\n this.next();\n return this.finishNode(node, \"NullLiteral\");\n }\n\n // https://tc39.es/ecma262/#prod-CoverParenthesizedExpressionAndArrowParameterList\n parseParenAndDistinguishExpression(\n this: Parser,\n canBeArrow: boolean,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n\n let val;\n this.next(); // eat `(`\n this.expressionScope.enter(newArrowHeadScope());\n\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.maybeInArrowParameters = true;\n this.state.inFSharpPipelineDirectBody = false;\n\n const innerStartLoc = this.state.startLoc;\n const exprList: N.Expression[] = [];\n const refExpressionErrors = new ExpressionErrors();\n let first = true;\n let spreadStartLoc;\n let optionalCommaStartLoc;\n\n while (!this.match(tt.parenR)) {\n if (first) {\n first = false;\n } else {\n this.expect(\n tt.comma,\n refExpressionErrors.optionalParametersLoc === null\n ? null\n : refExpressionErrors.optionalParametersLoc,\n );\n if (this.match(tt.parenR)) {\n optionalCommaStartLoc = this.state.startLoc;\n break;\n }\n }\n\n if (this.match(tt.ellipsis)) {\n const spreadNodeStartLoc = this.state.startLoc;\n spreadStartLoc = this.state.startLoc;\n exprList.push(\n this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc),\n );\n\n if (!this.checkCommaAfterRest(charCodes.rightParenthesis)) {\n break;\n }\n } else {\n exprList.push(\n this.parseMaybeAssignAllowIn(\n refExpressionErrors,\n this.parseParenItem,\n ),\n );\n }\n }\n\n const innerEndLoc = this.state.lastTokEndLoc;\n this.expect(tt.parenR);\n\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n let arrowNode = this.startNodeAt<N.ArrowFunctionExpression>(startLoc);\n if (\n canBeArrow &&\n this.shouldParseArrow(exprList) &&\n (arrowNode = this.parseArrow(arrowNode))\n ) {\n this.checkDestructuringPrivate(refExpressionErrors);\n this.expressionScope.validateAsPattern();\n this.expressionScope.exit();\n this.parseArrowExpression(arrowNode, exprList, false);\n // @ts-expect-error todo(flow->ts) improve node types\n return arrowNode;\n }\n this.expressionScope.exit();\n\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\n this.toReferencedListDeep(exprList, /* isParenthesizedExpr */ true);\n if (exprList.length > 1) {\n val = this.startNodeAt<N.SequenceExpression>(innerStartLoc);\n val.expressions = exprList;\n // finish node at current location so it can pick up comments after `)`\n this.finishNode(val, \"SequenceExpression\");\n this.resetEndLocation(val, innerEndLoc);\n } else {\n val = exprList[0];\n }\n\n return this.wrapParenthesis(\n startLoc,\n // @ts-expect-error todo(flow->ts)\n val,\n );\n }\n\n wrapParenthesis(startLoc: Position, expression: N.Expression): N.Expression {\n if (!this.options.createParenthesizedExpressions) {\n this.addExtra(expression, \"parenthesized\", true);\n this.addExtra(expression, \"parenStart\", startLoc.index);\n\n this.takeSurroundingComments(\n expression,\n startLoc.index,\n this.state.lastTokEndLoc.index,\n );\n\n return expression;\n }\n\n const parenExpression =\n this.startNodeAt<N.ParenthesizedExpression>(startLoc);\n parenExpression.expression = expression;\n return this.finishNode(parenExpression, \"ParenthesizedExpression\");\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- `params` is used in typescript plugin\n shouldParseArrow(params: Array<N.Node>): boolean {\n return !this.canInsertSemicolon();\n }\n\n parseArrow(\n node: Undone<N.ArrowFunctionExpression>,\n ): Undone<N.ArrowFunctionExpression> | undefined {\n if (this.eat(tt.arrow)) {\n return node;\n }\n }\n\n parseParenItem(\n node: N.Expression,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n startLoc: Position,\n ): N.Expression {\n return node;\n }\n\n parseNewOrNewTarget(this: Parser): N.NewExpression | N.MetaProperty {\n const node = this.startNode<N.NewExpression | N.MetaProperty>();\n this.next();\n if (this.match(tt.dot)) {\n // https://tc39.es/ecma262/#prod-NewTarget\n const meta = this.createIdentifier(\n this.startNodeAtNode<N.Identifier>(node),\n \"new\",\n );\n this.next();\n const metaProp = this.parseMetaProperty(\n node as Undone<N.MetaProperty>,\n meta,\n \"target\",\n );\n\n if (\n !this.scope.inNonArrowFunction &&\n !this.scope.inClass &&\n !this.options.allowNewTargetOutsideFunction\n ) {\n this.raise(Errors.UnexpectedNewTarget, { at: metaProp });\n }\n\n return metaProp;\n }\n\n return this.parseNew(node as Undone<N.NewExpression>);\n }\n\n // New's precedence is slightly tricky. It must allow its argument to\n // be a `[]` or dot subscript expression, but not a call — at least,\n // not without wrapping it in parentheses. Thus, it uses the noCalls\n // argument to parseSubscripts to prevent it from consuming the\n // argument list.\n // https://tc39.es/ecma262/#prod-NewExpression\n parseNew(this: Parser, node: Undone<N.NewExpression>): N.NewExpression {\n this.parseNewCallee(node);\n\n if (this.eat(tt.parenL)) {\n const args = this.parseExprList(tt.parenR);\n this.toReferencedList(args);\n // (parseExprList should be all non-null in this case)\n node.arguments = args;\n } else {\n node.arguments = [];\n }\n\n return this.finishNode(node, \"NewExpression\");\n }\n\n parseNewCallee(this: Parser, node: Undone<N.NewExpression>): void {\n const isImport = this.match(tt._import);\n const callee = this.parseNoCallExpr();\n node.callee = callee;\n if (\n isImport &&\n (callee.type === \"Import\" || callee.type === \"ImportExpression\")\n ) {\n this.raise(Errors.ImportCallNotNewExpression, { at: callee });\n }\n }\n\n // Parse template expression.\n\n parseTemplateElement(isTagged: boolean): N.TemplateElement {\n const { start, startLoc, end, value } = this.state;\n const elemStart = start + 1;\n const elem = this.startNodeAt<N.TemplateElement>(\n createPositionWithColumnOffset(startLoc, 1),\n );\n if (value === null) {\n if (!isTagged) {\n this.raise(Errors.InvalidEscapeSequenceTemplate, {\n // FIXME: Adding 1 is probably wrong.\n at: createPositionWithColumnOffset(\n this.state.firstInvalidTemplateEscapePos,\n 1,\n ),\n });\n }\n }\n\n const isTail = this.match(tt.templateTail);\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(\n finishedNode,\n createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset),\n );\n return finishedNode;\n }\n\n // https://tc39.es/ecma262/#prod-TemplateLiteral\n parseTemplate(this: Parser, isTagged: boolean): N.TemplateLiteral {\n const node = this.startNode<N.TemplateLiteral>();\n node.expressions = [];\n let curElt = this.parseTemplateElement(isTagged);\n node.quasis = [curElt];\n while (!curElt.tail) {\n node.expressions.push(this.parseTemplateSubstitution());\n this.readTemplateContinuation();\n node.quasis.push((curElt = this.parseTemplateElement(isTagged)));\n }\n return this.finishNode(node, \"TemplateLiteral\");\n }\n\n // This is overwritten by the TypeScript plugin to parse template types\n parseTemplateSubstitution(this: Parser): N.Expression {\n return this.parseExpression();\n }\n\n // Parse an object literal, binding pattern, or record.\n\n parseObjectLike(\n close: TokenType,\n isPattern: true,\n isRecord?: boolean | null,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectPattern;\n parseObjectLike(\n close: TokenType,\n isPattern: false,\n isRecord?: false | null,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectExpression;\n parseObjectLike(\n close: TokenType,\n isPattern: false,\n isRecord?: true,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.RecordExpression;\n parseObjectLike<T extends N.ObjectPattern | N.ObjectExpression>(\n this: Parser,\n close: TokenType,\n isPattern: boolean,\n isRecord?: boolean | null,\n refExpressionErrors?: ExpressionErrors | null,\n ): T {\n if (isRecord) {\n this.expectPlugin(\"recordAndTuple\");\n }\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n const propHash: any = Object.create(null);\n let first = true;\n const node = this.startNode<\n N.ObjectExpression | N.ObjectPattern | N.RecordExpression\n >();\n\n node.properties = [];\n this.next();\n\n while (!this.match(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n if (this.match(close)) {\n this.addTrailingCommaExtraToNode(\n // @ts-expect-error todo(flow->ts) improve node types\n node,\n );\n break;\n }\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\n if (\n isRecord &&\n !this.isObjectProperty(prop) &&\n prop.type !== \"SpreadElement\"\n ) {\n this.raise(Errors.InvalidRecordProperty, { at: prop });\n }\n\n // @ts-expect-error shorthand may not index prop\n if (prop.shorthand) {\n this.addExtra(prop, \"shorthand\", true);\n }\n\n // @ts-expect-error Fixme: refine typings\n node.properties.push(prop);\n }\n\n this.next();\n\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n let type = \"ObjectExpression\";\n if (isPattern) {\n type = \"ObjectPattern\";\n } else if (isRecord) {\n type = \"RecordExpression\";\n }\n // @ts-expect-error type is well defined\n return this.finishNode(node, type);\n }\n\n addTrailingCommaExtraToNode(node: N.Node): void {\n this.addExtra(node, \"trailingComma\", this.state.lastTokStart);\n this.addExtra(node, \"trailingCommaLoc\", this.state.lastTokStartLoc, false);\n }\n\n // Check grammar production:\n // IdentifierName *_opt PropertyName\n // It is used in `parsePropertyDefinition` to detect AsyncMethod and Accessors\n maybeAsyncOrAccessorProp(prop: Undone<N.ObjectProperty>): boolean {\n return (\n !prop.computed &&\n prop.key.type === \"Identifier\" &&\n (this.isLiteralPropertyName() ||\n this.match(tt.bracketL) ||\n this.match(tt.star))\n );\n }\n\n // https://tc39.es/ecma262/#prod-PropertyDefinition\n parsePropertyDefinition(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectMember | N.SpreadElement {\n let decorators = [];\n if (this.match(tt.at)) {\n if (this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedPropertyDecorator, {\n at: this.state.startLoc,\n });\n }\n\n // we needn't check if decorators (stage 0) plugin is enabled since it's checked by\n // the call to this.parseDecorator\n while (this.match(tt.at)) {\n decorators.push(this.parseDecorator());\n }\n }\n\n const prop = this.startNode<N.ObjectProperty>();\n let isAsync = false;\n let isAccessor = false;\n let startLoc;\n\n if (this.match(tt.ellipsis)) {\n if (decorators.length) this.unexpected();\n return this.parseSpread();\n }\n\n if (decorators.length) {\n prop.decorators = decorators;\n decorators = [];\n }\n\n prop.method = false;\n\n if (refExpressionErrors) {\n startLoc = this.state.startLoc;\n }\n\n let isGenerator = this.eat(tt.star);\n this.parsePropertyNamePrefixOperator(prop);\n const containsEsc = this.state.containsEsc;\n const key = this.parsePropertyName(prop, refExpressionErrors);\n\n if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) {\n const keyName = key.name;\n // https://tc39.es/ecma262/#prod-AsyncMethod\n // https://tc39.es/ecma262/#prod-AsyncGeneratorMethod\n if (keyName === \"async\" && !this.hasPrecedingLineBreak()) {\n isAsync = true;\n this.resetPreviousNodeTrailingComments(key);\n isGenerator = this.eat(tt.star);\n this.parsePropertyName(prop);\n }\n // get PropertyName[?Yield, ?Await] () { FunctionBody[~Yield, ~Await] }\n // set PropertyName[?Yield, ?Await] ( PropertySetParameterList ) { FunctionBody[~Yield, ~Await] }\n if (keyName === \"get\" || keyName === \"set\") {\n isAccessor = true;\n this.resetPreviousNodeTrailingComments(key);\n prop.kind = keyName;\n if (this.match(tt.star)) {\n isGenerator = true;\n this.raise(Errors.AccessorIsGenerator, {\n at: this.state.curPosition(),\n kind: keyName,\n });\n this.next();\n }\n this.parsePropertyName(prop);\n }\n }\n\n return this.parseObjPropValue(\n prop,\n startLoc,\n isGenerator,\n isAsync,\n false /* isPattern */,\n isAccessor,\n refExpressionErrors,\n );\n }\n\n getGetterSetterExpectedParamCount(\n method: N.ObjectMethod | N.ClassMethod,\n ): number {\n return method.kind === \"get\" ? 0 : 1;\n }\n\n // This exists so we can override within the ESTree plugin\n getObjectOrClassMethodParams(method: N.ObjectMethod | N.ClassMethod) {\n return method.params;\n }\n\n // get methods aren't allowed to have any parameters\n // set methods must have exactly 1 parameter which is not a rest parameter\n checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n const paramCount = this.getGetterSetterExpectedParamCount(method);\n const params = this.getObjectOrClassMethodParams(method);\n\n if (params.length !== paramCount) {\n this.raise(\n method.kind === \"get\" ? Errors.BadGetterArity : Errors.BadSetterArity,\n { at: method },\n );\n }\n\n if (\n method.kind === \"set\" &&\n params[params.length - 1]?.type === \"RestElement\"\n ) {\n this.raise(Errors.BadSetterRestParameter, { at: method });\n }\n }\n\n // https://tc39.es/ecma262/#prod-MethodDefinition\n parseObjectMethod(\n this: Parser,\n prop: Undone<N.ObjectMethod>,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n ): N.ObjectMethod | undefined | null {\n if (isAccessor) {\n // isAccessor implies isAsync: false, isPattern: false, isGenerator: false\n const finishedProp = this.parseMethod(\n prop,\n // This _should_ be false, but with error recovery, we allow it to be\n // set for informational purposes\n isGenerator,\n /* isAsync */ false,\n /* isConstructor */ false,\n false,\n \"ObjectMethod\",\n );\n this.checkGetterSetterParams(finishedProp);\n return finishedProp;\n }\n\n if (isAsync || isGenerator || this.match(tt.parenL)) {\n if (isPattern) this.unexpected();\n prop.kind = \"method\";\n prop.method = true;\n return this.parseMethod(\n prop,\n isGenerator,\n isAsync,\n /* isConstructor */ false,\n false,\n \"ObjectMethod\",\n );\n }\n }\n\n // if `isPattern` is true, parse https://tc39.es/ecma262/#prod-BindingProperty\n // else https://tc39.es/ecma262/#prod-PropertyDefinition\n parseObjectProperty(\n this: Parser,\n prop: Undone<N.ObjectProperty>,\n startLoc: Position | undefined | null,\n isPattern: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectProperty | undefined | null {\n prop.shorthand = false;\n\n if (this.eat(tt.colon)) {\n prop.value = isPattern\n ? this.parseMaybeDefault(this.state.startLoc)\n : this.parseMaybeAssignAllowIn(refExpressionErrors);\n\n return this.finishNode(prop, \"ObjectProperty\");\n }\n\n if (!prop.computed && prop.key.type === \"Identifier\") {\n // PropertyDefinition:\n // IdentifierReference\n // CoverInitializedName\n // Note: `{ eval } = {}` will be checked in `checkLVal` later.\n this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false);\n\n if (isPattern) {\n prop.value = this.parseMaybeDefault(\n startLoc,\n cloneIdentifier(prop.key),\n );\n } else if (this.match(tt.eq)) {\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, {\n at: shorthandAssignLoc,\n });\n }\n prop.value = this.parseMaybeDefault(\n startLoc,\n cloneIdentifier(prop.key),\n );\n } else {\n prop.value = cloneIdentifier(prop.key);\n }\n prop.shorthand = true;\n\n return this.finishNode(prop, \"ObjectProperty\");\n }\n }\n\n parseObjPropValue(\n this: Parser,\n prop: Undone<N.ObjectMethod | N.ObjectProperty>,\n startLoc: Position | undefined | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectMethod | N.ObjectProperty {\n const node =\n this.parseObjectMethod(\n prop as Undone<N.ObjectMethod>,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n ) ||\n this.parseObjectProperty(\n prop as Undone<N.ObjectProperty>,\n startLoc,\n isPattern,\n refExpressionErrors,\n );\n\n if (!node) this.unexpected();\n\n return node;\n }\n\n // https://tc39.es/ecma262/#prod-PropertyName\n // when refExpressionErrors presents, it will parse private name\n // and record the position of the first private name\n parsePropertyName(\n this: Parser,\n prop:\n | Undone<N.ObjectOrClassMember | N.ClassMember>\n | N.TsNamedTypeElementBase,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression | N.Identifier {\n if (this.eat(tt.bracketL)) {\n (prop as Undone<N.ObjectOrClassMember>).computed = true;\n prop.key = this.parseMaybeAssignAllowIn();\n this.expect(tt.bracketR);\n } else {\n // We check if it's valid for it to be a private name when we push it.\n const { type, value } = this.state;\n let key;\n // most un-computed property names are identifiers\n if (tokenIsKeywordOrIdentifier(type)) {\n key = this.parseIdentifier(true);\n } else {\n switch (type) {\n case tt.num:\n key = this.parseNumericLiteral(value);\n break;\n case tt.string:\n key = this.parseStringLiteral(value);\n break;\n case tt.bigint:\n key = this.parseBigIntLiteral(value);\n break;\n case tt.decimal:\n key = this.parseDecimalLiteral(value);\n break;\n case tt.privateName: {\n // the class private key has been handled in parseClassElementName\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, {\n at: privateKeyLoc,\n });\n }\n key = this.parsePrivateName();\n break;\n }\n default:\n this.unexpected();\n }\n }\n (prop as any).key = key;\n if (type !== tt.privateName) {\n // ClassPrivateProperty is never computed, so we don't assign in that case.\n prop.computed = false;\n }\n }\n\n return prop.key;\n }\n\n // Initialize empty function node.\n\n initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: boolean): void {\n node.id = null;\n node.generator = false;\n node.async = isAsync;\n }\n\n // Parse object or class method.\n\n parseMethod<T extends N.ObjectMethod | N.ClassMethod | N.ClassPrivateMethod>(\n this: Parser,\n node: Undone<T>,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: T[\"type\"],\n inClassScope: boolean = false,\n ): T {\n this.initFunction(node, isAsync);\n node.generator = isGenerator;\n this.scope.enter(\n ScopeFlag.FUNCTION |\n ScopeFlag.SUPER |\n (inClassScope ? ScopeFlag.CLASS : 0) |\n (allowDirectSuper ? ScopeFlag.DIRECT_SUPER : 0),\n );\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\n return finishedNode;\n }\n\n // parse an array literal or tuple literal\n // https://tc39.es/ecma262/#prod-ArrayLiteral\n // https://tc39.es/proposal-record-tuple/#prod-TupleLiteral\n parseArrayLike(\n this: Parser,\n close: TokenType,\n canBePattern: boolean,\n isTuple: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ArrayExpression | N.TupleExpression {\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.ArrayExpression | N.TupleExpression>();\n this.next();\n node.elements = this.parseExprList(\n close,\n /* allowEmpty */ !isTuple,\n refExpressionErrors,\n // @ts-expect-error todo(flow->ts)\n node,\n );\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n return this.finishNode(\n node,\n isTuple ? \"TupleExpression\" : \"ArrayExpression\",\n );\n }\n\n // Parse arrow function expression.\n // If the parameters are provided, they will be converted to an\n // assignable list.\n parseArrowExpression(\n this: Parser,\n node: Undone<N.ArrowFunctionExpression>,\n params: N.Expression[] | undefined | null,\n isAsync: boolean,\n trailingCommaLoc?: Position | null,\n ): N.ArrowFunctionExpression {\n this.scope.enter(ScopeFlag.FUNCTION | ScopeFlag.ARROW);\n let flags = functionFlags(isAsync, false);\n // ConciseBody[In] :\n // [lookahead ≠ {] ExpressionBody[?In, ~Await]\n // { FunctionBody[~Yield, ~Await] }\n if (!this.match(tt.braceL) && this.prodParam.hasIn) {\n flags |= PARAM_IN;\n }\n this.prodParam.enter(flags);\n this.initFunction(node, isAsync);\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n\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\n this.prodParam.exit();\n this.scope.exit();\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n return this.finishNode(node, \"ArrowFunctionExpression\");\n }\n\n setArrowFunctionParameters(\n node: Undone<N.ArrowFunctionExpression>,\n params: N.Expression[],\n trailingCommaLoc?: Position | null,\n ): void {\n this.toAssignableList(params, trailingCommaLoc, false);\n node.params = params as (N.Pattern | N.TSParameterProperty)[];\n }\n\n parseFunctionBodyAndFinish<\n T extends\n | N.Function\n | N.TSDeclareMethod\n | N.TSDeclareFunction\n | N.ClassPrivateMethod,\n >(node: Undone<T>, type: T[\"type\"], isMethod: boolean = false): T {\n // @ts-expect-error (node is not bodiless if we get here)\n this.parseFunctionBody(node, false, isMethod);\n return this.finishNode(node, type);\n }\n\n // Parse function body and check parameters.\n parseFunctionBody(\n this: Parser,\n node: Undone<N.Function>,\n allowExpression?: boolean | null,\n isMethod: boolean = false,\n ): void {\n const isExpression = allowExpression && !this.match(tt.braceL);\n this.expressionScope.enter(newExpressionScope());\n\n if (isExpression) {\n // https://tc39.es/ecma262/#prod-ExpressionBody\n (node as Undone<N.ArrowFunctionExpression>).body =\n this.parseMaybeAssign();\n this.checkParams(node, false, allowExpression, false);\n } else {\n const oldStrict = this.state.strict;\n // Start a new scope with regard to labels\n // flag (restore them to their old value afterwards).\n const oldLabels = this.state.labels;\n this.state.labels = [];\n\n // FunctionBody[Yield, Await]:\n // StatementList[?Yield, ?Await, +Return] opt\n this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN);\n node.body = this.parseBlock(\n true,\n false,\n // Strict mode function checks after we parse the statements in the function body.\n (hasStrictModeDirective: boolean) => {\n const nonSimple = !this.isSimpleParamList(node.params);\n\n if (hasStrictModeDirective && nonSimple) {\n // This logic is here to align the error location with the ESTree plugin.\n this.raise(Errors.IllegalLanguageModeDirective, {\n at:\n // @ts-expect-error kind may not index node\n (node.kind === \"method\" || node.kind === \"constructor\") &&\n // @ts-expect-error key may not index node\n !!node.key\n ? // @ts-expect-error node.key has been guarded\n node.key.loc.end\n : node,\n });\n }\n\n const strictModeChanged = !oldStrict && this.state.strict;\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(\n node,\n !this.state.strict && !allowExpression && !isMethod && !nonSimple,\n allowExpression,\n strictModeChanged,\n );\n\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.state.strict && node.id) {\n this.checkIdentifier(\n node.id,\n BindingFlag.TYPE_OUTSIDE,\n strictModeChanged,\n );\n }\n },\n );\n this.prodParam.exit();\n this.state.labels = oldLabels;\n }\n this.expressionScope.exit();\n }\n\n isSimpleParameter(node: N.Pattern | N.TSParameterProperty) {\n return node.type === \"Identifier\";\n }\n\n isSimpleParamList(\n params: ReadonlyArray<N.Pattern | N.TSParameterProperty>,\n ): boolean {\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\n checkParams(\n node: Undone<N.Function>,\n allowDuplicates: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isArrowFunction?: boolean | null,\n strictModeChanged: boolean = true,\n ): void {\n const checkClashes = !allowDuplicates && new Set<string>();\n // We create a fake node with the \"ephemeral\" type `FormalParameters`[1]\n // since we just store an array of parameters. Perhaps someday we can have\n // something like class FormalParameters extends Array { ... }, which would\n // also be helpful when traversing this node.\n //\n // 1. https://tc39.es/ecma262/#prod-FormalParameters\n const formalParameters = { type: \"FormalParameters\" } as const;\n for (const param of node.params) {\n this.checkLVal(param, {\n in: formalParameters,\n binding: BindingFlag.TYPE_VAR,\n checkClashes,\n strictModeChanged,\n });\n }\n }\n\n // Parses a comma-separated list of expressions, and returns them as\n // an array. `close` is the token type that ends the list, and\n // `allowEmpty` can be turned on to allow subsequent commas with\n // nothing in between them to be parsed as `null` (which is needed\n // for array literals).\n\n parseExprList(\n this: Parser,\n close: TokenType,\n allowEmpty?: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n nodeForExtra?: N.Node | null,\n ): (N.Expression | null)[] {\n const elts: (N.Expression | null)[] = [];\n let first = true;\n\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n if (this.match(close)) {\n if (nodeForExtra) {\n this.addTrailingCommaExtraToNode(nodeForExtra);\n }\n this.next();\n break;\n }\n }\n\n elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n }\n return elts;\n }\n\n parseExprListItem(\n this: Parser,\n allowEmpty?: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n allowPlaceholder?: boolean | null,\n ): N.Expression | null;\n parseExprListItem(\n this: Parser,\n allowEmpty?: false,\n refExpressionErrors?: ExpressionErrors | null,\n allowPlaceholder?: boolean | null,\n ): N.Expression;\n parseExprListItem(\n this: Parser,\n allowEmpty?: boolean | null,\n refExpressionErrors?: ExpressionErrors | null,\n allowPlaceholder?: boolean | null,\n ): N.Expression | null {\n let elt;\n if (this.match(tt.comma)) {\n if (!allowEmpty) {\n this.raise(Errors.UnexpectedToken, {\n at: this.state.curPosition(),\n unexpected: \",\",\n });\n }\n elt = null;\n } else if (this.match(tt.ellipsis)) {\n const spreadNodeStartLoc = this.state.startLoc;\n\n elt = this.parseParenItem(\n this.parseSpread(refExpressionErrors),\n spreadNodeStartLoc,\n );\n } else if (this.match(tt.question)) {\n this.expectPlugin(\"partialApplication\");\n if (!allowPlaceholder) {\n this.raise(Errors.UnexpectedArgumentPlaceholder, {\n at: this.state.startLoc,\n });\n }\n const node = this.startNode();\n this.next();\n elt = this.finishNode(node, \"ArgumentPlaceholder\");\n } else {\n elt = this.parseMaybeAssignAllowIn(\n refExpressionErrors,\n this.parseParenItem,\n );\n }\n return elt;\n }\n\n // Parse the next token as an identifier. If `liberal` is true (used\n // when parsing properties), it will also convert keywords into\n // identifiers.\n // This shouldn't be used to parse the keywords of meta properties, since they\n // are not identifiers and cannot contain escape sequences.\n\n parseIdentifier(liberal?: boolean): N.Identifier {\n const node = this.startNode<N.Identifier>();\n const name = this.parseIdentifierName(liberal);\n\n return this.createIdentifier(node, name);\n }\n\n createIdentifier(\n node: Omit<N.Identifier, \"type\">,\n name: string,\n ): N.Identifier {\n node.name = name;\n node.loc.identifierName = name;\n\n return this.finishNode(node, \"Identifier\");\n }\n\n parseIdentifierName(liberal?: boolean): string {\n let name: string;\n\n const { startLoc, type } = this.state;\n\n if (tokenIsKeywordOrIdentifier(type)) {\n name = this.state.value;\n } else {\n this.unexpected();\n }\n\n const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type);\n\n if (liberal) {\n // If the current token is not used as a keyword, set its type to \"tt.name\".\n // This will prevent this.next() from throwing about unexpected escapes.\n if (tokenIsKeyword) {\n this.replaceToken(tt.name);\n }\n } else {\n this.checkReservedWord(name, startLoc, tokenIsKeyword, false);\n }\n\n this.next();\n\n return name;\n }\n\n checkReservedWord(\n word: string,\n startLoc: Position,\n checkKeywords: boolean,\n isBinding: boolean,\n ): void {\n // Every JavaScript reserved word is 10 characters or less.\n if (word.length > 10) {\n return;\n }\n // Most identifiers are not reservedWord-like, they don't need special\n // treatments afterward, which very likely ends up throwing errors\n if (!canBeReservedWord(word)) {\n return;\n }\n\n if (checkKeywords && isKeyword(word)) {\n this.raise(Errors.UnexpectedKeyword, {\n at: startLoc,\n keyword: word,\n });\n return;\n }\n\n const reservedTest = !this.state.strict\n ? isReservedWord\n : isBinding\n ? isStrictBindReservedWord\n : isStrictReservedWord;\n\n if (reservedTest(word, this.inModule)) {\n this.raise(Errors.UnexpectedReservedWord, {\n at: startLoc,\n reservedWord: word,\n });\n return;\n } else if (word === \"yield\") {\n if (this.prodParam.hasYield) {\n this.raise(Errors.YieldBindingIdentifier, { at: startLoc });\n return;\n }\n } else if (word === \"await\") {\n if (this.prodParam.hasAwait) {\n this.raise(Errors.AwaitBindingIdentifier, { at: startLoc });\n return;\n }\n\n if (this.scope.inStaticBlock) {\n this.raise(Errors.AwaitBindingIdentifierInStaticBlock, {\n at: startLoc,\n });\n return;\n }\n\n this.expressionScope.recordAsyncArrowParametersError({ at: startLoc });\n } else if (word === \"arguments\") {\n if (this.scope.inClassAndNotInNonArrowFunction) {\n this.raise(Errors.ArgumentsInClass, { at: startLoc });\n return;\n }\n }\n }\n\n isAwaitAllowed(): boolean {\n if (this.prodParam.hasAwait) return true;\n if (this.options.allowAwaitOutsideFunction && !this.scope.inFunction) {\n return true;\n }\n return false;\n }\n\n // Parses await expression inside async function.\n\n parseAwait(this: Parser, startLoc: Position): N.AwaitExpression {\n const node = this.startNodeAt<N.AwaitExpression>(startLoc);\n\n this.expressionScope.recordParameterInitializerError(\n Errors.AwaitExpressionFormalParameter,\n {\n // @ts-expect-error todo(flow->ts)\n at: node,\n },\n );\n\n if (this.eat(tt.star)) {\n this.raise(Errors.ObsoleteAwaitStar, { at: node });\n }\n\n if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n if (this.isAmbiguousAwait()) {\n this.ambiguousScriptDifferentAst = true;\n } else {\n this.sawUnambiguousESM = true;\n }\n }\n\n if (!this.state.soloAwait) {\n node.argument = this.parseMaybeUnary(null, true);\n }\n\n return this.finishNode(node, \"AwaitExpression\");\n }\n\n isAmbiguousAwait(): boolean {\n if (this.hasPrecedingLineBreak()) return true;\n const { type } = this.state;\n return (\n // All the following expressions are ambiguous:\n // await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``, await of []\n type === tt.plusMin ||\n type === tt.parenL ||\n type === tt.bracketL ||\n tokenIsTemplate(type) ||\n (type === tt._of && !this.state.containsEsc) ||\n // Sometimes the tokenizer generates tt.slash for regexps, and this is\n // handler by parseExprAtom\n type === tt.regexp ||\n type === tt.slash ||\n // This code could be parsed both as a modulo operator or as an intrinsic:\n // await %x(0)\n (this.hasPlugin(\"v8intrinsic\") && type === tt.modulo)\n );\n }\n\n // Parses yield expression inside generator.\n\n parseYield(this: Parser): N.YieldExpression {\n const node = this.startNode<N.YieldExpression>();\n\n this.expressionScope.recordParameterInitializerError(\n Errors.YieldInParameter,\n {\n // @ts-expect-error todo(flow->ts)\n at: node,\n },\n );\n\n this.next();\n let delegating = false;\n let argument: N.Expression | null = null;\n if (!this.hasPrecedingLineBreak()) {\n delegating = this.eat(tt.star);\n switch (this.state.type) {\n case tt.semi:\n case tt.eof:\n case tt.braceR:\n case tt.parenR:\n case tt.bracketR:\n case tt.braceBarR:\n case tt.colon:\n case tt.comma:\n // The above is the complete set of tokens that can\n // follow an AssignmentExpression, and none of them\n // can start an AssignmentExpression\n if (!delegating) break;\n /* fallthrough */\n default:\n argument = this.parseMaybeAssign();\n }\n }\n node.delegate = delegating;\n node.argument = argument;\n return this.finishNode(node, \"YieldExpression\");\n }\n\n // https://tc39.es/ecma262/#prod-ImportCall\n parseImportCall(\n this: Parser,\n node: Undone<N.ImportExpression>,\n ): N.ImportExpression {\n this.next(); // eat tt.parenL\n node.source = this.parseMaybeAssignAllowIn();\n if (\n this.hasPlugin(\"importAttributes\") ||\n this.hasPlugin(\"importAssertions\")\n ) {\n node.options = null;\n }\n if (this.eat(tt.comma)) {\n this.expectImportAttributesPlugin();\n if (!this.match(tt.parenR)) {\n node.options = this.parseMaybeAssignAllowIn();\n this.eat(tt.comma);\n }\n }\n this.expect(tt.parenR);\n return this.finishNode(node, \"ImportExpression\");\n }\n\n // Validates a pipeline (for any of the pipeline Babylon plugins) at the point\n // of the infix operator `|>`.\n\n checkPipelineAtInfixOperator(left: N.Expression, leftStartLoc: Position) {\n if (this.hasPlugin([\"pipelineOperator\", { proposal: \"smart\" }])) {\n if (left.type === \"SequenceExpression\") {\n // Ensure that the pipeline head is not a comma-delimited\n // sequence expression.\n this.raise(Errors.PipelineHeadSequenceExpression, {\n at: leftStartLoc,\n });\n }\n }\n }\n\n parseSmartPipelineBodyInStyle(childExpr: N.Expression, startLoc: Position) {\n if (this.isSimpleReference(childExpr)) {\n const bodyNode = this.startNodeAt<N.PipelineBareFunction>(startLoc);\n bodyNode.callee = childExpr;\n return this.finishNode(bodyNode, \"PipelineBareFunction\");\n } else {\n const bodyNode = this.startNodeAt<N.PipelineTopicExpression>(startLoc);\n this.checkSmartPipeTopicBodyEarlyErrors(startLoc);\n bodyNode.expression = childExpr;\n return this.finishNode(bodyNode, \"PipelineTopicExpression\");\n }\n }\n\n isSimpleReference(expression: N.Expression): boolean {\n switch (expression.type) {\n case \"MemberExpression\":\n return (\n !expression.computed && this.isSimpleReference(expression.object)\n );\n case \"Identifier\":\n return true;\n default:\n return false;\n }\n }\n\n // This helper method is to be called immediately\n // after a topic-style smart-mix pipe body is parsed.\n // The `startLoc` is the starting position of the pipe body.\n\n checkSmartPipeTopicBodyEarlyErrors(startLoc: Position): void {\n // If the following token is invalidly `=>`, then throw a human-friendly error\n // instead of something like 'Unexpected token, expected \";\"'.\n // For example, `x => x |> y => #` (assuming `#` is the topic reference)\n // groups into `x => (x |> y) => #`,\n // and `(x |> y) => #` is an invalid arrow function.\n // This is because smart-mix `|>` has tighter precedence than `=>`.\n if (this.match(tt.arrow)) {\n throw this.raise(Errors.PipelineBodyNoArrow, { at: this.state.startLoc });\n }\n\n // A topic-style smart-mix pipe body must use the topic reference at least once.\n if (!this.topicReferenceWasUsedInCurrentContext()) {\n this.raise(Errors.PipelineTopicUnused, { at: startLoc });\n }\n }\n\n // Enable topic references from outer contexts within Hack-style pipe bodies.\n // The function modifies the parser's topic-context state to enable or disable\n // the use of topic references.\n // The function then calls a callback, then resets the parser\n // to the old topic-context state that it had before the function was called.\n\n withTopicBindingContext<T>(callback: () => T): T {\n const outerContextTopicState = this.state.topicContext;\n this.state.topicContext = {\n // Enable the use of the primary topic reference.\n maxNumOfResolvableTopics: 1,\n // Hide the use of any topic references from outer contexts.\n maxTopicIndex: null,\n };\n\n try {\n return callback();\n } finally {\n this.state.topicContext = outerContextTopicState;\n }\n }\n\n // This helper method is used only with the deprecated smart-mix pipe proposal.\n // Disables topic references from outer contexts within syntax constructs\n // such as the bodies of iteration statements.\n // The function modifies the parser's topic-context state to enable or disable\n // the use of topic references with the smartPipelines plugin. They then run a\n // callback, then they reset the parser to the old topic-context state that it\n // had before the function was called.\n\n withSmartMixTopicForbiddingContext<T>(callback: () => T): T {\n if (this.hasPlugin([\"pipelineOperator\", { proposal: \"smart\" }])) {\n // Reset the parser’s topic context only if the smart-mix pipe proposal is active.\n const outerContextTopicState = this.state.topicContext;\n this.state.topicContext = {\n // Disable the use of the primary topic reference.\n maxNumOfResolvableTopics: 0,\n // Hide the use of any topic references from outer contexts.\n maxTopicIndex: null,\n };\n\n try {\n return callback();\n } finally {\n this.state.topicContext = outerContextTopicState;\n }\n } else {\n // If the pipe proposal is \"minimal\", \"fsharp\", or \"hack\",\n // or if no pipe proposal is active,\n // then the callback result is returned\n // without touching any extra parser state.\n return callback();\n }\n }\n\n withSoloAwaitPermittingContext<T>(callback: () => T): T {\n const outerContextSoloAwaitState = this.state.soloAwait;\n this.state.soloAwait = true;\n\n try {\n return callback();\n } finally {\n this.state.soloAwait = outerContextSoloAwaitState;\n }\n }\n\n allowInAnd<T>(callback: () => T): T {\n const flags = this.prodParam.currentFlags();\n const prodParamToSet = PARAM_IN & ~flags;\n if (prodParamToSet) {\n this.prodParam.enter(flags | PARAM_IN);\n try {\n return callback();\n } finally {\n this.prodParam.exit();\n }\n }\n return callback();\n }\n\n disallowInAnd<T>(callback: () => T): T {\n const flags = this.prodParam.currentFlags();\n const prodParamToClear = PARAM_IN & flags;\n if (prodParamToClear) {\n this.prodParam.enter(flags & ~PARAM_IN);\n try {\n return callback();\n } finally {\n this.prodParam.exit();\n }\n }\n return callback();\n }\n\n // Register the use of a topic reference within the current\n // topic-binding context.\n registerTopicReference(): void {\n this.state.topicContext.maxTopicIndex = 0;\n }\n\n topicReferenceIsAllowedInCurrentContext(): boolean {\n return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n }\n\n topicReferenceWasUsedInCurrentContext(): boolean {\n return (\n this.state.topicContext.maxTopicIndex != null &&\n this.state.topicContext.maxTopicIndex >= 0\n );\n }\n\n parseFSharpPipelineBody(this: Parser, prec: number): N.Expression {\n const startLoc = this.state.startLoc;\n\n this.state.potentialArrowAt = this.state.start;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = true;\n\n const ret = this.parseExprOp(\n this.parseMaybeUnaryOrPrivate(),\n startLoc,\n prec,\n );\n\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n return ret;\n }\n\n // https://github.com/tc39/proposal-js-module-blocks\n parseModuleExpression(this: Parser): N.ModuleExpression {\n this.expectPlugin(\"moduleBlocks\");\n const node = this.startNode<N.ModuleExpression>();\n this.next(); // eat \"module\"\n if (!this.match(tt.braceL)) {\n this.unexpected(null, tt.braceL);\n }\n // start program node immediately after `{`\n const program = this.startNodeAt<N.Program>(this.state.endLoc);\n this.next(); // eat `{`\n\n const revertScopes = this.initializeScopes(/** inModule */ true);\n this.enterInitialScopes();\n\n try {\n node.body = this.parseProgram(program, tt.braceR, \"module\");\n } finally {\n revertScopes();\n }\n return this.finishNode<N.ModuleExpression>(node, \"ModuleExpression\");\n }\n\n // Used in Flow plugin\n parsePropertyNamePrefixOperator(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n prop: Undone<N.ObjectOrClassMember | N.ClassMember>,\n ): void {}\n}\n","import type * as N from \"../types.ts\";\nimport {\n tokenIsIdentifier,\n tokenIsKeywordOrIdentifier,\n tokenIsLoop,\n tokenIsTemplate,\n tt,\n type TokenType,\n getExportedToken,\n} from \"../tokenizer/types.ts\";\nimport ExpressionParser from \"./expression.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport { isIdentifierChar, isIdentifierStart } from \"../util/identifier.ts\";\nimport * as charCodes from \"charcodes\";\nimport {\n ScopeFlag,\n ClassElementType,\n type BindingTypes,\n BindingFlag,\n} from \"../util/scopeflags.ts\";\nimport { ExpressionErrors } from \"./util.ts\";\nimport { PARAM, functionFlags } from \"../util/production-parameter.ts\";\nimport {\n newExpressionScope,\n newParameterDeclarationScope,\n} from \"../util/expression-scope.ts\";\nimport type { SourceType } from \"../options.ts\";\nimport { Token } from \"../tokenizer/index.ts\";\nimport type { Position } from \"../util/location.ts\";\nimport { createPositionWithColumnOffset } from \"../util/location.ts\";\nimport { cloneStringLiteral, cloneIdentifier, type Undone } from \"./node.ts\";\nimport type Parser from \"./index.ts\";\nimport { ParseBindingListFlags } from \"./lval.ts\";\n\nconst loopLabel = { kind: \"loop\" } as const,\n switchLabel = { kind: \"switch\" } as const;\n\nexport const enum ParseFunctionFlag {\n Expression = 0b0000,\n Declaration = 0b0001,\n HangingDeclaration = 0b0010,\n NullableId = 0b0100,\n Async = 0b1000,\n}\n\nexport const enum ParseStatementFlag {\n StatementOnly = 0b0000,\n AllowImportExport = 0b0001,\n AllowDeclaration = 0b0010,\n AllowFunctionDeclaration = 0b0100,\n AllowLabeledFunction = 0b1000,\n}\n\nconst loneSurrogate = /[\\uD800-\\uDFFF]/u;\n\nconst keywordRelationalOperator = /in(?:stanceof)?/y;\n\n/**\n * Convert tokens for backward Babel 7 compat.\n * tt.privateName => tt.hash + tt.name\n * tt.templateTail => tt.backquote/tt.braceR + tt.template + tt.backquote\n * tt.templateNonTail => tt.backquote/tt.braceR + tt.template + tt.dollarBraceL\n * For performance reasons this routine mutates `tokens`, it is okay\n * here since we execute `parseTopLevel` once for every file.\n */\nfunction babel7CompatTokens(tokens: (Token | N.Comment)[], input: string) {\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const { type } = token;\n if (typeof type === \"number\") {\n if (!process.env.BABEL_8_BREAKING) {\n if (type === tt.privateName) {\n const { loc, start, value, end } = token;\n const hashEndPos = start + 1;\n const hashEndLoc = createPositionWithColumnOffset(loc.start, 1);\n tokens.splice(\n i,\n 1,\n new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.hash),\n value: \"#\",\n start: start,\n end: hashEndPos,\n startLoc: loc.start,\n endLoc: hashEndLoc,\n }),\n new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.name),\n value: value,\n start: hashEndPos,\n end: end,\n startLoc: hashEndLoc,\n endLoc: loc.end,\n }),\n );\n i++;\n continue;\n }\n\n if (tokenIsTemplate(type)) {\n const { loc, start, value, end } = token;\n const backquoteEnd = start + 1;\n const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1);\n let startToken;\n if (input.charCodeAt(start) === charCodes.graveAccent) {\n startToken = new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.backQuote),\n value: \"`\",\n start: start,\n end: backquoteEnd,\n startLoc: loc.start,\n endLoc: backquoteEndLoc,\n });\n } else {\n startToken = new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.braceR),\n value: \"}\",\n start: start,\n end: backquoteEnd,\n startLoc: loc.start,\n endLoc: backquoteEndLoc,\n });\n }\n let templateValue,\n templateElementEnd,\n templateElementEndLoc,\n endToken;\n if (type === tt.templateTail) {\n // ends with '`'\n templateElementEnd = end - 1;\n templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1);\n templateValue = value === null ? null : value.slice(1, -1);\n endToken = new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.backQuote),\n value: \"`\",\n start: templateElementEnd,\n end: end,\n startLoc: templateElementEndLoc,\n endLoc: loc.end,\n });\n } else {\n // ends with `${`\n templateElementEnd = end - 2;\n templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2);\n templateValue = value === null ? null : value.slice(1, -2);\n endToken = new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.dollarBraceL),\n value: \"${\",\n start: templateElementEnd,\n end: end,\n startLoc: templateElementEndLoc,\n endLoc: loc.end,\n });\n }\n tokens.splice(\n i,\n 1,\n startToken,\n new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.template),\n value: templateValue,\n start: backquoteEnd,\n end: templateElementEnd,\n startLoc: backquoteEndLoc,\n endLoc: templateElementEndLoc,\n }),\n endToken,\n );\n i += 2;\n continue;\n }\n }\n // @ts-expect-error: we manipulate `token` for performance reasons\n token.type = getExportedToken(type);\n }\n }\n return tokens;\n}\nexport default abstract class StatementParser extends ExpressionParser {\n // ### Statement parsing\n\n // Parse a program. Initializes the parser, reads any number of\n // statements, and wraps them in a Program node. Optionally takes a\n // `program` argument. If present, the statements will be appended\n // to its body instead of creating a new node.\n\n parseTopLevel(this: Parser, file: N.File, program: N.Program): N.File {\n file.program = this.parseProgram(program);\n file.comments = this.state.comments;\n\n if (this.options.tokens) {\n file.tokens = babel7CompatTokens(this.tokens, this.input);\n }\n\n return this.finishNode(file, \"File\");\n }\n\n parseProgram(\n this: Parser,\n program: Undone<N.Program>,\n end: TokenType = tt.eof,\n sourceType: SourceType = this.options.sourceType,\n ): N.Program {\n program.sourceType = sourceType;\n program.interpreter = this.parseInterpreterDirective();\n this.parseBlockBody(program, true, true, end);\n if (\n this.inModule &&\n !this.options.allowUndeclaredExports &&\n this.scope.undefinedExports.size > 0\n ) {\n for (const [localName, at] of Array.from(this.scope.undefinedExports)) {\n this.raise(Errors.ModuleExportUndefined, { at, localName });\n }\n }\n let finishedProgram: N.Program;\n if (end === tt.eof) {\n // finish at eof for top level program\n finishedProgram = this.finishNode(program, \"Program\");\n } else {\n // finish immediately before the end token\n finishedProgram = this.finishNodeAt(\n program,\n \"Program\",\n createPositionWithColumnOffset(this.state.startLoc, -1),\n );\n }\n return finishedProgram;\n }\n\n /**\n * cast a Statement to a Directive. This method mutates input statement.\n */\n stmtToDirective(stmt: N.Statement): N.Directive {\n const directive = stmt as any;\n directive.type = \"Directive\";\n directive.value = directive.expression;\n delete directive.expression;\n\n const directiveLiteral = directive.value;\n const expressionValue = directiveLiteral.value;\n const raw = this.input.slice(directiveLiteral.start, directiveLiteral.end);\n const val = (directiveLiteral.value = raw.slice(1, -1)); // remove quotes\n\n this.addExtra(directiveLiteral, \"raw\", raw);\n this.addExtra(directiveLiteral, \"rawValue\", val);\n this.addExtra(directiveLiteral, \"expressionValue\", expressionValue);\n\n directiveLiteral.type = \"DirectiveLiteral\";\n\n return directive;\n }\n\n parseInterpreterDirective(): N.InterpreterDirective | null {\n if (!this.match(tt.interpreterDirective)) {\n return null;\n }\n\n const node = this.startNode<N.InterpreterDirective>();\n node.value = this.state.value;\n this.next();\n return this.finishNode(node, \"InterpreterDirective\");\n }\n\n isLet(): boolean {\n if (!this.isContextual(tt._let)) {\n return false;\n }\n return this.hasFollowingBindingAtom();\n }\n\n chStartsBindingIdentifier(ch: number, pos: number) {\n if (isIdentifierStart(ch)) {\n keywordRelationalOperator.lastIndex = pos;\n if (keywordRelationalOperator.test(this.input)) {\n // We have seen `in` or `instanceof` so far, now check if the identifier\n // ends here\n const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex);\n if (!isIdentifierChar(endCh) && endCh !== charCodes.backslash) {\n return false;\n }\n }\n return true;\n } else if (ch === charCodes.backslash) {\n return true;\n } else {\n return false;\n }\n }\n\n chStartsBindingPattern(ch: number) {\n return (\n ch === charCodes.leftSquareBracket || ch === charCodes.leftCurlyBrace\n );\n }\n\n /**\n * Assuming we have seen a contextual `let` and declaration is allowed, check if it\n * starts a variable declaration so that it should be interpreted as a keyword.\n */\n hasFollowingBindingAtom(): boolean {\n const next = this.nextTokenStart();\n const nextCh = this.codePointAtPos(next);\n return (\n this.chStartsBindingPattern(nextCh) ||\n this.chStartsBindingIdentifier(nextCh, next)\n );\n }\n\n /**\n * Assuming we have seen a contextual `using` and declaration is allowed, check if it\n * starts a variable declaration in the same line so that it should be interpreted as\n * a keyword.\n */\n hasInLineFollowingBindingIdentifier(): boolean {\n const next = this.nextTokenInLineStart();\n const nextCh = this.codePointAtPos(next);\n return this.chStartsBindingIdentifier(nextCh, next);\n }\n\n startsUsingForOf(): boolean {\n const { type, containsEsc } = this.lookahead();\n if (type === tt._of && !containsEsc) {\n // `using of` must start a for-lhs-of statement\n return false;\n } else if (tokenIsIdentifier(type) && !this.hasFollowingLineBreak()) {\n this.expectPlugin(\"explicitResourceManagement\");\n return true;\n }\n }\n\n startsAwaitUsing(): boolean {\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\n // https://tc39.es/ecma262/#prod-ModuleItem\n parseModuleItem(this: Parser) {\n return this.parseStatementLike(\n ParseStatementFlag.AllowImportExport |\n ParseStatementFlag.AllowDeclaration |\n ParseStatementFlag.AllowFunctionDeclaration |\n // This function is actually also used to parse StatementItems,\n // which with Annex B enabled allows labeled functions.\n ParseStatementFlag.AllowLabeledFunction,\n );\n }\n\n // https://tc39.es/ecma262/#prod-StatementListItem\n parseStatementListItem(this: Parser) {\n return this.parseStatementLike(\n ParseStatementFlag.AllowDeclaration |\n ParseStatementFlag.AllowFunctionDeclaration |\n (!this.options.annexB || this.state.strict\n ? 0\n : ParseStatementFlag.AllowLabeledFunction),\n );\n }\n\n parseStatementOrSloppyAnnexBFunctionDeclaration(\n this: Parser,\n allowLabeledFunction: boolean = false,\n ) {\n let flags: ParseStatementFlag = ParseStatementFlag.StatementOnly;\n if (this.options.annexB && !this.state.strict) {\n flags |= ParseStatementFlag.AllowFunctionDeclaration;\n if (allowLabeledFunction) {\n flags |= ParseStatementFlag.AllowLabeledFunction;\n }\n }\n return this.parseStatementLike(flags);\n }\n\n // Parse a single statement.\n //\n // If expecting a statement and finding a slash operator, parse a\n // regular expression literal. This is to handle cases like\n // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n // does not help.\n // https://tc39.es/ecma262/#prod-Statement\n parseStatement(this: Parser) {\n return this.parseStatementLike(ParseStatementFlag.StatementOnly);\n }\n\n // ImportDeclaration and ExportDeclaration are also handled here so we can throw recoverable errors\n // when they are not at the top level\n parseStatementLike(\n this: Parser,\n flags: ParseStatementFlag,\n ):\n | N.Statement\n | N.Declaration\n | N.ImportDeclaration\n | N.ExportDefaultDeclaration\n | N.ExportNamedDeclaration\n | N.ExportAllDeclaration {\n let decorators: N.Decorator[] | null = null;\n\n if (this.match(tt.at)) {\n decorators = this.parseDecorators(true);\n }\n return this.parseStatementContent(flags, decorators);\n }\n\n parseStatementContent(\n this: Parser,\n flags: ParseStatementFlag,\n decorators?: N.Decorator[] | null,\n ): N.Statement {\n const starttype = this.state.type;\n const node = this.startNode();\n const allowDeclaration = !!(flags & ParseStatementFlag.AllowDeclaration);\n const allowFunctionDeclaration = !!(\n flags & ParseStatementFlag.AllowFunctionDeclaration\n );\n const topLevel = flags & ParseStatementFlag.AllowImportExport;\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case tt._break:\n return this.parseBreakContinueStatement(node, /* isBreak */ true);\n case tt._continue:\n return this.parseBreakContinueStatement(node, /* isBreak */ false);\n case tt._debugger:\n return this.parseDebuggerStatement(node as Undone<N.DebuggerStatement>);\n case tt._do:\n return this.parseDoWhileStatement(node as Undone<N.DoWhileStatement>);\n case tt._for:\n return this.parseForStatement(node as Undone<N.ForStatement>);\n case tt._function:\n if (this.lookaheadCharCode() === charCodes.dot) break;\n if (!allowFunctionDeclaration) {\n this.raise(\n this.state.strict\n ? Errors.StrictFunction\n : this.options.annexB\n ? Errors.SloppyFunctionAnnexB\n : Errors.SloppyFunction,\n { at: this.state.startLoc },\n );\n }\n return this.parseFunctionStatement(\n node as Undone<N.FunctionDeclaration>,\n false,\n !allowDeclaration && allowFunctionDeclaration,\n );\n case tt._class:\n if (!allowDeclaration) this.unexpected();\n return this.parseClass(\n this.maybeTakeDecorators(\n decorators,\n node as Undone<N.ClassDeclaration>,\n ),\n true,\n );\n\n case tt._if:\n return this.parseIfStatement(node as Undone<N.IfStatement>);\n case tt._return:\n return this.parseReturnStatement(node as Undone<N.ReturnStatement>);\n case tt._switch:\n return this.parseSwitchStatement(node as Undone<N.SwitchStatement>);\n case tt._throw:\n return this.parseThrowStatement(node as Undone<N.ThrowStatement>);\n case tt._try:\n return this.parseTryStatement(node as Undone<N.TryStatement>);\n\n case tt._await:\n // [+Await] await [no LineTerminator here] using [no LineTerminator here] BindingList[+Using]\n if (!this.state.containsEsc && this.startsAwaitUsing()) {\n if (!this.isAwaitAllowed()) {\n this.raise(Errors.AwaitUsingNotInAsyncContext, { at: node });\n } else if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, {\n at: node,\n });\n }\n this.next(); // eat 'await'\n return this.parseVarStatement(\n node as Undone<N.VariableDeclaration>,\n \"await using\",\n );\n }\n break;\n case tt._using:\n // using [no LineTerminator here] BindingList[+Using]\n if (\n this.state.containsEsc ||\n !this.hasInLineFollowingBindingIdentifier()\n ) {\n break;\n }\n this.expectPlugin(\"explicitResourceManagement\");\n if (!this.scope.inModule && this.scope.inTopLevel) {\n this.raise(Errors.UnexpectedUsingDeclaration, {\n at: this.state.startLoc,\n });\n } else if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, {\n at: this.state.startLoc,\n });\n }\n return this.parseVarStatement(\n node as Undone<N.VariableDeclaration>,\n \"using\",\n );\n case tt._let: {\n if (this.state.containsEsc) {\n break;\n }\n // `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n const next = this.nextTokenStart();\n const nextCh = this.codePointAtPos(next);\n if (nextCh !== charCodes.leftSquareBracket) {\n if (!allowDeclaration && this.hasFollowingLineBreak()) break;\n if (\n !this.chStartsBindingIdentifier(nextCh, next) &&\n nextCh !== charCodes.leftCurlyBrace\n ) {\n break;\n }\n }\n }\n // fall through\n case tt._const: {\n if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, {\n at: this.state.startLoc,\n });\n }\n }\n // fall through\n case tt._var: {\n const kind = this.state.value;\n return this.parseVarStatement(\n node as Undone<N.VariableDeclaration>,\n kind,\n );\n }\n case tt._while:\n return this.parseWhileStatement(node as Undone<N.WhileStatement>);\n case tt._with:\n return this.parseWithStatement(node as Undone<N.WithStatement>);\n case tt.braceL:\n return this.parseBlock();\n case tt.semi:\n return this.parseEmptyStatement(node as Undone<N.EmptyStatement>);\n case tt._import: {\n const nextTokenCharCode = this.lookaheadCharCode();\n if (\n nextTokenCharCode === charCodes.leftParenthesis || // import()\n nextTokenCharCode === charCodes.dot // import.meta\n ) {\n break;\n }\n }\n // fall through\n case tt._export: {\n if (!this.options.allowImportExportEverywhere && !topLevel) {\n this.raise(Errors.UnexpectedImportExport, {\n at: this.state.startLoc,\n });\n }\n\n this.next(); // eat `import`/`export`\n\n let result;\n if (starttype === tt._import) {\n result = this.parseImport(node as Undone<N.ImportDeclaration>);\n\n if (\n result.type === \"ImportDeclaration\" &&\n (!result.importKind || result.importKind === \"value\")\n ) {\n this.sawUnambiguousESM = true;\n }\n } else {\n result = this.parseExport(\n node as Undone<\n | N.ExportAllDeclaration\n | N.ExportDefaultDeclaration\n | N.ExportDefaultDeclaration\n >,\n decorators,\n );\n\n if (\n (result.type === \"ExportNamedDeclaration\" &&\n (!result.exportKind || result.exportKind === \"value\")) ||\n (result.type === \"ExportAllDeclaration\" &&\n (!result.exportKind || result.exportKind === \"value\")) ||\n result.type === \"ExportDefaultDeclaration\"\n ) {\n this.sawUnambiguousESM = true;\n }\n }\n\n this.assertModuleNodeAllowed(result);\n\n return result;\n }\n\n default: {\n if (this.isAsyncFunction()) {\n if (!allowDeclaration) {\n this.raise(Errors.AsyncFunctionInSingleStatementContext, {\n at: this.state.startLoc,\n });\n }\n this.next(); // eat 'async'\n return this.parseFunctionStatement(\n node as Undone<N.FunctionDeclaration>,\n true,\n !allowDeclaration && allowFunctionDeclaration,\n );\n }\n }\n }\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n const maybeName = this.state.value;\n const expr = this.parseExpression();\n\n if (\n tokenIsIdentifier(starttype) &&\n expr.type === \"Identifier\" &&\n this.eat(tt.colon)\n ) {\n return this.parseLabeledStatement(\n node as Undone<N.LabeledStatement>,\n maybeName,\n // @ts-expect-error migrate to Babel types\n expr,\n flags,\n );\n } else {\n return this.parseExpressionStatement(\n node as Undone<N.ExpressionStatement>,\n expr,\n decorators,\n );\n }\n }\n\n assertModuleNodeAllowed(node: N.Node): void {\n if (!this.options.allowImportExportEverywhere && !this.inModule) {\n this.raise(Errors.ImportOutsideModule, { at: node });\n }\n }\n\n decoratorsEnabledBeforeExport(): boolean {\n if (this.hasPlugin(\"decorators-legacy\")) return true;\n return (\n this.hasPlugin(\"decorators\") &&\n this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") !== false\n );\n }\n\n // Attach the decorators to the given class.\n // NOTE: This method changes the .start location of the class, and thus\n // can affect comment attachment. Calling it before or after finalizing\n // the class node (and thus finalizing its comments) changes how comments\n // before the `class` keyword or before the final .start location of the\n // class are attached.\n maybeTakeDecorators<T extends Undone<N.Class>>(\n maybeDecorators: N.Decorator[] | null,\n classNode: T,\n exportNode?: Undone<N.ExportDefaultDeclaration | N.ExportNamedDeclaration>,\n ): T {\n if (maybeDecorators) {\n if (classNode.decorators && classNode.decorators.length > 0) {\n // Note: decorators attachment is only attempred multiple times\n // when the class is part of an export declaration.\n if (\n typeof this.getPluginOption(\n \"decorators\",\n \"decoratorsBeforeExport\",\n ) !== \"boolean\"\n ) {\n // If `decoratorsBeforeExport` was set to `true` or `false`, we\n // already threw an error about decorators not being in a valid\n // position.\n this.raise(Errors.DecoratorsBeforeAfterExport, {\n at: classNode.decorators[0],\n });\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\n canHaveLeadingDecorator(): boolean {\n return this.match(tt._class);\n }\n\n parseDecorators(this: Parser, allowExport?: boolean): N.Decorator[] {\n const decorators = [];\n do {\n decorators.push(this.parseDecorator());\n } while (this.match(tt.at));\n\n if (this.match(tt._export)) {\n if (!allowExport) {\n this.unexpected();\n }\n\n if (!this.decoratorsEnabledBeforeExport()) {\n this.raise(Errors.DecoratorExportClass, { at: this.state.startLoc });\n }\n } else if (!this.canHaveLeadingDecorator()) {\n throw this.raise(Errors.UnexpectedLeadingDecorator, {\n at: this.state.startLoc,\n });\n }\n\n return decorators;\n }\n\n parseDecorator(this: Parser): N.Decorator {\n this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n\n const node = this.startNode<N.Decorator>();\n this.next();\n\n if (this.hasPlugin(\"decorators\")) {\n const startLoc = this.state.startLoc;\n let expr: N.Expression;\n\n if (this.match(tt.parenL)) {\n const startLoc = this.state.startLoc;\n this.next(); // eat '('\n expr = this.parseExpression();\n this.expect(tt.parenR);\n expr = this.wrapParenthesis(startLoc, expr);\n\n const paramsStartLoc = this.state.startLoc;\n node.expression = this.parseMaybeDecoratorArguments(expr);\n if (\n this.getPluginOption(\"decorators\", \"allowCallParenthesized\") ===\n false &&\n node.expression !== expr\n ) {\n this.raise(Errors.DecoratorArgumentsOutsideParentheses, {\n at: paramsStartLoc,\n });\n }\n } else {\n expr = this.parseIdentifier(false);\n\n while (this.eat(tt.dot)) {\n const node = this.startNodeAt(startLoc);\n node.object = expr;\n if (this.match(tt.privateName)) {\n this.classScope.usePrivateName(\n this.state.value,\n this.state.startLoc,\n );\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\n node.expression = this.parseMaybeDecoratorArguments(expr);\n }\n } else {\n node.expression = this.parseExprSubscripts();\n }\n return this.finishNode(node, \"Decorator\");\n }\n\n parseMaybeDecoratorArguments(this: Parser, expr: N.Expression): N.Expression {\n if (this.eat(tt.parenL)) {\n const node = this.startNodeAtNode(expr);\n node.callee = expr;\n node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n this.toReferencedList(node.arguments);\n return this.finishNode(node, \"CallExpression\");\n }\n\n return expr;\n }\n\n parseBreakContinueStatement(\n node: Undone<N.Node>,\n isBreak: true,\n ): N.BreakStatement;\n parseBreakContinueStatement(\n node: Undone<N.Node>,\n isBreak: false,\n ): N.ContinueStatement;\n parseBreakContinueStatement(\n node: Undone<N.BreakStatement | N.ContinueStatement>,\n isBreak: boolean,\n ): N.BreakStatement | N.ContinueStatement {\n this.next();\n\n if (this.isLineTerminator()) {\n node.label = null;\n } else {\n node.label = this.parseIdentifier();\n this.semicolon();\n }\n\n this.verifyBreakContinue(node, isBreak);\n\n return this.finishNode(\n node,\n isBreak ? \"BreakStatement\" : \"ContinueStatement\",\n );\n }\n\n verifyBreakContinue(\n node: Undone<N.BreakStatement | N.ContinueStatement>,\n isBreak: boolean,\n ) {\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 === \"loop\")) break;\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, { at: node, type });\n }\n }\n\n parseDebuggerStatement(\n node: Undone<N.DebuggerStatement>,\n ): N.DebuggerStatement {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\");\n }\n\n parseHeaderExpression(this: Parser): N.Expression {\n this.expect(tt.parenL);\n const val = this.parseExpression();\n this.expect(tt.parenR);\n return val;\n }\n\n // https://tc39.es/ecma262/#prod-DoWhileStatement\n parseDoWhileStatement(\n this: Parser,\n node: Undone<N.DoWhileStatement>,\n ): N.DoWhileStatement {\n this.next();\n this.state.labels.push(loopLabel);\n\n // Parse the loop body's body.\n node.body =\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the loop body. They are permitted in test expressions,\n // outside of the loop body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse the loop body's body.\n this.parseStatement(),\n );\n\n this.state.labels.pop();\n\n this.expect(tt._while);\n node.test = this.parseHeaderExpression();\n this.eat(tt.semi);\n return this.finishNode(node, \"DoWhileStatement\");\n }\n\n // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n // loop is non-trivial. Basically, we have to parse the init `var`\n // statement or expression, disallowing the `in` operator (see\n // the second parameter to `parseExpression`), and then check\n // whether the next token is `in` or `of`. When there is no init\n // part (semicolon immediately after the opening parenthesis), it\n // is a regular `for` loop.\n\n parseForStatement(\n this: Parser,\n node: Undone<N.ForStatement | N.ForInOf>,\n ): N.ForLike {\n this.next();\n this.state.labels.push(loopLabel);\n\n let awaitAt = null;\n\n if (this.isAwaitAllowed() && this.eatContextual(tt._await)) {\n awaitAt = this.state.lastTokStartLoc;\n }\n this.scope.enter(ScopeFlag.OTHER);\n this.expect(tt.parenL);\n\n if (this.match(tt.semi)) {\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node as Undone<N.ForStatement>, null);\n }\n\n const startsWithLet = this.isContextual(tt._let);\n {\n const startsWithAwaitUsing =\n this.isContextual(tt._await) && this.startsAwaitUsing();\n const starsWithUsingDeclaration =\n startsWithAwaitUsing ||\n (this.isContextual(tt._using) && this.startsUsingForOf());\n const isLetOrUsing =\n (startsWithLet && this.hasFollowingBindingAtom()) ||\n starsWithUsingDeclaration;\n\n if (this.match(tt._var) || this.match(tt._const) || isLetOrUsing) {\n const initNode = this.startNode<N.VariableDeclaration>();\n let kind;\n if (startsWithAwaitUsing) {\n kind = \"await using\";\n if (!this.isAwaitAllowed()) {\n this.raise(Errors.AwaitUsingNotInAsyncContext, {\n at: this.state.startLoc,\n });\n }\n this.next(); // eat 'await'\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\n const isForIn = this.match(tt._in);\n if (isForIn && starsWithUsingDeclaration) {\n this.raise(Errors.ForInUsing, { at: init });\n }\n if (\n (isForIn || this.isContextual(tt._of)) &&\n init.declarations.length === 1\n ) {\n return this.parseForIn(node as Undone<N.ForInOf>, init, awaitAt);\n }\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node as Undone<N.ForStatement>, init);\n }\n }\n\n // Check whether the first token is possibly a contextual keyword, so that\n // we can forbid `for (async of` if this turns out to be a for-of loop.\n const startsWithAsync = this.isContextual(tt._async);\n\n const refExpressionErrors = new ExpressionErrors();\n const init = this.parseExpression(true, refExpressionErrors);\n const isForOf = this.isContextual(tt._of);\n if (isForOf) {\n // Check for leading tokens that are forbidden in for-of loops:\n if (startsWithLet) {\n this.raise(Errors.ForOfLet, { at: init });\n }\n\n if (\n // `for await (async of []);` is allowed.\n awaitAt === null &&\n startsWithAsync &&\n init.type === \"Identifier\"\n ) {\n // This catches the case where the `async` in `for (async of` was\n // parsed as an identifier. If it was parsed as the start of an async\n // arrow function (e.g. `for (async of => {} of []);`), the LVal check\n // further down will raise a more appropriate error.\n this.raise(Errors.ForOfAsync, { at: init });\n }\n }\n if (isForOf || this.match(tt._in)) {\n this.checkDestructuringPrivate(refExpressionErrors);\n this.toAssignable(init, /* isLHS */ true);\n const type = isForOf ? \"ForOfStatement\" : \"ForInStatement\";\n this.checkLVal(init, { in: { type } });\n return this.parseForIn(\n node as Undone<N.ForInStatement | N.ForOfStatement>,\n // @ts-expect-error init has been transformed to an assignable\n init,\n awaitAt,\n );\n } else {\n this.checkExpressionErrors(refExpressionErrors, true);\n }\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node as Undone<N.ForStatement>, init);\n }\n\n // https://tc39.es/ecma262/#prod-HoistableDeclaration\n parseFunctionStatement(\n this: Parser,\n node: Undone<N.FunctionDeclaration>,\n isAsync: boolean,\n isHangingDeclaration: boolean,\n ): N.FunctionDeclaration {\n this.next(); // eat 'function'\n return this.parseFunction(\n node,\n ParseFunctionFlag.Declaration |\n (isHangingDeclaration ? ParseFunctionFlag.HangingDeclaration : 0) |\n (isAsync ? ParseFunctionFlag.Async : 0),\n );\n }\n\n // https://tc39.es/ecma262/#prod-IfStatement\n parseIfStatement(this: Parser, node: Undone<N.IfStatement>) {\n this.next();\n node.test = this.parseHeaderExpression();\n // Annex B.3.3\n // https://tc39.es/ecma262/#sec-functiondeclarations-in-ifstatement-statement-clauses\n node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration();\n node.alternate = this.eat(tt._else)\n ? this.parseStatementOrSloppyAnnexBFunctionDeclaration()\n : null;\n return this.finishNode(node, \"IfStatement\");\n }\n\n parseReturnStatement(this: Parser, node: Undone<N.ReturnStatement>) {\n if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n this.raise(Errors.IllegalReturn, { at: this.state.startLoc });\n }\n\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.isLineTerminator()) {\n node.argument = null;\n } else {\n node.argument = this.parseExpression();\n this.semicolon();\n }\n\n return this.finishNode(node, \"ReturnStatement\");\n }\n\n // https://tc39.es/ecma262/#prod-SwitchStatement\n parseSwitchStatement(this: Parser, node: Undone<N.SwitchStatement>) {\n this.next();\n node.discriminant = this.parseHeaderExpression();\n const cases: N.SwitchStatement[\"cases\"] = (node.cases = []);\n this.expect(tt.braceL);\n this.state.labels.push(switchLabel);\n this.scope.enter(ScopeFlag.OTHER);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n let cur;\n for (let sawDefault; !this.match(tt.braceR); ) {\n if (this.match(tt._case) || this.match(tt._default)) {\n const isCase = this.match(tt._case);\n if (cur) this.finishNode(cur, \"SwitchCase\");\n // @ts-expect-error Fixme\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, {\n at: this.state.lastTokStartLoc,\n });\n }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(tt.colon);\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(); // Closing brace\n this.state.labels.pop();\n return this.finishNode(node, \"SwitchStatement\");\n }\n\n parseThrowStatement(this: Parser, node: Undone<N.ThrowStatement>) {\n this.next();\n if (this.hasPrecedingLineBreak()) {\n this.raise(Errors.NewlineAfterThrow, { at: this.state.lastTokEndLoc });\n }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\");\n }\n\n parseCatchClauseParam(this: Parser): N.Pattern {\n const param = this.parseBindingAtom();\n\n this.scope.enter(\n this.options.annexB && param.type === \"Identifier\"\n ? ScopeFlag.SIMPLE_CATCH\n : 0,\n );\n this.checkLVal(param, {\n in: { type: \"CatchClause\" },\n binding: BindingFlag.TYPE_CATCH_PARAM,\n });\n\n return param;\n }\n\n parseTryStatement(\n this: Parser,\n node: Undone<N.TryStatement>,\n ): N.TryStatement {\n this.next();\n\n node.block = this.parseBlock();\n node.handler = null;\n\n if (this.match(tt._catch)) {\n const clause = this.startNode<N.CatchClause>();\n this.next();\n if (this.match(tt.parenL)) {\n this.expect(tt.parenL);\n clause.param = this.parseCatchClauseParam();\n this.expect(tt.parenR);\n } else {\n clause.param = null;\n this.scope.enter(ScopeFlag.OTHER);\n }\n\n // Parse the catch clause's body.\n clause.body =\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the catch clause's body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse the catch clause's body.\n this.parseBlock(false, false),\n );\n\n this.scope.exit();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n\n node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null;\n\n if (!node.handler && !node.finalizer) {\n this.raise(Errors.NoCatchOrFinally, { at: node });\n }\n\n return this.finishNode(node, \"TryStatement\");\n }\n\n // https://tc39.es/ecma262/#prod-VariableStatement\n // https://tc39.es/ecma262/#prod-LexicalDeclaration\n parseVarStatement(\n this: Parser,\n node: Undone<N.VariableDeclaration>,\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n allowMissingInitializer: boolean = false,\n ): N.VariableDeclaration {\n this.next();\n this.parseVar(node, false, kind, allowMissingInitializer);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\");\n }\n\n // https://tc39.es/ecma262/#prod-WhileStatement\n parseWhileStatement(\n this: Parser,\n node: Undone<N.WhileStatement>,\n ): N.WhileStatement {\n this.next();\n node.test = this.parseHeaderExpression();\n this.state.labels.push(loopLabel);\n\n // Parse the loop body.\n node.body =\n // For the smartPipelines plugin:\n // Disable topic references from outer contexts within the loop body.\n // They are permitted in test expressions, outside of the loop body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse loop body.\n this.parseStatement(),\n );\n\n this.state.labels.pop();\n\n return this.finishNode(node, \"WhileStatement\");\n }\n\n parseWithStatement(\n this: Parser,\n node: Undone<N.WithStatement>,\n ): N.WithStatement {\n if (this.state.strict) {\n this.raise(Errors.StrictWith, { at: this.state.startLoc });\n }\n this.next();\n node.object = this.parseHeaderExpression();\n\n // Parse the statement body.\n node.body =\n // For the smartPipelines plugin:\n // Disable topic references from outer contexts within the with statement's body.\n // They are permitted in function default-parameter expressions, which are\n // part of the outer context, outside of the with statement's body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse the statement body.\n this.parseStatement(),\n );\n\n return this.finishNode(node, \"WithStatement\");\n }\n\n parseEmptyStatement(node: Undone<N.EmptyStatement>): N.EmptyStatement {\n this.next();\n return this.finishNode(node, \"EmptyStatement\");\n }\n\n // https://tc39.es/ecma262/#prod-LabelledStatement\n parseLabeledStatement(\n this: Parser,\n node: Undone<N.LabeledStatement>,\n maybeName: string,\n expr: N.Identifier,\n flags: ParseStatementFlag,\n ): N.LabeledStatement {\n for (const label of this.state.labels) {\n if (label.name === maybeName) {\n this.raise(Errors.LabelRedeclaration, {\n at: expr,\n labelName: maybeName,\n });\n }\n }\n\n const kind = tokenIsLoop(this.state.type)\n ? \"loop\"\n : this.match(tt._switch)\n ? \"switch\"\n : 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.state.start;\n label.kind = kind;\n } else {\n break;\n }\n }\n\n this.state.labels.push({\n name: maybeName,\n kind: kind,\n statementStart: this.state.start,\n });\n // https://tc39.es/ecma262/#prod-LabelledItem\n node.body =\n flags & ParseStatementFlag.AllowLabeledFunction\n ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true)\n : this.parseStatement();\n\n this.state.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\");\n }\n\n parseExpressionStatement(\n node: Undone<N.ExpressionStatement>,\n expr: N.Expression,\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars -- used in TypeScript parser */\n decorators: N.Decorator[] | null,\n ) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\");\n }\n\n // Parse a semicolon-enclosed block of statements, handling `\"use\n // strict\"` declarations when `allowDirectives` is true (used for\n // function bodies).\n\n parseBlock(\n this: Parser,\n allowDirectives: boolean = false,\n createNewLexicalScope: boolean = true,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): N.BlockStatement {\n const node = this.startNode<N.BlockStatement>();\n if (allowDirectives) {\n this.state.strictErrors.clear();\n }\n this.expect(tt.braceL);\n if (createNewLexicalScope) {\n this.scope.enter(ScopeFlag.OTHER);\n }\n this.parseBlockBody(\n node,\n allowDirectives,\n false,\n tt.braceR,\n afterBlockParse,\n );\n if (createNewLexicalScope) {\n this.scope.exit();\n }\n return this.finishNode(node, \"BlockStatement\");\n }\n\n isValidDirective(stmt: N.Statement): boolean {\n return (\n stmt.type === \"ExpressionStatement\" &&\n stmt.expression.type === \"StringLiteral\" &&\n !stmt.expression.extra.parenthesized\n );\n }\n\n parseBlockBody(\n this: Parser,\n node: Undone<N.BlockStatementLike>,\n allowDirectives: boolean | undefined | null,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void {\n const body: N.BlockStatementLike[\"body\"] = (node.body = []);\n const directives: N.BlockStatementLike[\"directives\"] = (node.directives =\n []);\n this.parseBlockOrModuleBlockBody(\n body,\n allowDirectives ? directives : undefined,\n topLevel,\n end,\n afterBlockParse,\n );\n }\n\n // Undefined directives means that directives are not allowed.\n // https://tc39.es/ecma262/#prod-Block\n // https://tc39.es/ecma262/#prod-ModuleBody\n parseBlockOrModuleBlockBody(\n this: Parser,\n body: N.Statement[],\n directives: N.Directive[] | undefined | null,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void {\n const oldStrict = this.state.strict;\n let hasStrictModeDirective = false;\n let parsedNonDirective = false;\n\n while (!this.match(end)) {\n const stmt = topLevel\n ? this.parseModuleItem()\n : this.parseStatementListItem();\n\n if (directives && !parsedNonDirective) {\n if (this.isValidDirective(stmt)) {\n const directive = this.stmtToDirective(stmt);\n directives.push(directive);\n\n if (\n !hasStrictModeDirective &&\n directive.value.value === \"use strict\"\n ) {\n hasStrictModeDirective = true;\n this.setStrict(true);\n }\n\n continue;\n }\n parsedNonDirective = true;\n // clear strict errors since the strict mode will not change within the block\n this.state.strictErrors.clear();\n }\n body.push(stmt);\n }\n\n afterBlockParse?.call(this, hasStrictModeDirective);\n\n if (!oldStrict) {\n this.setStrict(false);\n }\n\n this.next();\n }\n\n // Parse a regular `for` loop. The disambiguation code in\n // `parseStatement` will already have parsed the init statement or\n // expression.\n\n parseFor(\n this: Parser,\n node: Undone<N.ForStatement>,\n init?: N.VariableDeclaration | N.Expression | null,\n ): N.ForStatement {\n node.init = init;\n this.semicolon(/* allowAsi */ false);\n node.test = this.match(tt.semi) ? null : this.parseExpression();\n this.semicolon(/* allowAsi */ false);\n node.update = this.match(tt.parenR) ? null : this.parseExpression();\n this.expect(tt.parenR);\n\n // Parse the loop body.\n node.body =\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the loop body. They are permitted in test expressions,\n // outside of the loop body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse the loop body.\n this.parseStatement(),\n );\n\n this.scope.exit();\n this.state.labels.pop();\n\n return this.finishNode(node, \"ForStatement\");\n }\n\n // Parse a `for`/`in` and `for`/`of` loop, which are almost\n // same from parser's perspective.\n\n parseForIn(\n this: Parser,\n node: Undone<N.ForInOf>,\n init: N.VariableDeclaration | N.AssignmentPattern,\n awaitAt?: Position | null,\n ): N.ForInOf {\n const isForIn = this.match(tt._in);\n this.next();\n\n if (isForIn) {\n if (awaitAt !== null) this.unexpected(awaitAt);\n } else {\n node.await = awaitAt !== null;\n }\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (!isForIn ||\n !this.options.annexB ||\n this.state.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\")\n ) {\n this.raise(Errors.ForInOfLoopInitializer, {\n at: init,\n type: isForIn ? \"ForInStatement\" : \"ForOfStatement\",\n });\n }\n\n if (init.type === \"AssignmentPattern\") {\n this.raise(Errors.InvalidLhs, {\n at: init,\n ancestor: { type: \"ForStatement\" },\n });\n }\n\n node.left = init;\n node.right = isForIn\n ? this.parseExpression()\n : this.parseMaybeAssignAllowIn();\n this.expect(tt.parenR);\n\n // Parse the loop body.\n node.body =\n // For the smartPipelines plugin:\n // Disable topic references from outer contexts within the loop body.\n // They are permitted in test expressions, outside of the loop body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse loop body.\n this.parseStatement(),\n );\n\n this.scope.exit();\n this.state.labels.pop();\n\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n }\n\n // Parse a list of variable declarations.\n\n parseVar(\n this: Parser,\n node: Undone<N.VariableDeclaration>,\n isFor: boolean,\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n allowMissingInitializer: boolean = false,\n ): Undone<N.VariableDeclaration> {\n const declarations: N.VariableDeclarator[] = (node.declarations = []);\n node.kind = kind;\n for (;;) {\n const decl = this.startNode<N.VariableDeclarator>();\n this.parseVarId(decl, kind);\n decl.init = !this.eat(tt.eq)\n ? null\n : isFor\n ? this.parseMaybeAssignDisallowIn()\n : this.parseMaybeAssignAllowIn();\n\n if (decl.init === null && !allowMissingInitializer) {\n if (\n decl.id.type !== \"Identifier\" &&\n !(isFor && (this.match(tt._in) || this.isContextual(tt._of)))\n ) {\n this.raise(Errors.DeclarationMissingInitializer, {\n at: this.state.lastTokEndLoc,\n kind: \"destructuring\",\n });\n } else if (\n kind === \"const\" &&\n !(this.match(tt._in) || this.isContextual(tt._of))\n ) {\n this.raise(Errors.DeclarationMissingInitializer, {\n at: this.state.lastTokEndLoc,\n kind: \"const\",\n });\n }\n }\n declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(tt.comma)) break;\n }\n return node;\n }\n\n parseVarId(\n this: Parser,\n decl: Undone<N.VariableDeclarator>,\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n ): void {\n const id = this.parseBindingAtom();\n this.checkLVal(id, {\n in: { type: \"VariableDeclarator\" },\n binding: kind === \"var\" ? BindingFlag.TYPE_VAR : BindingFlag.TYPE_LEXICAL,\n });\n decl.id = id;\n }\n\n // https://tc39.es/ecma262/#prod-AsyncFunctionExpression\n parseAsyncFunctionExpression(\n this: Parser,\n node: Undone<N.FunctionExpression>,\n ): N.FunctionExpression {\n return this.parseFunction(node, ParseFunctionFlag.Async);\n }\n\n // Parse a function declaration or expression (depending on the\n // ParseFunctionFlag.Declaration flag).\n\n parseFunction<T extends N.NormalFunction>(\n this: Parser,\n node: Undone<T>,\n flags: ParseFunctionFlag = ParseFunctionFlag.Expression,\n ): T {\n const hangingDeclaration = flags & ParseFunctionFlag.HangingDeclaration;\n const isDeclaration = !!(flags & ParseFunctionFlag.Declaration);\n const requireId = isDeclaration && !(flags & ParseFunctionFlag.NullableId);\n const isAsync = !!(flags & ParseFunctionFlag.Async);\n\n this.initFunction(node, isAsync);\n\n if (this.match(tt.star)) {\n if (hangingDeclaration) {\n this.raise(Errors.GeneratorInSingleStatementContext, {\n at: this.state.startLoc,\n });\n }\n this.next(); // eat *\n node.generator = true;\n }\n\n if (isDeclaration) {\n node.id = this.parseFunctionId(requireId);\n }\n\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n this.state.maybeInArrowParameters = false;\n this.scope.enter(ScopeFlag.FUNCTION);\n this.prodParam.enter(functionFlags(isAsync, node.generator));\n\n if (!isDeclaration) {\n node.id = this.parseFunctionId();\n }\n\n this.parseFunctionParams(node, /* isConstructor */ false);\n\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the function body. They are permitted in function\n // default-parameter expressions, outside of the function body.\n this.withSmartMixTopicForbiddingContext(() => {\n // Parse the function body.\n this.parseFunctionBodyAndFinish(\n node,\n isDeclaration ? \"FunctionDeclaration\" : \"FunctionExpression\",\n );\n });\n\n this.prodParam.exit();\n this.scope.exit();\n\n if (isDeclaration && !hangingDeclaration) {\n // We need to register this _after_ parsing the function body\n // because of TypeScript body-less function declarations,\n // which shouldn't be added to the scope.\n this.registerFunctionStatementId(node as T);\n }\n\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n return node as T;\n }\n\n parseFunctionId(requireId?: boolean): N.Identifier | undefined | null {\n return requireId || tokenIsIdentifier(this.state.type)\n ? this.parseIdentifier()\n : null;\n }\n\n parseFunctionParams(\n this: Parser,\n node: Undone<N.Function>,\n isConstructor?: boolean,\n ): void {\n this.expect(tt.parenL);\n this.expressionScope.enter(newParameterDeclarationScope());\n node.params = this.parseBindingList(\n tt.parenR,\n charCodes.rightParenthesis,\n ParseBindingListFlags.IS_FUNCTION_PARAMS |\n (isConstructor ? ParseBindingListFlags.IS_CONSTRUCTOR_PARAMS : 0),\n );\n\n this.expressionScope.exit();\n }\n\n registerFunctionStatementId(node: N.Function): void {\n if (!node.id) return;\n\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BindingFlag.TYPE_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n this.scope.declareName(\n node.id.name,\n !this.options.annexB || this.state.strict || node.generator || node.async\n ? this.scope.treatFunctionsAsVar\n ? BindingFlag.TYPE_VAR\n : BindingFlag.TYPE_LEXICAL\n : BindingFlag.TYPE_FUNCTION,\n node.id.loc.start,\n );\n }\n\n // Parse a class declaration or literal (depending on the\n // `isStatement` parameter).\n\n parseClass<T extends N.Class>(\n this: Parser,\n node: Undone<T>,\n isStatement: /* T === ClassDeclaration */ boolean,\n optionalId?: boolean,\n ): T {\n this.next(); // 'class'\n\n // A class definition is always strict mode code.\n const oldStrict = this.state.strict;\n this.state.strict = true;\n\n this.parseClassId(node, isStatement, optionalId);\n this.parseClassSuper(node);\n // this.state.strict is restored in parseClassBody\n node.body = this.parseClassBody(!!node.superClass, oldStrict);\n\n return this.finishNode(\n node,\n isStatement ? \"ClassDeclaration\" : \"ClassExpression\",\n );\n }\n\n isClassProperty(): boolean {\n return this.match(tt.eq) || this.match(tt.semi) || this.match(tt.braceR);\n }\n\n isClassMethod(): boolean {\n return this.match(tt.parenL);\n }\n\n isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n return (\n !method.computed &&\n !method.static &&\n (method.key.name === \"constructor\" || // Identifier\n method.key.value === \"constructor\") // String literal\n );\n }\n\n // https://tc39.es/ecma262/#prod-ClassBody\n parseClassBody(\n this: Parser,\n hadSuperClass: boolean,\n oldStrict: boolean,\n ): N.ClassBody {\n this.classScope.enter();\n\n const state: N.ParseClassMemberState = {\n hadConstructor: false,\n hadSuperClass,\n };\n let decorators: N.Decorator[] = [];\n const classBody = this.startNode<N.ClassBody>();\n classBody.body = [];\n\n this.expect(tt.braceL);\n\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the class body.\n this.withSmartMixTopicForbiddingContext(() => {\n // Parse the contents within the braces.\n while (!this.match(tt.braceR)) {\n if (this.eat(tt.semi)) {\n if (decorators.length > 0) {\n throw this.raise(Errors.DecoratorSemicolon, {\n at: this.state.lastTokEndLoc,\n });\n }\n continue;\n }\n\n if (this.match(tt.at)) {\n decorators.push(this.parseDecorator());\n continue;\n }\n\n const member = this.startNode<N.ClassMember>();\n\n // steal the decorators if there are any\n if (decorators.length) {\n // @ts-expect-error Fixme\n member.decorators = decorators;\n this.resetStartLocationFromNode(member, decorators[0]);\n decorators = [];\n }\n\n this.parseClassMember(classBody, member, state);\n\n if (\n // @ts-expect-error Fixme\n member.kind === \"constructor\" &&\n // @ts-expect-error Fixme\n member.decorators &&\n // @ts-expect-error Fixme\n member.decorators.length > 0\n ) {\n this.raise(Errors.DecoratorConstructor, { at: member });\n }\n }\n });\n\n this.state.strict = oldStrict;\n\n this.next(); // eat `}`\n\n if (decorators.length) {\n throw this.raise(Errors.TrailingDecorator, { at: this.state.startLoc });\n }\n\n this.classScope.exit();\n\n return this.finishNode(classBody, \"ClassBody\");\n }\n\n // returns true if the current identifier is a method/field name,\n // false if it is a modifier\n parseClassMemberFromModifier(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n member: Undone<N.ClassMember>,\n ): boolean {\n const key = this.parseIdentifier(true); // eats the modifier\n\n if (this.isClassMethod()) {\n const method: N.ClassMethod = member as any;\n\n // a method named like the modifier\n method.kind = \"method\";\n method.computed = false;\n method.key = key;\n method.static = false;\n this.pushClassMethod(\n classBody,\n method,\n false,\n false,\n /* isConstructor */ false,\n false,\n );\n return true;\n } else if (this.isClassProperty()) {\n const prop: N.ClassProperty = member as any;\n\n // a property named like the modifier\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\n parseClassMember(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n member: Undone<N.ClassMember>,\n state: N.ParseClassMemberState,\n ): void {\n const isStatic = this.isContextual(tt._static);\n\n if (isStatic) {\n if (this.parseClassMemberFromModifier(classBody, member)) {\n // a class element named 'static'\n return;\n }\n if (this.eat(tt.braceL)) {\n this.parseClassStaticBlock(classBody, member as any as N.StaticBlock);\n return;\n }\n }\n\n this.parseClassMemberWithIsStatic(classBody, member, state, isStatic);\n }\n\n parseClassMemberWithIsStatic(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n member: Undone<N.ClassMember>,\n state: N.ParseClassMemberState,\n isStatic: boolean,\n ) {\n const publicMethod = member as N.ClassMethod;\n const privateMethod = member as N.ClassPrivateMethod;\n const publicProp = member as N.ClassProperty;\n const privateProp = member as N.ClassPrivateProperty;\n const accessorProp = member as N.ClassAccessorProperty;\n\n const method: typeof publicMethod | typeof privateMethod = publicMethod;\n const publicMember: typeof publicMethod | typeof publicProp = publicMethod;\n\n member.static = isStatic;\n this.parsePropertyNamePrefixOperator(member);\n\n if (this.eat(tt.star)) {\n // a generator\n method.kind = \"method\";\n const isPrivateName = this.match(tt.privateName);\n this.parseClassElementName(method);\n\n if (isPrivateName) {\n // Private generator method\n this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n return;\n }\n\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsGenerator, {\n at: publicMethod.key,\n });\n }\n\n this.pushClassMethod(\n classBody,\n publicMethod,\n true,\n false,\n /* isConstructor */ false,\n false,\n );\n\n return;\n }\n\n const isContextual =\n tokenIsIdentifier(this.state.type) && !this.state.containsEsc;\n const isPrivate = this.match(tt.privateName);\n const key = this.parseClassElementName(member);\n const maybeQuestionTokenStartLoc = this.state.startLoc;\n\n this.parsePostMemberNameModifiers(publicMember);\n\n if (this.isClassMethod()) {\n method.kind = \"method\";\n\n if (isPrivate) {\n this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n return;\n }\n\n // a normal method\n const isConstructor = this.isNonstaticConstructor(publicMethod);\n let allowsDirectSuper = false;\n if (isConstructor) {\n publicMethod.kind = \"constructor\";\n\n // TypeScript allows multiple overloaded constructor declarations.\n if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n this.raise(Errors.DuplicateConstructor, { at: key });\n }\n if (isConstructor && this.hasPlugin(\"typescript\") && member.override) {\n this.raise(Errors.OverrideOnConstructor, { at: key });\n }\n state.hadConstructor = true;\n allowsDirectSuper = state.hadSuperClass;\n }\n\n this.pushClassMethod(\n classBody,\n publicMethod,\n false,\n false,\n isConstructor,\n allowsDirectSuper,\n );\n } else if (this.isClassProperty()) {\n if (isPrivate) {\n this.pushClassPrivateProperty(classBody, privateProp);\n } else {\n this.pushClassProperty(classBody, publicProp);\n }\n } else if (\n isContextual &&\n key.name === \"async\" &&\n !this.isLineTerminator()\n ) {\n // an async method\n this.resetPreviousNodeTrailingComments(key);\n const isGenerator = this.eat(tt.star);\n\n if (publicMember.optional) {\n this.unexpected(maybeQuestionTokenStartLoc);\n }\n\n method.kind = \"method\";\n // The so-called parsed name would have been \"async\": get the real name.\n const isPrivate = this.match(tt.privateName);\n this.parseClassElementName(method);\n this.parsePostMemberNameModifiers(publicMember);\n\n if (isPrivate) {\n // private async method\n this.pushClassPrivateMethod(\n classBody,\n privateMethod,\n isGenerator,\n true,\n );\n } else {\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsAsync, { at: publicMethod.key });\n }\n\n this.pushClassMethod(\n classBody,\n publicMethod,\n isGenerator,\n true,\n /* isConstructor */ false,\n false,\n );\n }\n } else if (\n isContextual &&\n (key.name === \"get\" || key.name === \"set\") &&\n !(this.match(tt.star) && this.isLineTerminator())\n ) {\n // `get\\n*` is an uninitialized property named 'get' followed by a generator.\n // a getter or setter\n this.resetPreviousNodeTrailingComments(key);\n method.kind = key.name;\n // The so-called parsed name would have been \"get/set\": get the real name.\n const isPrivate = this.match(tt.privateName);\n this.parseClassElementName(publicMethod);\n\n if (isPrivate) {\n // private getter/setter\n this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n } else {\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsAccessor, { at: publicMethod.key });\n }\n this.pushClassMethod(\n classBody,\n publicMethod,\n false,\n false,\n /* isConstructor */ false,\n false,\n );\n }\n\n this.checkGetterSetterParams(publicMethod);\n } else if (\n isContextual &&\n key.name === \"accessor\" &&\n !this.isLineTerminator()\n ) {\n this.expectPlugin(\"decoratorAutoAccessors\");\n this.resetPreviousNodeTrailingComments(key);\n\n // The so-called parsed name would have been \"accessor\": get the real name.\n const isPrivate = this.match(tt.privateName);\n this.parseClassElementName(publicProp);\n this.pushClassAccessorProperty(classBody, accessorProp, isPrivate);\n } else if (this.isLineTerminator()) {\n // an uninitialized class property (due to ASI, since we don't otherwise recognize the next token)\n if (isPrivate) {\n this.pushClassPrivateProperty(classBody, privateProp);\n } else {\n this.pushClassProperty(classBody, publicProp);\n }\n } else {\n this.unexpected();\n }\n }\n\n // https://tc39.es/ecma262/#prod-ClassElementName\n parseClassElementName(\n this: Parser,\n member: Undone<N.ClassMember>,\n ): N.Expression | N.Identifier {\n const { type, value } = this.state;\n if (\n (type === tt.name || type === tt.string) &&\n member.static &&\n value === \"prototype\"\n ) {\n this.raise(Errors.StaticPrototype, { at: this.state.startLoc });\n }\n\n if (type === tt.privateName) {\n if (value === \"constructor\") {\n this.raise(Errors.ConstructorClassPrivateField, {\n at: this.state.startLoc,\n });\n }\n const key = this.parsePrivateName();\n member.key = key;\n return key;\n }\n\n return this.parsePropertyName(member);\n }\n\n parseClassStaticBlock(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n member: Undone<\n N.StaticBlock & {\n decorators?: Array<N.Decorator>;\n }\n >,\n ) {\n // Start a new lexical scope\n this.scope.enter(\n ScopeFlag.CLASS | ScopeFlag.STATIC_BLOCK | ScopeFlag.SUPER,\n );\n // Start a new scope with regard to loop labels\n const oldLabels = this.state.labels;\n this.state.labels = [];\n // ClassStaticBlockStatementList:\n // StatementList[~Yield, ~Await, ~Return] opt\n this.prodParam.enter(PARAM);\n const body: N.Node[] = (member.body = []);\n this.parseBlockOrModuleBlockBody(body, undefined, false, tt.braceR);\n this.prodParam.exit();\n this.scope.exit();\n this.state.labels = oldLabels;\n classBody.body.push(this.finishNode<N.StaticBlock>(member, \"StaticBlock\"));\n if (member.decorators?.length) {\n this.raise(Errors.DecoratorStaticBlock, { at: member });\n }\n }\n\n pushClassProperty(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n prop: N.ClassProperty,\n ) {\n if (\n !prop.computed &&\n (prop.key.name === \"constructor\" || prop.key.value === \"constructor\")\n ) {\n // Non-computed field, which is either an identifier named \"constructor\"\n // or a string literal named \"constructor\"\n this.raise(Errors.ConstructorClassField, { at: prop.key });\n }\n\n classBody.body.push(this.parseClassProperty(prop));\n }\n\n pushClassPrivateProperty(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n prop: Undone<N.ClassPrivateProperty>,\n ) {\n const node = this.parseClassPrivateProperty(prop);\n classBody.body.push(node);\n\n this.classScope.declarePrivateName(\n this.getPrivateNameSV(node.key),\n ClassElementType.OTHER,\n node.key.loc.start,\n );\n }\n\n pushClassAccessorProperty(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n prop: N.ClassAccessorProperty,\n isPrivate: boolean,\n ) {\n if (!isPrivate && !prop.computed) {\n // Not private, so not node is not a PrivateName and we can safely cast\n const key = prop.key as N.Expression;\n\n if (key.name === \"constructor\" || key.value === \"constructor\") {\n // Non-computed field, which is either an identifier named \"constructor\"\n // or a string literal named \"constructor\"\n this.raise(Errors.ConstructorClassField, { at: key });\n }\n }\n\n const node = this.parseClassAccessorProperty(prop);\n classBody.body.push(node);\n\n if (isPrivate) {\n this.classScope.declarePrivateName(\n this.getPrivateNameSV(node.key),\n ClassElementType.OTHER,\n node.key.loc.start,\n );\n }\n }\n\n pushClassMethod(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n method: Undone<N.ClassMethod>,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n classBody.body.push(\n this.parseMethod(\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n \"ClassMethod\",\n true,\n ),\n );\n }\n\n pushClassPrivateMethod(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n method: Undone<N.ClassPrivateMethod>,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n const node = this.parseMethod(\n method,\n isGenerator,\n isAsync,\n /* isConstructor */ false,\n false,\n \"ClassPrivateMethod\",\n true,\n );\n classBody.body.push(node);\n\n const kind =\n node.kind === \"get\"\n ? node.static\n ? ClassElementType.STATIC_GETTER\n : ClassElementType.INSTANCE_GETTER\n : node.kind === \"set\"\n ? node.static\n ? ClassElementType.STATIC_SETTER\n : ClassElementType.INSTANCE_SETTER\n : ClassElementType.OTHER;\n this.declareClassPrivateMethodInScope(node, kind);\n }\n\n declareClassPrivateMethodInScope(\n node: Undone<\n N.ClassPrivateMethod | N.EstreeMethodDefinition | N.TSDeclareMethod\n >,\n kind: number,\n ) {\n this.classScope.declarePrivateName(\n this.getPrivateNameSV(node.key),\n kind,\n node.key.loc.start,\n );\n }\n\n // Overridden in typescript.js\n parsePostMemberNameModifiers(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n methodOrProp: Undone<N.ClassMethod | N.ClassProperty>,\n ): void {}\n\n // https://tc39.es/ecma262/#prod-FieldDefinition\n parseClassPrivateProperty(\n this: Parser,\n node: Undone<N.ClassPrivateProperty>,\n ): N.ClassPrivateProperty {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassPrivateProperty\");\n }\n\n // https://tc39.es/ecma262/#prod-FieldDefinition\n parseClassProperty(this: Parser, node: N.ClassProperty): N.ClassProperty {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassProperty\");\n }\n\n parseClassAccessorProperty(\n this: Parser,\n node: N.ClassAccessorProperty,\n ): N.ClassAccessorProperty {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassAccessorProperty\");\n }\n\n // https://tc39.es/ecma262/#prod-Initializer\n parseInitializer(\n this: Parser,\n node: Undone<\n N.ClassProperty | N.ClassPrivateProperty | N.ClassAccessorProperty\n >,\n ): void {\n this.scope.enter(ScopeFlag.CLASS | ScopeFlag.SUPER);\n this.expressionScope.enter(newExpressionScope());\n this.prodParam.enter(PARAM);\n node.value = this.eat(tt.eq) ? this.parseMaybeAssignAllowIn() : null;\n this.expressionScope.exit();\n this.prodParam.exit();\n this.scope.exit();\n }\n\n parseClassId(\n node: Undone<N.Class>,\n isStatement: boolean,\n optionalId?: boolean | null,\n bindingType: BindingTypes = BindingFlag.TYPE_CLASS,\n ): void {\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, { at: this.state.startLoc });\n }\n }\n }\n\n // https://tc39.es/ecma262/#prod-ClassHeritage\n parseClassSuper(this: Parser, node: Undone<N.Class>): void {\n node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null;\n }\n\n // Parses module export declaration.\n // https://tc39.es/ecma262/#prod-ExportDeclaration\n\n parseExport(\n this: Parser,\n node: Undone<\n | N.ExportDefaultDeclaration\n | N.ExportAllDeclaration\n | N.ExportNamedDeclaration\n >,\n decorators: N.Decorator[] | null,\n ): N.AnyExport {\n const maybeDefaultIdentifier = this.parseMaybeImportPhase(\n node,\n /* isExport */ true,\n );\n const hasDefault = this.maybeParseExportDefaultSpecifier(\n node,\n maybeDefaultIdentifier,\n );\n const parseAfterDefault = !hasDefault || this.eat(tt.comma);\n const hasStar =\n parseAfterDefault &&\n this.eatExportStar(\n // @ts-expect-error todo(flow->ts)\n node,\n );\n const hasNamespace =\n hasStar &&\n this.maybeParseExportNamespaceSpecifier(\n // @ts-expect-error todo(flow->ts)\n node,\n );\n const parseAfterNamespace =\n parseAfterDefault && (!hasNamespace || this.eat(tt.comma));\n const isFromRequired = hasDefault || hasStar;\n\n if (hasStar && !hasNamespace) {\n if (hasDefault) this.unexpected();\n if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, { at: node });\n }\n this.parseExportFrom(node as Undone<N.ExportNamedDeclaration>, true);\n\n return this.finishNode(node, \"ExportAllDeclaration\");\n }\n\n const hasSpecifiers = this.maybeParseExportNamedSpecifiers(\n // @ts-expect-error todo(flow->ts)\n node,\n );\n\n if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) {\n this.unexpected(null, tt.braceL);\n }\n\n if (hasNamespace && parseAfterNamespace) {\n this.unexpected(null, tt._from);\n }\n\n let hasDeclaration;\n if (isFromRequired || hasSpecifiers) {\n hasDeclaration = false;\n if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, { at: node });\n }\n this.parseExportFrom(\n node as Undone<N.ExportNamedDeclaration>,\n isFromRequired,\n );\n } else {\n hasDeclaration = this.maybeParseExportDeclaration(\n node as Undone<N.ExportNamedDeclaration>,\n );\n }\n\n if (isFromRequired || hasSpecifiers || hasDeclaration) {\n const node2 = node as Undone<N.ExportNamedDeclaration>;\n this.checkExport(node2, true, false, !!node2.source);\n if (node2.declaration?.type === \"ClassDeclaration\") {\n this.maybeTakeDecorators(decorators, node2.declaration, node2);\n } else if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, { at: node });\n }\n return this.finishNode(node2, \"ExportNamedDeclaration\");\n }\n\n if (this.eat(tt._default)) {\n const node2 = node as Undone<N.ExportDefaultDeclaration>;\n // export default ...\n const decl = this.parseExportDefaultExpression();\n node2.declaration = decl;\n\n if (decl.type === \"ClassDeclaration\") {\n this.maybeTakeDecorators(decorators, decl as N.ClassDeclaration, node2);\n } else if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, { at: node });\n }\n\n this.checkExport(node2, true, true);\n\n return this.finishNode(node2, \"ExportDefaultDeclaration\");\n }\n\n this.unexpected(null, tt.braceL);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n eatExportStar(node: N.Node): boolean {\n return this.eat(tt.star);\n }\n\n maybeParseExportDefaultSpecifier(\n node: Undone<\n | N.ExportDefaultDeclaration\n | N.ExportAllDeclaration\n | N.ExportNamedDeclaration\n >,\n maybeDefaultIdentifier: N.Identifier | null,\n ): node is Undone<N.ExportNamedDeclaration> {\n if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) {\n // export defaultObj ...\n this.expectPlugin(\"exportDefaultFrom\", maybeDefaultIdentifier?.loc.start);\n const id = maybeDefaultIdentifier || this.parseIdentifier(true);\n const specifier = this.startNodeAtNode<N.ExportDefaultSpecifier>(id);\n specifier.exported = id;\n (node as Undone<N.ExportNamedDeclaration>).specifiers = [\n this.finishNode(specifier, \"ExportDefaultSpecifier\"),\n ];\n return true;\n }\n return false;\n }\n\n maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n if (this.isContextual(tt._as)) {\n if (!node.specifiers) node.specifiers = [];\n\n const specifier = this.startNodeAt(this.state.lastTokStartLoc);\n\n this.next();\n\n specifier.exported = this.parseModuleExportName();\n node.specifiers.push(\n this.finishNode(specifier, \"ExportNamespaceSpecifier\"),\n );\n return true;\n }\n return false;\n }\n\n maybeParseExportNamedSpecifiers(node: N.Node): boolean {\n if (this.match(tt.braceL)) {\n if (!node.specifiers) node.specifiers = [];\n const isTypeExport = node.exportKind === \"type\";\n node.specifiers.push(...this.parseExportSpecifiers(isTypeExport));\n\n node.source = null;\n node.declaration = null;\n if (this.hasPlugin(\"importAssertions\")) {\n node.assertions = [];\n }\n\n return true;\n }\n return false;\n }\n\n maybeParseExportDeclaration(\n this: Parser,\n node: Undone<N.ExportNamedDeclaration>,\n ): boolean {\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\n isAsyncFunction(): boolean {\n if (!this.isContextual(tt._async)) return false;\n const next = this.nextTokenInLineStart();\n return this.isUnparsedContextual(next, \"function\");\n }\n\n parseExportDefaultExpression(this: Parser): N.Expression | N.Declaration {\n const expr = this.startNode();\n\n if (this.match(tt._function)) {\n this.next();\n return this.parseFunction(\n expr as Undone<N.FunctionDeclaration>,\n ParseFunctionFlag.Declaration | ParseFunctionFlag.NullableId,\n );\n } else if (this.isAsyncFunction()) {\n this.next(); // eat 'async'\n this.next(); // eat 'function'\n return this.parseFunction(\n expr as Undone<N.FunctionDeclaration>,\n ParseFunctionFlag.Declaration |\n ParseFunctionFlag.NullableId |\n ParseFunctionFlag.Async,\n );\n }\n\n if (this.match(tt._class)) {\n return this.parseClass(expr as Undone<N.ClassExpression>, true, true);\n }\n\n if (this.match(tt.at)) {\n if (\n this.hasPlugin(\"decorators\") &&\n this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") === true\n ) {\n this.raise(Errors.DecoratorBeforeExport, { at: this.state.startLoc });\n }\n return this.parseClass(\n this.maybeTakeDecorators(\n this.parseDecorators(false),\n this.startNode<N.ClassDeclaration>(),\n ),\n true,\n true,\n );\n }\n\n if (this.match(tt._const) || this.match(tt._var) || this.isLet()) {\n throw this.raise(Errors.UnsupportedDefaultExport, {\n at: this.state.startLoc,\n });\n }\n\n const res = this.parseMaybeAssignAllowIn();\n this.semicolon();\n return res;\n }\n\n // https://tc39.es/ecma262/#prod-ExportDeclaration\n parseExportDeclaration(\n this: Parser,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n node: Undone<N.ExportNamedDeclaration>,\n ): N.Declaration | undefined | null {\n if (this.match(tt._class)) {\n const node = this.parseClass(\n this.startNode<N.ClassDeclaration>(),\n true,\n false,\n );\n return node;\n }\n return this.parseStatementListItem() as N.Declaration;\n }\n\n isExportDefaultSpecifier(): boolean {\n const { type } = this.state;\n if (tokenIsIdentifier(type)) {\n if ((type === tt._async && !this.state.containsEsc) || type === tt._let) {\n return false;\n }\n if (\n (type === tt._type || type === tt._interface) &&\n !this.state.containsEsc\n ) {\n const { type: nextType } = this.lookahead();\n // If we see any variable name other than `from` after `type` keyword,\n // we consider it as flow/typescript type exports\n // note that this approach may fail on some pedantic cases\n // export type from = number\n if (\n (tokenIsIdentifier(nextType) && nextType !== tt._from) ||\n nextType === tt.braceL\n ) {\n this.expectOnePlugin([\"flow\", \"typescript\"]);\n return false;\n }\n }\n } else if (!this.match(tt._default)) {\n return false;\n }\n\n const next = this.nextTokenStart();\n const hasFrom = this.isUnparsedContextual(next, \"from\");\n if (\n this.input.charCodeAt(next) === charCodes.comma ||\n (tokenIsIdentifier(this.state.type) && hasFrom)\n ) {\n return true;\n }\n // lookahead again when `export default from` is seen\n if (this.match(tt._default) && hasFrom) {\n const nextAfterFrom = this.input.charCodeAt(\n this.nextTokenStartSince(next + 4),\n );\n return (\n nextAfterFrom === charCodes.quotationMark ||\n nextAfterFrom === charCodes.apostrophe\n );\n }\n return false;\n }\n\n parseExportFrom(\n this: Parser,\n node: Undone<N.ExportNamedDeclaration>,\n expect?: boolean,\n ): void {\n if (this.eatContextual(tt._from)) {\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\n this.semicolon();\n }\n\n shouldParseExportDeclaration(): boolean {\n const { type } = this.state;\n if (type === tt.at) {\n this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n if (this.hasPlugin(\"decorators\")) {\n if (\n this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") === true\n ) {\n this.raise(Errors.DecoratorBeforeExport, {\n at: this.state.startLoc,\n });\n }\n\n return true;\n }\n }\n\n return (\n type === tt._var ||\n type === tt._const ||\n type === tt._function ||\n type === tt._class ||\n this.isLet() ||\n this.isAsyncFunction()\n );\n }\n\n checkExport(\n node: Undone<N.ExportNamedDeclaration | N.ExportDefaultDeclaration>,\n checkNames?: boolean,\n isDefault?: boolean,\n isFrom?: boolean,\n ): void {\n if (checkNames) {\n // Check for duplicate exports\n if (isDefault) {\n // Default exports\n this.checkDuplicateExports(node, \"default\");\n if (this.hasPlugin(\"exportDefaultFrom\")) {\n const declaration = (node as any as N.ExportDefaultDeclaration)\n .declaration;\n if (\n declaration.type === \"Identifier\" &&\n declaration.name === \"from\" &&\n declaration.end - declaration.start === 4 && // does not contain escape\n !declaration.extra?.parenthesized\n ) {\n this.raise(Errors.ExportDefaultFromAsIdentifier, {\n at: declaration,\n });\n }\n }\n // @ts-expect-error node.specifiers may not exist\n } else if (node.specifiers?.length) {\n // Named exports\n // @ts-expect-error node.specifiers may not exist\n for (const specifier of node.specifiers) {\n const { exported } = specifier;\n const exportName =\n exported.type === \"Identifier\" ? exported.name : exported.value;\n this.checkDuplicateExports(specifier, exportName);\n if (!isFrom && specifier.local) {\n const { local } = specifier;\n if (local.type !== \"Identifier\") {\n this.raise(Errors.ExportBindingIsString, {\n at: specifier,\n localName: local.value,\n exportName,\n });\n } else {\n // check for keywords used as local names\n this.checkReservedWord(local.name, local.loc.start, true, false);\n // check if export is defined\n this.scope.checkLocalExport(local);\n }\n }\n }\n } else if (node.declaration) {\n // Exported declarations\n if (\n node.declaration.type === \"FunctionDeclaration\" ||\n node.declaration.type === \"ClassDeclaration\"\n ) {\n const id = node.declaration.id;\n if (!id) throw new Error(\"Assertion failure\");\n\n this.checkDuplicateExports(node, id.name);\n } else if (node.declaration.type === \"VariableDeclaration\") {\n for (const declaration of node.declaration.declarations) {\n this.checkDeclaration(declaration.id);\n }\n }\n }\n }\n }\n\n checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\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 // @ts-expect-error migrate to Babel types\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\n checkDuplicateExports(\n node: Undone<\n | N.Identifier\n | N.StringLiteral\n | N.ExportNamedDeclaration\n | N.ExportSpecifier\n | N.ExportDefaultSpecifier\n >,\n exportName: string,\n ): void {\n if (this.exportedIdentifiers.has(exportName)) {\n if (exportName === \"default\") {\n this.raise(Errors.DuplicateDefaultExport, { at: node });\n } else {\n this.raise(Errors.DuplicateExport, { at: node, exportName });\n }\n }\n this.exportedIdentifiers.add(exportName);\n }\n\n // Parses a comma-separated list of module exports.\n\n parseExportSpecifiers(isInTypeExport: boolean): Array<N.ExportSpecifier> {\n const nodes = [];\n let first = true;\n\n // export { x, y as z } [from '...']\n this.expect(tt.braceL);\n\n while (!this.eat(tt.braceR)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n if (this.eat(tt.braceR)) break;\n }\n const isMaybeTypeOnly = this.isContextual(tt._type);\n const isString = this.match(tt.string);\n const node = this.startNode();\n node.local = this.parseModuleExportName();\n nodes.push(\n this.parseExportSpecifier(\n node,\n isString,\n isInTypeExport,\n isMaybeTypeOnly,\n ),\n );\n }\n\n return nodes;\n }\n\n parseExportSpecifier(\n node: any,\n isString: boolean,\n /* eslint-disable @typescript-eslint/no-unused-vars -- used in TypeScript parser */\n isInTypeExport: boolean,\n isMaybeTypeOnly: boolean,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ): N.ExportSpecifier {\n if (this.eatContextual(tt._as)) {\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<N.ExportSpecifier>(node, \"ExportSpecifier\");\n }\n\n // https://tc39.es/ecma262/#prod-ModuleExportName\n parseModuleExportName(): N.StringLiteral | N.Identifier {\n if (this.match(tt.string)) {\n const result = this.parseStringLiteral(this.state.value);\n const surrogate = result.value.match(loneSurrogate);\n if (surrogate) {\n this.raise(Errors.ModuleExportNameHasLoneSurrogate, {\n at: result,\n surrogateCharCode: surrogate[0].charCodeAt(0),\n });\n }\n return result;\n }\n return this.parseIdentifier(true);\n }\n\n isJSONModuleImport(\n node: Undone<\n N.ExportAllDeclaration | N.ExportNamedDeclaration | N.ImportDeclaration\n >,\n ): boolean {\n if (node.assertions != null) {\n return node.assertions.some(({ key, value }) => {\n return (\n value.value === \"json\" &&\n (key.type === \"Identifier\"\n ? key.name === \"type\"\n : key.value === \"type\")\n );\n });\n }\n return false;\n }\n\n checkImportReflection(node: Undone<N.ImportDeclaration>) {\n const { specifiers } = node;\n const singleBindingType =\n specifiers.length === 1 ? specifiers[0].type : null;\n\n if (node.phase === \"source\") {\n if (singleBindingType !== \"ImportDefaultSpecifier\") {\n this.raise(Errors.SourcePhaseImportRequiresDefault, {\n at: specifiers[0].loc.start,\n });\n }\n } else if (node.phase === \"defer\") {\n if (singleBindingType !== \"ImportNamespaceSpecifier\") {\n this.raise(Errors.DeferImportRequiresNamespace, {\n at: specifiers[0].loc.start,\n });\n }\n } else if (node.module) {\n if (singleBindingType !== \"ImportDefaultSpecifier\") {\n this.raise(Errors.ImportReflectionNotBinding, {\n at: specifiers[0].loc.start,\n });\n }\n if (node.assertions?.length > 0) {\n this.raise(Errors.ImportReflectionHasAssertion, {\n at: node.specifiers[0].loc.start,\n });\n }\n }\n }\n\n checkJSONModuleImport(\n node: Undone<\n N.ExportAllDeclaration | N.ExportNamedDeclaration | N.ImportDeclaration\n >,\n ) {\n // @ts-expect-error Fixme: node.type must be undefined because they are undone\n if (this.isJSONModuleImport(node) && node.type !== \"ExportAllDeclaration\") {\n // @ts-expect-error specifiers may not index node\n const { specifiers } = node;\n if (specifiers != null) {\n // @ts-expect-error refine specifier types\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\"\n ? imported.name !== \"default\"\n : imported.value !== \"default\";\n }\n });\n if (nonDefaultNamedSpecifier !== undefined) {\n this.raise(Errors.ImportJSONBindingNotDefault, {\n at: nonDefaultNamedSpecifier.loc.start,\n });\n }\n }\n }\n }\n\n isPotentialImportPhase(isExport: boolean): boolean {\n if (isExport) return false;\n return (\n this.isContextual(tt._source) ||\n this.isContextual(tt._defer) ||\n this.isContextual(tt._module)\n );\n }\n\n applyImportPhase(\n node: Undone<N.ImportDeclaration | N.ExportNamedDeclaration>,\n isExport: boolean,\n phase: string | null,\n loc?: Position,\n ): void {\n if (isExport) {\n if (!process.env.IS_PUBLISH) {\n if (phase === \"module\" || phase === \"source\") {\n throw new Error(\n `Assertion failure: export declarations do not support the '${phase}' phase.`,\n );\n }\n }\n return;\n }\n\n if (phase === \"module\") {\n this.expectPlugin(\"importReflection\", loc);\n (node as N.ImportDeclaration).module = true;\n } else if (this.hasPlugin(\"importReflection\")) {\n (node as N.ImportDeclaration).module = false;\n }\n\n if (phase === \"source\") {\n this.expectPlugin(\"sourcePhaseImports\", loc);\n (node as N.ImportDeclaration).phase = \"source\";\n } else if (phase === \"defer\") {\n this.expectPlugin(\"deferredImportEvaluation\", loc);\n (node as N.ImportDeclaration).phase = \"defer\";\n } else if (this.hasPlugin(\"sourcePhaseImports\")) {\n (node as N.ImportDeclaration).phase = null;\n }\n }\n\n /*\n * Parse `module` in `import module x from \"x\"`, disambiguating\n * `import module from \"x\"` and `import module from from \"x\"`.\n *\n * This function might return an identifier representing the `module`\n * if it eats `module` and then discovers that it was the default import\n * binding and not the import reflection.\n *\n * This function is also used to parse `import type` and `import typeof`\n * in the TS and Flow plugins.\n *\n * Note: the proposal has been updated to use `source` instead of `module`,\n * but it has not been implemented yet.\n */\n parseMaybeImportPhase(\n node: Undone<N.ImportDeclaration | N.TsImportEqualsDeclaration>,\n isExport: boolean,\n ): N.Identifier | null {\n if (!this.isPotentialImportPhase(isExport)) {\n this.applyImportPhase(\n node as Undone<N.ImportDeclaration>,\n isExport,\n null,\n );\n return null;\n }\n\n const phaseIdentifier = this.parseIdentifier(true);\n\n const { type } = this.state;\n const isImportPhase = tokenIsKeywordOrIdentifier(type)\n ? // OK: import <phase> x from \"foo\";\n // OK: import <phase> from from \"foo\";\n // NO: import <phase> from \"foo\";\n // NO: import <phase> from 'foo';\n // With the module declarations proposals, we will need further disambiguation\n // for `import module from from;`.\n type !== tt._from || this.lookaheadCharCode() === charCodes.lowercaseF\n : // OK: import <phase> { x } from \"foo\";\n // OK: import <phase> x from \"foo\";\n // OK: import <phase> * as T from \"foo\";\n // NO: import <phase> from \"foo\";\n // OK: import <phase> \"foo\";\n // The last one is invalid, we will continue parsing and throw\n // an error later\n type !== tt.comma;\n\n if (isImportPhase) {\n this.resetPreviousIdentifierLeadingComments(phaseIdentifier);\n this.applyImportPhase(\n node as Undone<N.ImportDeclaration>,\n isExport,\n phaseIdentifier.name,\n phaseIdentifier.loc.start,\n );\n return null;\n } else {\n this.applyImportPhase(\n node as Undone<N.ImportDeclaration>,\n isExport,\n null,\n );\n // `<phase>` is a default binding, return it to the main import declaration parser\n return phaseIdentifier;\n }\n }\n\n isPrecedingIdImportPhase(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n phase: string,\n ) {\n const { type } = this.state;\n return tokenIsIdentifier(type)\n ? // OK: import <phase> x from \"foo\";\n // OK: import <phase> from from \"foo\";\n // NO: import <phase> from \"foo\";\n // NO: import <phase> from 'foo';\n // With the module declarations proposals, we will need further disambiguation\n // for `import module from from;`.\n type !== tt._from || this.lookaheadCharCode() === charCodes.lowercaseF\n : // OK: import <phase> { x } from \"foo\";\n // OK: import <phase> x from \"foo\";\n // OK: import <phase> * as T from \"foo\";\n // NO: import <phase> from \"foo\";\n // OK: import <phase> \"foo\";\n // The last one is invalid, we will continue parsing and throw\n // an error later\n type !== tt.comma;\n }\n\n // Parses import declaration.\n // https://tc39.es/ecma262/#prod-ImportDeclaration\n\n parseImport(this: Parser, node: Undone<N.ImportDeclaration>): N.AnyImport {\n if (this.match(tt.string)) {\n // import '...'\n return this.parseImportSourceAndAttributes(node);\n }\n\n return this.parseImportSpecifiersAndAfter(\n node,\n this.parseMaybeImportPhase(node, /* isExport */ false),\n );\n }\n\n parseImportSpecifiersAndAfter(\n this: Parser,\n node: Undone<N.ImportDeclaration>,\n maybeDefaultIdentifier: N.Identifier | null,\n ): N.AnyImport {\n node.specifiers = [];\n\n // check if we have a default import like\n // import React from \"react\";\n const hasDefault = this.maybeParseDefaultImportSpecifier(\n node,\n maybeDefaultIdentifier,\n );\n /* we are checking if we do not have a default import, then it is obvious that we need named imports\n * import { get } from \"axios\";\n * but if we do have a default import\n * we need to check if we have a comma after that and\n * that is where this `|| this.eat` condition comes into play\n */\n const parseNext = !hasDefault || this.eat(tt.comma);\n // if we do have to parse the next set of specifiers, we first check for star imports\n // import React, * from \"react\";\n const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n // now we check if we need to parse the next imports\n // but only if they are not importing * (everything)\n if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n this.expectContextual(tt._from);\n\n return this.parseImportSourceAndAttributes(node);\n }\n\n parseImportSourceAndAttributes(\n this: Parser,\n node: Undone<N.ImportDeclaration>,\n ): N.AnyImport {\n node.specifiers ??= [];\n node.source = this.parseImportSource();\n this.maybeParseImportAttributes(node);\n this.checkImportReflection(node);\n this.checkJSONModuleImport(node);\n\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n parseImportSource(this: Parser): N.StringLiteral {\n if (!this.match(tt.string)) this.unexpected();\n return this.parseExprAtom() as N.StringLiteral;\n }\n\n parseImportSpecifierLocal<\n T extends\n | N.ImportSpecifier\n | N.ImportDefaultSpecifier\n | N.ImportNamespaceSpecifier,\n >(\n node: Undone<N.ImportDeclaration>,\n specifier: Undone<T>,\n type: T[\"type\"],\n ): void {\n specifier.local = this.parseIdentifier();\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n\n finishImportSpecifier<\n T extends\n | N.ImportSpecifier\n | N.ImportDefaultSpecifier\n | N.ImportNamespaceSpecifier,\n >(\n specifier: Undone<T>,\n type: T[\"type\"],\n bindingType: BindingTypes = BindingFlag.TYPE_LEXICAL,\n ) {\n this.checkLVal(specifier.local, {\n in: { type },\n binding: bindingType,\n });\n return this.finishNode(specifier, type);\n }\n\n /**\n * parse assert entries\n *\n * @see {@link https://tc39.es/proposal-import-attributes/#prod-WithEntries WithEntries}\n */\n parseImportAttributes(): N.ImportAttribute[] {\n this.expect(tt.braceL);\n\n const attrs = [];\n const attrNames = new Set();\n\n do {\n if (this.match(tt.braceR)) {\n break;\n }\n\n const node = this.startNode<N.ImportAttribute>();\n\n // parse AssertionKey : IdentifierName, StringLiteral\n const keyName = this.state.value;\n // check if we already have an entry for an attribute\n // if a duplicate entry is found, throw an error\n // for now this logic will come into play only when someone declares `type` twice\n if (attrNames.has(keyName)) {\n this.raise(Errors.ModuleAttributesWithDuplicateKeys, {\n at: this.state.startLoc,\n key: keyName,\n });\n }\n attrNames.add(keyName);\n if (this.match(tt.string)) {\n node.key = this.parseStringLiteral(keyName);\n } else {\n node.key = this.parseIdentifier(true);\n }\n this.expect(tt.colon);\n\n if (!this.match(tt.string)) {\n throw this.raise(Errors.ModuleAttributeInvalidValue, {\n at: this.state.startLoc,\n });\n }\n node.value = this.parseStringLiteral(this.state.value);\n attrs.push(this.finishNode(node, \"ImportAttribute\"));\n } while (this.eat(tt.comma));\n\n this.expect(tt.braceR);\n\n return attrs;\n }\n\n /**\n * parse module attributes\n * @deprecated It will be removed in Babel 8\n */\n parseModuleAttributes() {\n const attrs: N.ImportAttribute[] = [];\n const attributes = new Set();\n do {\n const node = this.startNode<N.ImportAttribute>();\n node.key = this.parseIdentifier(true);\n\n if (node.key.name !== \"type\") {\n this.raise(Errors.ModuleAttributeDifferentFromType, {\n at: node.key,\n });\n }\n\n if (attributes.has(node.key.name)) {\n this.raise(Errors.ModuleAttributesWithDuplicateKeys, {\n at: node.key,\n key: node.key.name,\n });\n }\n attributes.add(node.key.name);\n this.expect(tt.colon);\n if (!this.match(tt.string)) {\n throw this.raise(Errors.ModuleAttributeInvalidValue, {\n at: this.state.startLoc,\n });\n }\n node.value = this.parseStringLiteral(this.state.value);\n attrs.push(this.finishNode(node, \"ImportAttribute\"));\n } while (this.eat(tt.comma));\n\n return attrs;\n }\n\n maybeParseImportAttributes(\n node: Undone<N.ImportDeclaration | N.ExportNamedDeclaration>,\n ) {\n let attributes: N.ImportAttribute[];\n let useWith = false;\n\n // https://tc39.es/proposal-import-attributes/#prod-WithClause\n if (this.match(tt._with)) {\n if (\n this.hasPrecedingLineBreak() &&\n this.lookaheadCharCode() === charCodes.leftParenthesis\n ) {\n // This will be parsed as a with statement, and we will throw a\n // better error about it not being supported in strict mode.\n return;\n }\n\n this.next(); // eat `with`\n\n if (!process.env.BABEL_8_BREAKING) {\n if (this.hasPlugin(\"moduleAttributes\")) {\n attributes = this.parseModuleAttributes();\n } else {\n this.expectImportAttributesPlugin();\n attributes = this.parseImportAttributes();\n }\n } else {\n this.expectImportAttributesPlugin();\n attributes = this.parseImportAttributes();\n }\n useWith = true;\n } else if (this.isContextual(tt._assert) && !this.hasPrecedingLineBreak()) {\n if (this.hasPlugin(\"importAttributes\")) {\n if (\n this.getPluginOption(\"importAttributes\", \"deprecatedAssertSyntax\") !==\n true\n ) {\n this.raise(Errors.ImportAttributesUseAssert, {\n at: this.state.startLoc,\n });\n }\n this.addExtra(node, \"deprecatedAssertSyntax\", true);\n } else {\n this.expectOnePlugin([\"importAttributes\", \"importAssertions\"]);\n }\n this.next(); // eat `assert`\n attributes = this.parseImportAttributes();\n } else if (\n this.hasPlugin(\"importAttributes\") ||\n this.hasPlugin(\"importAssertions\")\n ) {\n attributes = [];\n } else if (!process.env.BABEL_8_BREAKING) {\n if (this.hasPlugin(\"moduleAttributes\")) {\n attributes = [];\n } else return;\n } else return;\n\n if (!useWith && this.hasPlugin(\"importAssertions\")) {\n node.assertions = attributes;\n } else {\n node.attributes = attributes;\n }\n }\n\n maybeParseDefaultImportSpecifier(\n node: Undone<N.ImportDeclaration>,\n maybeDefaultIdentifier: N.Identifier | null,\n ): boolean {\n // import defaultObj, { x, y as z } from '...'\n if (maybeDefaultIdentifier) {\n const specifier = this.startNodeAtNode<N.ImportDefaultSpecifier>(\n maybeDefaultIdentifier,\n );\n specifier.local = maybeDefaultIdentifier;\n node.specifiers.push(\n this.finishImportSpecifier(specifier, \"ImportDefaultSpecifier\"),\n );\n return true;\n } else if (\n // We allow keywords, and parseImportSpecifierLocal will report a recoverable error\n tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n this.parseImportSpecifierLocal(\n node,\n this.startNode<N.ImportDefaultSpecifier>(),\n \"ImportDefaultSpecifier\",\n );\n return true;\n }\n return false;\n }\n\n maybeParseStarImportSpecifier(node: Undone<N.ImportDeclaration>): boolean {\n if (this.match(tt.star)) {\n const specifier = this.startNode<N.ImportNamespaceSpecifier>();\n this.next();\n this.expectContextual(tt._as);\n\n this.parseImportSpecifierLocal(\n node,\n specifier,\n \"ImportNamespaceSpecifier\",\n );\n return true;\n }\n return false;\n }\n\n parseNamedImportSpecifiers(node: Undone<N.ImportDeclaration>) {\n let first = true;\n this.expect(tt.braceL);\n while (!this.eat(tt.braceR)) {\n if (first) {\n first = false;\n } else {\n // Detect an attempt to deep destructure\n if (this.eat(tt.colon)) {\n throw this.raise(Errors.DestructureNamedImport, {\n at: this.state.startLoc,\n });\n }\n\n this.expect(tt.comma);\n if (this.eat(tt.braceR)) break;\n }\n\n const specifier = this.startNode<N.ImportSpecifier>();\n const importedIsString = this.match(tt.string);\n const isMaybeTypeOnly = this.isContextual(tt._type);\n specifier.imported = this.parseModuleExportName();\n const importSpecifier = this.parseImportSpecifier(\n specifier,\n importedIsString,\n node.importKind === \"type\" || node.importKind === \"typeof\",\n isMaybeTypeOnly,\n undefined,\n );\n node.specifiers.push(importSpecifier);\n }\n }\n\n // https://tc39.es/ecma262/#prod-ImportSpecifier\n parseImportSpecifier(\n specifier: Undone<N.ImportSpecifier>,\n importedIsString: boolean,\n /* eslint-disable @typescript-eslint/no-unused-vars -- used in TypeScript and Flow parser */\n isInTypeOnlyImport: boolean,\n isMaybeTypeOnly: boolean,\n bindingType: BindingTypes | undefined,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ): N.ImportSpecifier {\n if (this.eatContextual(tt._as)) {\n specifier.local = this.parseIdentifier();\n } else {\n const { imported } = specifier;\n if (importedIsString) {\n throw this.raise(Errors.ImportBindingIsString, {\n at: specifier,\n importName: (imported as N.StringLiteral).value,\n });\n }\n this.checkReservedWord(\n (imported as N.Identifier).name,\n specifier.loc.start,\n true,\n true,\n );\n if (!specifier.local) {\n specifier.local = cloneIdentifier(imported);\n }\n }\n return this.finishImportSpecifier(\n specifier,\n \"ImportSpecifier\",\n bindingType,\n );\n }\n\n // This is used in flow and typescript plugin\n // Determine whether a parameter is a this param\n isThisParam(\n param: N.Pattern | N.Identifier | N.TSParameterProperty,\n ): boolean {\n return param.type === \"Identifier\" && param.name === \"this\";\n }\n}\n","import type { Options } from \"../options.ts\";\nimport type * as N from \"../types.ts\";\nimport type { PluginList } from \"../plugin-utils.ts\";\nimport { getOptions } from \"../options.ts\";\nimport StatementParser from \"./statement.ts\";\nimport ScopeHandler from \"../util/scope.ts\";\n\nexport type PluginsMap = Map<\n string,\n {\n [x: string]: any;\n }\n>;\n\nexport default class Parser extends StatementParser {\n // Forward-declaration so typescript plugin can override jsx plugin\n // todo(flow->ts) - this probably can be removed\n // abstract jsxParseOpeningElementAfterName(\n // node: N.JSXOpeningElement,\n // ): N.JSXOpeningElement;\n\n constructor(options: Options | undefined | null, input: string) {\n options = getOptions(options);\n super(options, input);\n\n this.options = options;\n this.initializeScopes();\n this.plugins = pluginsMap(this.options.plugins);\n this.filename = options.sourceFilename;\n }\n\n // This can be overwritten, for example, by the TypeScript plugin.\n getScopeHandler(): {\n new (...args: any): ScopeHandler;\n } {\n return ScopeHandler;\n }\n\n parse(): N.File {\n this.enterInitialScopes();\n const file = this.startNode() as N.File;\n const program = this.startNode() as N.Program;\n this.nextToken();\n file.errors = null;\n this.parseTopLevel(file, program);\n file.errors = this.state.errors;\n return file;\n }\n}\n\nfunction pluginsMap(plugins: PluginList): PluginsMap {\n const pluginMap: PluginsMap = new Map();\n for (const plugin of plugins) {\n const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];\n if (!pluginMap.has(name)) pluginMap.set(name, options || {});\n }\n return pluginMap;\n}\n","import type { Options } from \"./options.ts\";\nimport {\n hasPlugin,\n validatePlugins,\n mixinPluginNames,\n mixinPlugins,\n type PluginList,\n} from \"./plugin-utils.ts\";\nimport type {\n PluginConfig as ParserPlugin,\n FlowPluginOptions,\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"./typings.ts\";\nimport Parser from \"./parser/index.ts\";\n\nimport type { ExportedTokenType } from \"./tokenizer/types.ts\";\nimport {\n getExportedToken,\n tt as internalTokenTypes,\n type InternalTokenTypes,\n} from \"./tokenizer/types.ts\";\n\nimport type { Expression, File } from \"./types.ts\";\n\nexport function parse(input: string, options?: Options): File {\n if (options?.sourceType === \"unambiguous\") {\n options = {\n ...options,\n };\n try {\n options.sourceType = \"module\";\n const parser = getParser(options, input);\n const ast = parser.parse();\n\n if (parser.sawUnambiguousESM) {\n return ast;\n }\n\n if (parser.ambiguousScriptDifferentAst) {\n // Top level await introduces code which can be both a valid script and\n // a valid module, but which produces different ASTs:\n // await\n // 0\n // can be parsed either as an AwaitExpression, or as two ExpressionStatements.\n try {\n options.sourceType = \"script\";\n return getParser(options, input).parse();\n } catch {}\n } else {\n // This is both a valid module and a valid script, but\n // we parse it as a script by default\n ast.program.sourceType = \"script\";\n }\n\n return ast;\n } catch (moduleError) {\n try {\n options.sourceType = \"script\";\n return getParser(options, input).parse();\n } catch {}\n\n throw moduleError;\n }\n } else {\n return getParser(options, input).parse();\n }\n}\n\nexport function parseExpression(input: string, options?: Options): Expression {\n const parser = getParser(options, input);\n if (parser.options.strictMode) {\n parser.state.strict = true;\n }\n return parser.getExpression();\n}\n\nfunction generateExportedTokenTypes(\n internalTokenTypes: InternalTokenTypes,\n): Record<string, ExportedTokenType> {\n const tokenTypes: Record<string, ExportedTokenType> = {};\n for (const typeName of Object.keys(\n internalTokenTypes,\n ) as (keyof InternalTokenTypes)[]) {\n tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]);\n }\n return tokenTypes;\n}\n\nexport const tokTypes = generateExportedTokenTypes(internalTokenTypes);\n\nfunction getParser(options: Options | undefined | null, input: string): Parser {\n let cls = Parser;\n if (options?.plugins) {\n validatePlugins(options.plugins);\n cls = getParserClass(options.plugins);\n }\n\n return new cls(options, input);\n}\n\nconst parserClassCache: { [key: string]: { new (...args: any): Parser } } = {};\n\n/** Get a Parser class with plugins applied. */\nfunction getParserClass(pluginsFromOptions: PluginList): {\n new (...args: any): Parser;\n} {\n const pluginList = mixinPluginNames.filter(name =>\n hasPlugin(pluginsFromOptions, name),\n );\n\n const key = pluginList.join(\"/\");\n let cls = parserClassCache[key];\n if (!cls) {\n cls = Parser;\n for (const plugin of pluginList) {\n // @ts-expect-error todo(flow->ts)\n cls = mixinPlugins[plugin](cls);\n }\n parserClassCache[key] = cls;\n }\n return cls;\n}\n\nexport type {\n FlowPluginOptions,\n ParserPlugin,\n PipelineOperatorPluginOptions,\n RecordAndTuplePluginOptions,\n};\nexport type ParserOptions = Partial<Options>;\n"],"names":["Position","constructor","line","col","index","column","SourceLocation","start","end","filename","identifierName","createPositionWithColumnOffset","position","columnOffset","code","ModuleErrors","ImportMetaOutsideModule","message","ImportOutsideModule","NodeDescriptions","ArrayPattern","AssignmentExpression","AssignmentPattern","ArrowFunctionExpression","ConditionalExpression","CatchClause","ForOfStatement","ForInStatement","ForStatement","FormalParameters","Identifier","ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier","ObjectPattern","ParenthesizedExpression","RestElement","UpdateExpression","true","false","VariableDeclarator","YieldExpression","toNodeDescription","type","prefix","String","StandardErrors","AccessorIsGenerator","kind","ArgumentsInClass","AsyncFunctionInSingleStatementContext","AwaitBindingIdentifier","AwaitBindingIdentifierInStaticBlock","AwaitExpressionFormalParameter","AwaitUsingNotInAsyncContext","AwaitNotInAsyncContext","AwaitNotInAsyncFunction","BadGetterArity","BadSetterArity","BadSetterRestParameter","ConstructorClassField","ConstructorClassPrivateField","ConstructorIsAccessor","ConstructorIsAsync","ConstructorIsGenerator","DeclarationMissingInitializer","DecoratorArgumentsOutsideParentheses","DecoratorBeforeExport","DecoratorsBeforeAfterExport","DecoratorConstructor","DecoratorExportClass","DecoratorSemicolon","DecoratorStaticBlock","DeferImportRequiresNamespace","DeletePrivateField","DestructureNamedImport","DuplicateConstructor","DuplicateDefaultExport","DuplicateExport","exportName","DuplicateProto","DuplicateRegExpFlags","DynamicImportPhaseRequiresImportExpressions","phase","ElementAfterRest","EscapedCharNotAnIdentifier","ExportBindingIsString","localName","ExportDefaultFromAsIdentifier","ForInOfLoopInitializer","ForInUsing","ForOfAsync","ForOfLet","GeneratorInSingleStatementContext","IllegalBreakContinue","IllegalLanguageModeDirective","IllegalReturn","ImportAttributesUseAssert","ImportBindingIsString","importName","ImportCallArgumentTrailingComma","ImportCallArity","maxArgumentCount","ImportCallNotNewExpression","ImportCallSpreadArgument","ImportJSONBindingNotDefault","ImportReflectionHasAssertion","ImportReflectionNotBinding","IncompatibleRegExpUVFlags","InvalidBigIntLiteral","InvalidCodePoint","InvalidCoverInitializedName","InvalidDecimal","InvalidDigit","radix","InvalidEscapeSequence","InvalidEscapeSequenceTemplate","InvalidEscapedReservedWord","reservedWord","InvalidIdentifier","InvalidLhs","ancestor","InvalidLhsBinding","InvalidLhsOptionalChaining","InvalidNumber","InvalidOrMissingExponent","InvalidOrUnexpectedToken","unexpected","InvalidParenthesizedAssignment","InvalidPrivateFieldResolution","InvalidPropertyBindingPattern","InvalidRecordProperty","InvalidRestAssignmentPattern","LabelRedeclaration","labelName","LetInLexicalBinding","LineTerminatorBeforeArrow","MalformedRegExpFlags","MissingClassName","MissingEqInAssignment","MissingSemicolon","MissingPlugin","missingPlugin","map","name","JSON","stringify","join","MissingOneOfPlugins","MissingUnicodeEscape","MixingCoalesceWithLogical","ModuleAttributeDifferentFromType","ModuleAttributeInvalidValue","ModuleAttributesWithDuplicateKeys","key","ModuleExportNameHasLoneSurrogate","surrogateCharCode","toString","ModuleExportUndefined","MultipleDefaultsInSwitch","NewlineAfterThrow","NoCatchOrFinally","NumberIdentifier","NumericSeparatorInEscapeSequence","ObsoleteAwaitStar","OptionalChainingNoNew","OptionalChainingNoTemplate","OverrideOnConstructor","ParamDupe","PatternHasAccessor","PatternHasMethod","PrivateInExpectedIn","PrivateNameRedeclaration","RecordExpressionBarIncorrectEndSyntaxType","RecordExpressionBarIncorrectStartSyntaxType","RecordExpressionHashIncorrectStartSyntaxType","RecordNoProto","RestTrailingComma","SloppyFunction","SloppyFunctionAnnexB","SourcePhaseImportRequiresDefault","StaticPrototype","SuperNotAllowed","SuperPrivateField","TrailingDecorator","TupleExpressionBarIncorrectEndSyntaxType","TupleExpressionBarIncorrectStartSyntaxType","TupleExpressionHashIncorrectStartSyntaxType","UnexpectedArgumentPlaceholder","UnexpectedAwaitAfterPipelineBody","UnexpectedDigitAfterHash","UnexpectedImportExport","UnexpectedKeyword","keyword","UnexpectedLeadingDecorator","UnexpectedLexicalDeclaration","UnexpectedNewTarget","UnexpectedNumericSeparator","UnexpectedPrivateField","UnexpectedReservedWord","UnexpectedSuper","UnexpectedToken","expected","UnexpectedTokenUnaryExponentiation","UnexpectedUsingDeclaration","UnsupportedBind","UnsupportedDecoratorExport","UnsupportedDefaultExport","UnsupportedImport","UnsupportedMetaProperty","target","onlyValidPropertyName","UnsupportedParameterDecorator","UnsupportedPropertyDecorator","UnsupportedSuper","UnterminatedComment","UnterminatedRegExp","UnterminatedString","UnterminatedTemplate","UsingDeclarationHasBindingPattern","VarRedeclaration","YieldBindingIdentifier","YieldInParameter","ZeroDigitNumericSeparator","StrictModeErrors","StrictDelete","StrictEvalArguments","referenceName","StrictEvalArgumentsBinding","bindingName","StrictFunction","StrictNumericEscape","StrictOctalLiteral","StrictWith","UnparenthesizedPipeBodyDescriptions","Set","PipelineOperatorErrors","PipeBodyIsTighter","PipeTopicRequiresHackPipes","PipeTopicUnbound","PipeTopicUnconfiguredToken","token","PipeTopicUnused","PipeUnparenthesizedBody","PipelineBodyNoArrow","PipelineBodySequenceExpression","PipelineHeadSequenceExpression","PipelineTopicUnused","PrimaryTopicNotAllowed","PrimaryTopicRequiresSmartPipeline","defineHidden","obj","value","Object","defineProperty","enumerable","configurable","toParseErrorConstructor","_ref","toMessage","properties","_objectWithoutPropertiesLoose","_excluded","loc","details","error","SyntaxError","assign","pos","clone","overrides","_overrides$loc","get","set","writable","ParseErrorEnum","argument","syntaxPlugin","Array","isArray","parseErrorTemplates","ParseErrorConstructors","reasonCode","keys","template","_ref2","rest","_excluded2","Errors","toUnenumerable","object","toESTreeLocation","node","estree","superClass","ESTreeParserMixin","parse","file","options","tokens","parseRegExpLiteral","pattern","flags","regex","RegExp","e","estreeParseLiteral","parseBigIntLiteral","bigInt","BigInt","_unused","bigint","parseDecimalLiteral","decimal","parseLiteral","parseStringLiteral","parseNumericLiteral","parseNullLiteral","parseBooleanLiteral","directiveToStmt","directive","expression","raw","extra","expressionValue","stmt","rawValue","initFunction","isAsync","checkDeclaration","isObjectProperty","getObjectOrClassMethodParams","method","params","isValidDirective","_stmt$expression$extr","parenthesized","parseBlockBody","allowDirectives","topLevel","afterBlockParse","directiveStatements","directives","d","body","concat","pushClassMethod","classBody","isGenerator","isConstructor","allowsDirectSuper","parseMethod","typeParameters","push","parsePrivateName","getPluginOption","convertPrivateNameToPrivateIdentifier","getPrivateNameSV","id","isPrivateName","parseFunctionBody","allowExpression","isMethod","allowDirectSuper","inClassScope","funcNode","startNode","computed","finishNode","parseClassProperty","args","propertyNode","parseClassPrivateProperty","parseObjectMethod","prop","isPattern","isAccessor","shorthand","parseObjectProperty","startLoc","refExpressionErrors","isValidLVal","isUnparenthesizedInAssign","binding","isAssignable","isBinding","toAssignable","isLHS","classScope","usePrivateName","toAssignableObjectExpressionProp","isLast","raise","at","finishCallExpression","unfinished","optional","callee","source","arguments","hasPlugin","_node$arguments$","_node$arguments$2","attributes","toReferencedArguments","parseExport","decorators","exportStartLoc","state","lastTokStartLoc","exported","specifiers","length","_declaration$decorato","declaration","resetStartLocation","parseSubscript","base","noCalls","optionalChainMember","substring","stop","chain","startNodeAtNode","isOptionalMemberExpression","hasPropertyAsPrivateName","isObjectMethod","finishNodeAt","endLoc","resetEndLocation","lastTokEndLoc","TokContext","preserveSpace","types","brace","j_oTag","j_cTag","j_expr","beforeExpr","startsExpr","isLoop","isAssign","postfix","ExportedTokenType","label","conf","rightAssociative","binop","updateContext","keywords","Map","createKeyword","createToken","createBinop","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","bracketL","bracketHashL","bracketBarL","bracketR","bracketBarR","braceL","braceBarL","braceHashL","braceR","braceBarR","parenL","parenR","comma","semi","colon","doubleColon","dot","question","questionDot","arrow","ellipsis","backQuote","dollarBraceL","templateTail","templateNonTail","hash","interpreterDirective","eq","slashAssign","xorAssign","moduloAssign","incDec","bang","tilde","doubleCaret","doubleAt","pipeline","nullishCoalescing","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","lt","gt","relational","bitShift","bitShiftL","bitShiftR","plusMin","modulo","star","slash","exponent","_in","_instanceof","_break","_case","_catch","_continue","_debugger","_default","_else","_finally","_function","_if","_return","_switch","_throw","_try","_var","_const","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_typeof","_void","_delete","_do","_for","_while","_as","_assert","_async","_await","_defer","_from","_get","_let","_meta","_of","_sent","_set","_source","_static","_using","_yield","_asserts","_checks","_exports","_global","_implements","_intrinsic","_infer","_is","_mixins","_proto","_require","_satisfies","_keyof","_readonly","_unique","_abstract","_declare","_enum","_module","_namespace","_interface","_type","_opaque","string","num","regexp","privateName","eof","jsxName","jsxText","jsxTagStart","jsxTagEnd","placeholder","tokenIsIdentifier","tokenKeywordOrIdentifierIsKeyword","tokenIsKeywordOrIdentifier","tokenIsLiteralPropertyName","tokenComesBeforeExpression","tokenCanStartExpression","tokenIsAssignment","tokenIsFlowInterfaceOrTypeOrOpaque","tokenIsLoop","tokenIsKeyword","tokenIsOperator","tokenIsPostfix","tokenIsPrefix","tokenIsTSTypeOperator","tokenIsTSDeclarationStart","tokenLabelName","tokenOperatorPrecedence","tokenIsRightAssociative","tokenIsTemplate","getExportedToken","context","pop","tc","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","i","isIdentifierStart","test","fromCharCode","isIdentifierChar","reservedWords","strict","strictBind","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","isIteratorStart","current","next","next2","reservedWordLikeSet","canBeReservedWord","Scope","var","lexical","functions","ScopeHandler","parser","scopeStack","undefinedExports","inTopLevel","currentScope","inFunction","currentVarScopeFlags","allowSuper","currentThisScopeFlags","inClass","inClassAndNotInNonArrowFunction","inStaticBlock","ScopeFlag","inNonArrowFunction","treatFunctionsAsVar","treatFunctionsAsVarInScope","createScope","enter","exit","scope","declareName","bindingType","checkRedeclarationInScope","add","maybeExportDefined","delete","isRedeclaredInScope","values","checkLocalExport","topLevelScope","FlowScope","declareFunctions","FlowScopeHandler","BaseParser","sawUnambiguousESM","ambiguousScriptDifferentAst","pluginConfig","plugins","pluginName","pluginOptions","actualOptions","plugin","_this$plugins$get","setTrailingComments","comments","trailingComments","undefined","unshift","setLeadingComments","leadingComments","setInnerComments","innerComments","adjustInnerComments","elements","commentWS","lastElement","CommentsParser","addComment","comment","processComment","commentStack","commentStackLength","lastCommentWS","leadingNode","nodeStart","commentEnd","containingNode","finalizeComment","splice","trailingNode","commentStart","input","charCodeAt","finalizeRemainingComments","resetPreviousNodeTrailingComments","resetPreviousIdentifierLeadingComments","takeSurroundingComments","lineBreak","lineBreakG","isNewLine","skipWhiteSpace","skipWhiteSpaceInLine","skipWhiteSpaceToLineBreak","isWhitespace","State","curLine","lineStart","errors","potentialArrowAt","noArrowAt","noArrowParamsConversionAt","maybeInArrowParameters","inType","noAnonFunctionType","hasFlowComment","isAmbientContext","inAbstractClass","inDisallowConditionalTypesContext","topicContext","maxNumOfResolvableTopics","maxTopicIndex","soloAwait","inFSharpPipelineDirectBody","labels","lastTokStart","ct","canStartJSXElement","containsEsc","firstInvalidTemplateEscapePos","strictErrors","tokensLength","init","strictMode","sourceType","startLine","startColumn","curPosition","skipArrays","val","slice","isDigit","forbiddenNumericSeparatorSiblings","decBinOct","hex","isAllowedNumericSeparatorSibling","bin","ch","oct","dec","readStringContents","initialPos","initialLineStart","initialCurLine","out","firstInvalidLoc","chunkStart","unterminated","isStringEnd","res","readEscapedChar","str","containsInvalid","inTemplate","throwOnInvalid","readHexChar","readCodePoint","fromCodePoint","strictNumericEscape","startPos","match","octalStr","octal","parseInt","len","forceLen","n","readInt","invalidEscapeSequence","allowNumSeparator","bailOnError","forbiddenSiblings","isAllowedSibling","invalid","total","Infinity","prev","numericSeparatorInEscapeSequence","Number","isNaN","unexpectedNumericSeparator","_isDigit","invalidDigit","indexOf","invalidCodePoint","buildPosition","VALID_REGEX_FLAGS","Token","Tokenizer","isLookahead","errorHandlers_readInt","errorRecovery","errorBuilder","errorHandlers_readCodePoint","errorHandlers_readStringContents_string","recordStrictModeErrors","errorHandlers_readStringContents_template","pushToken","checkKeywordEscapes","nextToken","eat","createLookaheadState","curContext","lookahead","old","curr","nextTokenStart","nextTokenStartSince","lastIndex","lookaheadCharCode","nextTokenInLineStart","nextTokenInLineStartSince","lookaheadInLineCharCode","codePointAtPos","cp","trail","setStrict","forEach","toParseError","clear","skipSpace","finishToken","getTokenFromCode","skipBlockComment","skipLineComment","startSkip","spaceStart","loop","attachComment","annexB","commentWhitespace","prevType","replaceToken","readToken_numberSign","readToken_interpreter","nextPos","expectPlugin","readWord1","finishOp","readToken_dot","readNumber","readToken_slash","readToken_mult_modulo","width","readToken_pipe_amp","readToken_caret","proposal","topicToken","lookaheadCh","codePointAt","readToken_atSign","readToken_plus_min","readToken_lt","readToken_gt","size","readToken_eq_excl","readToken_question","readTemplateToken","readRadixNumber","readString","readWord","readRegexp","escaped","content","mods","char","includes","isBigInt","replace","startsWithDot","isFloat","isDecimal","hasExponent","isOctal","hasLeadingZero","integer","underscorePos","parseFloat","quote","readTemplateContinuation","opening","firstCode","escStart","identifierCheck","esc","keywordTypes","raiseProperties","raiseOverwrite","expectOnePlugin","pluginNames","some","ClassScope","privateNames","loneAccessors","undefinedPrivateNames","ClassScopeHandler","stack","oldClassScope","from","declarePrivateName","elementType","redefined","accessor","oldStatic","newStatic","oldKind","newKind","ExpressionScope","canBeArrowParameterDeclaration","isCertainlyParameterDeclaration","ArrowHeadParsingScope","declarationErrors","recordDeclarationError","ParsingErrorClass","clearDeclarationError","iterateErrors","iterator","ExpressionScopeHandler","recordParameterInitializerError","origin","recordArrowParameterBindingError","recordAsyncArrowParametersError","validateAsPattern","newParameterDeclarationScope","newArrowHeadScope","newAsyncArrowScope","newExpressionScope","PARAM","PARAM_YIELD","PARAM_AWAIT","PARAM_RETURN","PARAM_IN","ProductionParameterHandler","stacks","currentFlags","hasAwait","hasYield","hasReturn","hasIn","functionFlags","UtilParser","addExtra","isContextual","isUnparsedContextual","nameStart","nameEnd","nextCh","isLookaheadContextual","eatContextual","expectContextual","canInsertSemicolon","hasPrecedingLineBreak","hasFollowingLineBreak","isLineTerminator","semicolon","allowAsi","expect","tryParse","fn","oldState","abortSignal","failState","thrown","aborted","checkExpressionErrors","andThrow","shorthandAssignLoc","doubleProtoLoc","privateKeyLoc","optionalParametersLoc","hasErrors","isLiteralPropertyName","property","initializeScopes","oldLabels","oldExportedIdentifiers","exportedIdentifiers","oldInModule","oldScope","getScopeHandler","oldProdParam","prodParam","oldExpressionScope","expressionScope","enterInitialScopes","paramFlags","checkDestructuringPrivate","ExpressionErrors","Node","ranges","range","NodePrototype","prototype","__clone","newNode","clonePlaceholder","cloneIdentifier","cloned","create","expectedNode","cloneStringLiteral","NodeUtils","startNodeAt","resetStartLocationFromNode","locationNode","reservedTypes","FlowErrors","AmbiguousConditionalArrow","AmbiguousDeclareModuleKind","AssignReservedType","reservedType","DeclareClassElement","DeclareClassFieldInitializer","DuplicateDeclareModuleExports","EnumBooleanMemberNotInitialized","memberName","enumName","EnumDuplicateMemberName","EnumInconsistentMemberValues","EnumInvalidExplicitType","invalidEnumType","EnumInvalidExplicitTypeUnknownSupplied","EnumInvalidMemberInitializerPrimaryType","explicitType","EnumInvalidMemberInitializerSymbolType","EnumInvalidMemberInitializerUnknownType","EnumInvalidMemberName","suggestion","EnumNumberMemberNotInitialized","EnumStringMemberInconsistentlyInitialized","GetterMayNotHaveThisParam","ImportReflectionHasImportType","ImportTypeShorthandOnlyInPureImport","InexactInsideExact","InexactInsideNonObject","InexactVariance","InvalidNonTypeImportInDeclareModule","MissingTypeParamDefault","NestedDeclareModule","NestedFlowComment","PatternIsOptional","SetterMayNotHaveThisParam","SpreadVariance","ThisParamAnnotationRequired","ThisParamBannedInConstructor","ThisParamMayNotBeOptional","ThisParamMustBeFirst","ThisParamNoDefault","TypeBeforeInitializer","TypeCastInPattern","UnexpectedExplicitInexactInObject","UnexpectedReservedType","UnexpectedReservedUnderscore","UnexpectedSpaceBetweenModuloChecks","UnexpectedSpreadType","UnexpectedSubtractionOperand","UnexpectedTokenAfterTypeParameter","UnexpectedTypeParameterBeforeAsyncArrowFunction","UnsupportedDeclareExportKind","unsupportedExportKind","UnsupportedStatementInDeclareModule","UnterminatedFlowComment","isEsModuleType","bodyElement","hasTypeImportKind","importKind","exportSuggestions","const","let","interface","partition","list","list1","list2","FLOW_PRAGMA_REGEX","flow","FlowParserMixin","flowPragma","shouldParseTypes","shouldParseEnums","matches","exec","Error","flowParseTypeInitialiser","tok","oldInType","flowParseType","flowParsePredicate","moduloLoc","parseExpression","flowParseTypeAndPredicateInitialiser","predicate","flowParseDeclareClass","flowParseInterfaceish","flowParseDeclareFunction","parseIdentifier","typeNode","typeContainer","flowParseTypeParameterDeclaration","tmp","flowParseFunctionTypeParams","this","returnType","typeAnnotation","flowParseDeclare","insideModule","flowParseDeclareVariable","flowParseDeclareModuleExports","flowParseDeclareModule","flowParseDeclareTypeAlias","flowParseDeclareOpaqueType","flowParseDeclareInterface","flowParseDeclareExportDeclaration","flowParseTypeAnnotatableIdentifier","parseExprAtom","bodyNode","parseImport","hasModuleExport","default","isLet","exportKind","flowParseTypeAnnotation","finished","flowParseTypeAlias","flowParseOpaqueType","isClass","flowParseRestrictedIdentifier","extends","flowParseInterfaceExtends","implements","mixins","flowParseObjectType","allowStatic","allowExact","allowSpread","allowProto","allowInexact","flowParseQualifiedTypeIdentifier","flowParseTypeParameterInstantiation","flowParseInterface","checkNotUnderscore","checkReservedType","liberal","right","declare","supertype","impltype","flowParseTypeParameter","requireDefault","nodeStartLoc","variance","flowParseVariance","ident","bound","defaultRequired","typeParameter","oldNoAnonFunctionType","flowParseTypeParameterInstantiationCallOrNew","flowParseTypeOrImplicitInstantiation","flowParseInterfaceType","flowParseObjectPropertyKey","flowParseObjectTypeIndexer","isStatic","static","flowParseObjectTypeInternalSlot","flowParseObjectTypeMethodish","flowParseFunctionTypeParam","flowParseObjectTypeCallProperty","valueNode","callProperties","indexers","internalSlots","endDelim","exact","inexact","protoStartLoc","inexactStartLoc","propOrInexact","flowParseObjectTypeProperty","flowObjectTypeSemicolon","isInexactToken","proto","flowCheckGetterSetterParams","paramCount","_startLoc","node2","qualification","flowParseGenericType","flowParseTypeofType","flowParsePrimaryType","flowParseTupleType","first","lh","isThis","reinterpretTypeAsFunctionTypeParam","flowIdentToTypeAnnotation","isGroupedType","parseLiteralAtNode","createIdentifier","flowParsePostfixType","seenOptionalIndexedAccess","objectType","indexType","flowParsePrefixType","flowParseAnonFunctionWithoutParens","param","flowParseIntersectionType","flowParseUnionType","allowPrimitiveOverride","typeCastToParameter","allowExpressionBody","forwardNoArrowParamsConversionAt","parseFunctionBodyAndFinish","parseStatementLike","flowParseEnumDeclaration","parseExpressionStatement","expr","shouldParseExportDeclaration","isExportDefaultSpecifier","parseExportDefaultExpression","parseConditional","setOptionalParametersError","originalNoArrowAt","consequent","failed","tryParseConditionalConsequent","valid","getArrowLikeExpressions","alternate","parseMaybeAssign","parseMaybeAssignAllowIn","disallowInvalid","arrows","finishArrowValidation","every","_node$extra","toAssignableList","trailingCommaLoc","checkParams","result","parseParenItem","typeCastNode","assertModuleNodeAllowed","parseExportDeclaration","declarationNode","parseExportSpecifiers","parseExportFrom","eatExportStar","maybeParseExportNamespaceSpecifier","hasNamespace","parseClassId","isStatement","optionalId","parseClassMember","member","parseClassMemberFromModifier","isIterator","readIterator","fullWord","left","exprList","toReferencedList","isParenthesizedExpr","_expr$extra","parseArrayLike","close","canBePattern","isTuple","isParenthesized","isClassMethod","isClassProperty","isNonstaticConstructor","isThisParam","pushClassPrivateMethod","parseClassSuper","superTypeParameters","implemented","checkGetterSetterParams","parsePropertyNamePrefixOperator","parseObjPropValue","parseAssignableListItemTypes","parseMaybeDefault","checkImportReflection","module","parseImportSpecifierLocal","specifier","local","finishImportSpecifier","isPotentialImportPhase","isExport","applyImportPhase","parseImportSpecifier","importedIsString","isInTypeOnlyImport","isMaybeTypeOnly","firstIdent","imported","specifierTypeKind","as_ident","specifierIsTypeImport","checkReservedWord","parseBindingAtom","parseFunctionParams","parseVarId","decl","parseAsyncArrowFromCallExpression","call","shouldParseAsyncArrow","afterLeftParse","_jsx","jsx","currentContext","_jsx2","_jsx3","abort","_arrowExpression$extr","arrowExpression","maybeUnwrapTypeCastExpression","async","parseArrow","shouldParseArrow","setArrowFunctionParameters","allowDuplicates","isArrowFunction","strictModeChanged","parseParenAndDistinguishExpression","canBeArrow","parseSubscripts","parseCallExpressionArguments","parseAsyncArrowWithTypeParameters","subscriptState","isLookaheadToken_lt","typeArguments","parseNewCallee","targs","parseArrowExpression","parseTopLevel","program","fileNode","skipFlowComment","hasFlowCommentCompletion","commentSkip","shiftToFirstNonWhiteSpace","ch2","ch3","flowEnumErrorBooleanMemberNotInitialized","flowEnumErrorInvalidMemberInitializer","enumContext","flowEnumErrorNumberMemberNotInitialized","flowEnumErrorStringMemberInconsistentlyInitialized","flowEnumMemberInit","endOfInit","literal","flowEnumMemberRaw","flowEnumCheckExplicitTypeMismatch","expectedType","flowEnumMembers","seenNames","members","booleanMembers","numberMembers","stringMembers","defaultedMembers","hasUnknownMembers","memberNode","toUpperCase","flowEnumStringMembers","initializedMembers","flowEnumParseExplicitType","flowEnumBody","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","afterNext","entities","__proto__","quot","amp","apos","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","JsxErrors","AttributeIsEmpty","MissingClosingTagElement","openingTagName","MissingClosingTagFragment","UnexpectedSequenceExpression","HTMLEntity","UnsupportedJsxValue","UnterminatedJsxContent","UnwrappedAdjacentJSXElements","isFragment","getQualifiedJSXName","namespace","JSXParserMixin","jsxReadToken","jsxReadEntity","jsxReadNewLine","normalizeCRLF","jsxReadString","codePoint","count","desc","entity","XHTMLEntities","jsxReadWord","jsxParseIdentifier","jsxParseNamespacedName","jsxParseElementName","jsxParseAttributeValue","setContext","jsxParseExpressionContainer","jsxParseEmptyExpression","jsxParseSpreadChild","previousContext","jsxParseAttribute","jsxParseOpeningElementAt","jsxParseOpeningElementAfterName","selfClosing","jsxParseClosingElementAt","jsxParseElementAt","children","openingElement","closingElement","contents","openingFragment","closingFragment","jsxParseElement","newContext","TypeScriptScope","enums","constEnums","classes","exportOnlyBindings","TypeScriptScopeHandler","importsStack","hasImport","allowShadow","isConst","wasConst","getOwn","hasOwnProperty","unwrapParenthesizedExpression","LValParser","_node$extra3","last","_node$extra2","operator","arg","checkToRestConversion","elt","element","toReferencedListDeep","parseSpread","parseRestBinding","parseBindingList","ParseBindingListFlags","parseObjectLike","closeCharCode","allowEmpty","elts","checkCommaAfterRest","parseDecorator","parseAssignableListItem","parseBindingRestProperty","parseBindingProperty","parsePropertyName","_left","ObjectProperty","checkLVal","in","checkClashes","hasParenthesizedAncestor","_expression$extra","checkIdentifier","validity","ParseErrorClass","isParenthesizedExpression","nextAncestor","child","declareNameFromIdentifier","identifier","allowPattern","nonNull","x","assert","TSErrors","AbstractMethodHasImplementation","methodName","AbstractPropertyHasInitializer","propertyName","AccesorCannotDeclareThisParameter","AccesorCannotHaveTypeParameters","AccessorCannotBeOptional","ClassMethodHasDeclare","ClassMethodHasReadonly","ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference","ConstructorHasTypeParameters","DeclareAccessor","DeclareClassFieldHasInitializer","DeclareFunctionHasImplementation","DuplicateAccessibilityModifier","modifier","DuplicateModifier","EmptyHeritageClauseType","EmptyTypeArguments","EmptyTypeParameters","ExpectedAmbientAfterExportDeclare","ImportAliasHasImportType","IncompatibleModifiers","modifiers","IndexSignatureHasAbstract","IndexSignatureHasAccessibility","IndexSignatureHasDeclare","IndexSignatureHasOverride","IndexSignatureHasStatic","InitializerNotAllowedInAmbientContext","InvalidModifierOnTypeMember","InvalidModifierOnTypeParameter","InvalidModifierOnTypeParameterPositions","InvalidModifiersOrder","orderedModifiers","InvalidPropertyAccessAfterInstantiationExpression","InvalidTupleMemberLabel","MissingInterfaceName","NonAbstractClassHasAbstractMethod","NonClassMethodPropertyHasAbstractModifer","OptionalTypeBeforeRequired","OverrideNotInSubClass","PrivateElementHasAbstract","PrivateElementHasAccessibility","ReadonlyForMethodSignature","ReservedArrowTypeParam","ReservedTypeAssertion","SetAccesorCannotHaveOptionalParameter","SetAccesorCannotHaveRestParameter","SetAccesorCannotHaveReturnType","SingleTypeParameterWithoutTrailingComma","typeParameterName","StaticBlockCannotHaveModifier","TupleOptionalAfterType","TypeAnnotationAfterAssign","TypeImportCannotSpecifyDefaultAndNamed","TypeModifierIsUsedInTypeExports","TypeModifierIsUsedInTypeImports","UnexpectedParameterModifier","UnexpectedReadonly","UnexpectedTypeAnnotation","UnexpectedTypeCastInParameter","UnsupportedImportTypeArgument","UnsupportedParameterPropertyKind","UnsupportedSignatureParameterKind","keywordTypeFromName","tsIsAccessModifier","tsIsVarianceAnnotations","typescript","TypeScriptParserMixin","tsParseInOutModifiers","tsParseModifiers","bind","allowedModifiers","disallowedModifiers","errorTemplate","tsParseConstModifier","tsParseInOutConstModifiers","tsIsIdentifier","tsTokenCanFollowModifier","tsNextTokenCanFollowModifier","tsParseModifier","stopOnStartOfClassStaticBlock","tsIsStartOfStaticBlocks","tsTryParse","modified","enforceOrder","before","after","incompatible","mod1","mod2","accessibility","tsIsListTerminator","tsParseList","parseElement","tsParseDelimitedList","refTrailingCommaPos","tsParseDelimitedListWorker","expectSuccess","trailingCommaPos","tsParseBracketedList","bracket","skipFirstToken","tsParseImportType","qualifier","tsParseEntityName","tsParseTypeArguments","allowReservedWords","tsParseTypeReference","typeName","tsParseThisTypePredicate","lhs","parameterName","tsParseTypeAnnotation","asserts","tsParseThisTypeNode","tsParseTypeQuery","exprName","tsParseTypeParameter","parseModifiers","tsParseTypeParameterName","constraint","tsEatThenParseType","tsTryParseTypeParameters","tsParseTypeParameters","tsFillSignature","returnToken","signature","returnTokenRequired","paramsKey","returnTypeKey","tsParseBindingListForSignature","tsParseTypeOrTypePredicateAnnotation","tsParseTypeMemberSemicolon","tsParseSignatureMember","tsIsUnambiguouslyIndexSignature","tsTryParseIndexSignature","tsLookAhead","parameters","tsTryParseTypeAnnotation","tsParsePropertyOrMethodSignature","readonly","nodeAny","firstParameter","tsParseTypeMember","idx","tsParseTypeLiteral","tsParseObjectTypeMembers","tsIsStartOfMappedType","tsParseMappedTypeParameter","tsExpectThenParseType","tsParseMappedType","nameType","tsParseType","tsTryParseType","tsParseTupleType","elementTypes","tsParseTupleElementType","seenOptionalElement","elementNode","labeled","isWord","chAfterWord","wordName","typeOrLabel","tsParseNonArrayType","labeledNode","optionalTypeNode","restNode","tsParseParenthesizedType","tsParseFunctionOrConstructorType","abstract","tsInAllowConditionalTypesContext","tsParseLiteralTypeNode","tsParseTemplateLiteralType","parseTemplate","parseTemplateSubstitution","tsParseThisTypeOrThisTypePredicate","thisKeyword","parseMaybeUnary","nodeType","tsParseArrayTypeOrHigher","tsParseTypeOperator","tsParseTypeOperatorOrHigher","tsCheckTypeAnnotationForReadOnly","tsParseInferType","tsParseConstraintForInferType","tsInDisallowConditionalTypesContext","isTypeOperator","tsParseUnionOrIntersectionType","parseConstituentType","hasLeadingOperator","tsParseIntersectionTypeOrHigher","tsParseUnionTypeOrHigher","tsIsStartOfFunctionType","tsIsUnambiguouslyStartOfFunctionType","tsSkipParameterStart","previousErrorCount","_unused2","tsInType","t","tsParseTypePredicateAsserts","thisTypePredicate","typePredicateVariable","tsParseTypePredicatePrefix","tsTryParseTypeOrTypePredicateAnnotation","eatColon","tsParseNonConditionalType","checkType","extendsType","trueType","falseType","isAbstractConstructorSignature","tsParseTypeAssertion","tsParseHeritageClause","originalStartLoc","delimitedList","tsParseInterfaceDeclaration","tsParseTypeAliasDeclaration","tsInNoContext","cb","oldContext","oldInDisallowConditionalTypesContext","tsNextThenParseType","tsParseEnumMember","initializer","tsParseEnumDeclaration","tsParseModuleBlock","parseBlockOrModuleBlockBody","tsParseModuleOrNamespaceDeclaration","nested","inner","tsParseAmbientExternalModuleDeclaration","global","tsParseImportEqualsDeclaration","maybeDefaultIdentifier","moduleReference","tsParseModuleReference","tsIsExternalModuleReference","tsParseExternalModuleReference","f","tsTryParseAndCatch","tsTryParseDeclare","nany","startType","tsInAmbientContext","parseFunctionStatement","parseClass","parseVarStatement","tsParseDeclaration","tsTryParseExportDeclaration","tsParseExpressionStatement","mod","tsCheckLineTerminator","tsParseAbstractDeclaration","tsTryParseGenericAsyncArrowFunction","oldMaybeInArrowParameters","tsParseTypeArgumentsInExpression","reScan_lt","reScan_lt_gt","tsIsDeclarationStart","override","pp","parameter","isSimpleParameter","tsDisallowOptionalPattern","bodilessType","registerFunctionStatementId","tsCheckForInvalidTypeCasts","items","isInParens","nonNullExpression","isOptionalCall","missingParenErrorLoc","atPossibleAsyncArrow","asyncArrowFn","parseTaggedTemplateExpression","tokenType","_callee$extra","parseExprOp","leftStartLoc","minPrec","isSatisfies","checkKeywords","checkDuplicateExports","importNode","parseMaybeImportPhase","parseImportSpecifiersAndAfter","isAbstractClass","cls","allowMissingInitializer","declarations","isValidAmbientConstInitializer","parseStatementContent","parseAccessModifier","tsHasSomeModifiers","callParseClassMemberWithIsStatic","parseClassStaticBlock","parseClassMemberWithIsStatic","hadSuperClass","parsePostMemberNameModifiers","methodOrProp","isDeclare","isIdentifier","parseClassPropertyAnnotation","definite","parseClassAccessorProperty","declareClassPrivateMethodInScope","_typeCast","_typeCast2","typeCast","_typeParameters","reportReservedArrowTypeParam","trailingComma","sawUnary","toAssignableParenthesizedExpression","TSTypeCastExpression","TSParameterProperty","TSNonNullExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","parseMaybeDecoratorArguments","canHaveLeadingDecorator","getGetterSetterExpectedParamCount","baseCount","firstParam","hasContextParam","parseCatchClauseParam","oldIsAmbientContext","oldInAbstractClass","maybeTakeDecorators","hasBody","shouldParseAsAmbientContext","getExpression","parseExportSpecifier","isString","isInTypeExport","parseTypeOnlyImportExportSpecifier","isImport","isInTypeOnlyImportExport","leftOfAsKey","rightOfAsKey","leftOfAs","rightOfAs","hasTypeSpecifier","canParseAsKeyword","firstAs","secondAs","parseModuleExportName","kindKey","isPossiblyLiteralEnum","expressions","isUncomputedMemberExpressionChain","isNumber","isNegativeNumber","PlaceholderErrors","ClassNameIsRequired","UnexpectedSpace","placeholders","PlaceholdersParserMixin","parsePlaceholder","assertNoSpace","finishPlaceholder","isFinished","chStartsBindingIdentifier","verifyBreakContinue","isBreak","parseStatementOrSloppyAnnexBFunctionDeclaration","parseBlock","createNewLexicalScope","parseFunctionId","requireId","oldStrict","parseClassBody","startsWith","maybeParseExportDefaultSpecifier","_specifiers","checkExport","filter","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","parseImportSource","v8intrinsic","V8IntrinsicMixin","parseV8Intrinsic","v8IntrinsicStartLoc","parseIdentifierName","expectedConfig","expectedName","expectedOptions","expectedKeys","expectedOptionsIsEmpty","p","option","find","PIPELINE_PROPOSALS","TOPIC_TOKENS","RECORD_AND_TUPLE_SYNTAX_TYPES","validatePlugins","decoratorsBeforeExport","allowCallParenthesized","proposalList","tupleSyntaxIsHash","syntaxType","tokenList","moduleAttributesVersionPluginOption","missingPlugins","mixinPlugins","mixinPluginNames","defaultOptions","sourceFilename","allowAwaitOutsideFunction","allowReturnOutsideFunction","allowNewTargetOutsideFunction","allowImportExportEverywhere","allowSuperOutsideMethod","allowUndeclaredExports","createImportExpressions","createParenthesizedExpressions","getOptions","opts","_opts$key","ExpressionParser","checkProto","isRecord","protoRef","used","shouldExitDescending","disallowIn","disallowInAnd","parseExpressionBase","allowInAnd","parseMaybeAssignDisallowIn","resultError","_resultError$loc","parseYield","ownExpressionErrors","parseMaybeConditional","startIndex","parseExprOps","parseMaybeUnaryOrPrivate","op","prec","checkPipelineAtInfixOperator","logical","coalesce","parseExprOpRightExpr","finishedNode","nextOp","withTopicBindingContext","parseHackPipeBody","parseSmartPipelineBodyInStyle","parseExprOpBaseRightExpr","withSoloAwaitPermittingContext","parseFSharpPipelineBody","_body$extra","requiredParentheses","topicReferenceWasUsedInCurrentContext","checkExponentialAfterUnary","isAwait","isAwaitAllowed","parseAwait","update","isDelete","parseUpdate","isAmbiguousAwait","updateExpressionNode","parseExprSubscripts","maybeAsyncArrow","parseBind","parseCoverCallAndAsyncArrowHead","parseMember","parseNoCallExpr","tag","quasi","expectImportAttributesPlugin","dynamicImport","allowPlaceholder","nodeForExtra","oldInFSharpPipelineDirectBody","addTrailingCommaExtraToNode","parseExprListItem","_call$extra","parseSuper","parseImportMetaProperty","parseImportCall","parseDo","parseFunctionOrFunctionSent","parseDecorators","parseNewOrNewTarget","parseTopicReferenceThenEqualsSign","parseTopicReference","pipeProposal","parseModuleExpression","parseAsyncFunctionExpression","parseAsyncArrowUnaryFunction","topicTokenType","topicTokenValue","finishTopicReference","testTopicReferenceConfiguration","topicReferenceIsAllowedInCurrentContext","registerTopicReference","meta","parseMetaProperty","parseFunction","isSource","innerStartLoc","spreadStartLoc","optionalCommaStartLoc","spreadNodeStartLoc","innerEndLoc","arrowNode","wrapParenthesis","parenExpression","metaProp","parseNew","parseExprList","parseTemplateElement","isTagged","elemStart","elem","isTail","endOffset","elemEnd","cooked","tail","curElt","quasis","propHash","parsePropertyDefinition","maybeAsyncOrAccessorProp","keyName","_params","finishedProp","generator","isExpression","hasStrictModeDirective","nonSimple","isSimpleParamList","formalParameters","reservedTest","delegating","delegate","childExpr","isSimpleReference","checkSmartPipeTopicBodyEarlyErrors","callback","outerContextTopicState","withSmartMixTopicForbiddingContext","outerContextSoloAwaitState","prodParamToSet","prodParamToClear","ret","revertScopes","parseProgram","loopLabel","switchLabel","loneSurrogate","keywordRelationalOperator","babel7CompatTokens","hashEndPos","hashEndLoc","backquoteEnd","backquoteEndLoc","startToken","templateValue","templateElementEnd","templateElementEndLoc","endToken","StatementParser","interpreter","parseInterpreterDirective","finishedProgram","stmtToDirective","directiveLiteral","hasFollowingBindingAtom","endCh","chStartsBindingPattern","hasInLineFollowingBindingIdentifier","startsUsingForOf","startsAwaitUsing","parseModuleItem","ParseStatementFlag","parseStatementListItem","allowLabeledFunction","parseStatement","starttype","allowDeclaration","allowFunctionDeclaration","parseBreakContinueStatement","parseDebuggerStatement","parseDoWhileStatement","parseForStatement","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseWhileStatement","parseWithStatement","parseEmptyStatement","nextTokenCharCode","isAsyncFunction","maybeName","parseLabeledStatement","decoratorsEnabledBeforeExport","maybeDecorators","classNode","exportNode","allowExport","paramsStartLoc","lab","parseHeaderExpression","awaitAt","parseFor","startsWithLet","startsWithAwaitUsing","starsWithUsingDeclaration","isLetOrUsing","initNode","parseVar","isForIn","parseForIn","startsWithAsync","isForOf","isHangingDeclaration","ParseFunctionFlag","discriminant","cases","cur","sawDefault","isCase","block","handler","clause","finalizer","statementStart","parsedNonDirective","await","isFor","hangingDeclaration","isDeclaration","hadConstructor","publicMethod","privateMethod","publicProp","privateProp","accessorProp","publicMember","parseClassElementName","isPrivate","maybeQuestionTokenStartLoc","pushClassPrivateProperty","pushClassProperty","pushClassAccessorProperty","_member$decorators","parseInitializer","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","maybeParseExportNamedSpecifiers","hasDeclaration","maybeParseExportDeclaration","_node2$declaration","isTypeExport","assertions","nextType","hasFrom","nextAfterFrom","maybeParseImportAttributes","checkJSONModuleImport","checkNames","isDefault","isFrom","_node$specifiers","_declaration$extra","nodes","surrogate","isJSONModuleImport","singleBindingType","_node$assertions","nonDefaultNamedSpecifier","phaseIdentifier","isImportPhase","isPrecedingIdImportPhase","parseImportSourceAndAttributes","maybeParseDefaultImportSpecifier","parseNext","_node$specifiers2","parseImportAttributes","attrs","attrNames","parseModuleAttributes","useWith","importSpecifier","Parser","pluginsMap","pluginMap","_options","getParser","ast","moduleError","generateExportedTokenTypes","internalTokenTypes","tokTypes","getParserClass","parserClassCache","pluginsFromOptions","pluginList"],"mappings":";;;;;;;;;;;;;;;;;AAOO,MAAMA,QAAQ,CAAC;EAKpBC,WAAWA,CAACC,IAAY,EAAEC,GAAW,EAAEC,KAAa,EAAE;IAAA,IAAA,CAJtDF,IAAI,GAAA,KAAA,CAAA;IAAA,IAAA,CACJG,MAAM,GAAA,KAAA,CAAA;IAAA,IAAA,CACND,KAAK,GAAA,KAAA,CAAA;IAGH,IAAI,CAACF,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACG,MAAM,GAAGF,GAAG;IACjB,IAAI,CAACC,KAAK,GAAGA,KAAK;EACpB;AACF;AAEO,MAAME,cAAc,CAAC;EAM1BL,WAAWA,CAACM,KAAe,EAAEC,GAAc,EAAE;IAAA,IAAA,CAL7CD,KAAK,GAAA,KAAA,CAAA;IAAA,IAAA,CACLC,GAAG,GAAA,KAAA,CAAA;IAAA,IAAA,CACHC,QAAQ,GAAA,KAAA,CAAA;IAAA,IAAA,CACRC,cAAc,GAAA,KAAA,CAAA;IAGZ,IAAI,CAACH,KAAK,GAAGA,KAAK;IAElB,IAAI,CAACC,GAAG,GAAGA,GAAG;EAChB;AACF;AAQO,SAASG,8BAA8BA,CAC5CC,QAAkB,EAClBC,YAAoB,EACpB;EACA,MAAM;IAAEX,IAAI;IAAEG,MAAM;IAAED;EAAO,CAAA,GAAGQ,QAAQ;EACxC,OAAO,IAAIZ,QAAQ,CAACE,IAAI,EAAEG,MAAM,GAAGQ,YAAY,EAAET,KAAK,GAAGS,YAAY,CAAC;AACxE;AC1CA,MAAMC,IAAI,GAAG,yCAAyC;AAEtD,IAAeC,YAAA,GAAA;EACbC,uBAAuB,EAAE;IACvBC,OAAO,EAA2D,yDAAA;IAClEH;EACD,CAAA;EACDI,mBAAmB,EAAE;IACnBD,OAAO,EAAqE,mEAAA;IAC5EH;EACF;AACF,CAAC;ACbD,MAAMK,gBAAgB,GAAG;EACvBC,YAAY,EAAE,6BAA6B;EAC3CC,oBAAoB,EAAE,uBAAuB;EAC7CC,iBAAiB,EAAE,uBAAuB;EAC1CC,uBAAuB,EAAE,2BAA2B;EACpDC,qBAAqB,EAAE,wBAAwB;EAC/CC,WAAW,EAAE,cAAc;EAC3BC,cAAc,EAAE,kBAAkB;EAClCC,cAAc,EAAE,kBAAkB;EAClCC,YAAY,EAAE,UAAU;EACxBC,gBAAgB,EAAE,yBAAyB;EAC3CC,UAAU,EAAE,YAAY;EACxBC,eAAe,EAAE,kBAAkB;EACnCC,sBAAsB,EAAE,0BAA0B;EAClDC,wBAAwB,EAAE,4BAA4B;EACtDC,aAAa,EAAE,8BAA8B;EAC7CC,uBAAuB,EAAE,0BAA0B;EACnDC,WAAW,EAAE,cAAc;EAC3BC,gBAAgB,EAAE;IAChBC,IAAI,EAAE,kBAAkB;IACxBC,KAAK,EAAE;EACR,CAAA;EACDC,kBAAkB,EAAE,sBAAsB;EAC1CC,eAAe,EAAE;AACnB,CAAC;AAkBD,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,IAAI;EAAEC;AAA4B,CAAC,KAC9DD,IAAI,KAAK,kBAAkB,GACvBxB,gBAAgB,CAACkB,gBAAgB,CAACQ,MAAM,CAACD,MAAM,CAAC,CAAqB,GACrEzB,gBAAgB,CAACwB,IAAI,CAAC;ACtB5B,IAAeG,cAAA,GAAA;EACbC,mBAAmB,EAAEA,CAAC;IAAEC;GAA+B,KAChDA,KAAAA,IAAgC,4BAAA;EACvCC,gBAAgB,EACd,6DAA6D;EAC/DC,qCAAqC,EACnC,0EAA0E;EAC5EC,sBAAsB,EACpB,6DAA6D;EAC/DC,mCAAmC,EACjC,0DAA0D;EAC5DC,8BAA8B,EAC5B,sDAAsD;EACxDC,2BAA2B,EACzB,wFAAwF;EAC1FC,sBAAsB,EACpB,kFAAkF;EACpFC,uBAAuB,EAAE,iDAAiD;EAC1EC,cAAc,EAAE,uDAAuD;EACvEC,cAAc,EAAE,0DAA0D;EAC1EC,sBAAsB,EACpB,kEAAkE;EACpEC,qBAAqB,EAAE,mDAAmD;EAC1EC,4BAA4B,EAC1B,4DAA4D;EAC9DC,qBAAqB,EAAE,2CAA2C;EAClEC,kBAAkB,EAAE,yCAAyC;EAC7DC,sBAAsB,EAAE,mCAAmC;EAC3DC,6BAA6B,EAAEA,CAAC;IAC9BjB;GAGD,KAA+BA,0BAAAA,IAAmB,eAAA;EACnDkB,oCAAoC,EAClC,iHAAiH;EACnHC,qBAAqB,EACnB,2JAA2J;EAC7JC,2BAA2B,EACzB,qHAAqH;EACvHC,oBAAoB,EAClB,iFAAiF;EACnFC,oBAAoB,EAClB,2JAA2J;EAC7JC,kBAAkB,EAAE,iDAAiD;EACrEC,oBAAoB,EAAE,+CAA+C;EACrEC,4BAA4B,EAC1B,sDAAsD;EACxDC,kBAAkB,EAAE,0CAA0C;EAC9DC,sBAAsB,EACpB,oGAAoG;EACtGC,oBAAoB,EAAE,0CAA0C;EAChEC,sBAAsB,EAAE,6CAA6C;EACrEC,eAAe,EAAEA,CAAC;IAAEC;GAAoC,KACjDA,KAAAA,UAA8E,oEAAA;EACrFC,cAAc,EAAE,qCAAqC;EACrDC,oBAAoB,EAAE,oCAAoC;EAC1DC,2CAA2C,EAAEA,CAAC;IAAEC;GAA0B,KAC7DA,WAAAA,KAAiF,4EAAA;EAC9FC,gBAAgB,EAAE,oCAAoC;EACtDC,0BAA0B,EAAE,yBAAyB;EACrDC,qBAAqB,EAAEA,CAAC;IACtBC,SAAS;IACTR;EAID,CAAA,KACE,wGAAuGQ,SAAU,SAAQR,UAAqC,2BAAA;EACjKS,6BAA6B,EAC3B,gEAAgE;EAElEC,sBAAsB,EAAEA,CAAC;IACvB9C;GAGD,SAEGA,IAAI,KAAK,gBAAgB,GAAG,QAAQ,GAAG,QACiB,0DAAA;EAC5D+C,UAAU,EAAE,qDAAqD;EAEjEC,UAAU,EAAE,yDAAyD;EACrEC,QAAQ,EAAE,+DAA+D;EACzEC,iCAAiC,EAC/B,qEAAqE;EAEvEC,oBAAoB,EAAEA,CAAC;IACrBnD;GAGD,oBAAoBA,IAAI,KAAK,gBAAgB,GAAG,OAAO,GAAG,UAAa,GAAA;EAExEoD,4BAA4B,EAC1B,4EAA4E;EAC9EC,aAAa,EAAE,+BAA+B;EAC9CC,yBAAyB,EACvB,0NAA0N;EAC5NC,qBAAqB,EAAEA,CAAC;IAAEC;GAAoC,KAC2BA,uFAAAA,UAAyB,eAAA;EAClHC,+BAA+B,EAC7B,4DAA4D;EAC9DC,eAAe,EAAEA,CAAC;IAAEC;GAA+C,sCAE/DA,gBAAgB,KAAK,CAAC,GAAG,cAAc,GAAG,sBACzC,GAAA;EACLC,0BAA0B,EAAE,kCAAkC;EAC9DC,wBAAwB,EAAE,qCAAqC;EAC/DC,2BAA2B,EACzB,oDAAoD;EACtDC,4BAA4B,EAAE,2CAA2C;EACzEC,0BAA0B,EACxB,kDAAkD;EACpDC,yBAAyB,EACvB,8EAA8E;EAChFC,oBAAoB,EAAE,wBAAwB;EAC9CC,gBAAgB,EAAE,2BAA2B;EAC7CC,2BAA2B,EAAE,yCAAyC;EACtEC,cAAc,EAAE,kBAAkB;EAClCC,YAAY,EAAEA,CAAC;IAAEC;GAA0B,KACbA,4BAAAA,KAAQ,GAAA;EACtCC,qBAAqB,EAAE,gCAAgC;EACvDC,6BAA6B,EAAE,sCAAsC;EACrEC,0BAA0B,EAAEA,CAAC;IAAEC;GAAwC,KACvCA,8BAAAA,YAAe,GAAA;EAC/CC,iBAAiB,EAAEA,CAAC;IAAE7G;GAA4C,KAC1CA,sBAAAA,cAAiB,GAAA;EACzC8G,UAAU,EAAEA,CAAC;IAAEC;EAAsC,CAAA,KACtB/E,6BAAAA,iBAAiB,CAAC+E,QAAQ,CAAI,GAAA;EAC7DC,iBAAiB,EAAEA,CAAC;IAAED;EAAsC,CAAA,KACrB/E,qCAAAA,iBAAiB,CAAC+E,QAAQ,CAAI,GAAA;EACrEE,0BAA0B,EAAEA,CAAC;IAAEF;EAAsC,CAAA,KACb/E,sDAAAA,iBAAiB,CACrE+E,QACF,CAAI,GAAA;EACNG,aAAa,EAAE,iBAAiB;EAChCC,wBAAwB,EACtB,gEAAgE;EAClEC,wBAAwB,EAAEA,CAAC;IAAEC;GAAoC,KACtCA,yBAAAA,UAAc,IAAA;EACzCC,8BAA8B,EAAE,2CAA2C;EAC3EC,6BAA6B,EAAEA,CAAC;IAC9BvH;GAGD,KAAsBA,iBAAAA,cAAgC,kBAAA;EACvDwH,6BAA6B,EAAE,4BAA4B;EAC3DC,qBAAqB,EACnB,wEAAwE;EAC1EC,4BAA4B,EAAE,mCAAmC;EACjEC,kBAAkB,EAAEA,CAAC;IAAEC;GAAkC,KAC7CA,UAAAA,SAAiC,wBAAA;EAC7CC,mBAAmB,EAAE,gDAAgD;EACrEC,yBAAyB,EAAE,uCAAuC;EAClEC,oBAAoB,EAAE,kCAAkC;EACxDC,gBAAgB,EAAE,2BAA2B;EAC7CC,qBAAqB,EACnB,6DAA6D;EAC/DC,gBAAgB,EAAE,oBAAoB;EACtCC,aAAa,EAAEA,CAAC;IAAEC;EAA4C,CAAA,sEACKA,aAAa,CAC3EC,GAAG,CAACC,IAAI,IAAIC,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC,CAAC,CACjCG,IAAI,CAAC,IAAI,CAAI,GAAA;EAGlBC,mBAAmB,EAAEA,CAAC;IAAEN;EAA4C,CAAA,0FACmBA,aAAa,CAC/FC,GAAG,CAACC,IAAI,IAAIC,IAAI,CAACC,SAAS,CAACF,IAAI,CAAC,CAAC,CACjCG,IAAI,CAAC,IAAI,CAAI,GAAA;EAClBE,oBAAoB,EAAE,4CAA4C;EAClEC,yBAAyB,EACvB,qFAAqF;EACvFC,gCAAgC,EAC9B,+CAA+C;EACjDC,2BAA2B,EACzB,8DAA8D;EAChEC,iCAAiC,EAAEA,CAAC;IAAEC;GAAsB,KACxCA,kBAAAA,GAA2C,wCAAA;EAC/DC,gCAAgC,EAAEA,CAAC;IACjCC;GAGD,kEAC8DA,iBAAiB,CAACC,QAAQ,CACrF,EACF,CAAK,IAAA;EACPC,qBAAqB,EAAEA,CAAC;IAAEvE;GAAkC,KAC/CA,WAAAA,SAA4B,mBAAA;EACzCwE,wBAAwB,EAAE,2BAA2B;EACrDC,iBAAiB,EAAE,8BAA8B;EACjDC,gBAAgB,EAAE,kCAAkC;EACpDC,gBAAgB,EAAE,mCAAmC;EACrDC,gCAAgC,EAC9B,6FAA6F;EAC/FC,iBAAiB,EACf,yFAAyF;EAC3FC,qBAAqB,EACnB,0DAA0D;EAC5DC,0BAA0B,EACxB,4DAA4D;EAC9DC,qBAAqB,EACnB,iEAAiE;EACnEC,SAAS,EAAE,sBAAsB;EACjCC,kBAAkB,EAAE,gDAAgD;EACpEC,gBAAgB,EAAE,uCAAuC;EACzDC,mBAAmB,EAAEA,CAAC;IAAEjK;EAA4C,CAAA,KACjE,+DAA8DA,cAAe,oCAAmCA,cAA2B,aAAA;EAC9IkK,wBAAwB,EAAEA,CAAC;IAAElK;GAA4C,KAC5CA,2BAAAA,cAAiB,GAAA;EAC9CmK,yCAAyC,EACvC,mIAAmI;EACrIC,2CAA2C,EACzC,qIAAqI;EACvIC,4CAA4C,EAC1C,sIAAsI;EACxIC,aAAa,EAAE,mDAAmD;EAClEC,iBAAiB,EAAE,+CAA+C;EAClEC,cAAc,EACZ,yFAAyF;EAC3FC,oBAAoB,EAClB,0HAA0H;EAC5HC,gCAAgC,EAC9B,kDAAkD;EACpDC,eAAe,EAAE,uDAAuD;EACxEC,eAAe,EACb,mJAAmJ;EACrJC,iBAAiB,EAAE,4CAA4C;EAC/DC,iBAAiB,EAAE,iDAAiD;EACpEC,wCAAwC,EACtC,kIAAkI;EACpIC,0CAA0C,EACxC,oIAAoI;EACtIC,2CAA2C,EACzC,qIAAqI;EACvIC,6BAA6B,EAAE,kCAAkC;EACjEC,gCAAgC,EAC9B,0FAA0F;EAC5FC,wBAAwB,EAAE,oCAAoC;EAC9DC,sBAAsB,EACpB,yDAAyD;EAC3DC,iBAAiB,EAAEA,CAAC;IAAEC;GAA8B,KAC3BA,uBAAAA,OAAW,IAAA;EACpCC,0BAA0B,EACxB,6DAA6D;EAC/DC,4BAA4B,EAC1B,kEAAkE;EACpEC,mBAAmB,EACjB,iEAAiE;EACnEC,0BAA0B,EACxB,yDAAyD;EAC3DC,sBAAsB,EAAE,0BAA0B;EAClDC,sBAAsB,EAAEA,CAAC;IAAEjF;GAAwC,KACpCA,6BAAAA,YAAgB,IAAA;EAC/CkF,eAAe,EAAE,wDAAwD;EACzEC,eAAe,EAAEA,CAAC;IAChBC,QAAQ;IACR3E;EAIF,CAAC,KACoBA,mBAAAA,UAAU,GAAI,KAAIA,UAAc,IAAA,GAAG,EAAG,GACvD2E,QAAQ,GAAI,eAAcA,QAAW,GAAA,GAAG,EACxC,EAAA;EACJC,kCAAkC,EAChC,kFAAkF;EACpFC,0BAA0B,EACxB,gFAAgF;EAClFC,eAAe,EAAE,iDAAiD;EAClEC,0BAA0B,EACxB,qDAAqD;EACvDC,wBAAwB,EACtB,6EAA6E;EAC/EC,iBAAiB,EACf,2DAA2D;EAC7DC,uBAAuB,EAAEA,CAAC;IACxBC,MAAM;IACNC;EAIF,CAAC,KACqCD,oCAAAA,aAAaA,MAAO,IAAGC,qBAAwB,GAAA;EACrFC,6BAA6B,EAC3B,mDAAmD;EACrDC,4BAA4B,EAC1B,kEAAkE;EACpEC,gBAAgB,EACd,uHAAuH;EACzHC,mBAAmB,EAAE,uBAAuB;EAC5CC,kBAAkB,EAAE,kCAAkC;EACtDC,kBAAkB,EAAE,+BAA+B;EACnDC,oBAAoB,EAAE,wBAAwB;EAC9CC,iCAAiC,EAC/B,uDAAuD;EACzDC,gBAAgB,EAAEA,CAAC;IAAElN;GAA4C,KAChDA,eAAAA,cAA4C,8BAAA;EAC7DmN,sBAAsB,EACpB,uDAAuD;EACzDC,gBAAgB,EAAE,uDAAuD;EACzEC,yBAAyB,EACvB;AACJ,CAAC;AClUD,IAAeC,gBAAA,GAAA;EACbC,YAAY,EAAE,yCAAyC;EAOvDC,mBAAmB,EAAEA,CAAC;IAAEC;GAA0C,KAC/CA,iBAAAA,aAAgC,mBAAA;EAOnDC,0BAA0B,EAAEA,CAAC;IAAEC;GAAsC,KACvDA,YAAAA,WAA8B,mBAAA;EAE5CC,cAAc,EACZ,qFAAqF;EAEvFC,mBAAmB,EAAE,wDAAwD;EAE7EC,kBAAkB,EAAE,uDAAuD;EAE3EC,UAAU,EAAE;AACd,CAAC;AC1BM,MAAMC,mCAAmC,GAAG,IAAIC,GAAG,CAAC,CACzD,yBAAyB,EACzB,sBAAsB,EACtB,uBAAuB,EACvB,iBAAiB,CACT,CAAC;AAUX,IAAeC,sBAAA,GAAA;EAEbC,iBAAiB,EACf,uJAAuJ;EACzJC,0BAA0B,EACxB,iHAAiH;EACnHC,gBAAgB,EACd,4DAA4D;EAC9DC,0BAA0B,EAAEA,CAAC;IAAEC;EAAyB,CAAC,KAChCA,uBAAAA,0BAA0BA,KAAM,mHAAkHA,KAAW,MAAA;EACtLC,eAAe,EACb,yGAAyG;EAC3GC,uBAAuB,EAAEA,CAAC;IAAExM;GAA8C,KACnBD,qDAAAA,iBAAiB,CAAC;IACrEC;EACD,CAAA,CAAmC,kCAAA;EAMtCyM,mBAAmB,EACjB,mGAAmG;EACrGC,8BAA8B,EAC5B,iEAAiE;EACnEC,8BAA8B,EAC5B,oEAAoE;EACtEC,mBAAmB,EACjB,8DAA8D;EAChEC,sBAAsB,EACpB,sEAAsE;EACxEC,iCAAiC,EAC/B;AACJ,CAAC;;;ACWD,SAASC,YAAYA,CAACC,GAAW,EAAEjG,GAAW,EAAEkG,KAAc,EAAE;EAC9DC,MAAM,CAACC,cAAc,CAACH,GAAG,EAAEjG,GAAG,EAAE;IAC9BqG,UAAU,EAAE,KAAK;IACjBC,YAAY,EAAE,IAAI;IAClBJ;EACF,CAAC,CAAC;AACJ;AAEA,SAASK,uBAAuBA,CAAAC,IAAA,EAG6C;EAAA,IAHf;MAC5DC;IAEmC,CAAC,GAAAD,IAAA;IADjCE,UAAU,GAAAC,6BAAA,CAAAH,IAAA,EAAAI,WAAA,CAAA;EAOb,OAAO,SAASrQ,WAAWA,CAAC;IAAEsQ,GAAG;IAAEC;EAA6B,CAAC,EAAE;IACjE,MAAMC,KAAK,GAAG,IAAIC,WAAW,EAAE;IAC/Bb,MAAM,CAACc,MAAM,CAACF,KAAK,EAAEL,UAAU,EAAE;MAAEG,GAAG;MAAEK,GAAG,EAAEL,GAAG,CAACnQ;IAAM,CAAC,CAAC;IACzD,IAAI,eAAe,IAAIoQ,OAAO,EAAE;MAC9BX,MAAM,CAACc,MAAM,CAACF,KAAK,EAAE;QAAE3H,aAAa,EAAE0H,OAAO,CAAC1H;MAAc,CAAC,CAAC;IAChE;IAMA4G,YAAY,CAACe,KAAK,EAAE,OAAO,EAAE,SAASI,KAAKA,CAACC,SAAoB,GAAG,CAAA,CAAE,EAAE;MAAA,IAAAC,cAAA;MACrE,MAAM;QAAE7Q,IAAI;QAAEG,MAAM;QAAED;OAAO,GAAA,CAAA2Q,cAAA,GAAGD,SAAS,CAACP,GAAG,KAAA,IAAA,GAAAQ,cAAA,GAAIR,GAAG;MACpD,OAAOtQ,WAAW,CAAC;QACjBsQ,GAAG,EAAE,IAAIvQ,QAAQ,CAACE,IAAI,EAAEG,MAAM,EAAED,KAAK,CAAC;QACtCoQ,OAAO,EAAAX,MAAA,CAAAc,MAAA,KAAOH,OAAO,EAAKM,SAAS,CAACN,OAAO;MAC7C,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFd,YAAY,CAACe,KAAK,EAAE,SAAS,EAAED,OAAO,CAAC;IAEvCX,MAAM,CAACC,cAAc,CAACW,KAAK,EAAE,SAAS,EAAE;MACtCT,YAAY,EAAE,IAAI;MAClBgB,GAAGA,CAAAA,EAAyC;QAC1C,MAAM/P,OAAO,GAAMkP,GAAAA,SAAS,CAACK,OAAO,CAAMD,KAAAA,GAAG,CAACrQ,IAAK,IAAGqQ,GAAG,CAAClQ,MAAS,GAAA;QACnE,IAAI,CAACY,OAAO,GAAGA,OAAO;QACtB,OAAOA,OAAO;MACf,CAAA;MACDgQ,GAAGA,CAACrB,KAAa,EAAE;QACjBC,MAAM,CAACC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;UAAEF,KAAK;UAAEsB,QAAQ,EAAE;QAAK,CAAC,CAAC;MACnE;IACF,CAAC,CAAC;IAEF,OAAOT,KAAK;GACb;AACH;AAiEO,SAASU,cAAcA,CAC5BC,QAAoD,EACpDC,YAA2B,EAC3B;EAIA,IAAIC,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,EAAE;IAC3B,OAAQI,mBAAwC,IAC9CL,cAAc,CAACK,mBAAmB,EAAEJ,QAAQ,CAAC,CAAC,CAAC,CAAC;EACpD;EAEA,MAAMK,sBAAsB,GAAG,CAAA,CAG9B;EAED,KAAK,MAAMC,UAAU,IAAI7B,MAAM,CAAC8B,IAAI,CAACP,QAAQ,CAAC,EAAE;IAC9C,MAAMQ,QAAQ,GAAIR,QAAQ,CAAyBM,UAAU,CAAC;IAC9D,MAAAG,KAAA,GACE,OAAOD,QAAQ,KAAK,QAAQ,GACxB;QAAE3Q,OAAO,EAAEA,CAAAA,KAAM2Q;MAAS,CAAC,GAC3B,OAAOA,QAAQ,KAAK,UAAU,GAC9B;QAAE3Q,OAAO,EAAE2Q;MAAS,CAAC,GACrBA,QAAQ;MALR;QAAE3Q;MAAiB,CAAC,GAAA4Q,KAAA;MAANC,IAAI,GAAAzB,6BAAA,CAAAwB,KAAA,EAAAE,YAAA,CAAA;IAMxB,MAAM5B,SAAS,GAAG,OAAOlP,OAAO,KAAK,QAAQ,GAAG,MAAMA,OAAO,GAAGA,OAAO;IAEvEwQ,sBAAsB,CAACC,UAAU,CAAC,GAAGzB,uBAAuB,CAAAJ,MAAA,CAAAc,MAAA,CAAA;MAC1D7P,IAAI,EAAE,2BAA2B;MACjC4Q,UAAU;MACVvB;IAAS,CAAA,EACLkB,YAAY,GAAG;MAAEA;IAAa,CAAC,GAAG,CAAE,CAAA,EACrCS,IAAI,CACR,CAAC;EACJ;EAEA,OAAOL,sBAAsB;AAC/B;AAWO,MAAMO,MAAM,GAAAnC,MAAA,CAAAc,MAAA,CAAA,CAAA,CAAA,EACdQ,cAAc,CAACpQ,YAAY,CAAC,EAC5BoQ,cAAc,CAACrO,cAAc,CAAC,EAC9BqO,cAAc,CAACnD,gBAAgB,CAAC,EAChCmD,cAAgC,kBAAA,CAACvC,sBAAsB,CAAC,CAC5D;AC9ND,MAAM;EAAEkB;AAAe,CAAC,GAAGD,MAAM;AACjC,MAAMoC,cAAc,GAAGA,CAACC,MAAW,EAAExI,GAAW,KAC9CoG,cAAc,CAACoC,MAAM,EAAExI,GAAG,EAAE;EAAEqG,UAAU,EAAE,KAAK;EAAEH,KAAK,EAAEsC,MAAM,CAACxI,GAAG;AAAE,CAAC,CAAC;AAExE,SAASyI,gBAAgBA,CAACC,IAAS,EAAE;EACnCA,IAAI,CAAC7B,GAAG,CAAChQ,KAAK,IAAI0R,cAAc,CAACG,IAAI,CAAC7B,GAAG,CAAChQ,KAAK,EAAE,OAAO,CAAC;EACzD6R,IAAI,CAAC7B,GAAG,CAAC/P,GAAG,IAAIyR,cAAc,CAACG,IAAI,CAAC7B,GAAG,CAAC/P,GAAG,EAAE,OAAO,CAAC;EAErD,OAAO4R,IAAI;AACb;AAEA,IAAAC,MAAA,GAAgBC,UAAyB,IACvC,MAAMC,iBAAiB,SAASD,UAAU,CAAmB;EAC3DE,KAAKA,CAAAA,EAAS;IACZ,MAAMC,IAAI,GAAGN,gBAAgB,CAAC,KAAK,CAACK,KAAK,CAAE,CAAA,CAAC;IAE5C,IAAI,IAAI,CAACE,OAAO,CAACC,MAAM,EAAE;MACvBF,IAAI,CAACE,MAAM,GAAGF,IAAI,CAACE,MAAM,CAAC5J,GAAG,CAACoJ,gBAAgB,CAAC;IACjD;IAEA,OAAOM,IAAI;EACb;EAGAG,kBAAkBA,CAAC;IAAEC,OAAO;IAAEC;EAAM,CAAC,EAAyB;IAC5D,IAAIC,KAAoB,GAAG,IAAI;IAC/B,IAAI;MACFA,KAAK,GAAG,IAAIC,MAAM,CAACH,OAAO,EAAEC,KAAK,CAAC;IACpC,CAAC,CAAC,OAAOG,CAAC,EAAE,CAGZ;IACA,MAAMb,IAAI,GAAG,IAAI,CAACc,kBAAkB,CAAwBH,KAAK,CAAC;IAClEX,IAAI,CAACW,KAAK,GAAG;MAAEF,OAAO;MAAEC;KAAO;IAE/B,OAAOV,IAAI;EACb;EAGAe,kBAAkBA,CAACvD,KAAU,EAAU;IAErC,IAAIwD,MAAqB;IACzB,IAAI;MACFA,MAAM,GAAGC,MAAM,CAACzD,KAAK,CAAC;IACvB,CAAA,CAAC,OAAA0D,OAAA,EAAM;MACNF,MAAM,GAAG,IAAI;IACf;IACA,MAAMhB,IAAI,GAAG,IAAI,CAACc,kBAAkB,CAAwBE,MAAM,CAAC;IACnEhB,IAAI,CAACmB,MAAM,GAAG1Q,MAAM,CAACuP,IAAI,CAACxC,KAAK,IAAIA,KAAK,CAAC;IAEzC,OAAOwC,IAAI;EACb;EAGAoB,mBAAmBA,CAAC5D,KAAU,EAAU;IAGtC,MAAM6D,OAAa,GAAG,IAAI;IAC1B,MAAMrB,IAAI,GAAG,IAAI,CAACc,kBAAkB,CAACO,OAAO,CAAC;IAC7CrB,IAAI,CAACqB,OAAO,GAAG5Q,MAAM,CAACuP,IAAI,CAACxC,KAAK,IAAIA,KAAK,CAAC;IAE1C,OAAOwC,IAAI;EACb;EAEAc,kBAAkBA,CAAmBtD,KAAU,EAAE;IAE/C,OAAO,IAAI,CAAC8D,YAAY,CAAI9D,KAAK,EAAE,SAAS,CAAC;EAC/C;EAGA+D,kBAAkBA,CAAC/D,KAAU,EAAU;IACrC,OAAO,IAAI,CAACsD,kBAAkB,CAACtD,KAAK,CAAC;EACvC;EAEAgE,mBAAmBA,CAAChE,KAAU,EAAO;IACnC,OAAO,IAAI,CAACsD,kBAAkB,CAACtD,KAAK,CAAC;EACvC;EAGAiE,gBAAgBA,CAAAA,EAAW;IACzB,OAAO,IAAI,CAACX,kBAAkB,CAAC,IAAI,CAAC;EACtC;EAEAY,mBAAmBA,CAAClE,KAAc,EAAoB;IACpD,OAAO,IAAI,CAACsD,kBAAkB,CAACtD,KAAK,CAAC;EACvC;EAGAmE,eAAeA,CAACC,SAAsB,EAAyB;IAC7D,MAAMC,UAAU,GAAGD,SAAS,CAACpE,KAA+B;IAC5D,OAAOoE,SAAS,CAACpE,KAAK;IAEtBqE,UAAU,CAACtR,IAAI,GAAG,SAAS;IAE3BsR,UAAU,CAACC,GAAG,GAAGD,UAAU,CAACE,KAAK,CAACD,GAAG;IACrCD,UAAU,CAACrE,KAAK,GAAGqE,UAAU,CAACE,KAAK,CAACC,eAAe;IAEnD,MAAMC,IAAI,GAAGL,SAAyC;IACtDK,IAAI,CAAC1R,IAAI,GAAG,qBAAqB;IACjC0R,IAAI,CAACJ,UAAU,GAAGA,UAAU;IAE5BI,IAAI,CAACL,SAAS,GAAGC,UAAU,CAACE,KAAK,CAACG,QAAQ;IAE1C,OAAOL,UAAU,CAACE,KAAK;IAEvB,OAAOE,IAAI;EACb;EAMAE,YAAYA,CAACnC,IAAoC,EAAEoC,OAAgB,EAAQ;IACzE,KAAK,CAACD,YAAY,CAACnC,IAAI,EAAEoC,OAAO,CAAC;IACjCpC,IAAI,CAAC6B,UAAU,GAAG,KAAK;EACzB;EAEAQ,gBAAgBA,CAACrC,IAAkC,EAAQ;IACzD,IAAIA,IAAI,IAAI,IAAI,IAAI,IAAI,CAACsC,gBAAgB,CAACtC,IAAI,CAAC,EAAE;MAE/C,IAAI,CAACqC,gBAAgB,CAAErC,IAAI,CAAiCxC,KAAK,CAAC;IACpE,CAAC,MAAM;MACL,KAAK,CAAC6E,gBAAgB,CAACrC,IAAI,CAAC;IAC9B;EACF;EAEAuC,4BAA4BA,CAACC,MAAsC,EAAE;IACnE,OAAQA,MAAM,CACXhF,KAAK,CAACiF,MAAM;EACjB;EAEAC,gBAAgBA,CAACT,IAAiB,EAAW;IAAA,IAAAU,qBAAA;IAC3C,OACEV,IAAI,CAAC1R,IAAI,KAAK,qBAAqB,IACnC0R,IAAI,CAACJ,UAAU,CAACtR,IAAI,KAAK,SAAS,IAClC,OAAO0R,IAAI,CAACJ,UAAU,CAACrE,KAAK,KAAK,QAAQ,IACzC,GAAAmF,qBAAA,GAACV,IAAI,CAACJ,UAAU,CAACE,KAAK,KAArBY,IAAAA,IAAAA,qBAAA,CAAuBC,aAAa,CAAA;EAEzC;EAEAC,cAAcA,CACZ7C,IAA0B,EAC1B8C,eAA2C,EAC3CC,QAAiB,EACjB3U,GAAc,EACd4U,eAA2D,EACrD;IACN,KAAK,CAACH,cAAc,CAClB7C,IAAI,EACJ8C,eAAe,EACfC,QAAQ,EACR3U,GAAG,EACH4U,eACF,CAAC;IAED,MAAMC,mBAAmB,GAAGjD,IAAI,CAACkD,UAAU,CAACvM,GAAG,CAACwM,CAAC,IAC/C,IAAI,CAACxB,eAAe,CAACwB,CAAC,CACxB,CAAC;IAEDnD,IAAI,CAACoD,IAAI,GAAGH,mBAAmB,CAACI,MAAM,CAACrD,IAAI,CAACoD,IAAI,CAAC;IACjD,OAAOpD,IAAI,CAACkD,UAAU;EACxB;EAEAI,eAAeA,CACbC,SAAsB,EACtBf,MAAqB,EACrBgB,WAAoB,EACpBpB,OAAgB,EAChBqB,aAAsB,EACtBC,iBAA0B,EACpB;IACN,IAAI,CAACC,WAAW,CACdnB,MAAM,EACNgB,WAAW,EACXpB,OAAO,EACPqB,aAAa,EACbC,iBAAiB,EACjB,aAAa,EACb,IACF,CAAC;IACD,IAAIlB,MAAM,CAACoB,cAAc,EAAE;MAEzBpB,MAAM,CAAChF,KAAK,CAACoG,cAAc,GAAGpB,MAAM,CAACoB,cAAc;MACnD,OAAOpB,MAAM,CAACoB,cAAc;IAC9B;IACAL,SAAS,CAACH,IAAI,CAACS,IAAI,CAACrB,MAAM,CAAC;EAC7B;EAEAsB,gBAAgBA,CAAAA,EAAQ;IACtB,MAAM9D,IAAI,GAAG,KAAK,CAAC8D,gBAAgB,EAAE;IACF;MACjC,IAAI,CAAC,IAAI,CAACC,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE;QACpD,OAAO/D,IAAI;MACb;IACF;IACA,OAAO,IAAI,CAACgE,qCAAqC,CAAChE,IAAI,CAAC;EACzD;EAEAgE,qCAAqCA,CACnChE,IAAmB,EACQ;IAC3B,MAAMpJ,IAAI,GAAG,KAAK,CAACqN,gBAAgB,CAACjE,IAAI,CAAC;IACzCA,IAAI,GAAGA,IAAW;IAClB,OAAOA,IAAI,CAACkE,EAAE;IAEdlE,IAAI,CAACpJ,IAAI,GAAGA,IAAI;IAEhBoJ,IAAI,CAACzP,IAAI,GAAG,mBAAmB;IAC/B,OAAOyP,IAAI;EACb;EAEAmE,aAAaA,CAACnE,IAAY,EAAW;IACA;MACjC,IAAI,CAAC,IAAI,CAAC+D,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE;QACpD,OAAO,KAAK,CAACI,aAAa,CAACnE,IAAI,CAAC;MAClC;IACF;IACA,OAAOA,IAAI,CAACzP,IAAI,KAAK,mBAAmB;EAC1C;EAEA0T,gBAAgBA,CAACjE,IAAY,EAAU;IACF;MACjC,IAAI,CAAC,IAAI,CAAC+D,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE;QACpD,OAAO,KAAK,CAACE,gBAAgB,CAACjE,IAAI,CAAC;MACrC;IACF;IACA,OAAOA,IAAI,CAACpJ,IAAI;EAClB;EAGA0K,YAAYA,CAAsB9D,KAAU,EAAEjN,IAAe,EAAK;IAChE,MAAMyP,IAAI,GAAG,KAAK,CAACsB,YAAY,CAAI9D,KAAK,EAAEjN,IAAI,CAAC;IAE/CyP,IAAI,CAAC8B,GAAG,GAAG9B,IAAI,CAAC+B,KAAK,CAACD,GAAG;IACzB,OAAO9B,IAAI,CAAC+B,KAAK;IAEjB,OAAO/B,IAAI;EACb;EAEAoE,iBAAiBA,CACfpE,IAAgB,EAChBqE,eAAgC,EAChCC,QAAiB,GAAG,KAAK,EACnB;IACN,KAAK,CAACF,iBAAiB,CAACpE,IAAI,EAAEqE,eAAe,EAAEC,QAAQ,CAAC;IACxDtE,IAAI,CAAC6B,UAAU,GAAG7B,IAAI,CAACoD,IAAI,CAAC7S,IAAI,KAAK,gBAAgB;EACvD;EAGAoT,WAAWA,CAGT3D,IAAe,EACfwD,WAAoB,EACpBpB,OAAgB,EAChBqB,aAAsB,EACtBc,gBAAyB,EACzBhU,IAAe,EACfiU,YAAqB,GAAG,KAAK,EACH;IAC1B,IAAIC,QAAQ,GAAG,IAAI,CAACC,SAAS,EAAgB;IAC7CD,QAAQ,CAAC7T,IAAI,GAAGoP,IAAI,CAACpP,IAAI;IACzB6T,QAAQ,GAAG,KAAK,CAACd,WAAW,CAE1Bc,QAAQ,EACRjB,WAAW,EACXpB,OAAO,EACPqB,aAAa,EACbc,gBAAgB,EAChBhU,IAAI,EACJiU,YACF,CAAC;IAEDC,QAAQ,CAAClU,IAAI,GAAG,oBAAoB;IACpC,OAAOkU,QAAQ,CAAC7T,IAAI;IAEpBoP,IAAI,CAACxC,KAAK,GAAGiH,QAAQ;IACrB,IAAIlU,IAAI,KAAK,oBAAoB,EAAE;MACjCyP,IAAI,CAAC2E,QAAQ,GAAG,KAAK;IACvB;IACA,OAAO,IAAI,CAACC,UAAU,CAEpB5E,IAAI,EACJ,kBACF,CAAC;EACH;EAEA6E,kBAAkBA,CAAC,GAAGC,IAAuB,EAAO;IAClD,MAAMC,YAAY,GAAG,KAAK,CAACF,kBAAkB,CAAC,GAAGC,IAAI,CAAQ;IAC1B;MACjC,IAAI,CAAC,IAAI,CAACf,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE;QACpD,OAAOgB,YAAY;MACrB;IACF;IACAA,YAAY,CAACxU,IAAI,GAAG,oBAAoB;IACxC,OAAOwU,YAAY;EACrB;EAEAC,yBAAyBA,CAAC,GAAGF,IAA8B,EAAO;IAChE,MAAMC,YAAY,GAAG,KAAK,CAACC,yBAAyB,CAAC,GAAGF,IAAI,CAAQ;IACjC;MACjC,IAAI,CAAC,IAAI,CAACf,eAAe,CAAC,QAAQ,EAAE,eAAe,CAAC,EAAE;QACpD,OAAOgB,YAAY;MACrB;IACF;IACAA,YAAY,CAACxU,IAAI,GAAG,oBAAoB;IACxCwU,YAAY,CAACJ,QAAQ,GAAG,KAAK;IAC7B,OAAOI,YAAY;EACrB;EAEAE,iBAAiBA,CACfC,IAAoB,EACpB1B,WAAoB,EACpBpB,OAAgB,EAChB+C,SAAkB,EAClBC,UAAmB,EACgB;IACnC,MAAMpF,IAAsB,GAAG,KAAK,CAACiF,iBAAiB,CACpDC,IAAI,EACJ1B,WAAW,EACXpB,OAAO,EACP+C,SAAS,EACTC,UACF,CAAQ;IAER,IAAIpF,IAAI,EAAE;MACRA,IAAI,CAACzP,IAAI,GAAG,UAAU;MACtB,IAAKyP,IAAI,CAA0BpP,IAAI,KAAK,QAAQ,EAAE;QACpDoP,IAAI,CAACpP,IAAI,GAAG,MAAM;MACpB;MACAoP,IAAI,CAACqF,SAAS,GAAG,KAAK;IACxB;IAEA,OAAOrF,IAAI;EACb;EAEAsF,mBAAmBA,CACjBJ,IAAsB,EACtBK,QAAqC,EACrCJ,SAAkB,EAClBK,mBAA6C,EACR;IACrC,MAAMxF,IAAsB,GAAG,KAAK,CAACsF,mBAAmB,CACtDJ,IAAI,EACJK,QAAQ,EACRJ,SAAS,EACTK,mBACF,CAAQ;IAER,IAAIxF,IAAI,EAAE;MACRA,IAAI,CAACpP,IAAI,GAAG,MAAM;MAClBoP,IAAI,CAACzP,IAAI,GAAG,UAAU;IACxB;IAEA,OAAOyP,IAAI;EACb;EAEAyF,WAAWA,CACTlV,IAAY,EACZmV,yBAAkC,EAClCC,OAAqB,EACrB;IACA,OAAOpV,IAAI,KAAK,UAAU,GACtB,OAAO,GACP,KAAK,CAACkV,WAAW,CAAClV,IAAI,EAAEmV,yBAAyB,EAAEC,OAAO,CAAC;EACjE;EAEAC,YAAYA,CAAC5F,IAAY,EAAE6F,SAAmB,EAAW;IACvD,IAAI7F,IAAI,IAAI,IAAI,IAAI,IAAI,CAACsC,gBAAgB,CAACtC,IAAI,CAAC,EAAE;MAC/C,OAAO,IAAI,CAAC4F,YAAY,CAAC5F,IAAI,CAACxC,KAAK,EAAEqI,SAAS,CAAC;IACjD;IACA,OAAO,KAAK,CAACD,YAAY,CAAC5F,IAAI,EAAE6F,SAAS,CAAC;EAC5C;EAEAC,YAAYA,CAAC9F,IAAY,EAAE+F,KAAc,GAAG,KAAK,EAAQ;IACvD,IAAI/F,IAAI,IAAI,IAAI,IAAI,IAAI,CAACsC,gBAAgB,CAACtC,IAAI,CAAC,EAAE;MAC/C,MAAM;QAAE1I,GAAG;QAAEkG;MAAO,CAAA,GAAGwC,IAAI;MAC3B,IAAI,IAAI,CAACmE,aAAa,CAAC7M,GAAG,CAAC,EAAE;QAC3B,IAAI,CAAC0O,UAAU,CAACC,cAAc,CAC5B,IAAI,CAAChC,gBAAgB,CAAC3M,GAAG,CAAC,EAC1BA,GAAG,CAAC6G,GAAG,CAAChQ,KACV,CAAC;MACH;MACA,IAAI,CAAC2X,YAAY,CAACtI,KAAK,EAAEuI,KAAK,CAAC;IACjC,CAAC,MAAM;MACL,KAAK,CAACD,YAAY,CAAC9F,IAAI,EAAE+F,KAAK,CAAC;IACjC;EACF;EAEAG,gCAAgCA,CAC9BhB,IAAY,EACZiB,MAAe,EACfJ,KAAc,EACd;IACA,IAAIb,IAAI,CAACtU,IAAI,KAAK,KAAK,IAAIsU,IAAI,CAACtU,IAAI,KAAK,KAAK,EAAE;MAC9C,IAAI,CAACwV,KAAK,CAACxG,MAAM,CAACvH,kBAAkB,EAAE;QAAEgO,EAAE,EAAEnB,IAAI,CAAC5N;MAAI,CAAC,CAAC;IACzD,CAAC,MAAM,IAAI4N,IAAI,CAAC1C,MAAM,EAAE;MACtB,IAAI,CAAC4D,KAAK,CAACxG,MAAM,CAACtH,gBAAgB,EAAE;QAAE+N,EAAE,EAAEnB,IAAI,CAAC5N;MAAI,CAAC,CAAC;IACvD,CAAC,MAAM;MACL,KAAK,CAAC4O,gCAAgC,CAAChB,IAAI,EAAEiB,MAAM,EAAEJ,KAAK,CAAC;IAC7D;EACF;EAEAO,oBAAoBA,CAClBC,UAAqB,EACrBC,QAAiB,EACd;IACH,MAAMxG,IAAI,GAAG,KAAK,CAACsG,oBAAoB,CAACC,UAAU,EAAEC,QAAQ,CAAC;IAE7D,IAAIxG,IAAI,CAACyG,MAAM,CAAClW,IAAI,KAAK,QAAQ,EAAE;MAChCyP,IAAI,CAAwCzP,IAAI,GAAG,kBAAkB;MACrEyP,IAAI,CAAwC0G,MAAM,GAAG1G,IAAI,CAAC2G,SAAS,CAAC,CAAC,CAAC;MACvE,IACE,IAAI,CAACC,SAAS,CAAC,kBAAkB,CAAC,IAClC,IAAI,CAACA,SAAS,CAAC,kBAAkB,CAAC,EAClC;QAAA,IAAAC,gBAAA,EAAAC,iBAAA;QACC9G,IAAI,CAAwCM,OAAO,GAAAuG,CAAAA,gBAAA,GAClD7G,IAAI,CAAC2G,SAAS,CAAC,CAAC,CAAC,KAAAE,IAAAA,GAAAA,gBAAA,GAAI,IAAI;QAE1B7G,IAAI,CAAwC+G,UAAU,GAAAD,CAAAA,iBAAA,GACrD9G,IAAI,CAAC2G,SAAS,CAAC,CAAC,CAAC,KAAAG,IAAAA,GAAAA,iBAAA,GAAI,IAAI;MAC7B;MAEA,OAAO9G,IAAI,CAAC2G,SAAS;MAErB,OAAO3G,IAAI,CAACyG,MAAM;IACpB;IAEA,OAAOzG,IAAI;EACb;EAEAgH,qBAAqBA,CACnBhH,IAG4B,EAE5B;IAEA,IAAIA,IAAI,CAACzP,IAAI,KAAK,kBAAkB,EAAE;MACpC;IACF;IAEA,KAAK,CAACyW,qBAAqB,CAAChH,IAAI,CAAC;EACnC;EAEAiH,WAAWA,CACTV,UAA+B,EAC/BW,UAAgC,EAChC;IACA,MAAMC,cAAc,GAAG,IAAI,CAACC,KAAK,CAACC,eAAe;IACjD,MAAMrH,IAAI,GAAG,KAAK,CAACiH,WAAW,CAACV,UAAU,EAAEW,UAAU,CAAC;IAEtD,QAAQlH,IAAI,CAACzP,IAAI;MACf,KAAK,sBAAsB;QAEzByP,IAAI,CAACsH,QAAQ,GAAG,IAAI;QACpB;MAEF,KAAK,wBAAwB;QAC3B,IACEtH,IAAI,CAACuH,UAAU,CAACC,MAAM,KAAK,CAAC,IAE5BxH,IAAI,CAACuH,UAAU,CAAC,CAAC,CAAC,CAAChX,IAAI,KAAK,0BAA0B,EACtD;UAEAyP,IAAI,CAACzP,IAAI,GAAG,sBAAsB;UAElCyP,IAAI,CAACsH,QAAQ,GAAGtH,IAAI,CAACuH,UAAU,CAAC,CAAC,CAAC,CAACD,QAAQ;UAC3C,OAAOtH,IAAI,CAACuH,UAAU;QACxB;MAGF,KAAK,0BAA0B;QAC7B;UAAA,IAAAE,qBAAA;UACE,MAAM;YAAEC;UAAa,CAAA,GAAG1H,IAAI;UAC5B,IACE,CAAA0H,WAAW,IAAXA,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,WAAW,CAAEnX,IAAI,MAAK,kBAAkB,IACxC,CAAA,CAAAkX,qBAAA,GAAAC,WAAW,CAACR,UAAU,KAAA,IAAA,GAAA,KAAA,CAAA,GAAtBO,qBAAA,CAAwBD,MAAM,IAAG,CAAC,IAElCE,WAAW,CAACvZ,KAAK,KAAK6R,IAAI,CAAC7R,KAAK,EAChC;YACA,IAAI,CAACwZ,kBAAkB,CACrB3H,IAAI,EAKJmH,cACF,CAAC;UACH;QACF;QAEA;IACJ;IAEA,OAAOnH,IAAI;EACb;EAEA4H,cAAcA,CACZC,IAAkB,EAClBtC,QAAkB,EAClBuC,OAAmC,EACnCV,KAA4B,EAC5B;IACA,MAAMpH,IAAI,GAAG,KAAK,CAAC4H,cAAc,CAACC,IAAI,EAAEtC,QAAQ,EAAEuC,OAAO,EAAEV,KAAK,CAAC;IAEjE,IAAIA,KAAK,CAACW,mBAAmB,EAAE;MAE7B,IACE/H,IAAI,CAACzP,IAAI,KAAK,0BAA0B,IACxCyP,IAAI,CAACzP,IAAI,KAAK,wBAAwB,EACtC;QACAyP,IAAI,CAACzP,IAAI,GAAGyP,IAAI,CAACzP,IAAI,CAACyX,SAAS,CAAC,CAAC,CAAC;MACpC;MACA,IAAIZ,KAAK,CAACa,IAAI,EAAE;QACd,MAAMC,KAAK,GAAG,IAAI,CAACC,eAAe,CAACnI,IAAI,CAAC;QACxCkI,KAAK,CAACrG,UAAU,GAAG7B,IAAI;QACvB,OAAO,IAAI,CAAC4E,UAAU,CAACsD,KAAK,EAAE,iBAAiB,CAAC;MAClD;IACF,CAAC,MAAM,IACLlI,IAAI,CAACzP,IAAI,KAAK,kBAAkB,IAChCyP,IAAI,CAACzP,IAAI,KAAK,gBAAgB,EAC9B;MACAyP,IAAI,CAACwG,QAAQ,GAAG,KAAK;IACvB;IAEA,OAAOxG,IAAI;EACb;EAEAoI,0BAA0BA,CAACpI,IAAY,EAAE;IACvC,IAAIA,IAAI,CAACzP,IAAI,KAAK,iBAAiB,EAAE;MACnC,OAAOyP,IAAI,CAAC6B,UAAU,CAACtR,IAAI,KAAK,kBAAkB;IACpD;IACA,OAAO,KAAK,CAAC6X,0BAA0B,CAACpI,IAAI,CAAC;EAC/C;EAEAqI,wBAAwBA,CAACrI,IAAY,EAAW;IAC9C,IAAIA,IAAI,CAACzP,IAAI,KAAK,iBAAiB,EAAE;MACnCyP,IAAI,GAAGA,IAAI,CAAC6B,UAAU;IACxB;IACA,OAAO,KAAK,CAACwG,wBAAwB,CAACrI,IAAI,CAAC;EAC7C;EAGAsC,gBAAgBA,CAACtC,IAAY,EAAW;IACtC,OAAOA,IAAI,CAACzP,IAAI,KAAK,UAAU,IAAIyP,IAAI,CAACpP,IAAI,KAAK,MAAM,IAAI,CAACoP,IAAI,CAACwC,MAAM;EACzE;EAEA8F,cAAcA,CAACtI,IAAY,EAAW;IACpC,OAAOA,IAAI,CAACwC,MAAM,IAAIxC,IAAI,CAACpP,IAAI,KAAK,KAAK,IAAIoP,IAAI,CAACpP,IAAI,KAAK,KAAK;EAClE;EAEA2X,YAAYA,CACVvI,IAAe,EACfzP,IAAe,EACfiY,MAAgB,EACb;IACH,OAAOzI,gBAAgB,CAAC,KAAK,CAACwI,YAAY,CAACvI,IAAI,EAAEzP,IAAI,EAAEiY,MAAM,CAAC,CAAC;EACjE;EAEAb,kBAAkBA,CAAC3H,IAAY,EAAEuF,QAAkB,EAAE;IACnD,KAAK,CAACoC,kBAAkB,CAAC3H,IAAI,EAAEuF,QAAQ,CAAC;IACxCxF,gBAAgB,CAACC,IAAI,CAAC;EACxB;EAEAyI,gBAAgBA,CACdzI,IAAc,EACdwI,MAAgB,GAAG,IAAI,CAACpB,KAAK,CAACsB,aAAa,EACrC;IACN,KAAK,CAACD,gBAAgB,CAACzI,IAAI,EAAEwI,MAAM,CAAC;IACpCzI,gBAAgB,CAACC,IAAI,CAAC;EACxB;AACF,CAAC;ACpkBI,MAAM2I,UAAU,CAAC;EACtB9a,WAAWA,CAACgP,KAAa,EAAE+L,aAAuB,EAAE;IAAA,IAAA,CAKpD/L,KAAK,GAAA,KAAA,CAAA;IAAA,IAAA,CACL+L,aAAa,GAAA,KAAA,CAAA;IALX,IAAI,CAAC/L,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC+L,aAAa,GAAG,CAAC,CAACA,aAAa;EACtC;AAIF;AAEA,MAAMC,KAEL,GAAG;EACFC,KAAK,EAAE,IAAIH,UAAU,CAAC,GAAG,CAAC;EAC1BI,MAAM,EAAE,IAAIJ,UAAU,CAAC,MAAM,CAAC;EAC9BK,MAAM,EAAE,IAAIL,UAAU,CAAC,OAAO,CAAC;EAC/BM,MAAM,EAAE,IAAIN,UAAU,CAAC,gBAAgB,EAAE,IAAI;AAC/C,CAAC;AAEkC;EACjCE,KAAK,CAACrJ,QAAQ,GAAG,IAAImJ,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC;AAC5C;ACDA,MAAMO,UAAU,GAAG,IAAI;AACvB,MAAMC,UAAU,GAAG,IAAI;AACvB,MAAMC,MAAM,GAAG,IAAI;AACnB,MAAMC,QAAQ,GAAG,IAAI;AACrB,MAAM7Y,MAAM,GAAG,IAAI;AACnB,MAAM8Y,OAAO,GAAG,IAAI;AAoBb,MAAMC,iBAAiB,CAAC;EAiB7B1b,WAAWA,CAAC2b,KAAa,EAAEC,IAAkB,GAAG,EAAE,EAAE;IAAA,IAAA,CAhBpDD,KAAK,GAAA,KAAA,CAAA;IAAA,IAAA,CACL3P,OAAO,GAAA,KAAA,CAAA;IAAA,IAAA,CACPqP,UAAU,GAAA,KAAA,CAAA;IAAA,IAAA,CACVC,UAAU,GAAA,KAAA,CAAA;IAAA,IAAA,CACVO,gBAAgB,GAAA,KAAA,CAAA;IAAA,IAAA,CAChBN,MAAM,GAAA,KAAA,CAAA;IAAA,IAAA,CACNC,QAAQ,GAAA,KAAA,CAAA;IAAA,IAAA,CACR7Y,MAAM,GAAA,KAAA,CAAA;IAAA,IAAA,CACN8Y,OAAO,GAAA,KAAA,CAAA;IAAA,IAAA,CACPK,KAAK,GAAA,KAAA,CAAA;IAQH,IAAI,CAACH,KAAK,GAAGA,KAAK;IAClB,IAAI,CAAC3P,OAAO,GAAG4P,IAAI,CAAC5P,OAAO;IAC3B,IAAI,CAACqP,UAAU,GAAG,CAAC,CAACO,IAAI,CAACP,UAAU;IACnC,IAAI,CAACC,UAAU,GAAG,CAAC,CAACM,IAAI,CAACN,UAAU;IACnC,IAAI,CAACO,gBAAgB,GAAG,CAAC,CAACD,IAAI,CAACC,gBAAgB;IAC/C,IAAI,CAACN,MAAM,GAAG,CAAC,CAACK,IAAI,CAACL,MAAM;IAC3B,IAAI,CAACC,QAAQ,GAAG,CAAC,CAACI,IAAI,CAACJ,QAAQ;IAC/B,IAAI,CAAC7Y,MAAM,GAAG,CAAC,CAACiZ,IAAI,CAACjZ,MAAM;IAC3B,IAAI,CAAC8Y,OAAO,GAAG,CAAC,CAACG,IAAI,CAACH,OAAO;IAC7B,IAAI,CAACK,KAAK,GAAGF,IAAI,CAACE,KAAK,IAAI,IAAI,GAAGF,IAAI,CAACE,KAAK,GAAG,IAAI;IAChB;MACjC,IAAI,CAACC,aAAa,GAAG,IAAI;IAC3B;EACF;AACF;AAGO,MAAMC,UAAQ,GAAG,IAAIC,GAAG,EAAqB;AAEpD,SAASC,aAAaA,CAACnT,IAAY,EAAE0J,OAAqB,GAAG,EAAE,EAAa;EAC1EA,OAAO,CAACzG,OAAO,GAAGjD,IAAI;EACtB,MAAMiG,KAAK,GAAGmN,WAAW,CAACpT,IAAI,EAAE0J,OAAO,CAAC;EACxCuJ,UAAQ,CAAChL,GAAG,CAACjI,IAAI,EAAEiG,KAAK,CAAC;EACzB,OAAOA,KAAK;AACd;AAEA,SAASoN,WAAWA,CAACrT,IAAY,EAAE+S,KAAa,EAAE;EAChD,OAAOK,WAAW,CAACpT,IAAI,EAAE;IAAEsS,UAAU;IAAES;EAAM,CAAC,CAAC;AACjD;AAEA,IAAIO,gBAAgB,GAAG,CAAC,CAAC;AAClB,MAAMC,UAA+B,GAAG,EAAE;AACjD,MAAMC,WAAqB,GAAG,EAAE;AAChC,MAAMC,WAAqB,GAAG,EAAE;AAChC,MAAMC,gBAA2B,GAAG,EAAE;AACtC,MAAMC,gBAA2B,GAAG,EAAE;AACtC,MAAMC,aAAwB,GAAG,EAAE;AAEnC,SAASR,WAAWA,CAACpT,IAAY,EAAE0J,OAAqB,GAAG,EAAE,EAAa;EAAA,IAAAmK,cAAA,EAAAC,mBAAA,EAAAC,mBAAA,EAAAC,eAAA;EACxE,EAAEV,gBAAgB;EAClBE,WAAW,CAACvG,IAAI,CAACjN,IAAI,CAAC;EACtByT,WAAW,CAACxG,IAAI,CAAA4G,CAAAA,cAAA,GAACnK,OAAO,CAACqJ,KAAK,KAAAc,IAAAA,GAAAA,cAAA,GAAI,CAAC,CAAC,CAAC;EACrCH,gBAAgB,CAACzG,IAAI,CAAA6G,CAAAA,mBAAA,GAACpK,OAAO,CAAC4I,UAAU,KAAAwB,IAAAA,GAAAA,mBAAA,GAAI,KAAK,CAAC;EAClDH,gBAAgB,CAAC1G,IAAI,CAAA8G,CAAAA,mBAAA,GAACrK,OAAO,CAAC6I,UAAU,KAAAwB,IAAAA,GAAAA,mBAAA,GAAI,KAAK,CAAC;EAClDH,aAAa,CAAC3G,IAAI,CAAA+G,CAAAA,eAAA,GAACtK,OAAO,CAAC9P,MAAM,KAAAoa,IAAAA,GAAAA,eAAA,GAAI,KAAK,CAAC;EAC3CT,UAAU,CAACtG,IAAI,CAAC,IAAI0F,iBAAiB,CAAC3S,IAAI,EAAE0J,OAAO,CAAC,CAAC;EAErD,OAAO4J,gBAAgB;AACzB;AAEA,SAASW,iBAAiBA,CACxBjU,IAAY,EACZ0J,OAAqB,GAAG,EAAE,EACf;EAAA,IAAAwK,eAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,gBAAA;EACX,EAAEf,gBAAgB;EAClBL,UAAQ,CAAChL,GAAG,CAACjI,IAAI,EAAEsT,gBAAgB,CAAC;EACpCE,WAAW,CAACvG,IAAI,CAACjN,IAAI,CAAC;EACtByT,WAAW,CAACxG,IAAI,CAAAiH,CAAAA,eAAA,GAACxK,OAAO,CAACqJ,KAAK,KAAAmB,IAAAA,GAAAA,eAAA,GAAI,CAAC,CAAC,CAAC;EACrCR,gBAAgB,CAACzG,IAAI,CAAAkH,CAAAA,oBAAA,GAACzK,OAAO,CAAC4I,UAAU,KAAA6B,IAAAA,GAAAA,oBAAA,GAAI,KAAK,CAAC;EAClDR,gBAAgB,CAAC1G,IAAI,CAAAmH,CAAAA,oBAAA,GAAC1K,OAAO,CAAC6I,UAAU,KAAA6B,IAAAA,GAAAA,oBAAA,GAAI,KAAK,CAAC;EAClDR,aAAa,CAAC3G,IAAI,CAAAoH,CAAAA,gBAAA,GAAC3K,OAAO,CAAC9P,MAAM,KAAAya,IAAAA,GAAAA,gBAAA,GAAI,KAAK,CAAC;EAE3Cd,UAAU,CAACtG,IAAI,CAAC,IAAI0F,iBAAiB,CAAC,MAAM,EAAEjJ,OAAO,CAAC,CAAC;EAEvD,OAAO4J,gBAAgB;AACzB;AAOO,MAAMgB,EAAE,GAAG;EAEhBC,QAAQ,EAAEnB,WAAW,CAAC,GAAG,EAAE;IAAEd,UAAU;IAAEC;EAAW,CAAC,CAAC;EACtDiC,YAAY,EAAEpB,WAAW,CAAC,IAAI,EAAE;IAAEd,UAAU;IAAEC;EAAW,CAAC,CAAC;EAC3DkC,WAAW,EAAErB,WAAW,CAAC,IAAI,EAAE;IAAEd,UAAU;IAAEC;EAAW,CAAC,CAAC;EAC1DmC,QAAQ,EAAEtB,WAAW,CAAC,GAAG,CAAC;EAC1BuB,WAAW,EAAEvB,WAAW,CAAC,IAAI,CAAC;EAC9BwB,MAAM,EAAExB,WAAW,CAAC,GAAG,EAAE;IAAEd,UAAU;IAAEC;EAAW,CAAC,CAAC;EACpDsC,SAAS,EAAEzB,WAAW,CAAC,IAAI,EAAE;IAAEd,UAAU;IAAEC;EAAW,CAAC,CAAC;EACxDuC,UAAU,EAAE1B,WAAW,CAAC,IAAI,EAAE;IAAEd,UAAU;IAAEC;EAAW,CAAC,CAAC;EACzDwC,MAAM,EAAE3B,WAAW,CAAC,GAAG,CAAC;EACxB4B,SAAS,EAAE5B,WAAW,CAAC,IAAI,CAAC;EAC5B6B,MAAM,EAAE7B,WAAW,CAAC,GAAG,EAAE;IAAEd,UAAU;IAAEC;EAAW,CAAC,CAAC;EACpD2C,MAAM,EAAE9B,WAAW,CAAC,GAAG,CAAC;EACxB+B,KAAK,EAAE/B,WAAW,CAAC,GAAG,EAAE;IAAEd;EAAW,CAAC,CAAC;EACvC8C,IAAI,EAAEhC,WAAW,CAAC,GAAG,EAAE;IAAEd;EAAW,CAAC,CAAC;EACtC+C,KAAK,EAAEjC,WAAW,CAAC,GAAG,EAAE;IAAEd;EAAW,CAAC,CAAC;EACvCgD,WAAW,EAAElC,WAAW,CAAC,IAAI,EAAE;IAAEd;EAAW,CAAC,CAAC;EAC9CiD,GAAG,EAAEnC,WAAW,CAAC,GAAG,CAAC;EACrBoC,QAAQ,EAAEpC,WAAW,CAAC,GAAG,EAAE;IAAEd;EAAW,CAAC,CAAC;EAC1CmD,WAAW,EAAErC,WAAW,CAAC,IAAI,CAAC;EAC9BsC,KAAK,EAAEtC,WAAW,CAAC,IAAI,EAAE;IAAEd;EAAW,CAAC,CAAC;EACxC1J,QAAQ,EAAEwK,WAAW,CAAC,UAAU,CAAC;EACjCuC,QAAQ,EAAEvC,WAAW,CAAC,KAAK,EAAE;IAAEd;EAAW,CAAC,CAAC;EAC5CsD,SAAS,EAAExC,WAAW,CAAC,GAAG,EAAE;IAAEb;EAAW,CAAC,CAAC;EAC3CsD,YAAY,EAAEzC,WAAW,CAAC,IAAI,EAAE;IAAEd,UAAU;IAAEC;EAAW,CAAC,CAAC;EAE3DuD,YAAY,EAAE1C,WAAW,CAAC,MAAM,EAAE;IAAEb;EAAW,CAAC,CAAC;EACjDwD,eAAe,EAAE3C,WAAW,CAAC,OAAO,EAAE;IAAEd,UAAU;IAAEC;EAAW,CAAC,CAAC;EAEjE9C,EAAE,EAAE2D,WAAW,CAAC,GAAG,CAAC;EACpB4C,IAAI,EAAE5C,WAAW,CAAC,GAAG,EAAE;IAAEb;EAAW,CAAC,CAAC;EAGtC0D,oBAAoB,EAAE7C,WAAW,CAAC,OAAO,CAAC;EAiB1C8C,EAAE,EAAE9C,WAAW,CAAC,GAAG,EAAE;IAAEd,UAAU;IAAEG;EAAS,CAAC,CAAC;EAC9C9K,MAAM,EAAEyL,WAAW,CAAC,IAAI,EAAE;IAAEd,UAAU;IAAEG;EAAS,CAAC,CAAC;EACnD0D,WAAW,EAAE/C,WAAW,CAAC,IAAI,EAAE;IAAEd,UAAU;IAAEG;EAAS,CAAC,CAAC;EAIxD2D,SAAS,EAAEhD,WAAW,CAAC,IAAI,EAAE;IAAEd,UAAU;IAAEG;EAAS,CAAC,CAAC;EACtD4D,YAAY,EAAEjD,WAAW,CAAC,IAAI,EAAE;IAAEd,UAAU;IAAEG;EAAS,CAAC,CAAC;EAGzD6D,MAAM,EAAElD,WAAW,CAAC,OAAO,EAAE;IAAExZ,MAAM;IAAE8Y,OAAO;IAAEH;EAAW,CAAC,CAAC;EAC7DgE,IAAI,EAAEnD,WAAW,CAAC,GAAG,EAAE;IAAEd,UAAU;IAAE1Y,MAAM;IAAE2Y;EAAW,CAAC,CAAC;EAC1DiE,KAAK,EAAEpD,WAAW,CAAC,GAAG,EAAE;IAAEd,UAAU;IAAE1Y,MAAM;IAAE2Y;EAAW,CAAC,CAAC;EAI3DkE,WAAW,EAAErD,WAAW,CAAC,IAAI,EAAE;IAAEb;EAAW,CAAC,CAAC;EAC9CmE,QAAQ,EAAEtD,WAAW,CAAC,IAAI,EAAE;IAAEb;EAAW,CAAC,CAAC;EAG3CoE,QAAQ,EAAEtD,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;EAC9BuD,iBAAiB,EAAEvD,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;EACvCwD,SAAS,EAAExD,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;EAC/ByD,UAAU,EAAEzD,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;EAChC0D,SAAS,EAAE1D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;EAC9B2D,UAAU,EAAE3D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;EAC/B4D,UAAU,EAAE5D,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;EAC/B6D,QAAQ,EAAE7D,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;EACzC8D,EAAE,EAAE9D,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;EAC/B+D,EAAE,EAAE/D,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;EAC/BgE,UAAU,EAAEhE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;EACvCiE,QAAQ,EAAEjE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;EACrCkE,SAAS,EAAElE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;EACtCmE,SAAS,EAAEnE,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC;EACtCoE,OAAO,EAAErE,WAAW,CAAC,KAAK,EAAE;IAAEd,UAAU;IAAES,KAAK,EAAE,CAAC;IAAEnZ,MAAM;IAAE2Y;EAAW,CAAC,CAAC;EAEzEmF,MAAM,EAAEtE,WAAW,CAAC,GAAG,EAAE;IAAEL,KAAK,EAAE,EAAE;IAAER;EAAW,CAAC,CAAC;EAEnDoF,IAAI,EAAEvE,WAAW,CAAC,GAAG,EAAE;IAAEL,KAAK,EAAE;EAAG,CAAC,CAAC;EACrC6E,KAAK,EAAEvE,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC;EAC3BwE,QAAQ,EAAEzE,WAAW,CAAC,IAAI,EAAE;IAC1Bd,UAAU;IACVS,KAAK,EAAE,EAAE;IACTD,gBAAgB,EAAE;EACpB,CAAC,CAAC;EAOFgF,GAAG,EAAE3E,aAAa,CAAC,IAAI,EAAE;IAAEb,UAAU;IAAES,KAAK,EAAE;EAAE,CAAC,CAAC;EAClDgF,WAAW,EAAE5E,aAAa,CAAC,YAAY,EAAE;IAAEb,UAAU;IAAES,KAAK,EAAE;EAAE,CAAC,CAAC;EAElEiF,MAAM,EAAE7E,aAAa,CAAC,OAAO,CAAC;EAC9B8E,KAAK,EAAE9E,aAAa,CAAC,MAAM,EAAE;IAAEb;EAAW,CAAC,CAAC;EAC5C4F,MAAM,EAAE/E,aAAa,CAAC,OAAO,CAAC;EAC9BgF,SAAS,EAAEhF,aAAa,CAAC,UAAU,CAAC;EACpCiF,SAAS,EAAEjF,aAAa,CAAC,UAAU,CAAC;EACpCkF,QAAQ,EAAElF,aAAa,CAAC,SAAS,EAAE;IAAEb;EAAW,CAAC,CAAC;EAClDgG,KAAK,EAAEnF,aAAa,CAAC,MAAM,EAAE;IAAEb;EAAW,CAAC,CAAC;EAC5CiG,QAAQ,EAAEpF,aAAa,CAAC,SAAS,CAAC;EAClCqF,SAAS,EAAErF,aAAa,CAAC,UAAU,EAAE;IAAEZ;EAAW,CAAC,CAAC;EACpDkG,GAAG,EAAEtF,aAAa,CAAC,IAAI,CAAC;EACxBuF,OAAO,EAAEvF,aAAa,CAAC,QAAQ,EAAE;IAAEb;EAAW,CAAC,CAAC;EAChDqG,OAAO,EAAExF,aAAa,CAAC,QAAQ,CAAC;EAChCyF,MAAM,EAAEzF,aAAa,CAAC,OAAO,EAAE;IAAEb,UAAU;IAAE1Y,MAAM;IAAE2Y;EAAW,CAAC,CAAC;EAClEsG,IAAI,EAAE1F,aAAa,CAAC,KAAK,CAAC;EAC1B2F,IAAI,EAAE3F,aAAa,CAAC,KAAK,CAAC;EAC1B4F,MAAM,EAAE5F,aAAa,CAAC,OAAO,CAAC;EAC9B6F,KAAK,EAAE7F,aAAa,CAAC,MAAM,CAAC;EAC5B8F,IAAI,EAAE9F,aAAa,CAAC,KAAK,EAAE;IAAEb,UAAU;IAAEC;EAAW,CAAC,CAAC;EACtD2G,KAAK,EAAE/F,aAAa,CAAC,MAAM,EAAE;IAAEZ;EAAW,CAAC,CAAC;EAC5C4G,MAAM,EAAEhG,aAAa,CAAC,OAAO,EAAE;IAAEZ;EAAW,CAAC,CAAC;EAC9C6G,MAAM,EAAEjG,aAAa,CAAC,OAAO,EAAE;IAAEZ;EAAW,CAAC,CAAC;EAC9C8G,QAAQ,EAAElG,aAAa,CAAC,SAAS,EAAE;IAAEb;EAAW,CAAC,CAAC;EAClDgH,OAAO,EAAEnG,aAAa,CAAC,QAAQ,CAAC;EAChCoG,OAAO,EAAEpG,aAAa,CAAC,QAAQ,EAAE;IAAEZ;EAAW,CAAC,CAAC;EAChDiH,KAAK,EAAErG,aAAa,CAAC,MAAM,EAAE;IAAEZ;EAAW,CAAC,CAAC;EAC5CkH,KAAK,EAAEtG,aAAa,CAAC,MAAM,EAAE;IAAEZ;EAAW,CAAC,CAAC;EAC5CmH,MAAM,EAAEvG,aAAa,CAAC,OAAO,EAAE;IAAEZ;EAAW,CAAC,CAAC;EAC9CoH,OAAO,EAAExG,aAAa,CAAC,QAAQ,EAAE;IAAEb,UAAU;IAAE1Y,MAAM;IAAE2Y;EAAW,CAAC,CAAC;EACpEqH,KAAK,EAAEzG,aAAa,CAAC,MAAM,EAAE;IAAEb,UAAU;IAAE1Y,MAAM;IAAE2Y;EAAW,CAAC,CAAC;EAChEsH,OAAO,EAAE1G,aAAa,CAAC,QAAQ,EAAE;IAAEb,UAAU;IAAE1Y,MAAM;IAAE2Y;EAAW,CAAC,CAAC;EAEpEuH,GAAG,EAAE3G,aAAa,CAAC,IAAI,EAAE;IAAEX,MAAM;IAAEF;EAAW,CAAC,CAAC;EAChDyH,IAAI,EAAE5G,aAAa,CAAC,KAAK,EAAE;IAAEX;EAAO,CAAC,CAAC;EACtCwH,MAAM,EAAE7G,aAAa,CAAC,OAAO,EAAE;IAAEX;EAAO,CAAC,CAAC;EAM1CyH,GAAG,EAAEhG,iBAAiB,CAAC,IAAI,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAC5C2H,OAAO,EAAEjG,iBAAiB,CAAC,QAAQ,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACpD4H,MAAM,EAAElG,iBAAiB,CAAC,OAAO,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAClD6H,MAAM,EAAEnG,iBAAiB,CAAC,OAAO,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAClD8H,MAAM,EAAEpG,iBAAiB,CAAC,OAAO,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAClD+H,KAAK,EAAErG,iBAAiB,CAAC,MAAM,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAChDgI,IAAI,EAAEtG,iBAAiB,CAAC,KAAK,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAC9CiI,IAAI,EAAEvG,iBAAiB,CAAC,KAAK,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAC9CkI,KAAK,EAAExG,iBAAiB,CAAC,MAAM,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAChDmI,GAAG,EAAEzG,iBAAiB,CAAC,IAAI,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAC5CoI,KAAK,EAAE1G,iBAAiB,CAAC,MAAM,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAChDqI,IAAI,EAAE3G,iBAAiB,CAAC,KAAK,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAC9CsI,OAAO,EAAE5G,iBAAiB,CAAC,QAAQ,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACpDuI,OAAO,EAAE7G,iBAAiB,CAAC,QAAQ,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACpDwI,MAAM,EAAE9G,iBAAiB,CAAC,OAAO,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAClDyI,MAAM,EAAE/G,iBAAiB,CAAC,OAAO,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAGlD0I,QAAQ,EAAEhH,iBAAiB,CAAC,SAAS,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACtD2I,OAAO,EAAEjH,iBAAiB,CAAC,QAAQ,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACpD4I,QAAQ,EAAElH,iBAAiB,CAAC,SAAS,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACtD6I,OAAO,EAAEnH,iBAAiB,CAAC,QAAQ,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACpD8I,WAAW,EAAEpH,iBAAiB,CAAC,YAAY,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAC5D+I,UAAU,EAAErH,iBAAiB,CAAC,WAAW,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAC1DgJ,MAAM,EAAEtH,iBAAiB,CAAC,OAAO,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAClDiJ,GAAG,EAAEvH,iBAAiB,CAAC,IAAI,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAC5CkJ,OAAO,EAAExH,iBAAiB,CAAC,QAAQ,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACpDmJ,MAAM,EAAEzH,iBAAiB,CAAC,OAAO,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAClDoJ,QAAQ,EAAE1H,iBAAiB,CAAC,SAAS,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACtDqJ,UAAU,EAAE3H,iBAAiB,CAAC,WAAW,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAE1DsJ,MAAM,EAAE5H,iBAAiB,CAAC,OAAO,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAClDuJ,SAAS,EAAE7H,iBAAiB,CAAC,UAAU,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACxDwJ,OAAO,EAAE9H,iBAAiB,CAAC,QAAQ,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAGpDyJ,SAAS,EAAE/H,iBAAiB,CAAC,UAAU,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACxD0J,QAAQ,EAAEhI,iBAAiB,CAAC,SAAS,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACtD2J,KAAK,EAAEjI,iBAAiB,CAAC,MAAM,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAChD4J,OAAO,EAAElI,iBAAiB,CAAC,QAAQ,EAAE;IAAE1B;EAAW,CAAC,CAAC;EACpD6J,UAAU,EAAEnI,iBAAiB,CAAC,WAAW,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAE1D8J,UAAU,EAAEpI,iBAAiB,CAAC,WAAW,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAC1D+J,KAAK,EAAErI,iBAAiB,CAAC,MAAM,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAEhDgK,OAAO,EAAEtI,iBAAiB,CAAC,QAAQ,EAAE;IAAE1B;EAAW,CAAC,CAAC;EAEpDvS,IAAI,EAAEoT,WAAW,CAAC,MAAM,EAAE;IAAEb;EAAW,CAAC,CAAC;EAGzCiK,MAAM,EAAEpJ,WAAW,CAAC,QAAQ,EAAE;IAAEb;EAAW,CAAC,CAAC;EAC7CkK,GAAG,EAAErJ,WAAW,CAAC,KAAK,EAAE;IAAEb;EAAW,CAAC,CAAC;EACvChI,MAAM,EAAE6I,WAAW,CAAC,QAAQ,EAAE;IAAEb;EAAW,CAAC,CAAC;EAC7C9H,OAAO,EAAE2I,WAAW,CAAC,SAAS,EAAE;IAAEb;EAAW,CAAC,CAAC;EAE/CmK,MAAM,EAAEtJ,WAAW,CAAC,QAAQ,EAAE;IAAEb;EAAW,CAAC,CAAC;EAC7CoK,WAAW,EAAEvJ,WAAW,CAAC,OAAO,EAAE;IAAEb;EAAW,CAAC,CAAC;EACjDqK,GAAG,EAAExJ,WAAW,CAAC,KAAK,CAAC;EAGvByJ,OAAO,EAAEzJ,WAAW,CAAC,SAAS,CAAC;EAC/B0J,OAAO,EAAE1J,WAAW,CAAC,SAAS,EAAE;IAAEd,UAAU,EAAE;EAAK,CAAC,CAAC;EACrDyK,WAAW,EAAE3J,WAAW,CAAC,aAAa,EAAE;IAAEb,UAAU,EAAE;EAAK,CAAC,CAAC;EAC7DyK,SAAS,EAAE5J,WAAW,CAAC,WAAW,CAAC;EAGnC6J,WAAW,EAAE7J,WAAW,CAAC,IAAI,EAAE;IAAEb,UAAU,EAAE;GAAM;AACrD,CAAU;AAEH,SAAS2K,iBAAiBA,CAACjX,KAAgB,EAAW;EAC3D,OAAOA,KAAK,IAAA,EAAU,IAAIA,KAAK,IAAW,GAAA;AAC5C;AAEO,SAASkX,iCAAiCA,CAAClX,KAAgB,EAAW;EAG3E,OAAOA,KAAK,IAAa,EAAA;AAC3B;AAEO,SAASmX,0BAA0BA,CAACnX,KAAgB,EAAW;EACpE,OAAOA,KAAK,IAAA,EAAU,IAAIA,KAAK,IAAW,GAAA;AAC5C;AAEO,SAASoX,0BAA0BA,CAACpX,KAAgB,EAAW;EACpE,OAAOA,KAAK,IAAA,EAAU,IAAIA,KAAK,IAAc,GAAA;AAC/C;AAEO,SAASqX,0BAA0BA,CAACrX,KAAgB,EAAW;EACpE,OAAOyN,gBAAgB,CAACzN,KAAK,CAAC;AAChC;AAEO,SAASsX,uBAAuBA,CAACtX,KAAgB,EAAW;EACjE,OAAO0N,gBAAgB,CAAC1N,KAAK,CAAC;AAChC;AAEO,SAASuX,iBAAiBA,CAACvX,KAAgB,EAAW;EAC3D,OAAOA,KAAK,IAAA,EAAS,IAAIA,KAAK,IAAmB,EAAA;AACnD;AAEO,SAASwX,kCAAkCA,CAACxX,KAAgB,EAAW;EAC5E,OAAOA,KAAK,IAAA,GAAiB,IAAIA,KAAK,IAAc,GAAA;AACtD;AAEO,SAASyX,WAAWA,CAACzX,KAAgB,EAAW;EACrD,OAAOA,KAAK,IAAA,EAAU,IAAIA,KAAK,IAAa,EAAA;AAC9C;AAEO,SAAS0X,cAAcA,CAAC1X,KAAgB,EAAW;EACxD,OAAOA,KAAK,IAAA,EAAU,IAAIA,KAAK,IAAa,EAAA;AAC9C;AAEO,SAAS2X,eAAeA,CAAC3X,KAAgB,EAAW;EACzD,OAAOA,KAAK,IAAA,EAAe,IAAIA,KAAK,IAAkB,EAAA;AACxD;AAEO,SAAS4X,cAAcA,CAAC5X,KAAgB,EAAW;EACxD,OAAOA,KAAK,KAAc,EAAA;AAC5B;AAEO,SAAS6X,aAAaA,CAAC7X,KAAgB,EAAW;EACvD,OAAO2N,aAAa,CAAC3N,KAAK,CAAC;AAC7B;AAEO,SAAS8X,qBAAqBA,CAAC9X,KAAgB,EAAW;EAC/D,OAAOA,KAAK,IAAA,GAAa,IAAIA,KAAK,IAAc,GAAA;AAClD;AAEO,SAAS+X,yBAAyBA,CAAC/X,KAAgB,EAAW;EACnE,OAAOA,KAAK,IAAA,GAAgB,IAAIA,KAAK,IAAY,GAAA;AACnD;AAEO,SAASgY,cAAcA,CAAChY,KAAgB,EAAU;EACvD,OAAOuN,WAAW,CAACvN,KAAK,CAAC;AAC3B;AAEO,SAASiY,uBAAuBA,CAACjY,KAAgB,EAAU;EAChE,OAAOwN,WAAW,CAACxN,KAAK,CAAC;AAC3B;AAMO,SAASkY,uBAAuBA,CAAClY,KAAgB,EAAW;EACjE,OAAOA,KAAK,KAAgB,EAAA;AAC9B;AAEO,SAASmY,eAAeA,CAACnY,KAAgB,EAAW;EACzD,OAAOA,KAAK,IAAA,EAAmB,IAAIA,KAAK,IAAsB,EAAA;AAChE;AAEO,SAASoY,gBAAgBA,CAACpY,KAAgB,EAAqB;EACpE,OAAOsN,UAAU,CAACtN,KAAK,CAAC;AAC1B;AAMmC;EACjCsN,UAAU,CAAW,CAAA,CAAA,CAACP,aAAa,GAAGsL,OAAO,IAAI;IAC/CA,OAAO,CAACC,GAAG,CAAA,CAAE;GACd;EAEDhL,UAAU,CAAW,CAAA,CAAA,CAACP,aAAa,GACjCO,UAAU,CAAe,CAAA,CAAA,CAACP,aAAa,GACvCO,UAAU,CAAiB,EAAA,CAAA,CAACP,aAAa,GACvCsL,OAAO,IAAI;IACTA,OAAO,CAACrR,IAAI,CAACuR,KAAE,CAACtM,KAAK,CAAC;GACvB;EAELqB,UAAU,CAAc,EAAA,CAAA,CAACP,aAAa,GAAGsL,OAAO,IAAI;IAClD,IAAIA,OAAO,CAACA,OAAO,CAAC1N,MAAM,GAAG,CAAC,CAAC,KAAK4N,KAAE,CAAC5V,QAAQ,EAAE;MAC/C0V,OAAO,CAACC,GAAG,CAAA,CAAE;IACf,CAAC,MAAM;MACLD,OAAO,CAACrR,IAAI,CAACuR,KAAE,CAAC5V,QAAQ,CAAC;IAC3B;GACD;EAED2K,UAAU,CAAgB,GAAA,CAAA,CAACP,aAAa,GAAGsL,OAAO,IAAI;IACpDA,OAAO,CAACrR,IAAI,CAACuR,KAAE,CAACnM,MAAM,EAAEmM,KAAE,CAACrM,MAAM,CAAC;GACnC;AACH;ACrcA,IAAIsM,4BAA4B,GAAG,8qIAA8qI;AAEjtI,IAAIC,uBAAuB,GAAG,2lFAA2lF;AAEznF,MAAMC,uBAAuB,GAAG,IAAI3U,MAAM,CACxC,GAAG,GAAGyU,4BAA4B,GAAG,GACvC,CAAC;AACD,MAAMG,kBAAkB,GAAG,IAAI5U,MAAM,CACnC,GAAG,GAAGyU,4BAA4B,GAAGC,uBAAuB,GAAG,GACjE,CAAC;AAEDD,4BAA4B,GAAGC,uBAAuB,GAAG,IAAI;AAQ7D,MAAMG,0BAA0B,GAAG,CAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC;AAEx+C,MAAMC,qBAAqB,GAAG,CAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EA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"}
\ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/util/location.ts","../src/parse-error/module-errors.ts","../src/parse-error/to-node-description.ts","../src/parse-error/standard-errors.ts","../src/parse-error/strict-mode-errors.ts","../src/parse-error/pipeline-operator-errors.ts","../src/parse-error.ts","../src/plugins/estree.ts","../src/tokenizer/context.ts","../src/tokenizer/types.ts","../../babel-helper-validator-identifier/src/identifier.ts","../../babel-helper-validator-identifier/src/keyword.ts","../src/util/identifier.ts","../src/util/scope.ts","../src/plugins/flow/scope.ts","../src/parser/base.ts","../src/parser/comments.ts","../src/util/whitespace.ts","../src/tokenizer/state.ts","../../babel-helper-string-parser/src/index.ts","../src/tokenizer/index.ts","../src/util/class-scope.ts","../src/util/expression-scope.ts","../src/util/production-parameter.ts","../src/parser/util.ts","../src/parser/node.ts","../src/plugins/flow/index.ts","../src/plugins/jsx/xhtml.ts","../src/plugins/jsx/index.ts","../src/plugins/typescript/scope.ts","../src/parser/lval.ts","../src/plugins/typescript/index.ts","../src/plugins/placeholders.ts","../src/plugins/v8intrinsic.ts","../src/plugin-utils.ts","../src/options.ts","../src/parser/expression.ts","../src/parser/statement.ts","../src/parser/index.ts","../src/index.ts"],"sourcesContent":["export type Pos = {\n start: number;\n};\n\n// These are used when `options.locations` is on, for the\n// `startLoc` and `endLoc` properties.\n\nexport class Position {\n line: number;\n column: number;\n index: number;\n\n constructor(line: number, col: number, index: number) {\n this.line = line;\n this.column = col;\n this.index = index;\n }\n}\n\nexport class SourceLocation {\n start: Position;\n end: Position;\n filename: string;\n identifierName: string | undefined | null;\n\n constructor(start: Position, end?: Position) {\n this.start = start;\n // (may start as null, but initialized later)\n this.end = end;\n }\n}\n\n/**\n * creates a new position with a non-zero column offset from the given position.\n * This function should be only be used when we create AST node out of the token\n * boundaries, such as TemplateElement ends before tt.templateNonTail. This\n * function does not skip whitespaces.\n */\nexport function createPositionWithColumnOffset(\n position: Position,\n columnOffset: number,\n) {\n const { line, column, index } = position;\n return new Position(line, column + columnOffset, index + columnOffset);\n}\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\n\nconst code = \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\nexport default {\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} satisfies ParseErrorTemplates;\n","const 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};\n\ntype NodeTypesWithDescriptions = keyof Omit<\n typeof NodeDescriptions,\n \"UpdateExpression\"\n>;\n\ntype NodeWithDescription =\n | {\n type: \"UpdateExpression\";\n prefix: boolean;\n }\n | {\n type: NodeTypesWithDescriptions;\n };\n\n// @ts-expect-error prefix is specified only when type is UpdateExpression\n// eslint-disable-next-line no-confusing-arrow\nconst toNodeDescription = ({ type, prefix }: NodeWithDescription) =>\n type === \"UpdateExpression\"\n ? NodeDescriptions.UpdateExpression[String(prefix) as \"true\" | \"false\"]\n : NodeDescriptions[type];\n\nexport default toNodeDescription;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport type LValAncestor =\n | { type: \"UpdateExpression\"; prefix: boolean }\n | {\n type:\n | \"ArrayPattern\"\n | \"AssignmentExpression\"\n | \"CatchClause\"\n | \"ForOfStatement\"\n | \"FormalParameters\"\n | \"ForInStatement\"\n | \"ForStatement\"\n | \"ImportSpecifier\"\n | \"ImportNamespaceSpecifier\"\n | \"ImportDefaultSpecifier\"\n | \"ParenthesizedExpression\"\n | \"ObjectPattern\"\n | \"RestElement\"\n | \"VariableDeclarator\";\n };\n\nexport default {\n AccessorIsGenerator: ({ kind }: { kind: \"get\" | \"set\" }) =>\n `A ${kind}ter cannot be a generator.`,\n ArgumentsInClass:\n \"'arguments' is only allowed in functions and class methods.\",\n AsyncFunctionInSingleStatementContext:\n \"Async functions can only be declared at the top level or inside a block.\",\n AwaitBindingIdentifier:\n \"Can not use 'await' as identifier inside an async function.\",\n AwaitBindingIdentifierInStaticBlock:\n \"Can not use 'await' as identifier inside a static block.\",\n AwaitExpressionFormalParameter:\n \"'await' is not allowed in async function parameters.\",\n AwaitUsingNotInAsyncContext:\n \"'await using' is only allowed within async functions and at the top levels of modules.\",\n AwaitNotInAsyncContext:\n \"'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:\n \"A 'set' accessor function argument must not be a rest parameter.\",\n ConstructorClassField: \"Classes may not have a field named 'constructor'.\",\n ConstructorClassPrivateField:\n \"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 }: {\n kind: \"const\" | \"destructuring\";\n }) => `Missing initializer in ${kind} declaration.`,\n DecoratorArgumentsOutsideParentheses:\n \"Decorator arguments must be moved inside parentheses: use '@(decorator(args))' instead of '@(decorator)(args)'.\",\n DecoratorBeforeExport:\n \"Decorators must be placed *before* the 'export' keyword. Remove the 'decoratorsBeforeExport: true' option to use the 'export @decorator class {}' syntax.\",\n DecoratorsBeforeAfterExport:\n \"Decorators can be placed *either* before or after the 'export' keyword, but not in both locations at the same time.\",\n DecoratorConstructor:\n \"Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?\",\n DecoratorExportClass:\n \"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:\n 'Only `import defer * as x from \"./module\"` is valid.',\n DeletePrivateField: \"Deleting a private field is not allowed.\",\n DestructureNamedImport:\n \"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: ({ exportName }: { exportName: string }) =>\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: ({ phase }: { phase: string }) =>\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 }: {\n localName: string;\n exportName: string;\n }) =>\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:\n \"'from' is not allowed as an identifier after 'export default'.\",\n\n ForInOfLoopInitializer: ({\n type,\n }: {\n type: \"ForInStatement\" | \"ForOfStatement\";\n }) =>\n `'${\n type === \"ForInStatement\" ? \"for-in\" : \"for-of\"\n }' loop variable declaration may not have an initializer.`,\n ForInUsing: \"For-in loop may not start with 'using' declaration.\",\n\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:\n \"Generators can only be declared at the top level or inside a block.\",\n\n IllegalBreakContinue: ({\n type,\n }: {\n type: \"BreakStatement\" | \"ContinueStatement\";\n }) => `Unsyntactic ${type === \"BreakStatement\" ? \"break\" : \"continue\"}.`,\n\n IllegalLanguageModeDirective:\n \"Illegal 'use strict' directive in function with non-simple parameter list.\",\n IllegalReturn: \"'return' outside of function.\",\n ImportAttributesUseAssert:\n \"The `assert` keyword in import attributes is deprecated and it has been replaced by the `with` keyword. You can enable the `deprecatedAssertSyntax: true` option in the import attributes plugin to suppress this error.\",\n ImportBindingIsString: ({ importName }: { importName: string }) =>\n `A string literal cannot be used as an imported binding.\\n- Did you mean \\`import { \"${importName}\" as foo }\\`?`,\n ImportCallArgumentTrailingComma:\n \"Trailing comma is disallowed inside import(...) arguments.\",\n ImportCallArity: ({ maxArgumentCount }: { maxArgumentCount: 1 | 2 }) =>\n `\\`import()\\` requires exactly ${\n maxArgumentCount === 1 ? \"one argument\" : \"one or two arguments\"\n }.`,\n ImportCallNotNewExpression: \"Cannot use new with import(...).\",\n ImportCallSpreadArgument: \"`...` is not allowed in `import()`.\",\n ImportJSONBindingNotDefault:\n \"A JSON module can only be imported with `default`.\",\n ImportReflectionHasAssertion: \"`import module x` cannot have assertions.\",\n ImportReflectionNotBinding:\n 'Only `import module x from \"./module\"` is valid.',\n IncompatibleRegExpUVFlags:\n \"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: ({ radix }: { radix: number }) =>\n `Expected number in radix ${radix}.`,\n InvalidEscapeSequence: \"Bad character escape sequence.\",\n InvalidEscapeSequenceTemplate: \"Invalid escape sequence in template.\",\n InvalidEscapedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Escape sequence in keyword ${reservedWord}.`,\n InvalidIdentifier: ({ identifierName }: { identifierName: string }) =>\n `Invalid identifier ${identifierName}.`,\n InvalidLhs: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsBinding: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Binding invalid left-hand side in ${toNodeDescription(ancestor)}.`,\n InvalidLhsOptionalChaining: ({ ancestor }: { ancestor: LValAncestor }) =>\n `Invalid optional chaining in the left-hand side of ${toNodeDescription(\n ancestor,\n )}.`,\n InvalidNumber: \"Invalid number.\",\n InvalidOrMissingExponent:\n \"Floating-point numbers require a valid exponent after the 'e'.\",\n InvalidOrUnexpectedToken: ({ unexpected }: { unexpected: string }) =>\n `Unexpected character '${unexpected}'.`,\n InvalidParenthesizedAssignment: \"Invalid parenthesized assignment pattern.\",\n InvalidPrivateFieldResolution: ({\n identifierName,\n }: {\n identifierName: string;\n }) => `Private name #${identifierName} is not defined.`,\n InvalidPropertyBindingPattern: \"Binding member expression.\",\n InvalidRecordProperty:\n \"Only properties and spread elements are allowed in record definitions.\",\n InvalidRestAssignmentPattern: \"Invalid rest operator's argument.\",\n LabelRedeclaration: ({ labelName }: { labelName: string }) =>\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:\n \"Only '=' operator can be used for specifying default value.\",\n MissingSemicolon: \"Missing semicolon.\",\n MissingPlugin: ({ missingPlugin }: { missingPlugin: [string] }) =>\n `This experimental syntax requires enabling the parser plugin: ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n // FIXME: Would be nice to make this \"missingPlugins\" instead.\n // Also, seems like we can drop the \"(s)\" from the message and just make it \"s\".\n MissingOneOfPlugins: ({ missingPlugin }: { missingPlugin: string[] }) =>\n `This experimental syntax requires enabling one of the following parser plugin(s): ${missingPlugin\n .map(name => JSON.stringify(name))\n .join(\", \")}.`,\n MissingUnicodeEscape: \"Expecting Unicode escape sequence \\\\uXXXX.\",\n MixingCoalesceWithLogical:\n \"Nullish coalescing operator(??) requires parens when mixing with logical operators.\",\n ModuleAttributeDifferentFromType:\n \"The only accepted module attribute is `type`.\",\n ModuleAttributeInvalidValue:\n \"Only string literals are allowed as module attribute values.\",\n ModuleAttributesWithDuplicateKeys: ({ key }: { key: string }) =>\n `Duplicate key \"${key}\" is not allowed in module attributes.`,\n ModuleExportNameHasLoneSurrogate: ({\n surrogateCharCode,\n }: {\n surrogateCharCode: number;\n }) =>\n `An export name cannot include a lone surrogate, found '\\\\u${surrogateCharCode.toString(\n 16,\n )}'.`,\n ModuleExportUndefined: ({ localName }: { localName: string }) =>\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:\n \"Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.\",\n ObsoleteAwaitStar:\n \"'await*' has been removed from the async functions proposal. Use Promise.all() instead.\",\n OptionalChainingNoNew:\n \"Constructors in/after an Optional Chain are not allowed.\",\n OptionalChainingNoTemplate:\n \"Tagged Template Literals are not allowed in optionalChain.\",\n OverrideOnConstructor:\n \"'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: ({ identifierName }: { identifierName: string }) =>\n `Private names are only allowed in property accesses (\\`obj.#${identifierName}\\`) or in \\`in\\` expressions (\\`#${identifierName} in obj\\`).`,\n PrivateNameRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Duplicate private name #${identifierName}.`,\n RecordExpressionBarIncorrectEndSyntaxType:\n \"Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionBarIncorrectStartSyntaxType:\n \"Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n RecordExpressionHashIncorrectStartSyntaxType:\n \"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:\n \"In non-strict mode code, functions can only be declared at top level or inside a block.\",\n SloppyFunctionAnnexB:\n \"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:\n 'Only `import source x from \"./module\"` is valid.',\n StaticPrototype: \"Classes may not have static property named prototype.\",\n SuperNotAllowed:\n \"`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:\n \"Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionBarIncorrectStartSyntaxType:\n \"Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.\",\n TupleExpressionHashIncorrectStartSyntaxType:\n \"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:\n 'Unexpected \"await\" after pipeline body; await must have parentheses in minimal proposal.',\n UnexpectedDigitAfterHash: \"Unexpected digit after hash token.\",\n UnexpectedImportExport:\n \"'import' and 'export' may only appear at the top level.\",\n UnexpectedKeyword: ({ keyword }: { keyword: string }) =>\n `Unexpected keyword '${keyword}'.`,\n UnexpectedLeadingDecorator:\n \"Leading decorators must be attached to a class declaration.\",\n UnexpectedLexicalDeclaration:\n \"Lexical declaration cannot appear in a single-statement context.\",\n UnexpectedNewTarget:\n \"`new.target` can only be used in functions or class properties.\",\n UnexpectedNumericSeparator:\n \"A numeric separator is only allowed between two digits.\",\n UnexpectedPrivateField: \"Unexpected private name.\",\n UnexpectedReservedWord: ({ reservedWord }: { reservedWord: string }) =>\n `Unexpected reserved word '${reservedWord}'.`,\n UnexpectedSuper: \"'super' is only allowed in object methods and classes.\",\n UnexpectedToken: ({\n expected,\n unexpected,\n }: {\n expected?: string | null;\n unexpected?: string | null;\n }) =>\n `Unexpected token${unexpected ? ` '${unexpected}'.` : \"\"}${\n expected ? `, expected \"${expected}\"` : \"\"\n }`,\n UnexpectedTokenUnaryExponentiation:\n \"Illegal expression. Wrap left hand side or entire exponentiation in parentheses.\",\n UnexpectedUsingDeclaration:\n \"Using declaration cannot appear in the top level when source type is `script`.\",\n UnsupportedBind: \"Binding should be performed on object property.\",\n UnsupportedDecoratorExport:\n \"A decorated export must export a class declaration.\",\n UnsupportedDefaultExport:\n \"Only expressions, functions or classes are allowed as the `default` export.\",\n UnsupportedImport:\n \"`import` can only be used in `import()` or `import.meta`.\",\n UnsupportedMetaProperty: ({\n target,\n onlyValidPropertyName,\n }: {\n target: string;\n onlyValidPropertyName: string;\n }) =>\n `The only valid meta property for ${target} is ${target}.${onlyValidPropertyName}.`,\n UnsupportedParameterDecorator:\n \"Decorators cannot be used to decorate parameters.\",\n UnsupportedPropertyDecorator:\n \"Decorators cannot be used to decorate object literal properties.\",\n UnsupportedSuper:\n \"'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 UsingDeclarationHasBindingPattern:\n \"Using declaration cannot have destructuring patterns.\",\n VarRedeclaration: ({ identifierName }: { identifierName: string }) =>\n `Identifier '${identifierName}' has already been declared.`,\n YieldBindingIdentifier:\n \"Can not use 'yield' as identifier inside a generator.\",\n YieldInParameter: \"Yield expression is not allowed in formal parameters.\",\n ZeroDigitNumericSeparator:\n \"Numeric separator can not be used after leading 0.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error\";\n\nexport default {\n StrictDelete: \"Deleting local variable in strict mode.\",\n\n // `referenceName` is the StringValue[1] of an IdentifierReference[2], which\n // is represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-IdentifierReference\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArguments: ({ referenceName }: { referenceName: string }) =>\n `Assigning to '${referenceName}' in strict mode.`,\n\n // `bindingName` is the StringValue[1] of a BindingIdentifier[2], which is\n // represented as just an `Identifier`[3] in the Babel AST.\n // 1. https://tc39.es/ecma262/#sec-static-semantics-stringvalue\n // 2. https://tc39.es/ecma262/#prod-BindingIdentifier\n // 3. https://github.com/babel/babel/blob/main/packages/babel-parser/ast/spec.md#identifier\n StrictEvalArgumentsBinding: ({ bindingName }: { bindingName: string }) =>\n `Binding '${bindingName}' in strict mode.`,\n\n StrictFunction:\n \"In strict mode code, functions can only be declared at top level or inside a block.\",\n\n StrictNumericEscape: \"The only valid numeric escape in strict mode is '\\\\0'.\",\n\n StrictOctalLiteral: \"Legacy octal literals are not allowed in strict mode.\",\n\n StrictWith: \"'with' in strict mode.\",\n} satisfies ParseErrorTemplates;\n","import type { ParseErrorTemplates } from \"../parse-error.ts\";\nimport toNodeDescription from \"./to-node-description.ts\";\n\nexport const UnparenthesizedPipeBodyDescriptions = new Set([\n \"ArrowFunctionExpression\",\n \"AssignmentExpression\",\n \"ConditionalExpression\",\n \"YieldExpression\",\n] as const);\n\ntype GetSetMemberType<T extends Set<any>> = T extends Set<infer M>\n ? M\n : unknown;\n\ntype UnparenthesizedPipeBodyTypes = GetSetMemberType<\n typeof UnparenthesizedPipeBodyDescriptions\n>;\n\nexport default {\n // This error is only used by the smart-mix proposal\n PipeBodyIsTighter:\n \"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:\n 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n PipeTopicUnbound:\n \"Topic reference is unbound; it must be inside a pipe body.\",\n PipeTopicUnconfiguredToken: ({ token }: { token: string }) =>\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:\n \"Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.\",\n PipeUnparenthesizedBody: ({ type }: { type: UnparenthesizedPipeBodyTypes }) =>\n `Hack-style pipe body cannot be an unparenthesized ${toNodeDescription({\n type,\n })}; please wrap it in parentheses.`,\n\n // Messages whose codes start with “Pipeline” or “PrimaryTopic”\n // are retained for backwards compatibility\n // with the deprecated smart-mix pipe operator proposal plugin.\n // They are subject to removal in a future major version.\n PipelineBodyNoArrow:\n 'Unexpected arrow \"=>\" after pipeline body; arrow function in pipeline body must be parenthesized.',\n PipelineBodySequenceExpression:\n \"Pipeline body may not be a comma-separated sequence expression.\",\n PipelineHeadSequenceExpression:\n \"Pipeline head should not be a comma-separated sequence expression.\",\n PipelineTopicUnused:\n \"Pipeline is in topic style but does not use topic reference.\",\n PrimaryTopicNotAllowed:\n \"Topic reference was used in a lexical context without topic binding.\",\n PrimaryTopicRequiresSmartPipeline:\n 'Topic reference is used, but the pipelineOperator plugin was not passed a \"proposal\": \"hack\" or \"smart\" option.',\n} satisfies ParseErrorTemplates;\n","import { Position } from \"./util/location.ts\";\nimport type { Undone } from \"./parser/node.ts\";\nimport type { Node } from \"./types.ts\";\n\ntype SyntaxPlugin =\n | \"flow\"\n | \"typescript\"\n | \"jsx\"\n | \"pipelineOperator\"\n | \"placeholders\";\n\ntype ParseErrorCode =\n | \"BABEL_PARSER_SYNTAX_ERROR\"\n | \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\";\n\n// Babel uses \"normal\" SyntaxErrors for it's errors, but adds some extra\n// functionality. This functionality is defined in the\n// `ParseErrorSpecification` interface below. We may choose to change to someday\n// give our errors their own full-blown class, but until then this allow us to\n// keep all the desirable properties of SyntaxErrors (like their name in stack\n// traces, etc.), and also allows us to punt on any publicly facing\n// class-hierarchy decisions until Babel 8.\ninterface ParseErrorSpecification<ErrorDetails> {\n // Look, these *could* be readonly, but then Flow complains when we initially\n // set them. We could do a whole dance and make a special interface that's not\n // readonly for when we create the error, then cast it to the readonly\n // interface for public use, but the previous implementation didn't have them\n // as readonly, so let's just not worry about it for now.\n code: ParseErrorCode;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n missingPlugin?: string | string[];\n loc: Position;\n details: ErrorDetails;\n\n // We should consider removing this as it now just contains the same\n // information as `loc.index`.\n // pos: number;\n}\n\nexport type ParseError<ErrorDetails> = SyntaxError &\n ParseErrorSpecification<ErrorDetails>;\n\n// By `ParseErrorConstructor`, we mean something like the new-less style\n// `ErrorConstructor`[1], since `ParseError`'s are not themselves actually\n// separate classes from `SyntaxError`'s.\n//\n// 1. https://github.com/microsoft/TypeScript/blob/v4.5.5/lib/lib.es5.d.ts#L1027\nexport type ParseErrorConstructor<ErrorDetails> = (a: {\n loc: Position;\n details: ErrorDetails;\n}) => ParseError<ErrorDetails>;\n\ntype ToMessage<ErrorDetails> = (self: ErrorDetails) => string;\n\ntype ParseErrorCredentials<ErrorDetails> = {\n code: string;\n reasonCode: string;\n syntaxPlugin?: SyntaxPlugin;\n toMessage: ToMessage<ErrorDetails>;\n};\n\nfunction defineHidden(obj: object, key: string, value: unknown) {\n Object.defineProperty(obj, key, {\n enumerable: false,\n configurable: true,\n value,\n });\n}\n\nfunction toParseErrorConstructor<ErrorDetails extends object>({\n toMessage,\n ...properties\n}: ParseErrorCredentials<ErrorDetails>): ParseErrorConstructor<ErrorDetails> {\n type ConstructorArgument = {\n loc: Position;\n details: ErrorDetails;\n };\n\n return function constructor({ loc, details }: ConstructorArgument) {\n const error = new SyntaxError();\n Object.assign(error, properties, { loc, pos: loc.index });\n if (\"missingPlugin\" in details) {\n Object.assign(error, { missingPlugin: details.missingPlugin });\n }\n\n type Overrides = {\n loc?: Position;\n details?: ErrorDetails;\n };\n defineHidden(error, \"clone\", function clone(overrides: Overrides = {}) {\n const { line, column, index } = overrides.loc ?? loc;\n return constructor({\n loc: new Position(line, column, index),\n details: { ...details, ...overrides.details },\n });\n });\n\n defineHidden(error, \"details\", details);\n\n Object.defineProperty(error, \"message\", {\n configurable: true,\n get(this: ParseError<ErrorDetails>): string {\n const message = `${toMessage(details)} (${loc.line}:${loc.column})`;\n this.message = message;\n return message;\n },\n set(value: string) {\n Object.defineProperty(this, \"message\", { value, writable: true });\n },\n });\n\n return error as ParseError<ErrorDetails>;\n };\n}\n\ntype ParseErrorTemplate =\n | string\n | ToMessage<any>\n | { message: string | ToMessage<any>; code?: ParseErrorCode };\n\nexport type ParseErrorTemplates = { [reasonCode: string]: ParseErrorTemplate };\n\n// This is the templated form of `ParseErrorEnum`.\n//\n// Note: We could factor out the return type calculation into something like\n// `ParseErrorConstructor<T extends ParseErrorTemplates>`, and then we could\n// reuse it in the non-templated form of `ParseErrorEnum`, but TypeScript\n// doesn't seem to drill down that far when showing you the computed type of\n// an object in an editor, so we'll leave it inlined for now.\nexport function ParseErrorEnum(a: TemplateStringsArray): <\n T extends ParseErrorTemplates,\n>(\n parseErrorTemplates: T,\n) => {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage<any> }\n ? T[K][\"message\"] extends ToMessage<any>\n ? Parameters<T[K][\"message\"]>[0]\n : {}\n : T[K] extends ToMessage<any>\n ? Parameters<T[K]>[0]\n : {}\n >;\n};\n\nexport function ParseErrorEnum<T extends ParseErrorTemplates>(\n parseErrorTemplates: T,\n syntaxPlugin?: SyntaxPlugin,\n): {\n [K in keyof T]: ParseErrorConstructor<\n T[K] extends { message: string | ToMessage<any> }\n ? T[K][\"message\"] extends ToMessage<any>\n ? Parameters<T[K][\"message\"]>[0]\n : {}\n : T[K] extends ToMessage<any>\n ? Parameters<T[K]>[0]\n : {}\n >;\n};\n\n// You call `ParseErrorEnum` with a mapping from `ReasonCode`'s to either:\n//\n// 1. a static error message,\n// 2. `toMessage` functions that define additional necessary `details` needed by\n// the `ParseError`, or\n// 3. Objects that contain a `message` of one of the above and overridden `code`\n// and/or `reasonCode`:\n//\n// ParseErrorEnum `optionalSyntaxPlugin` ({\n// ErrorWithStaticMessage: \"message\",\n// ErrorWithDynamicMessage: ({ type } : { type: string }) => `${type}`),\n// ErrorWithOverriddenCodeAndOrReasonCode: {\n// message: ({ type }: { type: string }) => `${type}`),\n// code: \"AN_ERROR_CODE\",\n// ...(BABEL_8_BREAKING ? { } : { reasonCode: \"CustomErrorReasonCode\" })\n// }\n// });\n//\nexport function ParseErrorEnum(\n argument: TemplateStringsArray | ParseErrorTemplates,\n syntaxPlugin?: SyntaxPlugin,\n) {\n // If the first parameter is an array, that means we were called with a tagged\n // template literal. Extract the syntaxPlugin from this, and call again in\n // the \"normalized\" form.\n if (Array.isArray(argument)) {\n return (parseErrorTemplates: ParseErrorTemplates) =>\n ParseErrorEnum(parseErrorTemplates, argument[0]);\n }\n\n const ParseErrorConstructors = {} as Record<\n string,\n ParseErrorConstructor<unknown>\n >;\n\n for (const reasonCode of Object.keys(argument)) {\n const template = (argument as ParseErrorTemplates)[reasonCode];\n const { message, ...rest } =\n typeof template === \"string\"\n ? { message: () => template }\n : typeof template === \"function\"\n ? { message: template }\n : template;\n const toMessage = typeof message === \"string\" ? () => message : message;\n\n ParseErrorConstructors[reasonCode] = toParseErrorConstructor({\n code: \"BABEL_PARSER_SYNTAX_ERROR\",\n reasonCode,\n toMessage,\n ...(syntaxPlugin ? { syntaxPlugin } : {}),\n ...rest,\n });\n }\n\n return ParseErrorConstructors;\n}\n\nexport type RaiseProperties<ErrorDetails> = {\n at: Position | Undone<Node>;\n} & ErrorDetails;\n\nimport ModuleErrors from \"./parse-error/module-errors.ts\";\nimport StandardErrors from \"./parse-error/standard-errors.ts\";\nimport StrictModeErrors from \"./parse-error/strict-mode-errors.ts\";\nimport PipelineOperatorErrors from \"./parse-error/pipeline-operator-errors.ts\";\n\nexport const Errors = {\n ...ParseErrorEnum(ModuleErrors),\n ...ParseErrorEnum(StandardErrors),\n ...ParseErrorEnum(StrictModeErrors),\n ...ParseErrorEnum`pipelineOperator`(PipelineOperatorErrors),\n};\n\nexport type { LValAncestor } from \"./parse-error/standard-errors.ts\";\n","import type { TokenType } from \"../tokenizer/types.ts\";\nimport type Parser from \"../parser/index.ts\";\nimport type { ExpressionErrors } from \"../parser/util.ts\";\nimport type * as N from \"../types.ts\";\nimport type { Node as NodeType, NodeBase, File } from \"../types.ts\";\nimport type { Position } from \"../util/location.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { BindingFlag } from \"../util/scopeflags.ts\";\n\nconst { defineProperty } = Object;\nconst toUnenumerable = (object: any, key: string) =>\n defineProperty(object, key, { enumerable: false, value: object[key] });\n\nfunction toESTreeLocation(node: any) {\n node.loc.start && toUnenumerable(node.loc.start, \"index\");\n node.loc.end && toUnenumerable(node.loc.end, \"index\");\n\n return node;\n}\n\nexport default (superClass: typeof Parser) =>\n class ESTreeParserMixin extends superClass implements Parser {\n parse(): File {\n const file = toESTreeLocation(super.parse());\n\n if (this.options.tokens) {\n file.tokens = file.tokens.map(toESTreeLocation);\n }\n\n return file;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseRegExpLiteral({ pattern, flags }): N.EstreeRegExpLiteral {\n let regex: RegExp | null = null;\n try {\n regex = new RegExp(pattern, flags);\n } catch (e) {\n // In environments that don't support these flags value will\n // be null as the regex can't be represented natively.\n }\n const node = this.estreeParseLiteral<N.EstreeRegExpLiteral>(regex);\n node.regex = { pattern, flags };\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseBigIntLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/es2020.md#bigintliteral\n let bigInt: BigInt | null;\n try {\n bigInt = BigInt(value);\n } catch {\n bigInt = null;\n }\n const node = this.estreeParseLiteral<N.EstreeBigIntLiteral>(bigInt);\n node.bigint = String(node.value || value);\n\n return node;\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseDecimalLiteral(value: any): N.Node {\n // https://github.com/estree/estree/blob/master/experimental/decimal.md\n // todo: use BigDecimal when node supports it.\n const decimal: null = null;\n const node = this.estreeParseLiteral(decimal);\n node.decimal = String(node.value || value);\n\n return node;\n }\n\n estreeParseLiteral<T extends N.Node>(value: any) {\n // @ts-expect-error ESTree plugin changes node types\n return this.parseLiteral<T>(value, \"Literal\");\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseStringLiteral(value: any): N.Node {\n return this.estreeParseLiteral(value);\n }\n\n parseNumericLiteral(value: any): any {\n return this.estreeParseLiteral(value);\n }\n\n // @ts-expect-error ESTree plugin changes node types\n parseNullLiteral(): N.Node {\n return this.estreeParseLiteral(null);\n }\n\n parseBooleanLiteral(value: boolean): N.BooleanLiteral {\n return this.estreeParseLiteral(value);\n }\n\n // Cast a Directive to an ExpressionStatement. Mutates the input Directive.\n directiveToStmt(directive: N.Directive): N.ExpressionStatement {\n const expression = directive.value as any as N.EstreeLiteral;\n delete directive.value;\n\n expression.type = \"Literal\";\n // @ts-expect-error N.EstreeLiteral.raw is not defined.\n expression.raw = expression.extra.raw;\n expression.value = expression.extra.expressionValue;\n\n const stmt = directive as any as N.ExpressionStatement;\n stmt.type = \"ExpressionStatement\";\n stmt.expression = expression;\n // @ts-expect-error N.ExpressionStatement.directive is not defined\n stmt.directive = expression.extra.rawValue;\n\n delete expression.extra;\n\n return stmt;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: boolean): void {\n super.initFunction(node, isAsync);\n node.expression = false;\n }\n\n checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\n if (node != null && this.isObjectProperty(node)) {\n // @ts-expect-error plugin typings\n this.checkDeclaration((node as unknown as N.EstreeProperty).value);\n } else {\n super.checkDeclaration(node);\n }\n }\n\n getObjectOrClassMethodParams(method: N.ObjectMethod | N.ClassMethod) {\n return (method as any as N.EstreeProperty | N.EstreeMethodDefinition)\n .value.params;\n }\n\n isValidDirective(stmt: N.Statement): boolean {\n return (\n stmt.type === \"ExpressionStatement\" &&\n stmt.expression.type === \"Literal\" &&\n typeof stmt.expression.value === \"string\" &&\n !stmt.expression.extra?.parenthesized\n );\n }\n\n parseBlockBody(\n node: N.BlockStatementLike,\n allowDirectives: boolean | undefined | null,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void {\n super.parseBlockBody(\n node,\n allowDirectives,\n topLevel,\n end,\n afterBlockParse,\n );\n\n const directiveStatements = node.directives.map(d =>\n this.directiveToStmt(d),\n );\n // @ts-expect-error estree plugin typings\n node.body = directiveStatements.concat(node.body);\n delete node.directives;\n }\n\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n this.parseMethod(\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n \"ClassMethod\",\n true,\n );\n if (method.typeParameters) {\n // @ts-expect-error mutate AST types\n method.value.typeParameters = method.typeParameters;\n delete method.typeParameters;\n }\n classBody.body.push(method);\n }\n\n parsePrivateName(): any {\n const node = super.parsePrivateName();\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return node;\n }\n }\n return this.convertPrivateNameToPrivateIdentifier(node);\n }\n\n convertPrivateNameToPrivateIdentifier(\n node: N.PrivateName,\n ): N.EstreePrivateIdentifier {\n const name = super.getPrivateNameSV(node);\n node = node as any;\n delete node.id;\n // @ts-expect-error mutate AST types\n node.name = name;\n // @ts-expect-error mutate AST types\n node.type = \"PrivateIdentifier\";\n return node as unknown as N.EstreePrivateIdentifier;\n }\n\n isPrivateName(node: N.Node): boolean {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.isPrivateName(node);\n }\n }\n return node.type === \"PrivateIdentifier\";\n }\n\n getPrivateNameSV(node: N.Node): string {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return super.getPrivateNameSV(node);\n }\n }\n return node.name;\n }\n\n // @ts-expect-error plugin may override interfaces\n parseLiteral<T extends N.Literal>(value: any, type: T[\"type\"]): T {\n const node = super.parseLiteral<T>(value, type);\n // @ts-expect-error mutating AST types\n node.raw = node.extra.raw;\n delete node.extra;\n\n return node;\n }\n\n parseFunctionBody(\n node: N.Function,\n allowExpression?: boolean | null,\n isMethod: boolean = false,\n ): void {\n super.parseFunctionBody(node, allowExpression, isMethod);\n node.expression = node.body.type !== \"BlockStatement\";\n }\n\n // @ts-expect-error plugin may override interfaces\n parseMethod<\n T extends N.ClassPrivateMethod | N.ObjectMethod | N.ClassMethod,\n >(\n node: Undone<T>,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: T[\"type\"],\n inClassScope: boolean = false,\n ): N.EstreeMethodDefinition {\n let funcNode = this.startNode<N.MethodLike>();\n funcNode.kind = node.kind; // provide kind, so super method correctly sets state\n funcNode = super.parseMethod(\n // @ts-expect-error todo(flow->ts)\n funcNode,\n isGenerator,\n isAsync,\n isConstructor,\n allowDirectSuper,\n type,\n inClassScope,\n );\n // @ts-expect-error mutate AST types\n funcNode.type = \"FunctionExpression\";\n delete funcNode.kind;\n // @ts-expect-error mutate AST types\n node.value = funcNode;\n if (type === \"ClassPrivateMethod\") {\n node.computed = false;\n }\n return this.finishNode(\n // @ts-expect-error cast methods to estree types\n node as Undone<N.EstreeMethodDefinition>,\n \"MethodDefinition\",\n );\n }\n\n parseClassProperty(...args: [N.ClassProperty]): any {\n const propertyNode = super.parseClassProperty(...args) as any;\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as N.EstreePropertyDefinition;\n }\n }\n propertyNode.type = \"PropertyDefinition\";\n return propertyNode as N.EstreePropertyDefinition;\n }\n\n parseClassPrivateProperty(...args: [N.ClassPrivateProperty]): any {\n const propertyNode = super.parseClassPrivateProperty(...args) as any;\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.getPluginOption(\"estree\", \"classFeatures\")) {\n return propertyNode as N.EstreePropertyDefinition;\n }\n }\n propertyNode.type = \"PropertyDefinition\";\n propertyNode.computed = false;\n return propertyNode as N.EstreePropertyDefinition;\n }\n\n parseObjectMethod(\n prop: N.ObjectMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n ): N.ObjectMethod | undefined | null {\n const node: N.EstreeProperty = super.parseObjectMethod(\n prop,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n ) as any;\n\n if (node) {\n node.type = \"Property\";\n if ((node as any as N.ClassMethod).kind === \"method\") {\n node.kind = \"init\";\n }\n node.shorthand = false;\n }\n\n return node as any;\n }\n\n parseObjectProperty(\n prop: N.ObjectProperty,\n startLoc: Position | undefined | null,\n isPattern: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectProperty | undefined | null {\n const node: N.EstreeProperty = super.parseObjectProperty(\n prop,\n startLoc,\n isPattern,\n refExpressionErrors,\n ) as any;\n\n if (node) {\n node.kind = \"init\";\n node.type = \"Property\";\n }\n\n return node as any;\n }\n\n isValidLVal(\n type: string,\n isUnparenthesizedInAssign: boolean,\n binding: BindingFlag,\n ) {\n return type === \"Property\"\n ? \"value\"\n : super.isValidLVal(type, isUnparenthesizedInAssign, binding);\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n if (node != null && this.isObjectProperty(node)) {\n return this.isAssignable(node.value, isBinding);\n }\n return super.isAssignable(node, isBinding);\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): void {\n if (node != null && this.isObjectProperty(node)) {\n const { key, value } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(\n this.getPrivateNameSV(key),\n key.loc.start,\n );\n }\n this.toAssignable(value, isLHS);\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n\n toAssignableObjectExpressionProp(\n prop: N.Node,\n isLast: boolean,\n isLHS: boolean,\n ) {\n if (prop.kind === \"get\" || prop.kind === \"set\") {\n this.raise(Errors.PatternHasAccessor, { at: prop.key });\n } else if (prop.method) {\n this.raise(Errors.PatternHasMethod, { at: prop.key });\n } else {\n super.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n }\n }\n\n finishCallExpression<T extends N.CallExpression | N.OptionalCallExpression>(\n unfinished: Undone<T>,\n optional: boolean,\n ): T {\n const node = super.finishCallExpression(unfinished, optional);\n\n if (node.callee.type === \"Import\") {\n (node as N.Node as N.EstreeImportExpression).type = \"ImportExpression\";\n (node as N.Node as N.EstreeImportExpression).source = node.arguments[0];\n if (\n this.hasPlugin(\"importAttributes\") ||\n this.hasPlugin(\"importAssertions\")\n ) {\n (node as N.Node as N.EstreeImportExpression).options =\n node.arguments[1] ?? null;\n // compatibility with previous ESTree AST\n (node as N.Node as N.EstreeImportExpression).attributes =\n node.arguments[1] ?? null;\n }\n // arguments isn't optional in the type definition\n delete node.arguments;\n // callee isn't optional in the type definition\n delete node.callee;\n }\n\n return node;\n }\n\n toReferencedArguments(\n node:\n | N.CallExpression\n | N.OptionalCallExpression\n | N.EstreeImportExpression,\n /* isParenthesizedExpr?: boolean, */\n ) {\n // ImportExpressions do not have an arguments array.\n if (node.type === \"ImportExpression\") {\n return;\n }\n\n super.toReferencedArguments(node);\n }\n\n parseExport(\n unfinished: Undone<N.AnyExport>,\n decorators: N.Decorator[] | null,\n ) {\n const exportStartLoc = this.state.lastTokStartLoc;\n const node = super.parseExport(unfinished, decorators);\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n // @ts-expect-error mutating AST types\n node.exported = null;\n break;\n\n case \"ExportNamedDeclaration\":\n if (\n node.specifiers.length === 1 &&\n // @ts-expect-error mutating AST types\n node.specifiers[0].type === \"ExportNamespaceSpecifier\"\n ) {\n // @ts-expect-error mutating AST types\n node.type = \"ExportAllDeclaration\";\n // @ts-expect-error mutating AST types\n node.exported = node.specifiers[0].exported;\n delete node.specifiers;\n }\n\n // fallthrough\n case \"ExportDefaultDeclaration\":\n {\n const { declaration } = node;\n if (\n declaration?.type === \"ClassDeclaration\" &&\n declaration.decorators?.length > 0 &&\n // decorator comes before export\n declaration.start === node.start\n ) {\n this.resetStartLocation(\n node,\n // For compatibility with ESLint's keyword-spacing rule, which assumes that an\n // export declaration must start with export.\n // https://github.com/babel/babel/issues/15085\n // Here we reset export declaration's start to be the start of the export token\n exportStartLoc,\n );\n }\n }\n\n break;\n }\n\n return node;\n }\n\n parseSubscript(\n base: N.Expression,\n startLoc: Position,\n noCalls: boolean | undefined | null,\n state: N.ParseSubscriptState,\n ) {\n const node = super.parseSubscript(base, startLoc, noCalls, state);\n\n if (state.optionalChainMember) {\n // https://github.com/estree/estree/blob/master/es2020.md#chainexpression\n if (\n node.type === \"OptionalMemberExpression\" ||\n node.type === \"OptionalCallExpression\"\n ) {\n node.type = node.type.substring(8); // strip Optional prefix\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 (\n node.type === \"MemberExpression\" ||\n node.type === \"CallExpression\"\n ) {\n node.optional = false;\n }\n\n return node;\n }\n\n isOptionalMemberExpression(node: N.Node) {\n if (node.type === \"ChainExpression\") {\n return node.expression.type === \"MemberExpression\";\n }\n return super.isOptionalMemberExpression(node);\n }\n\n hasPropertyAsPrivateName(node: N.Node): boolean {\n if (node.type === \"ChainExpression\") {\n node = node.expression;\n }\n return super.hasPropertyAsPrivateName(node);\n }\n\n // @ts-expect-error override interfaces\n isObjectProperty(node: N.Node): boolean {\n return node.type === \"Property\" && node.kind === \"init\" && !node.method;\n }\n\n isObjectMethod(node: N.Node): boolean {\n return node.method || node.kind === \"get\" || node.kind === \"set\";\n }\n\n finishNodeAt<T extends NodeType>(\n node: Undone<T>,\n type: T[\"type\"],\n endLoc: Position,\n ): T {\n return toESTreeLocation(super.finishNodeAt(node, type, endLoc));\n }\n\n resetStartLocation(node: N.Node, startLoc: Position) {\n super.resetStartLocation(node, startLoc);\n toESTreeLocation(node);\n }\n\n resetEndLocation(\n node: NodeBase,\n endLoc: Position = this.state.lastTokEndLoc,\n ): void {\n super.resetEndLocation(node, endLoc);\n toESTreeLocation(node);\n }\n };\n","// The token context is used in JSX plugin to track\n// jsx tag / jsx text / normal JavaScript expression\n\nexport class TokContext {\n constructor(token: string, preserveSpace?: boolean) {\n this.token = token;\n this.preserveSpace = !!preserveSpace;\n }\n\n token: string;\n preserveSpace: boolean;\n}\n\nconst types: {\n [key: string]: TokContext;\n} = {\n brace: new TokContext(\"{\"), // normal JavaScript expression\n j_oTag: new TokContext(\"<tag\"), // JSX opening tag\n j_cTag: new TokContext(\"</tag\"), // JSX closing tag\n j_expr: new TokContext(\"<tag>...</tag>\", true), // JSX expressions\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n types.template = new TokContext(\"`\", true);\n}\n\nexport { types };\n","import { types as tc, type TokContext } from \"./context.ts\";\n// ## Token types\n\n// The assignment of fine-grained, information-carrying type objects\n// allows the tokenizer to store the information it has about a\n// token in a way that is very cheap for the parser to look up.\n\n// All token type variables start with an underscore, to make them\n// easy to recognize.\n\n// The `beforeExpr` property is used to disambiguate between 1) binary\n// expression (<) and JSX Tag start (<name>); 2) object literal and JSX\n// texts. It is set on the `updateContext` function in the JSX plugin.\n\n// The `startsExpr` property is used to determine whether an expression\n// may be the “argument” subexpression of a `yield` expression or\n// `yield` statement. It is set on all token types that may be at the\n// start of a subexpression.\n\n// `isLoop` marks a keyword as starting a loop, which is important\n// to know when parsing a label, in order to allow or disallow\n// continue jumps to that label.\n\nconst beforeExpr = true;\nconst startsExpr = true;\nconst isLoop = true;\nconst isAssign = true;\nconst prefix = true;\nconst postfix = true;\n\ntype TokenOptions = {\n keyword?: string;\n beforeExpr?: boolean;\n startsExpr?: boolean;\n rightAssociative?: boolean;\n isLoop?: boolean;\n isAssign?: boolean;\n prefix?: boolean;\n postfix?: boolean;\n binop?: number | null;\n};\n\n// Internally the tokenizer stores token as a number\nexport type TokenType = number;\n\n// The `ExportedTokenType` is exported via `tokTypes` and accessible\n// when `tokens: true` is enabled. Unlike internal token type, it provides\n// metadata of the tokens.\nexport class ExportedTokenType {\n label: string;\n keyword: string | undefined | null;\n beforeExpr: boolean;\n startsExpr: boolean;\n rightAssociative: boolean;\n isLoop: boolean;\n isAssign: boolean;\n prefix: boolean;\n postfix: boolean;\n binop: number | undefined | null;\n // todo(Babel 8): remove updateContext from exposed token layout\n declare updateContext:\n | ((context: Array<TokContext>) => void)\n | undefined\n | null;\n\n constructor(label: string, conf: TokenOptions = {}) {\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 if (!process.env.BABEL_8_BREAKING) {\n this.updateContext = null;\n }\n }\n}\n\n// A map from keyword/keyword-like string value to the token type\nexport const keywords = new Map<string, TokenType>();\n\nfunction createKeyword(name: string, options: TokenOptions = {}): TokenType {\n options.keyword = name;\n const token = createToken(name, options);\n keywords.set(name, token);\n return token;\n}\n\nfunction createBinop(name: string, binop: number) {\n return createToken(name, { beforeExpr, binop });\n}\n\nlet tokenTypeCounter = -1;\nexport const tokenTypes: ExportedTokenType[] = [];\nconst tokenLabels: string[] = [];\nconst tokenBinops: number[] = [];\nconst tokenBeforeExprs: boolean[] = [];\nconst tokenStartsExprs: boolean[] = [];\nconst tokenPrefixes: boolean[] = [];\n\nfunction createToken(name: string, options: TokenOptions = {}): TokenType {\n ++tokenTypeCounter;\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n tokenTypes.push(new ExportedTokenType(name, options));\n\n return tokenTypeCounter;\n}\n\nfunction createKeywordLike(\n name: string,\n options: TokenOptions = {},\n): TokenType {\n ++tokenTypeCounter;\n keywords.set(name, tokenTypeCounter);\n tokenLabels.push(name);\n tokenBinops.push(options.binop ?? -1);\n tokenBeforeExprs.push(options.beforeExpr ?? false);\n tokenStartsExprs.push(options.startsExpr ?? false);\n tokenPrefixes.push(options.prefix ?? false);\n // In the exported token type, we set the label as \"name\" for backward compatibility with Babel 7\n tokenTypes.push(new ExportedTokenType(\"name\", options));\n\n return tokenTypeCounter;\n}\n\n// For performance the token type helpers depend on the following declarations order.\n// When adding new token types, please also check if the token helpers need update.\n\nexport type InternalTokenTypes = typeof tt;\n\nexport const tt = {\n // Punctuation token types.\n bracketL: createToken(\"[\", { beforeExpr, startsExpr }),\n bracketHashL: createToken(\"#[\", { beforeExpr, startsExpr }),\n bracketBarL: createToken(\"[|\", { beforeExpr, startsExpr }),\n bracketR: createToken(\"]\"),\n bracketBarR: createToken(\"|]\"),\n braceL: createToken(\"{\", { beforeExpr, startsExpr }),\n braceBarL: createToken(\"{|\", { beforeExpr, startsExpr }),\n braceHashL: createToken(\"#{\", { beforeExpr, startsExpr }),\n braceR: createToken(\"}\"),\n braceBarR: createToken(\"|}\"),\n parenL: createToken(\"(\", { beforeExpr, startsExpr }),\n parenR: createToken(\")\"),\n comma: createToken(\",\", { beforeExpr }),\n semi: createToken(\";\", { beforeExpr }),\n colon: createToken(\":\", { beforeExpr }),\n doubleColon: createToken(\"::\", { beforeExpr }),\n dot: createToken(\".\"),\n question: createToken(\"?\", { beforeExpr }),\n questionDot: createToken(\"?.\"),\n arrow: createToken(\"=>\", { beforeExpr }),\n template: createToken(\"template\"),\n ellipsis: createToken(\"...\", { beforeExpr }),\n backQuote: createToken(\"`\", { startsExpr }),\n dollarBraceL: createToken(\"${\", { beforeExpr, startsExpr }),\n // start: isTemplate\n templateTail: createToken(\"...`\", { startsExpr }),\n templateNonTail: createToken(\"...${\", { beforeExpr, startsExpr }),\n // end: isTemplate\n at: createToken(\"@\"),\n hash: createToken(\"#\", { startsExpr }),\n\n // Special hashbang token.\n interpreterDirective: createToken(\"#!...\"),\n\n // Operators. These carry several kinds of properties to help the\n // parser use them properly (the presence of these properties is\n // what categorizes them as operators).\n //\n // `binop`, when present, specifies that this operator is a binary\n // operator, and will refer to its precedence.\n //\n // `prefix` and `postfix` mark the operator as a prefix or postfix\n // unary operator.\n //\n // `isAssign` marks all of `=`, `+=`, `-=` etcetera, which act as\n // binary operators with a very low precedence, that should result\n // in AssignmentExpression nodes.\n\n // start: isAssign\n eq: createToken(\"=\", { beforeExpr, isAssign }),\n assign: createToken(\"_=\", { beforeExpr, isAssign }),\n slashAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // These are only needed to support % and ^ as a Hack-pipe topic token.\n // When the proposal settles on a token, the others can be merged with\n // tt.assign.\n xorAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n moduloAssign: createToken(\"_=\", { beforeExpr, isAssign }),\n // end: isAssign\n\n incDec: createToken(\"++/--\", { prefix, postfix, startsExpr }),\n bang: createToken(\"!\", { beforeExpr, prefix, startsExpr }),\n tilde: createToken(\"~\", { beforeExpr, prefix, startsExpr }),\n\n // More possible topic tokens.\n // When the proposal settles on a token, at least one of these may be removed.\n doubleCaret: createToken(\"^^\", { startsExpr }),\n doubleAt: createToken(\"@@\", { startsExpr }),\n\n // start: isBinop\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(\"+/-\", { beforeExpr, binop: 9, prefix, startsExpr }),\n // startsExpr: required by v8intrinsic plugin\n modulo: createToken(\"%\", { binop: 10, startsExpr }),\n // unset `beforeExpr` as it can be `function *`\n star: createToken(\"*\", { binop: 10 }),\n slash: createBinop(\"/\", 10),\n exponent: createToken(\"**\", {\n beforeExpr,\n binop: 11,\n rightAssociative: true,\n }),\n\n // Keywords\n // Don't forget to update packages/babel-helper-validator-identifier/src/keyword.js\n // when new keywords are added\n // start: isLiteralPropertyName\n // start: isKeyword\n _in: createKeyword(\"in\", { beforeExpr, binop: 7 }),\n _instanceof: createKeyword(\"instanceof\", { beforeExpr, binop: 7 }),\n // end: isBinop\n _break: createKeyword(\"break\"),\n _case: createKeyword(\"case\", { beforeExpr }),\n _catch: createKeyword(\"catch\"),\n _continue: createKeyword(\"continue\"),\n _debugger: createKeyword(\"debugger\"),\n _default: createKeyword(\"default\", { beforeExpr }),\n _else: createKeyword(\"else\", { beforeExpr }),\n _finally: createKeyword(\"finally\"),\n _function: createKeyword(\"function\", { startsExpr }),\n _if: createKeyword(\"if\"),\n _return: createKeyword(\"return\", { beforeExpr }),\n _switch: createKeyword(\"switch\"),\n _throw: createKeyword(\"throw\", { beforeExpr, prefix, startsExpr }),\n _try: createKeyword(\"try\"),\n _var: createKeyword(\"var\"),\n _const: createKeyword(\"const\"),\n _with: createKeyword(\"with\"),\n _new: createKeyword(\"new\", { beforeExpr, startsExpr }),\n _this: createKeyword(\"this\", { startsExpr }),\n _super: createKeyword(\"super\", { startsExpr }),\n _class: createKeyword(\"class\", { startsExpr }),\n _extends: createKeyword(\"extends\", { beforeExpr }),\n _export: createKeyword(\"export\"),\n _import: createKeyword(\"import\", { startsExpr }),\n _null: createKeyword(\"null\", { startsExpr }),\n _true: createKeyword(\"true\", { startsExpr }),\n _false: createKeyword(\"false\", { startsExpr }),\n _typeof: createKeyword(\"typeof\", { beforeExpr, prefix, startsExpr }),\n _void: createKeyword(\"void\", { beforeExpr, prefix, startsExpr }),\n _delete: createKeyword(\"delete\", { beforeExpr, prefix, startsExpr }),\n // start: isLoop\n _do: createKeyword(\"do\", { isLoop, beforeExpr }),\n _for: createKeyword(\"for\", { isLoop }),\n _while: createKeyword(\"while\", { isLoop }),\n // end: isLoop\n // end: isKeyword\n\n // Primary literals\n // start: isIdentifier\n _as: createKeywordLike(\"as\", { startsExpr }),\n _assert: createKeywordLike(\"assert\", { startsExpr }),\n _async: createKeywordLike(\"async\", { startsExpr }),\n _await: createKeywordLike(\"await\", { startsExpr }),\n _defer: createKeywordLike(\"defer\", { startsExpr }),\n _from: createKeywordLike(\"from\", { startsExpr }),\n _get: createKeywordLike(\"get\", { startsExpr }),\n _let: createKeywordLike(\"let\", { startsExpr }),\n _meta: createKeywordLike(\"meta\", { startsExpr }),\n _of: createKeywordLike(\"of\", { startsExpr }),\n _sent: createKeywordLike(\"sent\", { startsExpr }),\n _set: createKeywordLike(\"set\", { startsExpr }),\n _source: createKeywordLike(\"source\", { startsExpr }),\n _static: createKeywordLike(\"static\", { startsExpr }),\n _using: createKeywordLike(\"using\", { startsExpr }),\n _yield: createKeywordLike(\"yield\", { startsExpr }),\n\n // Flow and TypeScript Keywordlike\n _asserts: createKeywordLike(\"asserts\", { startsExpr }),\n _checks: createKeywordLike(\"checks\", { startsExpr }),\n _exports: createKeywordLike(\"exports\", { startsExpr }),\n _global: createKeywordLike(\"global\", { startsExpr }),\n _implements: createKeywordLike(\"implements\", { startsExpr }),\n _intrinsic: createKeywordLike(\"intrinsic\", { startsExpr }),\n _infer: createKeywordLike(\"infer\", { startsExpr }),\n _is: createKeywordLike(\"is\", { startsExpr }),\n _mixins: createKeywordLike(\"mixins\", { startsExpr }),\n _proto: createKeywordLike(\"proto\", { startsExpr }),\n _require: createKeywordLike(\"require\", { startsExpr }),\n _satisfies: createKeywordLike(\"satisfies\", { startsExpr }),\n // start: isTSTypeOperator\n _keyof: createKeywordLike(\"keyof\", { startsExpr }),\n _readonly: createKeywordLike(\"readonly\", { startsExpr }),\n _unique: createKeywordLike(\"unique\", { startsExpr }),\n // end: isTSTypeOperator\n // start: isTSDeclarationStart\n _abstract: createKeywordLike(\"abstract\", { startsExpr }),\n _declare: createKeywordLike(\"declare\", { startsExpr }),\n _enum: createKeywordLike(\"enum\", { startsExpr }),\n _module: createKeywordLike(\"module\", { startsExpr }),\n _namespace: createKeywordLike(\"namespace\", { startsExpr }),\n // start: isFlowInterfaceOrTypeOrOpaque\n _interface: createKeywordLike(\"interface\", { startsExpr }),\n _type: createKeywordLike(\"type\", { startsExpr }),\n // end: isTSDeclarationStart\n _opaque: createKeywordLike(\"opaque\", { startsExpr }),\n // end: isFlowInterfaceOrTypeOrOpaque\n name: createToken(\"name\", { startsExpr }),\n // end: isIdentifier\n\n string: createToken(\"string\", { startsExpr }),\n num: createToken(\"num\", { startsExpr }),\n bigint: createToken(\"bigint\", { startsExpr }),\n decimal: createToken(\"decimal\", { startsExpr }),\n // end: isLiteralPropertyName\n regexp: createToken(\"regexp\", { startsExpr }),\n privateName: createToken(\"#name\", { startsExpr }),\n eof: createToken(\"eof\"),\n\n // jsx plugin\n jsxName: createToken(\"jsxName\"),\n jsxText: createToken(\"jsxText\", { beforeExpr: true }),\n jsxTagStart: createToken(\"jsxTagStart\", { startsExpr: true }),\n jsxTagEnd: createToken(\"jsxTagEnd\"),\n\n // placeholder plugin\n placeholder: createToken(\"%%\", { startsExpr: true }),\n} as const;\n\nexport function tokenIsIdentifier(token: TokenType): boolean {\n return token >= tt._as && token <= tt.name;\n}\n\nexport function tokenKeywordOrIdentifierIsKeyword(token: TokenType): boolean {\n // we can remove the token >= tt._in check when we\n // know a token is either keyword or identifier\n return token <= tt._while;\n}\n\nexport function tokenIsKeywordOrIdentifier(token: TokenType): boolean {\n return token >= tt._in && token <= tt.name;\n}\n\nexport function tokenIsLiteralPropertyName(token: TokenType): boolean {\n return token >= tt._in && token <= tt.decimal;\n}\n\nexport function tokenComesBeforeExpression(token: TokenType): boolean {\n return tokenBeforeExprs[token];\n}\n\nexport function tokenCanStartExpression(token: TokenType): boolean {\n return tokenStartsExprs[token];\n}\n\nexport function tokenIsAssignment(token: TokenType): boolean {\n return token >= tt.eq && token <= tt.moduloAssign;\n}\n\nexport function tokenIsFlowInterfaceOrTypeOrOpaque(token: TokenType): boolean {\n return token >= tt._interface && token <= tt._opaque;\n}\n\nexport function tokenIsLoop(token: TokenType): boolean {\n return token >= tt._do && token <= tt._while;\n}\n\nexport function tokenIsKeyword(token: TokenType): boolean {\n return token >= tt._in && token <= tt._while;\n}\n\nexport function tokenIsOperator(token: TokenType): boolean {\n return token >= tt.pipeline && token <= tt._instanceof;\n}\n\nexport function tokenIsPostfix(token: TokenType): boolean {\n return token === tt.incDec;\n}\n\nexport function tokenIsPrefix(token: TokenType): boolean {\n return tokenPrefixes[token];\n}\n\nexport function tokenIsTSTypeOperator(token: TokenType): boolean {\n return token >= tt._keyof && token <= tt._unique;\n}\n\nexport function tokenIsTSDeclarationStart(token: TokenType): boolean {\n return token >= tt._abstract && token <= tt._type;\n}\n\nexport function tokenLabelName(token: TokenType): string {\n return tokenLabels[token];\n}\n\nexport function tokenOperatorPrecedence(token: TokenType): number {\n return tokenBinops[token];\n}\n\nexport function tokenIsBinaryOperator(token: TokenType): boolean {\n return tokenBinops[token] !== -1;\n}\n\nexport function tokenIsRightAssociative(token: TokenType): boolean {\n return token === tt.exponent;\n}\n\nexport function tokenIsTemplate(token: TokenType): boolean {\n return token >= tt.templateTail && token <= tt.templateNonTail;\n}\n\nexport function getExportedToken(token: TokenType): ExportedTokenType {\n return tokenTypes[token];\n}\n\nexport function isTokenType(obj: any): boolean {\n return typeof obj === \"number\";\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n tokenTypes[tt.braceR].updateContext = context => {\n context.pop();\n };\n\n tokenTypes[tt.braceL].updateContext =\n tokenTypes[tt.braceHashL].updateContext =\n tokenTypes[tt.dollarBraceL].updateContext =\n context => {\n context.push(tc.brace);\n };\n\n tokenTypes[tt.backQuote].updateContext = context => {\n if (context[context.length - 1] === tc.template) {\n context.pop();\n } else {\n context.push(tc.template);\n }\n };\n\n tokenTypes[tt.jsxTagStart].updateContext = context => {\n context.push(tc.j_expr, tc.j_oTag);\n };\n}\n","import * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\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-\\u1c88\\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-\\ua7ca\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7d9\\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\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\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\\u0898-\\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\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\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,68,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,349,41,7,1,79,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,159,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,264,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,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,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,757,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];\n/* prettier-ignore */\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,370,1,81,2,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,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,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,406,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,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,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,983,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\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\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\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","const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n","import * as charCodes from \"charcodes\";\nimport { isIdentifierStart } from \"@babel/helper-validator-identifier\";\n\nexport {\n isIdentifierStart,\n isIdentifierChar,\n isReservedWord,\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\nexport const keywordRelationalOperator = /^in(stanceof)?$/;\n\n// Test whether a current state character code and next character code is @\n\nexport function isIteratorStart(\n current: number,\n next: number,\n next2: number,\n): boolean {\n return (\n current === charCodes.atSign &&\n next === charCodes.atSign &&\n isIdentifierStart(next2)\n );\n}\n\n// This is the comprehensive set of JavaScript reserved words\n// If a word is in this set, it could be a reserved word,\n// depending on sourceType/strictMode/binding info. In other words\n// if a word is not in this set, it is not a reserved word under\n// any circumstance.\nconst reservedWordLikeSet = new Set([\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n // strict\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n // strictBind\n \"eval\",\n \"arguments\",\n // reservedWorkLike\n \"enum\",\n \"await\",\n]);\n\nexport function canBeReservedWord(word: string): boolean {\n return reservedWordLikeSet.has(word);\n}\n","import { ScopeFlag, BindingFlag } from \"./scopeflags.ts\";\nimport type { Position } from \"./location.ts\";\nimport type * as N from \"../types.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type Tokenizer from \"../tokenizer/index.ts\";\n\n// Start an AST node, attaching a start offset.\nexport class Scope {\n declare flags: ScopeFlag;\n // A set of var-declared names in the current lexical scope\n var: Set<string> = new Set();\n // A set of lexically-declared names in the current lexical scope\n lexical: Set<string> = new Set();\n // A set of lexically-declared FunctionDeclaration names in the current lexical scope\n functions: Set<string> = new Set();\n\n constructor(flags: ScopeFlag) {\n this.flags = flags;\n }\n}\n\n// The functions in this module keep track of declared variables in the\n// current scope in order to detect duplicate variable names.\nexport default class ScopeHandler<IScope extends Scope = Scope> {\n parser: Tokenizer;\n scopeStack: Array<IScope> = [];\n inModule: boolean;\n undefinedExports: Map<string, Position> = new Map();\n\n constructor(parser: Tokenizer, inModule: boolean) {\n this.parser = parser;\n this.inModule = inModule;\n }\n\n get inTopLevel() {\n return (this.currentScope().flags & ScopeFlag.PROGRAM) > 0;\n }\n get inFunction() {\n return (this.currentVarScopeFlags() & ScopeFlag.FUNCTION) > 0;\n }\n get allowSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.SUPER) > 0;\n }\n get allowDirectSuper() {\n return (this.currentThisScopeFlags() & ScopeFlag.DIRECT_SUPER) > 0;\n }\n get inClass() {\n return (this.currentThisScopeFlags() & ScopeFlag.CLASS) > 0;\n }\n get inClassAndNotInNonArrowFunction() {\n const flags = this.currentThisScopeFlags();\n return (flags & ScopeFlag.CLASS) > 0 && (flags & ScopeFlag.FUNCTION) === 0;\n }\n get inStaticBlock() {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.STATIC_BLOCK) {\n return true;\n }\n if (flags & (ScopeFlag.VAR | ScopeFlag.CLASS)) {\n // function body, module body, class property initializers\n return false;\n }\n }\n }\n get inNonArrowFunction() {\n return (this.currentThisScopeFlags() & ScopeFlag.FUNCTION) > 0;\n }\n get treatFunctionsAsVar() {\n return this.treatFunctionsAsVarInScope(this.currentScope());\n }\n\n createScope(flags: ScopeFlag): Scope {\n return new Scope(flags);\n }\n\n enter(flags: ScopeFlag) {\n /*:: +createScope: (flags:ScopeFlag) => IScope; */\n // @ts-expect-error This method will be overwritten by subclasses\n this.scopeStack.push(this.createScope(flags));\n }\n\n exit(): ScopeFlag {\n const scope = this.scopeStack.pop();\n return scope.flags;\n }\n\n // The spec says:\n // > At the top level of a function, or script, function declarations are\n // > treated like var declarations rather than like lexical declarations.\n treatFunctionsAsVarInScope(scope: IScope): boolean {\n return !!(\n scope.flags & (ScopeFlag.FUNCTION | ScopeFlag.STATIC_BLOCK) ||\n (!this.parser.inModule && scope.flags & ScopeFlag.PROGRAM)\n );\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n let scope = this.currentScope();\n if (\n bindingType & BindingFlag.SCOPE_LEXICAL ||\n bindingType & BindingFlag.SCOPE_FUNCTION\n ) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n scope.functions.add(name);\n } else {\n scope.lexical.add(name);\n }\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n this.maybeExportDefined(scope, name);\n }\n } else if (bindingType & BindingFlag.SCOPE_VAR) {\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.var.add(name);\n this.maybeExportDefined(scope, name);\n\n if (scope.flags & ScopeFlag.VAR) break;\n }\n }\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n maybeExportDefined(scope: IScope, name: string) {\n if (this.parser.inModule && scope.flags & ScopeFlag.PROGRAM) {\n this.undefinedExports.delete(name);\n }\n }\n\n checkRedeclarationInScope(\n scope: IScope,\n name: string,\n bindingType: BindingFlag,\n loc: Position,\n ) {\n if (this.isRedeclaredInScope(scope, name, bindingType)) {\n this.parser.raise(Errors.VarRedeclaration, {\n at: loc,\n identifierName: name,\n });\n }\n }\n\n isRedeclaredInScope(\n scope: IScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n if (!(bindingType & BindingFlag.KIND_VALUE)) return false;\n\n if (bindingType & BindingFlag.SCOPE_LEXICAL) {\n return (\n scope.lexical.has(name) ||\n scope.functions.has(name) ||\n scope.var.has(name)\n );\n }\n\n if (bindingType & BindingFlag.SCOPE_FUNCTION) {\n return (\n scope.lexical.has(name) ||\n (!this.treatFunctionsAsVarInScope(scope) && scope.var.has(name))\n );\n }\n\n return (\n (scope.lexical.has(name) &&\n // Annex B.3.4\n // https://tc39.es/ecma262/#sec-variablestatements-in-catch-blocks\n !(\n scope.flags & ScopeFlag.SIMPLE_CATCH &&\n scope.lexical.values().next().value === name\n )) ||\n (!this.treatFunctionsAsVarInScope(scope) && scope.functions.has(name))\n );\n }\n\n checkLocalExport(id: N.Identifier) {\n const { name } = id;\n const topLevelScope = this.scopeStack[0];\n if (\n !topLevelScope.lexical.has(name) &&\n !topLevelScope.var.has(name) &&\n // In strict mode, scope.functions will always be empty.\n // Modules are strict by default, but the `scriptMode` option\n // can overwrite this behavior.\n !topLevelScope.functions.has(name)\n ) {\n this.undefinedExports.set(name, id.loc.start);\n }\n }\n\n currentScope(): IScope {\n return this.scopeStack[this.scopeStack.length - 1];\n }\n\n currentVarScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (flags & ScopeFlag.VAR) {\n return flags;\n }\n }\n }\n\n // Could be useful for `arguments`, `this`, `new.target`, `super()`, `super.property`, and `super[property]`.\n currentThisScopeFlags(): ScopeFlag {\n for (let i = this.scopeStack.length - 1; ; i--) {\n const { flags } = this.scopeStack[i];\n if (\n flags & (ScopeFlag.VAR | ScopeFlag.CLASS) &&\n !(flags & ScopeFlag.ARROW)\n ) {\n return flags;\n }\n }\n }\n}\n","import type { Position } from \"../../util/location.ts\";\nimport ScopeHandler, { Scope } from \"../../util/scope.ts\";\nimport { BindingFlag, type ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type * as N from \"../../types.ts\";\n\n// Reference implementation: https://github.com/facebook/flow/blob/23aeb2a2ef6eb4241ce178fde5d8f17c5f747fb5/src/typing/env.ml#L536-L584\nclass FlowScope extends Scope {\n // declare function foo(): type;\n declareFunctions: Set<string> = new Set();\n}\n\nexport default class FlowScopeHandler extends ScopeHandler<FlowScope> {\n createScope(flags: ScopeFlag): FlowScope {\n return new FlowScope(flags);\n }\n\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n const scope = this.currentScope();\n if (bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN) {\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n scope.declareFunctions.add(name);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n }\n\n isRedeclaredInScope(\n scope: FlowScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n if (super.isRedeclaredInScope(scope, name, bindingType)) return true;\n\n if (bindingType & BindingFlag.FLAG_FLOW_DECLARE_FN) {\n return (\n !scope.declareFunctions.has(name) &&\n (scope.lexical.has(name) || scope.functions.has(name))\n );\n }\n\n return false;\n }\n\n checkLocalExport(id: N.Identifier) {\n if (!this.scopeStack[0].declareFunctions.has(id.name)) {\n super.checkLocalExport(id);\n }\n }\n}\n","import type { Options } from \"../options.ts\";\nimport type State from \"../tokenizer/state.ts\";\nimport type { PluginsMap } from \"./index.ts\";\nimport type ScopeHandler from \"../util/scope.ts\";\nimport type ExpressionScopeHandler from \"../util/expression-scope.ts\";\nimport type ClassScopeHandler from \"../util/class-scope.ts\";\nimport type ProductionParameterHandler from \"../util/production-parameter.ts\";\nimport type {\n ParserPluginWithOptions,\n PluginConfig,\n PluginOptions,\n} from \"../typings.ts\";\n\nexport default class BaseParser {\n // Properties set by constructor in index.js\n declare options: Options;\n declare inModule: boolean;\n declare scope: ScopeHandler<any>;\n declare classScope: ClassScopeHandler;\n declare prodParam: ProductionParameterHandler;\n declare expressionScope: ExpressionScopeHandler;\n declare plugins: PluginsMap;\n declare filename: string | undefined | null;\n // Names of exports store. `default` is stored as a name for both\n // `export default foo;` and `export { foo as default };`.\n declare exportedIdentifiers: Set<string>;\n sawUnambiguousESM: boolean = false;\n ambiguousScriptDifferentAst: boolean = false;\n\n // Initialized by Tokenizer\n declare state: State;\n // input and length are not in state as they are constant and we do\n // not want to ever copy them, which happens if state gets cloned\n declare input: string;\n declare length: number;\n\n // This method accepts either a string (plugin name) or an array pair\n // (plugin name and options object). If an options object is given,\n // then each value is non-recursively checked for identity with that\n // plugin’s actual option value.\n hasPlugin(pluginConfig: PluginConfig): boolean {\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(\n pluginOptions,\n ) as (keyof typeof pluginOptions)[]) {\n if (actualOptions?.[key] !== pluginOptions[key]) {\n return false;\n }\n }\n return true;\n }\n }\n\n getPluginOption<\n PluginName extends ParserPluginWithOptions[0],\n OptionName extends keyof PluginOptions<PluginName>,\n >(plugin: PluginName, name: OptionName) {\n return (this.plugins.get(plugin) as null | PluginOptions<PluginName>)?.[\n name\n ];\n }\n}\n","/*:: declare var invariant; */\n\nimport BaseParser from \"./base.ts\";\nimport type { Comment, Node, Identifier } from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport type { Undone } from \"./node.ts\";\n\n/**\n * A whitespace token containing comments\n */\nexport type CommentWhitespace = {\n /**\n * the start of the whitespace token.\n */\n start: number;\n /**\n * the end of the whitespace token.\n */\n end: number;\n /**\n * the containing comments\n */\n comments: Array<Comment>;\n /**\n * the immediately preceding AST node of the whitespace token\n */\n leadingNode: Node | null;\n /**\n * the immediately following AST node of the whitespace token\n */\n trailingNode: Node | null;\n /**\n * the innermost AST node containing the whitespace with minimal size (|end - start|)\n */\n containingNode: Node | null;\n};\n\n/**\n * Merge comments with node's trailingComments or assign comments to be\n * trailingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setTrailingComments(node: Undone<Node>, comments: Array<Comment>) {\n if (node.trailingComments === undefined) {\n node.trailingComments = comments;\n } else {\n node.trailingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's leadingComments or assign comments to be\n * leadingComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nfunction setLeadingComments(node: Undone<Node>, comments: Array<Comment>) {\n if (node.leadingComments === undefined) {\n node.leadingComments = comments;\n } else {\n node.leadingComments.unshift(...comments);\n }\n}\n\n/**\n * Merge comments with node's innerComments or assign comments to be\n * innerComments. New comments will be placed before old comments\n * because the commentStack is enumerated reversely.\n */\nexport function setInnerComments(\n node: Undone<Node>,\n comments?: Array<Comment>,\n) {\n if (node.innerComments === undefined) {\n node.innerComments = comments;\n } else {\n node.innerComments.unshift(...comments);\n }\n}\n\n/**\n * Given node and elements array, if elements has non-null element,\n * merge comments to its trailingComments, otherwise merge comments\n * to node's innerComments\n */\nfunction adjustInnerComments(\n node: Undone<Node>,\n elements: Array<Node>,\n commentWS: CommentWhitespace,\n) {\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}\n\nexport default class CommentsParser extends BaseParser {\n addComment(comment: Comment): void {\n if (this.filename) comment.loc.filename = this.filename;\n this.state.comments.push(comment);\n }\n\n /**\n * Given a newly created AST node _n_, attach _n_ to a comment whitespace _w_ if applicable\n * {@see {@link CommentWhitespace}}\n */\n processComment(node: Node): void {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n const lastCommentWS = commentStack[i];\n\n if (lastCommentWS.start === node.end) {\n lastCommentWS.leadingNode = node;\n i--;\n }\n\n const { start: nodeStart } = node;\n // invariant: for all 0 <= j <= i, let c = commentStack[j], c must satisfy c.end < node.end\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n if (commentEnd > nodeStart) {\n // by definition of commentWhiteSpace, this implies commentWS.start > nodeStart\n // so node can be a containingNode candidate. At this time we can finalize the comment\n // whitespace, because\n // 1) its leadingNode or trailingNode, if exists, will not change\n // 2) its containingNode have been assigned and will not change because it is the\n // innermost minimal-sized AST node\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 // stop the loop when commentEnd <= nodeStart\n break;\n }\n }\n }\n\n /**\n * Assign the comments of comment whitespaces to related AST nodes.\n * Also adjust innerComments following trailing comma.\n */\n finalizeComment(commentWS: CommentWhitespace) {\n const { comments } = 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 /*:: invariant(commentWS.containingNode !== null) */\n const { containingNode: node, start: commentStart } = commentWS;\n if (this.input.charCodeAt(commentStart - 1) === charCodes.comma) {\n // If a commentWhitespace follows a comma and the containingNode allows\n // list structures with trailing comma, merge it to the trailingComment\n // of the last non-null list element\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 default: {\n setInnerComments(node, comments);\n }\n }\n } else {\n setInnerComments(node, comments);\n }\n }\n }\n\n /**\n * Drains remaining commentStack and applies finalizeComment\n * to each comment whitespace. Used only in parseExpression\n * where the top level AST node is _not_ Program\n * {@see {@link CommentsParser#finalizeComment}}\n */\n finalizeRemainingComments() {\n const { commentStack } = this.state;\n for (let i = commentStack.length - 1; i >= 0; i--) {\n this.finalizeComment(commentStack[i]);\n }\n this.state.commentStack = [];\n }\n\n /* eslint-disable no-irregular-whitespace */\n /**\n * Reset previous node trailing comments. Used in object / class\n * property parsing. We parse `async`, `static`, `set` and `get`\n * as an identifier but may reinterpret it into an async/static/accessor\n * method later. In this case the identifier is not part of the AST and we\n * should sync the knowledge to commentStacks\n *\n * For example, when parsing\n * ```\n * async /* 1 */ function f() {}\n * ```\n * the comment whitespace `/* 1 */` has leading node Identifier(async). When\n * we see the function token, we create a Function node and mark `/* 1 */` as\n * inner comments. So `/* 1 */` should be detached from the Identifier node.\n *\n * @param node the last finished AST node _before_ current token\n */\n /* eslint-enable no-irregular-whitespace */\n resetPreviousNodeTrailingComments(node: Node) {\n const { commentStack } = this.state;\n const { length } = commentStack;\n if (length === 0) return;\n const commentWS = commentStack[length - 1];\n if (commentWS.leadingNode === node) {\n commentWS.leadingNode = null;\n }\n }\n\n /* eslint-disable no-irregular-whitespace */\n /**\n * Reset previous node leading comments, assuming that `node` is a\n * single-token node. Used in import phase modifiers parsing. We parse\n * `module` in `import module foo from ...` as an identifier but may\n * reinterpret it into a phase modifier later. In this case the identifier is\n * not part of the AST and we should sync the knowledge to commentStacks\n *\n * For example, when parsing\n * ```\n * import /* 1 */ module a from \"a\";\n * ```\n * the comment whitespace `/* 1 */` has trailing node Identifier(module). When\n * we see that `module` is not a default import binding, we mark `/* 1 */` as\n * inner comments of the ImportDeclaration. So `/* 1 */` should be detached from\n * the Identifier node.\n *\n * @param node the last finished AST node _before_ current token\n */\n /* eslint-enable no-irregular-whitespace */\n resetPreviousIdentifierLeadingComments(node: Identifier) {\n const { commentStack } = this.state;\n const { length } = commentStack;\n if (length === 0) return;\n\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\n /**\n * Attach a node to the comment whitespaces right before/after\n * the given range.\n *\n * This is used to properly attach comments around parenthesized\n * expressions as leading/trailing comments of the inner expression.\n */\n takeSurroundingComments(node: Node, start: number, end: number) {\n const { commentStack } = this.state;\n const commentStackLength = commentStack.length;\n if (commentStackLength === 0) return;\n let i = commentStackLength - 1;\n\n for (; i >= 0; i--) {\n const commentWS = commentStack[i];\n const commentEnd = commentWS.end;\n const commentStart = commentWS.start;\n\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}\n","import * as charCodes from \"charcodes\";\n\n// Matches a whole line break (where CRLF is considered a single\n// line break). Used to count lines.\nexport const lineBreak = /\\r\\n?|[\\n\\u2028\\u2029]/;\nexport const lineBreakG = new RegExp(lineBreak.source, \"g\");\n\n// https://tc39.github.io/ecma262/#sec-line-terminators\nexport function isNewLine(code: number): boolean {\n switch (code) {\n case charCodes.lineFeed:\n case charCodes.carriageReturn:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return true;\n\n default:\n return false;\n }\n}\n\nexport const skipWhiteSpace = /(?:\\s|\\/\\/.*|\\/\\*[^]*?\\*\\/)*/g;\n\nexport const skipWhiteSpaceInLine =\n /(?:[^\\S\\n\\r\\u2028\\u2029]|\\/\\/.*|\\/\\*.*?\\*\\/)*/g;\n\n// Skip whitespace and single-line comments, including /* no newline here */.\n// After this RegExp matches, its lastIndex points to a line terminator, or\n// the start of multi-line comment (which is effectively a line terminator),\n// or the end of string.\nexport const skipWhiteSpaceToLineBreak = new RegExp(\n // Unfortunately JS doesn't support Perl's atomic /(?>pattern)/ or\n // possessive quantifiers, so we use a trick to prevent backtracking\n // when the look-ahead for line terminator fails.\n \"(?=(\" +\n // Capture the whitespace and comments that should be skipped inside\n // a look-ahead assertion, and then re-match the group as a unit.\n skipWhiteSpaceInLine.source +\n \"))\\\\1\" +\n // Look-ahead for either line terminator, start of multi-line comment,\n // or end of string.\n /(?=[\\n\\r\\u2028\\u2029]|\\/\\*(?!.*?\\*\\/)|$)/.source,\n \"y\", // sticky\n);\n\n// https://tc39.github.io/ecma262/#sec-white-space\nexport function isWhitespace(code: number): boolean {\n switch (code) {\n case 0x0009: // CHARACTER TABULATION\n case 0x000b: // LINE TABULATION\n case 0x000c: // FORM FEED\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.oghamSpaceMark:\n case 0x2000: // EN QUAD\n case 0x2001: // EM QUAD\n case 0x2002: // EN SPACE\n case 0x2003: // EM SPACE\n case 0x2004: // THREE-PER-EM SPACE\n case 0x2005: // FOUR-PER-EM SPACE\n case 0x2006: // SIX-PER-EM SPACE\n case 0x2007: // FIGURE SPACE\n case 0x2008: // PUNCTUATION SPACE\n case 0x2009: // THIN SPACE\n case 0x200a: // HAIR SPACE\n case 0x202f: // NARROW NO-BREAK SPACE\n case 0x205f: // MEDIUM MATHEMATICAL SPACE\n case 0x3000: // IDEOGRAPHIC SPACE\n case 0xfeff: // ZERO WIDTH NO-BREAK SPACE\n return true;\n\n default:\n return false;\n }\n}\n","import type { Options } from \"../options.ts\";\nimport type * as N from \"../types.ts\";\nimport type { CommentWhitespace } from \"../parser/comments\";\nimport { Position } from \"../util/location.ts\";\n\nimport { types as ct, type TokContext } from \"./context.ts\";\nimport { tt, type TokenType } from \"./types.ts\";\nimport type { Errors } from \"../parse-error.ts\";\nimport type { ParseError } from \"../parse-error.ts\";\n\nexport type DeferredStrictError =\n | typeof Errors.StrictNumericEscape\n | typeof Errors.StrictOctalLiteral;\n\ntype TopicContextState = {\n // When a topic binding has been currently established,\n // then this is 1. Otherwise, it is 0. This is forwards compatible\n // with a future plugin for multiple lexical topics.\n maxNumOfResolvableTopics: number;\n // When a topic binding has been currently established, and if that binding\n // has been used as a topic reference `#`, then this is 0. Otherwise, it is\n // `null`. This is forwards compatible with a future plugin for multiple\n // lexical topics.\n maxTopicIndex: null | 0;\n};\n\nexport default class State {\n strict: boolean;\n curLine: number;\n lineStart: number;\n\n // And, if locations are used, the {line, column} object\n // corresponding to those offsets\n startLoc: Position;\n endLoc: Position;\n\n init({ strictMode, sourceType, startLine, startColumn }: Options): void {\n this.strict =\n strictMode === false\n ? false\n : strictMode === true\n ? true\n : sourceType === \"module\";\n\n this.curLine = startLine;\n this.lineStart = -startColumn;\n this.startLoc = this.endLoc = new Position(startLine, startColumn, 0);\n }\n\n errors: ParseError<any>[] = [];\n\n // Used to signify the start of a potential arrow function\n potentialArrowAt: number = -1;\n\n // Used to signify the start of an expression which looks like a\n // typed arrow function, but it isn't\n // e.g. a ? (b) : c => d\n // ^\n noArrowAt: number[] = [];\n\n // Used to signify the start of an expression whose params, if it looks like\n // an arrow function, shouldn't be converted to assignable nodes.\n // This is used to defer the validation of typed arrow functions inside\n // conditional expressions.\n // e.g. a ? (b) : c => d\n // ^\n noArrowParamsConversionAt: number[] = [];\n\n // Flags to track\n maybeInArrowParameters: boolean = false;\n inType: boolean = false;\n noAnonFunctionType: boolean = false;\n hasFlowComment: boolean = false;\n isAmbientContext: boolean = false;\n inAbstractClass: boolean = false;\n inDisallowConditionalTypesContext: boolean = false;\n\n // For the Hack-style pipelines plugin\n topicContext: TopicContextState = {\n maxNumOfResolvableTopics: 0,\n maxTopicIndex: null,\n };\n\n // For the F#-style pipelines plugin\n soloAwait: boolean = false;\n inFSharpPipelineDirectBody: boolean = false;\n\n // Labels in scope.\n labels: Array<{\n kind: \"loop\" | \"switch\" | undefined | null;\n name?: string | null;\n statementStart?: number;\n }> = [];\n\n // Comment store for Program.comments\n comments: Array<N.Comment> = [];\n\n // Comment attachment store\n commentStack: Array<CommentWhitespace> = [];\n\n // The current position of the tokenizer in the input.\n pos: number = 0;\n\n // Properties of the current token:\n // Its type\n type: TokenType = tt.eof;\n\n // For tokens that include more information than their type, the value\n value: any = null;\n\n // Its start and end offset\n start: number = 0;\n end: number = 0;\n\n // Position information for the previous token\n // this is initialized when generating the second token.\n lastTokEndLoc: Position = null;\n // this is initialized when generating the second token.\n lastTokStartLoc: Position = null;\n lastTokStart: number = 0;\n\n // The context stack is used to track whether the apostrophe \"`\" starts\n // or ends a string template\n context: Array<TokContext> = [ct.brace];\n // Used to track whether a JSX element is allowed to form\n canStartJSXElement: boolean = true;\n\n // Used to signal to callers of `readWord1` whether the word\n // contained any escape sequences. This is needed because words with\n // escape sequences must not be interpreted as keywords.\n containsEsc: boolean = false;\n\n // Used to track invalid escape sequences in template literals,\n // that must be reported if the template is not tagged.\n firstInvalidTemplateEscapePos: null | Position = null;\n\n // This property is used to track the following errors\n // - StrictNumericEscape\n // - StrictOctalLiteral\n //\n // in a literal that occurs prior to/immediately after a \"use strict\" directive.\n\n // todo(JLHwung): set strictErrors to null and avoid recording string errors\n // after a non-directive is parsed\n strictErrors: Map<number, [DeferredStrictError, Position]> = new Map();\n\n // Tokens length in token store\n tokensLength: number = 0;\n\n curPosition(): Position {\n return new Position(this.curLine, this.pos - this.lineStart, this.pos);\n }\n\n clone(skipArrays?: boolean): State {\n const state = new State();\n const keys = Object.keys(this) as (keyof State)[];\n for (let i = 0, length = keys.length; i < length; i++) {\n const key = keys[i];\n let val = this[key];\n\n if (!skipArrays && Array.isArray(val)) {\n val = val.slice();\n }\n\n // @ts-expect-error val must conform to S[key]\n state[key] = val;\n }\n\n return state;\n }\n}\n\nexport type LookaheadState = {\n pos: number;\n value: any;\n type: TokenType;\n start: number;\n end: number;\n context: TokContext[];\n startLoc: Position;\n lastTokEndLoc: Position;\n curLine: number;\n lineStart: number;\n curPosition: () => Position;\n /* Used only in readToken_mult_modulo */\n inType: boolean;\n // These boolean properties are not initialized in createLookaheadState()\n // instead they will only be set by the tokenizer\n containsEsc?: boolean;\n};\n","import * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set<number>([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = 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 === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\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 process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = input.slice(startPos, pos + 2).match(/^[0-7]+/)!;\n\n let octalStr = match[0];\n\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 (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\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: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n","/*:: declare var invariant; */\n\nimport type { Options } from \"../options.ts\";\nimport {\n Position,\n SourceLocation,\n createPositionWithColumnOffset,\n} from \"../util/location.ts\";\nimport CommentsParser, { type CommentWhitespace } from \"../parser/comments.ts\";\nimport type * as N from \"../types.ts\";\nimport * as charCodes from \"charcodes\";\nimport { isIdentifierStart, isIdentifierChar } from \"../util/identifier.ts\";\nimport {\n tokenIsKeyword,\n tokenLabelName,\n tt,\n keywords as keywordTypes,\n type TokenType,\n} from \"./types.ts\";\nimport type { TokContext } from \"./context.ts\";\nimport {\n Errors,\n type ParseError,\n type ParseErrorConstructor,\n type RaiseProperties,\n} from \"../parse-error.ts\";\nimport {\n lineBreakG,\n isNewLine,\n isWhitespace,\n skipWhiteSpace,\n skipWhiteSpaceInLine,\n} from \"../util/whitespace.ts\";\nimport State from \"./state.ts\";\nimport type { LookaheadState, DeferredStrictError } from \"./state.ts\";\n\nimport {\n readInt,\n readCodePoint,\n readStringContents,\n type IntErrorHandlers,\n type CodePointErrorHandlers,\n type StringContentsErrorHandlers,\n} from \"@babel/helper-string-parser\";\n\nimport type { Plugin } from \"../typings.ts\";\n\nfunction buildPosition(pos: number, lineStart: number, curLine: number) {\n return new Position(curLine, pos - lineStart, pos);\n}\n\nconst VALID_REGEX_FLAGS = new Set([\n charCodes.lowercaseG,\n charCodes.lowercaseM,\n charCodes.lowercaseS,\n charCodes.lowercaseI,\n charCodes.lowercaseY,\n charCodes.lowercaseU,\n charCodes.lowercaseD,\n charCodes.lowercaseV,\n]);\n\n// Object type used to represent tokens. Note that normally, tokens\n// simply exist as properties on the parser object. This is only\n// used for the onToken callback and the external tokenizer.\n\nexport class Token {\n constructor(state: State) {\n this.type = state.type;\n this.value = state.value;\n this.start = state.start;\n this.end = state.end;\n this.loc = new SourceLocation(state.startLoc, state.endLoc);\n }\n\n declare type: TokenType;\n declare value: any;\n declare start: number;\n declare end: number;\n declare loc: SourceLocation;\n}\n\n// ## Tokenizer\n\nexport default abstract class Tokenizer extends CommentsParser {\n isLookahead: boolean;\n\n // Token store.\n tokens: Array<Token | N.Comment> = [];\n\n constructor(options: Options, input: string) {\n super();\n this.state = new State();\n this.state.init(options);\n this.input = input;\n this.length = input.length;\n this.isLookahead = false;\n }\n\n pushToken(token: Token | N.Comment) {\n // Pop out invalid tokens trapped by try-catch parsing.\n // Those parsing branches are mainly created by typescript and flow plugins.\n this.tokens.length = this.state.tokensLength;\n this.tokens.push(token);\n ++this.state.tokensLength;\n }\n\n // Move to the next token\n\n next(): void {\n this.checkKeywordEscapes();\n if (this.options.tokens) {\n this.pushToken(new Token(this.state));\n }\n\n this.state.lastTokStart = this.state.start;\n this.state.lastTokEndLoc = this.state.endLoc;\n this.state.lastTokStartLoc = this.state.startLoc;\n this.nextToken();\n }\n\n eat(type: TokenType): boolean {\n if (this.match(type)) {\n this.next();\n return true;\n } else {\n return false;\n }\n }\n\n /**\n * Whether current token matches given type\n */\n match(type: TokenType): boolean {\n return this.state.type === type;\n }\n\n /**\n * Create a LookaheadState from current parser state\n */\n createLookaheadState(state: State): LookaheadState {\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\n /**\n * lookahead peeks the next token, skipping changes to token context and\n * comment stack. For performance it returns a limited LookaheadState\n * instead of full parser state.\n *\n * The { column, line } Loc info is not included in lookahead since such usage\n * is rare. Although it may return other location properties e.g. `curLine` and\n * `lineStart`, these properties are not listed in the LookaheadState interface\n * and thus the returned value is _NOT_ reliable.\n *\n * The tokenizer should make best efforts to avoid using any parser state\n * other than those defined in LookaheadState\n */\n lookahead(): LookaheadState {\n const old = this.state;\n // @ts-expect-error For performance we use a simplified tokenizer state structure\n this.state = this.createLookaheadState(old);\n\n this.isLookahead = true;\n this.nextToken();\n this.isLookahead = false;\n\n const curr = this.state;\n this.state = old;\n return curr;\n }\n\n nextTokenStart(): number {\n return this.nextTokenStartSince(this.state.pos);\n }\n\n nextTokenStartSince(pos: number): number {\n skipWhiteSpace.lastIndex = pos;\n return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos;\n }\n\n lookaheadCharCode(): number {\n return this.input.charCodeAt(this.nextTokenStart());\n }\n\n /**\n * Similar to nextToken, but it will stop at line break when it is seen before the next token\n *\n * @returns {number} position of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n nextTokenInLineStart(): number {\n return this.nextTokenInLineStartSince(this.state.pos);\n }\n\n nextTokenInLineStartSince(pos: number): number {\n skipWhiteSpaceInLine.lastIndex = pos;\n return skipWhiteSpaceInLine.test(this.input)\n ? skipWhiteSpaceInLine.lastIndex\n : pos;\n }\n\n /**\n * Similar to lookaheadCharCode, but it will return the char code of line break if it is\n * seen before the next token\n *\n * @returns {number} char code of the next token start or line break, whichever is seen first.\n * @memberof Tokenizer\n */\n lookaheadInLineCharCode(): number {\n return this.input.charCodeAt(this.nextTokenInLineStart());\n }\n\n codePointAtPos(pos: number): number {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `input` is mostly ASCII, an inlined `charCodeAt` wins here\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\n // Toggle strict mode. Re-reads the next number or string to please\n // pedantic tests (`\"use strict\"; 010;` should fail).\n\n setStrict(strict: boolean): void {\n this.state.strict = strict;\n if (strict) {\n // Throw an error for any string decimal escape found before/immediately\n // after a \"use strict\" directive. Strict mode will be set at parse\n // time for any literals that occur after the next node of the strict\n // directive.\n this.state.strictErrors.forEach(([toParseError, at]) =>\n this.raise(toParseError, { at }),\n );\n this.state.strictErrors.clear();\n }\n }\n\n curContext(): TokContext {\n return this.state.context[this.state.context.length - 1];\n }\n\n // Read a single token, updating the parser object's token-related properties.\n nextToken(): void {\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(tt.eof);\n return;\n }\n\n this.getTokenFromCode(this.codePointAtPos(this.state.pos));\n }\n\n // Skips a block comment, whose end is marked by commentEnd.\n // *-/ is used by the Flow plugin, when parsing block comments nested\n // inside Flow comments.\n skipBlockComment(commentEnd: \"*/\" | \"*-/\"): N.CommentBlock | undefined {\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 // We have to call this again here because startLoc may not be set...\n // This seems to be for performance reasons:\n // https://github.com/babel/babel/commit/acf2a10899f696a8aaf34df78bf9725b5ea7f2da\n throw this.raise(Errors.UnterminatedComment, {\n at: this.state.curPosition(),\n });\n }\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\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n /*:: invariant(startLoc) */\n\n const comment: N.CommentBlock = {\n type: \"CommentBlock\",\n value: this.input.slice(start + 2, end),\n start,\n end: end + commentEnd.length,\n loc: new SourceLocation(startLoc, this.state.curPosition()),\n };\n if (this.options.tokens) this.pushToken(comment);\n return comment;\n }\n\n skipLineComment(startSkip: number): N.CommentLine | undefined {\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\n // If we are doing a lookahead right now we need to advance the position (above code)\n // but we do not want to push the comment to the state.\n if (this.isLookahead) return;\n /*:: invariant(startLoc) */\n\n const end = this.state.pos;\n const value = this.input.slice(start + startSkip, end);\n\n const comment: N.CommentLine = {\n type: \"CommentLine\",\n value,\n start,\n end,\n loc: new SourceLocation(startLoc, this.state.curPosition()),\n };\n if (this.options.tokens) this.pushToken(comment);\n return comment;\n }\n\n // Called at the start of the parse and after every token. Skips\n // whitespace and comments, and.\n\n skipSpace(): void {\n const spaceStart = this.state.pos;\n const comments = [];\n loop: while (this.state.pos < this.length) {\n const ch = this.input.charCodeAt(this.state.pos);\n switch (ch) {\n case charCodes.space:\n case charCodes.nonBreakingSpace:\n case charCodes.tab:\n ++this.state.pos;\n break;\n case charCodes.carriageReturn:\n if (\n this.input.charCodeAt(this.state.pos + 1) === charCodes.lineFeed\n ) {\n ++this.state.pos;\n }\n // fall through\n case charCodes.lineFeed:\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n ++this.state.pos;\n ++this.state.curLine;\n this.state.lineStart = this.state.pos;\n break;\n\n case charCodes.slash:\n switch (this.input.charCodeAt(this.state.pos + 1)) {\n case charCodes.asterisk: {\n const comment = this.skipBlockComment(\"*/\");\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n break;\n }\n\n case charCodes.slash: {\n const comment = this.skipLineComment(2);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n break;\n }\n\n default:\n break loop;\n }\n break;\n\n default:\n if (isWhitespace(ch)) {\n ++this.state.pos;\n } else if (\n ch === charCodes.dash &&\n !this.inModule &&\n this.options.annexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.dash &&\n this.input.charCodeAt(pos + 2) === charCodes.greaterThan &&\n (spaceStart === 0 || this.state.lineStart > spaceStart)\n ) {\n // A `-->` line comment\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n } else {\n break loop;\n }\n } else if (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.options.annexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.exclamationMark &&\n this.input.charCodeAt(pos + 2) === charCodes.dash &&\n this.input.charCodeAt(pos + 3) === charCodes.dash\n ) {\n // `<!--`, an XML-style comment that should be interpreted as a line comment\n const comment = this.skipLineComment(4);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n } else {\n break loop;\n }\n } else {\n break loop;\n }\n }\n }\n\n if (comments.length > 0) {\n const end = this.state.pos;\n const commentWhitespace: CommentWhitespace = {\n start: spaceStart,\n end,\n comments,\n leadingNode: null,\n trailingNode: null,\n containingNode: null,\n };\n this.state.commentStack.push(commentWhitespace);\n }\n }\n\n // Called at the end of every token. Sets `end`, `val`, and\n // maintains `context` and `canStartJSXElement`, and skips the space after\n // the token, so that the next one's `start` will point at the\n // right position.\n\n finishToken(type: TokenType, val?: any): void {\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\n if (!this.isLookahead) {\n this.updateContext(prevType);\n }\n }\n\n replaceToken(type: TokenType): void {\n this.state.type = type;\n // @ts-expect-error the prevType of updateContext is required\n // only when the new type is tt.slash/tt.jsxTagEnd\n this.updateContext();\n }\n\n // ### Token reading\n\n // This is the function that is called to fetch the next token. It\n // is somewhat obscure, because it works in character codes rather\n // than characters, and because operator parsing has been inlined\n // into it.\n //\n // All in the name of speed.\n\n // number sign is \"#\"\n readToken_numberSign(): void {\n if (this.state.pos === 0 && this.readToken_interpreter()) {\n return;\n }\n\n const nextPos = this.state.pos + 1;\n const next = this.codePointAtPos(nextPos);\n if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n throw this.raise(Errors.UnexpectedDigitAfterHash, {\n at: this.state.curPosition(),\n });\n }\n\n if (\n next === charCodes.leftCurlyBrace ||\n (next === charCodes.leftSquareBracket && this.hasPlugin(\"recordAndTuple\"))\n ) {\n // When we see `#{`, it is likely to be a hash record.\n // However we don't yell at `#[` since users may intend to use \"computed private fields\",\n // which is not allowed in the spec. Throwing expecting recordAndTuple is\n // misleading\n this.expectPlugin(\"recordAndTuple\");\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") === \"bar\") {\n throw this.raise(\n next === charCodes.leftCurlyBrace\n ? Errors.RecordExpressionHashIncorrectStartSyntaxType\n : Errors.TupleExpressionHashIncorrectStartSyntaxType,\n { at: this.state.curPosition() },\n );\n }\n\n this.state.pos += 2;\n if (next === charCodes.leftCurlyBrace) {\n // #{\n this.finishToken(tt.braceHashL);\n } else {\n // #[\n this.finishToken(tt.bracketHashL);\n }\n } else if (isIdentifierStart(next)) {\n ++this.state.pos;\n this.finishToken(tt.privateName, this.readWord1(next));\n } else if (next === charCodes.backslash) {\n ++this.state.pos;\n this.finishToken(tt.privateName, this.readWord1());\n } else {\n this.finishOp(tt.hash, 1);\n }\n }\n\n readToken_dot(): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next >= charCodes.digit0 && next <= charCodes.digit9) {\n this.readNumber(true);\n return;\n }\n\n if (\n next === charCodes.dot &&\n this.input.charCodeAt(this.state.pos + 2) === charCodes.dot\n ) {\n this.state.pos += 3;\n this.finishToken(tt.ellipsis);\n } else {\n ++this.state.pos;\n this.finishToken(tt.dot);\n }\n }\n\n readToken_slash(): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.slashAssign, 2);\n } else {\n this.finishOp(tt.slash, 1);\n }\n }\n\n readToken_interpreter(): boolean {\n if (this.state.pos !== 0 || this.length < 2) return false;\n\n let ch = this.input.charCodeAt(this.state.pos + 1);\n if (ch !== charCodes.exclamationMark) return false;\n\n const start = this.state.pos;\n this.state.pos += 1;\n\n while (!isNewLine(ch) && ++this.state.pos < this.length) {\n ch = this.input.charCodeAt(this.state.pos);\n }\n\n const value = this.input.slice(start + 2, this.state.pos);\n\n this.finishToken(tt.interpreterDirective, value);\n\n return true;\n }\n\n readToken_mult_modulo(code: number): void {\n // '%' or '*'\n let type = code === charCodes.asterisk ? tt.star : tt.modulo;\n let width = 1;\n let next = this.input.charCodeAt(this.state.pos + 1);\n\n // Exponentiation operator '**'\n if (code === charCodes.asterisk && next === charCodes.asterisk) {\n width++;\n next = this.input.charCodeAt(this.state.pos + 2);\n type = tt.exponent;\n }\n\n // '%=' or '*='\n if (next === charCodes.equalsTo && !this.state.inType) {\n width++;\n // `tt.moduloAssign` is only needed to support % as a Hack-pipe topic token.\n // If the proposal ends up choosing a different token,\n // it can be merged with tt.assign.\n type = code === charCodes.percentSign ? tt.moduloAssign : tt.assign;\n }\n\n this.finishOp(type, width);\n }\n\n readToken_pipe_amp(code: number): void {\n // '||' '&&' '||=' '&&='\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n if (next === code) {\n if (this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo) {\n this.finishOp(tt.assign, 3);\n } else {\n this.finishOp(\n code === charCodes.verticalBar ? tt.logicalOR : tt.logicalAND,\n 2,\n );\n }\n return;\n }\n\n if (code === charCodes.verticalBar) {\n // '|>'\n if (next === charCodes.greaterThan) {\n this.finishOp(tt.pipeline, 2);\n return;\n }\n // '|}'\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n next === charCodes.rightCurlyBrace\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.RecordExpressionBarIncorrectEndSyntaxType, {\n at: this.state.curPosition(),\n });\n }\n this.state.pos += 2;\n this.finishToken(tt.braceBarR);\n return;\n }\n\n // '|]'\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n next === charCodes.rightSquareBracket\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(Errors.TupleExpressionBarIncorrectEndSyntaxType, {\n at: this.state.curPosition(),\n });\n }\n this.state.pos += 2;\n this.finishToken(tt.bracketBarR);\n return;\n }\n }\n\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.assign, 2);\n return;\n }\n\n this.finishOp(\n code === charCodes.verticalBar ? tt.bitwiseOR : tt.bitwiseAND,\n 1,\n );\n }\n\n readToken_caret(): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n // '^='\n if (next === charCodes.equalsTo && !this.state.inType) {\n // `tt.xorAssign` is only needed to support ^ as a Hack-pipe topic token.\n // If the proposal ends up choosing a different token,\n // it can be merged with tt.assign.\n this.finishOp(tt.xorAssign, 2);\n }\n // '^^'\n else if (\n next === charCodes.caret &&\n // If the ^^ token is not enabled, we don't throw but parse two single ^s\n // because it could be a ^ hack token followed by a ^ binary operator.\n this.hasPlugin([\n \"pipelineOperator\",\n { proposal: \"hack\", topicToken: \"^^\" },\n ])\n ) {\n this.finishOp(tt.doubleCaret, 2);\n\n // `^^^` is forbidden and must be separated by a space.\n const lookaheadCh = this.input.codePointAt(this.state.pos);\n if (lookaheadCh === charCodes.caret) {\n this.unexpected();\n }\n }\n // '^'\n else {\n this.finishOp(tt.bitwiseXOR, 1);\n }\n }\n\n readToken_atSign(): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n // '@@'\n if (\n next === charCodes.atSign &&\n this.hasPlugin([\n \"pipelineOperator\",\n { proposal: \"hack\", topicToken: \"@@\" },\n ])\n ) {\n this.finishOp(tt.doubleAt, 2);\n }\n // '@'\n else {\n this.finishOp(tt.at, 1);\n }\n }\n\n readToken_plus_min(code: number): void {\n // '+-'\n const next = this.input.charCodeAt(this.state.pos + 1);\n\n if (next === code) {\n this.finishOp(tt.incDec, 2);\n return;\n }\n\n if (next === charCodes.equalsTo) {\n this.finishOp(tt.assign, 2);\n } else {\n this.finishOp(tt.plusMin, 1);\n }\n }\n\n readToken_lt(): void {\n // '<'\n const { pos } = this.state;\n const next = this.input.charCodeAt(pos + 1);\n\n if (next === charCodes.lessThan) {\n if (this.input.charCodeAt(pos + 2) === charCodes.equalsTo) {\n this.finishOp(tt.assign, 3);\n return;\n }\n this.finishOp(tt.bitShiftL, 2);\n return;\n }\n\n if (next === charCodes.equalsTo) {\n // <=\n this.finishOp(tt.relational, 2);\n return;\n }\n\n this.finishOp(tt.lt, 1);\n }\n\n readToken_gt(): void {\n // '>'\n const { pos } = this.state;\n const next = this.input.charCodeAt(pos + 1);\n\n if (next === charCodes.greaterThan) {\n const size =\n this.input.charCodeAt(pos + 2) === charCodes.greaterThan ? 3 : 2;\n if (this.input.charCodeAt(pos + size) === charCodes.equalsTo) {\n this.finishOp(tt.assign, size + 1);\n return;\n }\n this.finishOp(tt.bitShiftR, size);\n return;\n }\n\n if (next === charCodes.equalsTo) {\n // <= | >=\n this.finishOp(tt.relational, 2);\n return;\n }\n\n this.finishOp(tt.gt, 1);\n }\n\n readToken_eq_excl(code: number): void {\n // '=!'\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (next === charCodes.equalsTo) {\n this.finishOp(\n tt.equality,\n this.input.charCodeAt(this.state.pos + 2) === charCodes.equalsTo\n ? 3\n : 2,\n );\n return;\n }\n if (code === charCodes.equalsTo && next === charCodes.greaterThan) {\n // '=>'\n this.state.pos += 2;\n this.finishToken(tt.arrow);\n return;\n }\n this.finishOp(code === charCodes.equalsTo ? tt.eq : tt.bang, 1);\n }\n\n readToken_question(): void {\n // '?'\n const next = this.input.charCodeAt(this.state.pos + 1);\n const next2 = this.input.charCodeAt(this.state.pos + 2);\n if (next === charCodes.questionMark) {\n if (next2 === charCodes.equalsTo) {\n // '??='\n this.finishOp(tt.assign, 3);\n } else {\n // '??'\n this.finishOp(tt.nullishCoalescing, 2);\n }\n } else if (\n next === charCodes.dot &&\n !(next2 >= charCodes.digit0 && next2 <= charCodes.digit9)\n ) {\n // '.' not followed by a number\n this.state.pos += 2;\n this.finishToken(tt.questionDot);\n } else {\n ++this.state.pos;\n this.finishToken(tt.question);\n }\n }\n\n getTokenFromCode(code: number): void {\n switch (code) {\n // The interpretation of a dot depends on whether it is followed\n // by a digit or another two dots.\n\n case charCodes.dot:\n this.readToken_dot();\n return;\n // Punctuation tokens.\n case charCodes.leftParenthesis:\n ++this.state.pos;\n this.finishToken(tt.parenL);\n return;\n case charCodes.rightParenthesis:\n ++this.state.pos;\n this.finishToken(tt.parenR);\n return;\n case charCodes.semicolon:\n ++this.state.pos;\n this.finishToken(tt.semi);\n return;\n case charCodes.comma:\n ++this.state.pos;\n this.finishToken(tt.comma);\n return;\n case charCodes.leftSquareBracket:\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(\n Errors.TupleExpressionBarIncorrectStartSyntaxType,\n { at: this.state.curPosition() },\n );\n }\n\n // [|\n this.state.pos += 2;\n this.finishToken(tt.bracketBarL);\n } else {\n ++this.state.pos;\n this.finishToken(tt.bracketL);\n }\n return;\n case charCodes.rightSquareBracket:\n ++this.state.pos;\n this.finishToken(tt.bracketR);\n return;\n case charCodes.leftCurlyBrace:\n if (\n this.hasPlugin(\"recordAndTuple\") &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.verticalBar\n ) {\n if (this.getPluginOption(\"recordAndTuple\", \"syntaxType\") !== \"bar\") {\n throw this.raise(\n Errors.RecordExpressionBarIncorrectStartSyntaxType,\n { at: this.state.curPosition() },\n );\n }\n\n // {|\n this.state.pos += 2;\n this.finishToken(tt.braceBarL);\n } else {\n ++this.state.pos;\n this.finishToken(tt.braceL);\n }\n return;\n case charCodes.rightCurlyBrace:\n ++this.state.pos;\n this.finishToken(tt.braceR);\n return;\n\n case charCodes.colon:\n if (\n this.hasPlugin(\"functionBind\") &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.colon\n ) {\n this.finishOp(tt.doubleColon, 2);\n } else {\n ++this.state.pos;\n this.finishToken(tt.colon);\n }\n return;\n\n case charCodes.questionMark:\n this.readToken_question();\n return;\n\n case charCodes.graveAccent:\n this.readTemplateToken();\n return;\n\n case charCodes.digit0: {\n const next = this.input.charCodeAt(this.state.pos + 1);\n // '0x', '0X' - hex number\n if (next === charCodes.lowercaseX || next === charCodes.uppercaseX) {\n this.readRadixNumber(16);\n return;\n }\n // '0o', '0O' - octal number\n if (next === charCodes.lowercaseO || next === charCodes.uppercaseO) {\n this.readRadixNumber(8);\n return;\n }\n // '0b', '0B' - binary number\n if (next === charCodes.lowercaseB || next === charCodes.uppercaseB) {\n this.readRadixNumber(2);\n return;\n }\n }\n // Anything else beginning with a digit is an integer, octal\n // number, or float. (fall through)\n case charCodes.digit1:\n case charCodes.digit2:\n case charCodes.digit3:\n case charCodes.digit4:\n case charCodes.digit5:\n case charCodes.digit6:\n case charCodes.digit7:\n case charCodes.digit8:\n case charCodes.digit9:\n this.readNumber(false);\n return;\n\n // Quotes produce strings.\n case charCodes.quotationMark:\n case charCodes.apostrophe:\n this.readString(code);\n return;\n\n // Operators are parsed inline in tiny state machines. '=' (charCodes.equalsTo) is\n // often referred to. `finishOp` simply skips the amount of\n // characters it is given as second argument, and returns a token\n // of the type given by its first argument.\n\n case charCodes.slash:\n this.readToken_slash();\n return;\n\n case charCodes.percentSign:\n case charCodes.asterisk:\n this.readToken_mult_modulo(code);\n return;\n\n case charCodes.verticalBar:\n case charCodes.ampersand:\n this.readToken_pipe_amp(code);\n return;\n\n case charCodes.caret:\n this.readToken_caret();\n return;\n\n case charCodes.plusSign:\n case charCodes.dash:\n this.readToken_plus_min(code);\n return;\n\n case charCodes.lessThan:\n this.readToken_lt();\n return;\n\n case charCodes.greaterThan:\n this.readToken_gt();\n return;\n\n case charCodes.equalsTo:\n case charCodes.exclamationMark:\n this.readToken_eq_excl(code);\n return;\n\n case charCodes.tilde:\n this.finishOp(tt.tilde, 1);\n return;\n\n case charCodes.atSign:\n this.readToken_atSign();\n return;\n\n case charCodes.numberSign:\n this.readToken_numberSign();\n return;\n\n case charCodes.backslash:\n this.readWord();\n return;\n\n default:\n if (isIdentifierStart(code)) {\n this.readWord(code);\n return;\n }\n }\n\n throw this.raise(Errors.InvalidOrUnexpectedToken, {\n at: this.state.curPosition(),\n unexpected: String.fromCodePoint(code),\n });\n }\n\n finishOp(type: TokenType, size: number): void {\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\n readRegexp(): void {\n const startLoc = this.state.startLoc;\n const start = this.state.start + 1;\n let escaped, inClass;\n let { pos } = this.state;\n for (; ; ++pos) {\n if (pos >= this.length) {\n // FIXME: explain\n throw this.raise(Errors.UnterminatedRegExp, {\n at: createPositionWithColumnOffset(startLoc, 1),\n });\n }\n const ch = this.input.charCodeAt(pos);\n if (isNewLine(ch)) {\n throw this.raise(Errors.UnterminatedRegExp, {\n at: createPositionWithColumnOffset(startLoc, 1),\n });\n }\n if (escaped) {\n escaped = false;\n } else {\n if (ch === charCodes.leftSquareBracket) {\n inClass = true;\n } else if (ch === charCodes.rightSquareBracket && inClass) {\n inClass = false;\n } else if (ch === charCodes.slash && !inClass) {\n break;\n }\n escaped = ch === charCodes.backslash;\n }\n }\n const content = this.input.slice(start, pos);\n ++pos;\n\n let mods = \"\";\n\n const nextPos = () =>\n // (pos + 1) + 1 - start\n createPositionWithColumnOffset(startLoc, pos + 2 - start);\n\n while (pos < this.length) {\n const cp = this.codePointAtPos(pos);\n // It doesn't matter if cp > 0xffff, the loop will either throw or break because we check on cp\n const char = String.fromCharCode(cp);\n\n // @ts-expect-error VALID_REGEX_FLAGS.has should accept expanded type: number\n if (VALID_REGEX_FLAGS.has(cp)) {\n if (cp === charCodes.lowercaseV) {\n if (mods.includes(\"u\")) {\n this.raise(Errors.IncompatibleRegExpUVFlags, { at: nextPos() });\n }\n } else if (cp === charCodes.lowercaseU) {\n if (mods.includes(\"v\")) {\n this.raise(Errors.IncompatibleRegExpUVFlags, { at: nextPos() });\n }\n }\n if (mods.includes(char)) {\n this.raise(Errors.DuplicateRegExpFlags, { at: nextPos() });\n }\n } else if (isIdentifierChar(cp) || cp === charCodes.backslash) {\n this.raise(Errors.MalformedRegExpFlags, { at: nextPos() });\n } else {\n break;\n }\n\n ++pos;\n mods += char;\n }\n this.state.pos = pos;\n\n this.finishToken(tt.regexp, {\n pattern: content,\n flags: mods,\n });\n }\n\n // Read an integer in the given radix. Return null if zero digits\n // were read, the integer value otherwise. When `len` is given, this\n // will return `null` unless the integer has exactly `len` digits.\n // When `forceLen` is `true`, it means that we already know that in case\n // of a malformed number we have to skip `len` characters anyway, instead\n // of bailing out early. For example, in \"\\u{123Z}\" we want to read up to }\n // anyway, while in \"\\u00Z\" we will stop at Z instead of consuming four\n // characters (and thus the closing quote).\n\n readInt(\n radix: number,\n len?: number,\n forceLen: boolean = false,\n allowNumSeparator: boolean | \"bail\" = true,\n ): number | null {\n const { n, pos } = readInt(\n this.input,\n this.state.pos,\n this.state.lineStart,\n this.state.curLine,\n radix,\n len,\n forceLen,\n allowNumSeparator,\n this.errorHandlers_readInt,\n /* bailOnError */ false,\n );\n this.state.pos = pos;\n return n;\n }\n\n readRadixNumber(radix: number): void {\n const startLoc = this.state.curPosition();\n let isBigInt = false;\n\n this.state.pos += 2; // 0x\n const val = this.readInt(radix);\n if (val == null) {\n this.raise(Errors.InvalidDigit, {\n // Numeric literals can't have newlines, so this is safe to do.\n at: createPositionWithColumnOffset(startLoc, 2),\n radix,\n });\n }\n const next = this.input.charCodeAt(this.state.pos);\n\n if (next === charCodes.lowercaseN) {\n ++this.state.pos;\n isBigInt = true;\n } else if (next === charCodes.lowercaseM) {\n throw this.raise(Errors.InvalidDecimal, { at: startLoc });\n }\n\n if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {\n throw this.raise(Errors.NumberIdentifier, {\n at: this.state.curPosition(),\n });\n }\n\n if (isBigInt) {\n const str = this.input\n .slice(startLoc.index, this.state.pos)\n .replace(/[_n]/g, \"\");\n this.finishToken(tt.bigint, str);\n return;\n }\n\n this.finishToken(tt.num, val);\n }\n\n // Read an integer, octal integer, or floating-point number.\n\n readNumber(startsWithDot: boolean): void {\n const start = this.state.pos;\n const startLoc = this.state.curPosition();\n let isFloat = false;\n let isBigInt = false;\n let isDecimal = false;\n let hasExponent = false;\n let isOctal = false;\n\n if (!startsWithDot && this.readInt(10) === null) {\n this.raise(Errors.InvalidNumber, { at: this.state.curPosition() });\n }\n const hasLeadingZero =\n this.state.pos - start >= 2 &&\n this.input.charCodeAt(start) === charCodes.digit0;\n\n if (hasLeadingZero) {\n const integer = this.input.slice(start, this.state.pos);\n this.recordStrictModeErrors(Errors.StrictOctalLiteral, { at: startLoc });\n if (!this.state.strict) {\n // disallow numeric separators in non octal decimals and legacy octal likes\n const underscorePos = integer.indexOf(\"_\");\n if (underscorePos > 0) {\n // Numeric literals can't have newlines, so this is safe to do.\n this.raise(Errors.ZeroDigitNumericSeparator, {\n at: createPositionWithColumnOffset(startLoc, underscorePos),\n });\n }\n }\n isOctal = hasLeadingZero && !/[89]/.test(integer);\n }\n\n let next = this.input.charCodeAt(this.state.pos);\n if (next === charCodes.dot && !isOctal) {\n ++this.state.pos;\n this.readInt(10);\n isFloat = true;\n next = this.input.charCodeAt(this.state.pos);\n }\n\n if (\n (next === charCodes.uppercaseE || next === charCodes.lowercaseE) &&\n !isOctal\n ) {\n next = this.input.charCodeAt(++this.state.pos);\n if (next === charCodes.plusSign || next === charCodes.dash) {\n ++this.state.pos;\n }\n if (this.readInt(10) === null) {\n this.raise(Errors.InvalidOrMissingExponent, { at: startLoc });\n }\n isFloat = true;\n hasExponent = true;\n next = this.input.charCodeAt(this.state.pos);\n }\n\n if (next === charCodes.lowercaseN) {\n // disallow floats, legacy octal syntax and non octal decimals\n // new style octal (\"0o\") is handled in this.readRadixNumber\n if (isFloat || hasLeadingZero) {\n this.raise(Errors.InvalidBigIntLiteral, { at: startLoc });\n }\n ++this.state.pos;\n isBigInt = true;\n }\n\n if (next === charCodes.lowercaseM) {\n this.expectPlugin(\"decimal\", this.state.curPosition());\n if (hasExponent || hasLeadingZero) {\n this.raise(Errors.InvalidDecimal, { at: startLoc });\n }\n ++this.state.pos;\n isDecimal = true;\n }\n\n if (isIdentifierStart(this.codePointAtPos(this.state.pos))) {\n throw this.raise(Errors.NumberIdentifier, {\n at: this.state.curPosition(),\n });\n }\n\n // remove \"_\" for numeric literal separator, and trailing `m` or `n`\n const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, \"\");\n\n if (isBigInt) {\n this.finishToken(tt.bigint, str);\n return;\n }\n\n if (isDecimal) {\n this.finishToken(tt.decimal, str);\n return;\n }\n\n const val = isOctal ? parseInt(str, 8) : parseFloat(str);\n this.finishToken(tt.num, val);\n }\n\n // Read a string value, interpreting backslash-escapes.\n\n readCodePoint(throwOnInvalid: boolean): number | null {\n const { code, pos } = readCodePoint(\n this.input,\n this.state.pos,\n this.state.lineStart,\n this.state.curLine,\n throwOnInvalid,\n this.errorHandlers_readCodePoint,\n );\n this.state.pos = pos;\n return code;\n }\n\n readString(quote: number): void {\n const { str, pos, curLine, lineStart } = readStringContents(\n quote === charCodes.quotationMark ? \"double\" : \"single\",\n this.input,\n this.state.pos + 1, // skip the quote\n this.state.lineStart,\n this.state.curLine,\n this.errorHandlers_readStringContents_string,\n );\n this.state.pos = pos + 1; // skip the quote\n this.state.lineStart = lineStart;\n this.state.curLine = curLine;\n this.finishToken(tt.string, str);\n }\n\n // Reads template continuation `}...`\n readTemplateContinuation(): void {\n if (!this.match(tt.braceR)) {\n this.unexpected(null, tt.braceR);\n }\n // rewind pos to `}`\n this.state.pos--;\n this.readTemplateToken();\n }\n\n // Reads template string tokens.\n readTemplateToken(): void {\n const opening = this.input[this.state.pos];\n const { str, firstInvalidLoc, pos, curLine, lineStart } =\n readStringContents(\n \"template\",\n this.input,\n this.state.pos + 1, // skip '`' or `}`\n this.state.lineStart,\n this.state.curLine,\n this.errorHandlers_readStringContents_template,\n );\n this.state.pos = pos + 1; // skip '`' or `$`\n this.state.lineStart = lineStart;\n this.state.curLine = curLine;\n\n if (firstInvalidLoc) {\n this.state.firstInvalidTemplateEscapePos = new Position(\n firstInvalidLoc.curLine,\n firstInvalidLoc.pos - firstInvalidLoc.lineStart,\n firstInvalidLoc.pos,\n );\n }\n\n if (this.input.codePointAt(pos) === charCodes.graveAccent) {\n this.finishToken(\n tt.templateTail,\n firstInvalidLoc ? null : opening + str + \"`\",\n );\n } else {\n this.state.pos++; // skip '{'\n this.finishToken(\n tt.templateNonTail,\n firstInvalidLoc ? null : opening + str + \"${\",\n );\n }\n }\n\n recordStrictModeErrors(\n toParseError: DeferredStrictError,\n { at }: { at: Position },\n ) {\n const index = at.index;\n\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\n // Read an identifier, and return it as a string. Sets `this.state.containsEsc`\n // to whether the word contained a '\\u' escape.\n //\n // Incrementally adds only escaped chars, adding other chunks as-is\n // as a micro-optimization.\n //\n // When `firstCode` is given, it assumes it is always an identifier start and\n // will skip reading start position again\n\n readWord1(firstCode?: number): string {\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\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 === charCodes.backslash) {\n this.state.containsEsc = true;\n\n word += this.input.slice(chunkStart, this.state.pos);\n const escStart = this.state.curPosition();\n const identifierCheck =\n this.state.pos === start ? isIdentifierStart : isIdentifierChar;\n\n if (this.input.charCodeAt(++this.state.pos) !== charCodes.lowercaseU) {\n this.raise(Errors.MissingUnicodeEscape, {\n at: this.state.curPosition(),\n });\n chunkStart = this.state.pos - 1;\n continue;\n }\n\n ++this.state.pos;\n const esc = this.readCodePoint(true);\n if (esc !== null) {\n if (!identifierCheck(esc)) {\n this.raise(Errors.EscapedCharNotAnIdentifier, { at: escStart });\n }\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\n // Read an identifier or keyword token. Will check for reserved\n // words when necessary.\n\n readWord(firstCode?: number): void {\n const word = this.readWord1(firstCode);\n const type = keywordTypes.get(word);\n if (type !== undefined) {\n // We don't use word as state.value here because word is a dynamic string\n // while token label is a shared constant string\n this.finishToken(type, tokenLabelName(type));\n } else {\n this.finishToken(tt.name, word);\n }\n }\n\n checkKeywordEscapes(): void {\n const { type } = this.state;\n if (tokenIsKeyword(type) && this.state.containsEsc) {\n this.raise(Errors.InvalidEscapedReservedWord, {\n at: this.state.startLoc,\n reservedWord: tokenLabelName(type),\n });\n }\n }\n\n /**\n * Raise a `ParseError` given the appropriate properties. If passed a\n * `Position` for the `at` property, raises the `ParseError` at that location.\n * Otherwise, if passed a `Node`, raises the `ParseError` at the start\n * location of that `Node`.\n *\n * If `errorRecovery` is `true`, the error is pushed to the errors array and\n * returned. If `errorRecovery` is `false`, the error is instead thrown.\n */\n raise<ErrorDetails>(\n toParseError: ParseErrorConstructor<ErrorDetails>,\n raiseProperties: RaiseProperties<ErrorDetails>,\n ): ParseError<ErrorDetails> {\n const { at, ...details } = raiseProperties;\n const loc = at instanceof Position ? at : at.loc.start;\n // @ts-expect-error: refine details typing\n const error = toParseError({ loc, details });\n\n if (!this.options.errorRecovery) throw error;\n if (!this.isLookahead) this.state.errors.push(error);\n\n return error;\n }\n\n /**\n * If `errorRecovery` is `false`, this method behaves identically to `raise`.\n * If `errorRecovery` is `true`, this method will first see if there is\n * already an error stored at the same `Position`, and replaces it with the\n * one generated here.\n */\n raiseOverwrite<ErrorDetails>(\n toParseError: ParseErrorConstructor<ErrorDetails>,\n raiseProperties: RaiseProperties<ErrorDetails>,\n ): ParseError<ErrorDetails> | never {\n const { at, ...details } = raiseProperties;\n const loc = at instanceof Position ? at : at.loc.start;\n const pos = loc.index;\n const errors = this.state.errors;\n\n for (let i = errors.length - 1; i >= 0; i--) {\n const error = errors[i];\n if (error.loc.index === pos) {\n // @ts-expect-error: refine details typing\n return (errors[i] = toParseError({ loc, details }));\n }\n if (error.loc.index < pos) break;\n }\n\n return this.raise(toParseError, raiseProperties);\n }\n\n // updateContext is used by the jsx plugin\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n updateContext(prevType: TokenType): void {}\n\n // Raise an unexpected token error. Can take the expected token type.\n unexpected(loc?: Position | null, type?: TokenType): void {\n throw this.raise(Errors.UnexpectedToken, {\n expected: type ? tokenLabelName(type) : null,\n at: loc != null ? loc : this.state.startLoc,\n });\n }\n\n expectPlugin(pluginName: Plugin, loc?: Position): true {\n if (this.hasPlugin(pluginName)) {\n return true;\n }\n\n throw this.raise(Errors.MissingPlugin, {\n at: loc != null ? loc : this.state.startLoc,\n missingPlugin: [pluginName],\n });\n }\n\n expectOnePlugin(pluginNames: Plugin[]): void {\n if (!pluginNames.some(name => this.hasPlugin(name))) {\n throw this.raise(Errors.MissingOneOfPlugins, {\n at: this.state.startLoc,\n missingPlugin: pluginNames,\n });\n }\n }\n\n errorBuilder(error: ParseErrorConstructor<{}>) {\n return (pos: number, lineStart: number, curLine: number) => {\n this.raise(error, {\n at: buildPosition(pos, lineStart, curLine),\n });\n };\n }\n\n errorHandlers_readInt: IntErrorHandlers = {\n invalidDigit: (pos, lineStart, curLine, radix) => {\n if (!this.options.errorRecovery) return false;\n\n this.raise(Errors.InvalidDigit, {\n at: buildPosition(pos, lineStart, curLine),\n radix,\n });\n // Continue parsing the number as if there was no invalid digit.\n return true;\n },\n numericSeparatorInEscapeSequence: this.errorBuilder(\n Errors.NumericSeparatorInEscapeSequence,\n ),\n unexpectedNumericSeparator: this.errorBuilder(\n Errors.UnexpectedNumericSeparator,\n ),\n };\n\n errorHandlers_readCodePoint: CodePointErrorHandlers = {\n ...this.errorHandlers_readInt,\n invalidEscapeSequence: this.errorBuilder(Errors.InvalidEscapeSequence),\n invalidCodePoint: this.errorBuilder(Errors.InvalidCodePoint),\n };\n\n errorHandlers_readStringContents_string: StringContentsErrorHandlers = {\n ...this.errorHandlers_readCodePoint,\n strictNumericEscape: (pos, lineStart, curLine) => {\n this.recordStrictModeErrors(Errors.StrictNumericEscape, {\n at: buildPosition(pos, lineStart, curLine),\n });\n },\n unterminated: (pos, lineStart, curLine) => {\n throw this.raise(Errors.UnterminatedString, {\n // Report the error at the string quote\n at: buildPosition(pos - 1, lineStart, curLine),\n });\n },\n };\n\n errorHandlers_readStringContents_template: StringContentsErrorHandlers = {\n ...this.errorHandlers_readCodePoint,\n strictNumericEscape: this.errorBuilder(Errors.StrictNumericEscape),\n unterminated: (pos, lineStart, curLine) => {\n throw this.raise(Errors.UnterminatedTemplate, {\n at: buildPosition(pos, lineStart, curLine),\n });\n },\n };\n}\n","import { ClassElementType } from \"./scopeflags.ts\";\nimport type { Position } from \"./location.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport type Tokenizer from \"../tokenizer/index.ts\";\n\nexport class ClassScope {\n // A list of private named declared in the current class\n privateNames: Set<string> = new Set();\n\n // A list of private getters of setters without their counterpart\n loneAccessors: Map<string, ClassElementType> = new Map();\n\n // A list of private names used before being defined, mapping to\n // their position.\n undefinedPrivateNames: Map<string, Position> = new Map();\n}\n\nexport default class ClassScopeHandler {\n parser: Tokenizer;\n stack: Array<ClassScope> = [];\n undefinedPrivateNames: Map<string, Position> = new Map();\n\n constructor(parser: Tokenizer) {\n this.parser = parser;\n }\n\n current(): ClassScope {\n return this.stack[this.stack.length - 1];\n }\n\n enter() {\n this.stack.push(new ClassScope());\n }\n\n exit() {\n const oldClassScope = this.stack.pop();\n\n // Migrate the usage of not yet defined private names to the outer\n // class scope, or raise an error if we reached the top-level scope.\n\n const current = this.current();\n\n // Array.from is needed because this is compiled to an array-like for loop\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, {\n at: loc,\n identifierName: name,\n });\n }\n }\n }\n\n declarePrivateName(\n name: string,\n elementType: ClassElementType,\n loc: Position,\n ) {\n const { privateNames, loneAccessors, undefinedPrivateNames } =\n this.current();\n let redefined = privateNames.has(name);\n\n if (elementType & ClassElementType.KIND_ACCESSOR) {\n const accessor = redefined && loneAccessors.get(name);\n if (accessor) {\n const oldStatic = accessor & ClassElementType.FLAG_STATIC;\n const newStatic = elementType & ClassElementType.FLAG_STATIC;\n\n const oldKind = accessor & ClassElementType.KIND_ACCESSOR;\n const newKind = elementType & ClassElementType.KIND_ACCESSOR;\n\n // The private name can be duplicated only if it is used by\n // two accessors with different kind (get and set), and if\n // they have the same placement (static or not).\n redefined = oldKind === newKind || oldStatic !== newStatic;\n\n if (!redefined) loneAccessors.delete(name);\n } else if (!redefined) {\n loneAccessors.set(name, elementType);\n }\n }\n\n if (redefined) {\n this.parser.raise(Errors.PrivateNameRedeclaration, {\n at: loc,\n identifierName: name,\n });\n }\n\n privateNames.add(name);\n undefinedPrivateNames.delete(name);\n }\n\n usePrivateName(name: string, loc: Position) {\n let classScope;\n for (classScope of this.stack) {\n if (classScope.privateNames.has(name)) return;\n }\n\n if (classScope) {\n classScope.undefinedPrivateNames.set(name, loc);\n } else {\n // top-level\n this.parser.raise(Errors.InvalidPrivateFieldResolution, {\n at: loc,\n identifierName: name,\n });\n }\n }\n}\n","import { Errors, type ParseErrorConstructor } from \"../parse-error.ts\";\nimport type { Position } from \"./location.ts\";\nimport type { Node } from \"../types.ts\";\nimport type Tokenizer from \"../tokenizer/index.ts\";\n\n/**\n * @module util/expression-scope\n\nExpressionScope is used to track declaration errors in these ambiguous patterns:\n\n- CoverParenthesizedExpressionAndArrowParameterList\n e.g. we don't know if `({ x })` is an parenthesized expression or an\n arrow function parameters until we see an `=>` after `)`.\n\n- CoverCallExpressionAndAsyncArrowHead\n e.g. we don't know if `async({ x })` is a call expression or an async arrow\n function parameters until we see an `=>` after `)`\n\nThe following declaration errors (@see parser-errors/standard) will be recorded in\nsome expression scopes and thrown later when we know what the ambiguous pattern is\n\n- AwaitBindingIdentifier\n- AwaitExpressionFormalParameter\n- YieldInParameter\n- InvalidParenthesizedAssignment when parenthesized is an identifier\n\nThere are four different expression scope\n- Expression\n A general scope that represents program / function body / static block. No errors\n will be recorded nor thrown in this scope.\n\n- MaybeArrowParameterDeclaration\n A scope that represents ambiguous arrow head e.g. `(x)`. Errors will be recorded\n alongside parent scopes and thrown when `ExpressionScopeHandler#validateAsPattern`\n is called.\n\n- MaybeAsyncArrowParameterDeclaration\n A scope that represents ambiguous async arrow head e.g. `async(x)`. Errors will\n be recorded alongside parent scopes and thrown when\n `ExpressionScopeHandler#validateAsPattern` is called.\n\n- ParameterDeclaration\n A scope that represents unambiguous function parameters `function(x)`. Errors\n recorded in this scope will be thrown immediately. No errors will be recorded in\n this scope.\n\n// @see {@link https://docs.google.com/document/d/1FAvEp9EUK-G8kHfDIEo_385Hs2SUBCYbJ5H-NnLvq8M|V8 Expression Scope design docs}\n */\n\nconst enum ExpressionScopeType {\n kExpression = 0,\n kMaybeArrowParameterDeclaration = 1,\n kMaybeAsyncArrowParameterDeclaration = 2,\n kParameterDeclaration = 3,\n}\n\nclass ExpressionScope {\n declare type: ExpressionScopeType;\n\n constructor(type: ExpressionScopeType = ExpressionScopeType.kExpression) {\n this.type = type;\n }\n\n canBeArrowParameterDeclaration(): this is ArrowHeadParsingScope {\n return (\n this.type === ExpressionScopeType.kMaybeAsyncArrowParameterDeclaration ||\n this.type === ExpressionScopeType.kMaybeArrowParameterDeclaration\n );\n }\n\n isCertainlyParameterDeclaration() {\n return this.type === ExpressionScopeType.kParameterDeclaration;\n }\n}\n\ntype ArrowHeadParsingParameterInitializerError =\n | typeof Errors.AwaitExpressionFormalParameter\n | typeof Errors.YieldInParameter;\ntype ArrowHeadParsingDeclarationError =\n | ArrowHeadParsingParameterInitializerError\n | typeof Errors.InvalidParenthesizedAssignment\n | typeof Errors.AwaitBindingIdentifier;\n\nclass ArrowHeadParsingScope extends ExpressionScope {\n declarationErrors: Map<number, [ParseErrorConstructor<{}>, Position]> =\n new Map();\n constructor(\n type:\n | ExpressionScopeType.kMaybeArrowParameterDeclaration\n | ExpressionScopeType.kMaybeAsyncArrowParameterDeclaration,\n ) {\n super(type);\n }\n recordDeclarationError(\n ParsingErrorClass: ParseErrorConstructor<{}>,\n {\n at,\n }: {\n at: Position;\n },\n ) {\n const index = at.index;\n\n this.declarationErrors.set(index, [ParsingErrorClass, at]);\n }\n clearDeclarationError(index: number) {\n this.declarationErrors.delete(index);\n }\n iterateErrors(\n iterator: (a: [ArrowHeadParsingDeclarationError, Position]) => void,\n ) {\n this.declarationErrors.forEach(iterator);\n }\n}\n\nexport default class ExpressionScopeHandler {\n parser: Tokenizer;\n stack: Array<ExpressionScope> = [new ExpressionScope()];\n\n constructor(parser: Tokenizer) {\n this.parser = parser;\n }\n enter(scope: ExpressionScope) {\n this.stack.push(scope);\n }\n\n exit() {\n this.stack.pop();\n }\n\n /**\n * Record likely parameter initializer errors\n *\n * When current scope is a ParameterDeclaration, the error will be thrown immediately,\n * otherwise it will be recorded to any ancestry MaybeArrowParameterDeclaration and\n * MaybeAsyncArrowParameterDeclaration scope until an Expression scope is seen.\n */\n recordParameterInitializerError(\n toParseError: ArrowHeadParsingParameterInitializerError,\n {\n at: node,\n }: {\n at: Node;\n },\n ): void {\n const origin = { at: node.loc.start };\n const { stack } = this;\n let i = stack.length - 1;\n let scope: ExpressionScope = stack[i];\n while (!scope.isCertainlyParameterDeclaration()) {\n if (scope.canBeArrowParameterDeclaration()) {\n scope.recordDeclarationError(toParseError, origin);\n } else {\n /*:: invariant(scope.type == ExpressionScopeType.kExpression) */\n // Type-Expression is the boundary where initializer error can populate to\n return;\n }\n scope = stack[--i];\n }\n this.parser.raise(toParseError, origin);\n }\n\n /**\n * Record errors that must be thrown if the current pattern ends up being an arrow\n * function parameter. This is used to record parenthesized identifiers, and to record\n * \"a as T\" and \"<T> a\" type assertions when parsing typescript.\n *\n * A parenthesized identifier (or type assertion) in LHS can be ambiguous because the assignment\n * can be transformed to an assignable later, but not vice versa:\n * For example, in `([(a) = []] = []) => {}`, we think `(a) = []` is an LHS in `[(a) = []]`,\n * an LHS within `[(a) = []] = []`. However the LHS chain is then transformed by toAssignable,\n * and we should throw assignment `(a)`, which is only valid in LHS. Hence we record the\n * location of parenthesized `(a)` to current scope if it is one of MaybeArrowParameterDeclaration\n * and MaybeAsyncArrowParameterDeclaration\n *\n * Unlike `recordParameterInitializerError`, we don't record to ancestry scope because we\n * validate arrow head parsing scope before exit, and then the LHS will be unambiguous:\n * For example, in `( x = ( [(a) = []] = [] ) ) => {}`, we should not record `(a)` in `( x = ... ) =>`\n * arrow scope because when we finish parsing `( [(a) = []] = [] )`, it is an unambiguous assignment\n * expression and can not be cast to pattern\n */\n recordArrowParameterBindingError(\n error: ParseErrorConstructor<{}>,\n {\n at: node,\n }: {\n at: Node;\n },\n ): void {\n const { stack } = this;\n const scope: ExpressionScope = stack[stack.length - 1];\n const origin = { at: 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\n /**\n * Record likely async arrow parameter errors\n *\n * Errors will be recorded to any ancestry MaybeAsyncArrowParameterDeclaration\n * scope until an Expression scope is seen.\n */\n recordAsyncArrowParametersError({ at }: { at: Position }): void {\n const { stack } = this;\n let i = stack.length - 1;\n let scope: ExpressionScope = stack[i];\n while (scope.canBeArrowParameterDeclaration()) {\n if (\n scope.type === ExpressionScopeType.kMaybeAsyncArrowParameterDeclaration\n ) {\n scope.recordDeclarationError(Errors.AwaitBindingIdentifier, { at });\n }\n scope = stack[--i];\n }\n }\n\n validateAsPattern(): void {\n const { stack } = this;\n const currentScope = stack[stack.length - 1];\n if (!currentScope.canBeArrowParameterDeclaration()) return;\n currentScope.iterateErrors(([toParseError, loc]) => {\n this.parser.raise(toParseError, { at: loc });\n // iterate from parent scope\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}\n\nexport function newParameterDeclarationScope() {\n return new ExpressionScope(ExpressionScopeType.kParameterDeclaration);\n}\n\nexport function newArrowHeadScope() {\n return new ArrowHeadParsingScope(\n ExpressionScopeType.kMaybeArrowParameterDeclaration,\n );\n}\n\nexport function newAsyncArrowScope() {\n return new ArrowHeadParsingScope(\n ExpressionScopeType.kMaybeAsyncArrowParameterDeclaration,\n );\n}\n\nexport function newExpressionScope() {\n return new ExpressionScope();\n}\n","// ProductionParameterHandler is a stack fashioned production parameter tracker\n// https://tc39.es/ecma262/#sec-grammar-notation\n// The tracked parameters are defined above.\n//\n// Whenever [+Await]/[+Yield] appears in the right-hand sides of a production,\n// we must enter a new tracking stack. For example when parsing\n//\n// AsyncFunctionDeclaration [Yield, Await]:\n// async [no LineTerminator here] function BindingIdentifier[?Yield, ?Await]\n// ( FormalParameters[~Yield, +Await] ) { AsyncFunctionBody }\n//\n// we must follow such process:\n//\n// 1. parse async keyword\n// 2. parse function keyword\n// 3. parse bindingIdentifier <= inherit current parameters: [?Await]\n// 4. enter new stack with (PARAM_AWAIT)\n// 5. parse formal parameters <= must have [Await] parameter [+Await]\n// 6. parse function body\n// 7. exit current stack\n\nexport const enum ParamKind {\n // Initial Parameter flags\n PARAM = 0b0000,\n // track [Yield] production parameter\n PARAM_YIELD = 0b0001,\n // track [Await] production parameter\n PARAM_AWAIT = 0b0010,\n // track [Return] production parameter\n PARAM_RETURN = 0b0100,\n // track [In] production parameter\n PARAM_IN = 0b1000,\n}\n\n// todo(flow->ts) - check if more granular type can be used,\n// type below is not good because things like PARAM_AWAIT|PARAM_YIELD are not included\n// export type ParamKind =\n// | typeof PARAM\n// | typeof PARAM_AWAIT\n// | typeof PARAM_IN\n// | typeof PARAM_RETURN\n// | typeof PARAM_YIELD;\n\nexport default class ProductionParameterHandler {\n stacks: Array<ParamKind> = [];\n enter(flags: ParamKind) {\n this.stacks.push(flags);\n }\n\n exit() {\n this.stacks.pop();\n }\n\n currentFlags(): ParamKind {\n return this.stacks[this.stacks.length - 1];\n }\n\n get hasAwait(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_AWAIT) > 0;\n }\n\n get hasYield(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_YIELD) > 0;\n }\n\n get hasReturn(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_RETURN) > 0;\n }\n\n get hasIn(): boolean {\n return (this.currentFlags() & ParamKind.PARAM_IN) > 0;\n }\n}\n\nexport function functionFlags(\n isAsync: boolean,\n isGenerator: boolean,\n): ParamKind {\n return (\n (isAsync ? ParamKind.PARAM_AWAIT : 0) |\n (isGenerator ? ParamKind.PARAM_YIELD : 0)\n );\n}\n","import type { Position } from \"../util/location.ts\";\nimport {\n tokenIsLiteralPropertyName,\n tt,\n type TokenType,\n} from \"../tokenizer/types.ts\";\nimport Tokenizer from \"../tokenizer/index.ts\";\nimport type State from \"../tokenizer/state.ts\";\nimport type {\n EstreePropertyDefinition,\n Node,\n ObjectProperty,\n} from \"../types.ts\";\nimport { lineBreak, skipWhiteSpaceToLineBreak } from \"../util/whitespace.ts\";\nimport { isIdentifierChar } from \"../util/identifier.ts\";\nimport ClassScopeHandler from \"../util/class-scope.ts\";\nimport ExpressionScopeHandler from \"../util/expression-scope.ts\";\nimport { ScopeFlag } from \"../util/scopeflags.ts\";\nimport ProductionParameterHandler, {\n ParamKind,\n} from \"../util/production-parameter.ts\";\nimport {\n Errors,\n type ParseError,\n type ParseErrorConstructor,\n} from \"../parse-error.ts\";\nimport type Parser from \"./index.ts\";\n\nimport type ScopeHandler from \"../util/scope.ts\";\n\ntype TryParse<Node, Error, Thrown, Aborted, FailState> = {\n node: Node;\n error: Error;\n thrown: Thrown;\n aborted: Aborted;\n failState: FailState;\n};\n\n// ## Parser utilities\n\nexport default abstract class UtilParser extends Tokenizer {\n // Forward-declaration: defined in parser/index.js\n abstract getScopeHandler(): { new (...args: any): ScopeHandler };\n\n addExtra(\n node: Partial<Node>,\n key: string,\n value: any,\n enumerable: boolean = true,\n ): void {\n if (!node) return;\n\n const extra = (node.extra = node.extra || {});\n if (enumerable) {\n extra[key] = value;\n } else {\n Object.defineProperty(extra, key, { enumerable, value });\n }\n }\n\n // Tests whether parsed token is a contextual keyword.\n\n isContextual(token: TokenType): boolean {\n return this.state.type === token && !this.state.containsEsc;\n }\n\n isUnparsedContextual(nameStart: number, name: string): boolean {\n const nameEnd = nameStart + name.length;\n if (this.input.slice(nameStart, nameEnd) === name) {\n const nextCh = this.input.charCodeAt(nameEnd);\n return !(\n isIdentifierChar(nextCh) ||\n // check if `nextCh is between 0xd800 - 0xdbff,\n // if `nextCh` is NaN, `NaN & 0xfc00` is 0, the function\n // returns true\n (nextCh & 0xfc00) === 0xd800\n );\n }\n return false;\n }\n\n isLookaheadContextual(name: string): boolean {\n const next = this.nextTokenStart();\n return this.isUnparsedContextual(next, name);\n }\n\n // Consumes contextual keyword if possible.\n\n eatContextual(token: TokenType): boolean {\n if (this.isContextual(token)) {\n this.next();\n return true;\n }\n return false;\n }\n\n // Asserts that following token is given contextual keyword.\n\n expectContextual(\n token: TokenType,\n toParseError?: ParseErrorConstructor<any>,\n ): void {\n if (!this.eatContextual(token)) {\n if (toParseError != null) {\n throw this.raise(toParseError, { at: this.state.startLoc });\n }\n this.unexpected(null, token);\n }\n }\n\n // Test whether a semicolon can be inserted at the current position.\n\n canInsertSemicolon(): boolean {\n return (\n this.match(tt.eof) ||\n this.match(tt.braceR) ||\n this.hasPrecedingLineBreak()\n );\n }\n\n hasPrecedingLineBreak(): boolean {\n return lineBreak.test(\n this.input.slice(this.state.lastTokEndLoc.index, this.state.start),\n );\n }\n\n hasFollowingLineBreak(): boolean {\n skipWhiteSpaceToLineBreak.lastIndex = this.state.end;\n return skipWhiteSpaceToLineBreak.test(this.input);\n }\n\n isLineTerminator(): boolean {\n return this.eat(tt.semi) || this.canInsertSemicolon();\n }\n\n // Consume a semicolon, or, failing that, see if we are allowed to\n // pretend that there is a semicolon at this position.\n\n semicolon(allowAsi: boolean = true): void {\n if (allowAsi ? this.isLineTerminator() : this.eat(tt.semi)) return;\n this.raise(Errors.MissingSemicolon, { at: this.state.lastTokEndLoc });\n }\n\n // Expect a token of a given type. If found, consume it, otherwise,\n // raise an unexpected token error at given pos.\n\n expect(type: TokenType, loc?: Position | null): void {\n this.eat(type) || this.unexpected(loc, type);\n }\n\n // tryParse will clone parser state.\n // It is expensive and should be used with cautions\n tryParse<T extends Node | ReadonlyArray<Node>>(\n fn: (abort: (node?: T) => never) => T,\n oldState: State = this.state.clone(),\n ):\n | TryParse<T, null, false, false, null>\n | TryParse<T | null, ParseError<any>, boolean, false, State>\n | TryParse<T | null, null, false, true, State> {\n const abortSignal: {\n node: T | null;\n } = { node: null };\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 // tokensLength should be preserved during error recovery mode\n // since the parser does not halt and will instead parse the\n // remaining tokens\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\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 // @ts-expect-error casting general syntax error to parse error\n return { node: null, error, thrown: true, aborted: false, failState };\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\n throw error;\n }\n }\n\n checkExpressionErrors(\n refExpressionErrors: ExpressionErrors | undefined | null,\n andThrow: boolean,\n ) {\n if (!refExpressionErrors) return false;\n const {\n shorthandAssignLoc,\n doubleProtoLoc,\n privateKeyLoc,\n optionalParametersLoc,\n } = refExpressionErrors;\n\n const hasErrors =\n !!shorthandAssignLoc ||\n !!doubleProtoLoc ||\n !!optionalParametersLoc ||\n !!privateKeyLoc;\n\n if (!andThrow) {\n return hasErrors;\n }\n\n if (shorthandAssignLoc != null) {\n this.raise(Errors.InvalidCoverInitializedName, {\n at: shorthandAssignLoc,\n });\n }\n\n if (doubleProtoLoc != null) {\n this.raise(Errors.DuplicateProto, { at: doubleProtoLoc });\n }\n\n if (privateKeyLoc != null) {\n this.raise(Errors.UnexpectedPrivateField, { at: privateKeyLoc });\n }\n\n if (optionalParametersLoc != null) {\n this.unexpected(optionalParametersLoc);\n }\n }\n\n /**\n * Test if current token is a literal property name\n * https://tc39.es/ecma262/#prod-LiteralPropertyName\n * LiteralPropertyName:\n * IdentifierName\n * StringLiteral\n * NumericLiteral\n * BigIntLiteral\n */\n isLiteralPropertyName(): boolean {\n return tokenIsLiteralPropertyName(this.state.type);\n }\n\n /**\n * Test if given node is a PrivateName\n * will be overridden in ESTree plugin\n */\n isPrivateName(node: Node): boolean {\n return node.type === \"PrivateName\";\n }\n\n /**\n * Return the string value of a given private name\n * WITHOUT `#`\n * @see {@link https://tc39.es/ecma262/#sec-static-semantics-stringvalue}\n */\n getPrivateNameSV(node: Node): string {\n return node.id.name;\n }\n\n /**\n * Return whether the given node is a member/optional chain that\n * contains a private name as its property\n * It is overridden in ESTree plugin\n */\n hasPropertyAsPrivateName(node: Node): boolean {\n return (\n (node.type === \"MemberExpression\" ||\n node.type === \"OptionalMemberExpression\") &&\n this.isPrivateName(node.property)\n );\n }\n\n isObjectProperty(\n node: Node,\n ): node is ObjectProperty | EstreePropertyDefinition {\n return node.type === \"ObjectProperty\";\n }\n\n isObjectMethod(node: Node): boolean {\n return node.type === \"ObjectMethod\";\n }\n\n initializeScopes(\n this: Parser,\n inModule: boolean = this.options.sourceType === \"module\",\n ): () => void {\n // Initialize state\n const oldLabels = this.state.labels;\n this.state.labels = [];\n\n const oldExportedIdentifiers = this.exportedIdentifiers;\n this.exportedIdentifiers = new Set();\n\n // initialize scopes\n const oldInModule = this.inModule;\n this.inModule = inModule;\n\n const oldScope = this.scope;\n const ScopeHandler = this.getScopeHandler();\n this.scope = new ScopeHandler(this, inModule);\n\n const oldProdParam = this.prodParam;\n this.prodParam = new ProductionParameterHandler();\n\n const oldClassScope = this.classScope;\n this.classScope = new ClassScopeHandler(this);\n\n const oldExpressionScope = this.expressionScope;\n this.expressionScope = new ExpressionScopeHandler(this);\n\n return () => {\n // Revert state\n this.state.labels = oldLabels;\n this.exportedIdentifiers = oldExportedIdentifiers;\n\n // Revert scopes\n this.inModule = oldInModule;\n this.scope = oldScope;\n this.prodParam = oldProdParam;\n this.classScope = oldClassScope;\n this.expressionScope = oldExpressionScope;\n };\n }\n\n enterInitialScopes() {\n let paramFlags = ParamKind.PARAM;\n if (this.inModule) {\n paramFlags |= ParamKind.PARAM_AWAIT;\n }\n this.scope.enter(ScopeFlag.PROGRAM);\n this.prodParam.enter(paramFlags);\n }\n\n checkDestructuringPrivate(refExpressionErrors: ExpressionErrors) {\n const { privateKeyLoc } = refExpressionErrors;\n if (privateKeyLoc !== null) {\n this.expectPlugin(\"destructuringPrivate\", privateKeyLoc);\n }\n }\n}\n\n/**\n * The ExpressionErrors is a context struct used to track ambiguous patterns\n * When we are sure the parsed pattern is a RHS, which means it is not a pattern,\n * we will throw on this position on invalid assign syntax, otherwise it will be reset to -1\n *\n * Types of ExpressionErrors:\n *\n * - **shorthandAssignLoc**: track initializer `=` position\n * - **doubleProtoLoc**: track the duplicate `__proto__` key position\n * - **privateKey**: track private key `#p` position\n * - **optionalParametersLoc**: track the optional parameter (`?`).\n * It's only used by typescript and flow plugins\n */\nexport class ExpressionErrors {\n shorthandAssignLoc: Position | undefined | null = null;\n doubleProtoLoc: Position | undefined | null = null;\n privateKeyLoc: Position | undefined | null = null;\n optionalParametersLoc: Position | undefined | null = null;\n}\n","import type Parser from \"./index.ts\";\nimport UtilParser from \"./util.ts\";\nimport { SourceLocation, type Position } from \"../util/location.ts\";\nimport type { Comment, Node as NodeType, NodeBase } from \"../types.ts\";\n\n// Start an AST node, attaching a start offset.\n\nclass Node implements NodeBase {\n constructor(parser: Parser, pos: number, loc: Position) {\n this.start = pos;\n this.end = 0;\n this.loc = new SourceLocation(loc);\n if (parser?.options.ranges) this.range = [pos, 0];\n if (parser?.filename) this.loc.filename = parser.filename;\n }\n\n type: string = \"\";\n declare start: number;\n declare end: number;\n declare loc: SourceLocation;\n declare range: [number, number];\n declare leadingComments: Array<Comment>;\n declare trailingComments: Array<Comment>;\n declare innerComments: Array<Comment>;\n declare extra: {\n [key: string]: any;\n };\n}\nconst NodePrototype = Node.prototype;\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-expect-error __clone is not defined in Node prototype\n NodePrototype.__clone = function (): Node {\n const newNode = new Node(undefined, this.start, this.loc.start);\n const keys = Object.keys(this) as (keyof Node)[];\n for (let i = 0, length = keys.length; i < length; i++) {\n const key = keys[i];\n // Do not clone comments that are already attached to the node\n if (\n key !== \"leadingComments\" &&\n key !== \"trailingComments\" &&\n key !== \"innerComments\"\n ) {\n // @ts-expect-error cloning this to newNode\n newNode[key] = this[key];\n }\n }\n\n return newNode;\n };\n}\n\nfunction clonePlaceholder(node: any): any {\n return cloneIdentifier(node);\n}\n\nexport function cloneIdentifier(node: any): any {\n // We don't need to clone `typeAnnotations` and `optional`: because\n // cloneIdentifier is only used in object shorthand and named import/export.\n // Neither of them allow type annotations after the identifier or optional identifier\n const { type, start, end, loc, range, extra, name } = 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}\n\nexport function cloneStringLiteral(node: any): any {\n const { type, start, end, loc, range, extra } = 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 // estree set node.raw instead of node.extra\n cloned.raw = node.raw;\n } else {\n cloned.extra = extra;\n }\n cloned.value = node.value;\n return cloned;\n}\n\nexport type Undone<T extends NodeType> = Omit<T, \"type\">;\n\nexport abstract class NodeUtils extends UtilParser {\n startNode<T extends NodeType>(): Undone<T> {\n // @ts-expect-error cast Node as Undone<T>\n return new Node(this, this.state.start, this.state.startLoc);\n }\n\n startNodeAt<T extends NodeType>(loc: Position): Undone<T> {\n // @ts-expect-error cast Node as Undone<T>\n return new Node(this, loc.index, loc);\n }\n\n /** Start a new node with a previous node's location. */\n startNodeAtNode<T extends NodeType>(type: Undone<NodeType>): Undone<T> {\n return this.startNodeAt(type.loc.start);\n }\n\n // Finish an AST node, adding `type` and `end` properties.\n\n finishNode<T extends NodeType>(node: Undone<T>, type: T[\"type\"]): T {\n return this.finishNodeAt(node, type, this.state.lastTokEndLoc);\n }\n\n // Finish node at given position\n\n finishNodeAt<T extends NodeType>(\n node: Omit<T, \"type\">,\n type: T[\"type\"],\n endLoc: Position,\n ): T {\n if (process.env.NODE_ENV !== \"production\" && node.end > 0) {\n throw new Error(\n \"Do not call finishNode*() twice on the same node.\" +\n \" Instead use resetEndLocation() or change type directly.\",\n );\n }\n // @ts-expect-error migrate to Babel types AST typings\n node.type = type;\n // @ts-expect-error migrate to Babel types AST typings\n node.end = endLoc.index;\n node.loc.end = endLoc;\n if (this.options.ranges) node.range[1] = endLoc.index;\n if (this.options.attachComment) this.processComment(node as T);\n return node as T;\n }\n\n resetStartLocation(node: NodeBase, startLoc: Position): void {\n node.start = startLoc.index;\n node.loc.start = startLoc;\n if (this.options.ranges) node.range[0] = startLoc.index;\n }\n\n resetEndLocation(\n node: NodeBase,\n endLoc: Position = this.state.lastTokEndLoc,\n ): void {\n node.end = endLoc.index;\n node.loc.end = endLoc;\n if (this.options.ranges) node.range[1] = endLoc.index;\n }\n\n /**\n * Reset the start location of node to the start location of locationNode\n */\n resetStartLocationFromNode(node: NodeBase, locationNode: NodeBase): void {\n this.resetStartLocation(node, locationNode.loc.start);\n }\n}\n","/*:: declare var invariant; */\n\nimport type Parser from \"../../parser/index.ts\";\nimport {\n tokenIsIdentifier,\n tokenIsKeyword,\n tokenIsKeywordOrIdentifier,\n tokenIsLiteralPropertyName,\n tokenLabelName,\n tt,\n type TokenType,\n tokenIsFlowInterfaceOrTypeOrOpaque,\n} from \"../../tokenizer/types.ts\";\nimport type * as N from \"../../types.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport * as charCodes from \"charcodes\";\nimport { isIteratorStart } from \"../../util/identifier.ts\";\nimport FlowScopeHandler from \"./scope.ts\";\nimport { BindingFlag, ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport type { ParseStatementFlag } from \"../../parser/statement.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport { cloneIdentifier, type Undone } from \"../../parser/node.ts\";\n\nconst reservedTypes = new Set([\n \"_\",\n \"any\",\n \"bool\",\n \"boolean\",\n \"empty\",\n \"extends\",\n \"false\",\n \"interface\",\n \"mixed\",\n \"null\",\n \"number\",\n \"static\",\n \"string\",\n \"true\",\n \"typeof\",\n \"void\",\n]);\n\n/* eslint sort-keys: \"error\" */\n// The Errors key follows https://github.com/facebook/flow/blob/master/src/parser/parse_error.ml unless it does not exist\nconst FlowErrors = ParseErrorEnum`flow`({\n AmbiguousConditionalArrow:\n \"Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.\",\n AmbiguousDeclareModuleKind:\n \"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 // TODO: When we get proper string enums in typescript make this ReservedType.\n // Not really worth it to do the whole $Values dance with reservedTypes set.\n AssignReservedType: ({ reservedType }: { reservedType: string }) =>\n `Cannot overwrite reserved type ${reservedType}.`,\n DeclareClassElement:\n \"The `declare` modifier can only appear on class fields.\",\n DeclareClassFieldInitializer:\n \"Initializers are not allowed in fields with the `declare` modifier.\",\n DuplicateDeclareModuleExports:\n \"Duplicate `declare module.exports` statement.\",\n EnumBooleanMemberNotInitialized: ({\n memberName,\n enumName,\n }: {\n memberName: string;\n enumName: string;\n }) =>\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 }: {\n memberName: string;\n enumName: string;\n }) =>\n `Enum member names need to be unique, but the name \\`${memberName}\\` has already been used before in enum \\`${enumName}\\`.`,\n EnumInconsistentMemberValues: ({ enumName }: { enumName: string }) =>\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 }: {\n invalidEnumType: string;\n enumName: string;\n }) =>\n `Enum type \\`${invalidEnumType}\\` is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n EnumInvalidExplicitTypeUnknownSupplied: ({\n enumName,\n }: {\n enumName: string;\n }) =>\n `Supplied enum type is not valid. Use one of \\`boolean\\`, \\`number\\`, \\`string\\`, or \\`symbol\\` in enum \\`${enumName}\\`.`,\n\n // TODO: When moving to typescript, we should either have each of the\n // following errors only accept the specific strings they want:\n //\n // ...PrimaryType: explicitType: \"string\" | \"number\" | \"boolean\"\n // ...SymbolType: explicitType: \"symbol\"\n // ...UnknownType: explicitType: null\n //\n // Or, alternatively, merge these three errors together into one\n // `EnumInvalidMemberInitializer` error that can accept `EnumExplicitType`\n // without alteration, and then just have its message change based on the\n // explicitType.\n EnumInvalidMemberInitializerPrimaryType: ({\n enumName,\n memberName,\n explicitType,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `Enum \\`${enumName}\\` has type \\`${explicitType}\\`, so the initializer of \\`${memberName}\\` needs to be a ${explicitType} literal.`,\n EnumInvalidMemberInitializerSymbolType: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\n `Symbol enum members cannot be initialized. Use \\`${memberName},\\` in enum \\`${enumName}\\`.`,\n EnumInvalidMemberInitializerUnknownType: ({\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n explicitType: EnumExplicitType;\n }) =>\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 }: {\n enumName: string;\n memberName: string;\n suggestion: string;\n }) =>\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 }: {\n enumName: string;\n memberName: string;\n }) =>\n `Number enum members need to be initialized, e.g. \\`${memberName} = 1\\` in enum \\`${enumName}\\`.`,\n EnumStringMemberInconsistentlyInitialized: ({\n enumName,\n }: {\n enumName: string;\n }) =>\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:\n \"An `import module` declaration can not use `type` or `typeof` keyword.\",\n ImportTypeShorthandOnlyInPureImport:\n \"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:\n \"Explicit inexact syntax cannot appear inside an explicit exact object type.\",\n InexactInsideNonObject:\n \"Explicit inexact syntax cannot appear in class or interface definitions.\",\n InexactVariance: \"Explicit inexact syntax cannot have variance.\",\n InvalidNonTypeImportInDeclareModule:\n \"Imports within a `declare module` body must always be `import type` or `import typeof`.\",\n MissingTypeParamDefault:\n \"Type parameter declaration needs a default, since a preceding type parameter declaration has a default.\",\n NestedDeclareModule:\n \"`declare module` cannot be used inside another `declare module`.\",\n NestedFlowComment: \"Cannot have a flow comment inside another flow comment.\",\n PatternIsOptional: {\n message:\n \"A binding pattern parameter cannot be optional in an implementation signature.\",\n // For consistency in TypeScript and Flow error codes\n ...(!process.env.BABEL_8_BREAKING\n ? { reasonCode: \"OptionalBindingPattern\" }\n : {}),\n },\n SetterMayNotHaveThisParam: \"A setter cannot have a `this` parameter.\",\n SpreadVariance: \"Spread properties cannot have variance.\",\n ThisParamAnnotationRequired:\n \"A type annotation is required for the `this` parameter.\",\n ThisParamBannedInConstructor:\n \"Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.\",\n ThisParamMayNotBeOptional: \"The `this` parameter cannot be optional.\",\n ThisParamMustBeFirst:\n \"The `this` parameter must be the first function parameter.\",\n ThisParamNoDefault: \"The `this` parameter may not have a default value.\",\n TypeBeforeInitializer:\n \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeCastInPattern:\n \"The type cast expression is expected to be wrapped with parenthesis.\",\n UnexpectedExplicitInexactInObject:\n \"Explicit inexact syntax must appear at the end of an inexact object.\",\n UnexpectedReservedType: ({ reservedType }: { reservedType: string }) =>\n `Unexpected reserved type ${reservedType}.`,\n UnexpectedReservedUnderscore:\n \"`_` is only allowed as a type argument to call or new.\",\n UnexpectedSpaceBetweenModuloChecks:\n \"Spaces between `%` and `checks` are not allowed here.\",\n UnexpectedSpreadType:\n \"Spread operator cannot appear in class or interface definitions.\",\n UnexpectedSubtractionOperand:\n 'Unexpected token, expected \"number\" or \"bigint\".',\n UnexpectedTokenAfterTypeParameter:\n \"Expected an arrow function after this type parameter declaration.\",\n UnexpectedTypeParameterBeforeAsyncArrowFunction:\n \"Type parameters must come after the async keyword, e.g. instead of `<T> async () => {}`, use `async <T>() => {}`.\",\n UnsupportedDeclareExportKind: ({\n unsupportedExportKind,\n suggestion,\n }: {\n unsupportedExportKind: string;\n suggestion: string;\n }) =>\n `\\`declare export ${unsupportedExportKind}\\` is not supported. Use \\`${suggestion}\\` instead.`,\n UnsupportedStatementInDeclareModule:\n \"Only declares and type imports are allowed inside declare module.\",\n UnterminatedFlowComment: \"Unterminated flow-comment.\",\n});\n/* eslint-disable sort-keys */\n\nfunction isEsModuleType(bodyElement: N.Node): boolean {\n return (\n bodyElement.type === \"DeclareExportAllDeclaration\" ||\n (bodyElement.type === \"DeclareExportDeclaration\" &&\n (!bodyElement.declaration ||\n (bodyElement.declaration.type !== \"TypeAlias\" &&\n bodyElement.declaration.type !== \"InterfaceDeclaration\")))\n );\n}\n\nfunction hasTypeImportKind(node: N.Node): boolean {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n}\n\nconst exportSuggestions = {\n const: \"declare export var\",\n let: \"declare export var\",\n type: \"export type\",\n interface: \"export interface\",\n};\n\n// Like Array#filter, but returns a tuple [ acceptedElements, discardedElements ]\nfunction partition<T>(\n list: T[],\n test: (c: T, b: number, a: T[]) => boolean | undefined | null,\n): [T[], T[]] {\n const list1: T[] = [];\n const list2: T[] = [];\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}\n\nconst FLOW_PRAGMA_REGEX = /\\*?\\s*@((?:no)?flow)\\b/;\n\n// Flow enums types\ntype EnumExplicitType = null | \"boolean\" | \"number\" | \"string\" | \"symbol\";\n\ntype EnumContext = {\n enumName: string;\n explicitType: EnumExplicitType;\n memberName: string;\n};\n\ntype EnumMemberInit =\n | {\n type: \"number\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"string\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"boolean\";\n loc: Position;\n value: N.Node;\n }\n | {\n type: \"invalid\";\n loc: Position;\n }\n | {\n type: \"none\";\n loc: Position;\n };\n\nexport default (superClass: typeof Parser) =>\n class FlowParserMixin extends superClass implements Parser {\n // The value of the @flow/@noflow pragma. Initially undefined, transitions\n // to \"@flow\" or \"@noflow\" if we see a pragma. Transitions to null if we are\n // past the initial comment.\n flowPragma: void | null | \"flow\" | \"noflow\" = undefined;\n\n getScopeHandler(): {\n new (...args: any): FlowScopeHandler;\n } {\n return FlowScopeHandler;\n }\n\n shouldParseTypes(): boolean {\n return this.getPluginOption(\"flow\", \"all\") || this.flowPragma === \"flow\";\n }\n\n shouldParseEnums(): boolean {\n return !!this.getPluginOption(\"flow\", \"enums\");\n }\n\n finishToken(type: TokenType, val: any): void {\n if (\n type !== tt.string &&\n type !== tt.semi &&\n type !== tt.interpreterDirective\n ) {\n if (this.flowPragma === undefined) {\n this.flowPragma = null;\n }\n }\n super.finishToken(type, val);\n }\n\n addComment(comment: N.Comment): void {\n if (this.flowPragma === undefined) {\n // Try to parse a flow pragma.\n const matches = FLOW_PRAGMA_REGEX.exec(comment.value);\n if (!matches) {\n // do nothing\n } 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\n flowParseTypeInitialiser(tok?: TokenType): N.FlowType {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tok || tt.colon);\n\n const type = this.flowParseType();\n this.state.inType = oldInType;\n return type;\n }\n\n flowParsePredicate(): N.FlowPredicate {\n const node = this.startNode();\n const moduloLoc = this.state.startLoc;\n this.next(); // eat `%`\n this.expectContextual(tt._checks);\n // Force '%' and 'checks' to be adjacent\n if (this.state.lastTokStart > moduloLoc.index + 1) {\n this.raise(FlowErrors.UnexpectedSpaceBetweenModuloChecks, {\n at: moduloLoc,\n });\n }\n if (this.eat(tt.parenL)) {\n node.value = super.parseExpression();\n this.expect(tt.parenR);\n return this.finishNode(node, \"DeclaredPredicate\");\n } else {\n return this.finishNode(node, \"InferredPredicate\");\n }\n }\n\n flowParseTypeAndPredicateInitialiser(): [\n N.FlowType | undefined | null,\n N.FlowPredicate | undefined | null,\n ] {\n const oldInType = this.state.inType;\n this.state.inType = true;\n this.expect(tt.colon);\n let type = null;\n let predicate = null;\n if (this.match(tt.modulo)) {\n this.state.inType = oldInType;\n predicate = this.flowParsePredicate();\n } else {\n type = this.flowParseType();\n this.state.inType = oldInType;\n if (this.match(tt.modulo)) {\n predicate = this.flowParsePredicate();\n }\n }\n return [type, predicate];\n }\n\n flowParseDeclareClass(\n node: Undone<N.FlowDeclareClass>,\n ): N.FlowDeclareClass {\n this.next();\n this.flowParseInterfaceish(node, /*isClass*/ true);\n return this.finishNode(node, \"DeclareClass\");\n }\n\n flowParseDeclareFunction(\n node: Undone<N.FlowDeclareFunction>,\n ): N.FlowDeclareFunction {\n this.next();\n\n const id = (node.id = this.parseIdentifier());\n\n const typeNode = this.startNode();\n const typeContainer = this.startNode<N.TypeAnnotation>();\n\n if (this.match(tt.lt)) {\n typeNode.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n typeNode.typeParameters = null;\n }\n\n this.expect(tt.parenL);\n const tmp = this.flowParseFunctionTypeParams();\n typeNode.params = tmp.params;\n typeNode.rest = tmp.rest;\n typeNode.this = tmp._this;\n this.expect(tt.parenR);\n\n [typeNode.returnType, node.predicate] =\n this.flowParseTypeAndPredicateInitialiser();\n\n typeContainer.typeAnnotation = this.finishNode(\n typeNode,\n \"FunctionTypeAnnotation\",\n );\n\n id.typeAnnotation = this.finishNode(typeContainer, \"TypeAnnotation\");\n\n this.resetEndLocation(id);\n this.semicolon();\n\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_FLOW_DECLARE_FN,\n node.id.loc.start,\n );\n\n return this.finishNode(node, \"DeclareFunction\");\n }\n\n flowParseDeclare(\n node: Undone<N.FlowDeclare>,\n insideModule?: boolean,\n ): N.FlowDeclare {\n if (this.match(tt._class)) {\n return this.flowParseDeclareClass(node);\n } else if (this.match(tt._function)) {\n return this.flowParseDeclareFunction(node);\n } else if (this.match(tt._var)) {\n return this.flowParseDeclareVariable(node);\n } else if (this.eatContextual(tt._module)) {\n if (this.match(tt.dot)) {\n return this.flowParseDeclareModuleExports(node);\n } else {\n if (insideModule) {\n this.raise(FlowErrors.NestedDeclareModule, {\n at: this.state.lastTokStartLoc,\n });\n }\n return this.flowParseDeclareModule(node);\n }\n } else if (this.isContextual(tt._type)) {\n return this.flowParseDeclareTypeAlias(node);\n } else if (this.isContextual(tt._opaque)) {\n return this.flowParseDeclareOpaqueType(node);\n } else if (this.isContextual(tt._interface)) {\n return this.flowParseDeclareInterface(node);\n } else if (this.match(tt._export)) {\n return this.flowParseDeclareExportDeclaration(node, insideModule);\n } else {\n this.unexpected();\n }\n }\n\n flowParseDeclareVariable(\n node: Undone<N.FlowDeclareVariable>,\n ): N.FlowDeclareVariable {\n this.next();\n node.id = this.flowParseTypeAnnotatableIdentifier(\n /*allowPrimitiveOverride*/ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_VAR,\n node.id.loc.start,\n );\n this.semicolon();\n return this.finishNode(node, \"DeclareVariable\");\n }\n\n flowParseDeclareModule(\n node: Undone<N.FlowDeclareModule>,\n ): N.FlowDeclareModule {\n this.scope.enter(ScopeFlag.OTHER);\n\n if (this.match(tt.string)) {\n node.id = super.parseExprAtom();\n } else {\n node.id = this.parseIdentifier();\n }\n\n const bodyNode = (node.body = this.startNode());\n // @ts-expect-error refine typings\n const body = (bodyNode.body = []);\n this.expect(tt.braceL);\n while (!this.match(tt.braceR)) {\n let bodyNode = this.startNode<N.ImportDeclaration>();\n\n if (this.match(tt._import)) {\n this.next();\n if (!this.isContextual(tt._type) && !this.match(tt._typeof)) {\n this.raise(FlowErrors.InvalidNonTypeImportInDeclareModule, {\n at: this.state.lastTokStartLoc,\n });\n }\n super.parseImport(bodyNode);\n } else {\n this.expectContextual(\n tt._declare,\n FlowErrors.UnsupportedStatementInDeclareModule,\n );\n // @ts-expect-error refine typings\n bodyNode = this.flowParseDeclare(bodyNode, true);\n }\n\n body.push(bodyNode);\n }\n\n this.scope.exit();\n\n this.expect(tt.braceR);\n\n this.finishNode(bodyNode, \"BlockStatement\");\n\n let kind: \"CommonJS\" | \"ES\" | null = null;\n let hasModuleExport = false;\n body.forEach(bodyElement => {\n if (isEsModuleType(bodyElement)) {\n if (kind === \"CommonJS\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, {\n at: bodyElement,\n });\n }\n kind = \"ES\";\n } else if (bodyElement.type === \"DeclareModuleExports\") {\n if (hasModuleExport) {\n this.raise(FlowErrors.DuplicateDeclareModuleExports, {\n at: bodyElement,\n });\n }\n if (kind === \"ES\") {\n this.raise(FlowErrors.AmbiguousDeclareModuleKind, {\n at: bodyElement,\n });\n }\n kind = \"CommonJS\";\n hasModuleExport = true;\n }\n });\n\n node.kind = kind || \"CommonJS\";\n return this.finishNode(node, \"DeclareModule\");\n }\n\n flowParseDeclareExportDeclaration(\n node: Undone<N.FlowDeclareExportDeclaration>,\n insideModule?: boolean | null,\n ): N.FlowDeclareExportDeclaration {\n this.expect(tt._export);\n\n if (this.eat(tt._default)) {\n if (this.match(tt._function) || this.match(tt._class)) {\n // declare export default class ...\n // declare export default function ...\n node.declaration = this.flowParseDeclare(this.startNode());\n } else {\n // declare export default [type];\n node.declaration = this.flowParseType();\n this.semicolon();\n }\n node.default = true;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else {\n if (\n this.match(tt._const) ||\n this.isLet() ||\n ((this.isContextual(tt._type) || this.isContextual(tt._interface)) &&\n !insideModule)\n ) {\n const label = this.state.value as\n | \"const\"\n | \"let\"\n | \"type\"\n | \"interface\";\n throw this.raise(FlowErrors.UnsupportedDeclareExportKind, {\n at: this.state.startLoc,\n unsupportedExportKind: label,\n suggestion: exportSuggestions[label],\n });\n }\n\n if (\n this.match(tt._var) || // declare export var ...\n this.match(tt._function) || // declare export function ...\n this.match(tt._class) || // declare export class ...\n this.isContextual(tt._opaque) // declare export opaque ..\n ) {\n node.declaration = this.flowParseDeclare(this.startNode());\n node.default = false;\n\n return this.finishNode(node, \"DeclareExportDeclaration\");\n } else if (\n this.match(tt.star) || // declare export * from ''\n this.match(tt.braceL) || // declare export {} ...\n this.isContextual(tt._interface) || // declare export interface ...\n this.isContextual(tt._type) || // declare export type ...\n this.isContextual(tt._opaque) // declare export opaque type ...\n ) {\n node = this.parseExport(\n node as Undone<N.ExportNamedDeclaration | N.ExportAllDeclaration>,\n /* decorators */ null,\n );\n if (node.type === \"ExportNamedDeclaration\") {\n node.type = \"ExportDeclaration\";\n node.default = false;\n delete node.exportKind;\n }\n\n node.type = \"Declare\" + node.type;\n\n return node as N.Node;\n }\n }\n\n this.unexpected();\n }\n\n flowParseDeclareModuleExports(\n node: Undone<N.FlowDeclareModuleExports>,\n ): N.FlowDeclareModuleExports {\n this.next();\n this.expectContextual(tt._exports);\n node.typeAnnotation = this.flowParseTypeAnnotation();\n this.semicolon();\n\n return this.finishNode(node, \"DeclareModuleExports\");\n }\n\n flowParseDeclareTypeAlias(\n node: Undone<N.FlowDeclareTypeAlias>,\n ): N.FlowDeclareTypeAlias {\n this.next();\n const finished = this.flowParseTypeAlias(node);\n // Don't do finishNode as we don't want to process comments twice\n finished.type = \"DeclareTypeAlias\";\n return finished;\n }\n\n flowParseDeclareOpaqueType(\n node: Undone<N.FlowDeclareOpaqueType>,\n ): N.FlowDeclareOpaqueType {\n this.next();\n const finished = this.flowParseOpaqueType(node, true);\n // Don't do finishNode as we don't want to process comments twice\n finished.type = \"DeclareOpaqueType\";\n return finished;\n }\n\n flowParseDeclareInterface(\n node: Undone<N.FlowDeclareInterface>,\n ): N.FlowDeclareInterface {\n this.next();\n this.flowParseInterfaceish(node, /* isClass */ false);\n return this.finishNode(node, \"DeclareInterface\");\n }\n\n // Interfaces\n\n flowParseInterfaceish(node: Undone<N.FlowDeclare>, isClass: boolean): void {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ !isClass,\n /* declaration */ true,\n );\n\n this.scope.declareName(\n node.id.name,\n isClass ? BindingFlag.TYPE_FUNCTION : BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.extends = [];\n\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (!isClass && this.eat(tt.comma));\n }\n\n if (isClass) {\n node.implements = [];\n node.mixins = [];\n\n if (this.eatContextual(tt._mixins)) {\n do {\n node.mixins.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n if (this.eatContextual(tt._implements)) {\n do {\n node.implements.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\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\n flowParseInterfaceExtends(): N.FlowInterfaceExtends {\n const node = this.startNode();\n\n node.id = this.flowParseQualifiedTypeIdentifier();\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n\n return this.finishNode(node, \"InterfaceExtends\");\n }\n\n flowParseInterface(node: Undone<N.FlowInterface>): N.FlowInterface {\n this.flowParseInterfaceish(node, /* isClass */ false);\n return this.finishNode(node, \"InterfaceDeclaration\");\n }\n\n checkNotUnderscore(word: string) {\n if (word === \"_\") {\n this.raise(FlowErrors.UnexpectedReservedUnderscore, {\n at: this.state.startLoc,\n });\n }\n }\n\n checkReservedType(word: string, startLoc: Position, declaration?: boolean) {\n if (!reservedTypes.has(word)) return;\n\n this.raise(\n declaration\n ? FlowErrors.AssignReservedType\n : FlowErrors.UnexpectedReservedType,\n {\n at: startLoc,\n reservedType: word,\n },\n );\n }\n\n flowParseRestrictedIdentifier(\n liberal?: boolean,\n declaration?: boolean,\n ): N.Identifier {\n this.checkReservedType(\n this.state.value,\n this.state.startLoc,\n declaration,\n );\n return this.parseIdentifier(liberal);\n }\n\n // Type aliases\n\n flowParseTypeAlias(node: Undone<N.FlowTypeAlias>): N.FlowTypeAlias {\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ false,\n /* declaration */ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n node.right = this.flowParseTypeInitialiser(tt.eq);\n this.semicolon();\n\n return this.finishNode(node, \"TypeAlias\");\n }\n\n flowParseOpaqueType(\n node: Undone<N.FlowOpaqueType>,\n declare: boolean,\n ): N.FlowOpaqueType {\n this.expectContextual(tt._type);\n node.id = this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n );\n this.scope.declareName(\n node.id.name,\n BindingFlag.TYPE_LEXICAL,\n node.id.loc.start,\n );\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n } else {\n node.typeParameters = null;\n }\n\n // Parse the supertype\n node.supertype = null;\n if (this.match(tt.colon)) {\n node.supertype = this.flowParseTypeInitialiser(tt.colon);\n }\n\n node.impltype = null;\n if (!declare) {\n node.impltype = this.flowParseTypeInitialiser(tt.eq);\n }\n this.semicolon();\n\n return this.finishNode(node, \"OpaqueType\");\n }\n\n // Type annotations\n\n flowParseTypeParameter(requireDefault: boolean = false): N.TypeParameter {\n const nodeStartLoc = this.state.startLoc;\n\n const node = this.startNode<N.TypeParameter>();\n\n const variance = this.flowParseVariance();\n\n const ident = this.flowParseTypeAnnotatableIdentifier();\n node.name = ident.name;\n // @ts-expect-error migrate to Babel types\n node.variance = variance;\n // @ts-expect-error migrate to Babel types\n node.bound = ident.typeAnnotation;\n\n if (this.match(tt.eq)) {\n this.eat(tt.eq);\n // @ts-expect-error migrate to Babel types\n node.default = this.flowParseType();\n } else {\n if (requireDefault) {\n this.raise(FlowErrors.MissingTypeParamDefault, { at: nodeStartLoc });\n }\n }\n\n return this.finishNode(node, \"TypeParameter\");\n }\n\n flowParseTypeParameterDeclaration(): N.TypeParameterDeclaration {\n const oldInType = this.state.inType;\n const node = this.startNode<N.TypeParameterDeclaration>();\n node.params = [];\n\n this.state.inType = true;\n\n // istanbul ignore else: this condition is already checked at all call sites\n if (this.match(tt.lt) || this.match(tt.jsxTagStart)) {\n this.next();\n } else {\n this.unexpected();\n }\n\n let defaultRequired = false;\n\n do {\n const typeParameter = this.flowParseTypeParameter(defaultRequired);\n\n node.params.push(typeParameter);\n\n if (typeParameter.default) {\n defaultRequired = true;\n }\n\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n } while (!this.match(tt.gt));\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterDeclaration\");\n }\n\n flowParseTypeParameterInstantiation(): N.TypeParameterInstantiation {\n const node = this.startNode<N.TypeParameterInstantiation>();\n const oldInType = this.state.inType;\n node.params = [];\n\n this.state.inType = true;\n\n this.expect(tt.lt);\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = false;\n while (!this.match(tt.gt)) {\n node.params.push(this.flowParseType());\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n }\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseTypeParameterInstantiationCallOrNew(): N.TypeParameterInstantiation {\n const node = this.startNode<N.TypeParameterInstantiation>();\n const oldInType = this.state.inType;\n node.params = [];\n\n this.state.inType = true;\n\n this.expect(tt.lt);\n while (!this.match(tt.gt)) {\n node.params.push(this.flowParseTypeOrImplicitInstantiation());\n if (!this.match(tt.gt)) {\n this.expect(tt.comma);\n }\n }\n this.expect(tt.gt);\n\n this.state.inType = oldInType;\n\n return this.finishNode(node, \"TypeParameterInstantiation\");\n }\n\n flowParseInterfaceType(): N.FlowInterfaceType {\n const node = this.startNode<N.FlowInterfaceType>();\n this.expectContextual(tt._interface);\n\n node.extends = [];\n if (this.eat(tt._extends)) {\n do {\n node.extends.push(this.flowParseInterfaceExtends());\n } while (this.eat(tt.comma));\n }\n\n node.body = this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: false,\n allowProto: false,\n allowInexact: false,\n });\n\n return this.finishNode(node, \"InterfaceTypeAnnotation\");\n }\n\n flowParseObjectPropertyKey(): N.Expression {\n return this.match(tt.num) || this.match(tt.string)\n ? super.parseExprAtom()\n : this.parseIdentifier(true);\n }\n\n flowParseObjectTypeIndexer(\n node: Undone<N.FlowObjectTypeIndexer>,\n isStatic: boolean,\n variance?: N.FlowVariance | null,\n ): N.FlowObjectTypeIndexer {\n node.static = isStatic;\n\n // Note: bracketL has already been consumed\n if (this.lookahead().type === tt.colon) {\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(tt.bracketR);\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n\n return this.finishNode(node, \"ObjectTypeIndexer\");\n }\n\n flowParseObjectTypeInternalSlot(\n node: Undone<N.FlowObjectTypeInternalSlot>,\n isStatic: boolean,\n ): N.FlowObjectTypeInternalSlot {\n node.static = isStatic;\n // Note: both bracketL have already been consumed\n node.id = this.flowParseObjectPropertyKey();\n this.expect(tt.bracketR);\n this.expect(tt.bracketR);\n if (this.match(tt.lt) || this.match(tt.parenL)) {\n node.method = true;\n node.optional = false;\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.loc.start),\n );\n } else {\n node.method = false;\n if (this.eat(tt.question)) {\n node.optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n }\n return this.finishNode(node, \"ObjectTypeInternalSlot\");\n }\n\n flowParseObjectTypeMethodish(\n node: Undone<N.FlowFunctionTypeAnnotation>,\n ): N.FlowFunctionTypeAnnotation {\n node.params = [];\n node.rest = null;\n node.typeParameters = null;\n node.this = null;\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n this.expect(tt.parenL);\n if (this.match(tt._this)) {\n node.this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n node.this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n node.params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n\n if (this.eat(tt.ellipsis)) {\n node.rest = this.flowParseFunctionTypeParam(false);\n }\n this.expect(tt.parenR);\n node.returnType = this.flowParseTypeInitialiser();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n }\n\n flowParseObjectTypeCallProperty(\n node: Undone<N.FlowObjectTypeCallProperty>,\n isStatic: boolean,\n ): N.FlowObjectTypeCallProperty {\n const valueNode = this.startNode();\n node.static = isStatic;\n node.value = this.flowParseObjectTypeMethodish(valueNode);\n return this.finishNode(node, \"ObjectTypeCallProperty\");\n }\n\n flowParseObjectType({\n allowStatic,\n allowExact,\n allowSpread,\n allowProto,\n allowInexact,\n }: {\n allowStatic: boolean;\n allowExact: boolean;\n allowSpread: boolean;\n allowProto: boolean;\n allowInexact: boolean;\n }): N.FlowObjectTypeAnnotation {\n const oldInType = this.state.inType;\n this.state.inType = true;\n\n const nodeStart = this.startNode();\n\n nodeStart.callProperties = [];\n nodeStart.properties = [];\n nodeStart.indexers = [];\n nodeStart.internalSlots = [];\n\n let endDelim;\n let exact;\n let inexact = false;\n if (allowExact && this.match(tt.braceBarL)) {\n this.expect(tt.braceBarL);\n endDelim = tt.braceBarR;\n exact = true;\n } else {\n this.expect(tt.braceL);\n endDelim = tt.braceR;\n exact = false;\n }\n\n nodeStart.exact = exact;\n\n while (!this.match(endDelim)) {\n let isStatic = false;\n let protoStartLoc: Position | undefined | null = null;\n let inexactStartLoc: Position | undefined | null = null;\n const node = this.startNode();\n\n if (allowProto && this.isContextual(tt._proto)) {\n const lookahead = this.lookahead();\n\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n protoStartLoc = this.state.startLoc;\n allowStatic = false;\n }\n }\n\n if (allowStatic && this.isContextual(tt._static)) {\n const lookahead = this.lookahead();\n\n // static is a valid identifier name\n if (lookahead.type !== tt.colon && lookahead.type !== tt.question) {\n this.next();\n isStatic = true;\n }\n }\n\n const variance = this.flowParseVariance();\n\n if (this.eat(tt.bracketL)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (this.eat(tt.bracketL)) {\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.internalSlots.push(\n this.flowParseObjectTypeInternalSlot(node, isStatic),\n );\n } else {\n nodeStart.indexers.push(\n this.flowParseObjectTypeIndexer(node, isStatic, variance),\n );\n }\n } else if (this.match(tt.parenL) || this.match(tt.lt)) {\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n nodeStart.callProperties.push(\n this.flowParseObjectTypeCallProperty(node, isStatic),\n );\n } else {\n let kind = \"init\";\n\n if (this.isContextual(tt._get) || this.isContextual(tt._set)) {\n const lookahead = this.lookahead();\n if (tokenIsLiteralPropertyName(lookahead.type)) {\n kind = this.state.value;\n this.next();\n }\n }\n\n const propOrInexact = this.flowParseObjectTypeProperty(\n node,\n isStatic,\n protoStartLoc,\n variance,\n kind,\n allowSpread,\n allowInexact ?? !exact,\n );\n\n if (propOrInexact === null) {\n inexact = true;\n inexactStartLoc = this.state.lastTokStartLoc;\n } else {\n nodeStart.properties.push(propOrInexact);\n }\n }\n\n this.flowObjectTypeSemicolon();\n\n if (\n inexactStartLoc &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.raise(FlowErrors.UnexpectedExplicitInexactInObject, {\n at: inexactStartLoc,\n });\n }\n }\n\n this.expect(endDelim);\n\n /* The inexact flag should only be added on ObjectTypeAnnotations that\n * are not the body of an interface, declare interface, or declare class.\n * Since spreads are only allowed in object types, checking that is\n * sufficient here.\n */\n if (allowSpread) {\n nodeStart.inexact = inexact;\n }\n\n const out = this.finishNode(nodeStart, \"ObjectTypeAnnotation\");\n\n this.state.inType = oldInType;\n\n return out;\n }\n\n flowParseObjectTypeProperty(\n node: Undone<N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty>,\n isStatic: boolean,\n protoStartLoc: Position | undefined | null,\n variance: N.FlowVariance | undefined | null,\n kind: string,\n allowSpread: boolean,\n allowInexact: boolean,\n ): N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty | null {\n if (this.eat(tt.ellipsis)) {\n const isInexactToken =\n this.match(tt.comma) ||\n this.match(tt.semi) ||\n this.match(tt.braceR) ||\n this.match(tt.braceBarR);\n\n if (isInexactToken) {\n if (!allowSpread) {\n this.raise(FlowErrors.InexactInsideNonObject, {\n at: this.state.lastTokStartLoc,\n });\n } else if (!allowInexact) {\n this.raise(FlowErrors.InexactInsideExact, {\n at: this.state.lastTokStartLoc,\n });\n }\n if (variance) {\n this.raise(FlowErrors.InexactVariance, { at: variance });\n }\n\n return null;\n }\n\n if (!allowSpread) {\n this.raise(FlowErrors.UnexpectedSpreadType, {\n at: this.state.lastTokStartLoc,\n });\n }\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.raise(FlowErrors.SpreadVariance, { at: variance });\n }\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\n let optional = false;\n if (this.match(tt.lt) || this.match(tt.parenL)) {\n // This is a method property\n node.method = true;\n\n if (protoStartLoc != null) {\n this.unexpected(protoStartLoc);\n }\n if (variance) {\n this.unexpected(variance.loc.start);\n }\n\n node.value = this.flowParseObjectTypeMethodish(\n this.startNodeAt(node.loc.start),\n );\n if (kind === \"get\" || kind === \"set\") {\n this.flowCheckGetterSetterParams(node);\n }\n /** Declared classes/interfaces do not allow spread */\n if (\n !allowSpread &&\n node.key.name === \"constructor\" &&\n node.value.this\n ) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, {\n at: node.value.this,\n });\n }\n } else {\n if (kind !== \"init\") this.unexpected();\n\n node.method = false;\n\n if (this.eat(tt.question)) {\n optional = true;\n }\n node.value = this.flowParseTypeInitialiser();\n node.variance = variance;\n }\n\n node.optional = optional;\n\n return this.finishNode(node, \"ObjectTypeProperty\");\n }\n }\n\n // This is similar to checkGetterSetterParams, but as\n // @babel/parser uses non estree properties we cannot reuse it here\n flowCheckGetterSetterParams(\n property: Undone<\n N.FlowObjectTypeProperty | N.FlowObjectTypeSpreadProperty\n >,\n ): void {\n const paramCount = property.kind === \"get\" ? 0 : 1;\n const length =\n property.value.params.length + (property.value.rest ? 1 : 0);\n\n if (property.value.this) {\n this.raise(\n property.kind === \"get\"\n ? FlowErrors.GetterMayNotHaveThisParam\n : FlowErrors.SetterMayNotHaveThisParam,\n { at: property.value.this },\n );\n }\n\n if (length !== paramCount) {\n this.raise(\n property.kind === \"get\"\n ? Errors.BadGetterArity\n : Errors.BadSetterArity,\n { at: property },\n );\n }\n\n if (property.kind === \"set\" && property.value.rest) {\n this.raise(Errors.BadSetterRestParameter, { at: property });\n }\n }\n\n flowObjectTypeSemicolon(): void {\n if (\n !this.eat(tt.semi) &&\n !this.eat(tt.comma) &&\n !this.match(tt.braceR) &&\n !this.match(tt.braceBarR)\n ) {\n this.unexpected();\n }\n }\n\n flowParseQualifiedTypeIdentifier(\n startLoc?: Position,\n id?: N.Identifier,\n ): N.FlowQualifiedTypeIdentifier {\n startLoc ??= this.state.startLoc;\n let node: N.Identifier | N.FlowQualifiedTypeIdentifier =\n id || this.flowParseRestrictedIdentifier(true);\n\n while (this.eat(tt.dot)) {\n const node2 = this.startNodeAt<N.FlowQualifiedTypeIdentifier>(startLoc);\n node2.qualification = node;\n node2.id = this.flowParseRestrictedIdentifier(true);\n node = this.finishNode(node2, \"QualifiedTypeIdentifier\");\n }\n\n return node;\n }\n\n flowParseGenericType(\n startLoc: Position,\n id: N.Identifier,\n ): N.FlowGenericTypeAnnotation {\n const node = this.startNodeAt(startLoc);\n\n node.typeParameters = null;\n node.id = this.flowParseQualifiedTypeIdentifier(startLoc, id);\n\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n }\n\n return this.finishNode(node, \"GenericTypeAnnotation\");\n }\n\n flowParseTypeofType(): N.FlowTypeofTypeAnnotation {\n const node = this.startNode();\n this.expect(tt._typeof);\n node.argument = this.flowParsePrimaryType();\n return this.finishNode(node, \"TypeofTypeAnnotation\");\n }\n\n flowParseTupleType(): N.FlowTupleTypeAnnotation {\n const node = this.startNode();\n node.types = [];\n this.expect(tt.bracketL);\n // We allow trailing commas\n while (this.state.pos < this.length && !this.match(tt.bracketR)) {\n node.types.push(this.flowParseType());\n if (this.match(tt.bracketR)) break;\n this.expect(tt.comma);\n }\n this.expect(tt.bracketR);\n return this.finishNode(node, \"TupleTypeAnnotation\");\n }\n\n flowParseFunctionTypeParam(first: boolean): N.FlowFunctionTypeParam {\n let name = null;\n let optional = false;\n let typeAnnotation = null;\n const node = this.startNode<N.FlowFunctionTypeParam>();\n const lh = this.lookahead();\n const isThis = this.state.type === tt._this;\n\n if (lh.type === tt.colon || lh.type === tt.question) {\n if (isThis && !first) {\n this.raise(FlowErrors.ThisParamMustBeFirst, { at: node });\n }\n name = this.parseIdentifier(isThis);\n if (this.eat(tt.question)) {\n optional = true;\n if (isThis) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, { at: 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\n reinterpretTypeAsFunctionTypeParam(\n type: N.FlowType,\n ): N.FlowFunctionTypeParam {\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\n flowParseFunctionTypeParams(params: N.FlowFunctionTypeParam[] = []): {\n params: N.FlowFunctionTypeParam[];\n rest: N.FlowFunctionTypeParam | undefined | null;\n _this: N.FlowFunctionTypeParam | undefined | null;\n } {\n let rest: N.FlowFunctionTypeParam | undefined | null = null;\n let _this: N.FlowFunctionTypeParam | undefined | null = null;\n if (this.match(tt._this)) {\n _this = this.flowParseFunctionTypeParam(/* first */ true);\n // match Flow parser behavior\n _this.name = null;\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n while (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n params.push(this.flowParseFunctionTypeParam(false));\n if (!this.match(tt.parenR)) {\n this.expect(tt.comma);\n }\n }\n if (this.eat(tt.ellipsis)) {\n rest = this.flowParseFunctionTypeParam(false);\n }\n return { params, rest, _this };\n }\n\n flowIdentToTypeAnnotation(\n startLoc: Position,\n node: Undone<N.FlowTypeAnnotation>,\n id: N.Identifier,\n ): N.FlowTypeAnnotation {\n switch (id.name) {\n case \"any\":\n return this.finishNode(node, \"AnyTypeAnnotation\");\n\n case \"bool\":\n case \"boolean\":\n return this.finishNode(node, \"BooleanTypeAnnotation\");\n\n case \"mixed\":\n return this.finishNode(node, \"MixedTypeAnnotation\");\n\n case \"empty\":\n return this.finishNode(node, \"EmptyTypeAnnotation\");\n\n case \"number\":\n return this.finishNode(node, \"NumberTypeAnnotation\");\n\n case \"string\":\n return this.finishNode(node, \"StringTypeAnnotation\");\n\n case \"symbol\":\n return this.finishNode(node, \"SymbolTypeAnnotation\");\n\n default:\n this.checkNotUnderscore(id.name);\n return this.flowParseGenericType(startLoc, id);\n }\n }\n\n // The parsing of types roughly parallels the parsing of expressions, and\n // primary types are kind of like primary expressions...they're the\n // primitives with which other types are constructed.\n flowParsePrimaryType(): N.FlowTypeAnnotation {\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\n switch (this.state.type) {\n case tt.braceL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: false,\n allowSpread: true,\n allowProto: false,\n allowInexact: true,\n });\n\n case tt.braceBarL:\n return this.flowParseObjectType({\n allowStatic: false,\n allowExact: true,\n allowSpread: true,\n allowProto: false,\n allowInexact: false,\n });\n\n case tt.bracketL:\n this.state.noAnonFunctionType = false;\n type = this.flowParseTupleType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n return type;\n\n case tt.lt:\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n this.expect(tt.parenL);\n tmp = this.flowParseFunctionTypeParams();\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n case tt.parenL:\n this.next();\n\n // Check to see if this is actually a grouped type\n if (!this.match(tt.parenR) && !this.match(tt.ellipsis)) {\n if (tokenIsIdentifier(this.state.type) || this.match(tt._this)) {\n const token = this.lookahead().type;\n isGroupedType = token !== tt.question && token !== tt.colon;\n } else {\n isGroupedType = true;\n }\n }\n\n if (isGroupedType) {\n this.state.noAnonFunctionType = false;\n type = this.flowParseType();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n // A `,` or a `) =>` means this is an anonymous function type\n if (\n this.state.noAnonFunctionType ||\n !(\n this.match(tt.comma) ||\n (this.match(tt.parenR) && this.lookahead().type === tt.arrow)\n )\n ) {\n this.expect(tt.parenR);\n return type;\n } else {\n // Eat a comma if there is one\n this.eat(tt.comma);\n }\n }\n\n if (type) {\n tmp = this.flowParseFunctionTypeParams([\n this.reinterpretTypeAsFunctionTypeParam(type),\n ]);\n } else {\n tmp = this.flowParseFunctionTypeParams();\n }\n\n node.params = tmp.params;\n node.rest = tmp.rest;\n node.this = tmp._this;\n\n this.expect(tt.parenR);\n\n this.expect(tt.arrow);\n\n node.returnType = this.flowParseType();\n\n node.typeParameters = null;\n\n return this.finishNode(node, \"FunctionTypeAnnotation\");\n\n case tt.string:\n return this.parseLiteral<N.StringLiteralTypeAnnotation>(\n this.state.value,\n \"StringLiteralTypeAnnotation\",\n );\n\n case tt._true:\n case tt._false:\n node.value = this.match(tt._true);\n this.next();\n return this.finishNode(\n node as Undone<N.BooleanLiteralTypeAnnotation>,\n \"BooleanLiteralTypeAnnotation\",\n );\n\n case tt.plusMin:\n if (this.state.value === \"-\") {\n this.next();\n if (this.match(tt.num)) {\n return this.parseLiteralAtNode<N.NumberLiteralTypeAnnotation>(\n -this.state.value,\n \"NumberLiteralTypeAnnotation\",\n node,\n );\n }\n\n if (this.match(tt.bigint)) {\n return this.parseLiteralAtNode<N.BigIntLiteralTypeAnnotation>(\n -this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n node,\n );\n }\n\n throw this.raise(FlowErrors.UnexpectedSubtractionOperand, {\n at: this.state.startLoc,\n });\n }\n this.unexpected();\n return;\n case tt.num:\n return this.parseLiteral(\n this.state.value,\n \"NumberLiteralTypeAnnotation\",\n );\n\n case tt.bigint:\n return this.parseLiteral(\n this.state.value,\n \"BigIntLiteralTypeAnnotation\",\n );\n\n case tt._void:\n this.next();\n return this.finishNode(node, \"VoidTypeAnnotation\");\n\n case tt._null:\n this.next();\n return this.finishNode(node, \"NullLiteralTypeAnnotation\");\n\n case tt._this:\n this.next();\n return this.finishNode(node, \"ThisTypeAnnotation\");\n\n case tt.star:\n this.next();\n return this.finishNode(node, \"ExistsTypeAnnotation\");\n\n case tt._typeof:\n return this.flowParseTypeofType();\n\n default:\n if (tokenIsKeyword(this.state.type)) {\n const label = tokenLabelName(this.state.type);\n this.next();\n return super.createIdentifier(node as Undone<N.Identifier>, label);\n } else if (tokenIsIdentifier(this.state.type)) {\n if (this.isContextual(tt._interface)) {\n return this.flowParseInterfaceType();\n }\n\n return this.flowIdentToTypeAnnotation(\n startLoc,\n node,\n this.parseIdentifier(),\n );\n }\n }\n\n this.unexpected();\n }\n\n flowParsePostfixType(): N.FlowTypeAnnotation {\n const startLoc = this.state.startLoc;\n let type = this.flowParsePrimaryType();\n let seenOptionalIndexedAccess = false;\n while (\n (this.match(tt.bracketL) || this.match(tt.questionDot)) &&\n !this.canInsertSemicolon()\n ) {\n const node = this.startNodeAt(startLoc);\n const optional = this.eat(tt.questionDot);\n seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional;\n this.expect(tt.bracketL);\n if (!optional && this.match(tt.bracketR)) {\n node.elementType = type;\n this.next(); // eat `]`\n type = this.finishNode(node, \"ArrayTypeAnnotation\");\n } else {\n node.objectType = type;\n node.indexType = this.flowParseType();\n this.expect(tt.bracketR);\n if (seenOptionalIndexedAccess) {\n node.optional = optional;\n type = this.finishNode<N.FlowOptionalIndexedAccessType>(\n // @ts-expect-error todo(flow->ts)\n node,\n \"OptionalIndexedAccessType\",\n );\n } else {\n type = this.finishNode<N.FlowIndexedAccessType>(\n // @ts-expect-error todo(flow->ts)\n node,\n \"IndexedAccessType\",\n );\n }\n }\n }\n return type;\n }\n\n flowParsePrefixType(): N.FlowTypeAnnotation {\n const node = this.startNode();\n if (this.eat(tt.question)) {\n node.typeAnnotation = this.flowParsePrefixType();\n return this.finishNode(node, \"NullableTypeAnnotation\");\n } else {\n return this.flowParsePostfixType();\n }\n }\n\n flowParseAnonFunctionWithoutParens(): N.FlowTypeAnnotation {\n const param = this.flowParsePrefixType();\n if (!this.state.noAnonFunctionType && this.eat(tt.arrow)) {\n // TODO: This should be a type error. Passing in a SourceLocation, and it expects a Position.\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\n flowParseIntersectionType(): N.FlowTypeAnnotation {\n const node = this.startNode();\n this.eat(tt.bitwiseAND);\n const type = this.flowParseAnonFunctionWithoutParens();\n node.types = [type];\n while (this.eat(tt.bitwiseAND)) {\n node.types.push(this.flowParseAnonFunctionWithoutParens());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"IntersectionTypeAnnotation\");\n }\n\n flowParseUnionType(): N.FlowTypeAnnotation {\n const node = this.startNode();\n this.eat(tt.bitwiseOR);\n const type = this.flowParseIntersectionType();\n node.types = [type];\n while (this.eat(tt.bitwiseOR)) {\n node.types.push(this.flowParseIntersectionType());\n }\n return node.types.length === 1\n ? type\n : this.finishNode(node, \"UnionTypeAnnotation\");\n }\n\n flowParseType(): N.FlowTypeAnnotation {\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\n flowParseTypeOrImplicitInstantiation(): N.FlowTypeAnnotation {\n if (this.state.type === tt.name && 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\n flowParseTypeAnnotation(): N.FlowTypeAnnotation {\n const node = this.startNode<N.FlowTypeAnnotation>();\n node.typeAnnotation = this.flowParseTypeInitialiser();\n return this.finishNode(node, \"TypeAnnotation\");\n }\n\n flowParseTypeAnnotatableIdentifier(\n allowPrimitiveOverride?: boolean,\n ): N.Identifier {\n const ident = allowPrimitiveOverride\n ? this.parseIdentifier()\n : this.flowParseRestrictedIdentifier();\n if (this.match(tt.colon)) {\n // @ts-expect-error: refine typings\n ident.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(ident);\n }\n return ident;\n }\n\n typeCastToParameter(node: N.Node): N.Node {\n node.expression.typeAnnotation = node.typeAnnotation;\n\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n\n return node.expression;\n }\n\n flowParseVariance(): N.FlowVariance | undefined | null {\n let variance = null;\n if (this.match(tt.plusMin)) {\n variance = this.startNode<N.FlowVariance>();\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\n // ==================================\n // Overrides\n // ==================================\n\n parseFunctionBody(\n node: N.Function,\n allowExpressionBody?: boolean | null,\n isMethod: boolean = false,\n ): void {\n if (allowExpressionBody) {\n this.forwardNoArrowParamsConversionAt(node, () =>\n super.parseFunctionBody(node, true, isMethod),\n );\n return;\n }\n\n super.parseFunctionBody(node, false, isMethod);\n }\n\n parseFunctionBodyAndFinish<\n T extends\n | N.Function\n | N.TSDeclareMethod\n | N.TSDeclareFunction\n | N.ClassPrivateMethod,\n >(node: Undone<T>, type: T[\"type\"], isMethod: boolean = false): T {\n if (this.match(tt.colon)) {\n const typeNode = this.startNode<N.TypeAnnotation>();\n\n [\n typeNode.typeAnnotation,\n // @ts-expect-error predicate may not exist\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser();\n\n node.returnType = typeNode.typeAnnotation\n ? this.finishNode(typeNode, \"TypeAnnotation\")\n : null;\n }\n\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n\n // interfaces and enums\n parseStatementLike(flags: ParseStatementFlag): N.Statement {\n // strict mode handling of `interface` since it's a reserved word\n if (this.state.strict && this.isContextual(tt._interface)) {\n const lookahead = this.lookahead();\n if (tokenIsKeywordOrIdentifier(lookahead.type)) {\n const node = this.startNode<N.FlowInterface>();\n this.next();\n return this.flowParseInterface(node);\n }\n } else if (this.shouldParseEnums() && this.isContextual(tt._enum)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n const stmt = super.parseStatementLike(flags);\n // We will parse a flow pragma in any comment before the first statement.\n if (this.flowPragma === undefined && !this.isValidDirective(stmt)) {\n this.flowPragma = null;\n }\n return stmt;\n }\n\n // declares, interfaces and type aliases\n parseExpressionStatement(\n node: N.ExpressionStatement,\n expr: N.Expression,\n decorators: N.Decorator[] | null,\n ): N.ExpressionStatement {\n if (expr.type === \"Identifier\") {\n if (expr.name === \"declare\") {\n if (\n this.match(tt._class) ||\n tokenIsIdentifier(this.state.type) ||\n this.match(tt._function) ||\n this.match(tt._var) ||\n this.match(tt._export)\n ) {\n // @ts-expect-error: refine typings\n return this.flowParseDeclare(node);\n }\n } else if (tokenIsIdentifier(this.state.type)) {\n if (expr.name === \"interface\") {\n // @ts-expect-error: refine typings\n return this.flowParseInterface(node);\n } else if (expr.name === \"type\") {\n // @ts-expect-error: refine typings\n return this.flowParseTypeAlias(node);\n } else if (expr.name === \"opaque\") {\n // @ts-expect-error: refine typings\n return this.flowParseOpaqueType(node, false);\n }\n }\n }\n\n return super.parseExpressionStatement(node, expr, decorators);\n }\n\n // export type\n shouldParseExportDeclaration(): boolean {\n const { type } = this.state;\n if (\n tokenIsFlowInterfaceOrTypeOrOpaque(type) ||\n (this.shouldParseEnums() && type === tt._enum)\n ) {\n return !this.state.containsEsc;\n }\n return super.shouldParseExportDeclaration();\n }\n\n isExportDefaultSpecifier(): boolean {\n const { type } = this.state;\n if (\n tokenIsFlowInterfaceOrTypeOrOpaque(type) ||\n (this.shouldParseEnums() && type === tt._enum)\n ) {\n return this.state.containsEsc;\n }\n\n return super.isExportDefaultSpecifier();\n }\n\n parseExportDefaultExpression(): N.Expression | N.Declaration {\n if (this.shouldParseEnums() && this.isContextual(tt._enum)) {\n const node = this.startNode();\n this.next();\n return this.flowParseEnumDeclaration(node);\n }\n return super.parseExportDefaultExpression();\n }\n\n parseConditional(\n expr: N.Expression,\n\n startLoc: Position,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n if (!this.match(tt.question)) return expr;\n\n if (this.state.maybeInArrowParameters) {\n const nextCh = this.lookaheadCharCode();\n // These tokens cannot start an expression, so if one of them follows\n // ? then we are probably in an arrow function parameters list and we\n // don't parse the conditional expression.\n if (\n nextCh === charCodes.comma || // (a?, b) => c\n nextCh === charCodes.equalsTo || // (a? = b) => c\n nextCh === charCodes.colon || // (a?: b) => c\n nextCh === charCodes.rightParenthesis // (a?) => c\n ) {\n /*:: invariant(refExpressionErrors != null) */\n this.setOptionalParametersError(refExpressionErrors);\n return expr;\n }\n }\n\n this.expect(tt.question);\n const state = this.state.clone();\n const originalNoArrowAt = this.state.noArrowAt;\n const node = this.startNodeAt(startLoc);\n let { consequent, failed } = this.tryParseConditionalConsequent();\n let [valid, invalid] = this.getArrowLikeExpressions(consequent);\n\n if (failed || invalid.length > 0) {\n const noArrowAt = [...originalNoArrowAt];\n\n if (invalid.length > 0) {\n this.state = state;\n this.state.noArrowAt = noArrowAt;\n\n for (let i = 0; i < invalid.length; i++) {\n noArrowAt.push(invalid[i].start);\n }\n\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n [valid, invalid] = this.getArrowLikeExpressions(consequent);\n }\n\n if (failed && valid.length > 1) {\n // if there are two or more possible correct ways of parsing, throw an\n // error.\n // e.g. Source: a ? (b): c => (d): e => f\n // Result 1: a ? b : (c => ((d): e => f))\n // Result 2: a ? ((b): c => d) : (e => f)\n this.raise(FlowErrors.AmbiguousConditionalArrow, {\n at: state.startLoc,\n });\n }\n\n if (failed && valid.length === 1) {\n this.state = state;\n noArrowAt.push(valid[0].start);\n this.state.noArrowAt = noArrowAt;\n ({ consequent, failed } = this.tryParseConditionalConsequent());\n }\n }\n\n this.getArrowLikeExpressions(consequent, true);\n\n this.state.noArrowAt = originalNoArrowAt;\n this.expect(tt.colon);\n\n node.test = expr;\n node.consequent = consequent;\n node.alternate = this.forwardNoArrowParamsConversionAt(node, () =>\n this.parseMaybeAssign(undefined, undefined),\n );\n\n return this.finishNode(node, \"ConditionalExpression\");\n }\n\n tryParseConditionalConsequent(): {\n consequent: N.Expression;\n failed: boolean;\n } {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n\n const consequent = this.parseMaybeAssignAllowIn();\n const failed = !this.match(tt.colon);\n\n this.state.noArrowParamsConversionAt.pop();\n\n return { consequent, failed };\n }\n\n // Given an expression, walks through out its arrow functions whose body is\n // an expression and through out conditional expressions. It returns every\n // function which has been parsed with a return type but could have been\n // parenthesized expressions.\n // These functions are separated into two arrays: one containing the ones\n // whose parameters can be converted to assignable lists, one containing the\n // others.\n getArrowLikeExpressions(\n node: N.Expression,\n disallowInvalid?: boolean,\n ): [N.ArrowFunctionExpression[], N.ArrowFunctionExpression[]] {\n const stack = [node];\n const arrows: N.ArrowFunctionExpression[] = [];\n\n while (stack.length !== 0) {\n const node = stack.pop();\n if (node.type === \"ArrowFunctionExpression\") {\n if (node.typeParameters || !node.returnType) {\n // This is an arrow expression without ambiguity, so check its parameters\n // @ts-expect-error: refine typings\n this.finishArrowValidation(node);\n } else {\n // @ts-expect-error: refine typings\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\n if (disallowInvalid) {\n arrows.forEach(node => this.finishArrowValidation(node));\n return [arrows, []];\n }\n\n return partition(arrows, node =>\n node.params.every(param => this.isAssignable(param, true)),\n );\n }\n\n finishArrowValidation(node: N.ArrowFunctionExpression) {\n this.toAssignableList(\n // node.params is Expression[] instead of $ReadOnlyArray<Pattern> because it\n // has not been converted yet.\n node.params as any as N.Expression[],\n node.extra?.trailingCommaLoc,\n /* isLHS */ false,\n );\n // Enter scope, as checkParams defines bindings\n this.scope.enter(ScopeFlag.FUNCTION | ScopeFlag.ARROW);\n // Use super's method to force the parameters to be checked\n super.checkParams(node, false, true);\n this.scope.exit();\n }\n\n forwardNoArrowParamsConversionAt<T>(\n node: Undone<N.Node>,\n parse: () => T,\n ): T {\n let result: T;\n if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n this.state.noArrowParamsConversionAt.push(this.state.start);\n result = parse();\n this.state.noArrowParamsConversionAt.pop();\n } else {\n result = parse();\n }\n\n return result;\n }\n\n parseParenItem(\n node: N.Expression,\n\n startLoc: Position,\n ): N.Expression {\n node = super.parseParenItem(node, startLoc);\n if (this.eat(tt.question)) {\n node.optional = true;\n // Include questionmark in location of node\n // Don't use this.finishNode() as otherwise we might process comments twice and\n // include already consumed parens\n this.resetEndLocation(node);\n }\n\n if (this.match(tt.colon)) {\n const typeCastNode = this.startNodeAt(startLoc);\n typeCastNode.expression = node;\n typeCastNode.typeAnnotation = this.flowParseTypeAnnotation();\n\n return this.finishNode(typeCastNode, \"TypeCastExpression\");\n }\n\n return node;\n }\n\n assertModuleNodeAllowed(node: N.Node) {\n if (\n (node.type === \"ImportDeclaration\" &&\n (node.importKind === \"type\" || node.importKind === \"typeof\")) ||\n (node.type === \"ExportNamedDeclaration\" &&\n node.exportKind === \"type\") ||\n (node.type === \"ExportAllDeclaration\" && node.exportKind === \"type\")\n ) {\n // Allow Flowtype imports and exports in all conditions because\n // Flow itself does not care about 'sourceType'.\n return;\n }\n\n super.assertModuleNodeAllowed(node);\n }\n\n parseExportDeclaration(\n node: N.ExportNamedDeclaration,\n ): N.Declaration | undefined | null {\n if (this.isContextual(tt._type)) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n\n if (this.match(tt.braceL)) {\n // export type { foo, bar };\n node.specifiers = this.parseExportSpecifiers(\n /* isInTypeExport */ true,\n );\n super.parseExportFrom(node);\n return null;\n } else {\n // export type Foo = Bar;\n // @ts-expect-error: refine typings\n return this.flowParseTypeAlias(declarationNode);\n }\n } else if (this.isContextual(tt._opaque)) {\n node.exportKind = \"type\";\n\n const declarationNode = this.startNode();\n this.next();\n // export opaque type Foo = Bar;\n // @ts-expect-error: refine typings\n return this.flowParseOpaqueType(declarationNode, false);\n } else if (this.isContextual(tt._interface)) {\n node.exportKind = \"type\";\n const declarationNode = this.startNode();\n this.next();\n // @ts-expect-error: refine typings\n return this.flowParseInterface(declarationNode);\n } else if (this.shouldParseEnums() && this.isContextual(tt._enum)) {\n node.exportKind = \"value\";\n const declarationNode = this.startNode();\n this.next();\n // @ts-expect-error: refine typings\n return this.flowParseEnumDeclaration(declarationNode);\n } else {\n return super.parseExportDeclaration(node);\n }\n }\n\n eatExportStar(node: N.Node): boolean {\n if (super.eatExportStar(node)) return true;\n\n if (this.isContextual(tt._type) && this.lookahead().type === tt.star) {\n node.exportKind = \"type\";\n this.next();\n this.next();\n return true;\n }\n\n return false;\n }\n\n maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n const { startLoc } = this.state;\n const hasNamespace = super.maybeParseExportNamespaceSpecifier(node);\n if (hasNamespace && node.exportKind === \"type\") {\n this.unexpected(startLoc);\n }\n return hasNamespace;\n }\n\n parseClassId(\n node: N.Class,\n isStatement: boolean,\n optionalId?: boolean | null,\n ) {\n super.parseClassId(node, isStatement, optionalId);\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n }\n\n parseClassMember(\n classBody: N.ClassBody,\n member: any,\n state: N.ParseClassMemberState,\n ): void {\n const { startLoc } = this.state;\n if (this.isContextual(tt._declare)) {\n if (super.parseClassMemberFromModifier(classBody, member)) {\n // 'declare' is a class element name\n return;\n }\n\n member.declare = true;\n }\n\n super.parseClassMember(classBody, member, state);\n\n if (member.declare) {\n if (\n member.type !== \"ClassProperty\" &&\n member.type !== \"ClassPrivateProperty\" &&\n member.type !== \"PropertyDefinition\" // Used by estree plugin\n ) {\n this.raise(FlowErrors.DeclareClassElement, { at: startLoc });\n } else if (member.value) {\n this.raise(FlowErrors.DeclareClassFieldInitializer, {\n at: member.value,\n });\n }\n }\n }\n\n isIterator(word: string): boolean {\n return word === \"iterator\" || word === \"asyncIterator\";\n }\n\n readIterator(): void {\n const word = super.readWord1();\n const fullWord = \"@@\" + word;\n\n // Allow @@iterator and @@asyncIterator as a identifier only inside type\n if (!this.isIterator(word) || !this.state.inType) {\n this.raise(Errors.InvalidIdentifier, {\n at: this.state.curPosition(),\n identifierName: fullWord,\n });\n }\n\n this.finishToken(tt.name, fullWord);\n }\n\n // ensure that inside flow types, we bypass the jsx parser plugin\n getTokenFromCode(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (code === charCodes.leftCurlyBrace && next === charCodes.verticalBar) {\n this.finishOp(tt.braceBarL, 2);\n } else if (\n this.state.inType &&\n (code === charCodes.greaterThan || code === charCodes.lessThan)\n ) {\n this.finishOp(code === charCodes.greaterThan ? tt.gt : tt.lt, 1);\n } else if (this.state.inType && code === charCodes.questionMark) {\n if (next === charCodes.dot) {\n this.finishOp(tt.questionDot, 2);\n } else {\n // allow double nullable types in Flow: ??string\n this.finishOp(tt.question, 1);\n }\n } else if (\n isIteratorStart(code, next, this.input.charCodeAt(this.state.pos + 2))\n ) {\n this.state.pos += 2; // eat \"@@\"\n this.readIterator();\n } else {\n super.getTokenFromCode(code);\n }\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\n if (node.type === \"TypeCastExpression\") {\n return this.isAssignable(node.expression, isBinding);\n } else {\n return super.isAssignable(node, isBinding);\n }\n }\n\n toAssignable(node: N.Node, isLHS: boolean = false): void {\n if (\n !isLHS &&\n node.type === \"AssignmentExpression\" &&\n node.left.type === \"TypeCastExpression\"\n ) {\n node.left = this.typeCastToParameter(node.left);\n }\n super.toAssignable(node, isLHS);\n }\n\n // turn type casts that we found in function parameter head into type annotated params\n toAssignableList(\n exprList: N.Expression[],\n trailingCommaLoc: Position | undefined | null,\n isLHS: boolean,\n ): void {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (expr?.type === \"TypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(expr);\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n\n // this is a list of nodes, from something like a call expression, we need to filter the\n // type casts that we've found that are illegal in this context\n toReferencedList(\n exprList: ReadonlyArray<N.Expression | undefined | null>,\n isParenthesizedExpr?: boolean,\n ): ReadonlyArray<N.Expression | undefined | null> {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (\n expr &&\n expr.type === \"TypeCastExpression\" &&\n !expr.extra?.parenthesized &&\n (exprList.length > 1 || !isParenthesizedExpr)\n ) {\n this.raise(FlowErrors.TypeCastInPattern, {\n at: expr.typeAnnotation,\n });\n }\n }\n\n return exprList;\n }\n\n parseArrayLike(\n close: TokenType,\n canBePattern: boolean,\n isTuple: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ArrayExpression | N.TupleExpression {\n const node = super.parseArrayLike(\n close,\n canBePattern,\n isTuple,\n refExpressionErrors,\n );\n\n // This could be an array pattern:\n // ([a: string, b: string]) => {}\n // In this case, we don't have to call toReferencedList. We will\n // call it, if needed, when we are sure that it is a parenthesized\n // expression by calling toReferencedListDeep.\n if (canBePattern && !this.state.maybeInArrowParameters) {\n this.toReferencedList(node.elements);\n }\n\n return node;\n }\n\n isValidLVal(type: string, isParenthesized: boolean, binding: BindingFlag) {\n return (\n type === \"TypeCastExpression\" ||\n super.isValidLVal(type, isParenthesized, binding)\n );\n }\n\n // parse class property type annotations\n parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n if (this.match(tt.colon)) {\n // @ts-expect-error refine typings\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassProperty(node);\n }\n\n parseClassPrivateProperty(\n node: N.ClassPrivateProperty,\n ): N.ClassPrivateProperty {\n if (this.match(tt.colon)) {\n // @ts-expect-error refine typings\n node.typeAnnotation = this.flowParseTypeAnnotation();\n }\n return super.parseClassPrivateProperty(node);\n }\n\n // determine whether or not we're currently in the position where a class method would appear\n isClassMethod(): boolean {\n return this.match(tt.lt) || super.isClassMethod();\n }\n\n // determine whether or not we're currently in the position where a class property would appear\n isClassProperty(): boolean {\n return this.match(tt.colon) || super.isClassProperty();\n }\n\n isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n return !this.match(tt.colon) && super.isNonstaticConstructor(method);\n }\n\n // parse type parameters for class methods\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n if ((method as any).variance) {\n this.unexpected((method as any).variance.loc.start);\n }\n delete (method as any).variance;\n if (this.match(tt.lt)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassMethod(\n classBody,\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n );\n\n if (method.params && isConstructor) {\n const params = method.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, { at: method });\n }\n // estree support\n } else if (\n // @ts-expect-error TS does not know about the face that estree can replace ClassMethod with MethodDefinition\n method.type === \"MethodDefinition\" &&\n isConstructor &&\n // @ts-expect-error estree\n method.value.params\n ) {\n // @ts-expect-error estree\n const params = method.value.params;\n if (params.length > 0 && this.isThisParam(params[0])) {\n this.raise(FlowErrors.ThisParamBannedInConstructor, { at: method });\n }\n }\n }\n\n pushClassPrivateMethod(\n classBody: N.ClassBody,\n method: N.ClassPrivateMethod,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n if ((method as any).variance) {\n this.unexpected((method as any).variance.loc.start);\n }\n delete (method as any).variance;\n if (this.match(tt.lt)) {\n method.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n\n // parse a the super class type parameters and implements\n parseClassSuper(node: N.Class): void {\n super.parseClassSuper(node);\n if (node.superClass && this.match(tt.lt)) {\n node.superTypeParameters = this.flowParseTypeParameterInstantiation();\n }\n if (this.isContextual(tt._implements)) {\n this.next();\n const implemented: N.FlowClassImplements[] = (node.implements = []);\n do {\n const node = this.startNode();\n node.id = this.flowParseRestrictedIdentifier(/*liberal*/ true);\n if (this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterInstantiation();\n } else {\n node.typeParameters = null;\n }\n implemented.push(this.finishNode(node, \"ClassImplements\"));\n } while (this.eat(tt.comma));\n }\n }\n\n checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\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, { at: param });\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.SetterMayNotHaveThisParam, { at: param });\n }\n }\n }\n\n parsePropertyNamePrefixOperator(\n node: N.ObjectOrClassMember | N.ClassMember,\n ): void {\n node.variance = this.flowParseVariance();\n }\n\n // parse type parameters for object method shorthand\n parseObjPropValue(\n prop: Undone<N.ObjectMethod | N.ObjectProperty>,\n startLoc: Position | undefined | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectMethod | N.ObjectProperty {\n if ((prop as any).variance) {\n this.unexpected((prop as any).variance.loc.start);\n }\n delete (prop as any).variance;\n\n let typeParameters;\n\n // method shorthand\n if (this.match(tt.lt) && !isAccessor) {\n typeParameters = this.flowParseTypeParameterDeclaration();\n if (!this.match(tt.parenL)) this.unexpected();\n }\n\n const result = super.parseObjPropValue(\n prop,\n startLoc,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n refExpressionErrors,\n );\n\n // add typeParameters if we found them\n if (typeParameters) {\n // @ts-expect-error: refine typings\n (result.value || result).typeParameters = typeParameters;\n }\n return result;\n }\n\n parseAssignableListItemTypes(param: N.Pattern): N.Pattern {\n if (this.eat(tt.question)) {\n if (param.type !== \"Identifier\") {\n this.raise(FlowErrors.PatternIsOptional, { at: param });\n }\n if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamMayNotBeOptional, { at: param });\n }\n\n (param as any as N.Identifier).optional = true;\n }\n if (this.match(tt.colon)) {\n // @ts-expect-error: refine typings\n param.typeAnnotation = this.flowParseTypeAnnotation();\n } else if (this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamAnnotationRequired, { at: param });\n }\n\n if (this.match(tt.eq) && this.isThisParam(param)) {\n this.raise(FlowErrors.ThisParamNoDefault, { at: param });\n }\n\n this.resetEndLocation(param);\n return param;\n }\n\n parseMaybeDefault(\n startLoc?: Position | null,\n left?: N.Pattern | null,\n ): N.Pattern {\n const node = super.parseMaybeDefault(startLoc, left);\n\n if (\n node.type === \"AssignmentPattern\" &&\n node.typeAnnotation &&\n node.right.start < node.typeAnnotation.start\n ) {\n this.raise(FlowErrors.TypeBeforeInitializer, {\n at: node.typeAnnotation,\n });\n }\n\n return node;\n }\n\n checkImportReflection(node: Undone<N.ImportDeclaration>) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(FlowErrors.ImportReflectionHasImportType, {\n at: node.specifiers[0].loc.start,\n });\n }\n }\n\n parseImportSpecifierLocal<\n T extends\n | N.ImportSpecifier\n | N.ImportDefaultSpecifier\n | N.ImportNamespaceSpecifier,\n >(node: N.ImportDeclaration, specifier: Undone<T>, type: T[\"type\"]): void {\n specifier.local = hasTypeImportKind(node)\n ? this.flowParseRestrictedIdentifier(\n /* liberal */ true,\n /* declaration */ true,\n )\n : this.parseIdentifier();\n\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n\n isPotentialImportPhase(isExport: boolean): boolean {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(tt._type)) {\n if (!isExport) return true;\n const ch = this.lookaheadCharCode();\n return ch === charCodes.leftCurlyBrace || ch === charCodes.asterisk;\n }\n return !isExport && this.isContextual(tt._typeof);\n }\n\n applyImportPhase(\n node: Undone<N.ImportDeclaration | N.ExportNamedDeclaration>,\n isExport: boolean,\n phase: string | null,\n loc?: Position,\n ): void {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n if (!phase && this.match(tt._default)) {\n // TODO: Align with our TS AST and always add .exportKind\n return;\n }\n (node as N.ExportNamedDeclaration).exportKind =\n phase === \"type\" ? phase : \"value\";\n } else {\n if (phase === \"type\" && this.match(tt.star)) this.unexpected();\n (node as N.ImportDeclaration).importKind =\n phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n\n // parse import-type/typeof shorthand\n parseImportSpecifier(\n specifier: any,\n importedIsString: boolean,\n isInTypeOnlyImport: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isMaybeTypeOnly: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindingType: BindingFlag | undefined,\n ): N.ImportSpecifier {\n const firstIdent = specifier.imported;\n\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\n let isBinding = false;\n if (this.isContextual(tt._as) && !this.isLookaheadContextual(\"as\")) {\n const as_ident = this.parseIdentifier(true);\n if (\n specifierTypeKind !== null &&\n !tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n // `import {type as ,` or `import {type as }`\n specifier.imported = as_ident;\n specifier.importKind = specifierTypeKind;\n specifier.local = cloneIdentifier(as_ident);\n } else {\n // `import {type as foo`\n specifier.imported = firstIdent;\n specifier.importKind = null;\n specifier.local = this.parseIdentifier();\n }\n } else {\n if (\n specifierTypeKind !== null &&\n tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n // `import {type foo`\n specifier.imported = this.parseIdentifier(true);\n specifier.importKind = specifierTypeKind;\n } else {\n if (importedIsString) {\n /*:: invariant(firstIdent instanceof N.StringLiteral) */\n throw this.raise(Errors.ImportBindingIsString, {\n at: specifier,\n importName: firstIdent.value,\n });\n }\n /*:: invariant(firstIdent instanceof N.Node) */\n specifier.imported = firstIdent;\n specifier.importKind = null;\n }\n\n if (this.eatContextual(tt._as)) {\n specifier.local = this.parseIdentifier();\n } else {\n isBinding = true;\n specifier.local = cloneIdentifier(specifier.imported);\n }\n }\n\n const specifierIsTypeImport = hasTypeImportKind(specifier);\n\n if (isInTypeOnlyImport && specifierIsTypeImport) {\n this.raise(FlowErrors.ImportTypeShorthandOnlyInPureImport, {\n at: specifier,\n });\n }\n\n if (isInTypeOnlyImport || specifierIsTypeImport) {\n this.checkReservedType(\n specifier.local.name,\n specifier.local.loc.start,\n /* declaration */ true,\n );\n }\n\n if (isBinding && !isInTypeOnlyImport && !specifierIsTypeImport) {\n this.checkReservedWord(\n specifier.local.name,\n specifier.loc.start,\n true,\n true,\n );\n }\n\n return this.finishImportSpecifier(specifier, \"ImportSpecifier\");\n }\n\n parseBindingAtom(): N.Pattern {\n switch (this.state.type) {\n case tt._this:\n // \"this\" may be the name of a parameter, so allow it.\n return this.parseIdentifier(/* liberal */ true);\n default:\n return super.parseBindingAtom();\n }\n }\n\n // parse function type parameters - function foo<T>() {}\n parseFunctionParams(\n node: Undone<N.Function>,\n isConstructor: boolean,\n ): void {\n // @ts-expect-error kind may not index node\n const kind = node.kind;\n if (kind !== \"get\" && kind !== \"set\" && this.match(tt.lt)) {\n node.typeParameters = this.flowParseTypeParameterDeclaration();\n }\n super.parseFunctionParams(node, isConstructor);\n }\n\n // parse flow type annotations on variable declarator heads - let foo: string = bar\n parseVarId(\n decl: N.VariableDeclarator,\n kind: \"var\" | \"let\" | \"const\",\n ): void {\n super.parseVarId(decl, kind);\n if (this.match(tt.colon)) {\n // @ts-expect-error: refine typings\n decl.id.typeAnnotation = this.flowParseTypeAnnotation();\n this.resetEndLocation(decl.id); // set end position to end of type\n }\n }\n\n // parse the return type of an async arrow function - let foo = (async (): number => {});\n parseAsyncArrowFromCallExpression(\n node: N.ArrowFunctionExpression,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n // @ts-expect-error refine typings\n node.returnType = this.flowParseTypeAnnotation();\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n }\n\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n\n // todo description\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.colon) || super.shouldParseAsyncArrow();\n }\n\n // We need to support type parameter declarations for arrow functions. This\n // is tricky. There are three situations we need to handle\n //\n // 1. This is either JSX or an arrow function. We'll try JSX first. If that\n // fails, we'll try an arrow function. If that fails, we'll throw the JSX\n // error.\n // 2. This is an arrow function. We'll parse the type parameter declaration,\n // parse the rest, make sure the rest is an arrow function, and go from\n // there\n // 3. This is neither. Just call the super method\n parseMaybeAssign(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ): N.Expression {\n let state = null;\n\n let jsx;\n\n if (\n this.hasPlugin(\"jsx\") &&\n (this.match(tt.jsxTagStart) || this.match(tt.lt))\n ) {\n state = this.state.clone();\n\n jsx = this.tryParse(\n () => super.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n state,\n );\n\n /*:: invariant(!jsx.aborted) */\n /*:: invariant(jsx.node != null) */\n if (!jsx.error) return jsx.node;\n\n // Remove `tc.j_expr` and `tc.j_oTag` from context added\n // by parsing `jsxTagStart` to stop the JSX plugin from\n // messing with the tokens\n const { context } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === tc.j_oTag || currentContext === tc.j_expr) {\n context.pop();\n }\n }\n\n if (jsx?.error || this.match(tt.lt)) {\n state = state || this.state.clone();\n\n let typeParameters: N.TypeParameterDeclaration;\n\n const arrow = this.tryParse(abort => {\n typeParameters = this.flowParseTypeParameterDeclaration();\n\n const arrowExpression = this.forwardNoArrowParamsConversionAt(\n typeParameters,\n () => {\n const result = super.parseMaybeAssign(\n refExpressionErrors,\n afterLeftParse,\n );\n\n this.resetStartLocationFromNode(result, typeParameters);\n\n return result;\n },\n );\n\n // <T>(() => {});\n // <T>(() => {}: any);\n if (arrowExpression.extra?.parenthesized) abort();\n\n // The above can return a TypeCastExpression when the arrow\n // expression is not wrapped in parens. See also `this.parseParenItem`.\n // (<T>() => {}: any);\n const expr = this.maybeUnwrapTypeCastExpression(arrowExpression);\n\n if (expr.type !== \"ArrowFunctionExpression\") abort();\n\n expr.typeParameters = typeParameters;\n this.resetStartLocationFromNode(expr, typeParameters);\n\n return arrowExpression;\n }, state);\n\n let arrowExpression:\n | N.ArrowFunctionExpression\n | N.TypeCastExpression\n | undefined\n | null = null;\n\n if (\n arrow.node &&\n // @ts-expect-error: refine tryParse typings\n this.maybeUnwrapTypeCastExpression(arrow.node).type ===\n \"ArrowFunctionExpression\"\n ) {\n if (!arrow.error && !arrow.aborted) {\n // <T> async () => {}\n // @ts-expect-error: refine tryParse typings\n if (arrow.node.async) {\n /*:: invariant(typeParameters) */\n this.raise(\n FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction,\n { at: typeParameters },\n );\n }\n // @ts-expect-error: refine tryParse typings\n return arrow.node;\n }\n\n // @ts-expect-error: refine typings\n arrowExpression = arrow.node;\n }\n\n // If we are here, both JSX and Flow parsing attempts failed.\n // Give the precedence to the JSX error, except if JSX had an\n // unrecoverable error while Flow didn't.\n // If the error is recoverable, we can only re-report it if there is\n // a node we can return.\n\n if (jsx?.node) {\n /*:: invariant(jsx.failState) */\n this.state = jsx.failState;\n return jsx.node;\n }\n\n if (arrowExpression) {\n /*:: invariant(arrow.failState) */\n this.state = arrow.failState;\n return arrowExpression;\n }\n\n if (jsx?.thrown) throw jsx.error;\n if (arrow.thrown) throw arrow.error;\n\n /*:: invariant(typeParameters) */\n throw this.raise(FlowErrors.UnexpectedTokenAfterTypeParameter, {\n at: typeParameters,\n });\n }\n\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n\n // handle return types for arrow functions\n parseArrow(\n node: Undone<N.ArrowFunctionExpression>,\n ): Undone<N.ArrowFunctionExpression> | undefined | null {\n if (this.match(tt.colon)) {\n // @ts-expect-error todo(flow->ts)\n const result = this.tryParse(() => {\n const oldNoAnonFunctionType = this.state.noAnonFunctionType;\n this.state.noAnonFunctionType = true;\n\n const typeNode = this.startNode<N.TypeAnnotation>();\n\n [\n typeNode.typeAnnotation,\n // @ts-expect-error (destructuring not supported yet)\n node.predicate,\n ] = this.flowParseTypeAndPredicateInitialiser();\n\n this.state.noAnonFunctionType = oldNoAnonFunctionType;\n\n if (this.canInsertSemicolon()) this.unexpected();\n if (!this.match(tt.arrow)) this.unexpected();\n\n return typeNode;\n });\n\n if (result.thrown) return null;\n /*:: invariant(result.node) */\n\n if (result.error) this.state = result.failState;\n\n // assign after it is clear it is an arrow\n // @ts-expect-error todo(flow->ts)\n node.returnType = result.node.typeAnnotation\n ? this.finishNode(result.node, \"TypeAnnotation\")\n : null;\n }\n\n return super.parseArrow(node);\n }\n\n shouldParseArrow(params: Array<N.Node>): boolean {\n return this.match(tt.colon) || super.shouldParseArrow(params);\n }\n\n setArrowFunctionParameters(\n node: N.ArrowFunctionExpression,\n params: N.Pattern[],\n ): void {\n if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) {\n node.params = params;\n } else {\n super.setArrowFunctionParameters(node, params);\n }\n }\n\n checkParams(\n node: N.Function,\n allowDuplicates: boolean,\n isArrowFunction?: boolean | null,\n strictModeChanged: boolean = true,\n ): void {\n if (\n isArrowFunction &&\n this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1\n ) {\n return;\n }\n\n // ensure the `this` param is first, if it exists\n for (let i = 0; i < node.params.length; i++) {\n if (this.isThisParam(node.params[i]) && i > 0) {\n this.raise(FlowErrors.ThisParamMustBeFirst, { at: node.params[i] });\n }\n }\n\n super.checkParams(\n node,\n allowDuplicates,\n isArrowFunction,\n strictModeChanged,\n );\n }\n\n parseParenAndDistinguishExpression(canBeArrow: boolean): N.Expression {\n return super.parseParenAndDistinguishExpression(\n canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1,\n );\n }\n\n parseSubscripts(\n base: N.Expression,\n\n startLoc: Position,\n noCalls?: boolean | null,\n ): N.Expression {\n if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.state.noArrowAt.indexOf(startLoc.index) !== -1\n ) {\n this.next();\n\n const node = this.startNodeAt(startLoc);\n node.callee = base;\n node.arguments = super.parseCallExpressionArguments(tt.parenR, false);\n base = this.finishNode(node, \"CallExpression\");\n } else if (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.match(tt.lt)\n ) {\n const state = this.state.clone();\n const arrow = this.tryParse(\n abort => this.parseAsyncArrowWithTypeParameters(startLoc) || abort(),\n state,\n );\n\n /*:: invariant(arrow.node != null) */\n // @ts-expect-error: refine tryParse typings\n if (!arrow.error && !arrow.aborted) return arrow.node;\n\n const result = this.tryParse(\n () => super.parseSubscripts(base, startLoc, noCalls),\n state,\n );\n\n if (result.node && !result.error) return result.node;\n\n if (arrow.node) {\n this.state = arrow.failState;\n // @ts-expect-error: refine tryParse typings\n return arrow.node;\n }\n\n if (result.node) {\n this.state = result.failState;\n return result.node;\n }\n\n throw arrow.error || result.error;\n }\n\n return super.parseSubscripts(base, startLoc, noCalls);\n }\n\n parseSubscript(\n base: N.Expression,\n\n startLoc: Position,\n noCalls: boolean | undefined | null,\n subscriptState: N.ParseSubscriptState,\n ): N.Expression {\n if (this.match(tt.questionDot) && 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<N.OptionalCallExpression>(startLoc);\n node.callee = base;\n node.typeArguments = this.flowParseTypeParameterInstantiation();\n this.expect(tt.parenL);\n node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n node.optional = true;\n return this.finishCallExpression(node, /* optional */ true);\n } else if (!noCalls && this.shouldParseTypes() && this.match(tt.lt)) {\n const node = this.startNodeAt<\n N.OptionalCallExpression | N.CallExpression\n >(startLoc);\n node.callee = base;\n\n const result = this.tryParse(() => {\n node.typeArguments =\n this.flowParseTypeParameterInstantiationCallOrNew();\n this.expect(tt.parenL);\n node.arguments = super.parseCallExpressionArguments(tt.parenR, false);\n if (subscriptState.optionalChainMember) {\n (node as Undone<N.OptionalCallExpression>).optional = false;\n }\n return this.finishCallExpression(\n node,\n subscriptState.optionalChainMember,\n );\n });\n\n if (result.node) {\n if (result.error) this.state = result.failState;\n return result.node;\n }\n }\n\n return super.parseSubscript(\n base,\n\n startLoc,\n noCalls,\n subscriptState,\n );\n }\n\n parseNewCallee(node: N.NewExpression): void {\n super.parseNewCallee(node);\n\n let targs = null;\n if (this.shouldParseTypes() && this.match(tt.lt)) {\n targs = this.tryParse(() =>\n this.flowParseTypeParameterInstantiationCallOrNew(),\n ).node;\n }\n node.typeArguments = targs;\n }\n\n parseAsyncArrowWithTypeParameters(\n startLoc: Position,\n ): N.ArrowFunctionExpression | undefined | null {\n const node = this.startNodeAt<N.ArrowFunctionExpression>(startLoc);\n this.parseFunctionParams(node, false);\n if (!this.parseArrow(node)) return;\n return super.parseArrowExpression(\n node,\n /* params */ undefined,\n /* isAsync */ true,\n );\n }\n\n readToken_mult_modulo(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.asterisk &&\n next === charCodes.slash &&\n this.state.hasFlowComment\n ) {\n this.state.hasFlowComment = false;\n this.state.pos += 2;\n this.nextToken();\n return;\n }\n\n super.readToken_mult_modulo(code);\n }\n\n readToken_pipe_amp(code: number): void {\n const next = this.input.charCodeAt(this.state.pos + 1);\n if (\n code === charCodes.verticalBar &&\n next === charCodes.rightCurlyBrace\n ) {\n // '|}'\n this.finishOp(tt.braceBarR, 2);\n return;\n }\n\n super.readToken_pipe_amp(code);\n }\n\n parseTopLevel(file: N.File, program: N.Program): N.File {\n const fileNode = super.parseTopLevel(file, program);\n if (this.state.hasFlowComment) {\n this.raise(FlowErrors.UnterminatedFlowComment, {\n at: this.state.curPosition(),\n });\n }\n return fileNode;\n }\n\n skipBlockComment(): N.CommentBlock | undefined {\n if (this.hasPlugin(\"flowComments\") && this.skipFlowComment()) {\n if (this.state.hasFlowComment) {\n throw this.raise(FlowErrors.NestedFlowComment, {\n at: this.state.startLoc,\n });\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\n return super.skipBlockComment(this.state.hasFlowComment ? \"*-/\" : \"*/\");\n }\n\n skipFlowComment(): number | false {\n const { pos } = this.state;\n let shiftToFirstNonWhiteSpace = 2;\n while (\n [charCodes.space, charCodes.tab].includes(\n // @ts-expect-error testing whether a number is included\n this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace),\n )\n ) {\n shiftToFirstNonWhiteSpace++;\n }\n\n const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos);\n const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1);\n\n if (ch2 === charCodes.colon && ch3 === charCodes.colon) {\n return shiftToFirstNonWhiteSpace + 2; // check for /*::\n }\n if (\n this.input.slice(\n shiftToFirstNonWhiteSpace + pos,\n shiftToFirstNonWhiteSpace + pos + 12,\n ) === \"flow-include\"\n ) {\n return shiftToFirstNonWhiteSpace + 12; // check for /*flow-include\n }\n if (ch2 === charCodes.colon && ch3 !== charCodes.colon) {\n return shiftToFirstNonWhiteSpace; // check for /*:, advance up to :\n }\n return false;\n }\n\n hasFlowCommentCompletion(): void {\n const end = this.input.indexOf(\"*/\", this.state.pos);\n if (end === -1) {\n throw this.raise(Errors.UnterminatedComment, {\n at: this.state.curPosition(),\n });\n }\n }\n\n // Flow enum parsing\n\n flowEnumErrorBooleanMemberNotInitialized(\n loc: Position,\n {\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumBooleanMemberNotInitialized, {\n at: loc,\n memberName,\n enumName,\n });\n }\n\n flowEnumErrorInvalidMemberInitializer(\n loc: Position,\n enumContext: EnumContext,\n ) {\n return this.raise(\n !enumContext.explicitType\n ? FlowErrors.EnumInvalidMemberInitializerUnknownType\n : enumContext.explicitType === \"symbol\"\n ? FlowErrors.EnumInvalidMemberInitializerSymbolType\n : FlowErrors.EnumInvalidMemberInitializerPrimaryType,\n {\n at: loc,\n ...enumContext,\n },\n );\n }\n\n flowEnumErrorNumberMemberNotInitialized(\n loc: Position,\n {\n enumName,\n memberName,\n }: {\n enumName: string;\n memberName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumNumberMemberNotInitialized, {\n at: loc,\n enumName,\n memberName,\n });\n }\n\n flowEnumErrorStringMemberInconsistentlyInitialized(\n node: N.Node,\n {\n enumName,\n }: {\n enumName: string;\n },\n ): void {\n this.raise(FlowErrors.EnumStringMemberInconsistentlyInitialized, {\n at: node,\n enumName,\n });\n }\n\n flowEnumMemberInit(): EnumMemberInit {\n const startLoc = this.state.startLoc;\n const endOfInit = () => this.match(tt.comma) || this.match(tt.braceR);\n switch (this.state.type) {\n case tt.num: {\n const literal = this.parseNumericLiteral(this.state.value);\n if (endOfInit()) {\n return { type: \"number\", loc: literal.loc.start, value: literal };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n case tt.string: {\n const literal = this.parseStringLiteral(this.state.value);\n if (endOfInit()) {\n return { type: \"string\", loc: literal.loc.start, value: literal };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n case tt._true:\n case tt._false: {\n const literal = this.parseBooleanLiteral(this.match(tt._true));\n if (endOfInit()) {\n return {\n type: \"boolean\",\n loc: literal.loc.start,\n value: literal,\n };\n }\n return { type: \"invalid\", loc: startLoc };\n }\n default:\n return { type: \"invalid\", loc: startLoc };\n }\n }\n\n flowEnumMemberRaw(): {\n id: N.Node;\n init: EnumMemberInit;\n } {\n const loc = this.state.startLoc;\n const id = this.parseIdentifier(true);\n const init = this.eat(tt.eq)\n ? this.flowEnumMemberInit()\n : { type: \"none\" as const, loc };\n return { id, init };\n }\n\n flowEnumCheckExplicitTypeMismatch(\n loc: Position,\n context: EnumContext,\n expectedType: EnumExplicitType,\n ): void {\n const { explicitType } = context;\n if (explicitType === null) {\n return;\n }\n if (explicitType !== expectedType) {\n this.flowEnumErrorInvalidMemberInitializer(loc, context);\n }\n }\n\n flowEnumMembers({\n enumName,\n explicitType,\n }: {\n enumName: string;\n explicitType: EnumExplicitType;\n }): {\n members: {\n booleanMembers: Array<N.Node>;\n numberMembers: Array<N.Node>;\n stringMembers: Array<N.Node>;\n defaultedMembers: Array<N.Node>;\n };\n hasUnknownMembers: boolean;\n } {\n const seenNames = new Set();\n const members = {\n // @ts-expect-error: migrate to Babel types\n booleanMembers: [],\n // @ts-expect-error: migrate to Babel types\n numberMembers: [],\n // @ts-expect-error: migrate to Babel types\n stringMembers: [],\n // @ts-expect-error: migrate to Babel types\n defaultedMembers: [],\n };\n let hasUnknownMembers = false;\n while (!this.match(tt.braceR)) {\n if (this.eat(tt.ellipsis)) {\n hasUnknownMembers = true;\n break;\n }\n const memberNode = this.startNode();\n const { id, init } = this.flowEnumMemberRaw();\n const memberName = id.name;\n if (memberName === \"\") {\n continue;\n }\n if (/^[a-z]/.test(memberName)) {\n this.raise(FlowErrors.EnumInvalidMemberName, {\n at: 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, {\n at: id,\n memberName,\n enumName,\n });\n }\n seenNames.add(memberName);\n const context = { enumName, explicitType, memberName };\n memberNode.id = id;\n switch (init.type) {\n case \"boolean\": {\n this.flowEnumCheckExplicitTypeMismatch(\n init.loc,\n context,\n \"boolean\",\n );\n memberNode.init = init.value;\n members.booleanMembers.push(\n this.finishNode(memberNode, \"EnumBooleanMember\"),\n );\n break;\n }\n case \"number\": {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"number\");\n memberNode.init = init.value;\n members.numberMembers.push(\n this.finishNode(memberNode, \"EnumNumberMember\"),\n );\n break;\n }\n case \"string\": {\n this.flowEnumCheckExplicitTypeMismatch(init.loc, context, \"string\");\n memberNode.init = init.value;\n members.stringMembers.push(\n this.finishNode(memberNode, \"EnumStringMember\"),\n );\n break;\n }\n case \"invalid\": {\n throw this.flowEnumErrorInvalidMemberInitializer(init.loc, context);\n }\n case \"none\": {\n switch (explicitType) {\n case \"boolean\":\n this.flowEnumErrorBooleanMemberNotInitialized(\n init.loc,\n context,\n );\n break;\n case \"number\":\n this.flowEnumErrorNumberMemberNotInitialized(init.loc, context);\n break;\n default:\n members.defaultedMembers.push(\n this.finishNode(memberNode, \"EnumDefaultedMember\"),\n );\n }\n }\n }\n\n if (!this.match(tt.braceR)) {\n this.expect(tt.comma);\n }\n }\n return { members, hasUnknownMembers };\n }\n\n flowEnumStringMembers(\n initializedMembers: Array<N.Node>,\n defaultedMembers: Array<N.Node>,\n {\n enumName,\n }: {\n enumName: string;\n },\n ): Array<N.Node> {\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\n flowEnumParseExplicitType({\n enumName,\n }: {\n enumName: string;\n }): EnumExplicitType {\n if (!this.eatContextual(tt._of)) return null;\n\n if (!tokenIsIdentifier(this.state.type)) {\n throw this.raise(FlowErrors.EnumInvalidExplicitTypeUnknownSupplied, {\n at: this.state.startLoc,\n enumName,\n });\n }\n\n const { value } = this.state;\n this.next();\n\n if (\n value !== \"boolean\" &&\n value !== \"number\" &&\n value !== \"string\" &&\n value !== \"symbol\"\n ) {\n this.raise(FlowErrors.EnumInvalidExplicitType, {\n at: this.state.startLoc,\n enumName,\n invalidEnumType: value,\n });\n }\n\n return value;\n }\n\n flowEnumBody(node: Undone<N.Node>, id: N.Node): N.Node {\n const enumName = id.name;\n const nameLoc = id.loc.start;\n const explicitType = this.flowEnumParseExplicitType({ enumName });\n this.expect(tt.braceL);\n const { members, hasUnknownMembers } = this.flowEnumMembers({\n enumName,\n explicitType,\n });\n node.hasUnknownMembers = hasUnknownMembers;\n\n switch (explicitType) {\n case \"boolean\":\n node.explicitType = true;\n node.members = members.booleanMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumBooleanBody\");\n case \"number\":\n node.explicitType = true;\n node.members = members.numberMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n case \"string\":\n node.explicitType = true;\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n case \"symbol\":\n node.members = members.defaultedMembers;\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumSymbolBody\");\n default: {\n // `explicitType` is `null`\n const empty = () => {\n node.members = [];\n this.expect(tt.braceR);\n return this.finishNode(node, \"EnumStringBody\");\n };\n node.explicitType = false;\n\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\n if (!boolsLen && !numsLen && !strsLen && !defaultedLen) {\n return empty();\n } else if (!boolsLen && !numsLen) {\n node.members = this.flowEnumStringMembers(\n members.stringMembers,\n members.defaultedMembers,\n { enumName },\n );\n this.expect(tt.braceR);\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(tt.braceR);\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(tt.braceR);\n return this.finishNode(node, \"EnumNumberBody\");\n } else {\n this.raise(FlowErrors.EnumInconsistentMemberValues, {\n at: nameLoc,\n enumName,\n });\n return empty();\n }\n }\n }\n }\n\n flowParseEnumDeclaration(node: Undone<N.Node>): N.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\n // check if the next token is a tt.lt\n isLookaheadToken_lt(): boolean {\n const next = this.nextTokenStart();\n if (this.input.charCodeAt(next) === charCodes.lessThan) {\n const afterNext = this.input.charCodeAt(next + 1);\n return (\n afterNext !== charCodes.lessThan && afterNext !== charCodes.equalsTo\n );\n }\n return false;\n }\n\n maybeUnwrapTypeCastExpression(node: N.Node) {\n return node.type === \"TypeCastExpression\" ? node.expression : node;\n }\n };\n","const entities: {\n __proto__: null;\n [name: string]: string;\n} = {\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} as const;\nexport default entities;\n","import * as charCodes from \"charcodes\";\n\nimport XHTMLEntities from \"./xhtml.ts\";\nimport type Parser from \"../../parser/index.ts\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport {\n tokenComesBeforeExpression,\n tokenIsKeyword,\n tokenLabelName,\n type TokenType,\n tt,\n} from \"../../tokenizer/types.ts\";\nimport type { TokContext } from \"../../tokenizer/context.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport type * as N from \"../../types.ts\";\nimport { isIdentifierChar, isIdentifierStart } from \"../../util/identifier.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { isNewLine } from \"../../util/whitespace.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport type { Undone } from \"../../parser/node.ts\";\n\n/* eslint sort-keys: \"error\" */\nconst JsxErrors = ParseErrorEnum`jsx`({\n AttributeIsEmpty:\n \"JSX attributes must only be assigned a non-empty expression.\",\n MissingClosingTagElement: ({ openingTagName }: { openingTagName: string }) =>\n `Expected corresponding JSX closing tag for <${openingTagName}>.`,\n MissingClosingTagFragment: \"Expected corresponding JSX closing tag for <>.\",\n UnexpectedSequenceExpression:\n \"Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?\",\n // FIXME: Unify with Errors.UnexpectedToken\n UnexpectedToken: ({\n unexpected,\n HTMLEntity,\n }: {\n unexpected: string;\n HTMLEntity: string;\n }) =>\n `Unexpected token \\`${unexpected}\\`. Did you mean \\`${HTMLEntity}\\` or \\`{'${unexpected}'}\\`?`,\n UnsupportedJsxValue:\n \"JSX value should be either an expression or a quoted JSX text.\",\n UnterminatedJsxContent: \"Unterminated JSX contents.\",\n UnwrappedAdjacentJSXElements:\n \"Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...</>?\",\n});\n\n/* eslint-disable sort-keys */\n\nfunction isFragment(object?: N.JSXElement | null): boolean {\n return object\n ? object.type === \"JSXOpeningFragment\" ||\n object.type === \"JSXClosingFragment\"\n : false;\n}\n\n// Transforms JSX element name to string.\n\nfunction getQualifiedJSXName(\n object: N.JSXIdentifier | N.JSXNamespacedName | N.JSXMemberExpression,\n): string {\n if (object.type === \"JSXIdentifier\") {\n return object.name;\n }\n\n if (object.type === \"JSXNamespacedName\") {\n return object.namespace.name + \":\" + object.name.name;\n }\n\n if (object.type === \"JSXMemberExpression\") {\n return (\n getQualifiedJSXName(object.object) +\n \".\" +\n getQualifiedJSXName(object.property)\n );\n }\n\n // istanbul ignore next\n throw new Error(\"Node had unexpected type: \" + object.type);\n}\n\nexport interface IJSXParserMixin {\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement;\n}\n\nexport default (superClass: typeof Parser) =>\n class JSXParserMixin extends superClass implements Parser, IJSXParserMixin {\n // Reads inline JSX contents token.\n\n jsxReadToken(): void {\n let out = \"\";\n let chunkStart = this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(JsxErrors.UnterminatedJsxContent, {\n at: this.state.startLoc,\n });\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n\n switch (ch) {\n case charCodes.lessThan:\n case charCodes.leftCurlyBrace:\n if (this.state.pos === this.state.start) {\n if (ch === charCodes.lessThan && this.state.canStartJSXElement) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagStart);\n } else {\n super.getTokenFromCode(ch);\n }\n return;\n }\n out += this.input.slice(chunkStart, this.state.pos);\n this.finishToken(tt.jsxText, out);\n return;\n\n case charCodes.ampersand:\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadEntity();\n chunkStart = this.state.pos;\n break;\n\n case charCodes.greaterThan:\n case charCodes.rightCurlyBrace:\n if (process.env.BABEL_8_BREAKING) {\n this.raise(JsxErrors.UnexpectedToken, {\n at: this.state.curPosition(),\n unexpected: this.input[this.state.pos],\n HTMLEntity:\n ch === charCodes.rightCurlyBrace ? \"}\" : \">\",\n });\n }\n /* falls through */\n\n default:\n if (isNewLine(ch)) {\n out += this.input.slice(chunkStart, this.state.pos);\n out += this.jsxReadNewLine(true);\n chunkStart = this.state.pos;\n } else {\n ++this.state.pos;\n }\n }\n }\n }\n\n jsxReadNewLine(normalizeCRLF: boolean): string {\n const ch = this.input.charCodeAt(this.state.pos);\n let out;\n ++this.state.pos;\n if (\n ch === charCodes.carriageReturn &&\n this.input.charCodeAt(this.state.pos) === charCodes.lineFeed\n ) {\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\n return out;\n }\n\n jsxReadString(quote: number): void {\n let out = \"\";\n let chunkStart = ++this.state.pos;\n for (;;) {\n if (this.state.pos >= this.length) {\n throw this.raise(Errors.UnterminatedString, {\n at: this.state.startLoc,\n });\n }\n\n const ch = this.input.charCodeAt(this.state.pos);\n if (ch === quote) break;\n if (ch === charCodes.ampersand) {\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(tt.string, out);\n }\n\n jsxReadEntity(): string {\n const startPos = ++this.state.pos;\n if (this.codePointAtPos(this.state.pos) === charCodes.numberSign) {\n ++this.state.pos;\n\n let radix = 10;\n if (this.codePointAtPos(this.state.pos) === charCodes.lowercaseX) {\n radix = 16;\n ++this.state.pos;\n }\n\n const codePoint = this.readInt(\n radix,\n /* len */ undefined,\n /* forceLen */ false,\n /* allowNumSeparator */ \"bail\",\n );\n if (\n codePoint !== null &&\n this.codePointAtPos(this.state.pos) === charCodes.semicolon\n ) {\n ++this.state.pos;\n return String.fromCodePoint(codePoint);\n }\n } else {\n let count = 0;\n let semi = false;\n while (\n count++ < 10 &&\n this.state.pos < this.length &&\n !(semi = this.codePointAtPos(this.state.pos) == charCodes.semicolon)\n ) {\n ++this.state.pos;\n }\n\n if (semi) {\n const desc = this.input.slice(startPos, this.state.pos);\n const entity = XHTMLEntities[desc];\n ++this.state.pos;\n\n if (entity) {\n return entity;\n }\n }\n }\n\n // Not a valid entity\n this.state.pos = startPos;\n return \"&\";\n }\n\n // Read a JSX identifier (valid tag or attribute name).\n //\n // Optimized version since JSX identifiers can\"t contain\n // escape characters and so can be read as single slice.\n // Also assumes that first character was already checked\n // by isIdentifierStart in readToken.\n\n jsxReadWord(): void {\n let ch;\n const start = this.state.pos;\n do {\n ch = this.input.charCodeAt(++this.state.pos);\n } while (isIdentifierChar(ch) || ch === charCodes.dash);\n this.finishToken(tt.jsxName, this.input.slice(start, this.state.pos));\n }\n\n // Parse next token as JSX identifier\n\n jsxParseIdentifier(): N.JSXIdentifier {\n const node = this.startNode();\n if (this.match(tt.jsxName)) {\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\n // Parse namespaced identifier.\n\n jsxParseNamespacedName(): N.JSXNamespacedName {\n const startLoc = this.state.startLoc;\n const name = this.jsxParseIdentifier();\n if (!this.eat(tt.colon)) return name;\n\n const node = this.startNodeAt(startLoc);\n node.namespace = name;\n node.name = this.jsxParseIdentifier();\n return this.finishNode(node, \"JSXNamespacedName\");\n }\n\n // Parses element name in any form - namespaced, member\n // or single identifier.\n\n jsxParseElementName():\n | N.JSXIdentifier\n | N.JSXNamespacedName\n | N.JSXMemberExpression {\n const startLoc = this.state.startLoc;\n let node = this.jsxParseNamespacedName();\n if (node.type === \"JSXNamespacedName\") {\n return node;\n }\n while (this.eat(tt.dot)) {\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\n // Parses any type of JSX attribute value.\n\n jsxParseAttributeValue(): N.Expression {\n let node;\n switch (this.state.type) {\n case tt.braceL:\n node = this.startNode();\n this.setContext(tc.brace);\n this.next();\n node = this.jsxParseExpressionContainer(node, tc.j_oTag);\n if (node.expression.type === \"JSXEmptyExpression\") {\n this.raise(JsxErrors.AttributeIsEmpty, { at: node });\n }\n return node;\n\n case tt.jsxTagStart:\n case tt.string:\n return this.parseExprAtom();\n\n default:\n throw this.raise(JsxErrors.UnsupportedJsxValue, {\n at: this.state.startLoc,\n });\n }\n }\n\n // JSXEmptyExpression is unique type since it doesn't actually parse anything,\n // and so it should start at the end of last read token (left brace) and finish\n // at the beginning of the next one (right brace).\n\n jsxParseEmptyExpression(): N.JSXEmptyExpression {\n const node = this.startNodeAt(this.state.lastTokEndLoc);\n return this.finishNodeAt(node, \"JSXEmptyExpression\", this.state.startLoc);\n }\n\n // Parse JSX spread child\n\n jsxParseSpreadChild(node: Undone<N.JSXSpreadChild>): N.JSXSpreadChild {\n this.next(); // ellipsis\n node.expression = this.parseExpression();\n this.setContext(tc.j_expr);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXSpreadChild\");\n }\n\n // Parses JSX expression enclosed into curly brackets.\n\n jsxParseExpressionContainer(\n node: Undone<N.JSXExpressionContainer>,\n previousContext: TokContext,\n ): N.JSXExpressionContainer {\n if (this.match(tt.braceR)) {\n node.expression = this.jsxParseEmptyExpression();\n } else {\n const expression = this.parseExpression();\n\n if (process.env.BABEL_8_BREAKING) {\n if (\n expression.type === \"SequenceExpression\" &&\n !expression.extra?.parenthesized\n ) {\n this.raise(JsxErrors.UnexpectedSequenceExpression, {\n at: expression.expressions[1],\n });\n }\n }\n\n node.expression = expression;\n }\n this.setContext(previousContext);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"JSXExpressionContainer\");\n }\n\n // Parses following JSX attribute name-value pair.\n\n jsxParseAttribute(): N.JSXAttribute {\n const node = this.startNode();\n if (this.match(tt.braceL)) {\n this.setContext(tc.brace);\n this.next();\n this.expect(tt.ellipsis);\n node.argument = this.parseMaybeAssignAllowIn();\n this.setContext(tc.j_oTag);\n this.state.canStartJSXElement = true;\n this.expect(tt.braceR);\n return this.finishNode(node, \"JSXSpreadAttribute\");\n }\n node.name = this.jsxParseNamespacedName();\n node.value = this.eat(tt.eq) ? this.jsxParseAttributeValue() : null;\n return this.finishNode(node, \"JSXAttribute\");\n }\n\n // Parses JSX opening tag starting after \"<\".\n\n jsxParseOpeningElementAt(startLoc: Position): N.JSXOpeningElement {\n const node = this.startNodeAt<N.JSXOpeningElement | N.JSXOpeningFragment>(\n startLoc,\n );\n if (this.eat(tt.jsxTagEnd)) {\n // @ts-expect-error migrate to Babel types\n return this.finishNode(node, \"JSXOpeningFragment\");\n }\n node.name = this.jsxParseElementName();\n return this.jsxParseOpeningElementAfterName(\n node as Undone<N.JSXOpeningElement>,\n );\n }\n\n jsxParseOpeningElementAfterName(\n node: Undone<N.JSXOpeningElement>,\n ): N.JSXOpeningElement {\n const attributes: N.JSXAttribute[] = [];\n while (!this.match(tt.slash) && !this.match(tt.jsxTagEnd)) {\n attributes.push(this.jsxParseAttribute());\n }\n node.attributes = attributes;\n node.selfClosing = this.eat(tt.slash);\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXOpeningElement\");\n }\n\n // Parses JSX closing tag starting after \"</\".\n\n jsxParseClosingElementAt(startLoc: Position): N.JSXClosingElement {\n const node = this.startNodeAt(startLoc);\n if (this.eat(tt.jsxTagEnd)) {\n return this.finishNode(node, \"JSXClosingFragment\");\n }\n node.name = this.jsxParseElementName();\n this.expect(tt.jsxTagEnd);\n return this.finishNode(node, \"JSXClosingElement\");\n }\n\n // Parses entire JSX element, including it\"s opening tag\n // (starting after \"<\"), attributes, contents and closing tag.\n\n jsxParseElementAt(startLoc: Position): N.JSXElement {\n const node = this.startNodeAt(startLoc);\n const children = [];\n const openingElement = this.jsxParseOpeningElementAt(startLoc);\n let closingElement = null;\n\n if (!openingElement.selfClosing) {\n contents: for (;;) {\n switch (this.state.type) {\n case tt.jsxTagStart:\n startLoc = this.state.startLoc;\n this.next();\n if (this.eat(tt.slash)) {\n closingElement = this.jsxParseClosingElementAt(startLoc);\n break contents;\n }\n children.push(this.jsxParseElementAt(startLoc));\n break;\n\n case tt.jsxText:\n children.push(this.parseExprAtom());\n break;\n\n case tt.braceL: {\n const node = this.startNode<\n N.JSXSpreadChild | N.JSXExpressionContainer\n >();\n this.setContext(tc.brace);\n this.next();\n if (this.match(tt.ellipsis)) {\n children.push(this.jsxParseSpreadChild(node));\n } else {\n children.push(\n this.jsxParseExpressionContainer(node, tc.j_expr),\n );\n }\n\n break;\n }\n // istanbul ignore next - should never happen\n default:\n this.unexpected();\n }\n }\n\n if (\n isFragment(openingElement) &&\n !isFragment(closingElement) &&\n closingElement !== null\n ) {\n this.raise(JsxErrors.MissingClosingTagFragment, {\n at: closingElement,\n });\n } else if (!isFragment(openingElement) && isFragment(closingElement)) {\n this.raise(JsxErrors.MissingClosingTagElement, {\n at: closingElement,\n openingTagName: getQualifiedJSXName(openingElement.name),\n });\n } else if (!isFragment(openingElement) && !isFragment(closingElement)) {\n if (\n getQualifiedJSXName(closingElement.name) !==\n getQualifiedJSXName(openingElement.name)\n ) {\n this.raise(JsxErrors.MissingClosingTagElement, {\n at: closingElement,\n openingTagName: getQualifiedJSXName(openingElement.name),\n });\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(tt.lt)) {\n throw this.raise(JsxErrors.UnwrappedAdjacentJSXElements, {\n at: this.state.startLoc,\n });\n }\n\n return isFragment(openingElement)\n ? this.finishNode(node, \"JSXFragment\")\n : this.finishNode(node, \"JSXElement\");\n }\n\n // Parses entire JSX element from current position.\n\n jsxParseElement(): N.JSXElement {\n const startLoc = this.state.startLoc;\n this.next();\n return this.jsxParseElementAt(startLoc);\n }\n\n setContext(newContext: TokContext) {\n const { context } = this.state;\n context[context.length - 1] = newContext;\n }\n\n // ==================================\n // Overrides\n // ==================================\n\n parseExprAtom(refExpressionErrors?: ExpressionErrors | null): N.Expression {\n if (this.match(tt.jsxText)) {\n return this.parseLiteral(this.state.value, \"JSXText\");\n } else if (this.match(tt.jsxTagStart)) {\n return this.jsxParseElement();\n } else if (\n this.match(tt.lt) &&\n this.input.charCodeAt(this.state.pos) !== charCodes.exclamationMark\n ) {\n // In case we encounter an lt token here it will always be the start of\n // jsx as the lt sign is not allowed in places that expect an expression\n this.replaceToken(tt.jsxTagStart);\n return this.jsxParseElement();\n } else {\n return super.parseExprAtom(refExpressionErrors);\n }\n }\n\n skipSpace() {\n const curContext = this.curContext();\n if (!curContext.preserveSpace) super.skipSpace();\n }\n\n getTokenFromCode(code: number): void {\n const context = this.curContext();\n\n if (context === tc.j_expr) {\n this.jsxReadToken();\n return;\n }\n\n if (context === tc.j_oTag || context === tc.j_cTag) {\n if (isIdentifierStart(code)) {\n this.jsxReadWord();\n return;\n }\n\n if (code === charCodes.greaterThan) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagEnd);\n return;\n }\n\n if (\n (code === charCodes.quotationMark || code === charCodes.apostrophe) &&\n context === tc.j_oTag\n ) {\n this.jsxReadString(code);\n return;\n }\n }\n\n if (\n code === charCodes.lessThan &&\n this.state.canStartJSXElement &&\n this.input.charCodeAt(this.state.pos + 1) !== charCodes.exclamationMark\n ) {\n ++this.state.pos;\n this.finishToken(tt.jsxTagStart);\n return;\n }\n\n super.getTokenFromCode(code);\n }\n\n updateContext(prevType: TokenType): void {\n const { context, type } = this.state;\n if (type === tt.slash && prevType === tt.jsxTagStart) {\n // do not consider JSX expr -> JSX open tag -> ... anymore\n // reconsider as closing tag context\n context.splice(-2, 2, tc.j_cTag);\n this.state.canStartJSXElement = false;\n } else if (type === tt.jsxTagStart) {\n // start opening tag context\n context.push(tc.j_oTag);\n } else if (type === tt.jsxTagEnd) {\n const out = context[context.length - 1];\n if ((out === tc.j_oTag && prevType === tt.slash) || out === tc.j_cTag) {\n context.pop();\n this.state.canStartJSXElement =\n context[context.length - 1] === tc.j_expr;\n } else {\n this.setContext(tc.j_expr);\n this.state.canStartJSXElement = true;\n }\n } else {\n this.state.canStartJSXElement = tokenComesBeforeExpression(type);\n }\n }\n };\n","import type { Position } from \"../../util/location.ts\";\nimport ScopeHandler, { Scope } from \"../../util/scope.ts\";\nimport { BindingFlag, ScopeFlag } from \"../../util/scopeflags.ts\";\nimport type * as N from \"../../types.ts\";\nimport { Errors } from \"../../parse-error.ts\";\n\nclass TypeScriptScope extends Scope {\n types: Set<string> = new Set();\n\n // enums (which are also in .types)\n enums: Set<string> = new Set();\n\n // const enums (which are also in .enums and .types)\n constEnums: Set<string> = new Set();\n\n // classes (which are also in .lexical) and interface (which are also in .types)\n classes: Set<string> = new Set();\n\n // namespaces and ambient functions (or classes) are too difficult to track,\n // especially without type analysis.\n // We need to track them anyway, to avoid \"X is not defined\" errors\n // when exporting them.\n exportOnlyBindings: Set<string> = new Set();\n}\n\n// See https://github.com/babel/babel/pull/9766#discussion_r268920730 for an\n// explanation of how typescript handles scope.\n\nexport default class TypeScriptScopeHandler extends ScopeHandler<TypeScriptScope> {\n importsStack: Set<string>[] = [];\n\n createScope(flags: ScopeFlag): TypeScriptScope {\n this.importsStack.push(new Set()); // Always keep the top-level scope for export checks.\n\n return new TypeScriptScope(flags);\n }\n\n enter(flags: ScopeFlag): void {\n if (flags == ScopeFlag.TS_MODULE) {\n this.importsStack.push(new Set());\n }\n\n super.enter(flags);\n }\n\n exit() {\n const flags = super.exit();\n\n if (flags == ScopeFlag.TS_MODULE) {\n this.importsStack.pop();\n }\n\n return flags;\n }\n\n hasImport(name: string, allowShadow?: boolean) {\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\n declareName(name: string, bindingType: BindingFlag, loc: Position) {\n if (bindingType & BindingFlag.FLAG_TS_IMPORT) {\n if (this.hasImport(name, true)) {\n this.parser.raise(Errors.VarRedeclaration, {\n at: loc,\n identifierName: name,\n });\n }\n this.importsStack[this.importsStack.length - 1].add(name);\n return;\n }\n\n const scope = this.currentScope();\n if (bindingType & BindingFlag.FLAG_TS_EXPORT_ONLY) {\n this.maybeExportDefined(scope, name);\n scope.exportOnlyBindings.add(name);\n return;\n }\n\n super.declareName(name, bindingType, loc);\n\n if (bindingType & BindingFlag.KIND_TYPE) {\n if (!(bindingType & BindingFlag.KIND_VALUE)) {\n // \"Value\" bindings have already been registered by the superclass.\n this.checkRedeclarationInScope(scope, name, bindingType, loc);\n this.maybeExportDefined(scope, name);\n }\n scope.types.add(name);\n }\n if (bindingType & BindingFlag.FLAG_TS_ENUM) scope.enums.add(name);\n if (bindingType & BindingFlag.FLAG_TS_CONST_ENUM) {\n scope.constEnums.add(name);\n }\n if (bindingType & BindingFlag.FLAG_CLASS) scope.classes.add(name);\n }\n\n isRedeclaredInScope(\n scope: TypeScriptScope,\n name: string,\n bindingType: BindingFlag,\n ): boolean {\n if (scope.enums.has(name)) {\n if (bindingType & BindingFlag.FLAG_TS_ENUM) {\n // Enums can be merged with other enums if they are both\n // const or both non-const.\n const isConst = !!(bindingType & BindingFlag.FLAG_TS_CONST_ENUM);\n const wasConst = scope.constEnums.has(name);\n return isConst !== wasConst;\n }\n return true;\n }\n if (bindingType & BindingFlag.FLAG_CLASS && scope.classes.has(name)) {\n if (scope.lexical.has(name)) {\n // Classes can be merged with interfaces\n return !!(bindingType & BindingFlag.KIND_VALUE);\n } else {\n // Interface can be merged with other classes or interfaces\n return false;\n }\n }\n if (bindingType & BindingFlag.KIND_TYPE && scope.types.has(name)) {\n return true;\n }\n\n return super.isRedeclaredInScope(scope, name, bindingType);\n }\n\n checkLocalExport(id: N.Identifier) {\n const { name } = id;\n\n if (this.hasImport(name)) return;\n\n const len = this.scopeStack.length;\n for (let i = len - 1; i >= 0; i--) {\n const scope = this.scopeStack[i];\n if (scope.types.has(name) || scope.exportOnlyBindings.has(name)) return;\n }\n\n super.checkLocalExport(id);\n }\n}\n","import * as charCodes from \"charcodes\";\nimport { tt, type TokenType } from \"../tokenizer/types.ts\";\nimport type {\n AssignmentPattern,\n TSParameterProperty,\n Decorator,\n Expression,\n Identifier,\n Node,\n Pattern,\n RestElement,\n SpreadElement,\n ObjectOrClassMember,\n ClassMember,\n ObjectMember,\n TsNamedTypeElementBase,\n PrivateName,\n ObjectExpression,\n ObjectPattern,\n ArrayExpression,\n ArrayPattern,\n} from \"../types.ts\";\nimport type { Pos, Position } from \"../util/location.ts\";\nimport {\n isStrictBindOnlyReservedWord,\n isStrictBindReservedWord,\n} from \"../util/identifier.ts\";\nimport { NodeUtils, type Undone } from \"./node.ts\";\nimport { BindingFlag } from \"../util/scopeflags.ts\";\nimport type { ExpressionErrors } from \"./util.ts\";\nimport { Errors, type LValAncestor } from \"../parse-error.ts\";\nimport type Parser from \"./index.ts\";\n\nconst getOwn = <T extends {}>(object: T, key: keyof T) =>\n Object.hasOwnProperty.call(object, key) && object[key];\n\nconst unwrapParenthesizedExpression = (node: Node): Node => {\n return node.type === \"ParenthesizedExpression\"\n ? unwrapParenthesizedExpression(node.expression)\n : node;\n};\n\nexport const enum ParseBindingListFlags {\n ALLOW_EMPTY = 1 << 0,\n IS_FUNCTION_PARAMS = 1 << 1,\n IS_CONSTRUCTOR_PARAMS = 1 << 2,\n}\n\nexport default abstract class LValParser extends NodeUtils {\n // Forward-declaration: defined in expression.js\n abstract parseIdentifier(liberal?: boolean): Identifier;\n abstract parseMaybeAssign(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n refNeedsArrowPos?: Pos | null,\n ): Expression;\n\n abstract parseMaybeAssignAllowIn(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n refNeedsArrowPos?: Pos | null,\n ): Expression;\n\n abstract parseObjectLike<T extends ObjectPattern | ObjectExpression>(\n close: TokenType,\n isPattern: boolean,\n isRecord?: boolean,\n refExpressionErrors?: ExpressionErrors,\n ): T;\n abstract parseObjPropValue(\n prop: any,\n startLoc: Position | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): void;\n abstract parsePropertyName(\n prop: ObjectOrClassMember | ClassMember | TsNamedTypeElementBase,\n ): Expression | Identifier;\n abstract parsePrivateName(): PrivateName;\n // Forward-declaration: defined in statement.js\n abstract parseDecorator(): Decorator;\n\n /**\n * Convert existing expression atom to assignable pattern\n * if possible. Also checks invalid destructuring targets:\n *\n * - Parenthesized Destructuring patterns\n * - RestElement is not the last element\n * - Missing `=` in assignment pattern\n *\n * NOTE: There is a corresponding \"isAssignable\" method.\n * When this one is updated, please check if also that one needs to be updated.\n *\n * @param node The expression atom\n * @param isLHS Whether we are parsing a LeftHandSideExpression.\n * If isLHS is `true`, the following cases are allowed: `[(a)] = [0]`, `[(a.b)] = [0]`\n * If isLHS is `false`, we are in an arrow function parameters list.\n */\n toAssignable(node: Node, isLHS: boolean = false): void {\n let parenthesized = undefined;\n if (node.type === \"ParenthesizedExpression\" || node.extra?.parenthesized) {\n parenthesized = unwrapParenthesizedExpression(node);\n if (isLHS) {\n // an LHS can be reinterpreted to a binding pattern but not vice versa.\n // therefore a parenthesized identifier is ambiguous until we are sure it is an assignment expression\n // i.e. `([(a) = []] = []) => {}`\n // see also `recordArrowParameterBindingError` signature in packages/babel-parser/src/util/expression-scope.js\n if (parenthesized.type === \"Identifier\") {\n this.expressionScope.recordArrowParameterBindingError(\n Errors.InvalidParenthesizedAssignment,\n { at: node },\n );\n } else if (\n parenthesized.type !== \"MemberExpression\" &&\n !this.isOptionalMemberExpression(parenthesized)\n ) {\n // A parenthesized member expression can be in LHS but not in pattern.\n // If the LHS is later interpreted as a pattern, `checkLVal` will throw for member expression binding\n // i.e. `([(a.b) = []] = []) => {}`\n this.raise(Errors.InvalidParenthesizedAssignment, { at: node });\n }\n } else {\n this.raise(Errors.InvalidParenthesizedAssignment, { at: node });\n }\n }\n\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n break;\n\n case \"ObjectExpression\":\n node.type = \"ObjectPattern\";\n for (\n let i = 0, length = node.properties.length, last = length - 1;\n i < length;\n i++\n ) {\n const prop = node.properties[i];\n const isLast = i === last;\n this.toAssignableObjectExpressionProp(prop, isLast, isLHS);\n\n if (\n isLast &&\n prop.type === \"RestElement\" &&\n node.extra?.trailingCommaLoc\n ) {\n this.raise(Errors.RestTrailingComma, {\n at: node.extra.trailingCommaLoc,\n });\n }\n }\n break;\n\n case \"ObjectProperty\": {\n const { key, value } = node;\n if (this.isPrivateName(key)) {\n this.classScope.usePrivateName(\n this.getPrivateNameSV(key),\n key.loc.start,\n );\n }\n this.toAssignable(value, isLHS);\n break;\n }\n\n case \"SpreadElement\": {\n throw new Error(\n \"Internal @babel/parser error (this is a bug, please report it).\" +\n \" SpreadElement should be converted by .toAssignable's caller.\",\n );\n }\n\n case \"ArrayExpression\":\n node.type = \"ArrayPattern\";\n this.toAssignableList(\n node.elements,\n node.extra?.trailingCommaLoc,\n isLHS,\n );\n break;\n\n case \"AssignmentExpression\":\n if (node.operator !== \"=\") {\n this.raise(Errors.MissingEqInAssignment, { at: node.left.loc.end });\n }\n\n node.type = \"AssignmentPattern\";\n delete node.operator;\n this.toAssignable(node.left, isLHS);\n break;\n\n case \"ParenthesizedExpression\":\n /*::invariant (parenthesized !== undefined) */\n this.toAssignable(parenthesized, isLHS);\n break;\n\n default:\n // We don't know how to deal with this node. It will\n // be reported by a later call to checkLVal\n }\n }\n\n toAssignableObjectExpressionProp(\n prop: Node,\n isLast: boolean,\n isLHS: boolean,\n ) {\n if (prop.type === \"ObjectMethod\") {\n this.raise(\n prop.kind === \"get\" || prop.kind === \"set\"\n ? Errors.PatternHasAccessor\n : Errors.PatternHasMethod,\n { at: prop.key },\n );\n } else if (prop.type === \"SpreadElement\") {\n prop.type = \"RestElement\";\n const arg = prop.argument;\n this.checkToRestConversion(arg, /* allowPattern */ false);\n this.toAssignable(arg, isLHS);\n\n if (!isLast) {\n this.raise(Errors.RestTrailingComma, { at: prop });\n }\n } else {\n this.toAssignable(prop, isLHS);\n }\n }\n\n // Convert list of expression atoms to binding list.\n\n toAssignableList(\n exprList: Expression[],\n trailingCommaLoc: Position | undefined | null,\n isLHS: boolean,\n ): void {\n const end = exprList.length - 1;\n\n for (let i = 0; i <= end; i++) {\n const elt = exprList[i];\n if (!elt) continue;\n\n if (elt.type === \"SpreadElement\") {\n elt.type = \"RestElement\";\n const arg = elt.argument;\n this.checkToRestConversion(arg, /* allowPattern */ true);\n this.toAssignable(arg, isLHS);\n } else {\n this.toAssignable(elt, isLHS);\n }\n\n if (elt.type === \"RestElement\") {\n if (i < end) {\n this.raise(Errors.RestTrailingComma, { at: elt });\n } else if (trailingCommaLoc) {\n this.raise(Errors.RestTrailingComma, { at: trailingCommaLoc });\n }\n }\n }\n }\n\n isAssignable(node: Node, isBinding?: boolean): boolean {\n switch (node.type) {\n case \"Identifier\":\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n case \"AssignmentPattern\":\n case \"RestElement\":\n return true;\n\n case \"ObjectExpression\": {\n const last = node.properties.length - 1;\n return (node.properties as ObjectExpression[\"properties\"]).every(\n (prop, i) => {\n return (\n prop.type !== \"ObjectMethod\" &&\n (i === last || prop.type !== \"SpreadElement\") &&\n this.isAssignable(prop)\n );\n },\n );\n }\n\n case \"ObjectProperty\":\n return this.isAssignable(node.value);\n\n case \"SpreadElement\":\n return this.isAssignable(node.argument);\n\n case \"ArrayExpression\":\n return (node as ArrayExpression).elements.every(\n element => element === null || this.isAssignable(element),\n );\n\n case \"AssignmentExpression\":\n return node.operator === \"=\";\n\n case \"ParenthesizedExpression\":\n return this.isAssignable(node.expression);\n\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n return !isBinding;\n\n default:\n return false;\n }\n }\n\n // Convert list of expression atoms to a list of\n\n toReferencedList(\n exprList: ReadonlyArray<Expression | undefined | null>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isParenthesizedExpr?: boolean,\n ): ReadonlyArray<Expression | undefined | null> {\n return exprList;\n }\n\n toReferencedListDeep(\n exprList: ReadonlyArray<Expression | undefined | null>,\n isParenthesizedExpr?: boolean,\n ): void {\n this.toReferencedList(exprList, isParenthesizedExpr);\n\n for (const expr of exprList) {\n if (expr?.type === \"ArrayExpression\") {\n this.toReferencedListDeep(expr.elements);\n }\n }\n }\n\n // Parses spread element.\n\n parseSpread(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n ): SpreadElement {\n const node = this.startNode<SpreadElement>();\n this.next();\n node.argument = this.parseMaybeAssignAllowIn(\n refExpressionErrors,\n undefined,\n );\n return this.finishNode(node, \"SpreadElement\");\n }\n\n // https://tc39.es/ecma262/#prod-BindingRestProperty\n // https://tc39.es/ecma262/#prod-BindingRestElement\n parseRestBinding(this: Parser): RestElement {\n const node = this.startNode<RestElement>();\n this.next(); // eat `...`\n node.argument = this.parseBindingAtom();\n return this.finishNode(node, \"RestElement\");\n }\n\n // Parses lvalue (assignable) atom.\n parseBindingAtom(this: Parser): Pattern {\n // https://tc39.es/ecma262/#prod-BindingPattern\n switch (this.state.type) {\n case tt.bracketL: {\n const node = this.startNode<ArrayPattern>();\n this.next();\n // @ts-expect-error: Fixme: TSParameterProperty can not be assigned to node.elements\n node.elements = this.parseBindingList(\n tt.bracketR,\n charCodes.rightSquareBracket,\n ParseBindingListFlags.ALLOW_EMPTY,\n );\n return this.finishNode(node, \"ArrayPattern\");\n }\n\n case tt.braceL:\n return this.parseObjectLike(tt.braceR, true);\n }\n\n // https://tc39.es/ecma262/#prod-BindingIdentifier\n return this.parseIdentifier();\n }\n\n // https://tc39.es/ecma262/#prod-BindingElementList\n parseBindingList(\n this: Parser,\n close: TokenType,\n closeCharCode: (typeof charCodes)[keyof typeof charCodes],\n flags: ParseBindingListFlags,\n ): Array<Pattern | TSParameterProperty> {\n const allowEmpty = flags & ParseBindingListFlags.ALLOW_EMPTY;\n\n const elts: Array<Pattern | TSParameterProperty> = [];\n let first = true;\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n }\n if (allowEmpty && this.match(tt.comma)) {\n elts.push(null);\n } else if (this.eat(close)) {\n break;\n } else if (this.match(tt.ellipsis)) {\n elts.push(\n this.parseAssignableListItemTypes(this.parseRestBinding(), flags),\n );\n if (!this.checkCommaAfterRest(closeCharCode)) {\n this.expect(close);\n break;\n }\n } else {\n const decorators = [];\n if (this.match(tt.at) && this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedParameterDecorator, {\n at: this.state.startLoc,\n });\n }\n // invariant: hasPlugin(\"decorators-legacy\")\n while (this.match(tt.at)) {\n decorators.push(this.parseDecorator());\n }\n elts.push(this.parseAssignableListItem(flags, decorators));\n }\n }\n return elts;\n }\n\n // https://tc39.es/ecma262/#prod-BindingRestProperty\n parseBindingRestProperty(\n this: Parser,\n prop: Undone<RestElement>,\n ): RestElement {\n this.next(); // eat '...'\n // Don't use parseRestBinding() as we only allow Identifier here.\n prop.argument = this.parseIdentifier();\n this.checkCommaAfterRest(charCodes.rightCurlyBrace);\n return this.finishNode(prop, \"RestElement\");\n }\n\n // https://tc39.es/ecma262/#prod-BindingProperty\n parseBindingProperty(this: Parser): ObjectMember | RestElement {\n const prop = this.startNode<ObjectMember | RestElement>();\n const { type, startLoc } = this.state;\n if (type === tt.ellipsis) {\n return this.parseBindingRestProperty(prop as Undone<RestElement>);\n } else if (type === tt.privateName) {\n this.expectPlugin(\"destructuringPrivate\", startLoc);\n this.classScope.usePrivateName(this.state.value, startLoc);\n (prop as Undone<ObjectMember>).key = this.parsePrivateName();\n } else {\n this.parsePropertyName(prop as Undone<ObjectMember>);\n }\n (prop as Undone<ObjectMember>).method = false;\n return this.parseObjPropValue(\n prop as Undone<ObjectMember>,\n startLoc,\n false /* isGenerator */,\n false /* isAsync */,\n true /* isPattern */,\n false /* isAccessor */,\n );\n }\n\n parseAssignableListItem(\n this: Parser,\n flags: ParseBindingListFlags,\n decorators: Decorator[],\n ): Pattern | TSParameterProperty {\n const left = this.parseMaybeDefault();\n this.parseAssignableListItemTypes(left, flags);\n const elt = this.parseMaybeDefault(left.loc.start, left);\n if (decorators.length) {\n left.decorators = decorators;\n }\n return elt;\n }\n\n // Used by flow/typescript plugin to add type annotations to binding elements\n parseAssignableListItemTypes(\n param: Pattern,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n flags: ParseBindingListFlags,\n ): Pattern {\n return param;\n }\n\n // Parses assignment pattern around given atom if possible.\n // https://tc39.es/ecma262/#prod-BindingElement\n parseMaybeDefault(\n this: Parser,\n startLoc?: Position | null,\n left?: Pattern | null,\n ): Pattern {\n startLoc ??= this.state.startLoc;\n left = left ?? this.parseBindingAtom();\n if (!this.eat(tt.eq)) return left;\n\n const node = this.startNodeAt<AssignmentPattern>(startLoc);\n node.left = left;\n node.right = this.parseMaybeAssignAllowIn();\n return this.finishNode(node, \"AssignmentPattern\");\n }\n /**\n * Return information use in determining whether a Node of a given type is an LVal,\n * possibly given certain additional context information.\n *\n * Subclasser notes: This method has kind of a lot of mixed, but related,\n * responsibilities. If we can definitively determine with the information\n * provided that this either *is* or *isn't* a valid `LVal`, then the return\n * value is easy: just return `true` or `false`. However, if it is a valid\n * LVal *ancestor*, and thus its descendants must be subsequently visited to\n * continue the \"investigation\", then this method should return the relevant\n * child key as a `string`. In some special cases, you additionally want to\n * convey that this node should be treated as if it were parenthesized. In\n * that case, a tuple of [key: string, parenthesized: boolean] is returned.\n * The `string`-only return option is actually just a shorthand for:\n * `[key: string, parenthesized: false]`.\n *\n * @param type A Node `type` string\n * @param isUnparenthesizedInAssign\n * Whether the node in question is unparenthesized and its parent\n * is either an assignment pattern or an assignment expression.\n * @param binding\n * The binding operation that is being considered for this potential\n * LVal.\n * @returns `true` or `false` if we can immediately determine whether the node\n * type in question can be treated as an `LVal`.\n * A `string` key to traverse if we must check this child.\n * A `[string, boolean]` tuple if we need to check this child and\n * treat is as parenthesized.\n */\n isValidLVal(\n type: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isUnparenthesizedInAssign: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n binding: BindingFlag,\n ): string | boolean {\n return getOwn(\n {\n AssignmentPattern: \"left\",\n RestElement: \"argument\",\n ObjectProperty: \"value\",\n ParenthesizedExpression: \"expression\",\n ArrayPattern: \"elements\",\n ObjectPattern: \"properties\",\n },\n // @ts-expect-error refine string to enum\n type,\n );\n }\n\n // Overridden by the estree plugin\n isOptionalMemberExpression(expression: Node) {\n return expression.type === \"OptionalMemberExpression\";\n }\n\n /**\n * Verify that a target expression is an lval (something that can be assigned to).\n *\n * @param expression The expression in question to check.\n * @param options A set of options described below.\n * @param options.in\n * The relevant ancestor to provide context information for the error\n * if the check fails.\n * @param options.binding\n * The desired binding type. If the given expression is an identifier\n * and `binding` is not `BindingFlag.TYPE_NONE`, `checkLVal` will register binding\n * to the parser scope See also `src/util/scopeflags.js`\n * @param options.checkClashes\n * An optional string set to check if an identifier name is included.\n * `checkLVal` will add checked identifier name to `checkClashes` It is\n * used in tracking duplicates in function parameter lists. If it is\n * false, `checkLVal` will skip duplicate checks\n * @param options.strictModeChanged\n * Whether an identifier has been parsed in a sloppy context but should\n * be reinterpreted as strict-mode. e.g. `(arguments) => { \"use strict \"}`\n * @param options.hasParenthesizedAncestor\n * This is only used internally during recursive calls, and you should\n * not have to set it yourself.\n */\n\n checkLVal(\n expression: Expression | ObjectMember | RestElement,\n {\n in: ancestor,\n binding = BindingFlag.TYPE_NONE,\n checkClashes = false,\n strictModeChanged = false,\n hasParenthesizedAncestor = false,\n }: {\n in: LValAncestor;\n binding?: BindingFlag;\n checkClashes?: Set<string> | false;\n strictModeChanged?: boolean;\n hasParenthesizedAncestor?: boolean;\n },\n ): void {\n const type = expression.type;\n\n // If we find here an ObjectMethod, it's because this was originally\n // an ObjectExpression which has then been converted.\n // toAssignable already reported this error with a nicer message.\n if (this.isObjectMethod(expression)) return;\n\n const isOptionalMemberExpression =\n this.isOptionalMemberExpression(expression);\n\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, {\n at: expression,\n ancestor,\n });\n }\n }\n\n if (binding !== BindingFlag.TYPE_NONE) {\n this.raise(Errors.InvalidPropertyBindingPattern, { at: expression });\n }\n return;\n }\n\n if (type === \"Identifier\") {\n this.checkIdentifier(\n expression as Identifier,\n binding,\n strictModeChanged,\n );\n\n const { name } = expression as Identifier;\n\n if (checkClashes) {\n if (checkClashes.has(name)) {\n this.raise(Errors.ParamDupe, { at: expression });\n } else {\n checkClashes.add(name);\n }\n }\n\n return;\n }\n\n const validity = this.isValidLVal(\n type,\n !(hasParenthesizedAncestor || expression.extra?.parenthesized) &&\n ancestor.type === \"AssignmentExpression\",\n binding,\n );\n\n if (validity === true) return;\n if (validity === false) {\n const ParseErrorClass =\n binding === BindingFlag.TYPE_NONE\n ? Errors.InvalidLhs\n : Errors.InvalidLhsBinding;\n\n this.raise(ParseErrorClass, { at: expression, ancestor });\n return;\n }\n\n const [key, isParenthesizedExpression] = Array.isArray(validity)\n ? validity\n : [validity, type === \"ParenthesizedExpression\"];\n const nextAncestor =\n type === \"ArrayPattern\" || type === \"ObjectPattern\"\n ? ({ type } as const)\n : ancestor;\n\n // @ts-expect-error key may not index expression.\n for (const child of [].concat(expression[key])) {\n if (child) {\n this.checkLVal(child, {\n in: nextAncestor,\n binding,\n checkClashes,\n strictModeChanged,\n hasParenthesizedAncestor: isParenthesizedExpression,\n });\n }\n }\n }\n\n checkIdentifier(\n at: Identifier,\n bindingType: BindingFlag,\n strictModeChanged: boolean = false,\n ) {\n if (\n this.state.strict &&\n (strictModeChanged\n ? isStrictBindReservedWord(at.name, this.inModule)\n : isStrictBindOnlyReservedWord(at.name))\n ) {\n if (bindingType === BindingFlag.TYPE_NONE) {\n this.raise(Errors.StrictEvalArguments, { at, referenceName: at.name });\n } else {\n this.raise(Errors.StrictEvalArgumentsBinding, {\n at,\n bindingName: at.name,\n });\n }\n }\n\n if (bindingType & BindingFlag.FLAG_NO_LET_IN_LEXICAL && at.name === \"let\") {\n this.raise(Errors.LetInLexicalBinding, { at });\n }\n\n if (!(bindingType & BindingFlag.TYPE_NONE)) {\n this.declareNameFromIdentifier(at, bindingType);\n }\n }\n\n declareNameFromIdentifier(identifier: Identifier, binding: BindingFlag) {\n this.scope.declareName(identifier.name, binding, identifier.loc.start);\n }\n\n checkToRestConversion(node: Node, allowPattern: boolean): void {\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 /* falls through */\n default:\n this.raise(Errors.InvalidRestAssignmentPattern, { at: node });\n }\n }\n\n checkCommaAfterRest(\n close: (typeof charCodes)[keyof typeof charCodes],\n ): boolean {\n if (!this.match(tt.comma)) {\n return false;\n }\n\n this.raise(\n this.lookaheadCharCode() === close\n ? Errors.RestTrailingComma\n : Errors.ElementAfterRest,\n { at: this.state.startLoc },\n );\n\n return true;\n }\n}\n","/*:: declare var invariant; */\n\nimport type State from \"../../tokenizer/state.ts\";\nimport {\n tokenIsIdentifier,\n tokenIsTSDeclarationStart,\n tokenIsTSTypeOperator,\n tokenOperatorPrecedence,\n tokenIsKeywordOrIdentifier,\n tt,\n type TokenType,\n tokenIsTemplate,\n tokenCanStartExpression,\n} from \"../../tokenizer/types.ts\";\nimport { types as tc } from \"../../tokenizer/context.ts\";\nimport type * as N from \"../../types.ts\";\nimport type { Position } from \"../../util/location.ts\";\nimport { createPositionWithColumnOffset } from \"../../util/location.ts\";\nimport type Parser from \"../../parser/index.ts\";\nimport { ScopeFlag, BindingFlag } from \"../../util/scopeflags.ts\";\nimport TypeScriptScopeHandler from \"./scope.ts\";\nimport * as charCodes from \"charcodes\";\nimport type { ExpressionErrors } from \"../../parser/util.ts\";\nimport type { ParseStatementFlag } from \"../../parser/statement.ts\";\nimport { ParamKind } from \"../../util/production-parameter.ts\";\nimport { Errors, ParseErrorEnum } from \"../../parse-error.ts\";\nimport { cloneIdentifier, type Undone } from \"../../parser/node.ts\";\nimport type { Pattern } from \"../../types.ts\";\nimport type { Expression } from \"../../types.ts\";\nimport type { IJSXParserMixin } from \"../jsx/index.ts\";\nimport { ParseBindingListFlags } from \"../../parser/lval.ts\";\n\nconst getOwn = <T extends {}>(object: T, key: keyof T) =>\n Object.hasOwnProperty.call(object, key) && object[key];\n\ntype TsModifier =\n | \"readonly\"\n | \"abstract\"\n | \"declare\"\n | \"static\"\n | \"override\"\n | \"const\"\n | N.Accessibility\n | N.VarianceAnnotations;\n\nfunction nonNull<T>(x?: T | null): T {\n if (x == null) {\n throw new Error(`Unexpected ${x} value.`);\n }\n return x;\n}\n\nfunction assert(x: boolean): void {\n if (!x) {\n throw new Error(\"Assert fail\");\n }\n}\n\ntype ParsingContext =\n | \"EnumMembers\"\n | \"HeritageClauseElement\"\n | \"TupleElementTypes\"\n | \"TypeMembers\"\n | \"TypeParametersOrArguments\";\n\ntype ModifierBase = {\n accessibility?: N.Accessibility;\n} & {\n [key in TsModifier]?: boolean | undefined | null;\n};\n\n/* eslint sort-keys: \"error\" */\nconst TSErrors = ParseErrorEnum`typescript`({\n AbstractMethodHasImplementation: ({ methodName }: { methodName: string }) =>\n `Method '${methodName}' cannot have an implementation because it is marked abstract.`,\n AbstractPropertyHasInitializer: ({\n propertyName,\n }: {\n propertyName: string;\n }) =>\n `Property '${propertyName}' cannot have an initializer because it is marked abstract.`,\n // TODO: Accesor -> Accessor\n AccesorCannotDeclareThisParameter:\n \"'get' and 'set' accessors cannot declare 'this' parameters.\",\n AccesorCannotHaveTypeParameters: \"An accessor cannot have type parameters.\",\n AccessorCannotBeOptional:\n \"An 'accessor' property cannot be declared optional.\",\n ClassMethodHasDeclare: \"Class methods cannot have the 'declare' modifier.\",\n ClassMethodHasReadonly: \"Class methods cannot have the 'readonly' modifier.\",\n ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference:\n \"A 'const' initializer in an ambient context must be a string or numeric literal or literal enum reference.\",\n ConstructorHasTypeParameters:\n \"Type parameters cannot appear on a constructor declaration.\",\n DeclareAccessor: ({ kind }: { kind: \"get\" | \"set\" }) =>\n `'declare' is not allowed in ${kind}ters.`,\n DeclareClassFieldHasInitializer:\n \"Initializers are not allowed in ambient contexts.\",\n DeclareFunctionHasImplementation:\n \"An implementation cannot be declared in ambient contexts.\",\n DuplicateAccessibilityModifier:\n // `Accessibility modifier already seen: ${modifier}` would be more helpful.\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n ({ modifier }: { modifier: N.Accessibility }) =>\n `Accessibility modifier already seen.`,\n DuplicateModifier: ({ modifier }: { modifier: TsModifier }) =>\n `Duplicate modifier: '${modifier}'.`,\n // `token` matches the terminology used by typescript:\n // https://github.com/microsoft/TypeScript/blob/main/src/compiler/types.ts#L2915\n EmptyHeritageClauseType: ({ token }: { token: \"extends\" | \"implements\" }) =>\n `'${token}' list cannot be empty.`,\n EmptyTypeArguments: \"Type argument list cannot be empty.\",\n EmptyTypeParameters: \"Type parameter list cannot be empty.\",\n ExpectedAmbientAfterExportDeclare:\n \"'export declare' must be followed by an ambient declaration.\",\n ImportAliasHasImportType: \"An import alias can not use 'import type'.\",\n ImportReflectionHasImportType:\n \"An `import module` declaration can not use `type` modifier\",\n IncompatibleModifiers: ({\n modifiers,\n }: {\n modifiers: [TsModifier, TsModifier];\n }) =>\n `'${modifiers[0]}' modifier cannot be used with '${modifiers[1]}' modifier.`,\n IndexSignatureHasAbstract:\n \"Index signatures cannot have the 'abstract' modifier.\",\n IndexSignatureHasAccessibility: ({\n modifier,\n }: {\n modifier: N.Accessibility;\n }) =>\n `Index signatures cannot have an accessibility modifier ('${modifier}').`,\n IndexSignatureHasDeclare:\n \"Index signatures cannot have the 'declare' modifier.\",\n IndexSignatureHasOverride:\n \"'override' modifier cannot appear on an index signature.\",\n IndexSignatureHasStatic:\n \"Index signatures cannot have the 'static' modifier.\",\n InitializerNotAllowedInAmbientContext:\n \"Initializers are not allowed in ambient contexts.\",\n InvalidModifierOnTypeMember: ({ modifier }: { modifier: TsModifier }) =>\n `'${modifier}' modifier cannot appear on a type member.`,\n InvalidModifierOnTypeParameter: ({ modifier }: { modifier: TsModifier }) =>\n `'${modifier}' modifier cannot appear on a type parameter.`,\n InvalidModifierOnTypeParameterPositions: ({\n modifier,\n }: {\n modifier: TsModifier;\n }) =>\n `'${modifier}' modifier can only appear on a type parameter of a class, interface or type alias.`,\n InvalidModifiersOrder: ({\n orderedModifiers,\n }: {\n orderedModifiers: [TsModifier, TsModifier];\n }) =>\n `'${orderedModifiers[0]}' modifier must precede '${orderedModifiers[1]}' modifier.`,\n InvalidPropertyAccessAfterInstantiationExpression:\n \"Invalid property access after an instantiation expression. \" +\n \"You can either wrap the instantiation expression in parentheses, or delete the type arguments.\",\n InvalidTupleMemberLabel:\n \"Tuple members must be labeled with a simple identifier.\",\n MissingInterfaceName:\n \"'interface' declarations must be followed by an identifier.\",\n NonAbstractClassHasAbstractMethod:\n \"Abstract methods can only appear within an abstract class.\",\n NonClassMethodPropertyHasAbstractModifer:\n \"'abstract' modifier can only appear on a class, method, or property declaration.\",\n OptionalTypeBeforeRequired:\n \"A required element cannot follow an optional element.\",\n OverrideNotInSubClass:\n \"This member cannot have an 'override' modifier because its containing class does not extend another class.\",\n PatternIsOptional:\n \"A binding pattern parameter cannot be optional in an implementation signature.\",\n PrivateElementHasAbstract:\n \"Private elements cannot have the 'abstract' modifier.\",\n PrivateElementHasAccessibility: ({\n modifier,\n }: {\n modifier: N.Accessibility;\n }) =>\n `Private elements cannot have an accessibility modifier ('${modifier}').`,\n ReadonlyForMethodSignature:\n \"'readonly' modifier can only appear on a property declaration or index signature.\",\n ReservedArrowTypeParam:\n \"This syntax is reserved in files with the .mts or .cts extension. Add a trailing comma, as in `<T,>() => ...`.\",\n ReservedTypeAssertion:\n \"This syntax is reserved in files with the .mts or .cts extension. Use an `as` expression instead.\",\n // TODO: Accesor -> Accessor\n SetAccesorCannotHaveOptionalParameter:\n \"A 'set' accessor cannot have an optional parameter.\",\n SetAccesorCannotHaveRestParameter:\n \"A 'set' accessor cannot have rest parameter.\",\n SetAccesorCannotHaveReturnType:\n \"A 'set' accessor cannot have a return type annotation.\",\n SingleTypeParameterWithoutTrailingComma: ({\n typeParameterName,\n }: {\n typeParameterName: string;\n }) =>\n `Single type parameter ${typeParameterName} should have a trailing comma. Example usage: <${typeParameterName},>.`,\n StaticBlockCannotHaveModifier:\n \"Static class blocks cannot have any modifier.\",\n TupleOptionalAfterType:\n \"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:\n \"Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.\",\n TypeImportCannotSpecifyDefaultAndNamed:\n \"A type-only import can specify a default import or named bindings, but not both.\",\n TypeModifierIsUsedInTypeExports:\n \"The 'type' modifier cannot be used on a named export when 'export type' is used on its export statement.\",\n TypeModifierIsUsedInTypeImports:\n \"The 'type' modifier cannot be used on a named import when 'import type' is used on its import statement.\",\n UnexpectedParameterModifier:\n \"A parameter property is only allowed in a constructor implementation.\",\n UnexpectedReadonly:\n \"'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:\n \"Argument in a type import must be a string literal.\",\n UnsupportedParameterPropertyKind:\n \"A parameter property may not be declared using a binding pattern.\",\n UnsupportedSignatureParameterKind: ({ type }: { type: string }) =>\n `Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got ${type}.`,\n});\n\n/* eslint-disable sort-keys */\n\n// Doesn't handle \"void\" or \"null\" because those are keywords, not identifiers.\n// It also doesn't handle \"intrinsic\", since usually it's not a keyword.\nfunction keywordTypeFromName(value: string): N.TsKeywordTypeType | undefined {\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}\n\nfunction tsIsAccessModifier(modifier: string): modifier is N.Accessibility {\n return (\n modifier === \"private\" || modifier === \"public\" || modifier === \"protected\"\n );\n}\n\nfunction tsIsVarianceAnnotations(\n modifier: string,\n): modifier is N.VarianceAnnotations {\n return modifier === \"in\" || modifier === \"out\";\n}\n\ntype ClassWithMixin<\n T extends new (...args: any) => any,\n M extends object,\n> = T extends new (...args: infer P) => infer I\n ? new (...args: P) => I & M\n : never;\n\nexport default (superClass: ClassWithMixin<typeof Parser, IJSXParserMixin>) =>\n class TypeScriptParserMixin extends superClass implements Parser {\n getScopeHandler(): {\n new (...args: any): TypeScriptScopeHandler;\n } {\n return TypeScriptScopeHandler;\n }\n\n tsIsIdentifier(): boolean {\n // TODO: actually a bit more complex in TypeScript, but shouldn't matter.\n // See https://github.com/Microsoft/TypeScript/issues/15008\n return tokenIsIdentifier(this.state.type);\n }\n\n tsTokenCanFollowModifier() {\n return (\n (this.match(tt.bracketL) ||\n this.match(tt.braceL) ||\n this.match(tt.star) ||\n this.match(tt.ellipsis) ||\n this.match(tt.privateName) ||\n this.isLiteralPropertyName()) &&\n !this.hasPrecedingLineBreak()\n );\n }\n\n tsNextTokenCanFollowModifier() {\n // Note: TypeScript's implementation is much more complicated because\n // more things are considered modifiers there.\n // This implementation only handles modifiers not handled by @babel/parser itself. And \"static\".\n // TODO: Would be nice to avoid lookahead. Want a hasLineBreakUpNext() method...\n this.next();\n return this.tsTokenCanFollowModifier();\n }\n\n /** Parses a modifier matching one the given modifier names. */\n tsParseModifier<T extends TsModifier>(\n allowedModifiers: T[],\n stopOnStartOfClassStaticBlock?: boolean,\n ): T | undefined | null {\n if (\n !tokenIsIdentifier(this.state.type) &&\n this.state.type !== tt._in &&\n this.state.type !== tt._const\n ) {\n return undefined;\n }\n\n const modifier = this.state.value;\n if (allowedModifiers.indexOf(modifier) !== -1) {\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\n /** Parses a list of modifiers, in any order.\n * If you need a specific order, you must call this function multiple times:\n * this.tsParseModifiers({ modified: node, allowedModifiers: [\"public\"] });\n * this.tsParseModifiers({ modified: node, allowedModifiers: [\"abstract\", \"readonly\"] });\n */\n tsParseModifiers<N extends ModifierBase>(\n {\n allowedModifiers,\n disallowedModifiers,\n stopOnStartOfClassStaticBlock,\n errorTemplate = TSErrors.InvalidModifierOnTypeMember,\n }: {\n allowedModifiers: readonly TsModifier[];\n disallowedModifiers?: TsModifier[];\n stopOnStartOfClassStaticBlock?: boolean;\n errorTemplate?: typeof TSErrors.InvalidModifierOnTypeMember;\n },\n modified: N,\n ): void {\n const enforceOrder = (\n loc: Position,\n modifier: TsModifier,\n before: TsModifier,\n after: TsModifier,\n ) => {\n if (modifier === before && modified[after]) {\n this.raise(TSErrors.InvalidModifiersOrder, {\n at: loc,\n orderedModifiers: [before, after],\n });\n }\n };\n const incompatible = (\n loc: Position,\n modifier: TsModifier,\n mod1: TsModifier,\n mod2: TsModifier,\n ) => {\n if (\n (modified[mod1] && modifier === mod2) ||\n (modified[mod2] && modifier === mod1)\n ) {\n this.raise(TSErrors.IncompatibleModifiers, {\n at: loc,\n modifiers: [mod1, mod2],\n });\n }\n };\n\n for (;;) {\n const { startLoc } = this.state;\n const modifier: TsModifier | undefined | null = this.tsParseModifier(\n allowedModifiers.concat(disallowedModifiers ?? []),\n stopOnStartOfClassStaticBlock,\n );\n\n if (!modifier) break;\n\n if (tsIsAccessModifier(modifier)) {\n if (modified.accessibility) {\n this.raise(TSErrors.DuplicateAccessibilityModifier, {\n at: 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\n modified.accessibility = modifier;\n }\n } else if (tsIsVarianceAnnotations(modifier)) {\n if (modified[modifier]) {\n this.raise(TSErrors.DuplicateModifier, { at: startLoc, modifier });\n }\n modified[modifier] = true;\n\n enforceOrder(startLoc, modifier, \"in\", \"out\");\n } else {\n if (Object.hasOwnProperty.call(modified, modifier)) {\n this.raise(TSErrors.DuplicateModifier, { at: startLoc, modifier });\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\n incompatible(startLoc, modifier, \"declare\", \"override\");\n incompatible(startLoc, modifier, \"static\", \"abstract\");\n }\n modified[modifier] = true;\n }\n\n if (disallowedModifiers?.includes(modifier)) {\n this.raise(errorTemplate, {\n at: startLoc,\n modifier,\n });\n }\n }\n }\n\n tsIsListTerminator(kind: ParsingContext): boolean {\n switch (kind) {\n case \"EnumMembers\":\n case \"TypeMembers\":\n return this.match(tt.braceR);\n case \"HeritageClauseElement\":\n return this.match(tt.braceL);\n case \"TupleElementTypes\":\n return this.match(tt.bracketR);\n case \"TypeParametersOrArguments\":\n return this.match(tt.gt);\n }\n }\n\n tsParseList<T extends N.Node>(\n kind: ParsingContext,\n parseElement: () => T,\n ): T[] {\n const result: T[] = [];\n while (!this.tsIsListTerminator(kind)) {\n // Skipping \"parseListElement\" from the TS source since that's just for error handling.\n result.push(parseElement());\n }\n return result;\n }\n\n tsParseDelimitedList<T extends N.Node>(\n kind: ParsingContext,\n parseElement: () => T,\n refTrailingCommaPos?: {\n value: number;\n },\n ): T[] {\n return nonNull(\n this.tsParseDelimitedListWorker(\n kind,\n parseElement,\n /* expectSuccess */ true,\n refTrailingCommaPos,\n ),\n );\n }\n\n /**\n * If !expectSuccess, returns undefined instead of failing to parse.\n * If expectSuccess, parseElement should always return a defined value.\n */\n tsParseDelimitedListWorker<T extends N.Node>(\n kind: ParsingContext,\n parseElement: () => T | undefined | null,\n expectSuccess: boolean,\n refTrailingCommaPos?: {\n value: number;\n },\n ): T[] | undefined | null {\n const result = [];\n let trailingCommaPos = -1;\n\n for (;;) {\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n trailingCommaPos = -1;\n\n const element = parseElement();\n if (element == null) {\n return undefined;\n }\n result.push(element);\n\n if (this.eat(tt.comma)) {\n trailingCommaPos = this.state.lastTokStart;\n continue;\n }\n\n if (this.tsIsListTerminator(kind)) {\n break;\n }\n\n if (expectSuccess) {\n // This will fail with an error about a missing comma\n this.expect(tt.comma);\n }\n return undefined;\n }\n\n if (refTrailingCommaPos) {\n refTrailingCommaPos.value = trailingCommaPos;\n }\n\n return result;\n }\n\n tsParseBracketedList<T extends N.Node>(\n kind: ParsingContext,\n parseElement: () => T,\n bracket: boolean,\n skipFirstToken: boolean,\n refTrailingCommaPos?: {\n value: number;\n },\n ): T[] {\n if (!skipFirstToken) {\n if (bracket) {\n this.expect(tt.bracketL);\n } else {\n this.expect(tt.lt);\n }\n }\n\n const result = this.tsParseDelimitedList(\n kind,\n parseElement,\n refTrailingCommaPos,\n );\n\n if (bracket) {\n this.expect(tt.bracketR);\n } else {\n this.expect(tt.gt);\n }\n\n return result;\n }\n\n tsParseImportType(): N.TsImportType {\n const node = this.startNode<N.TsImportType>();\n this.expect(tt._import);\n this.expect(tt.parenL);\n if (!this.match(tt.string)) {\n this.raise(TSErrors.UnsupportedImportTypeArgument, {\n at: this.state.startLoc,\n });\n }\n\n // For compatibility to estree we cannot call parseLiteral directly here\n node.argument = super.parseExprAtom() as N.StringLiteral;\n this.expect(tt.parenR);\n\n if (this.eat(tt.dot)) {\n // In this instance, the entity name will actually itself be a\n // qualifier, so allow it to be a reserved word as well.\n node.qualifier = this.tsParseEntityName();\n }\n if (this.match(tt.lt)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSImportType\");\n }\n\n tsParseEntityName(allowReservedWords: boolean = true): N.TsEntityName {\n let entity: N.TsEntityName = this.parseIdentifier(allowReservedWords);\n while (this.eat(tt.dot)) {\n const node: Undone<N.TsQualifiedName> =\n this.startNodeAtNode<N.TsQualifiedName>(entity);\n node.left = entity;\n node.right = this.parseIdentifier(allowReservedWords);\n entity = this.finishNode(node, \"TSQualifiedName\");\n }\n return entity;\n }\n\n tsParseTypeReference(): N.TsTypeReference {\n const node = this.startNode<N.TsTypeReference>();\n node.typeName = this.tsParseEntityName();\n if (!this.hasPrecedingLineBreak() && this.match(tt.lt)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSTypeReference\");\n }\n\n tsParseThisTypePredicate(lhs: N.TsThisType): N.TsTypePredicate {\n this.next();\n const node = this.startNodeAtNode<N.TsTypePredicate>(lhs);\n node.parameterName = lhs;\n node.typeAnnotation = this.tsParseTypeAnnotation(/* eatColon */ false);\n node.asserts = false;\n return this.finishNode(node, \"TSTypePredicate\");\n }\n\n tsParseThisTypeNode(): N.TsThisType {\n const node = this.startNode<N.TsThisType>();\n this.next();\n return this.finishNode(node, \"TSThisType\");\n }\n\n tsParseTypeQuery(): N.TsTypeQuery {\n const node = this.startNode<N.TsTypeQuery>();\n this.expect(tt._typeof);\n if (this.match(tt._import)) {\n node.exprName = this.tsParseImportType();\n } else {\n node.exprName = this.tsParseEntityName();\n }\n if (!this.hasPrecedingLineBreak() && this.match(tt.lt)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n return this.finishNode(node, \"TSTypeQuery\");\n }\n\n tsParseInOutModifiers = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"in\", \"out\"],\n disallowedModifiers: [\n \"const\",\n \"public\",\n \"private\",\n \"protected\",\n \"readonly\",\n \"declare\",\n \"abstract\",\n \"override\",\n ],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameter,\n });\n\n tsParseConstModifier = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"const\"],\n // for better error recovery\n disallowedModifiers: [\"in\", \"out\"],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions,\n });\n\n tsParseInOutConstModifiers = this.tsParseModifiers.bind(this, {\n allowedModifiers: [\"in\", \"out\", \"const\"],\n disallowedModifiers: [\n \"public\",\n \"private\",\n \"protected\",\n \"readonly\",\n \"declare\",\n \"abstract\",\n \"override\",\n ],\n errorTemplate: TSErrors.InvalidModifierOnTypeParameter,\n });\n\n tsParseTypeParameter(\n parseModifiers: (node: Undone<N.TsTypeParameter>) => void,\n ): N.TsTypeParameter {\n const node = this.startNode<N.TsTypeParameter>();\n\n parseModifiers(node);\n\n node.name = this.tsParseTypeParameterName();\n node.constraint = this.tsEatThenParseType(tt._extends);\n node.default = this.tsEatThenParseType(tt.eq);\n return this.finishNode(node, \"TSTypeParameter\");\n }\n\n tsTryParseTypeParameters(\n parseModifiers: (node: N.TsTypeParameter) => void,\n ): N.TsTypeParameterDeclaration | undefined | null {\n if (this.match(tt.lt)) {\n return this.tsParseTypeParameters(parseModifiers);\n }\n }\n\n tsParseTypeParameters(parseModifiers: (node: N.TsTypeParameter) => void) {\n const node = this.startNode<N.TsTypeParameterDeclaration>();\n\n if (this.match(tt.lt) || this.match(tt.jsxTagStart)) {\n this.next();\n } else {\n this.unexpected();\n }\n\n const refTrailingCommaPos = { value: -1 };\n\n node.params = this.tsParseBracketedList(\n \"TypeParametersOrArguments\",\n // @ts-expect-error refine typings\n this.tsParseTypeParameter.bind(this, parseModifiers),\n /* bracket */ false,\n /* skipFirstToken */ true,\n refTrailingCommaPos,\n );\n if (node.params.length === 0) {\n this.raise(TSErrors.EmptyTypeParameters, { at: node });\n }\n if (refTrailingCommaPos.value !== -1) {\n this.addExtra(node, \"trailingComma\", refTrailingCommaPos.value);\n }\n return this.finishNode(node, \"TSTypeParameterDeclaration\");\n }\n\n // Note: In TypeScript implementation we must provide `yieldContext` and `awaitContext`,\n // but here it's always false, because this is only used for types.\n tsFillSignature(\n returnToken: TokenType,\n signature: Undone<N.TsSignatureDeclaration>,\n ): void {\n // Arrow fns *must* have return token (`=>`). Normal functions can omit it.\n const returnTokenRequired = returnToken === tt.arrow;\n\n // https://github.com/babel/babel/issues/9231\n const paramsKey = process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\";\n const returnTypeKey = process.env.BABEL_8_BREAKING\n ? \"returnType\"\n : \"typeAnnotation\";\n\n signature.typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n this.expect(tt.parenL);\n signature[paramsKey] = this.tsParseBindingListForSignature();\n if (returnTokenRequired) {\n signature[returnTypeKey] =\n this.tsParseTypeOrTypePredicateAnnotation(returnToken);\n } else if (this.match(returnToken)) {\n signature[returnTypeKey] =\n this.tsParseTypeOrTypePredicateAnnotation(returnToken);\n }\n }\n\n tsParseBindingListForSignature(): Array<\n N.Identifier | N.RestElement | N.ObjectPattern | N.ArrayPattern\n > {\n const list = super.parseBindingList(\n tt.parenR,\n charCodes.rightParenthesis,\n ParseBindingListFlags.IS_FUNCTION_PARAMS,\n );\n for (const pattern of list) {\n const { type } = pattern;\n if (type === \"AssignmentPattern\" || type === \"TSParameterProperty\") {\n this.raise(TSErrors.UnsupportedSignatureParameterKind, {\n at: pattern,\n type,\n });\n }\n }\n return list as Exclude<\n (typeof list)[0],\n N.AssignmentPattern | N.TSParameterProperty\n >[];\n }\n\n tsParseTypeMemberSemicolon(): void {\n if (!this.eat(tt.comma) && !this.isLineTerminator()) {\n this.expect(tt.semi);\n }\n }\n\n tsParseSignatureMember(\n kind: \"TSCallSignatureDeclaration\" | \"TSConstructSignatureDeclaration\",\n node: Undone<\n N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration\n >,\n ): N.TsCallSignatureDeclaration | N.TsConstructSignatureDeclaration {\n this.tsFillSignature(tt.colon, node);\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, kind);\n }\n\n tsIsUnambiguouslyIndexSignature() {\n this.next(); // Skip '{'\n if (tokenIsIdentifier(this.state.type)) {\n this.next();\n return this.match(tt.colon);\n }\n return false;\n }\n\n tsTryParseIndexSignature(\n node: Undone<N.TsIndexSignature>,\n ): N.TsIndexSignature | undefined {\n if (\n !(\n this.match(tt.bracketL) &&\n this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this))\n )\n ) {\n return;\n }\n\n this.expect(tt.bracketL);\n const id = this.parseIdentifier();\n id.typeAnnotation = this.tsParseTypeAnnotation();\n this.resetEndLocation(id); // set end position to end of type\n\n this.expect(tt.bracketR);\n node.parameters = [id];\n\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n this.tsParseTypeMemberSemicolon();\n return this.finishNode(node, \"TSIndexSignature\");\n }\n\n tsParsePropertyOrMethodSignature(\n node: N.TsPropertySignature | N.TsMethodSignature,\n readonly: boolean,\n ): N.TsPropertySignature | N.TsMethodSignature {\n if (this.eat(tt.question)) node.optional = true;\n const nodeAny: any = node;\n\n if (this.match(tt.parenL) || this.match(tt.lt)) {\n if (readonly) {\n this.raise(TSErrors.ReadonlyForMethodSignature, { at: node });\n }\n const method: N.TsMethodSignature = nodeAny;\n if (method.kind && this.match(tt.lt)) {\n this.raise(TSErrors.AccesorCannotHaveTypeParameters, {\n at: this.state.curPosition(),\n });\n }\n this.tsFillSignature(tt.colon, method);\n this.tsParseTypeMemberSemicolon();\n const paramsKey = process.env.BABEL_8_BREAKING\n ? \"params\"\n : \"parameters\";\n const returnTypeKey = process.env.BABEL_8_BREAKING\n ? \"returnType\"\n : \"typeAnnotation\";\n if (method.kind === \"get\") {\n if (method[paramsKey].length > 0) {\n this.raise(Errors.BadGetterArity, { at: this.state.curPosition() });\n if (this.isThisParam(method[paramsKey][0])) {\n this.raise(TSErrors.AccesorCannotDeclareThisParameter, {\n at: this.state.curPosition(),\n });\n }\n }\n } else if (method.kind === \"set\") {\n if (method[paramsKey].length !== 1) {\n this.raise(Errors.BadSetterArity, { at: this.state.curPosition() });\n } else {\n const firstParameter = method[paramsKey][0];\n if (this.isThisParam(firstParameter)) {\n this.raise(TSErrors.AccesorCannotDeclareThisParameter, {\n at: this.state.curPosition(),\n });\n }\n if (\n firstParameter.type === \"Identifier\" &&\n firstParameter.optional\n ) {\n this.raise(TSErrors.SetAccesorCannotHaveOptionalParameter, {\n at: this.state.curPosition(),\n });\n }\n if (firstParameter.type === \"RestElement\") {\n this.raise(TSErrors.SetAccesorCannotHaveRestParameter, {\n at: this.state.curPosition(),\n });\n }\n }\n if (method[returnTypeKey]) {\n this.raise(TSErrors.SetAccesorCannotHaveReturnType, {\n at: method[returnTypeKey],\n });\n }\n } else {\n method.kind = \"method\";\n }\n return this.finishNode(method, \"TSMethodSignature\");\n } else {\n const property: N.TsPropertySignature = 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\n tsParseTypeMember(): N.TsTypeElement {\n const node: any = this.startNode();\n\n if (this.match(tt.parenL) || this.match(tt.lt)) {\n return this.tsParseSignatureMember(\"TSCallSignatureDeclaration\", node);\n }\n\n if (this.match(tt._new)) {\n const id = this.startNode<N.Identifier>();\n this.next();\n if (this.match(tt.parenL) || this.match(tt.lt)) {\n return this.tsParseSignatureMember(\n \"TSConstructSignatureDeclaration\",\n node,\n );\n } else {\n node.key = this.createIdentifier(id, \"new\");\n return this.tsParsePropertyOrMethodSignature(node, false);\n }\n }\n\n this.tsParseModifiers(\n {\n allowedModifiers: [\"readonly\"],\n disallowedModifiers: [\n \"declare\",\n \"abstract\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"override\",\n ],\n },\n node,\n );\n\n const idx = this.tsTryParseIndexSignature(node);\n if (idx) {\n return idx;\n }\n\n super.parsePropertyName(node);\n if (\n !node.computed &&\n node.key.type === \"Identifier\" &&\n (node.key.name === \"get\" || node.key.name === \"set\") &&\n this.tsTokenCanFollowModifier()\n ) {\n node.kind = node.key.name;\n super.parsePropertyName(node);\n }\n return this.tsParsePropertyOrMethodSignature(node, !!node.readonly);\n }\n\n tsParseTypeLiteral(): N.TsTypeLiteral {\n const node = this.startNode<N.TsTypeLiteral>();\n node.members = this.tsParseObjectTypeMembers();\n return this.finishNode(node, \"TSTypeLiteral\");\n }\n\n tsParseObjectTypeMembers(): Array<N.TsTypeElement> {\n this.expect(tt.braceL);\n const members = this.tsParseList(\n \"TypeMembers\",\n this.tsParseTypeMember.bind(this),\n );\n this.expect(tt.braceR);\n return members;\n }\n\n tsIsStartOfMappedType(): boolean {\n this.next();\n if (this.eat(tt.plusMin)) {\n return this.isContextual(tt._readonly);\n }\n if (this.isContextual(tt._readonly)) {\n this.next();\n }\n if (!this.match(tt.bracketL)) {\n return false;\n }\n this.next();\n if (!this.tsIsIdentifier()) {\n return false;\n }\n this.next();\n return this.match(tt._in);\n }\n\n tsParseMappedTypeParameter(): N.TsTypeParameter {\n const node = this.startNode<N.TsTypeParameter>();\n node.name = this.tsParseTypeParameterName();\n node.constraint = this.tsExpectThenParseType(tt._in);\n return this.finishNode(node, \"TSTypeParameter\");\n }\n\n tsParseMappedType(): N.TsMappedType {\n const node = this.startNode<N.TsMappedType>();\n\n this.expect(tt.braceL);\n\n if (this.match(tt.plusMin)) {\n node.readonly = this.state.value;\n this.next();\n this.expectContextual(tt._readonly);\n } else if (this.eatContextual(tt._readonly)) {\n node.readonly = true;\n }\n\n this.expect(tt.bracketL);\n node.typeParameter = this.tsParseMappedTypeParameter();\n node.nameType = this.eatContextual(tt._as) ? this.tsParseType() : null;\n\n this.expect(tt.bracketR);\n\n if (this.match(tt.plusMin)) {\n node.optional = this.state.value;\n this.next();\n this.expect(tt.question);\n } else if (this.eat(tt.question)) {\n node.optional = true;\n }\n\n node.typeAnnotation = this.tsTryParseType();\n this.semicolon();\n this.expect(tt.braceR);\n\n return this.finishNode(node, \"TSMappedType\");\n }\n\n tsParseTupleType(): N.TsTupleType {\n const node = this.startNode<N.TsTupleType>();\n node.elementTypes = this.tsParseBracketedList(\n \"TupleElementTypes\",\n this.tsParseTupleElementType.bind(this),\n /* bracket */ true,\n /* skipFirstToken */ false,\n );\n\n // Validate the elementTypes to ensure that no mandatory elements\n // follow optional elements\n let seenOptionalElement = false;\n node.elementTypes.forEach(elementNode => {\n const { type } = elementNode;\n\n if (\n seenOptionalElement &&\n type !== \"TSRestType\" &&\n type !== \"TSOptionalType\" &&\n !(type === \"TSNamedTupleMember\" && elementNode.optional)\n ) {\n this.raise(TSErrors.OptionalTypeBeforeRequired, {\n at: elementNode,\n });\n }\n\n seenOptionalElement ||=\n (type === \"TSNamedTupleMember\" && elementNode.optional) ||\n type === \"TSOptionalType\";\n });\n\n return this.finishNode(node, \"TSTupleType\");\n }\n\n tsParseTupleElementType(): N.TsNamedTupleMember | N.TsType {\n // parses `...TsType[]`\n\n const { startLoc } = this.state;\n\n const rest = this.eat(tt.ellipsis);\n\n let labeled: boolean;\n let label: N.Identifier;\n let optional: boolean;\n let type: N.TsNamedTupleMember | N.TsType;\n\n const isWord = tokenIsKeywordOrIdentifier(this.state.type);\n const chAfterWord = isWord ? this.lookaheadCharCode() : null;\n if (chAfterWord === charCodes.colon) {\n labeled = true;\n optional = false;\n label = this.parseIdentifier(true);\n this.expect(tt.colon);\n type = this.tsParseType();\n } else if (chAfterWord === charCodes.questionMark) {\n optional = true;\n const startLoc = this.state.startLoc;\n const wordName = this.state.value;\n const typeOrLabel = this.tsParseNonArrayType();\n\n if (this.lookaheadCharCode() === charCodes.colon) {\n labeled = true;\n label = this.createIdentifier(\n this.startNodeAt<N.Identifier>(startLoc),\n wordName,\n );\n this.expect(tt.question);\n this.expect(tt.colon);\n type = this.tsParseType();\n } else {\n labeled = false;\n type = typeOrLabel;\n this.expect(tt.question);\n }\n } else {\n type = this.tsParseType();\n optional = this.eat(tt.question);\n // In this case (labeled === true) could be only in invalid label.\n // E.g. [x.y:type]\n // An error is raised while processing node.\n labeled = this.eat(tt.colon);\n }\n\n if (labeled) {\n let labeledNode: Undone<N.TsNamedTupleMember>;\n if (label) {\n labeledNode = this.startNodeAtNode<N.TsNamedTupleMember>(label);\n labeledNode.optional = optional;\n labeledNode.label = label;\n labeledNode.elementType = type;\n\n if (this.eat(tt.question)) {\n labeledNode.optional = true;\n this.raise(TSErrors.TupleOptionalAfterType, {\n at: this.state.lastTokStartLoc,\n });\n }\n } else {\n labeledNode = this.startNodeAtNode<N.TsNamedTupleMember>(type);\n labeledNode.optional = optional;\n this.raise(TSErrors.InvalidTupleMemberLabel, { at: type });\n // @ts-expect-error This produces an invalid AST, but at least we don't drop\n // nodes representing the invalid source.\n labeledNode.label = type;\n labeledNode.elementType = this.tsParseType();\n }\n type = this.finishNode(labeledNode, \"TSNamedTupleMember\");\n } else if (optional) {\n const optionalTypeNode = this.startNodeAtNode<N.TsOptionalType>(type);\n optionalTypeNode.typeAnnotation = type;\n type = this.finishNode(optionalTypeNode, \"TSOptionalType\");\n }\n\n if (rest) {\n const restNode = this.startNodeAt<N.TsRestType>(startLoc);\n restNode.typeAnnotation = type;\n type = this.finishNode(restNode, \"TSRestType\");\n }\n\n return type;\n }\n\n tsParseParenthesizedType(): N.TsParenthesizedType {\n const node = this.startNode<N.TsParenthesizedType>();\n this.expect(tt.parenL);\n node.typeAnnotation = this.tsParseType();\n this.expect(tt.parenR);\n return this.finishNode(node, \"TSParenthesizedType\");\n }\n\n tsParseFunctionOrConstructorType(\n type: \"TSFunctionType\" | \"TSConstructorType\",\n abstract?: boolean,\n ): N.TsFunctionOrConstructorType {\n const node = this.startNode<\n N.TsFunctionOrConstructorType | N.TsConstructorType\n >();\n if (type === \"TSConstructorType\") {\n (node as Undone<N.TsConstructorType>).abstract = !!abstract;\n if (abstract) this.next();\n this.next(); // eat `new`\n }\n this.tsInAllowConditionalTypesContext(() =>\n this.tsFillSignature(tt.arrow, node),\n );\n return this.finishNode(node, type);\n }\n\n tsParseLiteralTypeNode(): N.TsLiteralType {\n const node = this.startNode<N.TsLiteralType>();\n switch (this.state.type) {\n case tt.num:\n case tt.bigint:\n case tt.string:\n case tt._true:\n case tt._false:\n // For compatibility to estree we cannot call parseLiteral directly here\n // @ts-expect-error refine typings\n node.literal = super.parseExprAtom();\n break;\n default:\n this.unexpected();\n }\n return this.finishNode(node, \"TSLiteralType\");\n }\n\n tsParseTemplateLiteralType(): N.TsType {\n const node = this.startNode<N.TsLiteralType>();\n node.literal = super.parseTemplate(false);\n return this.finishNode(node, \"TSLiteralType\");\n }\n\n parseTemplateSubstitution(): N.TsType | N.Node {\n if (this.state.inType) return this.tsParseType();\n return super.parseTemplateSubstitution();\n }\n\n tsParseThisTypeOrThisTypePredicate(): N.TsThisType | N.TsTypePredicate {\n const thisKeyword = this.tsParseThisTypeNode();\n if (this.isContextual(tt._is) && !this.hasPrecedingLineBreak()) {\n return this.tsParseThisTypePredicate(thisKeyword);\n } else {\n return thisKeyword;\n }\n }\n\n tsParseNonArrayType(): N.TsType {\n switch (this.state.type) {\n case tt.string:\n case tt.num:\n case tt.bigint:\n case tt._true:\n case tt._false:\n return this.tsParseLiteralTypeNode();\n case tt.plusMin:\n if (this.state.value === \"-\") {\n const node = this.startNode<N.TsLiteralType>();\n const nextToken = this.lookahead();\n if (nextToken.type !== tt.num && nextToken.type !== tt.bigint) {\n this.unexpected();\n }\n // @ts-expect-error: parseMaybeUnary must returns unary expression\n node.literal = this.parseMaybeUnary();\n return this.finishNode(node, \"TSLiteralType\");\n }\n break;\n case tt._this:\n return this.tsParseThisTypeOrThisTypePredicate();\n case tt._typeof:\n return this.tsParseTypeQuery();\n case tt._import:\n return this.tsParseImportType();\n case tt.braceL:\n return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this))\n ? this.tsParseMappedType()\n : this.tsParseTypeLiteral();\n case tt.bracketL:\n return this.tsParseTupleType();\n case tt.parenL:\n if (process.env.BABEL_8_BREAKING) {\n if (!this.options.createParenthesizedExpressions) {\n const startLoc = this.state.startLoc;\n this.next();\n const type = this.tsParseType();\n this.expect(tt.parenR);\n this.addExtra(type, \"parenthesized\", true);\n this.addExtra(type, \"parenStart\", startLoc.index);\n return type;\n }\n }\n\n return this.tsParseParenthesizedType();\n case tt.templateNonTail:\n case tt.templateTail:\n return this.tsParseTemplateLiteralType();\n default: {\n const { type } = this.state;\n if (\n tokenIsIdentifier(type) ||\n type === tt._void ||\n type === tt._null\n ) {\n const nodeType =\n type === tt._void\n ? \"TSVoidKeyword\"\n : type === tt._null\n ? \"TSNullKeyword\"\n : keywordTypeFromName(this.state.value);\n if (\n nodeType !== undefined &&\n this.lookaheadCharCode() !== charCodes.dot\n ) {\n const node = this.startNode<N.TsKeywordType>();\n this.next();\n return this.finishNode(node, nodeType);\n }\n return this.tsParseTypeReference();\n }\n }\n }\n\n this.unexpected();\n }\n\n tsParseArrayTypeOrHigher(): N.TsType {\n let type = this.tsParseNonArrayType();\n while (!this.hasPrecedingLineBreak() && this.eat(tt.bracketL)) {\n if (this.match(tt.bracketR)) {\n const node = this.startNodeAtNode<N.TsArrayType>(type);\n node.elementType = type;\n this.expect(tt.bracketR);\n type = this.finishNode(node, \"TSArrayType\");\n } else {\n const node = this.startNodeAtNode<N.TsIndexedAccessType>(type);\n node.objectType = type;\n node.indexType = this.tsParseType();\n this.expect(tt.bracketR);\n type = this.finishNode(node, \"TSIndexedAccessType\");\n }\n }\n return type;\n }\n\n tsParseTypeOperator(): N.TsTypeOperator {\n const node = this.startNode<N.TsTypeOperator>();\n const operator = this.state.value;\n this.next(); // eat operator\n node.operator = operator;\n node.typeAnnotation = this.tsParseTypeOperatorOrHigher();\n\n if (operator === \"readonly\") {\n this.tsCheckTypeAnnotationForReadOnly(\n // @ts-expect-error todo(flow->ts)\n node,\n );\n }\n\n return this.finishNode(node, \"TSTypeOperator\");\n }\n\n tsCheckTypeAnnotationForReadOnly(node: N.Node) {\n switch (node.typeAnnotation.type) {\n case \"TSTupleType\":\n case \"TSArrayType\":\n return;\n default:\n this.raise(TSErrors.UnexpectedReadonly, { at: node });\n }\n }\n\n tsParseInferType(): N.TsInferType {\n const node = this.startNode<N.TsInferType>();\n this.expectContextual(tt._infer);\n const typeParameter = this.startNode<N.TsTypeParameter>();\n typeParameter.name = this.tsParseTypeParameterName();\n typeParameter.constraint = this.tsTryParse(() =>\n this.tsParseConstraintForInferType(),\n );\n node.typeParameter = this.finishNode(typeParameter, \"TSTypeParameter\");\n return this.finishNode(node, \"TSInferType\");\n }\n\n tsParseConstraintForInferType() {\n if (this.eat(tt._extends)) {\n const constraint = this.tsInDisallowConditionalTypesContext(() =>\n this.tsParseType(),\n );\n if (\n this.state.inDisallowConditionalTypesContext ||\n !this.match(tt.question)\n ) {\n return constraint;\n }\n }\n }\n\n tsParseTypeOperatorOrHigher(): N.TsType {\n const isTypeOperator =\n tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc;\n return isTypeOperator\n ? this.tsParseTypeOperator()\n : this.isContextual(tt._infer)\n ? this.tsParseInferType()\n : this.tsInAllowConditionalTypesContext(() =>\n this.tsParseArrayTypeOrHigher(),\n );\n }\n\n tsParseUnionOrIntersectionType(\n kind: \"TSUnionType\" | \"TSIntersectionType\",\n parseConstituentType: () => N.TsType,\n operator: TokenType,\n ): N.TsType {\n const node = this.startNode<N.TsUnionType | N.TsIntersectionType>();\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\n tsParseIntersectionTypeOrHigher(): N.TsType {\n return this.tsParseUnionOrIntersectionType(\n \"TSIntersectionType\",\n this.tsParseTypeOperatorOrHigher.bind(this),\n tt.bitwiseAND,\n );\n }\n\n tsParseUnionTypeOrHigher() {\n return this.tsParseUnionOrIntersectionType(\n \"TSUnionType\",\n this.tsParseIntersectionTypeOrHigher.bind(this),\n tt.bitwiseOR,\n );\n }\n\n tsIsStartOfFunctionType() {\n if (this.match(tt.lt)) {\n return true;\n }\n return (\n this.match(tt.parenL) &&\n this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this))\n );\n }\n\n tsSkipParameterStart(): boolean {\n if (tokenIsIdentifier(this.state.type) || this.match(tt._this)) {\n this.next();\n return true;\n }\n\n if (this.match(tt.braceL)) {\n // Return true if we can parse an object pattern without errors\n const { errors } = this.state;\n const previousErrorCount = errors.length;\n try {\n this.parseObjectLike(tt.braceR, true);\n return errors.length === previousErrorCount;\n } catch {\n return false;\n }\n }\n\n if (this.match(tt.bracketL)) {\n this.next();\n // Return true if we can parse an array pattern without errors\n const { errors } = this.state;\n const previousErrorCount = errors.length;\n try {\n super.parseBindingList(\n tt.bracketR,\n charCodes.rightSquareBracket,\n ParseBindingListFlags.ALLOW_EMPTY,\n );\n return errors.length === previousErrorCount;\n } catch {\n return false;\n }\n }\n\n return false;\n }\n\n tsIsUnambiguouslyStartOfFunctionType(): boolean {\n this.next();\n if (this.match(tt.parenR) || this.match(tt.ellipsis)) {\n // ( )\n // ( ...\n return true;\n }\n if (this.tsSkipParameterStart()) {\n if (\n this.match(tt.colon) ||\n this.match(tt.comma) ||\n this.match(tt.question) ||\n this.match(tt.eq)\n ) {\n // ( xxx :\n // ( xxx ,\n // ( xxx ?\n // ( xxx =\n return true;\n }\n if (this.match(tt.parenR)) {\n this.next();\n if (this.match(tt.arrow)) {\n // ( xxx ) =>\n return true;\n }\n }\n }\n return false;\n }\n\n tsParseTypeOrTypePredicateAnnotation(\n returnToken: TokenType,\n ): N.TsTypeAnnotation {\n return this.tsInType(() => {\n const t = this.startNode<N.TsTypeAnnotation>();\n this.expect(returnToken);\n\n const node = this.startNode<N.TsTypePredicate>();\n\n const asserts = !!this.tsTryParse(\n this.tsParseTypePredicateAsserts.bind(this),\n );\n\n if (asserts && this.match(tt._this)) {\n // When asserts is false, thisKeyword is handled by tsParseNonArrayType\n // : asserts this is type\n let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate();\n // if it turns out to be a `TSThisType`, wrap it with `TSTypePredicate`\n // : asserts this\n if (thisTypePredicate.type === \"TSThisType\") {\n node.parameterName = thisTypePredicate;\n node.asserts = true;\n (node as N.TsTypePredicate).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\n const typePredicateVariable =\n this.tsIsIdentifier() &&\n this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this));\n\n if (!typePredicateVariable) {\n if (!asserts) {\n // : type\n return this.tsParseTypeAnnotation(/* eatColon */ false, t);\n }\n\n // : asserts foo\n node.parameterName = this.parseIdentifier();\n node.asserts = asserts;\n (node as N.TsTypePredicate).typeAnnotation = null;\n t.typeAnnotation = this.finishNode(node, \"TSTypePredicate\");\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n\n // : asserts foo is type\n const type = this.tsParseTypeAnnotation(/* eatColon */ 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\n tsTryParseTypeOrTypePredicateAnnotation(): N.TsTypeAnnotation | undefined {\n if (this.match(tt.colon)) {\n return this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n }\n }\n\n tsTryParseTypeAnnotation(): N.TsTypeAnnotation | undefined {\n if (this.match(tt.colon)) {\n return this.tsParseTypeAnnotation();\n }\n }\n\n tsTryParseType(): N.TsType | undefined {\n return this.tsEatThenParseType(tt.colon);\n }\n\n tsParseTypePredicatePrefix(): N.Identifier | undefined {\n const id = this.parseIdentifier();\n if (this.isContextual(tt._is) && !this.hasPrecedingLineBreak()) {\n this.next();\n return id;\n }\n }\n\n tsParseTypePredicateAsserts(): boolean {\n if (this.state.type !== tt._asserts) {\n return false;\n }\n const containsEsc = this.state.containsEsc;\n this.next();\n if (!tokenIsIdentifier(this.state.type) && !this.match(tt._this)) {\n return false;\n }\n\n if (containsEsc) {\n this.raise(Errors.InvalidEscapedReservedWord, {\n at: this.state.lastTokStartLoc,\n reservedWord: \"asserts\",\n });\n }\n\n return true;\n }\n\n tsParseTypeAnnotation(\n eatColon = true,\n t: Undone<N.TsTypeAnnotation> = this.startNode<N.TsTypeAnnotation>(),\n ): N.TsTypeAnnotation {\n this.tsInType(() => {\n if (eatColon) this.expect(tt.colon);\n t.typeAnnotation = this.tsParseType();\n });\n return this.finishNode(t, \"TSTypeAnnotation\");\n }\n\n /** Be sure to be in a type context before calling this, using `tsInType`. */\n tsParseType(): N.TsType {\n // Need to set `state.inType` so that we don't parse JSX in a type context.\n assert(this.state.inType);\n const type = this.tsParseNonConditionalType();\n\n if (\n this.state.inDisallowConditionalTypesContext ||\n this.hasPrecedingLineBreak() ||\n !this.eat(tt._extends)\n ) {\n return type;\n }\n const node = this.startNodeAtNode<N.TsConditionalType>(type);\n node.checkType = type;\n\n node.extendsType = this.tsInDisallowConditionalTypesContext(() =>\n this.tsParseNonConditionalType(),\n );\n\n this.expect(tt.question);\n node.trueType = this.tsInAllowConditionalTypesContext(() =>\n this.tsParseType(),\n );\n\n this.expect(tt.colon);\n node.falseType = this.tsInAllowConditionalTypesContext(() =>\n this.tsParseType(),\n );\n\n return this.finishNode(node, \"TSConditionalType\");\n }\n\n isAbstractConstructorSignature(): boolean {\n return (\n this.isContextual(tt._abstract) && this.lookahead().type === tt._new\n );\n }\n\n tsParseNonConditionalType(): N.TsType {\n if (this.tsIsStartOfFunctionType()) {\n return this.tsParseFunctionOrConstructorType(\"TSFunctionType\");\n }\n if (this.match(tt._new)) {\n // As in `new () => Date`\n return this.tsParseFunctionOrConstructorType(\"TSConstructorType\");\n } else if (this.isAbstractConstructorSignature()) {\n // As in `abstract new () => Date`\n return this.tsParseFunctionOrConstructorType(\n \"TSConstructorType\",\n /* abstract */ true,\n );\n }\n return this.tsParseUnionTypeOrHigher();\n }\n\n tsParseTypeAssertion(): N.TsTypeAssertion {\n if (this.getPluginOption(\"typescript\", \"disallowAmbiguousJSXLike\")) {\n this.raise(TSErrors.ReservedTypeAssertion, { at: this.state.startLoc });\n }\n\n const node = this.startNode<N.TsTypeAssertion>();\n node.typeAnnotation = this.tsInType(() => {\n this.next(); // \"<\"\n return this.match(tt._const)\n ? this.tsParseTypeReference()\n : this.tsParseType();\n });\n this.expect(tt.gt);\n node.expression = this.parseMaybeUnary();\n return this.finishNode(node, \"TSTypeAssertion\");\n }\n\n tsParseHeritageClause(\n token: \"extends\" | \"implements\",\n ): Array<N.TsExpressionWithTypeArguments> {\n const originalStartLoc = this.state.startLoc;\n\n const delimitedList = this.tsParseDelimitedList(\n \"HeritageClauseElement\",\n () => {\n const node = this.startNode<N.TsExpressionWithTypeArguments>();\n node.expression = this.tsParseEntityName();\n if (this.match(tt.lt)) {\n node.typeParameters = this.tsParseTypeArguments();\n }\n\n return this.finishNode(node, \"TSExpressionWithTypeArguments\");\n },\n );\n\n if (!delimitedList.length) {\n this.raise(TSErrors.EmptyHeritageClauseType, {\n at: originalStartLoc,\n token,\n });\n }\n\n return delimitedList;\n }\n\n tsParseInterfaceDeclaration(\n node: Undone<N.TsInterfaceDeclaration>,\n properties: {\n declare?: true;\n } = {},\n ): N.TsInterfaceDeclaration | null {\n if (this.hasFollowingLineBreak()) return null;\n this.expectContextual(tt._interface);\n if (properties.declare) node.declare = true;\n if (tokenIsIdentifier(this.state.type)) {\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_INTERFACE);\n } else {\n node.id = null;\n this.raise(TSErrors.MissingInterfaceName, { at: this.state.startLoc });\n }\n\n node.typeParameters = this.tsTryParseTypeParameters(\n this.tsParseInOutConstModifiers,\n );\n if (this.eat(tt._extends)) {\n node.extends = this.tsParseHeritageClause(\"extends\");\n }\n const body = this.startNode<N.TSInterfaceBody>();\n body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this));\n node.body = this.finishNode(body, \"TSInterfaceBody\");\n return this.finishNode(node, \"TSInterfaceDeclaration\");\n }\n\n tsParseTypeAliasDeclaration(\n node: N.TsTypeAliasDeclaration,\n ): N.TsTypeAliasDeclaration {\n node.id = this.parseIdentifier();\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_TYPE);\n\n node.typeAnnotation = this.tsInType(() => {\n node.typeParameters = this.tsTryParseTypeParameters(\n this.tsParseInOutModifiers,\n );\n\n this.expect(tt.eq);\n\n if (\n this.isContextual(tt._intrinsic) &&\n this.lookahead().type !== tt.dot\n ) {\n const node = this.startNode<N.TsKeywordType>();\n this.next();\n return this.finishNode(node, \"TSIntrinsicKeyword\");\n }\n\n return this.tsParseType();\n });\n\n this.semicolon();\n return this.finishNode(node, \"TSTypeAliasDeclaration\");\n }\n\n tsInNoContext<T>(cb: () => T): T {\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 }\n\n /**\n * Runs `cb` in a type context.\n * This should be called one token *before* the first type token,\n * so that the call to `next()` is run in type context.\n */\n tsInType<T>(cb: () => T): T {\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\n tsInDisallowConditionalTypesContext<T>(cb: () => T): T {\n const oldInDisallowConditionalTypesContext =\n this.state.inDisallowConditionalTypesContext;\n this.state.inDisallowConditionalTypesContext = true;\n try {\n return cb();\n } finally {\n this.state.inDisallowConditionalTypesContext =\n oldInDisallowConditionalTypesContext;\n }\n }\n\n tsInAllowConditionalTypesContext<T>(cb: () => T): T {\n const oldInDisallowConditionalTypesContext =\n this.state.inDisallowConditionalTypesContext;\n this.state.inDisallowConditionalTypesContext = false;\n try {\n return cb();\n } finally {\n this.state.inDisallowConditionalTypesContext =\n oldInDisallowConditionalTypesContext;\n }\n }\n\n tsEatThenParseType(token: TokenType): N.TsType | undefined {\n if (this.match(token)) {\n return this.tsNextThenParseType();\n }\n }\n\n tsExpectThenParseType(token: TokenType): N.TsType {\n return this.tsInType(() => {\n this.expect(token);\n return this.tsParseType();\n });\n }\n\n tsNextThenParseType(): N.TsType {\n return this.tsInType(() => {\n this.next();\n return this.tsParseType();\n });\n }\n\n tsParseEnumMember(): N.TsEnumMember {\n const node = this.startNode<N.TsEnumMember>();\n // Computed property names are grammar errors in an enum, so accept just string literal or identifier.\n node.id = this.match(tt.string)\n ? super.parseStringLiteral(this.state.value)\n : this.parseIdentifier(/* liberal */ true);\n if (this.eat(tt.eq)) {\n node.initializer = super.parseMaybeAssignAllowIn();\n }\n return this.finishNode(node, \"TSEnumMember\");\n }\n\n tsParseEnumDeclaration(\n node: Undone<N.TsEnumDeclaration>,\n properties: {\n const?: true;\n declare?: true;\n } = {},\n ): N.TsEnumDeclaration {\n if (properties.const) node.const = true;\n if (properties.declare) node.declare = true;\n this.expectContextual(tt._enum);\n node.id = this.parseIdentifier();\n this.checkIdentifier(\n node.id,\n node.const ? BindingFlag.TYPE_TS_CONST_ENUM : BindingFlag.TYPE_TS_ENUM,\n );\n\n this.expect(tt.braceL);\n node.members = this.tsParseDelimitedList(\n \"EnumMembers\",\n this.tsParseEnumMember.bind(this),\n );\n this.expect(tt.braceR);\n return this.finishNode(node, \"TSEnumDeclaration\");\n }\n\n tsParseModuleBlock(): N.TsModuleBlock {\n const node = this.startNode<N.TsModuleBlock>();\n this.scope.enter(ScopeFlag.OTHER);\n\n this.expect(tt.braceL);\n // Inside of a module block is considered \"top-level\", meaning it can have imports and exports.\n super.parseBlockOrModuleBlockBody(\n (node.body = []),\n /* directives */ undefined,\n /* topLevel */ true,\n /* end */ tt.braceR,\n );\n this.scope.exit();\n return this.finishNode(node, \"TSModuleBlock\");\n }\n\n tsParseModuleOrNamespaceDeclaration(\n node: Undone<N.TsModuleDeclaration>,\n nested: boolean = false,\n ): N.TsModuleDeclaration {\n node.id = this.parseIdentifier();\n\n if (!nested) {\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_NAMESPACE);\n }\n\n if (this.eat(tt.dot)) {\n const inner = this.startNode<N.TsModuleDeclaration>();\n this.tsParseModuleOrNamespaceDeclaration(inner, true);\n // @ts-expect-error Fixme: refine typings\n node.body = inner;\n } else {\n this.scope.enter(ScopeFlag.TS_MODULE);\n this.prodParam.enter(ParamKind.PARAM);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n }\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n\n tsParseAmbientExternalModuleDeclaration(\n node: N.TsModuleDeclaration,\n ): N.TsModuleDeclaration {\n if (this.isContextual(tt._global)) {\n node.global = true;\n node.id = this.parseIdentifier();\n } else if (this.match(tt.string)) {\n node.id = super.parseStringLiteral(this.state.value);\n } else {\n this.unexpected();\n }\n if (this.match(tt.braceL)) {\n this.scope.enter(ScopeFlag.TS_MODULE);\n this.prodParam.enter(ParamKind.PARAM);\n node.body = this.tsParseModuleBlock();\n this.prodParam.exit();\n this.scope.exit();\n } else {\n this.semicolon();\n }\n\n return this.finishNode(node, \"TSModuleDeclaration\");\n }\n\n tsParseImportEqualsDeclaration(\n node: Undone<N.TsImportEqualsDeclaration>,\n maybeDefaultIdentifier?: N.Identifier | null,\n isExport?: boolean,\n ): N.TsImportEqualsDeclaration {\n node.isExport = isExport || false;\n node.id = maybeDefaultIdentifier || this.parseIdentifier();\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_VALUE_IMPORT);\n this.expect(tt.eq);\n const moduleReference = this.tsParseModuleReference();\n if (\n node.importKind === \"type\" &&\n moduleReference.type !== \"TSExternalModuleReference\"\n ) {\n this.raise(TSErrors.ImportAliasHasImportType, {\n at: moduleReference,\n });\n }\n node.moduleReference = moduleReference;\n this.semicolon();\n return this.finishNode(node, \"TSImportEqualsDeclaration\");\n }\n\n tsIsExternalModuleReference(): boolean {\n return (\n this.isContextual(tt._require) &&\n this.lookaheadCharCode() === charCodes.leftParenthesis\n );\n }\n\n tsParseModuleReference(): N.TsModuleReference {\n return this.tsIsExternalModuleReference()\n ? this.tsParseExternalModuleReference()\n : this.tsParseEntityName(/* allowReservedWords */ false);\n }\n\n tsParseExternalModuleReference(): N.TsExternalModuleReference {\n const node = this.startNode<N.TsExternalModuleReference>();\n this.expectContextual(tt._require);\n this.expect(tt.parenL);\n if (!this.match(tt.string)) {\n this.unexpected();\n }\n // For compatibility to estree we cannot call parseLiteral directly here\n node.expression = super.parseExprAtom() as N.StringLiteral;\n this.expect(tt.parenR);\n this.sawUnambiguousESM = true;\n return this.finishNode(node, \"TSExternalModuleReference\");\n }\n\n // Utilities\n\n tsLookAhead<T>(f: () => T): T {\n const state = this.state.clone();\n const res = f();\n this.state = state;\n return res;\n }\n\n tsTryParseAndCatch<T extends N.NodeBase | undefined | null>(\n f: () => T,\n ): T | undefined | null {\n const result = this.tryParse(\n abort =>\n // @ts-expect-error todo(flow->ts)\n f() || abort(),\n );\n\n if (result.aborted || !result.node) return;\n if (result.error) this.state = result.failState;\n // @ts-expect-error refine typings\n return result.node;\n }\n\n tsTryParse<T>(f: () => T | undefined | false): T | undefined {\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\n tsTryParseDeclare(nany: any): N.Declaration | undefined {\n if (this.isLineTerminator()) {\n return;\n }\n let startType = this.state.type;\n let kind: \"let\" | null;\n\n if (this.isContextual(tt._let)) {\n startType = tt._var;\n kind = \"let\";\n }\n\n // @ts-expect-error refine typings\n return this.tsInAmbientContext(() => {\n switch (startType) {\n case tt._function:\n nany.declare = true;\n return super.parseFunctionStatement(\n nany,\n /* async */ false,\n /* isHangingDeclaration */ false,\n );\n case tt._class:\n // While this is also set by tsParseExpressionStatement, we need to set it\n // before parsing the class declaration to know how to register it in the scope.\n nany.declare = true;\n return this.parseClass(\n nany,\n /* isStatement */ true,\n /* optionalId */ false,\n );\n case tt._enum:\n return this.tsParseEnumDeclaration(nany, { declare: true });\n case tt._global:\n return this.tsParseAmbientExternalModuleDeclaration(nany);\n case tt._const:\n case tt._var:\n if (!this.match(tt._const) || !this.isLookaheadContextual(\"enum\")) {\n nany.declare = true;\n return this.parseVarStatement(\n nany,\n kind || this.state.value,\n true,\n );\n }\n\n // `const enum = 0;` not allowed because \"enum\" is a strict mode reserved word.\n this.expect(tt._const);\n return this.tsParseEnumDeclaration(nany, {\n const: true,\n declare: true,\n });\n case tt._interface: {\n const result = this.tsParseInterfaceDeclaration(nany, {\n declare: true,\n });\n if (result) return result;\n }\n // fallthrough\n default:\n if (tokenIsIdentifier(startType)) {\n return this.tsParseDeclaration(\n nany,\n this.state.value,\n /* next */ true,\n /* decorators */ null,\n );\n }\n }\n });\n }\n\n // Note: this won't be called unless the keyword is allowed in `shouldParseExportDeclaration`.\n tsTryParseExportDeclaration(): N.Declaration | undefined {\n return this.tsParseDeclaration(\n this.startNode(),\n this.state.value,\n /* next */ true,\n /* decorators */ null,\n );\n }\n\n tsParseExpressionStatement(\n node: Undone<N.TsModuleDeclaration>,\n expr: N.Identifier,\n decorators: N.Decorator[] | null,\n ): N.Declaration | undefined {\n switch (expr.name) {\n case \"declare\": {\n const declaration = this.tsTryParseDeclare(node);\n if (declaration) {\n declaration.declare = true;\n }\n return declaration;\n }\n case \"global\":\n // `global { }` (with no `declare`) may appear inside an ambient module declaration.\n // Would like to use tsParseAmbientExternalModuleDeclaration here, but already ran past \"global\".\n if (this.match(tt.braceL)) {\n this.scope.enter(ScopeFlag.TS_MODULE);\n this.prodParam.enter(ParamKind.PARAM);\n const mod = node;\n mod.global = true;\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\n default:\n return this.tsParseDeclaration(\n node,\n expr.name,\n /* next */ false,\n decorators,\n );\n }\n }\n\n // Common to tsTryParseDeclare, tsTryParseExportDeclaration, and tsParseExpressionStatement.\n tsParseDeclaration(\n node: any,\n value: string,\n next: boolean,\n decorators: N.Decorator[] | null,\n ): N.Declaration | undefined | null {\n // no declaration apart from enum can be followed by a line break.\n switch (value) {\n case \"abstract\":\n if (\n this.tsCheckLineTerminator(next) &&\n (this.match(tt._class) || tokenIsIdentifier(this.state.type))\n ) {\n return this.tsParseAbstractDeclaration(node, decorators);\n }\n break;\n\n case \"module\":\n if (this.tsCheckLineTerminator(next)) {\n if (this.match(tt.string)) {\n return this.tsParseAmbientExternalModuleDeclaration(node);\n } else if (tokenIsIdentifier(this.state.type)) {\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n }\n break;\n\n case \"namespace\":\n if (\n this.tsCheckLineTerminator(next) &&\n tokenIsIdentifier(this.state.type)\n ) {\n return this.tsParseModuleOrNamespaceDeclaration(node);\n }\n break;\n\n case \"type\":\n if (\n this.tsCheckLineTerminator(next) &&\n tokenIsIdentifier(this.state.type)\n ) {\n return this.tsParseTypeAliasDeclaration(node);\n }\n break;\n }\n }\n\n tsCheckLineTerminator(next: boolean) {\n if (next) {\n if (this.hasFollowingLineBreak()) return false;\n this.next();\n return true;\n }\n return !this.isLineTerminator();\n }\n\n tsTryParseGenericAsyncArrowFunction(\n startLoc: Position,\n ): N.ArrowFunctionExpression | undefined {\n if (!this.match(tt.lt)) return;\n\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n this.state.maybeInArrowParameters = true;\n\n const res: Undone<N.ArrowFunctionExpression> | undefined =\n this.tsTryParseAndCatch(() => {\n const node = this.startNodeAt<N.ArrowFunctionExpression>(startLoc);\n node.typeParameters = this.tsParseTypeParameters(\n this.tsParseConstModifier,\n );\n // Don't use overloaded parseFunctionParams which would look for \"<\" again.\n super.parseFunctionParams(node);\n node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation();\n this.expect(tt.arrow);\n return node;\n });\n\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n if (!res) return;\n\n return super.parseArrowExpression(\n res,\n /* params are already set */ null,\n /* async */ true,\n );\n }\n\n // Used when parsing type arguments from ES productions, where the first token\n // has been created without state.inType. Thus we need to rescan the lt token.\n tsParseTypeArgumentsInExpression(): N.TsTypeParameterInstantiation | void {\n if (this.reScan_lt() !== tt.lt) return;\n return this.tsParseTypeArguments();\n }\n\n tsParseTypeArguments(): N.TsTypeParameterInstantiation {\n const node = this.startNode<N.TsTypeParameterInstantiation>();\n node.params = this.tsInType(() =>\n // Temporarily remove a JSX parsing context, which makes us scan different tokens.\n this.tsInNoContext(() => {\n this.expect(tt.lt);\n return this.tsParseDelimitedList(\n \"TypeParametersOrArguments\",\n this.tsParseType.bind(this),\n );\n }),\n );\n if (node.params.length === 0) {\n this.raise(TSErrors.EmptyTypeArguments, { at: node });\n } else if (!this.state.inType && this.curContext() === tc.brace) {\n // rescan `>` when we are no longer in type context and JSX parsing context\n // since it was tokenized when `inType` is `true`.\n this.reScan_lt_gt();\n }\n this.expect(tt.gt);\n return this.finishNode(node, \"TSTypeParameterInstantiation\");\n }\n\n tsIsDeclarationStart(): boolean {\n return tokenIsTSDeclarationStart(this.state.type);\n }\n\n // ======================================================\n // OVERRIDES\n // ======================================================\n\n isExportDefaultSpecifier(): boolean {\n if (this.tsIsDeclarationStart()) return false;\n return super.isExportDefaultSpecifier();\n }\n\n parseAssignableListItem(\n flags: ParseBindingListFlags,\n decorators: N.Decorator[],\n ): N.Pattern | N.TSParameterProperty {\n // Store original location to include modifiers in range\n const startLoc = this.state.startLoc;\n\n const modified: ModifierBase = {};\n this.tsParseModifiers(\n {\n allowedModifiers: [\n \"public\",\n \"private\",\n \"protected\",\n \"override\",\n \"readonly\",\n ],\n },\n modified,\n );\n const accessibility = modified.accessibility;\n const override = modified.override;\n const readonly = modified.readonly;\n if (\n !(flags & ParseBindingListFlags.IS_CONSTRUCTOR_PARAMS) &&\n (accessibility || readonly || override)\n ) {\n this.raise(TSErrors.UnexpectedParameterModifier, { at: startLoc });\n }\n\n const left = this.parseMaybeDefault();\n this.parseAssignableListItemTypes(left, flags);\n const elt = this.parseMaybeDefault(left.loc.start, left);\n if (accessibility || readonly || override) {\n const pp = this.startNodeAt<N.TSParameterProperty>(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, { at: pp });\n }\n pp.parameter = elt as any as N.Identifier | N.AssignmentPattern;\n return this.finishNode(pp, \"TSParameterProperty\");\n }\n\n if (decorators.length) {\n left.decorators = decorators;\n }\n\n return elt;\n }\n\n isSimpleParameter(node: N.Pattern | N.TSParameterProperty) {\n return (\n (node.type === \"TSParameterProperty\" &&\n super.isSimpleParameter(node.parameter)) ||\n super.isSimpleParameter(node)\n );\n }\n\n tsDisallowOptionalPattern(node: Undone<N.Function>) {\n for (const param of node.params) {\n if (\n param.type !== \"Identifier\" &&\n (param as any).optional &&\n !this.state.isAmbientContext\n ) {\n this.raise(TSErrors.PatternIsOptional, { at: param });\n }\n }\n }\n\n setArrowFunctionParameters(\n node: Undone<N.ArrowFunctionExpression>,\n params: N.Expression[],\n trailingCommaLoc?: Position | null,\n ): void {\n super.setArrowFunctionParameters(node, params, trailingCommaLoc);\n this.tsDisallowOptionalPattern(node);\n }\n\n parseFunctionBodyAndFinish<\n T extends\n | N.Function\n | N.TSDeclareMethod\n | N.TSDeclareFunction\n | N.ClassPrivateMethod,\n >(node: Undone<T>, type: T[\"type\"], isMethod: boolean = false): T {\n if (this.match(tt.colon)) {\n node.returnType = this.tsParseTypeOrTypePredicateAnnotation(tt.colon);\n }\n\n const bodilessType =\n type === \"FunctionDeclaration\"\n ? \"TSDeclareFunction\"\n : type === \"ClassMethod\" || type === \"ClassPrivateMethod\"\n ? \"TSDeclareMethod\"\n : undefined;\n if (bodilessType && !this.match(tt.braceL) && this.isLineTerminator()) {\n return this.finishNode(node, bodilessType);\n }\n if (bodilessType === \"TSDeclareFunction\" && this.state.isAmbientContext) {\n this.raise(TSErrors.DeclareFunctionHasImplementation, { at: node });\n if ((node as Undone<N.FunctionDeclaration>).declare) {\n return super.parseFunctionBodyAndFinish(node, bodilessType, isMethod);\n }\n }\n this.tsDisallowOptionalPattern(node);\n\n return super.parseFunctionBodyAndFinish(node, type, isMethod);\n }\n\n registerFunctionStatementId(node: N.Function): void {\n if (!node.body && node.id) {\n // Function ids are validated after parsing their body.\n // For bodiless function, we need to do it here.\n this.checkIdentifier(node.id, BindingFlag.TYPE_TS_AMBIENT);\n } else {\n super.registerFunctionStatementId(node);\n }\n }\n\n tsCheckForInvalidTypeCasts(items: Array<N.Expression | undefined | null>) {\n items.forEach(node => {\n if (node?.type === \"TSTypeCastExpression\") {\n this.raise(TSErrors.UnexpectedTypeAnnotation, {\n at: node.typeAnnotation,\n });\n }\n });\n }\n\n toReferencedList(\n exprList: Array<N.Expression | undefined | null>,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isInParens?: boolean,\n ): Array<N.Expression | undefined | null> {\n // Handles invalid scenarios like: `f(a:b)`, `(a:b);`, and `(a:b,c:d)`.\n //\n // Note that `f<T>(a:b)` goes through a different path and is handled\n // in `parseSubscript` directly.\n this.tsCheckForInvalidTypeCasts(exprList);\n return exprList;\n }\n\n parseArrayLike(\n close: TokenType,\n canBePattern: boolean,\n isTuple: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ArrayExpression | N.TupleExpression {\n const node = super.parseArrayLike(\n close,\n canBePattern,\n isTuple,\n refExpressionErrors,\n );\n\n if (node.type === \"ArrayExpression\") {\n this.tsCheckForInvalidTypeCasts(node.elements);\n }\n\n return node;\n }\n\n parseSubscript(\n base: N.Expression,\n\n startLoc: Position,\n noCalls: boolean | undefined | null,\n state: N.ParseSubscriptState,\n ): N.Expression {\n if (!this.hasPrecedingLineBreak() && this.match(tt.bang)) {\n // When ! is consumed as a postfix operator (non-null assertion),\n // disallow JSX tag forming after. e.g. When parsing `p! < n.p!`\n // `<n.p` can not be a start of JSX tag\n this.state.canStartJSXElement = false;\n this.next();\n\n const nonNullExpression =\n this.startNodeAt<N.TsNonNullExpression>(startLoc);\n nonNullExpression.expression = base;\n return this.finishNode(nonNullExpression, \"TSNonNullExpression\");\n }\n\n let isOptionalCall = false;\n if (\n this.match(tt.questionDot) &&\n this.lookaheadCharCode() === charCodes.lessThan\n ) {\n if (noCalls) {\n state.stop = true;\n return base;\n }\n state.optionalChainMember = isOptionalCall = true;\n this.next();\n }\n\n // handles 'f<<T>'\n if (this.match(tt.lt) || this.match(tt.bitShiftL)) {\n let missingParenErrorLoc;\n // tsTryParseAndCatch is expensive, so avoid if not necessary.\n // There are number of things we are going to \"maybe\" parse, like type arguments on\n // tagged template expressions. If any of them fail, walk it back and continue.\n const result = this.tsTryParseAndCatch(() => {\n if (!noCalls && this.atPossibleAsyncArrow(base)) {\n // Almost certainly this is a generic async function `async <T>() => ...\n // But it might be a call with a type argument `async<T>();`\n const asyncArrowFn =\n this.tsTryParseGenericAsyncArrowFunction(startLoc);\n if (asyncArrowFn) {\n return asyncArrowFn;\n }\n }\n\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n if (!typeArguments) return;\n\n if (isOptionalCall && !this.match(tt.parenL)) {\n missingParenErrorLoc = this.state.curPosition();\n return;\n }\n\n if (tokenIsTemplate(this.state.type)) {\n const result = super.parseTaggedTemplateExpression(\n base,\n\n startLoc,\n state,\n );\n result.typeParameters = typeArguments;\n return result;\n }\n\n if (!noCalls && this.eat(tt.parenL)) {\n const node = this.startNodeAt<\n N.CallExpression | N.OptionalCallExpression\n >(startLoc);\n node.callee = base;\n // possibleAsync always false here, because we would have handled it above.\n // @ts-expect-error (won't be any undefined arguments)\n node.arguments = this.parseCallExpressionArguments(\n tt.parenR,\n /* possibleAsync */ false,\n );\n\n // Handles invalid case: `f<T>(a:b)`\n this.tsCheckForInvalidTypeCasts(node.arguments);\n\n node.typeParameters = typeArguments;\n if (state.optionalChainMember) {\n (node as Undone<N.OptionalCallExpression>).optional =\n isOptionalCall;\n }\n\n return this.finishCallExpression(node, state.optionalChainMember);\n }\n\n const tokenType = this.state.type;\n if (\n // a<b>>c is not (a<b>)>c, but a<(b>>c)\n tokenType === tt.gt ||\n // a<b>>>c is not (a<b>)>>c, but a<(b>>>c)\n tokenType === tt.bitShiftR ||\n // a<b>c is (a<b)>c\n (tokenType !== tt.parenL &&\n tokenCanStartExpression(tokenType) &&\n !this.hasPrecedingLineBreak())\n ) {\n // Bail out.\n return;\n }\n\n const node = this.startNodeAt<N.TsInstantiationExpression>(startLoc);\n node.expression = base;\n node.typeParameters = typeArguments;\n return this.finishNode(node, \"TSInstantiationExpression\");\n });\n\n if (missingParenErrorLoc) {\n this.unexpected(missingParenErrorLoc, tt.parenL);\n }\n\n if (result) {\n if (\n result.type === \"TSInstantiationExpression\" &&\n (this.match(tt.dot) ||\n (this.match(tt.questionDot) &&\n this.lookaheadCharCode() !== charCodes.leftParenthesis))\n ) {\n this.raise(\n TSErrors.InvalidPropertyAccessAfterInstantiationExpression,\n { at: this.state.startLoc },\n );\n }\n return result;\n }\n }\n\n return super.parseSubscript(base, startLoc, noCalls, state);\n }\n\n parseNewCallee(node: N.NewExpression): void {\n super.parseNewCallee(node);\n\n const { callee } = node;\n if (\n callee.type === \"TSInstantiationExpression\" &&\n !callee.extra?.parenthesized\n ) {\n node.typeParameters = callee.typeParameters;\n node.callee = callee.expression;\n }\n }\n\n parseExprOp(\n left: N.Expression,\n leftStartLoc: Position,\n minPrec: number,\n ): N.Expression {\n let isSatisfies: boolean;\n if (\n tokenOperatorPrecedence(tt._in) > minPrec &&\n !this.hasPrecedingLineBreak() &&\n (this.isContextual(tt._as) ||\n (isSatisfies = this.isContextual(tt._satisfies)))\n ) {\n const node = this.startNodeAt<\n N.TsAsExpression | N.TsSatisfiesExpression\n >(leftStartLoc);\n node.expression = left;\n node.typeAnnotation = this.tsInType(() => {\n this.next(); // \"as\" or \"satisfies\"\n if (this.match(tt._const)) {\n if (isSatisfies) {\n this.raise(Errors.UnexpectedKeyword, {\n at: this.state.startLoc,\n keyword: \"const\",\n });\n }\n return this.tsParseTypeReference();\n }\n\n return this.tsParseType();\n });\n this.finishNode(\n node,\n isSatisfies ? \"TSSatisfiesExpression\" : \"TSAsExpression\",\n );\n // rescan `<`, `>` because they were scanned when this.state.inType was true\n this.reScan_lt_gt();\n return this.parseExprOp(\n // @ts-expect-error todo(flow->ts)\n node,\n leftStartLoc,\n minPrec,\n );\n }\n\n return super.parseExprOp(left, leftStartLoc, minPrec);\n }\n\n checkReservedWord(\n word: string,\n startLoc: Position,\n checkKeywords: boolean,\n isBinding: boolean,\n ): void {\n // Strict mode words may be allowed as in `declare namespace N { const static: number; }`.\n // And we have a type checker anyway, so don't bother having the parser do it.\n if (!this.state.isAmbientContext) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n\n checkImportReflection(node: Undone<N.ImportDeclaration>) {\n super.checkImportReflection(node);\n if (node.module && node.importKind !== \"value\") {\n this.raise(TSErrors.ImportReflectionHasImportType, {\n at: node.specifiers[0].loc.start,\n });\n }\n }\n\n /*\n Don't bother doing this check in TypeScript code because:\n 1. We may have a nested export statement with the same name:\n export const x = 0;\n export namespace N {\n export const x = 1;\n }\n 2. We have a type checker to warn us about this sort of thing.\n */\n checkDuplicateExports() {}\n\n isPotentialImportPhase(isExport: boolean): boolean {\n if (super.isPotentialImportPhase(isExport)) return true;\n if (this.isContextual(tt._type)) {\n const ch = this.lookaheadCharCode();\n return isExport\n ? ch === charCodes.leftCurlyBrace || ch === charCodes.asterisk\n : ch !== charCodes.equalsTo;\n }\n return !isExport && this.isContextual(tt._typeof);\n }\n\n applyImportPhase(\n node: Undone<N.ImportDeclaration | N.ExportNamedDeclaration>,\n isExport: boolean,\n phase: string | null,\n loc?: Position,\n ): void {\n super.applyImportPhase(node, isExport, phase, loc);\n if (isExport) {\n (node as N.ExportNamedDeclaration).exportKind =\n phase === \"type\" ? \"type\" : \"value\";\n } else {\n (node as N.ImportDeclaration).importKind =\n phase === \"type\" || phase === \"typeof\" ? phase : \"value\";\n }\n }\n\n parseImport(\n node: Undone<N.ImportDeclaration | N.TsImportEqualsDeclaration>,\n ): N.AnyImport {\n if (this.match(tt.string)) {\n node.importKind = \"value\";\n return super.parseImport(node as Undone<N.ImportDeclaration>);\n }\n\n let importNode;\n if (\n tokenIsIdentifier(this.state.type) &&\n this.lookaheadCharCode() === charCodes.equalsTo\n ) {\n node.importKind = \"value\";\n return this.tsParseImportEqualsDeclaration(\n node as Undone<N.TsImportEqualsDeclaration>,\n );\n } else if (this.isContextual(tt._type)) {\n const maybeDefaultIdentifier = this.parseMaybeImportPhase(\n node as Undone<N.ImportDeclaration>,\n /* isExport */ false,\n );\n if (this.lookaheadCharCode() === charCodes.equalsTo) {\n return this.tsParseImportEqualsDeclaration(\n node as Undone<N.TsImportEqualsDeclaration>,\n maybeDefaultIdentifier,\n );\n } else {\n importNode = super.parseImportSpecifiersAndAfter(\n node as Undone<N.ImportDeclaration>,\n maybeDefaultIdentifier,\n );\n }\n } else {\n importNode = super.parseImport(node as Undone<N.ImportDeclaration>);\n }\n\n // `import type` can only be used on imports with named imports or with a\n // default import - but not both\n if (\n importNode.importKind === \"type\" &&\n // @ts-expect-error refine typings\n importNode.specifiers.length > 1 &&\n // @ts-expect-error refine typings\n importNode.specifiers[0].type === \"ImportDefaultSpecifier\"\n ) {\n this.raise(TSErrors.TypeImportCannotSpecifyDefaultAndNamed, {\n at: importNode,\n });\n }\n\n return importNode;\n }\n\n parseExport(\n node: Undone<N.Node>,\n decorators: N.Decorator[] | null,\n ): N.AnyExport {\n if (this.match(tt._import)) {\n // `export import A = B;`\n this.next(); // eat `tt._import`\n let maybeDefaultIdentifier: N.Identifier | null = null;\n if (\n this.isContextual(tt._type) &&\n // We pass false here, because we are parsing an `import ... =`\n this.isPotentialImportPhase(/* isExport */ false)\n ) {\n maybeDefaultIdentifier = this.parseMaybeImportPhase(\n node as Undone<N.TsImportEqualsDeclaration>,\n /* isExport */ false,\n );\n } else {\n node.importKind = \"value\";\n }\n return this.tsParseImportEqualsDeclaration(\n node as Undone<N.TsImportEqualsDeclaration>,\n maybeDefaultIdentifier,\n /* isExport */ true,\n );\n } else if (this.eat(tt.eq)) {\n // `export = x;`\n const assign = node as Undone<N.TsExportAssignment>;\n assign.expression = super.parseExpression();\n this.semicolon();\n this.sawUnambiguousESM = true;\n return this.finishNode(assign, \"TSExportAssignment\");\n } else if (this.eatContextual(tt._as)) {\n // `export as namespace A;`\n const decl = node as Undone<N.TsNamespaceExportDeclaration>;\n // See `parseNamespaceExportDeclaration` in TypeScript's own parser\n this.expectContextual(tt._namespace);\n decl.id = this.parseIdentifier();\n this.semicolon();\n return this.finishNode(decl, \"TSNamespaceExportDeclaration\");\n } else {\n return super.parseExport(\n node as Undone<N.ExportAllDeclaration | N.ExportDefaultDeclaration>,\n decorators,\n );\n }\n }\n\n isAbstractClass(): boolean {\n return (\n this.isContextual(tt._abstract) && this.lookahead().type === tt._class\n );\n }\n\n parseExportDefaultExpression(): N.Expression | N.Declaration {\n if (this.isAbstractClass()) {\n const cls = this.startNode<N.Class>();\n this.next(); // Skip \"abstract\"\n cls.abstract = true;\n return this.parseClass(cls, true, true);\n }\n\n // export default interface allowed in:\n // https://github.com/Microsoft/TypeScript/pull/16040\n if (this.match(tt._interface)) {\n const result = this.tsParseInterfaceDeclaration(\n this.startNode<N.TsInterfaceDeclaration>(),\n );\n if (result) return result;\n }\n\n return super.parseExportDefaultExpression();\n }\n\n parseVarStatement(\n node: N.VariableDeclaration,\n kind: \"var\" | \"let\" | \"const\" | \"using\",\n allowMissingInitializer: boolean = false,\n ) {\n const { isAmbientContext } = this.state;\n const declaration = super.parseVarStatement(\n node,\n kind,\n allowMissingInitializer || isAmbientContext,\n );\n\n if (!isAmbientContext) return declaration;\n\n for (const { id, init } of declaration.declarations) {\n // Empty initializer is the easy case that we want.\n if (!init) continue;\n\n // var and let aren't ever allowed initializers.\n if (kind !== \"const\" || !!id.typeAnnotation) {\n this.raise(TSErrors.InitializerNotAllowedInAmbientContext, {\n at: init,\n });\n } else if (\n !isValidAmbientConstInitializer(init, this.hasPlugin(\"estree\"))\n ) {\n this.raise(\n TSErrors.ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference,\n { at: init },\n );\n }\n }\n\n return declaration;\n }\n\n parseStatementContent(\n flags: ParseStatementFlag,\n decorators?: N.Decorator[] | null,\n ): N.Statement {\n if (this.match(tt._const) && this.isLookaheadContextual(\"enum\")) {\n const node = this.startNode<N.TsEnumDeclaration>();\n this.expect(tt._const); // eat 'const'\n return this.tsParseEnumDeclaration(node, { const: true });\n }\n\n if (this.isContextual(tt._enum)) {\n return this.tsParseEnumDeclaration(\n this.startNode<N.TsEnumDeclaration>(),\n );\n }\n\n if (this.isContextual(tt._interface)) {\n const result = this.tsParseInterfaceDeclaration(this.startNode());\n if (result) return result;\n }\n\n return super.parseStatementContent(flags, decorators);\n }\n\n parseAccessModifier(): N.Accessibility | undefined | null {\n return this.tsParseModifier([\"public\", \"protected\", \"private\"]);\n }\n\n tsHasSomeModifiers(member: any, modifiers: readonly TsModifier[]): boolean {\n return modifiers.some(modifier => {\n if (tsIsAccessModifier(modifier)) {\n return member.accessibility === modifier;\n }\n return !!member[modifier];\n });\n }\n\n tsIsStartOfStaticBlocks() {\n return (\n this.isContextual(tt._static) &&\n this.lookaheadCharCode() === charCodes.leftCurlyBrace\n );\n }\n\n parseClassMember(\n classBody: N.ClassBody,\n member: any,\n state: N.ParseClassMemberState,\n ): void {\n const modifiers = [\n \"declare\",\n \"private\",\n \"public\",\n \"protected\",\n \"override\",\n \"abstract\",\n \"readonly\",\n \"static\",\n ] as const;\n this.tsParseModifiers(\n {\n allowedModifiers: modifiers,\n disallowedModifiers: [\"in\", \"out\"],\n stopOnStartOfClassStaticBlock: true,\n errorTemplate: TSErrors.InvalidModifierOnTypeParameterPositions,\n },\n member,\n );\n\n const callParseClassMemberWithIsStatic = () => {\n if (this.tsIsStartOfStaticBlocks()) {\n this.next(); // eat \"static\"\n this.next(); // eat \"{\"\n if (this.tsHasSomeModifiers(member, modifiers)) {\n this.raise(TSErrors.StaticBlockCannotHaveModifier, {\n at: this.state.curPosition(),\n });\n }\n super.parseClassStaticBlock(classBody, member as N.StaticBlock);\n } else {\n this.parseClassMemberWithIsStatic(\n classBody,\n member,\n state,\n !!member.static,\n );\n }\n };\n if (member.declare) {\n this.tsInAmbientContext(callParseClassMemberWithIsStatic);\n } else {\n callParseClassMemberWithIsStatic();\n }\n }\n\n parseClassMemberWithIsStatic(\n classBody: N.ClassBody,\n member: Undone<N.ClassMember | N.TsIndexSignature>,\n state: N.ParseClassMemberState,\n isStatic: boolean,\n ): void {\n const idx = this.tsTryParseIndexSignature(\n member as Undone<N.TsIndexSignature>,\n );\n if (idx) {\n classBody.body.push(idx);\n\n if ((member as any).abstract) {\n this.raise(TSErrors.IndexSignatureHasAbstract, { at: member });\n }\n if ((member as any).accessibility) {\n this.raise(TSErrors.IndexSignatureHasAccessibility, {\n at: member,\n modifier: (member as any).accessibility,\n });\n }\n if ((member as any).declare) {\n this.raise(TSErrors.IndexSignatureHasDeclare, { at: member });\n }\n if ((member as any).override) {\n this.raise(TSErrors.IndexSignatureHasOverride, { at: member });\n }\n\n return;\n }\n\n if (!this.state.inAbstractClass && (member as any).abstract) {\n this.raise(TSErrors.NonAbstractClassHasAbstractMethod, {\n at: member,\n });\n }\n\n if ((member as any).override) {\n if (!state.hadSuperClass) {\n this.raise(TSErrors.OverrideNotInSubClass, { at: member });\n }\n }\n\n /*:: invariant(member.type !== \"TSIndexSignature\") */\n\n super.parseClassMemberWithIsStatic(\n classBody,\n member as Undone<N.ClassMember>,\n state,\n isStatic,\n );\n }\n\n parsePostMemberNameModifiers(\n methodOrProp: N.ClassMethod | N.ClassProperty | N.ClassPrivateProperty,\n ): void {\n const optional = this.eat(tt.question);\n if (optional) methodOrProp.optional = true;\n\n if ((methodOrProp as any).readonly && this.match(tt.parenL)) {\n this.raise(TSErrors.ClassMethodHasReadonly, { at: methodOrProp });\n }\n\n if ((methodOrProp as any).declare && this.match(tt.parenL)) {\n this.raise(TSErrors.ClassMethodHasDeclare, { at: methodOrProp });\n }\n }\n\n // Note: The reason we do this in `parseExpressionStatement` and not `parseStatement`\n // is that e.g. `type()` is valid JS, so we must try parsing that first.\n // If it's really a type, we will parse `type` as the statement, and can correct it here\n // by parsing the rest.\n // @ts-expect-error plugin overrides interfaces\n parseExpressionStatement(\n node: Undone<N.ExpressionStatement>,\n expr: N.Expression,\n decorators: N.Decorator[] | null,\n ): N.Statement {\n const decl =\n expr.type === \"Identifier\"\n ? // @ts-expect-error refine typings\n this.tsParseExpressionStatement(node, expr, decorators)\n : undefined;\n return decl || super.parseExpressionStatement(node, expr, decorators);\n }\n\n // export type\n // Should be true for anything parsed by `tsTryParseExportDeclaration`.\n shouldParseExportDeclaration(): boolean {\n if (this.tsIsDeclarationStart()) return true;\n return super.shouldParseExportDeclaration();\n }\n\n // An apparent conditional expression could actually be an optional parameter in an arrow function.\n parseConditional(\n expr: N.Expression,\n\n startLoc: Position,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n // only do the expensive clone if there is a question mark\n // and if we come from inside parens\n if (!this.state.maybeInArrowParameters || !this.match(tt.question)) {\n return super.parseConditional(\n expr,\n\n startLoc,\n refExpressionErrors,\n );\n }\n\n const result = this.tryParse(() =>\n super.parseConditional(expr, startLoc),\n );\n\n if (!result.node) {\n if (result.error) {\n /*:: invariant(refExpressionErrors != null) */\n super.setOptionalParametersError(refExpressionErrors, result.error);\n }\n\n return expr;\n }\n if (result.error) this.state = result.failState;\n return result.node;\n }\n\n // Note: These \"type casts\" are *not* valid TS expressions.\n // But we parse them here and change them when completing the arrow function.\n parseParenItem(\n node: N.Expression,\n\n startLoc: Position,\n ): N.Expression {\n node = super.parseParenItem(node, startLoc);\n if (this.eat(tt.question)) {\n node.optional = true;\n // Include questionmark in location of node\n // Don't use this.finishNode() as otherwise we might process comments twice and\n // include already consumed parens\n this.resetEndLocation(node);\n }\n\n if (this.match(tt.colon)) {\n const typeCastNode = this.startNodeAt<N.TsTypeCastExpression>(startLoc);\n typeCastNode.expression = node;\n typeCastNode.typeAnnotation = this.tsParseTypeAnnotation();\n\n return this.finishNode(typeCastNode, \"TSTypeCastExpression\");\n }\n\n return node;\n }\n\n parseExportDeclaration(\n node: N.ExportNamedDeclaration,\n ): N.Declaration | undefined | null {\n if (!this.state.isAmbientContext && this.isContextual(tt._declare)) {\n return this.tsInAmbientContext(() => this.parseExportDeclaration(node));\n }\n\n // Store original location\n const startLoc = this.state.startLoc;\n\n const isDeclare = this.eatContextual(tt._declare);\n\n if (\n isDeclare &&\n (this.isContextual(tt._declare) || !this.shouldParseExportDeclaration())\n ) {\n throw this.raise(TSErrors.ExpectedAmbientAfterExportDeclare, {\n at: this.state.startLoc,\n });\n }\n\n const isIdentifier = tokenIsIdentifier(this.state.type);\n const declaration: N.Declaration | undefined | null =\n (isIdentifier && this.tsTryParseExportDeclaration()) ||\n super.parseExportDeclaration(node);\n\n if (!declaration) return null;\n\n if (\n declaration.type === \"TSInterfaceDeclaration\" ||\n declaration.type === \"TSTypeAliasDeclaration\" ||\n isDeclare\n ) {\n node.exportKind = \"type\";\n }\n\n if (isDeclare) {\n // Reset location to include `declare` in range\n this.resetStartLocation(declaration, startLoc);\n\n declaration.declare = true;\n }\n\n return declaration;\n }\n\n parseClassId(\n node: N.Class,\n isStatement: boolean,\n optionalId?: boolean | null,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindingType?: BindingFlag,\n ): void {\n if ((!isStatement || optionalId) && this.isContextual(tt._implements)) {\n return;\n }\n\n super.parseClassId(\n node,\n isStatement,\n optionalId,\n (node as any).declare\n ? BindingFlag.TYPE_TS_AMBIENT\n : BindingFlag.TYPE_CLASS,\n );\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseInOutConstModifiers,\n );\n if (typeParameters) node.typeParameters = typeParameters;\n }\n\n parseClassPropertyAnnotation(\n node: N.ClassProperty | N.ClassPrivateProperty | N.ClassAccessorProperty,\n ): void {\n if (!node.optional) {\n if (this.eat(tt.bang)) {\n node.definite = true;\n } else if (this.eat(tt.question)) {\n node.optional = true;\n }\n }\n\n const type = this.tsTryParseTypeAnnotation();\n if (type) node.typeAnnotation = type;\n }\n\n parseClassProperty(node: N.ClassProperty): N.ClassProperty {\n this.parseClassPropertyAnnotation(node);\n\n if (\n this.state.isAmbientContext &&\n !(node.readonly && !node.typeAnnotation) &&\n this.match(tt.eq)\n ) {\n this.raise(TSErrors.DeclareClassFieldHasInitializer, {\n at: this.state.startLoc,\n });\n }\n if (node.abstract && this.match(tt.eq)) {\n const { key } = node;\n this.raise(TSErrors.AbstractPropertyHasInitializer, {\n at: this.state.startLoc,\n propertyName:\n key.type === \"Identifier\" && !node.computed\n ? key.name\n : `[${this.input.slice(key.start, key.end)}]`,\n });\n }\n\n return super.parseClassProperty(node);\n }\n\n parseClassPrivateProperty(\n node: N.ClassPrivateProperty,\n ): N.ClassPrivateProperty {\n // @ts-expect-error abstract may not index node\n if (node.abstract) {\n this.raise(TSErrors.PrivateElementHasAbstract, { at: node });\n }\n\n // @ts-expect-error accessibility may not index node\n if (node.accessibility) {\n this.raise(TSErrors.PrivateElementHasAccessibility, {\n at: node,\n // @ts-expect-error refine typings\n modifier: node.accessibility,\n });\n }\n\n this.parseClassPropertyAnnotation(node);\n return super.parseClassPrivateProperty(node);\n }\n\n parseClassAccessorProperty(\n node: N.ClassAccessorProperty,\n ): N.ClassAccessorProperty {\n this.parseClassPropertyAnnotation(node);\n if (node.optional) {\n this.raise(TSErrors.AccessorCannotBeOptional, { at: node });\n }\n return super.parseClassAccessorProperty(node);\n }\n\n pushClassMethod(\n classBody: N.ClassBody,\n method: N.ClassMethod,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n if (typeParameters && isConstructor) {\n this.raise(TSErrors.ConstructorHasTypeParameters, {\n at: typeParameters,\n });\n }\n\n // @ts-expect-error declare does not exist in ClassMethod\n const { declare = false, kind } = method;\n\n if (declare && (kind === \"get\" || kind === \"set\")) {\n this.raise(TSErrors.DeclareAccessor, { at: method, kind });\n }\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassMethod(\n classBody,\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n );\n }\n\n pushClassPrivateMethod(\n classBody: N.ClassBody,\n method: N.ClassPrivateMethod,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n if (typeParameters) method.typeParameters = typeParameters;\n super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync);\n }\n\n declareClassPrivateMethodInScope(\n node: N.ClassPrivateMethod | N.EstreeMethodDefinition | N.TSDeclareMethod,\n kind: number,\n ) {\n if (node.type === \"TSDeclareMethod\") return;\n // This happens when using the \"estree\" plugin.\n if (node.type === \"MethodDefinition\" && !node.value.body) return;\n\n super.declareClassPrivateMethodInScope(node, kind);\n }\n\n parseClassSuper(node: N.Class): void {\n super.parseClassSuper(node);\n // handle `extends f<<T>\n if (node.superClass && (this.match(tt.lt) || this.match(tt.bitShiftL))) {\n // @ts-expect-error refine typings\n node.superTypeParameters = this.tsParseTypeArgumentsInExpression();\n }\n if (this.eatContextual(tt._implements)) {\n node.implements = this.tsParseHeritageClause(\"implements\");\n }\n }\n\n parseObjPropValue(\n prop: Undone<N.ObjectMethod | N.ObjectProperty>,\n startLoc: Position | undefined | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ) {\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n if (typeParameters) prop.typeParameters = typeParameters;\n\n return super.parseObjPropValue(\n prop,\n\n startLoc,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n refExpressionErrors,\n );\n }\n\n parseFunctionParams(node: N.Function, isConstructor: boolean): void {\n const typeParameters = this.tsTryParseTypeParameters(\n this.tsParseConstModifier,\n );\n if (typeParameters) node.typeParameters = typeParameters;\n super.parseFunctionParams(node, isConstructor);\n }\n\n // `let x: number;`\n parseVarId(\n decl: N.VariableDeclarator,\n kind: \"var\" | \"let\" | \"const\" | \"using\",\n ): void {\n super.parseVarId(decl, kind);\n if (\n decl.id.type === \"Identifier\" &&\n !this.hasPrecedingLineBreak() &&\n this.eat(tt.bang)\n ) {\n decl.definite = true;\n }\n\n const type = this.tsTryParseTypeAnnotation();\n if (type) {\n decl.id.typeAnnotation = type;\n this.resetEndLocation(decl.id); // set end position to end of type\n }\n }\n\n // parse the return type of an async arrow function - let foo = (async (): number => {});\n parseAsyncArrowFromCallExpression(\n node: N.ArrowFunctionExpression,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n if (this.match(tt.colon)) {\n node.returnType = this.tsParseTypeAnnotation();\n }\n return super.parseAsyncArrowFromCallExpression(node, call);\n }\n\n parseMaybeAssign(\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ): N.Expression {\n // Note: When the JSX plugin is on, type assertions (`<T> x`) aren't valid syntax.\n\n let state: State | undefined | null;\n let jsx;\n let typeCast;\n\n if (\n this.hasPlugin(\"jsx\") &&\n (this.match(tt.jsxTagStart) || this.match(tt.lt))\n ) {\n // Prefer to parse JSX if possible. But may be an arrow fn.\n state = this.state.clone();\n\n jsx = this.tryParse(\n () => super.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n state,\n );\n\n /*:: invariant(!jsx.aborted) */\n /*:: invariant(jsx.node != null) */\n if (!jsx.error) return jsx.node;\n\n // Remove `tc.j_expr` or `tc.j_oTag` from context added\n // by parsing `jsxTagStart` to stop the JSX plugin from\n // messing with the tokens\n const { context } = this.state;\n const currentContext = context[context.length - 1];\n if (currentContext === tc.j_oTag || currentContext === tc.j_expr) {\n context.pop();\n }\n }\n\n if (!jsx?.error && !this.match(tt.lt)) {\n return super.parseMaybeAssign(refExpressionErrors, afterLeftParse);\n }\n\n // Either way, we're looking at a '<': tt.jsxTagStart or relational.\n\n // If the state was cloned in the JSX parsing branch above but there\n // have been any error in the tryParse call, this.state is set to state\n // so we still need to clone it.\n if (!state || state === this.state) state = this.state.clone();\n\n let typeParameters: N.TsTypeParameterDeclaration | undefined | null;\n const arrow = this.tryParse(abort => {\n // This is similar to TypeScript's `tryParseParenthesizedArrowFunctionExpression`.\n typeParameters = this.tsParseTypeParameters(this.tsParseConstModifier);\n const expr = super.parseMaybeAssign(\n refExpressionErrors,\n afterLeftParse,\n );\n\n if (\n expr.type !== \"ArrowFunctionExpression\" ||\n expr.extra?.parenthesized\n ) {\n abort();\n }\n\n // Correct TypeScript code should have at least 1 type parameter, but don't crash on bad code.\n if (typeParameters?.params.length !== 0) {\n this.resetStartLocationFromNode(expr, typeParameters);\n }\n expr.typeParameters = typeParameters;\n\n if (process.env.BABEL_8_BREAKING) {\n if (\n this.hasPlugin(\"jsx\") &&\n expr.typeParameters.params.length === 1 &&\n !expr.typeParameters.extra?.trailingComma\n ) {\n // report error if single type parameter used without trailing comma.\n const parameter = expr.typeParameters.params[0];\n if (!parameter.constraint) {\n // A single type parameter must either have constraints\n // or a trailing comma, otherwise it's ambiguous with JSX.\n this.raise(TSErrors.SingleTypeParameterWithoutTrailingComma, {\n at: createPositionWithColumnOffset(parameter.loc.end, 1),\n typeParameterName: parameter.name.name,\n });\n }\n }\n }\n\n return expr;\n }, state);\n\n /*:: invariant(arrow.node != null) */\n if (!arrow.error && !arrow.aborted) {\n // This error is reported outside of the this.tryParse call so that\n // in case of <T>(x) => 2, we don't consider <T>(x) as a type assertion\n // because of this error.\n if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);\n // @ts-expect-error refine typings\n return arrow.node;\n }\n\n if (!jsx) {\n // Try parsing a type cast instead of an arrow function.\n // This will never happen outside of JSX.\n // (Because in JSX the '<' should be a jsxTagStart and not a relational.\n assert(!this.hasPlugin(\"jsx\"));\n\n // This will start with a type assertion (via parseMaybeUnary).\n // But don't directly call `this.tsParseTypeAssertion` because we want to handle any binary after it.\n typeCast = this.tryParse(\n () => super.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n state,\n );\n /*:: invariant(!typeCast.aborted) */\n /*:: invariant(typeCast.node != null) */\n if (!typeCast.error) return typeCast.node;\n }\n\n if (jsx?.node) {\n /*:: invariant(jsx.failState) */\n this.state = jsx.failState;\n return jsx.node;\n }\n\n if (arrow.node) {\n /*:: invariant(arrow.failState) */\n this.state = arrow.failState;\n if (typeParameters) this.reportReservedArrowTypeParam(typeParameters);\n // @ts-expect-error refine typings\n return arrow.node;\n }\n\n if (typeCast?.node) {\n /*:: invariant(typeCast.failState) */\n this.state = typeCast.failState;\n return typeCast.node;\n }\n\n throw jsx?.error || arrow.error || typeCast?.error;\n }\n\n reportReservedArrowTypeParam(node: any) {\n if (\n node.params.length === 1 &&\n !node.params[0].constraint &&\n !node.extra?.trailingComma &&\n this.getPluginOption(\"typescript\", \"disallowAmbiguousJSXLike\")\n ) {\n this.raise(TSErrors.ReservedArrowTypeParam, { at: node });\n }\n }\n\n // Handle type assertions\n parseMaybeUnary(\n refExpressionErrors?: ExpressionErrors | null,\n sawUnary?: boolean,\n ): N.Expression {\n if (!this.hasPlugin(\"jsx\") && this.match(tt.lt)) {\n return this.tsParseTypeAssertion();\n }\n return super.parseMaybeUnary(refExpressionErrors, sawUnary);\n }\n\n parseArrow(\n node: Undone<N.ArrowFunctionExpression>,\n ): Undone<N.ArrowFunctionExpression> | undefined | null {\n if (this.match(tt.colon)) {\n // This is different from how the TS parser does it.\n // TS uses lookahead. The Babel Parser parses it as a parenthesized expression and converts.\n\n const result = this.tryParse(abort => {\n const returnType = this.tsParseTypeOrTypePredicateAnnotation(\n tt.colon,\n );\n if (this.canInsertSemicolon() || !this.match(tt.arrow)) abort();\n return returnType;\n });\n\n if (result.aborted) return;\n\n if (!result.thrown) {\n if (result.error) this.state = result.failState;\n // @ts-expect-error refine typings\n node.returnType = result.node;\n }\n }\n\n return super.parseArrow(node);\n }\n\n // Allow type annotations inside of a parameter list.\n parseAssignableListItemTypes(\n param: N.Pattern,\n flags: ParseBindingListFlags,\n ) {\n if (!(flags & ParseBindingListFlags.IS_FUNCTION_PARAMS)) return param;\n\n if (this.eat(tt.question)) {\n (param as any as N.Identifier).optional = true;\n }\n const type = this.tsTryParseTypeAnnotation();\n if (type) param.typeAnnotation = type;\n this.resetEndLocation(param);\n\n return param;\n }\n\n isAssignable(node: N.Node, isBinding?: boolean): boolean {\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\n toAssignable(node: N.Node, isLHS: boolean = false): void {\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(\n TSErrors.UnexpectedTypeCastInParameter,\n { at: node },\n );\n } else {\n this.raise(TSErrors.UnexpectedTypeCastInParameter, { at: 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 /* fall through */\n default:\n super.toAssignable(node, isLHS);\n }\n }\n\n toAssignableParenthesizedExpression(node: N.Node, isLHS: boolean): void {\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\n checkToRestConversion(node: N.Node, allowPattern: boolean): void {\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\n // @ts-expect-error plugin overrides interfaces\n isValidLVal(\n type:\n | \"TSTypeCastExpression\"\n | \"TSParameterProperty\"\n | \"TSNonNullExpression\"\n | \"TSAsExpression\"\n | \"TSSatisfiesExpression\"\n | \"TSTypeAssertion\",\n isUnparenthesizedInAssign: boolean,\n binding: BindingFlag,\n ) {\n return (\n getOwn(\n {\n // Allow \"typecasts\" to appear on the left of assignment expressions,\n // because it may be in an arrow function.\n // e.g. `const f = (foo: number = 0) => foo;`\n TSTypeCastExpression: true,\n TSParameterProperty: \"parameter\",\n TSNonNullExpression: \"expression\",\n TSAsExpression: (binding !== BindingFlag.TYPE_NONE ||\n !isUnparenthesizedInAssign) && [\"expression\", true],\n TSSatisfiesExpression: (binding !== BindingFlag.TYPE_NONE ||\n !isUnparenthesizedInAssign) && [\"expression\", true],\n TSTypeAssertion: (binding !== BindingFlag.TYPE_NONE ||\n !isUnparenthesizedInAssign) && [\"expression\", true],\n },\n type,\n ) || super.isValidLVal(type, isUnparenthesizedInAssign, binding)\n );\n }\n\n parseBindingAtom(): N.Pattern {\n if (this.state.type === tt._this) {\n return this.parseIdentifier(/* liberal */ true);\n }\n return super.parseBindingAtom();\n }\n\n parseMaybeDecoratorArguments(expr: N.Expression): N.Expression {\n // handles `@f<<T>`\n if (this.match(tt.lt) || this.match(tt.bitShiftL)) {\n const typeArguments = this.tsParseTypeArgumentsInExpression();\n\n if (this.match(tt.parenL)) {\n const call = super.parseMaybeDecoratorArguments(expr);\n call.typeParameters = typeArguments;\n return call;\n }\n\n this.unexpected(null, tt.parenL);\n }\n\n return super.parseMaybeDecoratorArguments(expr);\n }\n\n checkCommaAfterRest(\n close: (typeof charCodes)[keyof typeof charCodes],\n ): boolean {\n if (\n this.state.isAmbientContext &&\n this.match(tt.comma) &&\n this.lookaheadCharCode() === close\n ) {\n this.next();\n return false;\n }\n return super.checkCommaAfterRest(close);\n }\n\n // === === === === === === === === === === === === === === === ===\n // Note: All below methods are duplicates of something in flow.js.\n // Not sure what the best way to combine these is.\n // === === === === === === === === === === === === === === === ===\n\n isClassMethod(): boolean {\n return this.match(tt.lt) || super.isClassMethod();\n }\n\n isClassProperty(): boolean {\n return (\n this.match(tt.bang) || this.match(tt.colon) || super.isClassProperty()\n );\n }\n\n parseMaybeDefault(\n startLoc?: Position | null,\n left?: Pattern | null,\n ): N.Pattern {\n const node = super.parseMaybeDefault(startLoc, left);\n\n if (\n node.type === \"AssignmentPattern\" &&\n node.typeAnnotation &&\n node.right.start < node.typeAnnotation.start\n ) {\n this.raise(TSErrors.TypeAnnotationAfterAssign, {\n at: node.typeAnnotation,\n });\n }\n\n return node;\n }\n\n // ensure that inside types, we bypass the jsx parser plugin\n getTokenFromCode(code: number): void {\n if (this.state.inType) {\n if (code === charCodes.greaterThan) {\n this.finishOp(tt.gt, 1);\n return;\n }\n if (code === charCodes.lessThan) {\n this.finishOp(tt.lt, 1);\n return;\n }\n }\n super.getTokenFromCode(code);\n }\n\n // used after we have finished parsing types\n reScan_lt_gt() {\n const { type } = this.state;\n if (type === tt.lt) {\n this.state.pos -= 1;\n this.readToken_lt();\n } else if (type === tt.gt) {\n this.state.pos -= 1;\n this.readToken_gt();\n }\n }\n\n reScan_lt() {\n const { type } = this.state;\n if (type === tt.bitShiftL) {\n this.state.pos -= 2;\n this.finishOp(tt.lt, 1);\n return tt.lt;\n }\n return type;\n }\n\n toAssignableList(\n exprList: Expression[],\n trailingCommaLoc: Position | undefined | null,\n isLHS: boolean,\n ): void {\n for (let i = 0; i < exprList.length; i++) {\n const expr = exprList[i];\n if (expr?.type === \"TSTypeCastExpression\") {\n exprList[i] = this.typeCastToParameter(\n expr as N.TsTypeCastExpression,\n );\n }\n }\n super.toAssignableList(exprList, trailingCommaLoc, isLHS);\n }\n\n typeCastToParameter(node: N.TsTypeCastExpression): N.Node {\n node.expression.typeAnnotation = node.typeAnnotation;\n\n this.resetEndLocation(node.expression, node.typeAnnotation.loc.end);\n\n return node.expression;\n }\n\n shouldParseArrow(params: Array<N.Node>) {\n if (this.match(tt.colon)) {\n return params.every(expr => this.isAssignable(expr, true));\n }\n return super.shouldParseArrow(params);\n }\n\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.colon) || super.shouldParseAsyncArrow();\n }\n\n canHaveLeadingDecorator() {\n // Avoid unnecessary lookahead in checking for abstract class unless needed!\n return super.canHaveLeadingDecorator() || this.isAbstractClass();\n }\n\n jsxParseOpeningElementAfterName(\n node: N.JSXOpeningElement,\n ): N.JSXOpeningElement {\n // handles `<Component<<T>`\n if (this.match(tt.lt) || this.match(tt.bitShiftL)) {\n const typeArguments = this.tsTryParseAndCatch(() =>\n // @ts-expect-error: refine typings\n this.tsParseTypeArgumentsInExpression(),\n );\n // @ts-expect-error: refine typings\n if (typeArguments) node.typeParameters = typeArguments;\n }\n return super.jsxParseOpeningElementAfterName(node);\n }\n\n getGetterSetterExpectedParamCount(\n method: N.ObjectMethod | N.ClassMethod,\n ): number {\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\n return hasContextParam ? baseCount + 1 : baseCount;\n }\n\n parseCatchClauseParam(): N.Pattern {\n const param = super.parseCatchClauseParam();\n const type = this.tsTryParseTypeAnnotation();\n\n if (type) {\n param.typeAnnotation = type;\n this.resetEndLocation(param);\n }\n\n return param;\n }\n\n tsInAmbientContext<T>(cb: () => T): T {\n const oldIsAmbientContext = this.state.isAmbientContext;\n this.state.isAmbientContext = true;\n try {\n return cb();\n } finally {\n this.state.isAmbientContext = oldIsAmbientContext;\n }\n }\n\n parseClass<T extends N.Class>(\n node: Undone<T>,\n isStatement: boolean,\n optionalId?: boolean,\n ): T {\n const oldInAbstractClass = this.state.inAbstractClass;\n this.state.inAbstractClass = !!(node as any).abstract;\n try {\n return super.parseClass(node, isStatement, optionalId);\n } finally {\n this.state.inAbstractClass = oldInAbstractClass;\n }\n }\n\n tsParseAbstractDeclaration(\n node: any,\n decorators: N.Decorator[] | null,\n ): N.ClassDeclaration | N.TsInterfaceDeclaration | undefined | null {\n if (this.match(tt._class)) {\n node.abstract = true;\n return this.maybeTakeDecorators(\n decorators,\n this.parseClass<N.ClassDeclaration>(\n node as N.ClassDeclaration,\n /* isStatement */ true,\n /* optionalId */ false,\n ),\n );\n } else if (this.isContextual(tt._interface)) {\n // for invalid abstract interface\n\n // To avoid\n // abstract interface\n // Foo {}\n if (!this.hasFollowingLineBreak()) {\n node.abstract = true;\n this.raise(TSErrors.NonClassMethodPropertyHasAbstractModifer, {\n at: node,\n });\n return this.tsParseInterfaceDeclaration(\n node as N.TsInterfaceDeclaration,\n );\n }\n } else {\n this.unexpected(null, tt._class);\n }\n }\n\n parseMethod<\n T extends N.ObjectMethod | N.ClassMethod | N.ClassPrivateMethod,\n >(\n node: Undone<T>,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: T[\"type\"],\n inClassScope?: boolean,\n ) {\n const method = super.parseMethod<T>(\n node,\n isGenerator,\n isAsync,\n isConstructor,\n allowDirectSuper,\n type,\n inClassScope,\n );\n // @ts-expect-error todo(flow->ts) property not defined for all types in union\n if (method.abstract) {\n const hasBody = this.hasPlugin(\"estree\")\n ? // @ts-expect-error estree typings\n !!method.value.body\n : !!method.body;\n if (hasBody) {\n const { key } = method;\n this.raise(TSErrors.AbstractMethodHasImplementation, {\n at: method,\n methodName:\n key.type === \"Identifier\" && !method.computed\n ? key.name\n : `[${this.input.slice(key.start, key.end)}]`,\n });\n }\n }\n return method;\n }\n\n tsParseTypeParameterName(): N.Identifier | string {\n const typeName: N.Identifier = this.parseIdentifier();\n return process.env.BABEL_8_BREAKING ? typeName : typeName.name;\n }\n\n shouldParseAsAmbientContext(): boolean {\n return !!this.getPluginOption(\"typescript\", \"dts\");\n }\n\n parse() {\n if (this.shouldParseAsAmbientContext()) {\n this.state.isAmbientContext = true;\n }\n return super.parse();\n }\n\n getExpression() {\n if (this.shouldParseAsAmbientContext()) {\n this.state.isAmbientContext = true;\n }\n return super.getExpression();\n }\n\n parseExportSpecifier(\n node: Undone<N.ExportSpecifier>,\n isString: boolean,\n isInTypeExport: boolean,\n isMaybeTypeOnly: boolean,\n ) {\n if (!isString && isMaybeTypeOnly) {\n this.parseTypeOnlyImportExportSpecifier(\n node,\n /* isImport */ false,\n isInTypeExport,\n );\n return this.finishNode<N.ExportSpecifier>(node, \"ExportSpecifier\");\n }\n node.exportKind = \"value\";\n return super.parseExportSpecifier(\n node,\n isString,\n isInTypeExport,\n isMaybeTypeOnly,\n );\n }\n\n parseImportSpecifier(\n specifier: Undone<N.ImportSpecifier>,\n importedIsString: boolean,\n isInTypeOnlyImport: boolean,\n isMaybeTypeOnly: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n bindingType: BindingFlag | undefined,\n ): N.ImportSpecifier {\n if (!importedIsString && isMaybeTypeOnly) {\n this.parseTypeOnlyImportExportSpecifier(\n specifier,\n /* isImport */ true,\n isInTypeOnlyImport,\n );\n return this.finishNode<N.ImportSpecifier>(specifier, \"ImportSpecifier\");\n }\n specifier.importKind = \"value\";\n return super.parseImportSpecifier(\n specifier,\n importedIsString,\n isInTypeOnlyImport,\n isMaybeTypeOnly,\n isInTypeOnlyImport\n ? BindingFlag.TYPE_TS_TYPE_IMPORT\n : BindingFlag.TYPE_TS_VALUE_IMPORT,\n );\n }\n\n parseTypeOnlyImportExportSpecifier(\n node: any,\n isImport: boolean,\n isInTypeOnlyImportExport: boolean,\n ): void {\n const leftOfAsKey = isImport ? \"imported\" : \"local\";\n const rightOfAsKey = isImport ? \"local\" : \"exported\";\n\n let leftOfAs = node[leftOfAsKey];\n let rightOfAs;\n\n let hasTypeSpecifier = false;\n let canParseAsKeyword = true;\n\n const loc = leftOfAs.loc.start;\n\n // https://github.com/microsoft/TypeScript/blob/fc4f9d83d5939047aa6bb2a43965c6e9bbfbc35b/src/compiler/parser.ts#L7411-L7456\n // import { type } from \"mod\"; - hasTypeSpecifier: false, leftOfAs: type\n // import { type as } from \"mod\"; - hasTypeSpecifier: true, leftOfAs: as\n // import { type as as } from \"mod\"; - hasTypeSpecifier: false, leftOfAs: type, rightOfAs: as\n // import { type as as as } from \"mod\"; - hasTypeSpecifier: true, leftOfAs: as, rightOfAs: as\n if (this.isContextual(tt._as)) {\n // { type as ...? }\n const firstAs = this.parseIdentifier();\n if (this.isContextual(tt._as)) {\n // { type as as ...? }\n const secondAs = this.parseIdentifier();\n if (tokenIsKeywordOrIdentifier(this.state.type)) {\n // { type as as something }\n hasTypeSpecifier = true;\n leftOfAs = firstAs;\n rightOfAs = isImport\n ? this.parseIdentifier()\n : this.parseModuleExportName();\n canParseAsKeyword = false;\n } else {\n // { type as as }\n rightOfAs = secondAs;\n canParseAsKeyword = false;\n }\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n // { type as something }\n canParseAsKeyword = false;\n rightOfAs = isImport\n ? this.parseIdentifier()\n : this.parseModuleExportName();\n } else {\n // { type as }\n hasTypeSpecifier = true;\n leftOfAs = firstAs;\n }\n } else if (tokenIsKeywordOrIdentifier(this.state.type)) {\n // { type something ...? }\n hasTypeSpecifier = true;\n if (isImport) {\n leftOfAs = this.parseIdentifier(true);\n if (!this.isContextual(tt._as)) {\n this.checkReservedWord(\n leftOfAs.name,\n leftOfAs.loc.start,\n true,\n true,\n );\n }\n } else {\n leftOfAs = this.parseModuleExportName();\n }\n }\n if (hasTypeSpecifier && isInTypeOnlyImportExport) {\n this.raise(\n isImport\n ? TSErrors.TypeModifierIsUsedInTypeImports\n : TSErrors.TypeModifierIsUsedInTypeExports,\n { at: loc },\n );\n }\n\n node[leftOfAsKey] = leftOfAs;\n node[rightOfAsKey] = rightOfAs;\n\n const kindKey = isImport ? \"importKind\" : \"exportKind\";\n node[kindKey] = hasTypeSpecifier ? \"type\" : \"value\";\n\n if (canParseAsKeyword && this.eatContextual(tt._as)) {\n node[rightOfAsKey] = isImport\n ? this.parseIdentifier()\n : this.parseModuleExportName();\n }\n if (!node[rightOfAsKey]) {\n node[rightOfAsKey] = cloneIdentifier(node[leftOfAsKey]);\n }\n if (isImport) {\n this.checkIdentifier(\n node[rightOfAsKey],\n hasTypeSpecifier\n ? BindingFlag.TYPE_TS_TYPE_IMPORT\n : BindingFlag.TYPE_TS_VALUE_IMPORT,\n );\n }\n }\n };\n\nfunction isPossiblyLiteralEnum(expression: N.Expression): boolean {\n if (expression.type !== \"MemberExpression\") return false;\n\n const { computed, property } = expression;\n\n if (\n computed &&\n property.type !== \"StringLiteral\" &&\n (property.type !== \"TemplateLiteral\" || property.expressions.length > 0)\n ) {\n return false;\n }\n\n return isUncomputedMemberExpressionChain(expression.object);\n}\n\n// If a const declaration has no type annotation and is initialized to\n// a string literal, numeric literal, or enum reference, then it is\n// allowed. In an ideal world, we'd check whether init was *actually* an\n// enum reference, but we allow anything that \"could be\" a literal enum\n// in `isPossiblyLiteralEnum` since we don't have all the information\n// that the typescript compiler has.\nfunction isValidAmbientConstInitializer(\n expression: N.Expression,\n estree: boolean,\n): boolean {\n const { type } = expression;\n if (expression.extra?.parenthesized) {\n return false;\n }\n if (estree) {\n if (type === \"Literal\") {\n const { value } = 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}\n\nfunction isNumber(expression: N.Expression, estree: boolean): boolean {\n if (estree) {\n return (\n expression.type === \"Literal\" &&\n (typeof expression.value === \"number\" || \"bigint\" in expression)\n );\n }\n return (\n expression.type === \"NumericLiteral\" || expression.type === \"BigIntLiteral\"\n );\n}\n\nfunction isNegativeNumber(expression: N.Expression, estree: boolean): boolean {\n if (expression.type === \"UnaryExpression\") {\n const { operator, argument } = expression as N.UnaryExpression;\n if (operator === \"-\" && isNumber(argument, estree)) {\n return true;\n }\n }\n return false;\n}\n\nfunction isUncomputedMemberExpressionChain(expression: N.Expression): boolean {\n if (expression.type === \"Identifier\") return true;\n if (expression.type !== \"MemberExpression\" || expression.computed) {\n return false;\n }\n\n return isUncomputedMemberExpressionChain(expression.object);\n}\n","import * as charCodes from \"charcodes\";\n\nimport { tokenLabelName, tt } from \"../tokenizer/types.ts\";\nimport type Parser from \"../parser/index.ts\";\nimport type * as N from \"../types.ts\";\nimport { ParseErrorEnum } from \"../parse-error.ts\";\nimport type { Undone } from \"../parser/node.ts\";\nimport type { ExpressionErrors } from \"../parser/util.ts\";\nimport type { BindingFlag } from \"../util/scopeflags.ts\";\nimport type { Position } from \"../util/location.ts\";\n\ntype PossiblePlaceholders = {\n Identifier: N.Identifier;\n StringLiteral: N.StringLiteral;\n Expression: N.Expression;\n Statement: N.Statement;\n Declaration: N.Declaration;\n BlockStatement: N.BlockStatement;\n ClassBody: N.ClassBody;\n Pattern: N.Pattern;\n};\nexport type PlaceholderTypes = keyof PossiblePlaceholders;\n\ntype NodeOf<T extends keyof PossiblePlaceholders> = PossiblePlaceholders[T];\n// todo: when there is proper union type for Node\n// type NodeOf<T extends PlaceholderTypes> = Extract<N.Node, { type: T }>;\n\n// todo: Placeholder<T> breaks everything, because its type is incompatible with\n// the substituted nodes.\ntype MaybePlaceholder<T extends PlaceholderTypes> = NodeOf<T>; // | Placeholder<T>\n\n/* eslint sort-keys: \"error\" */\nconst PlaceholderErrors = ParseErrorEnum`placeholders`({\n ClassNameIsRequired: \"A class name is required.\",\n UnexpectedSpace: \"Unexpected space in placeholder.\",\n});\n\n/* eslint-disable sort-keys */\n\nexport default (superClass: typeof Parser) =>\n class PlaceholdersParserMixin extends superClass implements Parser {\n parsePlaceholder<T extends PlaceholderTypes>(\n expectedNode: T,\n ): /*?N.Placeholder<T>*/ MaybePlaceholder<T> | undefined | null {\n if (this.match(tt.placeholder)) {\n const node = this.startNode();\n this.next();\n this.assertNoSpace();\n\n // We can't use this.parseIdentifier because\n // we don't want nested placeholders.\n node.name = super.parseIdentifier(/* liberal */ true);\n\n this.assertNoSpace();\n this.expect(tt.placeholder);\n // @ts-expect-error placeholder typings\n return this.finishPlaceholder(node, expectedNode);\n }\n }\n\n finishPlaceholder<T extends PlaceholderTypes>(\n node: N.Node,\n expectedNode: T,\n ): /*N.Placeholder<T>*/ MaybePlaceholder<T> {\n const isFinished = !!(node.expectedNode && node.type === \"Placeholder\");\n node.expectedNode = expectedNode;\n\n // @ts-expect-error todo(flow->ts)\n return isFinished ? node : this.finishNode(node, \"Placeholder\");\n }\n\n /* ============================================================ *\n * tokenizer/index.js *\n * ============================================================ */\n\n getTokenFromCode(code: number) {\n if (\n code === charCodes.percentSign &&\n this.input.charCodeAt(this.state.pos + 1) === charCodes.percentSign\n ) {\n this.finishOp(tt.placeholder, 2);\n } else {\n super.getTokenFromCode(code);\n }\n }\n\n /* ============================================================ *\n * parser/expression.js *\n * ============================================================ */\n\n parseExprAtom(\n refExpressionErrors?: ExpressionErrors | null,\n ): MaybePlaceholder<\"Expression\"> {\n return (\n this.parsePlaceholder(\"Expression\") ||\n super.parseExprAtom(refExpressionErrors)\n );\n }\n\n parseIdentifier(liberal?: boolean): MaybePlaceholder<\"Identifier\"> {\n // NOTE: This function only handles identifiers outside of\n // expressions and binding patterns, since they are already\n // handled by the parseExprAtom and parseBindingAtom functions.\n // This is needed, for example, to parse \"class %%NAME%% {}\".\n return (\n this.parsePlaceholder(\"Identifier\") || super.parseIdentifier(liberal)\n );\n }\n\n checkReservedWord(\n word: string,\n startLoc: Position,\n checkKeywords: boolean,\n isBinding: boolean,\n ) {\n // Sometimes we call #checkReservedWord(node.name), expecting\n // that node is an Identifier. If it is a Placeholder, name\n // will be undefined.\n if (word !== undefined) {\n super.checkReservedWord(word, startLoc, checkKeywords, isBinding);\n }\n }\n\n /* ============================================================ *\n * parser/lval.js *\n * ============================================================ */\n\n parseBindingAtom(): MaybePlaceholder<\"Pattern\"> {\n return this.parsePlaceholder(\"Pattern\") || super.parseBindingAtom();\n }\n\n isValidLVal(type: string, isParenthesized: boolean, binding: BindingFlag) {\n return (\n type === \"Placeholder\" ||\n super.isValidLVal(type, isParenthesized, binding)\n );\n }\n\n toAssignable(node: N.Node, isLHS: boolean): void {\n if (\n node &&\n node.type === \"Placeholder\" &&\n node.expectedNode === \"Expression\"\n ) {\n node.expectedNode = \"Pattern\";\n } else {\n super.toAssignable(node, isLHS);\n }\n }\n\n /* ============================================================ *\n * parser/statement.js *\n * ============================================================ */\n\n chStartsBindingIdentifier(ch: number, pos: number): boolean {\n if (super.chStartsBindingIdentifier(ch, pos)) {\n return true;\n }\n\n // Accept \"let %%\" as the start of \"let %%placeholder%%\", as though the\n // placeholder were an identifier.\n const nextToken = this.lookahead();\n if (nextToken.type === tt.placeholder) {\n return true;\n }\n\n return false;\n }\n\n verifyBreakContinue(\n node: N.BreakStatement | N.ContinueStatement,\n isBreak: boolean,\n ) {\n // @ts-expect-error: node.label could be Placeholder\n if (node.label && node.label.type === \"Placeholder\") return;\n super.verifyBreakContinue(node, isBreak);\n }\n\n // @ts-expect-error Plugin will override parser interface\n parseExpressionStatement(\n node: MaybePlaceholder<\"Statement\">,\n expr: N.Expression,\n ): MaybePlaceholder<\"Statement\"> {\n if (expr.type !== \"Placeholder\" || expr.extra?.parenthesized) {\n // @ts-expect-error placeholder typings\n return super.parseExpressionStatement(node, expr);\n }\n\n if (this.match(tt.colon)) {\n // @ts-expect-error placeholder typings\n const stmt: N.LabeledStatement = node;\n stmt.label = this.finishPlaceholder(expr, \"Identifier\");\n this.next();\n stmt.body = super.parseStatementOrSloppyAnnexBFunctionDeclaration();\n return this.finishNode(stmt, \"LabeledStatement\");\n }\n\n this.semicolon();\n node.name = expr.name;\n return this.finishPlaceholder(node, \"Statement\");\n }\n\n parseBlock(\n allowDirectives?: boolean,\n createNewLexicalScope?: boolean,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): MaybePlaceholder<\"BlockStatement\"> {\n return (\n this.parsePlaceholder(\"BlockStatement\") ||\n super.parseBlock(\n allowDirectives,\n createNewLexicalScope,\n afterBlockParse,\n )\n );\n }\n\n parseFunctionId(\n requireId?: boolean,\n ): MaybePlaceholder<\"Identifier\"> | undefined | null {\n return (\n this.parsePlaceholder(\"Identifier\") || super.parseFunctionId(requireId)\n );\n }\n // @ts-expect-error Plugin will override parser interface\n parseClass<T extends N.Class>(\n node: T,\n isStatement: /* T === ClassDeclaration */ boolean,\n optionalId?: boolean,\n ): T {\n const type = isStatement ? \"ClassDeclaration\" : \"ClassExpression\";\n\n this.next();\n const oldStrict = this.state.strict;\n\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (placeholder) {\n if (\n this.match(tt._extends) ||\n this.match(tt.placeholder) ||\n this.match(tt.braceL)\n ) {\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, {\n at: this.state.startLoc,\n });\n }\n } else {\n this.parseClassId(node, isStatement, optionalId);\n }\n\n super.parseClassSuper(node);\n node.body =\n this.parsePlaceholder(\"ClassBody\") ||\n super.parseClassBody(!!node.superClass, oldStrict);\n return this.finishNode(node, type);\n }\n\n parseExport(node: N.Node, decorators: N.Decorator[] | null): N.AnyExport {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseExport(node, decorators);\n\n if (!this.isContextual(tt._from) && !this.match(tt.comma)) {\n // export %%DECL%%;\n node.specifiers = [];\n node.source = null;\n node.declaration = this.finishPlaceholder(placeholder, \"Declaration\");\n return this.finishNode(node, \"ExportNamedDeclaration\");\n }\n\n // export %%NAME%% from \"foo\";\n this.expectPlugin(\"exportDefaultFrom\");\n const specifier = this.startNode();\n specifier.exported = placeholder;\n node.specifiers = [this.finishNode(specifier, \"ExportDefaultSpecifier\")];\n\n return super.parseExport(node, decorators);\n }\n\n isExportDefaultSpecifier(): boolean {\n if (this.match(tt._default)) {\n const next = this.nextTokenStart();\n if (this.isUnparsedContextual(next, \"from\")) {\n if (\n this.input.startsWith(\n tokenLabelName(tt.placeholder),\n this.nextTokenStartSince(next + 4),\n )\n ) {\n return true;\n }\n }\n }\n return super.isExportDefaultSpecifier();\n }\n\n maybeParseExportDefaultSpecifier(\n node: Undone<\n | N.ExportDefaultDeclaration\n | N.ExportAllDeclaration\n | N.ExportNamedDeclaration\n >,\n maybeDefaultIdentifier: N.Identifier | null,\n ): node is Undone<N.ExportNamedDeclaration> {\n if ((node as N.ExportNamedDeclaration).specifiers?.length) {\n // \"export %%NAME%%\" has already been parsed by #parseExport.\n return true;\n }\n return super.maybeParseExportDefaultSpecifier(\n node,\n maybeDefaultIdentifier,\n );\n }\n\n checkExport(node: N.ExportNamedDeclaration): void {\n const { specifiers } = node;\n if (specifiers?.length) {\n node.specifiers = specifiers.filter(\n // @ts-expect-error placeholder typings\n node => node.exported.type === \"Placeholder\",\n );\n }\n super.checkExport(node);\n node.specifiers = specifiers;\n }\n\n parseImport(\n node: Undone<N.ImportDeclaration>,\n ): N.ImportDeclaration | N.TsImportEqualsDeclaration {\n const placeholder = this.parsePlaceholder(\"Identifier\");\n if (!placeholder) return super.parseImport(node);\n\n node.specifiers = [];\n\n if (!this.isContextual(tt._from) && !this.match(tt.comma)) {\n // import %%STRING%%;\n node.source = this.finishPlaceholder(placeholder, \"StringLiteral\");\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n // import %%DEFAULT%% ...\n const specifier =\n this.startNodeAtNode<N.ImportDefaultSpecifier>(placeholder);\n specifier.local = placeholder;\n node.specifiers.push(\n this.finishNode(specifier, \"ImportDefaultSpecifier\"),\n );\n\n if (this.eat(tt.comma)) {\n // import %%DEFAULT%%, * as ...\n const hasStarImport = this.maybeParseStarImportSpecifier(node);\n\n // import %%DEFAULT%%, { ...\n if (!hasStarImport) this.parseNamedImportSpecifiers(node);\n }\n\n this.expectContextual(tt._from);\n node.source = this.parseImportSource();\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n parseImportSource(): MaybePlaceholder<\"StringLiteral\"> {\n // import ... from %%STRING%%;\n\n return (\n this.parsePlaceholder(\"StringLiteral\") || super.parseImportSource()\n );\n }\n\n // Throws if the current token and the prev one are separated by a space.\n assertNoSpace(): void {\n if (this.state.start > this.state.lastTokEndLoc.index) {\n this.raise(PlaceholderErrors.UnexpectedSpace, {\n at: this.state.lastTokEndLoc,\n });\n }\n }\n };\n","import type Parser from \"../parser/index.ts\";\nimport { tokenIsIdentifier, tt } from \"../tokenizer/types.ts\";\nimport type * as N from \"../types.ts\";\nimport type { ExpressionErrors } from \"../parser/util.ts\";\n\nexport default (superClass: typeof Parser) =>\n class V8IntrinsicMixin extends superClass implements Parser {\n parseV8Intrinsic(): N.Expression {\n if (this.match(tt.modulo)) {\n const v8IntrinsicStartLoc = this.state.startLoc;\n // let the `loc` of Identifier starts from `%`\n const node = this.startNode<N.Identifier>();\n this.next(); // eat '%'\n if (tokenIsIdentifier(this.state.type)) {\n const name = this.parseIdentifierName();\n const identifier = this.createIdentifier(node, name);\n // @ts-expect-error: avoid mutating AST types\n identifier.type = \"V8IntrinsicIdentifier\";\n if (this.match(tt.parenL)) {\n return identifier;\n }\n }\n this.unexpected(v8IntrinsicStartLoc);\n }\n }\n\n /* ============================================================ *\n * parser/expression.js *\n * ============================================================ */\n\n parseExprAtom(refExpressionErrors?: ExpressionErrors | null): N.Expression {\n return (\n this.parseV8Intrinsic() || super.parseExprAtom(refExpressionErrors)\n );\n }\n };\n","import type Parser from \"./parser/index.ts\";\nimport type {\n ParserPluginWithOptions,\n PluginConfig,\n PluginOptions,\n} from \"./typings.ts\";\n\nexport type Plugin = PluginConfig;\n\nexport type PluginList = PluginConfig[];\n\nexport type MixinPlugin = (superClass: { new (...args: any): Parser }) => {\n new (...args: any): Parser;\n};\n\n// This function’s second parameter accepts either a string (plugin name) or an\n// array pair (plugin name and options object). If an options object is given,\n// then each value is non-recursively checked for identity with the actual\n// option value of each plugin in the first argument (which is an array of\n// plugin names or array pairs).\nexport function hasPlugin(\n plugins: PluginList,\n expectedConfig: PluginConfig,\n): boolean {\n // The expectedOptions object is by default an empty object if the given\n // expectedConfig argument does not give an options object (i.e., if it is a\n // string).\n const [expectedName, expectedOptions] =\n typeof expectedConfig === \"string\" ? [expectedConfig, {}] : expectedConfig;\n\n const expectedKeys = Object.keys(expectedOptions);\n\n const expectedOptionsIsEmpty = expectedKeys.length === 0;\n\n return plugins.some(p => {\n if (typeof p === \"string\") {\n return expectedOptionsIsEmpty && p === expectedName;\n } else {\n const [pluginName, pluginOptions] = p;\n if (pluginName !== expectedName) {\n return false;\n }\n for (const key of expectedKeys) {\n // @ts-expect-error key may not exist in plugin options\n if (pluginOptions[key] !== expectedOptions[key]) {\n return false;\n }\n }\n return true;\n }\n });\n}\n\nexport function getPluginOption<\n PluginName extends ParserPluginWithOptions[0],\n OptionName extends keyof PluginOptions<PluginName>,\n>(plugins: PluginList, name: PluginName, option: OptionName) {\n const plugin = plugins.find(plugin => {\n if (Array.isArray(plugin)) {\n return plugin[0] === name;\n } else {\n return plugin === name;\n }\n });\n\n if (plugin && Array.isArray(plugin) && plugin.length > 1) {\n return (plugin[1] as PluginOptions<PluginName>)[option];\n }\n\n return null;\n}\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"fsharp\", \"hack\", \"smart\"];\nconst TOPIC_TOKENS = [\"^^\", \"@@\", \"^\", \"%\", \"#\"];\nconst RECORD_AND_TUPLE_SYNTAX_TYPES = [\"hash\", \"bar\"];\n\nexport function validatePlugins(plugins: PluginList) {\n if (hasPlugin(plugins, \"decorators\")) {\n if (hasPlugin(plugins, \"decorators-legacy\")) {\n throw new Error(\n \"Cannot use the decorators and decorators-legacy plugin together\",\n );\n }\n\n const decoratorsBeforeExport = getPluginOption(\n plugins,\n \"decorators\",\n \"decoratorsBeforeExport\",\n );\n if (\n decoratorsBeforeExport != null &&\n typeof decoratorsBeforeExport !== \"boolean\"\n ) {\n throw new Error(\n \"'decoratorsBeforeExport' must be a boolean, if specified.\",\n );\n }\n\n const allowCallParenthesized = getPluginOption(\n plugins,\n \"decorators\",\n \"allowCallParenthesized\",\n );\n if (\n allowCallParenthesized != null &&\n typeof allowCallParenthesized !== \"boolean\"\n ) {\n throw new Error(\"'allowCallParenthesized' must be a boolean.\");\n }\n }\n\n if (hasPlugin(plugins, \"flow\") && hasPlugin(plugins, \"typescript\")) {\n throw new Error(\"Cannot combine flow and typescript plugins.\");\n }\n\n if (hasPlugin(plugins, \"placeholders\") && hasPlugin(plugins, \"v8intrinsic\")) {\n throw new Error(\"Cannot combine placeholders and v8intrinsic plugins.\");\n }\n\n if (hasPlugin(plugins, \"pipelineOperator\")) {\n const proposal = getPluginOption(plugins, \"pipelineOperator\", \"proposal\");\n\n if (!PIPELINE_PROPOSALS.includes(proposal)) {\n const proposalList = PIPELINE_PROPOSALS.map(p => `\"${p}\"`).join(\", \");\n throw new Error(\n `\"pipelineOperator\" requires \"proposal\" option whose value must be one of: ${proposalList}.`,\n );\n }\n\n const tupleSyntaxIsHash = hasPlugin(plugins, [\n \"recordAndTuple\",\n { syntaxType: \"hash\" },\n ]);\n\n if (proposal === \"hack\") {\n if (hasPlugin(plugins, \"placeholders\")) {\n throw new Error(\n \"Cannot combine placeholders plugin and Hack-style pipes.\",\n );\n }\n\n if (hasPlugin(plugins, \"v8intrinsic\")) {\n throw new Error(\n \"Cannot combine v8intrinsic plugin and Hack-style pipes.\",\n );\n }\n\n const topicToken = getPluginOption(\n plugins,\n \"pipelineOperator\",\n \"topicToken\",\n );\n\n if (!TOPIC_TOKENS.includes(topicToken)) {\n const tokenList = TOPIC_TOKENS.map(t => `\"${t}\"`).join(\", \");\n\n throw new Error(\n `\"pipelineOperator\" in \"proposal\": \"hack\" mode also requires a \"topicToken\" option whose value must be one of: ${tokenList}.`,\n );\n }\n\n if (topicToken === \"#\" && tupleSyntaxIsHash) {\n throw new Error(\n 'Plugin conflict between `[\"pipelineOperator\", { proposal: \"hack\", topicToken: \"#\" }]` and `[\"recordAndtuple\", { syntaxType: \"hash\"}]`.',\n );\n }\n } else if (proposal === \"smart\" && tupleSyntaxIsHash) {\n throw new Error(\n 'Plugin conflict between `[\"pipelineOperator\", { proposal: \"smart\" }]` and `[\"recordAndtuple\", { syntaxType: \"hash\"}]`.',\n );\n }\n }\n\n if (hasPlugin(plugins, \"moduleAttributes\")) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"`moduleAttributes` has been removed in Babel 8, please use `importAttributes` parser plugin, or `@babel/plugin-syntax-import-attributes`.\",\n );\n } else {\n if (\n hasPlugin(plugins, \"importAssertions\") ||\n hasPlugin(plugins, \"importAttributes\")\n ) {\n throw new Error(\n \"Cannot combine importAssertions, importAttributes and moduleAttributes plugins.\",\n );\n }\n const moduleAttributesVersionPluginOption = getPluginOption(\n plugins,\n \"moduleAttributes\",\n \"version\",\n );\n if (moduleAttributesVersionPluginOption !== \"may-2020\") {\n throw new Error(\n \"The 'moduleAttributes' plugin requires a 'version' option,\" +\n \" representing the last proposal update. Currently, the\" +\n \" only supported value is 'may-2020'.\",\n );\n }\n }\n }\n if (\n hasPlugin(plugins, \"importAssertions\") &&\n hasPlugin(plugins, \"importAttributes\")\n ) {\n throw new Error(\n \"Cannot combine importAssertions and importAttributes plugins.\",\n );\n }\n\n if (\n hasPlugin(plugins, \"recordAndTuple\") &&\n getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\") != null &&\n !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(\n getPluginOption(plugins, \"recordAndTuple\", \"syntaxType\"),\n )\n ) {\n throw new Error(\n \"The 'syntaxType' option of the 'recordAndTuple' plugin must be one of: \" +\n RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(\", \"),\n );\n }\n\n if (\n hasPlugin(plugins, \"asyncDoExpressions\") &&\n !hasPlugin(plugins, \"doExpressions\")\n ) {\n const error = new Error(\n \"'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins.\",\n );\n // @ts-expect-error so @babel/core can provide better error message\n error.missingPlugins = \"doExpressions\";\n throw error;\n }\n\n if (\n hasPlugin(plugins, \"optionalChainingAssign\") &&\n getPluginOption(plugins, \"optionalChainingAssign\", \"version\") !== \"2023-07\"\n ) {\n throw new Error(\n \"The 'optionalChainingAssign' plugin requires a 'version' option,\" +\n \" representing the last proposal update. Currently, the\" +\n \" only supported value is '2023-07'.\",\n );\n }\n}\n\n// These plugins are defined using a mixin which extends the parser class.\n\nimport estree from \"./plugins/estree.ts\";\nimport flow from \"./plugins/flow/index.ts\";\nimport jsx from \"./plugins/jsx/index.ts\";\nimport typescript from \"./plugins/typescript/index.ts\";\nimport placeholders from \"./plugins/placeholders.ts\";\nimport v8intrinsic from \"./plugins/v8intrinsic.ts\";\n\n// NOTE: order is important. estree must come first; placeholders must come last.\nexport const mixinPlugins = {\n estree,\n jsx,\n flow,\n typescript,\n v8intrinsic,\n placeholders,\n};\n\nexport const mixinPluginNames = Object.keys(mixinPlugins) as ReadonlyArray<\n \"estree\" | \"jsx\" | \"flow\" | \"typescript\" | \"v8intrinsic\" | \"placeholders\"\n>;\n","import type { PluginList } from \"./plugin-utils.ts\";\n\n// A second optional argument can be given to further configure\n// the parser process. These options are recognized:\n\nexport type SourceType = \"script\" | \"module\" | \"unambiguous\";\n\nexport type Options = {\n sourceType: SourceType;\n sourceFilename?: string;\n startColumn: number;\n startLine: number;\n allowAwaitOutsideFunction: boolean;\n allowReturnOutsideFunction: boolean;\n allowNewTargetOutsideFunction: boolean;\n allowImportExportEverywhere: boolean;\n allowSuperOutsideMethod: boolean;\n allowUndeclaredExports: boolean;\n plugins: PluginList;\n strictMode: boolean | undefined | null;\n ranges: boolean;\n tokens: boolean;\n createImportExpressions: boolean;\n createParenthesizedExpressions: boolean;\n errorRecovery: boolean;\n attachComment: boolean;\n annexB: boolean;\n};\n\nexport const defaultOptions: Options = {\n // Source type (\"script\" or \"module\") for different semantics\n sourceType: \"script\",\n // Source filename.\n sourceFilename: undefined,\n // Column (0-based) from which to start counting source. Useful for\n // integration with other tools.\n startColumn: 0,\n // Line (1-based) from which to start counting source. Useful for\n // integration with other tools.\n startLine: 1,\n // When enabled, await at the top level is not considered an\n // error.\n allowAwaitOutsideFunction: false,\n // When enabled, a return at the top level is not considered an\n // error.\n allowReturnOutsideFunction: false,\n // When enabled, new.target outside a function or class is not\n // considered an error.\n allowNewTargetOutsideFunction: false,\n // When enabled, import/export statements are not constrained to\n // appearing at the top of the program.\n allowImportExportEverywhere: false,\n // TODO\n allowSuperOutsideMethod: false,\n // When enabled, export statements can reference undeclared variables.\n allowUndeclaredExports: false,\n // An array of plugins to enable\n plugins: [],\n // TODO\n strictMode: null,\n // Nodes have their start and end characters offsets recorded in\n // `start` and `end` properties (directly on the node, rather than\n // the `loc` object, which holds line/column data. To also add a\n // [semi-standardized][range] `range` property holding a `[start,\n // end]` array with the same numbers, set the `ranges` option to\n // `true`.\n //\n // [range]: https://bugzilla.mozilla.org/show_bug.cgi?id=745678\n ranges: false,\n // Adds all parsed tokens to a `tokens` property on the `File` node\n tokens: false,\n // Whether to create ImportExpression AST nodes (if false\n // `import(foo)` will be parsed as CallExpression(Import, [Identifier(foo)])\n createImportExpressions: process.env.BABEL_8_BREAKING ? true : false,\n // Whether to create ParenthesizedExpression AST nodes (if false\n // the parser sets extra.parenthesized on the expression nodes instead).\n createParenthesizedExpressions: false,\n // When enabled, errors are attached to the AST instead of being directly thrown.\n // Some errors will still throw, because @babel/parser can't always recover.\n errorRecovery: false,\n // When enabled, comments will be attached to adjacent AST nodes as one of\n // `leadingComments`, `trailingComments` and `innerComments`. The comment attachment\n // is vital to preserve comments after transform. If you don't print AST back,\n // consider set this option to `false` for performance\n attachComment: true,\n // When enabled, the parser will support Annex B syntax.\n // https://tc39.es/ecma262/#sec-additional-ecmascript-features-for-web-browsers\n annexB: true,\n};\n\n// Interpret and default an options object\n\nexport function getOptions(opts?: Options | null): Options {\n if (opts == null) {\n return { ...defaultOptions };\n }\n if (opts.annexB != null && opts.annexB !== false) {\n throw new Error(\"The `annexB` option can only be set to `false`.\");\n }\n\n const options: any = {};\n for (const key of Object.keys(defaultOptions) as (keyof Options)[]) {\n options[key] = opts[key] ?? defaultOptions[key];\n }\n return options;\n}\n","// A recursive descent parser operates by defining functions for all\n// syntactic elements, and recursively calling those, each function\n// advancing the input stream and returning an AST node. Precedence\n// of constructs (for example, the fact that `!x[1]` means `!(x[1])`\n// instead of `(!x)[1]` is handled by the fact that the parser\n// function that parses unary prefix operators is called first, and\n// in turn calls the function that parses `[]` subscripts — that\n// way, it'll receive the node for `x[1]` already parsed, and wraps\n// *that* in the unary operator node.\n//\n// Acorn uses an [operator precedence parser][opp] to handle binary\n// operator precedence, because it is much more compact than using\n// the technique outlined above, which uses different, nesting\n// functions to specify precedence, for all of the ten binary\n// precedence levels that JavaScript defines.\n//\n// [opp]: http://en.wikipedia.org/wiki/Operator-precedence_parser\n\nimport {\n tokenCanStartExpression,\n tokenIsAssignment,\n tokenIsIdentifier,\n tokenIsKeywordOrIdentifier,\n tokenIsOperator,\n tokenIsPostfix,\n tokenIsPrefix,\n tokenIsRightAssociative,\n tokenIsTemplate,\n tokenKeywordOrIdentifierIsKeyword,\n tokenLabelName,\n tokenOperatorPrecedence,\n tt,\n type TokenType,\n} from \"../tokenizer/types.ts\";\nimport type * as N from \"../types.ts\";\nimport LValParser from \"./lval.ts\";\nimport {\n isKeyword,\n isReservedWord,\n isStrictReservedWord,\n isStrictBindReservedWord,\n isIdentifierStart,\n canBeReservedWord,\n} from \"../util/identifier.ts\";\nimport {\n type Position,\n createPositionWithColumnOffset,\n} from \"../util/location.ts\";\nimport * as charCodes from \"charcodes\";\nimport { ScopeFlag, BindingFlag } from \"../util/scopeflags.ts\";\nimport { ExpressionErrors } from \"./util.ts\";\nimport { ParamKind, functionFlags } from \"../util/production-parameter.ts\";\nimport {\n newArrowHeadScope,\n newAsyncArrowScope,\n newExpressionScope,\n} from \"../util/expression-scope.ts\";\nimport { Errors, type ParseError } from \"../parse-error.ts\";\nimport { UnparenthesizedPipeBodyDescriptions } from \"../parse-error/pipeline-operator-errors.ts\";\nimport { setInnerComments } from \"./comments.ts\";\nimport { cloneIdentifier, type Undone } from \"./node.ts\";\nimport type Parser from \"./index.ts\";\n\nimport type { SourceType } from \"../options.ts\";\n\nexport default abstract class ExpressionParser extends LValParser {\n // Forward-declaration: defined in statement.js\n abstract parseBlock(\n allowDirectives?: boolean,\n createNewLexicalScope?: boolean,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): N.BlockStatement;\n abstract parseClass(\n node: N.Class,\n isStatement: boolean,\n optionalId?: boolean,\n ): N.Class;\n abstract parseDecorators(allowExport?: boolean): void;\n abstract parseFunction<T extends N.NormalFunction>(\n node: T,\n statement?: number,\n allowExpressionBody?: boolean,\n isAsync?: boolean,\n ): T;\n abstract parseFunctionParams(node: N.Function, isConstructor?: boolean): void;\n abstract parseBlockOrModuleBlockBody(\n body: N.Statement[],\n directives: N.Directive[] | null | undefined,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void;\n abstract parseProgram(\n program: N.Program,\n end: TokenType,\n sourceType?: SourceType,\n ): N.Program;\n\n // For object literal, check if property __proto__ has been used more than once.\n // If the expression is a destructuring assignment, then __proto__ may appear\n // multiple times. Otherwise, __proto__ is a duplicated key.\n\n // For record expression, check if property __proto__ exists\n\n checkProto(\n prop: N.ObjectMember | N.SpreadElement,\n isRecord: boolean | undefined | null,\n protoRef: {\n used: boolean;\n },\n refExpressionErrors?: ExpressionErrors | null,\n ): void {\n if (\n prop.type === \"SpreadElement\" ||\n this.isObjectMethod(prop) ||\n prop.computed ||\n // @ts-expect-error prop must be an ObjectProperty\n prop.shorthand\n ) {\n return;\n }\n\n const key = prop.key;\n // It is either an Identifier or a String/NumericLiteral\n const name = key.type === \"Identifier\" ? key.name : key.value;\n\n if (name === \"__proto__\") {\n if (isRecord) {\n this.raise(Errors.RecordNoProto, { at: key });\n return;\n }\n if (protoRef.used) {\n if (refExpressionErrors) {\n // Store the first redefinition's position, otherwise ignore because\n // we are parsing ambiguous pattern\n if (refExpressionErrors.doubleProtoLoc === null) {\n refExpressionErrors.doubleProtoLoc = key.loc.start;\n }\n } else {\n this.raise(Errors.DuplicateProto, { at: key });\n }\n }\n\n protoRef.used = true;\n }\n }\n\n shouldExitDescending(expr: N.Expression, potentialArrowAt: number): boolean {\n return (\n expr.type === \"ArrowFunctionExpression\" && expr.start === potentialArrowAt\n );\n }\n\n // Convenience method to parse an Expression only\n getExpression(this: Parser): N.Expression & N.ParserOutput {\n this.enterInitialScopes();\n this.nextToken();\n const expr = this.parseExpression();\n if (!this.match(tt.eof)) {\n this.unexpected();\n }\n // Unlike parseTopLevel, we need to drain remaining commentStacks\n // because the top level node is _not_ Program.\n this.finalizeRemainingComments();\n expr.comments = this.state.comments;\n expr.errors = this.state.errors;\n if (this.options.tokens) {\n expr.tokens = this.tokens;\n }\n // @ts-expect-error fixme: refine types\n return expr;\n }\n\n // ### Expression parsing\n\n // These nest, from the most general expression type at the top to\n // 'atomic', nondivisible expression types at the bottom. Most of\n // the functions will simply let the function (s) below them parse,\n // and, *if* the syntactic construct they handle is present, wrap\n // the AST node that the inner parser gave them in another node.\n\n // Parse a full expression.\n // - `disallowIn`\n // is used to forbid the `in` operator (in for loops initialization expressions)\n // When `disallowIn` is true, the production parameter [In] is not present.\n\n // - `refExpressionErrors `\n // provides reference for storing '=' operator inside shorthand\n // property assignment in contexts where both object expression\n // and object pattern might appear (so it's possible to raise\n // delayed syntax error at correct position).\n\n parseExpression(\n this: Parser,\n disallowIn?: boolean,\n refExpressionErrors?: ExpressionErrors,\n ): N.Expression {\n if (disallowIn) {\n return this.disallowInAnd(() =>\n this.parseExpressionBase(refExpressionErrors),\n );\n }\n return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors));\n }\n\n // https://tc39.es/ecma262/#prod-Expression\n parseExpressionBase(\n this: Parser,\n refExpressionErrors?: ExpressionErrors,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const expr = this.parseMaybeAssign(refExpressionErrors);\n if (this.match(tt.comma)) {\n const node = this.startNodeAt(startLoc);\n node.expressions = [expr];\n while (this.eat(tt.comma)) {\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\n // Set [~In] parameter for assignment expression\n parseMaybeAssignDisallowIn(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ) {\n return this.disallowInAnd(() =>\n this.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n );\n }\n\n // Set [+In] parameter for assignment expression\n parseMaybeAssignAllowIn(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ) {\n return this.allowInAnd(() =>\n this.parseMaybeAssign(refExpressionErrors, afterLeftParse),\n );\n }\n\n // This method is only used by\n // the typescript and flow plugins.\n setOptionalParametersError(\n refExpressionErrors: ExpressionErrors,\n resultError?: ParseError<any>,\n ) {\n refExpressionErrors.optionalParametersLoc =\n resultError?.loc ?? this.state.startLoc;\n }\n\n // Parse an assignment expression. This includes applications of\n // operators like `+=`.\n // https://tc39.es/ecma262/#prod-AssignmentExpression\n parseMaybeAssign(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n afterLeftParse?: Function,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n if (this.isContextual(tt._yield)) {\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\n let ownExpressionErrors;\n if (refExpressionErrors) {\n ownExpressionErrors = false;\n } else {\n refExpressionErrors = new ExpressionErrors();\n ownExpressionErrors = true;\n }\n const { type } = this.state;\n\n if (type === tt.parenL || tokenIsIdentifier(type)) {\n this.state.potentialArrowAt = this.state.start;\n }\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<N.AssignmentExpression>(startLoc);\n const operator = this.state.value;\n node.operator = operator;\n\n if (this.match(tt.eq)) {\n this.toAssignable(left, /* isLHS */ true);\n node.left = left;\n\n const startIndex = startLoc.index;\n if (\n refExpressionErrors.doubleProtoLoc != null &&\n refExpressionErrors.doubleProtoLoc.index >= startIndex\n ) {\n refExpressionErrors.doubleProtoLoc = null; // reset because double __proto__ is valid in assignment expression\n }\n if (\n refExpressionErrors.shorthandAssignLoc != null &&\n refExpressionErrors.shorthandAssignLoc.index >= startIndex\n ) {\n refExpressionErrors.shorthandAssignLoc = null; // reset because shorthand default was used correctly\n }\n if (\n refExpressionErrors.privateKeyLoc != null &&\n refExpressionErrors.privateKeyLoc.index >= startIndex\n ) {\n this.checkDestructuringPrivate(refExpressionErrors);\n refExpressionErrors.privateKeyLoc = null; // reset because `({ #x: x })` is an assignable pattern\n }\n } else {\n node.left = left;\n }\n\n this.next();\n node.right = this.parseMaybeAssign();\n this.checkLVal(left, {\n in: this.finishNode(node, \"AssignmentExpression\"),\n });\n // @ts-expect-error todo(flow->ts) improve node types\n return node;\n } else if (ownExpressionErrors) {\n this.checkExpressionErrors(refExpressionErrors, true);\n }\n\n return left;\n }\n\n // Parse a ternary conditional (`?:`) operator.\n // https://tc39.es/ecma262/#prod-ConditionalExpression\n\n parseMaybeConditional(\n this: Parser,\n refExpressionErrors: ExpressionErrors,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseExprOps(refExpressionErrors);\n\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n\n return this.parseConditional(expr, startLoc, refExpressionErrors);\n }\n\n parseConditional(\n this: Parser,\n expr: N.Expression,\n startLoc: Position,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n if (this.eat(tt.question)) {\n const node = this.startNodeAt(startLoc);\n node.test = expr;\n node.consequent = this.parseMaybeAssignAllowIn();\n this.expect(tt.colon);\n node.alternate = this.parseMaybeAssign();\n return this.finishNode(node, \"ConditionalExpression\");\n }\n return expr;\n }\n\n parseMaybeUnaryOrPrivate(\n this: Parser,\n refExpressionErrors?: ExpressionErrors,\n ): N.Expression | N.PrivateName {\n return this.match(tt.privateName)\n ? this.parsePrivateName()\n : this.parseMaybeUnary(refExpressionErrors);\n }\n\n // Start the precedence parser.\n // https://tc39.es/ecma262/#prod-ShortCircuitExpression\n\n parseExprOps(\n this: Parser,\n refExpressionErrors: ExpressionErrors,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors);\n\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n\n return this.parseExprOp(expr, startLoc, -1);\n }\n\n // Parse binary operators with the operator precedence parsing\n // algorithm. `left` is the left-hand side of the operator.\n // `minPrec` provides context that allows the function to stop and\n // defer further parser to one of its callers when it encounters an\n // operator that has a lower precedence than the set it is parsing.\n\n parseExprOp(\n this: Parser,\n left: N.Expression | N.PrivateName,\n leftStartLoc: Position,\n minPrec: number,\n ): N.Expression {\n if (this.isPrivateName(left)) {\n // https://tc39.es/ecma262/#prod-RelationalExpression\n // RelationalExpression [In, Yield, Await]\n // [+In] PrivateIdentifier in ShiftExpression[?Yield, ?Await]\n\n const value = this.getPrivateNameSV(left);\n\n if (\n minPrec >= tokenOperatorPrecedence(tt._in) ||\n !this.prodParam.hasIn ||\n !this.match(tt._in)\n ) {\n this.raise(Errors.PrivateInExpectedIn, {\n at: left,\n identifierName: value,\n });\n }\n\n this.classScope.usePrivateName(value, left.loc.start);\n }\n\n const op = this.state.type;\n if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(tt._in))) {\n let prec = tokenOperatorPrecedence(op);\n if (prec > minPrec) {\n if (op === tt.pipeline) {\n this.expectPlugin(\"pipelineOperator\");\n if (this.state.inFSharpPipelineDirectBody) {\n return left;\n }\n this.checkPipelineAtInfixOperator(left, leftStartLoc);\n }\n const node = this.startNodeAt<N.LogicalExpression | N.BinaryExpression>(\n leftStartLoc,\n );\n node.left = left;\n node.operator = this.state.value;\n\n const logical = op === tt.logicalOR || op === tt.logicalAND;\n const coalesce = op === tt.nullishCoalescing;\n\n if (coalesce) {\n // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions.\n // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error.\n prec = tokenOperatorPrecedence(tt.logicalAND);\n }\n\n this.next();\n\n if (\n op === tt.pipeline &&\n this.hasPlugin([\"pipelineOperator\", { proposal: \"minimal\" }])\n ) {\n if (this.state.type === tt._await && this.prodParam.hasAwait) {\n throw this.raise(Errors.UnexpectedAwaitAfterPipelineBody, {\n at: this.state.startLoc,\n });\n }\n }\n\n node.right = this.parseExprOpRightExpr(op, prec);\n const finishedNode = this.finishNode(\n node,\n logical || coalesce ? \"LogicalExpression\" : \"BinaryExpression\",\n );\n /* this check is for all ?? operators\n * a ?? b && c for this example\n * when op is coalesce and nextOp is logical (&&), throw at the pos of nextOp that it can not be mixed.\n * Symmetrically it also throws when op is logical and nextOp is coalesce\n */\n const nextOp = this.state.type;\n if (\n (coalesce && (nextOp === tt.logicalOR || nextOp === tt.logicalAND)) ||\n (logical && nextOp === tt.nullishCoalescing)\n ) {\n throw this.raise(Errors.MixingCoalesceWithLogical, {\n at: this.state.startLoc,\n });\n }\n\n return this.parseExprOp(finishedNode, leftStartLoc, minPrec);\n }\n }\n return left;\n }\n\n // Helper function for `parseExprOp`. Parse the right-hand side of binary-\n // operator expressions, then apply any operator-specific functions.\n\n parseExprOpRightExpr(\n this: Parser,\n op: TokenType,\n prec: number,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n switch (op) {\n case tt.pipeline:\n switch (this.getPluginOption(\"pipelineOperator\", \"proposal\")) {\n case \"hack\":\n return this.withTopicBindingContext(() => {\n return this.parseHackPipeBody();\n });\n\n case \"smart\":\n return this.withTopicBindingContext(() => {\n if (this.prodParam.hasYield && this.isContextual(tt._yield)) {\n throw this.raise(Errors.PipeBodyIsTighter, {\n at: this.state.startLoc,\n });\n }\n return this.parseSmartPipelineBodyInStyle(\n this.parseExprOpBaseRightExpr(op, prec),\n startLoc,\n );\n });\n\n case \"fsharp\":\n return this.withSoloAwaitPermittingContext(() => {\n return this.parseFSharpPipelineBody(prec);\n });\n }\n\n // Falls through.\n default:\n return this.parseExprOpBaseRightExpr(op, prec);\n }\n }\n\n // Helper function for `parseExprOpRightExpr`. Parse the right-hand side of\n // binary-operator expressions without applying any operator-specific functions.\n\n parseExprOpBaseRightExpr(\n this: Parser,\n op: TokenType,\n prec: number,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n\n return this.parseExprOp(\n this.parseMaybeUnaryOrPrivate(),\n startLoc,\n tokenIsRightAssociative(op) ? prec - 1 : prec,\n );\n }\n\n parseHackPipeBody(this: Parser): N.Expression {\n const { startLoc } = this.state;\n const body = this.parseMaybeAssign();\n const requiredParentheses = UnparenthesizedPipeBodyDescriptions.has(\n // @ts-expect-error TS2345: Argument of type 'string' is not assignable to parameter of type '\"ArrowFunctionExpression\" | \"YieldExpression\" | \"AssignmentExpression\" | \"ConditionalExpression\"'.\n body.type,\n );\n\n // TODO: Check how to handle type casts in Flow and TS once they are supported\n if (requiredParentheses && !body.extra?.parenthesized) {\n this.raise(Errors.PipeUnparenthesizedBody, {\n at: startLoc,\n // @ts-expect-error TS2322: Type 'string' is not assignable to type '\"AssignmentExpression\" | \"ArrowFunctionExpression\" | \"ConditionalExpression\" | \"YieldExpression\"'.\n type: body.type,\n });\n }\n if (!this.topicReferenceWasUsedInCurrentContext()) {\n // A Hack pipe body must use the topic reference at least once.\n this.raise(Errors.PipeTopicUnused, { at: startLoc });\n }\n\n return body;\n }\n\n checkExponentialAfterUnary(\n node: N.AwaitExpression | Undone<N.UnaryExpression>,\n ) {\n if (this.match(tt.exponent)) {\n this.raise(Errors.UnexpectedTokenUnaryExponentiation, {\n at: node.argument,\n });\n }\n }\n\n // Parse unary operators, both prefix and postfix.\n // https://tc39.es/ecma262/#prod-UnaryExpression\n parseMaybeUnary(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n sawUnary?: boolean,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const isAwait = this.isContextual(tt._await);\n\n if (isAwait && this.isAwaitAllowed()) {\n this.next();\n const expr = this.parseAwait(startLoc);\n if (!sawUnary) this.checkExponentialAfterUnary(expr);\n return expr;\n }\n const update = this.match(tt.incDec);\n const node = this.startNode<N.UnaryExpression | N.UpdateExpression>();\n if (tokenIsPrefix(this.state.type)) {\n node.operator = this.state.value;\n node.prefix = true;\n\n if (this.match(tt._throw)) {\n this.expectPlugin(\"throwExpressions\");\n }\n const isDelete = this.match(tt._delete);\n this.next();\n\n node.argument = this.parseMaybeUnary(null, true);\n\n this.checkExpressionErrors(refExpressionErrors, true);\n\n if (this.state.strict && isDelete) {\n const arg = node.argument;\n\n if (arg.type === \"Identifier\") {\n this.raise(Errors.StrictDelete, { at: node });\n } else if (this.hasPropertyAsPrivateName(arg)) {\n this.raise(Errors.DeletePrivateField, { at: node });\n }\n }\n\n if (!update) {\n if (!sawUnary) {\n this.checkExponentialAfterUnary(node as Undone<N.UnaryExpression>);\n }\n return this.finishNode(node, \"UnaryExpression\");\n }\n }\n\n const expr = this.parseUpdate(\n // @ts-expect-error using \"Undone\" node as \"done\"\n node,\n update,\n refExpressionErrors,\n );\n\n if (isAwait) {\n const { type } = this.state;\n const startsExpr = this.hasPlugin(\"v8intrinsic\")\n ? tokenCanStartExpression(type)\n : tokenCanStartExpression(type) && !this.match(tt.modulo);\n if (startsExpr && !this.isAmbiguousAwait()) {\n this.raiseOverwrite(Errors.AwaitNotInAsyncContext, { at: startLoc });\n return this.parseAwait(startLoc);\n }\n }\n\n return expr;\n }\n\n // https://tc39.es/ecma262/#prod-UpdateExpression\n parseUpdate(\n this: Parser,\n node: N.Expression,\n update: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n if (update) {\n // @ts-expect-error Type 'Node' is missing the following properties from type 'Undone<UpdateExpression>': prefix, operator, argument\n const updateExpressionNode = node as Undone<N.UpdateExpression>;\n this.checkLVal(updateExpressionNode.argument, {\n in: this.finishNode(updateExpressionNode, \"UpdateExpression\"),\n });\n return node;\n }\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<N.UpdateExpression>(startLoc);\n node.operator = this.state.value;\n node.prefix = false;\n node.argument = expr;\n this.next();\n this.checkLVal(expr, {\n in: (expr = this.finishNode(node, \"UpdateExpression\")),\n });\n }\n return expr;\n }\n\n // Parse call, dot, and `[]`-subscript expressions.\n // https://tc39.es/ecma262/#prod-LeftHandSideExpression\n parseExprSubscripts(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n const potentialArrowAt = this.state.potentialArrowAt;\n const expr = this.parseExprAtom(refExpressionErrors);\n\n if (this.shouldExitDescending(expr, potentialArrowAt)) {\n return expr;\n }\n\n return this.parseSubscripts(expr, startLoc);\n }\n\n parseSubscripts(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n noCalls?: boolean | null,\n ): N.Expression {\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\n // After parsing a subscript, this isn't \"async\" for sure.\n state.maybeAsyncArrow = false;\n } while (!state.stop);\n return base;\n }\n\n /**\n * @param state Set 'state.stop = true' to indicate that we should stop parsing subscripts.\n * state.optionalChainMember to indicate that the member is currently in OptionalChain\n */\n parseSubscript(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n noCalls: boolean | undefined | null,\n state: N.ParseSubscriptState,\n ): N.Expression {\n const { type } = this.state;\n if (!noCalls && type === tt.doubleColon) {\n return this.parseBind(base, startLoc, noCalls, state);\n } else if (tokenIsTemplate(type)) {\n return this.parseTaggedTemplateExpression(base, startLoc, state);\n }\n\n let optional = false;\n\n if (type === tt.questionDot) {\n if (noCalls) {\n this.raise(Errors.OptionalChainingNoNew, {\n at: this.state.startLoc,\n });\n if (this.lookaheadCharCode() === charCodes.leftParenthesis) {\n // stop at `?.` when parsing `new a?.()`\n state.stop = true;\n return base;\n }\n }\n state.optionalChainMember = optional = true;\n this.next();\n }\n\n if (!noCalls && this.match(tt.parenL)) {\n return this.parseCoverCallAndAsyncArrowHead(\n base,\n startLoc,\n state,\n optional,\n );\n } else {\n const computed = this.eat(tt.bracketL);\n if (computed || optional || this.eat(tt.dot)) {\n return this.parseMember(base, startLoc, state, computed, optional);\n } else {\n state.stop = true;\n return base;\n }\n }\n }\n\n // base[?Yield, ?Await] [ Expression[+In, ?Yield, ?Await] ]\n // base[?Yield, ?Await] . IdentifierName\n // base[?Yield, ?Await] . PrivateIdentifier\n // where `base` is one of CallExpression, MemberExpression and OptionalChain\n parseMember(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n state: N.ParseSubscriptState,\n computed: boolean,\n optional: boolean,\n ): N.OptionalMemberExpression | N.MemberExpression {\n const node = this.startNodeAt<\n N.OptionalMemberExpression | N.MemberExpression\n >(startLoc);\n node.object = base;\n node.computed = computed;\n if (computed) {\n node.property = this.parseExpression();\n this.expect(tt.bracketR);\n } else if (this.match(tt.privateName)) {\n if (base.type === \"Super\") {\n this.raise(Errors.SuperPrivateField, { at: 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\n if (state.optionalChainMember) {\n (node as N.OptionalMemberExpression).optional = optional;\n return this.finishNode(node, \"OptionalMemberExpression\");\n } else {\n return this.finishNode(node, \"MemberExpression\");\n }\n }\n\n // https://github.com/tc39/proposal-bind-operator#syntax\n parseBind(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n noCalls: boolean | undefined | null,\n state: N.ParseSubscriptState,\n ): N.Expression {\n const node = this.startNodeAt(startLoc);\n node.object = base;\n this.next(); // eat '::'\n node.callee = this.parseNoCallExpr();\n state.stop = true;\n return this.parseSubscripts(\n this.finishNode(node, \"BindExpression\"),\n startLoc,\n noCalls,\n );\n }\n\n // https://tc39.es/ecma262/#prod-CoverCallExpressionAndAsyncArrowHead\n // CoverCallExpressionAndAsyncArrowHead\n // CallExpression[?Yield, ?Await] Arguments[?Yield, ?Await]\n // OptionalChain[?Yield, ?Await] Arguments[?Yield, ?Await]\n parseCoverCallAndAsyncArrowHead(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n state: N.ParseSubscriptState,\n optional: boolean,\n ): N.Expression {\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n let refExpressionErrors: ExpressionErrors | null = null;\n\n this.state.maybeInArrowParameters = true;\n this.next(); // eat `(`\n\n const node = this.startNodeAt<N.CallExpression | N.OptionalCallExpression>(\n startLoc,\n );\n node.callee = base;\n const { maybeAsyncArrow, optionalChainMember } = state;\n\n if (maybeAsyncArrow) {\n this.expressionScope.enter(newAsyncArrowScope());\n refExpressionErrors = new ExpressionErrors();\n }\n\n if (optionalChainMember) {\n // @ts-expect-error when optionalChainMember is true, node must be an optional call\n node.optional = optional;\n }\n\n if (optional) {\n node.arguments = this.parseCallExpressionArguments(tt.parenR);\n } else {\n node.arguments = this.parseCallExpressionArguments(\n tt.parenR,\n base.type === \"Import\",\n base.type !== \"Super\",\n // @ts-expect-error todo(flow->ts)\n node,\n refExpressionErrors,\n );\n }\n let finishedNode:\n | N.CallExpression\n | N.OptionalCallExpression\n | N.ArrowFunctionExpression = this.finishCallExpression(\n node,\n optionalChainMember,\n );\n\n if (maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) {\n /*:: invariant(refExpressionErrors != null) */\n state.stop = true;\n this.checkDestructuringPrivate(refExpressionErrors);\n this.expressionScope.validateAsPattern();\n this.expressionScope.exit();\n finishedNode = this.parseAsyncArrowFromCallExpression(\n this.startNodeAt<N.ArrowFunctionExpression>(startLoc),\n finishedNode as N.CallExpression,\n );\n } else {\n if (maybeAsyncArrow) {\n this.checkExpressionErrors(refExpressionErrors, true);\n this.expressionScope.exit();\n }\n this.toReferencedArguments(finishedNode);\n }\n\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n return finishedNode;\n }\n\n toReferencedArguments(\n node: N.CallExpression | N.OptionalCallExpression,\n isParenthesizedExpr?: boolean,\n ) {\n this.toReferencedListDeep(node.arguments, isParenthesizedExpr);\n }\n\n // MemberExpression [?Yield, ?Await] TemplateLiteral[?Yield, ?Await, +Tagged]\n // CallExpression [?Yield, ?Await] TemplateLiteral[?Yield, ?Await, +Tagged]\n parseTaggedTemplateExpression(\n this: Parser,\n base: N.Expression,\n startLoc: Position,\n state: N.ParseSubscriptState,\n ): N.TaggedTemplateExpression {\n const node = this.startNodeAt<N.TaggedTemplateExpression>(startLoc);\n node.tag = base;\n node.quasi = this.parseTemplate(true);\n if (state.optionalChainMember) {\n this.raise(Errors.OptionalChainingNoTemplate, { at: startLoc });\n }\n return this.finishNode(node, \"TaggedTemplateExpression\");\n }\n\n atPossibleAsyncArrow(base: N.Expression): boolean {\n return (\n base.type === \"Identifier\" &&\n base.name === \"async\" &&\n this.state.lastTokEndLoc.index === base.end &&\n !this.canInsertSemicolon() &&\n // check there are no escape sequences, such as \\u{61}sync\n base.end - base.start === 5 &&\n base.start === this.state.potentialArrowAt\n );\n }\n\n expectImportAttributesPlugin() {\n if (!this.hasPlugin(\"importAssertions\")) {\n this.expectPlugin(\"importAttributes\");\n }\n }\n\n finishCallExpression<T extends N.CallExpression | N.OptionalCallExpression>(\n node: Undone<T>,\n optional: boolean,\n ): T {\n if (node.callee.type === \"Import\") {\n if (node.arguments.length === 2) {\n if (process.env.BABEL_8_BREAKING) {\n this.expectImportAttributesPlugin();\n } else {\n if (!this.hasPlugin(\"moduleAttributes\")) {\n this.expectImportAttributesPlugin();\n }\n }\n }\n if (node.arguments.length === 0 || node.arguments.length > 2) {\n this.raise(Errors.ImportCallArity, {\n at: node,\n maxArgumentCount:\n this.hasPlugin(\"importAttributes\") ||\n this.hasPlugin(\"importAssertions\") ||\n this.hasPlugin(\"moduleAttributes\")\n ? 2\n : 1,\n });\n } else {\n for (const arg of node.arguments) {\n if (arg.type === \"SpreadElement\") {\n this.raise(Errors.ImportCallSpreadArgument, { at: arg });\n }\n }\n }\n }\n return this.finishNode(\n node,\n optional ? \"OptionalCallExpression\" : \"CallExpression\",\n );\n }\n\n parseCallExpressionArguments(\n this: Parser,\n close: TokenType,\n dynamicImport?: boolean,\n allowPlaceholder?: boolean,\n nodeForExtra?: N.Node | null,\n refExpressionErrors?: ExpressionErrors | null,\n ): Array<N.Expression | undefined | null> {\n const elts: N.Expression[] = [];\n let first = true;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n if (this.match(close)) {\n if (\n dynamicImport &&\n !this.hasPlugin(\"importAttributes\") &&\n !this.hasPlugin(\"importAssertions\") &&\n !this.hasPlugin(\"moduleAttributes\")\n ) {\n this.raise(Errors.ImportCallArgumentTrailingComma, {\n at: this.state.lastTokStartLoc,\n });\n }\n if (nodeForExtra) {\n this.addTrailingCommaExtraToNode(nodeForExtra);\n }\n this.next();\n break;\n }\n }\n\n elts.push(\n this.parseExprListItem(false, refExpressionErrors, allowPlaceholder),\n );\n }\n\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n return elts;\n }\n\n shouldParseAsyncArrow(): boolean {\n return this.match(tt.arrow) && !this.canInsertSemicolon();\n }\n\n parseAsyncArrowFromCallExpression(\n this: Parser,\n node: Undone<N.ArrowFunctionExpression>,\n call: N.CallExpression,\n ): N.ArrowFunctionExpression {\n this.resetPreviousNodeTrailingComments(call);\n this.expect(tt.arrow);\n this.parseArrowExpression(\n node,\n call.arguments,\n true,\n call.extra?.trailingCommaLoc,\n );\n // mark inner comments of `async()` as inner comments of `async () =>`\n if (call.innerComments) {\n setInnerComments(node, call.innerComments);\n }\n // mark trailing comments of `async` to be inner comments\n if (call.callee.trailingComments) {\n setInnerComments(node, call.callee.trailingComments);\n }\n return node as N.ArrowFunctionExpression;\n }\n\n // Parse a no-call expression (like argument of `new` or `::` operators).\n // https://tc39.es/ecma262/#prod-MemberExpression\n parseNoCallExpr(this: Parser): N.Expression {\n const startLoc = this.state.startLoc;\n return this.parseSubscripts(this.parseExprAtom(), startLoc, true);\n }\n\n // Parse an atomic expression — either a single token that is an\n // expression, an expression started by a keyword like `function` or\n // `new`, or an expression wrapped in punctuation like `()`, `[]`,\n // or `{}`.\n\n // https://tc39.es/ecma262/#prod-PrimaryExpression\n // https://tc39.es/ecma262/#prod-AsyncArrowFunction\n // PrimaryExpression\n // Super\n // Import\n // AsyncArrowFunction\n\n parseExprAtom(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression {\n let node;\n let decorators: N.Decorator[] | null = null;\n\n const { type } = this.state;\n switch (type) {\n case tt._super:\n return this.parseSuper();\n\n case tt._import:\n node = this.startNode<N.MetaProperty | N.Import | N.ImportExpression>();\n this.next();\n\n if (this.match(tt.dot)) {\n return this.parseImportMetaProperty(node as Undone<N.MetaProperty>);\n }\n\n if (this.match(tt.parenL)) {\n if (this.options.createImportExpressions) {\n return this.parseImportCall(node as Undone<N.ImportExpression>);\n } else {\n return this.finishNode(node, \"Import\");\n }\n } else {\n this.raise(Errors.UnsupportedImport, {\n at: this.state.lastTokStartLoc,\n });\n return this.finishNode(node, \"Import\");\n }\n\n case tt._this:\n node = this.startNode();\n this.next();\n return this.finishNode(node, \"ThisExpression\");\n\n case tt._do: {\n return this.parseDo(this.startNode(), false);\n }\n\n case tt.slash:\n case tt.slashAssign: {\n this.readRegexp();\n return this.parseRegExpLiteral(this.state.value);\n }\n\n case tt.num:\n return this.parseNumericLiteral(this.state.value);\n\n case tt.bigint:\n return this.parseBigIntLiteral(this.state.value);\n\n case tt.decimal:\n return this.parseDecimalLiteral(this.state.value);\n\n case tt.string:\n return this.parseStringLiteral(this.state.value);\n\n case tt._null:\n return this.parseNullLiteral();\n\n case tt._true:\n return this.parseBooleanLiteral(true);\n case tt._false:\n return this.parseBooleanLiteral(false);\n\n case tt.parenL: {\n const canBeArrow = this.state.potentialArrowAt === this.state.start;\n return this.parseParenAndDistinguishExpression(canBeArrow);\n }\n\n case tt.bracketBarL:\n case tt.bracketHashL: {\n return this.parseArrayLike(\n this.state.type === tt.bracketBarL ? tt.bracketBarR : tt.bracketR,\n /* canBePattern */ false,\n /* isTuple */ true,\n );\n }\n case tt.bracketL: {\n return this.parseArrayLike(\n tt.bracketR,\n /* canBePattern */ true,\n /* isTuple */ false,\n refExpressionErrors,\n );\n }\n case tt.braceBarL:\n case tt.braceHashL: {\n return this.parseObjectLike(\n this.state.type === tt.braceBarL ? tt.braceBarR : tt.braceR,\n /* isPattern */ false,\n /* isRecord */ true,\n );\n }\n case tt.braceL: {\n return this.parseObjectLike(\n tt.braceR,\n /* isPattern */ false,\n /* isRecord */ false,\n refExpressionErrors,\n );\n }\n case tt._function:\n return this.parseFunctionOrFunctionSent();\n\n case tt.at:\n decorators = this.parseDecorators();\n // fall through\n case tt._class:\n return this.parseClass(\n this.maybeTakeDecorators(decorators, this.startNode()),\n false,\n );\n\n case tt._new:\n return this.parseNewOrNewTarget();\n\n case tt.templateNonTail:\n case tt.templateTail:\n return this.parseTemplate(false);\n\n // BindExpression[Yield]\n // :: MemberExpression[?Yield]\n case tt.doubleColon: {\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, { at: callee });\n }\n }\n\n case tt.privateName: {\n // Standalone private names are only allowed in \"#x in obj\"\n // expressions, and they are directly handled by callers of\n // parseExprOp. If we reach this, the input is always invalid.\n // We can throw a better error message and recover, rather than\n // just throwing \"Unexpected token\" (which is the default\n // behavior of this big switch statement).\n this.raise(Errors.PrivateInExpectedIn, {\n at: this.state.startLoc,\n identifierName: this.state.value,\n });\n return this.parsePrivateName();\n }\n\n case tt.moduloAssign: {\n return this.parseTopicReferenceThenEqualsSign(tt.modulo, \"%\");\n }\n\n case tt.xorAssign: {\n return this.parseTopicReferenceThenEqualsSign(tt.bitwiseXOR, \"^\");\n }\n\n case tt.doubleCaret:\n case tt.doubleAt: {\n return this.parseTopicReference(\"hack\");\n }\n\n case tt.bitwiseXOR:\n case tt.modulo:\n case tt.hash: {\n const pipeProposal = this.getPluginOption(\n \"pipelineOperator\",\n \"proposal\",\n );\n\n if (pipeProposal) {\n return this.parseTopicReference(pipeProposal);\n }\n this.unexpected();\n break;\n }\n\n case tt.lt: {\n const lookaheadCh = this.input.codePointAt(this.nextTokenStart());\n if (\n isIdentifierStart(lookaheadCh) || // Element/Type Parameter <foo>\n lookaheadCh === charCodes.greaterThan // Fragment <>\n ) {\n this.expectOnePlugin([\"jsx\", \"flow\", \"typescript\"]);\n } else {\n this.unexpected();\n }\n break;\n }\n\n default:\n if (tokenIsIdentifier(type)) {\n if (\n this.isContextual(tt._module) &&\n this.lookaheadInLineCharCode() === charCodes.leftCurlyBrace\n ) {\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\n if (\n !containsEsc &&\n id.name === \"async\" &&\n !this.canInsertSemicolon()\n ) {\n const { type } = this.state;\n if (type === tt._function) {\n this.resetPreviousNodeTrailingComments(id);\n this.next();\n return this.parseAsyncFunctionExpression(\n this.startNodeAtNode(id),\n );\n } else if (tokenIsIdentifier(type)) {\n // If the next token begins with \"=\", commit to parsing an async\n // arrow function. (Peeking ahead for \"=\" lets us avoid a more\n // expensive full-token lookahead on this common path.)\n if (this.lookaheadCharCode() === charCodes.equalsTo) {\n // although `id` is not used in async arrow unary function,\n // we don't need to reset `async`'s trailing comments because\n // it will be attached to the upcoming async arrow binding identifier\n return this.parseAsyncArrowUnaryFunction(\n this.startNodeAtNode(id),\n );\n } else {\n // Otherwise, treat \"async\" as an identifier and let calling code\n // deal with the current tt.name token.\n return id;\n }\n } else if (type === tt._do) {\n this.resetPreviousNodeTrailingComments(id);\n return this.parseDo(this.startNodeAtNode(id), true);\n }\n }\n\n if (\n canBeArrow &&\n this.match(tt.arrow) &&\n !this.canInsertSemicolon()\n ) {\n this.next();\n return this.parseArrowExpression(\n this.startNodeAtNode(id),\n [id],\n false,\n );\n }\n\n return id;\n } else {\n this.unexpected();\n }\n }\n }\n\n // This helper method should only be called\n // when the parser has reached a potential Hack pipe topic token\n // that is followed by an equals sign.\n // See <https://github.com/js-choi/proposal-hack-pipes>.\n // If we find ^= or %= in an expression position\n // (i.e., the tt.moduloAssign or tt.xorAssign token types), and if the\n // Hack-pipes proposal is active with ^ or % as its topicToken, then the ^ or\n // % could be the topic token (e.g., in x |> ^==y or x |> ^===y), and so we\n // reparse the current token as ^ or %.\n // Otherwise, this throws an unexpected-token error.\n parseTopicReferenceThenEqualsSign(\n topicTokenType: TokenType,\n topicTokenValue: string,\n ): N.Expression {\n const pipeProposal = this.getPluginOption(\"pipelineOperator\", \"proposal\");\n\n if (pipeProposal) {\n // Set the most-recent token to be a topic token\n // given by the tokenType and tokenValue.\n // Now the next readToken() call (in parseTopicReference)\n // will consume that “topic token”.\n this.state.type = topicTokenType;\n this.state.value = topicTokenValue;\n // Rewind the tokenizer to the end of the “topic token”, so that the\n // following token starts at the equals sign after that topic token.\n this.state.pos--;\n this.state.end--;\n // This is safe to do since the preceding character was either ^ or %, and\n // thus not a newline.\n this.state.endLoc = createPositionWithColumnOffset(this.state.endLoc, -1);\n // Now actually consume the topic token.\n return this.parseTopicReference(pipeProposal);\n } else {\n this.unexpected();\n }\n }\n\n // This helper method should only be called\n // when the proposal-pipeline-operator plugin is active,\n // and when the parser has reached a potential Hack pipe topic token.\n // Although a pipe-operator proposal is assumed to be active,\n // its configuration might not match the current token’s type.\n // See <https://github.com/js-choi/proposal-hack-pipes>.\n parseTopicReference(pipeProposal: string): N.Expression {\n const node = this.startNode<N.TopicReference>();\n const startLoc = this.state.startLoc;\n const tokenType = this.state.type;\n\n // Consume the current token.\n this.next();\n\n // If the pipe-operator plugin’s configuration matches the current token’s type,\n // then this will return `node`, will have been finished as a topic reference.\n // Otherwise, this will throw a `PipeTopicUnconfiguredToken` error.\n return this.finishTopicReference(node, startLoc, pipeProposal, tokenType);\n }\n\n // This helper method attempts to finish the given `node`\n // into a topic-reference node for the given `pipeProposal`.\n // See <https://github.com/js-choi/proposal-hack-pipes>.\n //\n // The method assumes that any topic token was consumed before it was called.\n //\n // If the `pipelineOperator` plugin is active,\n // and if the given `tokenType` matches the plugin’s configuration,\n // then this method will return the finished `node`.\n //\n // If the `pipelineOperator` plugin is active,\n // but if the given `tokenType` does not match the plugin’s configuration,\n // then this method will throw a `PipeTopicUnconfiguredToken` error.\n finishTopicReference(\n node: Undone<N.Node>,\n startLoc: Position,\n pipeProposal: string,\n tokenType: TokenType,\n ): N.Expression {\n if (\n this.testTopicReferenceConfiguration(pipeProposal, startLoc, tokenType)\n ) {\n // The token matches the plugin’s configuration.\n // The token is therefore a topic reference.\n\n // Determine the node type for the topic reference\n // that is appropriate for the active pipe-operator proposal.\n const nodeType =\n pipeProposal === \"smart\"\n ? \"PipelinePrimaryTopicReference\"\n : // The proposal must otherwise be \"hack\",\n // as enforced by testTopicReferenceConfiguration.\n \"TopicReference\";\n\n if (!this.topicReferenceIsAllowedInCurrentContext()) {\n this.raise(\n // The topic reference is not allowed in the current context:\n // it is outside of a pipe body.\n // Raise recoverable errors.\n pipeProposal === \"smart\"\n ? Errors.PrimaryTopicNotAllowed\n : // In this case, `pipeProposal === \"hack\"` is true.\n Errors.PipeTopicUnbound,\n { at: startLoc },\n );\n }\n\n // Register the topic reference so that its pipe body knows\n // that its topic was used at least once.\n this.registerTopicReference();\n\n return this.finishNode(node, nodeType);\n } else {\n // The token does not match the plugin’s configuration.\n throw this.raise(Errors.PipeTopicUnconfiguredToken, {\n at: startLoc,\n token: tokenLabelName(tokenType),\n });\n }\n }\n\n // This helper method tests whether the given token type\n // matches the pipelineOperator parser plugin’s configuration.\n // If the active pipe proposal is Hack style,\n // and if the given token is the same as the plugin configuration’s `topicToken`,\n // then this is a valid topic reference.\n // If the active pipe proposal is smart mix,\n // then the topic token must always be `#`.\n // If the active pipe proposal is neither (e.g., \"minimal\" or \"fsharp\"),\n // then an error is thrown.\n testTopicReferenceConfiguration(\n pipeProposal: string,\n startLoc: Position,\n tokenType: TokenType,\n ): boolean {\n switch (pipeProposal) {\n case \"hack\": {\n return this.hasPlugin([\n \"pipelineOperator\",\n {\n // @ts-expect-error token must have a label\n topicToken: tokenLabelName(tokenType),\n },\n ]);\n }\n case \"smart\":\n return tokenType === tt.hash;\n default:\n throw this.raise(Errors.PipeTopicRequiresHackPipes, { at: startLoc });\n }\n }\n\n // async [no LineTerminator here] AsyncArrowBindingIdentifier[?Yield] [no LineTerminator here] => AsyncConciseBody[?In]\n parseAsyncArrowUnaryFunction(\n this: Parser,\n node: Undone<N.ArrowFunctionExpression>,\n ): N.ArrowFunctionExpression {\n // We don't need to push a new ParameterDeclarationScope here since we are sure\n // 1) it is an async arrow, 2) no biding pattern is allowed in params\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, {\n at: this.state.curPosition(),\n });\n }\n this.expect(tt.arrow);\n // let foo = async bar => {};\n return this.parseArrowExpression(node, params, true);\n }\n\n // https://github.com/tc39/proposal-do-expressions\n // https://github.com/tc39/proposal-async-do-expressions\n parseDo(\n this: Parser,\n node: Undone<N.DoExpression>,\n isAsync: boolean,\n ): N.DoExpression {\n this.expectPlugin(\"doExpressions\");\n if (isAsync) {\n this.expectPlugin(\"asyncDoExpressions\");\n }\n node.async = isAsync;\n this.next(); // eat `do`\n const oldLabels = this.state.labels;\n this.state.labels = [];\n if (isAsync) {\n // AsyncDoExpression :\n // async [no LineTerminator here] do Block[~Yield, +Await, ~Return]\n this.prodParam.enter(ParamKind.PARAM_AWAIT);\n node.body = this.parseBlock();\n this.prodParam.exit();\n } else {\n node.body = this.parseBlock();\n }\n\n this.state.labels = oldLabels;\n return this.finishNode(node, \"DoExpression\");\n }\n\n // Parse the `super` keyword\n parseSuper(): N.Super {\n const node = this.startNode<N.Super>();\n this.next(); // eat `super`\n if (\n this.match(tt.parenL) &&\n !this.scope.allowDirectSuper &&\n !this.options.allowSuperOutsideMethod\n ) {\n this.raise(Errors.SuperNotAllowed, { at: node });\n } else if (\n !this.scope.allowSuper &&\n !this.options.allowSuperOutsideMethod\n ) {\n this.raise(Errors.UnexpectedSuper, { at: node });\n }\n\n if (\n !this.match(tt.parenL) &&\n !this.match(tt.bracketL) &&\n !this.match(tt.dot)\n ) {\n this.raise(Errors.UnsupportedSuper, { at: node });\n }\n\n return this.finishNode(node, \"Super\");\n }\n\n parsePrivateName(): N.PrivateName {\n const node = this.startNode<N.PrivateName>();\n const id = this.startNodeAt<N.Identifier>(\n // The position is hardcoded because we merge `#` and name into a single\n // tt.privateName token\n createPositionWithColumnOffset(this.state.startLoc, 1),\n );\n const name = this.state.value;\n this.next(); // eat #name;\n node.id = this.createIdentifier(id, name);\n return this.finishNode(node, \"PrivateName\");\n }\n\n parseFunctionOrFunctionSent(\n this: Parser,\n ): N.FunctionExpression | N.MetaProperty {\n const node = this.startNode<N.FunctionExpression | N.MetaProperty>();\n\n // We do not do parseIdentifier here because when parseFunctionOrFunctionSent\n // is called we already know that the current token is a \"name\" with the value \"function\"\n // This will improve perf a tiny little bit as we do not do validation but more importantly\n // here is that parseIdentifier will remove an item from the expression stack\n // if \"function\" or \"class\" is parsed as identifier (in objects e.g.), which should not happen here.\n this.next(); // eat `function`\n\n if (this.prodParam.hasYield && this.match(tt.dot)) {\n const meta = this.createIdentifier(\n this.startNodeAtNode<N.Identifier>(node),\n \"function\",\n );\n this.next(); // eat `.`\n // https://github.com/tc39/proposal-function.sent#syntax-1\n if (this.match(tt._sent)) {\n this.expectPlugin(\"functionSent\");\n } else if (!this.hasPlugin(\"functionSent\")) {\n // The code wasn't `function.sent` but just `function.`, so a simple error is less confusing.\n this.unexpected();\n }\n return this.parseMetaProperty(\n node as Undone<N.MetaProperty>,\n meta,\n \"sent\",\n );\n }\n return this.parseFunction(node as Undone<N.FunctionExpression>);\n }\n\n parseMetaProperty(\n node: Undone<N.MetaProperty>,\n meta: N.Identifier,\n propertyName: string,\n ): N.MetaProperty {\n node.meta = meta;\n\n const containsEsc = this.state.containsEsc;\n\n node.property = this.parseIdentifier(true);\n\n if (node.property.name !== propertyName || containsEsc) {\n this.raise(Errors.UnsupportedMetaProperty, {\n at: node.property,\n target: meta.name,\n onlyValidPropertyName: propertyName,\n });\n }\n\n return this.finishNode(node, \"MetaProperty\");\n }\n\n // https://tc39.es/ecma262/#prod-ImportMeta\n parseImportMetaProperty(\n this: Parser,\n node: Undone<N.MetaProperty | N.ImportExpression>,\n ): N.MetaProperty | N.ImportExpression {\n const id = this.createIdentifier(\n this.startNodeAtNode<N.Identifier>(node),\n \"import\",\n );\n this.next(); // eat `.`\n\n if (this.isContextual(tt._meta)) {\n if (!this.inModule) {\n this.raise(Errors.ImportMetaOutsideModule, { at: id });\n }\n this.sawUnambiguousESM = true;\n } else if (this.isContextual(tt._source) || this.isContextual(tt._defer)) {\n const isSource = this.isContextual(tt._source);\n\n // TODO: The proposal doesn't mention import.defer yet because it was\n // pending on a decision for import.source. Wait to enable it until it's\n // included in the proposal.\n if (!isSource) this.unexpected();\n\n this.expectPlugin(\n isSource ? \"sourcePhaseImports\" : \"deferredImportEvaluation\",\n );\n if (!this.options.createImportExpressions) {\n throw this.raise(Errors.DynamicImportPhaseRequiresImportExpressions, {\n at: this.state.startLoc,\n phase: this.state.value,\n });\n }\n this.next();\n (node as Undone<N.ImportExpression>).phase = isSource\n ? \"source\"\n : \"defer\";\n return this.parseImportCall(node as Undone<N.ImportExpression>);\n }\n\n return this.parseMetaProperty(node as Undone<N.MetaProperty>, id, \"meta\");\n }\n\n parseLiteralAtNode<T extends N.Node>(\n value: any,\n type: T[\"type\"],\n node: any,\n ): T {\n this.addExtra(node, \"rawValue\", value);\n this.addExtra(node, \"raw\", this.input.slice(node.start, this.state.end));\n node.value = value;\n this.next();\n return this.finishNode<T>(node, type);\n }\n\n parseLiteral<T extends N.Node>(value: any, type: T[\"type\"]): T {\n const node = this.startNode();\n return this.parseLiteralAtNode(value, type, node);\n }\n\n parseStringLiteral(value: any) {\n return this.parseLiteral<N.StringLiteral>(value, \"StringLiteral\");\n }\n\n parseNumericLiteral(value: any) {\n return this.parseLiteral<N.NumericLiteral>(value, \"NumericLiteral\");\n }\n\n parseBigIntLiteral(value: any) {\n return this.parseLiteral<N.BigIntLiteral>(value, \"BigIntLiteral\");\n }\n\n parseDecimalLiteral(value: any) {\n return this.parseLiteral<N.DecimalLiteral>(value, \"DecimalLiteral\");\n }\n\n parseRegExpLiteral(value: {\n value: any;\n pattern: string;\n flags: N.RegExpLiteral[\"flags\"];\n }) {\n const node = this.parseLiteral<N.RegExpLiteral>(\n value.value,\n \"RegExpLiteral\",\n );\n node.pattern = value.pattern;\n node.flags = value.flags;\n return node;\n }\n\n parseBooleanLiteral(value: boolean) {\n const node = this.startNode<N.BooleanLiteral>();\n node.value = value;\n this.next();\n return this.finishNode(node, \"BooleanLiteral\");\n }\n\n parseNullLiteral() {\n const node = this.startNode<N.NullLiteral>();\n this.next();\n return this.finishNode(node, \"NullLiteral\");\n }\n\n // https://tc39.es/ecma262/#prod-CoverParenthesizedExpressionAndArrowParameterList\n parseParenAndDistinguishExpression(\n this: Parser,\n canBeArrow: boolean,\n ): N.Expression {\n const startLoc = this.state.startLoc;\n\n let val;\n this.next(); // eat `(`\n this.expressionScope.enter(newArrowHeadScope());\n\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.maybeInArrowParameters = true;\n this.state.inFSharpPipelineDirectBody = false;\n\n const innerStartLoc = this.state.startLoc;\n const exprList: N.Expression[] = [];\n const refExpressionErrors = new ExpressionErrors();\n let first = true;\n let spreadStartLoc;\n let optionalCommaStartLoc;\n\n while (!this.match(tt.parenR)) {\n if (first) {\n first = false;\n } else {\n this.expect(\n tt.comma,\n refExpressionErrors.optionalParametersLoc === null\n ? null\n : refExpressionErrors.optionalParametersLoc,\n );\n if (this.match(tt.parenR)) {\n optionalCommaStartLoc = this.state.startLoc;\n break;\n }\n }\n\n if (this.match(tt.ellipsis)) {\n const spreadNodeStartLoc = this.state.startLoc;\n spreadStartLoc = this.state.startLoc;\n exprList.push(\n this.parseParenItem(this.parseRestBinding(), spreadNodeStartLoc),\n );\n\n if (!this.checkCommaAfterRest(charCodes.rightParenthesis)) {\n break;\n }\n } else {\n exprList.push(\n this.parseMaybeAssignAllowIn(\n refExpressionErrors,\n this.parseParenItem,\n ),\n );\n }\n }\n\n const innerEndLoc = this.state.lastTokEndLoc;\n this.expect(tt.parenR);\n\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n let arrowNode = this.startNodeAt<N.ArrowFunctionExpression>(startLoc);\n if (\n canBeArrow &&\n this.shouldParseArrow(exprList) &&\n (arrowNode = this.parseArrow(arrowNode))\n ) {\n this.checkDestructuringPrivate(refExpressionErrors);\n this.expressionScope.validateAsPattern();\n this.expressionScope.exit();\n this.parseArrowExpression(arrowNode, exprList, false);\n // @ts-expect-error todo(flow->ts) improve node types\n return arrowNode;\n }\n this.expressionScope.exit();\n\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\n this.toReferencedListDeep(exprList, /* isParenthesizedExpr */ true);\n if (exprList.length > 1) {\n val = this.startNodeAt<N.SequenceExpression>(innerStartLoc);\n val.expressions = exprList;\n // finish node at current location so it can pick up comments after `)`\n this.finishNode(val, \"SequenceExpression\");\n this.resetEndLocation(val, innerEndLoc);\n } else {\n val = exprList[0];\n }\n\n return this.wrapParenthesis(\n startLoc,\n // @ts-expect-error todo(flow->ts)\n val,\n );\n }\n\n wrapParenthesis(startLoc: Position, expression: N.Expression): N.Expression {\n if (!this.options.createParenthesizedExpressions) {\n this.addExtra(expression, \"parenthesized\", true);\n this.addExtra(expression, \"parenStart\", startLoc.index);\n\n this.takeSurroundingComments(\n expression,\n startLoc.index,\n this.state.lastTokEndLoc.index,\n );\n\n return expression;\n }\n\n const parenExpression =\n this.startNodeAt<N.ParenthesizedExpression>(startLoc);\n parenExpression.expression = expression;\n return this.finishNode(parenExpression, \"ParenthesizedExpression\");\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars -- `params` is used in typescript plugin\n shouldParseArrow(params: Array<N.Node>): boolean {\n return !this.canInsertSemicolon();\n }\n\n parseArrow(\n node: Undone<N.ArrowFunctionExpression>,\n ): Undone<N.ArrowFunctionExpression> | undefined {\n if (this.eat(tt.arrow)) {\n return node;\n }\n }\n\n parseParenItem(\n node: N.Expression,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n startLoc: Position,\n ): N.Expression {\n return node;\n }\n\n parseNewOrNewTarget(this: Parser): N.NewExpression | N.MetaProperty {\n const node = this.startNode<N.NewExpression | N.MetaProperty>();\n this.next();\n if (this.match(tt.dot)) {\n // https://tc39.es/ecma262/#prod-NewTarget\n const meta = this.createIdentifier(\n this.startNodeAtNode<N.Identifier>(node),\n \"new\",\n );\n this.next();\n const metaProp = this.parseMetaProperty(\n node as Undone<N.MetaProperty>,\n meta,\n \"target\",\n );\n\n if (\n !this.scope.inNonArrowFunction &&\n !this.scope.inClass &&\n !this.options.allowNewTargetOutsideFunction\n ) {\n this.raise(Errors.UnexpectedNewTarget, { at: metaProp });\n }\n\n return metaProp;\n }\n\n return this.parseNew(node as Undone<N.NewExpression>);\n }\n\n // New's precedence is slightly tricky. It must allow its argument to\n // be a `[]` or dot subscript expression, but not a call — at least,\n // not without wrapping it in parentheses. Thus, it uses the noCalls\n // argument to parseSubscripts to prevent it from consuming the\n // argument list.\n // https://tc39.es/ecma262/#prod-NewExpression\n parseNew(this: Parser, node: Undone<N.NewExpression>): N.NewExpression {\n this.parseNewCallee(node);\n\n if (this.eat(tt.parenL)) {\n const args = this.parseExprList(tt.parenR);\n this.toReferencedList(args);\n // (parseExprList should be all non-null in this case)\n node.arguments = args;\n } else {\n node.arguments = [];\n }\n\n return this.finishNode(node, \"NewExpression\");\n }\n\n parseNewCallee(this: Parser, node: Undone<N.NewExpression>): void {\n const isImport = this.match(tt._import);\n const callee = this.parseNoCallExpr();\n node.callee = callee;\n if (\n isImport &&\n (callee.type === \"Import\" || callee.type === \"ImportExpression\")\n ) {\n this.raise(Errors.ImportCallNotNewExpression, { at: callee });\n }\n }\n\n // Parse template expression.\n\n parseTemplateElement(isTagged: boolean): N.TemplateElement {\n const { start, startLoc, end, value } = this.state;\n const elemStart = start + 1;\n const elem = this.startNodeAt<N.TemplateElement>(\n createPositionWithColumnOffset(startLoc, 1),\n );\n if (value === null) {\n if (!isTagged) {\n this.raise(Errors.InvalidEscapeSequenceTemplate, {\n // FIXME: Adding 1 is probably wrong.\n at: createPositionWithColumnOffset(\n this.state.firstInvalidTemplateEscapePos,\n 1,\n ),\n });\n }\n }\n\n const isTail = this.match(tt.templateTail);\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(\n finishedNode,\n createPositionWithColumnOffset(this.state.lastTokEndLoc, endOffset),\n );\n return finishedNode;\n }\n\n // https://tc39.es/ecma262/#prod-TemplateLiteral\n parseTemplate(this: Parser, isTagged: boolean): N.TemplateLiteral {\n const node = this.startNode<N.TemplateLiteral>();\n node.expressions = [];\n let curElt = this.parseTemplateElement(isTagged);\n node.quasis = [curElt];\n while (!curElt.tail) {\n node.expressions.push(this.parseTemplateSubstitution());\n this.readTemplateContinuation();\n node.quasis.push((curElt = this.parseTemplateElement(isTagged)));\n }\n return this.finishNode(node, \"TemplateLiteral\");\n }\n\n // This is overwritten by the TypeScript plugin to parse template types\n parseTemplateSubstitution(this: Parser): N.Expression {\n return this.parseExpression();\n }\n\n // Parse an object literal, binding pattern, or record.\n\n parseObjectLike(\n close: TokenType,\n isPattern: true,\n isRecord?: boolean | null,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectPattern;\n parseObjectLike(\n close: TokenType,\n isPattern: false,\n isRecord?: false | null,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectExpression;\n parseObjectLike(\n close: TokenType,\n isPattern: false,\n isRecord?: true,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.RecordExpression;\n parseObjectLike<T extends N.ObjectPattern | N.ObjectExpression>(\n this: Parser,\n close: TokenType,\n isPattern: boolean,\n isRecord?: boolean | null,\n refExpressionErrors?: ExpressionErrors | null,\n ): T {\n if (isRecord) {\n this.expectPlugin(\"recordAndTuple\");\n }\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = false;\n const propHash: any = Object.create(null);\n let first = true;\n const node = this.startNode<\n N.ObjectExpression | N.ObjectPattern | N.RecordExpression\n >();\n\n node.properties = [];\n this.next();\n\n while (!this.match(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n if (this.match(close)) {\n this.addTrailingCommaExtraToNode(\n // @ts-expect-error todo(flow->ts) improve node types\n node,\n );\n break;\n }\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\n if (\n isRecord &&\n !this.isObjectProperty(prop) &&\n prop.type !== \"SpreadElement\"\n ) {\n this.raise(Errors.InvalidRecordProperty, { at: prop });\n }\n\n // @ts-expect-error shorthand may not index prop\n if (prop.shorthand) {\n this.addExtra(prop, \"shorthand\", true);\n }\n\n // @ts-expect-error Fixme: refine typings\n node.properties.push(prop);\n }\n\n this.next();\n\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n let type = \"ObjectExpression\";\n if (isPattern) {\n type = \"ObjectPattern\";\n } else if (isRecord) {\n type = \"RecordExpression\";\n }\n // @ts-expect-error type is well defined\n return this.finishNode(node, type);\n }\n\n addTrailingCommaExtraToNode(node: N.Node): void {\n this.addExtra(node, \"trailingComma\", this.state.lastTokStart);\n this.addExtra(node, \"trailingCommaLoc\", this.state.lastTokStartLoc, false);\n }\n\n // Check grammar production:\n // IdentifierName *_opt PropertyName\n // It is used in `parsePropertyDefinition` to detect AsyncMethod and Accessors\n maybeAsyncOrAccessorProp(prop: Undone<N.ObjectProperty>): boolean {\n return (\n !prop.computed &&\n prop.key.type === \"Identifier\" &&\n (this.isLiteralPropertyName() ||\n this.match(tt.bracketL) ||\n this.match(tt.star))\n );\n }\n\n // https://tc39.es/ecma262/#prod-PropertyDefinition\n parsePropertyDefinition(\n this: Parser,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectMember | N.SpreadElement {\n let decorators = [];\n if (this.match(tt.at)) {\n if (this.hasPlugin(\"decorators\")) {\n this.raise(Errors.UnsupportedPropertyDecorator, {\n at: this.state.startLoc,\n });\n }\n\n // we needn't check if decorators (stage 0) plugin is enabled since it's checked by\n // the call to this.parseDecorator\n while (this.match(tt.at)) {\n decorators.push(this.parseDecorator());\n }\n }\n\n const prop = this.startNode<N.ObjectProperty>();\n let isAsync = false;\n let isAccessor = false;\n let startLoc;\n\n if (this.match(tt.ellipsis)) {\n if (decorators.length) this.unexpected();\n return this.parseSpread();\n }\n\n if (decorators.length) {\n prop.decorators = decorators;\n decorators = [];\n }\n\n prop.method = false;\n\n if (refExpressionErrors) {\n startLoc = this.state.startLoc;\n }\n\n let isGenerator = this.eat(tt.star);\n this.parsePropertyNamePrefixOperator(prop);\n const containsEsc = this.state.containsEsc;\n const key = this.parsePropertyName(prop, refExpressionErrors);\n\n if (!isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) {\n const keyName = key.name;\n // https://tc39.es/ecma262/#prod-AsyncMethod\n // https://tc39.es/ecma262/#prod-AsyncGeneratorMethod\n if (keyName === \"async\" && !this.hasPrecedingLineBreak()) {\n isAsync = true;\n this.resetPreviousNodeTrailingComments(key);\n isGenerator = this.eat(tt.star);\n this.parsePropertyName(prop);\n }\n // get PropertyName[?Yield, ?Await] () { FunctionBody[~Yield, ~Await] }\n // set PropertyName[?Yield, ?Await] ( PropertySetParameterList ) { FunctionBody[~Yield, ~Await] }\n if (keyName === \"get\" || keyName === \"set\") {\n isAccessor = true;\n this.resetPreviousNodeTrailingComments(key);\n prop.kind = keyName;\n if (this.match(tt.star)) {\n isGenerator = true;\n this.raise(Errors.AccessorIsGenerator, {\n at: this.state.curPosition(),\n kind: keyName,\n });\n this.next();\n }\n this.parsePropertyName(prop);\n }\n }\n\n return this.parseObjPropValue(\n prop,\n startLoc,\n isGenerator,\n isAsync,\n false /* isPattern */,\n isAccessor,\n refExpressionErrors,\n );\n }\n\n getGetterSetterExpectedParamCount(\n method: N.ObjectMethod | N.ClassMethod,\n ): number {\n return method.kind === \"get\" ? 0 : 1;\n }\n\n // This exists so we can override within the ESTree plugin\n getObjectOrClassMethodParams(method: N.ObjectMethod | N.ClassMethod) {\n return method.params;\n }\n\n // get methods aren't allowed to have any parameters\n // set methods must have exactly 1 parameter which is not a rest parameter\n checkGetterSetterParams(method: N.ObjectMethod | N.ClassMethod): void {\n const paramCount = this.getGetterSetterExpectedParamCount(method);\n const params = this.getObjectOrClassMethodParams(method);\n\n if (params.length !== paramCount) {\n this.raise(\n method.kind === \"get\" ? Errors.BadGetterArity : Errors.BadSetterArity,\n { at: method },\n );\n }\n\n if (\n method.kind === \"set\" &&\n params[params.length - 1]?.type === \"RestElement\"\n ) {\n this.raise(Errors.BadSetterRestParameter, { at: method });\n }\n }\n\n // https://tc39.es/ecma262/#prod-MethodDefinition\n parseObjectMethod(\n this: Parser,\n prop: Undone<N.ObjectMethod>,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n ): N.ObjectMethod | undefined | null {\n if (isAccessor) {\n // isAccessor implies isAsync: false, isPattern: false, isGenerator: false\n const finishedProp = this.parseMethod(\n prop,\n // This _should_ be false, but with error recovery, we allow it to be\n // set for informational purposes\n isGenerator,\n /* isAsync */ false,\n /* isConstructor */ false,\n false,\n \"ObjectMethod\",\n );\n this.checkGetterSetterParams(finishedProp);\n return finishedProp;\n }\n\n if (isAsync || isGenerator || this.match(tt.parenL)) {\n if (isPattern) this.unexpected();\n prop.kind = \"method\";\n prop.method = true;\n return this.parseMethod(\n prop,\n isGenerator,\n isAsync,\n /* isConstructor */ false,\n false,\n \"ObjectMethod\",\n );\n }\n }\n\n // if `isPattern` is true, parse https://tc39.es/ecma262/#prod-BindingProperty\n // else https://tc39.es/ecma262/#prod-PropertyDefinition\n parseObjectProperty(\n this: Parser,\n prop: Undone<N.ObjectProperty>,\n startLoc: Position | undefined | null,\n isPattern: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectProperty | undefined | null {\n prop.shorthand = false;\n\n if (this.eat(tt.colon)) {\n prop.value = isPattern\n ? this.parseMaybeDefault(this.state.startLoc)\n : this.parseMaybeAssignAllowIn(refExpressionErrors);\n\n return this.finishNode(prop, \"ObjectProperty\");\n }\n\n if (!prop.computed && prop.key.type === \"Identifier\") {\n // PropertyDefinition:\n // IdentifierReference\n // CoverInitializedName\n // Note: `{ eval } = {}` will be checked in `checkLVal` later.\n this.checkReservedWord(prop.key.name, prop.key.loc.start, true, false);\n\n if (isPattern) {\n prop.value = this.parseMaybeDefault(\n startLoc,\n cloneIdentifier(prop.key),\n );\n } else if (this.match(tt.eq)) {\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, {\n at: shorthandAssignLoc,\n });\n }\n prop.value = this.parseMaybeDefault(\n startLoc,\n cloneIdentifier(prop.key),\n );\n } else {\n prop.value = cloneIdentifier(prop.key);\n }\n prop.shorthand = true;\n\n return this.finishNode(prop, \"ObjectProperty\");\n }\n }\n\n parseObjPropValue(\n this: Parser,\n prop: Undone<N.ObjectMethod | N.ObjectProperty>,\n startLoc: Position | undefined | null,\n isGenerator: boolean,\n isAsync: boolean,\n isPattern: boolean,\n isAccessor: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ObjectMethod | N.ObjectProperty {\n const node =\n this.parseObjectMethod(\n prop as Undone<N.ObjectMethod>,\n isGenerator,\n isAsync,\n isPattern,\n isAccessor,\n ) ||\n this.parseObjectProperty(\n prop as Undone<N.ObjectProperty>,\n startLoc,\n isPattern,\n refExpressionErrors,\n );\n\n if (!node) this.unexpected();\n\n return node;\n }\n\n // https://tc39.es/ecma262/#prod-PropertyName\n // when refExpressionErrors presents, it will parse private name\n // and record the position of the first private name\n parsePropertyName(\n this: Parser,\n prop:\n | Undone<N.ObjectOrClassMember | N.ClassMember>\n | N.TsNamedTypeElementBase,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.Expression | N.Identifier {\n if (this.eat(tt.bracketL)) {\n (prop as Undone<N.ObjectOrClassMember>).computed = true;\n prop.key = this.parseMaybeAssignAllowIn();\n this.expect(tt.bracketR);\n } else {\n // We check if it's valid for it to be a private name when we push it.\n const { type, value } = this.state;\n let key;\n // most un-computed property names are identifiers\n if (tokenIsKeywordOrIdentifier(type)) {\n key = this.parseIdentifier(true);\n } else {\n switch (type) {\n case tt.num:\n key = this.parseNumericLiteral(value);\n break;\n case tt.string:\n key = this.parseStringLiteral(value);\n break;\n case tt.bigint:\n key = this.parseBigIntLiteral(value);\n break;\n case tt.decimal:\n key = this.parseDecimalLiteral(value);\n break;\n case tt.privateName: {\n // the class private key has been handled in parseClassElementName\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, {\n at: privateKeyLoc,\n });\n }\n key = this.parsePrivateName();\n break;\n }\n default:\n this.unexpected();\n }\n }\n (prop as any).key = key;\n if (type !== tt.privateName) {\n // ClassPrivateProperty is never computed, so we don't assign in that case.\n prop.computed = false;\n }\n }\n\n return prop.key;\n }\n\n // Initialize empty function node.\n\n initFunction(node: N.BodilessFunctionOrMethodBase, isAsync: boolean): void {\n node.id = null;\n node.generator = false;\n node.async = isAsync;\n }\n\n // Parse object or class method.\n\n parseMethod<T extends N.ObjectMethod | N.ClassMethod | N.ClassPrivateMethod>(\n this: Parser,\n node: Undone<T>,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowDirectSuper: boolean,\n type: T[\"type\"],\n inClassScope: boolean = false,\n ): T {\n this.initFunction(node, isAsync);\n node.generator = isGenerator;\n this.scope.enter(\n ScopeFlag.FUNCTION |\n ScopeFlag.SUPER |\n (inClassScope ? ScopeFlag.CLASS : 0) |\n (allowDirectSuper ? ScopeFlag.DIRECT_SUPER : 0),\n );\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\n return finishedNode;\n }\n\n // parse an array literal or tuple literal\n // https://tc39.es/ecma262/#prod-ArrayLiteral\n // https://tc39.es/proposal-record-tuple/#prod-TupleLiteral\n parseArrayLike(\n this: Parser,\n close: TokenType,\n canBePattern: boolean,\n isTuple: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n ): N.ArrayExpression | N.TupleExpression {\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.ArrayExpression | N.TupleExpression>();\n this.next();\n node.elements = this.parseExprList(\n close,\n /* allowEmpty */ !isTuple,\n refExpressionErrors,\n // @ts-expect-error todo(flow->ts)\n node,\n );\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n return this.finishNode(\n node,\n isTuple ? \"TupleExpression\" : \"ArrayExpression\",\n );\n }\n\n // Parse arrow function expression.\n // If the parameters are provided, they will be converted to an\n // assignable list.\n parseArrowExpression(\n this: Parser,\n node: Undone<N.ArrowFunctionExpression>,\n params: N.Expression[] | undefined | null,\n isAsync: boolean,\n trailingCommaLoc?: Position | null,\n ): N.ArrowFunctionExpression {\n this.scope.enter(ScopeFlag.FUNCTION | ScopeFlag.ARROW);\n let flags = functionFlags(isAsync, false);\n // ConciseBody[In] :\n // [lookahead ≠ {] ExpressionBody[?In, ~Await]\n // { FunctionBody[~Yield, ~Await] }\n if (!this.match(tt.braceL) && this.prodParam.hasIn) {\n flags |= ParamKind.PARAM_IN;\n }\n this.prodParam.enter(flags);\n this.initFunction(node, isAsync);\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n\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\n this.prodParam.exit();\n this.scope.exit();\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n\n return this.finishNode(node, \"ArrowFunctionExpression\");\n }\n\n setArrowFunctionParameters(\n node: Undone<N.ArrowFunctionExpression>,\n params: N.Expression[],\n trailingCommaLoc?: Position | null,\n ): void {\n this.toAssignableList(params, trailingCommaLoc, false);\n node.params = params as (N.Pattern | N.TSParameterProperty)[];\n }\n\n parseFunctionBodyAndFinish<\n T extends\n | N.Function\n | N.TSDeclareMethod\n | N.TSDeclareFunction\n | N.ClassPrivateMethod,\n >(node: Undone<T>, type: T[\"type\"], isMethod: boolean = false): T {\n // @ts-expect-error (node is not bodiless if we get here)\n this.parseFunctionBody(node, false, isMethod);\n return this.finishNode(node, type);\n }\n\n // Parse function body and check parameters.\n parseFunctionBody(\n this: Parser,\n node: Undone<N.Function>,\n allowExpression?: boolean | null,\n isMethod: boolean = false,\n ): void {\n const isExpression = allowExpression && !this.match(tt.braceL);\n this.expressionScope.enter(newExpressionScope());\n\n if (isExpression) {\n // https://tc39.es/ecma262/#prod-ExpressionBody\n (node as Undone<N.ArrowFunctionExpression>).body =\n this.parseMaybeAssign();\n this.checkParams(node, false, allowExpression, false);\n } else {\n const oldStrict = this.state.strict;\n // Start a new scope with regard to labels\n // flag (restore them to their old value afterwards).\n const oldLabels = this.state.labels;\n this.state.labels = [];\n\n // FunctionBody[Yield, Await]:\n // StatementList[?Yield, ?Await, +Return] opt\n this.prodParam.enter(\n this.prodParam.currentFlags() | ParamKind.PARAM_RETURN,\n );\n node.body = this.parseBlock(\n true,\n false,\n // Strict mode function checks after we parse the statements in the function body.\n (hasStrictModeDirective: boolean) => {\n const nonSimple = !this.isSimpleParamList(node.params);\n\n if (hasStrictModeDirective && nonSimple) {\n // This logic is here to align the error location with the ESTree plugin.\n this.raise(Errors.IllegalLanguageModeDirective, {\n at:\n // @ts-expect-error kind may not index node\n (node.kind === \"method\" || node.kind === \"constructor\") &&\n // @ts-expect-error key may not index node\n !!node.key\n ? // @ts-expect-error node.key has been guarded\n node.key.loc.end\n : node,\n });\n }\n\n const strictModeChanged = !oldStrict && this.state.strict;\n\n // Add the params to varDeclaredNames to ensure that an error is thrown\n // if a let/const declaration in the function clashes with one of the params.\n this.checkParams(\n node,\n !this.state.strict && !allowExpression && !isMethod && !nonSimple,\n allowExpression,\n strictModeChanged,\n );\n\n // Ensure the function name isn't a forbidden identifier in strict mode, e.g. 'eval'\n if (this.state.strict && node.id) {\n this.checkIdentifier(\n node.id,\n BindingFlag.TYPE_OUTSIDE,\n strictModeChanged,\n );\n }\n },\n );\n this.prodParam.exit();\n this.state.labels = oldLabels;\n }\n this.expressionScope.exit();\n }\n\n isSimpleParameter(node: N.Pattern | N.TSParameterProperty) {\n return node.type === \"Identifier\";\n }\n\n isSimpleParamList(\n params: ReadonlyArray<N.Pattern | N.TSParameterProperty>,\n ): boolean {\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\n checkParams(\n node: Undone<N.Function>,\n allowDuplicates: boolean,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n isArrowFunction?: boolean | null,\n strictModeChanged: boolean = true,\n ): void {\n const checkClashes = !allowDuplicates && new Set<string>();\n // We create a fake node with the \"ephemeral\" type `FormalParameters`[1]\n // since we just store an array of parameters. Perhaps someday we can have\n // something like class FormalParameters extends Array { ... }, which would\n // also be helpful when traversing this node.\n //\n // 1. https://tc39.es/ecma262/#prod-FormalParameters\n const formalParameters = { type: \"FormalParameters\" } as const;\n for (const param of node.params) {\n this.checkLVal(param, {\n in: formalParameters,\n binding: BindingFlag.TYPE_VAR,\n checkClashes,\n strictModeChanged,\n });\n }\n }\n\n // Parses a comma-separated list of expressions, and returns them as\n // an array. `close` is the token type that ends the list, and\n // `allowEmpty` can be turned on to allow subsequent commas with\n // nothing in between them to be parsed as `null` (which is needed\n // for array literals).\n\n parseExprList(\n this: Parser,\n close: TokenType,\n allowEmpty?: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n nodeForExtra?: N.Node | null,\n ): (N.Expression | null)[] {\n const elts: (N.Expression | null)[] = [];\n let first = true;\n\n while (!this.eat(close)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n if (this.match(close)) {\n if (nodeForExtra) {\n this.addTrailingCommaExtraToNode(nodeForExtra);\n }\n this.next();\n break;\n }\n }\n\n elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors));\n }\n return elts;\n }\n\n parseExprListItem(\n this: Parser,\n allowEmpty?: boolean,\n refExpressionErrors?: ExpressionErrors | null,\n allowPlaceholder?: boolean | null,\n ): N.Expression | null;\n parseExprListItem(\n this: Parser,\n allowEmpty?: false,\n refExpressionErrors?: ExpressionErrors | null,\n allowPlaceholder?: boolean | null,\n ): N.Expression;\n parseExprListItem(\n this: Parser,\n allowEmpty?: boolean | null,\n refExpressionErrors?: ExpressionErrors | null,\n allowPlaceholder?: boolean | null,\n ): N.Expression | null {\n let elt;\n if (this.match(tt.comma)) {\n if (!allowEmpty) {\n this.raise(Errors.UnexpectedToken, {\n at: this.state.curPosition(),\n unexpected: \",\",\n });\n }\n elt = null;\n } else if (this.match(tt.ellipsis)) {\n const spreadNodeStartLoc = this.state.startLoc;\n\n elt = this.parseParenItem(\n this.parseSpread(refExpressionErrors),\n spreadNodeStartLoc,\n );\n } else if (this.match(tt.question)) {\n this.expectPlugin(\"partialApplication\");\n if (!allowPlaceholder) {\n this.raise(Errors.UnexpectedArgumentPlaceholder, {\n at: this.state.startLoc,\n });\n }\n const node = this.startNode();\n this.next();\n elt = this.finishNode(node, \"ArgumentPlaceholder\");\n } else {\n elt = this.parseMaybeAssignAllowIn(\n refExpressionErrors,\n this.parseParenItem,\n );\n }\n return elt;\n }\n\n // Parse the next token as an identifier. If `liberal` is true (used\n // when parsing properties), it will also convert keywords into\n // identifiers.\n // This shouldn't be used to parse the keywords of meta properties, since they\n // are not identifiers and cannot contain escape sequences.\n\n parseIdentifier(liberal?: boolean): N.Identifier {\n const node = this.startNode<N.Identifier>();\n const name = this.parseIdentifierName(liberal);\n\n return this.createIdentifier(node, name);\n }\n\n createIdentifier(\n node: Omit<N.Identifier, \"type\">,\n name: string,\n ): N.Identifier {\n node.name = name;\n node.loc.identifierName = name;\n\n return this.finishNode(node, \"Identifier\");\n }\n\n parseIdentifierName(liberal?: boolean): string {\n let name: string;\n\n const { startLoc, type } = this.state;\n\n if (tokenIsKeywordOrIdentifier(type)) {\n name = this.state.value;\n } else {\n this.unexpected();\n }\n\n const tokenIsKeyword = tokenKeywordOrIdentifierIsKeyword(type);\n\n if (liberal) {\n // If the current token is not used as a keyword, set its type to \"tt.name\".\n // This will prevent this.next() from throwing about unexpected escapes.\n if (tokenIsKeyword) {\n this.replaceToken(tt.name);\n }\n } else {\n this.checkReservedWord(name, startLoc, tokenIsKeyword, false);\n }\n\n this.next();\n\n return name;\n }\n\n checkReservedWord(\n word: string,\n startLoc: Position,\n checkKeywords: boolean,\n isBinding: boolean,\n ): void {\n // Every JavaScript reserved word is 10 characters or less.\n if (word.length > 10) {\n return;\n }\n // Most identifiers are not reservedWord-like, they don't need special\n // treatments afterward, which very likely ends up throwing errors\n if (!canBeReservedWord(word)) {\n return;\n }\n\n if (checkKeywords && isKeyword(word)) {\n this.raise(Errors.UnexpectedKeyword, {\n at: startLoc,\n keyword: word,\n });\n return;\n }\n\n const reservedTest = !this.state.strict\n ? isReservedWord\n : isBinding\n ? isStrictBindReservedWord\n : isStrictReservedWord;\n\n if (reservedTest(word, this.inModule)) {\n this.raise(Errors.UnexpectedReservedWord, {\n at: startLoc,\n reservedWord: word,\n });\n return;\n } else if (word === \"yield\") {\n if (this.prodParam.hasYield) {\n this.raise(Errors.YieldBindingIdentifier, { at: startLoc });\n return;\n }\n } else if (word === \"await\") {\n if (this.prodParam.hasAwait) {\n this.raise(Errors.AwaitBindingIdentifier, { at: startLoc });\n return;\n }\n\n if (this.scope.inStaticBlock) {\n this.raise(Errors.AwaitBindingIdentifierInStaticBlock, {\n at: startLoc,\n });\n return;\n }\n\n this.expressionScope.recordAsyncArrowParametersError({ at: startLoc });\n } else if (word === \"arguments\") {\n if (this.scope.inClassAndNotInNonArrowFunction) {\n this.raise(Errors.ArgumentsInClass, { at: startLoc });\n return;\n }\n }\n }\n\n isAwaitAllowed(): boolean {\n if (this.prodParam.hasAwait) return true;\n if (this.options.allowAwaitOutsideFunction && !this.scope.inFunction) {\n return true;\n }\n return false;\n }\n\n // Parses await expression inside async function.\n\n parseAwait(this: Parser, startLoc: Position): N.AwaitExpression {\n const node = this.startNodeAt<N.AwaitExpression>(startLoc);\n\n this.expressionScope.recordParameterInitializerError(\n Errors.AwaitExpressionFormalParameter,\n {\n // @ts-expect-error todo(flow->ts)\n at: node,\n },\n );\n\n if (this.eat(tt.star)) {\n this.raise(Errors.ObsoleteAwaitStar, { at: node });\n }\n\n if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) {\n if (this.isAmbiguousAwait()) {\n this.ambiguousScriptDifferentAst = true;\n } else {\n this.sawUnambiguousESM = true;\n }\n }\n\n if (!this.state.soloAwait) {\n node.argument = this.parseMaybeUnary(null, true);\n }\n\n return this.finishNode(node, \"AwaitExpression\");\n }\n\n isAmbiguousAwait(): boolean {\n if (this.hasPrecedingLineBreak()) return true;\n const { type } = this.state;\n return (\n // All the following expressions are ambiguous:\n // await + 0, await - 0, await ( 0 ), await [ 0 ], await / 0 /u, await ``, await of []\n type === tt.plusMin ||\n type === tt.parenL ||\n type === tt.bracketL ||\n tokenIsTemplate(type) ||\n (type === tt._of && !this.state.containsEsc) ||\n // Sometimes the tokenizer generates tt.slash for regexps, and this is\n // handler by parseExprAtom\n type === tt.regexp ||\n type === tt.slash ||\n // This code could be parsed both as a modulo operator or as an intrinsic:\n // await %x(0)\n (this.hasPlugin(\"v8intrinsic\") && type === tt.modulo)\n );\n }\n\n // Parses yield expression inside generator.\n\n parseYield(this: Parser): N.YieldExpression {\n const node = this.startNode<N.YieldExpression>();\n\n this.expressionScope.recordParameterInitializerError(\n Errors.YieldInParameter,\n {\n // @ts-expect-error todo(flow->ts)\n at: node,\n },\n );\n\n this.next();\n let delegating = false;\n let argument: N.Expression | null = null;\n if (!this.hasPrecedingLineBreak()) {\n delegating = this.eat(tt.star);\n switch (this.state.type) {\n case tt.semi:\n case tt.eof:\n case tt.braceR:\n case tt.parenR:\n case tt.bracketR:\n case tt.braceBarR:\n case tt.colon:\n case tt.comma:\n // The above is the complete set of tokens that can\n // follow an AssignmentExpression, and none of them\n // can start an AssignmentExpression\n if (!delegating) break;\n /* fallthrough */\n default:\n argument = this.parseMaybeAssign();\n }\n }\n node.delegate = delegating;\n node.argument = argument;\n return this.finishNode(node, \"YieldExpression\");\n }\n\n // https://tc39.es/ecma262/#prod-ImportCall\n parseImportCall(\n this: Parser,\n node: Undone<N.ImportExpression>,\n ): N.ImportExpression {\n this.next(); // eat tt.parenL\n node.source = this.parseMaybeAssignAllowIn();\n if (\n this.hasPlugin(\"importAttributes\") ||\n this.hasPlugin(\"importAssertions\")\n ) {\n node.options = null;\n }\n if (this.eat(tt.comma)) {\n this.expectImportAttributesPlugin();\n if (!this.match(tt.parenR)) {\n node.options = this.parseMaybeAssignAllowIn();\n this.eat(tt.comma);\n }\n }\n this.expect(tt.parenR);\n return this.finishNode(node, \"ImportExpression\");\n }\n\n // Validates a pipeline (for any of the pipeline Babylon plugins) at the point\n // of the infix operator `|>`.\n\n checkPipelineAtInfixOperator(left: N.Expression, leftStartLoc: Position) {\n if (this.hasPlugin([\"pipelineOperator\", { proposal: \"smart\" }])) {\n if (left.type === \"SequenceExpression\") {\n // Ensure that the pipeline head is not a comma-delimited\n // sequence expression.\n this.raise(Errors.PipelineHeadSequenceExpression, {\n at: leftStartLoc,\n });\n }\n }\n }\n\n parseSmartPipelineBodyInStyle(childExpr: N.Expression, startLoc: Position) {\n if (this.isSimpleReference(childExpr)) {\n const bodyNode = this.startNodeAt<N.PipelineBareFunction>(startLoc);\n bodyNode.callee = childExpr;\n return this.finishNode(bodyNode, \"PipelineBareFunction\");\n } else {\n const bodyNode = this.startNodeAt<N.PipelineTopicExpression>(startLoc);\n this.checkSmartPipeTopicBodyEarlyErrors(startLoc);\n bodyNode.expression = childExpr;\n return this.finishNode(bodyNode, \"PipelineTopicExpression\");\n }\n }\n\n isSimpleReference(expression: N.Expression): boolean {\n switch (expression.type) {\n case \"MemberExpression\":\n return (\n !expression.computed && this.isSimpleReference(expression.object)\n );\n case \"Identifier\":\n return true;\n default:\n return false;\n }\n }\n\n // This helper method is to be called immediately\n // after a topic-style smart-mix pipe body is parsed.\n // The `startLoc` is the starting position of the pipe body.\n\n checkSmartPipeTopicBodyEarlyErrors(startLoc: Position): void {\n // If the following token is invalidly `=>`, then throw a human-friendly error\n // instead of something like 'Unexpected token, expected \";\"'.\n // For example, `x => x |> y => #` (assuming `#` is the topic reference)\n // groups into `x => (x |> y) => #`,\n // and `(x |> y) => #` is an invalid arrow function.\n // This is because smart-mix `|>` has tighter precedence than `=>`.\n if (this.match(tt.arrow)) {\n throw this.raise(Errors.PipelineBodyNoArrow, { at: this.state.startLoc });\n }\n\n // A topic-style smart-mix pipe body must use the topic reference at least once.\n if (!this.topicReferenceWasUsedInCurrentContext()) {\n this.raise(Errors.PipelineTopicUnused, { at: startLoc });\n }\n }\n\n // Enable topic references from outer contexts within Hack-style pipe bodies.\n // The function modifies the parser's topic-context state to enable or disable\n // the use of topic references.\n // The function then calls a callback, then resets the parser\n // to the old topic-context state that it had before the function was called.\n\n withTopicBindingContext<T>(callback: () => T): T {\n const outerContextTopicState = this.state.topicContext;\n this.state.topicContext = {\n // Enable the use of the primary topic reference.\n maxNumOfResolvableTopics: 1,\n // Hide the use of any topic references from outer contexts.\n maxTopicIndex: null,\n };\n\n try {\n return callback();\n } finally {\n this.state.topicContext = outerContextTopicState;\n }\n }\n\n // This helper method is used only with the deprecated smart-mix pipe proposal.\n // Disables topic references from outer contexts within syntax constructs\n // such as the bodies of iteration statements.\n // The function modifies the parser's topic-context state to enable or disable\n // the use of topic references with the smartPipelines plugin. They then run a\n // callback, then they reset the parser to the old topic-context state that it\n // had before the function was called.\n\n withSmartMixTopicForbiddingContext<T>(callback: () => T): T {\n if (this.hasPlugin([\"pipelineOperator\", { proposal: \"smart\" }])) {\n // Reset the parser’s topic context only if the smart-mix pipe proposal is active.\n const outerContextTopicState = this.state.topicContext;\n this.state.topicContext = {\n // Disable the use of the primary topic reference.\n maxNumOfResolvableTopics: 0,\n // Hide the use of any topic references from outer contexts.\n maxTopicIndex: null,\n };\n\n try {\n return callback();\n } finally {\n this.state.topicContext = outerContextTopicState;\n }\n } else {\n // If the pipe proposal is \"minimal\", \"fsharp\", or \"hack\",\n // or if no pipe proposal is active,\n // then the callback result is returned\n // without touching any extra parser state.\n return callback();\n }\n }\n\n withSoloAwaitPermittingContext<T>(callback: () => T): T {\n const outerContextSoloAwaitState = this.state.soloAwait;\n this.state.soloAwait = true;\n\n try {\n return callback();\n } finally {\n this.state.soloAwait = outerContextSoloAwaitState;\n }\n }\n\n allowInAnd<T>(callback: () => T): T {\n const flags = this.prodParam.currentFlags();\n const prodParamToSet = ParamKind.PARAM_IN & ~flags;\n if (prodParamToSet) {\n this.prodParam.enter(flags | ParamKind.PARAM_IN);\n try {\n return callback();\n } finally {\n this.prodParam.exit();\n }\n }\n return callback();\n }\n\n disallowInAnd<T>(callback: () => T): T {\n const flags = this.prodParam.currentFlags();\n const prodParamToClear = ParamKind.PARAM_IN & flags;\n if (prodParamToClear) {\n this.prodParam.enter(flags & ~ParamKind.PARAM_IN);\n try {\n return callback();\n } finally {\n this.prodParam.exit();\n }\n }\n return callback();\n }\n\n // Register the use of a topic reference within the current\n // topic-binding context.\n registerTopicReference(): void {\n this.state.topicContext.maxTopicIndex = 0;\n }\n\n topicReferenceIsAllowedInCurrentContext(): boolean {\n return this.state.topicContext.maxNumOfResolvableTopics >= 1;\n }\n\n topicReferenceWasUsedInCurrentContext(): boolean {\n return (\n this.state.topicContext.maxTopicIndex != null &&\n this.state.topicContext.maxTopicIndex >= 0\n );\n }\n\n parseFSharpPipelineBody(this: Parser, prec: number): N.Expression {\n const startLoc = this.state.startLoc;\n\n this.state.potentialArrowAt = this.state.start;\n const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody;\n this.state.inFSharpPipelineDirectBody = true;\n\n const ret = this.parseExprOp(\n this.parseMaybeUnaryOrPrivate(),\n startLoc,\n prec,\n );\n\n this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody;\n\n return ret;\n }\n\n // https://github.com/tc39/proposal-js-module-blocks\n parseModuleExpression(this: Parser): N.ModuleExpression {\n this.expectPlugin(\"moduleBlocks\");\n const node = this.startNode<N.ModuleExpression>();\n this.next(); // eat \"module\"\n if (!this.match(tt.braceL)) {\n this.unexpected(null, tt.braceL);\n }\n // start program node immediately after `{`\n const program = this.startNodeAt<N.Program>(this.state.endLoc);\n this.next(); // eat `{`\n\n const revertScopes = this.initializeScopes(/** inModule */ true);\n this.enterInitialScopes();\n\n try {\n node.body = this.parseProgram(program, tt.braceR, \"module\");\n } finally {\n revertScopes();\n }\n return this.finishNode<N.ModuleExpression>(node, \"ModuleExpression\");\n }\n\n // Used in Flow plugin\n parsePropertyNamePrefixOperator(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n prop: Undone<N.ObjectOrClassMember | N.ClassMember>,\n ): void {}\n}\n","import type * as N from \"../types.ts\";\nimport {\n tokenIsIdentifier,\n tokenIsKeywordOrIdentifier,\n tokenIsLoop,\n tokenIsTemplate,\n tt,\n type TokenType,\n getExportedToken,\n} from \"../tokenizer/types.ts\";\nimport ExpressionParser from \"./expression.ts\";\nimport { Errors } from \"../parse-error.ts\";\nimport { isIdentifierChar, isIdentifierStart } from \"../util/identifier.ts\";\nimport * as charCodes from \"charcodes\";\nimport {\n ScopeFlag,\n ClassElementType,\n BindingFlag,\n} from \"../util/scopeflags.ts\";\nimport { ExpressionErrors } from \"./util.ts\";\nimport { ParamKind, functionFlags } from \"../util/production-parameter.ts\";\nimport {\n newExpressionScope,\n newParameterDeclarationScope,\n} from \"../util/expression-scope.ts\";\nimport type { SourceType } from \"../options.ts\";\nimport { Token } from \"../tokenizer/index.ts\";\nimport type { Position } from \"../util/location.ts\";\nimport { createPositionWithColumnOffset } from \"../util/location.ts\";\nimport { cloneStringLiteral, cloneIdentifier, type Undone } from \"./node.ts\";\nimport type Parser from \"./index.ts\";\nimport { ParseBindingListFlags } from \"./lval.ts\";\n\nconst loopLabel = { kind: \"loop\" } as const,\n switchLabel = { kind: \"switch\" } as const;\n\nexport const enum ParseFunctionFlag {\n Expression = 0b0000,\n Declaration = 0b0001,\n HangingDeclaration = 0b0010,\n NullableId = 0b0100,\n Async = 0b1000,\n}\n\nexport const enum ParseStatementFlag {\n StatementOnly = 0b0000,\n AllowImportExport = 0b0001,\n AllowDeclaration = 0b0010,\n AllowFunctionDeclaration = 0b0100,\n AllowLabeledFunction = 0b1000,\n}\n\nconst loneSurrogate = /[\\uD800-\\uDFFF]/u;\n\nconst keywordRelationalOperator = /in(?:stanceof)?/y;\n\n/**\n * Convert tokens for backward Babel 7 compat.\n * tt.privateName => tt.hash + tt.name\n * tt.templateTail => tt.backquote/tt.braceR + tt.template + tt.backquote\n * tt.templateNonTail => tt.backquote/tt.braceR + tt.template + tt.dollarBraceL\n * For performance reasons this routine mutates `tokens`, it is okay\n * here since we execute `parseTopLevel` once for every file.\n */\nfunction babel7CompatTokens(tokens: (Token | N.Comment)[], input: string) {\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const { type } = token;\n if (typeof type === \"number\") {\n if (!process.env.BABEL_8_BREAKING) {\n if (type === tt.privateName) {\n const { loc, start, value, end } = token;\n const hashEndPos = start + 1;\n const hashEndLoc = createPositionWithColumnOffset(loc.start, 1);\n tokens.splice(\n i,\n 1,\n new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.hash),\n value: \"#\",\n start: start,\n end: hashEndPos,\n startLoc: loc.start,\n endLoc: hashEndLoc,\n }),\n new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.name),\n value: value,\n start: hashEndPos,\n end: end,\n startLoc: hashEndLoc,\n endLoc: loc.end,\n }),\n );\n i++;\n continue;\n }\n\n if (tokenIsTemplate(type)) {\n const { loc, start, value, end } = token;\n const backquoteEnd = start + 1;\n const backquoteEndLoc = createPositionWithColumnOffset(loc.start, 1);\n let startToken;\n if (input.charCodeAt(start) === charCodes.graveAccent) {\n startToken = new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.backQuote),\n value: \"`\",\n start: start,\n end: backquoteEnd,\n startLoc: loc.start,\n endLoc: backquoteEndLoc,\n });\n } else {\n startToken = new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.braceR),\n value: \"}\",\n start: start,\n end: backquoteEnd,\n startLoc: loc.start,\n endLoc: backquoteEndLoc,\n });\n }\n let templateValue,\n templateElementEnd,\n templateElementEndLoc,\n endToken;\n if (type === tt.templateTail) {\n // ends with '`'\n templateElementEnd = end - 1;\n templateElementEndLoc = createPositionWithColumnOffset(loc.end, -1);\n templateValue = value === null ? null : value.slice(1, -1);\n endToken = new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.backQuote),\n value: \"`\",\n start: templateElementEnd,\n end: end,\n startLoc: templateElementEndLoc,\n endLoc: loc.end,\n });\n } else {\n // ends with `${`\n templateElementEnd = end - 2;\n templateElementEndLoc = createPositionWithColumnOffset(loc.end, -2);\n templateValue = value === null ? null : value.slice(1, -2);\n endToken = new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.dollarBraceL),\n value: \"${\",\n start: templateElementEnd,\n end: end,\n startLoc: templateElementEndLoc,\n endLoc: loc.end,\n });\n }\n tokens.splice(\n i,\n 1,\n startToken,\n new Token({\n // @ts-expect-error: hacky way to create token\n type: getExportedToken(tt.template),\n value: templateValue,\n start: backquoteEnd,\n end: templateElementEnd,\n startLoc: backquoteEndLoc,\n endLoc: templateElementEndLoc,\n }),\n endToken,\n );\n i += 2;\n continue;\n }\n }\n // @ts-expect-error: we manipulate `token` for performance reasons\n token.type = getExportedToken(type);\n }\n }\n return tokens;\n}\nexport default abstract class StatementParser extends ExpressionParser {\n // ### Statement parsing\n\n // Parse a program. Initializes the parser, reads any number of\n // statements, and wraps them in a Program node. Optionally takes a\n // `program` argument. If present, the statements will be appended\n // to its body instead of creating a new node.\n\n parseTopLevel(this: Parser, file: N.File, program: N.Program): N.File {\n file.program = this.parseProgram(program);\n file.comments = this.state.comments;\n\n if (this.options.tokens) {\n file.tokens = babel7CompatTokens(this.tokens, this.input);\n }\n\n return this.finishNode(file, \"File\");\n }\n\n parseProgram(\n this: Parser,\n program: Undone<N.Program>,\n end: TokenType = tt.eof,\n sourceType: SourceType = this.options.sourceType,\n ): N.Program {\n program.sourceType = sourceType;\n program.interpreter = this.parseInterpreterDirective();\n this.parseBlockBody(program, true, true, end);\n if (\n this.inModule &&\n !this.options.allowUndeclaredExports &&\n this.scope.undefinedExports.size > 0\n ) {\n for (const [localName, at] of Array.from(this.scope.undefinedExports)) {\n this.raise(Errors.ModuleExportUndefined, { at, localName });\n }\n }\n let finishedProgram: N.Program;\n if (end === tt.eof) {\n // finish at eof for top level program\n finishedProgram = this.finishNode(program, \"Program\");\n } else {\n // finish immediately before the end token\n finishedProgram = this.finishNodeAt(\n program,\n \"Program\",\n createPositionWithColumnOffset(this.state.startLoc, -1),\n );\n }\n return finishedProgram;\n }\n\n /**\n * cast a Statement to a Directive. This method mutates input statement.\n */\n stmtToDirective(stmt: N.Statement): N.Directive {\n const directive = stmt as any;\n directive.type = \"Directive\";\n directive.value = directive.expression;\n delete directive.expression;\n\n const directiveLiteral = directive.value;\n const expressionValue = directiveLiteral.value;\n const raw = this.input.slice(directiveLiteral.start, directiveLiteral.end);\n const val = (directiveLiteral.value = raw.slice(1, -1)); // remove quotes\n\n this.addExtra(directiveLiteral, \"raw\", raw);\n this.addExtra(directiveLiteral, \"rawValue\", val);\n this.addExtra(directiveLiteral, \"expressionValue\", expressionValue);\n\n directiveLiteral.type = \"DirectiveLiteral\";\n\n return directive;\n }\n\n parseInterpreterDirective(): N.InterpreterDirective | null {\n if (!this.match(tt.interpreterDirective)) {\n return null;\n }\n\n const node = this.startNode<N.InterpreterDirective>();\n node.value = this.state.value;\n this.next();\n return this.finishNode(node, \"InterpreterDirective\");\n }\n\n isLet(): boolean {\n if (!this.isContextual(tt._let)) {\n return false;\n }\n return this.hasFollowingBindingAtom();\n }\n\n chStartsBindingIdentifier(ch: number, pos: number) {\n if (isIdentifierStart(ch)) {\n keywordRelationalOperator.lastIndex = pos;\n if (keywordRelationalOperator.test(this.input)) {\n // We have seen `in` or `instanceof` so far, now check if the identifier\n // ends here\n const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex);\n if (!isIdentifierChar(endCh) && endCh !== charCodes.backslash) {\n return false;\n }\n }\n return true;\n } else if (ch === charCodes.backslash) {\n return true;\n } else {\n return false;\n }\n }\n\n chStartsBindingPattern(ch: number) {\n return (\n ch === charCodes.leftSquareBracket || ch === charCodes.leftCurlyBrace\n );\n }\n\n /**\n * Assuming we have seen a contextual `let` and declaration is allowed, check if it\n * starts a variable declaration so that it should be interpreted as a keyword.\n */\n hasFollowingBindingAtom(): boolean {\n const next = this.nextTokenStart();\n const nextCh = this.codePointAtPos(next);\n return (\n this.chStartsBindingPattern(nextCh) ||\n this.chStartsBindingIdentifier(nextCh, next)\n );\n }\n\n /**\n * Assuming we have seen a contextual `using` and declaration is allowed, check if it\n * starts a variable declaration in the same line so that it should be interpreted as\n * a keyword.\n */\n hasInLineFollowingBindingIdentifier(): boolean {\n const next = this.nextTokenInLineStart();\n const nextCh = this.codePointAtPos(next);\n return this.chStartsBindingIdentifier(nextCh, next);\n }\n\n startsUsingForOf(): boolean {\n const { type, containsEsc } = this.lookahead();\n if (type === tt._of && !containsEsc) {\n // `using of` must start a for-lhs-of statement\n return false;\n } else if (tokenIsIdentifier(type) && !this.hasFollowingLineBreak()) {\n this.expectPlugin(\"explicitResourceManagement\");\n return true;\n }\n }\n\n startsAwaitUsing(): boolean {\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\n // https://tc39.es/ecma262/#prod-ModuleItem\n parseModuleItem(this: Parser) {\n return this.parseStatementLike(\n ParseStatementFlag.AllowImportExport |\n ParseStatementFlag.AllowDeclaration |\n ParseStatementFlag.AllowFunctionDeclaration |\n // This function is actually also used to parse StatementItems,\n // which with Annex B enabled allows labeled functions.\n ParseStatementFlag.AllowLabeledFunction,\n );\n }\n\n // https://tc39.es/ecma262/#prod-StatementListItem\n parseStatementListItem(this: Parser) {\n return this.parseStatementLike(\n ParseStatementFlag.AllowDeclaration |\n ParseStatementFlag.AllowFunctionDeclaration |\n (!this.options.annexB || this.state.strict\n ? 0\n : ParseStatementFlag.AllowLabeledFunction),\n );\n }\n\n parseStatementOrSloppyAnnexBFunctionDeclaration(\n this: Parser,\n allowLabeledFunction: boolean = false,\n ) {\n let flags: ParseStatementFlag = ParseStatementFlag.StatementOnly;\n if (this.options.annexB && !this.state.strict) {\n flags |= ParseStatementFlag.AllowFunctionDeclaration;\n if (allowLabeledFunction) {\n flags |= ParseStatementFlag.AllowLabeledFunction;\n }\n }\n return this.parseStatementLike(flags);\n }\n\n // Parse a single statement.\n //\n // If expecting a statement and finding a slash operator, parse a\n // regular expression literal. This is to handle cases like\n // `if (foo) /blah/.exec(foo)`, where looking at the previous token\n // does not help.\n // https://tc39.es/ecma262/#prod-Statement\n parseStatement(this: Parser) {\n return this.parseStatementLike(ParseStatementFlag.StatementOnly);\n }\n\n // ImportDeclaration and ExportDeclaration are also handled here so we can throw recoverable errors\n // when they are not at the top level\n parseStatementLike(\n this: Parser,\n flags: ParseStatementFlag,\n ):\n | N.Statement\n | N.Declaration\n | N.ImportDeclaration\n | N.ExportDefaultDeclaration\n | N.ExportNamedDeclaration\n | N.ExportAllDeclaration {\n let decorators: N.Decorator[] | null = null;\n\n if (this.match(tt.at)) {\n decorators = this.parseDecorators(true);\n }\n return this.parseStatementContent(flags, decorators);\n }\n\n parseStatementContent(\n this: Parser,\n flags: ParseStatementFlag,\n decorators?: N.Decorator[] | null,\n ): N.Statement {\n const starttype = this.state.type;\n const node = this.startNode();\n const allowDeclaration = !!(flags & ParseStatementFlag.AllowDeclaration);\n const allowFunctionDeclaration = !!(\n flags & ParseStatementFlag.AllowFunctionDeclaration\n );\n const topLevel = flags & ParseStatementFlag.AllowImportExport;\n\n // Most types of statements are recognized by the keyword they\n // start with. Many are trivial to parse, some require a bit of\n // complexity.\n\n switch (starttype) {\n case tt._break:\n return this.parseBreakContinueStatement(node, /* isBreak */ true);\n case tt._continue:\n return this.parseBreakContinueStatement(node, /* isBreak */ false);\n case tt._debugger:\n return this.parseDebuggerStatement(node as Undone<N.DebuggerStatement>);\n case tt._do:\n return this.parseDoWhileStatement(node as Undone<N.DoWhileStatement>);\n case tt._for:\n return this.parseForStatement(node as Undone<N.ForStatement>);\n case tt._function:\n if (this.lookaheadCharCode() === charCodes.dot) break;\n if (!allowFunctionDeclaration) {\n this.raise(\n this.state.strict\n ? Errors.StrictFunction\n : this.options.annexB\n ? Errors.SloppyFunctionAnnexB\n : Errors.SloppyFunction,\n { at: this.state.startLoc },\n );\n }\n return this.parseFunctionStatement(\n node as Undone<N.FunctionDeclaration>,\n false,\n !allowDeclaration && allowFunctionDeclaration,\n );\n case tt._class:\n if (!allowDeclaration) this.unexpected();\n return this.parseClass(\n this.maybeTakeDecorators(\n decorators,\n node as Undone<N.ClassDeclaration>,\n ),\n true,\n );\n\n case tt._if:\n return this.parseIfStatement(node as Undone<N.IfStatement>);\n case tt._return:\n return this.parseReturnStatement(node as Undone<N.ReturnStatement>);\n case tt._switch:\n return this.parseSwitchStatement(node as Undone<N.SwitchStatement>);\n case tt._throw:\n return this.parseThrowStatement(node as Undone<N.ThrowStatement>);\n case tt._try:\n return this.parseTryStatement(node as Undone<N.TryStatement>);\n\n case tt._await:\n // [+Await] await [no LineTerminator here] using [no LineTerminator here] BindingList[+Using]\n if (!this.state.containsEsc && this.startsAwaitUsing()) {\n if (!this.isAwaitAllowed()) {\n this.raise(Errors.AwaitUsingNotInAsyncContext, { at: node });\n } else if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, {\n at: node,\n });\n }\n this.next(); // eat 'await'\n return this.parseVarStatement(\n node as Undone<N.VariableDeclaration>,\n \"await using\",\n );\n }\n break;\n case tt._using:\n // using [no LineTerminator here] BindingList[+Using]\n if (\n this.state.containsEsc ||\n !this.hasInLineFollowingBindingIdentifier()\n ) {\n break;\n }\n this.expectPlugin(\"explicitResourceManagement\");\n if (!this.scope.inModule && this.scope.inTopLevel) {\n this.raise(Errors.UnexpectedUsingDeclaration, {\n at: this.state.startLoc,\n });\n } else if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, {\n at: this.state.startLoc,\n });\n }\n return this.parseVarStatement(\n node as Undone<N.VariableDeclaration>,\n \"using\",\n );\n case tt._let: {\n if (this.state.containsEsc) {\n break;\n }\n // `let [` is an explicit negative lookahead for\n // ExpressionStatement, so special-case it first.\n const next = this.nextTokenStart();\n const nextCh = this.codePointAtPos(next);\n if (nextCh !== charCodes.leftSquareBracket) {\n if (!allowDeclaration && this.hasFollowingLineBreak()) break;\n if (\n !this.chStartsBindingIdentifier(nextCh, next) &&\n nextCh !== charCodes.leftCurlyBrace\n ) {\n break;\n }\n }\n }\n // fall through\n case tt._const: {\n if (!allowDeclaration) {\n this.raise(Errors.UnexpectedLexicalDeclaration, {\n at: this.state.startLoc,\n });\n }\n }\n // fall through\n case tt._var: {\n const kind = this.state.value;\n return this.parseVarStatement(\n node as Undone<N.VariableDeclaration>,\n kind,\n );\n }\n case tt._while:\n return this.parseWhileStatement(node as Undone<N.WhileStatement>);\n case tt._with:\n return this.parseWithStatement(node as Undone<N.WithStatement>);\n case tt.braceL:\n return this.parseBlock();\n case tt.semi:\n return this.parseEmptyStatement(node as Undone<N.EmptyStatement>);\n case tt._import: {\n const nextTokenCharCode = this.lookaheadCharCode();\n if (\n nextTokenCharCode === charCodes.leftParenthesis || // import()\n nextTokenCharCode === charCodes.dot // import.meta\n ) {\n break;\n }\n }\n // fall through\n case tt._export: {\n if (!this.options.allowImportExportEverywhere && !topLevel) {\n this.raise(Errors.UnexpectedImportExport, {\n at: this.state.startLoc,\n });\n }\n\n this.next(); // eat `import`/`export`\n\n let result;\n if (starttype === tt._import) {\n result = this.parseImport(node as Undone<N.ImportDeclaration>);\n\n if (\n result.type === \"ImportDeclaration\" &&\n (!result.importKind || result.importKind === \"value\")\n ) {\n this.sawUnambiguousESM = true;\n }\n } else {\n result = this.parseExport(\n node as Undone<\n | N.ExportAllDeclaration\n | N.ExportDefaultDeclaration\n | N.ExportDefaultDeclaration\n >,\n decorators,\n );\n\n if (\n (result.type === \"ExportNamedDeclaration\" &&\n (!result.exportKind || result.exportKind === \"value\")) ||\n (result.type === \"ExportAllDeclaration\" &&\n (!result.exportKind || result.exportKind === \"value\")) ||\n result.type === \"ExportDefaultDeclaration\"\n ) {\n this.sawUnambiguousESM = true;\n }\n }\n\n this.assertModuleNodeAllowed(result);\n\n return result;\n }\n\n default: {\n if (this.isAsyncFunction()) {\n if (!allowDeclaration) {\n this.raise(Errors.AsyncFunctionInSingleStatementContext, {\n at: this.state.startLoc,\n });\n }\n this.next(); // eat 'async'\n return this.parseFunctionStatement(\n node as Undone<N.FunctionDeclaration>,\n true,\n !allowDeclaration && allowFunctionDeclaration,\n );\n }\n }\n }\n\n // If the statement does not start with a statement keyword or a\n // brace, it's an ExpressionStatement or LabeledStatement. We\n // simply start parsing an expression, and afterwards, if the\n // next token is a colon and the expression was a simple\n // Identifier node, we switch to interpreting it as a label.\n const maybeName = this.state.value;\n const expr = this.parseExpression();\n\n if (\n tokenIsIdentifier(starttype) &&\n expr.type === \"Identifier\" &&\n this.eat(tt.colon)\n ) {\n return this.parseLabeledStatement(\n node as Undone<N.LabeledStatement>,\n maybeName,\n // @ts-expect-error migrate to Babel types\n expr,\n flags,\n );\n } else {\n return this.parseExpressionStatement(\n node as Undone<N.ExpressionStatement>,\n expr,\n decorators,\n );\n }\n }\n\n assertModuleNodeAllowed(node: N.Node): void {\n if (!this.options.allowImportExportEverywhere && !this.inModule) {\n this.raise(Errors.ImportOutsideModule, { at: node });\n }\n }\n\n decoratorsEnabledBeforeExport(): boolean {\n if (this.hasPlugin(\"decorators-legacy\")) return true;\n return (\n this.hasPlugin(\"decorators\") &&\n this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") !== false\n );\n }\n\n // Attach the decorators to the given class.\n // NOTE: This method changes the .start location of the class, and thus\n // can affect comment attachment. Calling it before or after finalizing\n // the class node (and thus finalizing its comments) changes how comments\n // before the `class` keyword or before the final .start location of the\n // class are attached.\n maybeTakeDecorators<T extends Undone<N.Class>>(\n maybeDecorators: N.Decorator[] | null,\n classNode: T,\n exportNode?: Undone<N.ExportDefaultDeclaration | N.ExportNamedDeclaration>,\n ): T {\n if (maybeDecorators) {\n if (classNode.decorators && classNode.decorators.length > 0) {\n // Note: decorators attachment is only attempred multiple times\n // when the class is part of an export declaration.\n if (\n typeof this.getPluginOption(\n \"decorators\",\n \"decoratorsBeforeExport\",\n ) !== \"boolean\"\n ) {\n // If `decoratorsBeforeExport` was set to `true` or `false`, we\n // already threw an error about decorators not being in a valid\n // position.\n this.raise(Errors.DecoratorsBeforeAfterExport, {\n at: classNode.decorators[0],\n });\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\n canHaveLeadingDecorator(): boolean {\n return this.match(tt._class);\n }\n\n parseDecorators(this: Parser, allowExport?: boolean): N.Decorator[] {\n const decorators = [];\n do {\n decorators.push(this.parseDecorator());\n } while (this.match(tt.at));\n\n if (this.match(tt._export)) {\n if (!allowExport) {\n this.unexpected();\n }\n\n if (!this.decoratorsEnabledBeforeExport()) {\n this.raise(Errors.DecoratorExportClass, { at: this.state.startLoc });\n }\n } else if (!this.canHaveLeadingDecorator()) {\n throw this.raise(Errors.UnexpectedLeadingDecorator, {\n at: this.state.startLoc,\n });\n }\n\n return decorators;\n }\n\n parseDecorator(this: Parser): N.Decorator {\n this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n\n const node = this.startNode<N.Decorator>();\n this.next();\n\n if (this.hasPlugin(\"decorators\")) {\n const startLoc = this.state.startLoc;\n let expr: N.Expression;\n\n if (this.match(tt.parenL)) {\n const startLoc = this.state.startLoc;\n this.next(); // eat '('\n expr = this.parseExpression();\n this.expect(tt.parenR);\n expr = this.wrapParenthesis(startLoc, expr);\n\n const paramsStartLoc = this.state.startLoc;\n node.expression = this.parseMaybeDecoratorArguments(expr);\n if (\n this.getPluginOption(\"decorators\", \"allowCallParenthesized\") ===\n false &&\n node.expression !== expr\n ) {\n this.raise(Errors.DecoratorArgumentsOutsideParentheses, {\n at: paramsStartLoc,\n });\n }\n } else {\n expr = this.parseIdentifier(false);\n\n while (this.eat(tt.dot)) {\n const node = this.startNodeAt(startLoc);\n node.object = expr;\n if (this.match(tt.privateName)) {\n this.classScope.usePrivateName(\n this.state.value,\n this.state.startLoc,\n );\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\n node.expression = this.parseMaybeDecoratorArguments(expr);\n }\n } else {\n node.expression = this.parseExprSubscripts();\n }\n return this.finishNode(node, \"Decorator\");\n }\n\n parseMaybeDecoratorArguments(this: Parser, expr: N.Expression): N.Expression {\n if (this.eat(tt.parenL)) {\n const node = this.startNodeAtNode(expr);\n node.callee = expr;\n node.arguments = this.parseCallExpressionArguments(tt.parenR, false);\n this.toReferencedList(node.arguments);\n return this.finishNode(node, \"CallExpression\");\n }\n\n return expr;\n }\n\n parseBreakContinueStatement(\n node: Undone<N.Node>,\n isBreak: true,\n ): N.BreakStatement;\n parseBreakContinueStatement(\n node: Undone<N.Node>,\n isBreak: false,\n ): N.ContinueStatement;\n parseBreakContinueStatement(\n node: Undone<N.BreakStatement | N.ContinueStatement>,\n isBreak: boolean,\n ): N.BreakStatement | N.ContinueStatement {\n this.next();\n\n if (this.isLineTerminator()) {\n node.label = null;\n } else {\n node.label = this.parseIdentifier();\n this.semicolon();\n }\n\n this.verifyBreakContinue(node, isBreak);\n\n return this.finishNode(\n node,\n isBreak ? \"BreakStatement\" : \"ContinueStatement\",\n );\n }\n\n verifyBreakContinue(\n node: Undone<N.BreakStatement | N.ContinueStatement>,\n isBreak: boolean,\n ) {\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 === \"loop\")) break;\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, { at: node, type });\n }\n }\n\n parseDebuggerStatement(\n node: Undone<N.DebuggerStatement>,\n ): N.DebuggerStatement {\n this.next();\n this.semicolon();\n return this.finishNode(node, \"DebuggerStatement\");\n }\n\n parseHeaderExpression(this: Parser): N.Expression {\n this.expect(tt.parenL);\n const val = this.parseExpression();\n this.expect(tt.parenR);\n return val;\n }\n\n // https://tc39.es/ecma262/#prod-DoWhileStatement\n parseDoWhileStatement(\n this: Parser,\n node: Undone<N.DoWhileStatement>,\n ): N.DoWhileStatement {\n this.next();\n this.state.labels.push(loopLabel);\n\n // Parse the loop body's body.\n node.body =\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the loop body. They are permitted in test expressions,\n // outside of the loop body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse the loop body's body.\n this.parseStatement(),\n );\n\n this.state.labels.pop();\n\n this.expect(tt._while);\n node.test = this.parseHeaderExpression();\n this.eat(tt.semi);\n return this.finishNode(node, \"DoWhileStatement\");\n }\n\n // Disambiguating between a `for` and a `for`/`in` or `for`/`of`\n // loop is non-trivial. Basically, we have to parse the init `var`\n // statement or expression, disallowing the `in` operator (see\n // the second parameter to `parseExpression`), and then check\n // whether the next token is `in` or `of`. When there is no init\n // part (semicolon immediately after the opening parenthesis), it\n // is a regular `for` loop.\n\n parseForStatement(\n this: Parser,\n node: Undone<N.ForStatement | N.ForInOf>,\n ): N.ForLike {\n this.next();\n this.state.labels.push(loopLabel);\n\n let awaitAt = null;\n\n if (this.isAwaitAllowed() && this.eatContextual(tt._await)) {\n awaitAt = this.state.lastTokStartLoc;\n }\n this.scope.enter(ScopeFlag.OTHER);\n this.expect(tt.parenL);\n\n if (this.match(tt.semi)) {\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node as Undone<N.ForStatement>, null);\n }\n\n const startsWithLet = this.isContextual(tt._let);\n {\n const startsWithAwaitUsing =\n this.isContextual(tt._await) && this.startsAwaitUsing();\n const starsWithUsingDeclaration =\n startsWithAwaitUsing ||\n (this.isContextual(tt._using) && this.startsUsingForOf());\n const isLetOrUsing =\n (startsWithLet && this.hasFollowingBindingAtom()) ||\n starsWithUsingDeclaration;\n\n if (this.match(tt._var) || this.match(tt._const) || isLetOrUsing) {\n const initNode = this.startNode<N.VariableDeclaration>();\n let kind;\n if (startsWithAwaitUsing) {\n kind = \"await using\";\n if (!this.isAwaitAllowed()) {\n this.raise(Errors.AwaitUsingNotInAsyncContext, {\n at: this.state.startLoc,\n });\n }\n this.next(); // eat 'await'\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\n const isForIn = this.match(tt._in);\n if (isForIn && starsWithUsingDeclaration) {\n this.raise(Errors.ForInUsing, { at: init });\n }\n if (\n (isForIn || this.isContextual(tt._of)) &&\n init.declarations.length === 1\n ) {\n return this.parseForIn(node as Undone<N.ForInOf>, init, awaitAt);\n }\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node as Undone<N.ForStatement>, init);\n }\n }\n\n // Check whether the first token is possibly a contextual keyword, so that\n // we can forbid `for (async of` if this turns out to be a for-of loop.\n const startsWithAsync = this.isContextual(tt._async);\n\n const refExpressionErrors = new ExpressionErrors();\n const init = this.parseExpression(true, refExpressionErrors);\n const isForOf = this.isContextual(tt._of);\n if (isForOf) {\n // Check for leading tokens that are forbidden in for-of loops:\n if (startsWithLet) {\n this.raise(Errors.ForOfLet, { at: init });\n }\n\n if (\n // `for await (async of []);` is allowed.\n awaitAt === null &&\n startsWithAsync &&\n init.type === \"Identifier\"\n ) {\n // This catches the case where the `async` in `for (async of` was\n // parsed as an identifier. If it was parsed as the start of an async\n // arrow function (e.g. `for (async of => {} of []);`), the LVal check\n // further down will raise a more appropriate error.\n this.raise(Errors.ForOfAsync, { at: init });\n }\n }\n if (isForOf || this.match(tt._in)) {\n this.checkDestructuringPrivate(refExpressionErrors);\n this.toAssignable(init, /* isLHS */ true);\n const type = isForOf ? \"ForOfStatement\" : \"ForInStatement\";\n this.checkLVal(init, { in: { type } });\n return this.parseForIn(\n node as Undone<N.ForInStatement | N.ForOfStatement>,\n // @ts-expect-error init has been transformed to an assignable\n init,\n awaitAt,\n );\n } else {\n this.checkExpressionErrors(refExpressionErrors, true);\n }\n if (awaitAt !== null) {\n this.unexpected(awaitAt);\n }\n return this.parseFor(node as Undone<N.ForStatement>, init);\n }\n\n // https://tc39.es/ecma262/#prod-HoistableDeclaration\n parseFunctionStatement(\n this: Parser,\n node: Undone<N.FunctionDeclaration>,\n isAsync: boolean,\n isHangingDeclaration: boolean,\n ): N.FunctionDeclaration {\n this.next(); // eat 'function'\n return this.parseFunction(\n node,\n ParseFunctionFlag.Declaration |\n (isHangingDeclaration ? ParseFunctionFlag.HangingDeclaration : 0) |\n (isAsync ? ParseFunctionFlag.Async : 0),\n );\n }\n\n // https://tc39.es/ecma262/#prod-IfStatement\n parseIfStatement(this: Parser, node: Undone<N.IfStatement>) {\n this.next();\n node.test = this.parseHeaderExpression();\n // Annex B.3.3\n // https://tc39.es/ecma262/#sec-functiondeclarations-in-ifstatement-statement-clauses\n node.consequent = this.parseStatementOrSloppyAnnexBFunctionDeclaration();\n node.alternate = this.eat(tt._else)\n ? this.parseStatementOrSloppyAnnexBFunctionDeclaration()\n : null;\n return this.finishNode(node, \"IfStatement\");\n }\n\n parseReturnStatement(this: Parser, node: Undone<N.ReturnStatement>) {\n if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) {\n this.raise(Errors.IllegalReturn, { at: this.state.startLoc });\n }\n\n this.next();\n\n // In `return` (and `break`/`continue`), the keywords with\n // optional arguments, we eagerly look for a semicolon or the\n // possibility to insert one.\n\n if (this.isLineTerminator()) {\n node.argument = null;\n } else {\n node.argument = this.parseExpression();\n this.semicolon();\n }\n\n return this.finishNode(node, \"ReturnStatement\");\n }\n\n // https://tc39.es/ecma262/#prod-SwitchStatement\n parseSwitchStatement(this: Parser, node: Undone<N.SwitchStatement>) {\n this.next();\n node.discriminant = this.parseHeaderExpression();\n const cases: N.SwitchStatement[\"cases\"] = (node.cases = []);\n this.expect(tt.braceL);\n this.state.labels.push(switchLabel);\n this.scope.enter(ScopeFlag.OTHER);\n\n // Statements under must be grouped (by label) in SwitchCase\n // nodes. `cur` is used to keep the node that we are currently\n // adding statements to.\n\n let cur;\n for (let sawDefault; !this.match(tt.braceR); ) {\n if (this.match(tt._case) || this.match(tt._default)) {\n const isCase = this.match(tt._case);\n if (cur) this.finishNode(cur, \"SwitchCase\");\n // @ts-expect-error Fixme\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, {\n at: this.state.lastTokStartLoc,\n });\n }\n sawDefault = true;\n cur.test = null;\n }\n this.expect(tt.colon);\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(); // Closing brace\n this.state.labels.pop();\n return this.finishNode(node, \"SwitchStatement\");\n }\n\n parseThrowStatement(this: Parser, node: Undone<N.ThrowStatement>) {\n this.next();\n if (this.hasPrecedingLineBreak()) {\n this.raise(Errors.NewlineAfterThrow, { at: this.state.lastTokEndLoc });\n }\n node.argument = this.parseExpression();\n this.semicolon();\n return this.finishNode(node, \"ThrowStatement\");\n }\n\n parseCatchClauseParam(this: Parser): N.Pattern {\n const param = this.parseBindingAtom();\n\n this.scope.enter(\n this.options.annexB && param.type === \"Identifier\"\n ? ScopeFlag.SIMPLE_CATCH\n : 0,\n );\n this.checkLVal(param, {\n in: { type: \"CatchClause\" },\n binding: BindingFlag.TYPE_CATCH_PARAM,\n });\n\n return param;\n }\n\n parseTryStatement(\n this: Parser,\n node: Undone<N.TryStatement>,\n ): N.TryStatement {\n this.next();\n\n node.block = this.parseBlock();\n node.handler = null;\n\n if (this.match(tt._catch)) {\n const clause = this.startNode<N.CatchClause>();\n this.next();\n if (this.match(tt.parenL)) {\n this.expect(tt.parenL);\n clause.param = this.parseCatchClauseParam();\n this.expect(tt.parenR);\n } else {\n clause.param = null;\n this.scope.enter(ScopeFlag.OTHER);\n }\n\n // Parse the catch clause's body.\n clause.body =\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the catch clause's body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse the catch clause's body.\n this.parseBlock(false, false),\n );\n\n this.scope.exit();\n node.handler = this.finishNode(clause, \"CatchClause\");\n }\n\n node.finalizer = this.eat(tt._finally) ? this.parseBlock() : null;\n\n if (!node.handler && !node.finalizer) {\n this.raise(Errors.NoCatchOrFinally, { at: node });\n }\n\n return this.finishNode(node, \"TryStatement\");\n }\n\n // https://tc39.es/ecma262/#prod-VariableStatement\n // https://tc39.es/ecma262/#prod-LexicalDeclaration\n parseVarStatement(\n this: Parser,\n node: Undone<N.VariableDeclaration>,\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n allowMissingInitializer: boolean = false,\n ): N.VariableDeclaration {\n this.next();\n this.parseVar(node, false, kind, allowMissingInitializer);\n this.semicolon();\n return this.finishNode(node, \"VariableDeclaration\");\n }\n\n // https://tc39.es/ecma262/#prod-WhileStatement\n parseWhileStatement(\n this: Parser,\n node: Undone<N.WhileStatement>,\n ): N.WhileStatement {\n this.next();\n node.test = this.parseHeaderExpression();\n this.state.labels.push(loopLabel);\n\n // Parse the loop body.\n node.body =\n // For the smartPipelines plugin:\n // Disable topic references from outer contexts within the loop body.\n // They are permitted in test expressions, outside of the loop body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse loop body.\n this.parseStatement(),\n );\n\n this.state.labels.pop();\n\n return this.finishNode(node, \"WhileStatement\");\n }\n\n parseWithStatement(\n this: Parser,\n node: Undone<N.WithStatement>,\n ): N.WithStatement {\n if (this.state.strict) {\n this.raise(Errors.StrictWith, { at: this.state.startLoc });\n }\n this.next();\n node.object = this.parseHeaderExpression();\n\n // Parse the statement body.\n node.body =\n // For the smartPipelines plugin:\n // Disable topic references from outer contexts within the with statement's body.\n // They are permitted in function default-parameter expressions, which are\n // part of the outer context, outside of the with statement's body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse the statement body.\n this.parseStatement(),\n );\n\n return this.finishNode(node, \"WithStatement\");\n }\n\n parseEmptyStatement(node: Undone<N.EmptyStatement>): N.EmptyStatement {\n this.next();\n return this.finishNode(node, \"EmptyStatement\");\n }\n\n // https://tc39.es/ecma262/#prod-LabelledStatement\n parseLabeledStatement(\n this: Parser,\n node: Undone<N.LabeledStatement>,\n maybeName: string,\n expr: N.Identifier,\n flags: ParseStatementFlag,\n ): N.LabeledStatement {\n for (const label of this.state.labels) {\n if (label.name === maybeName) {\n this.raise(Errors.LabelRedeclaration, {\n at: expr,\n labelName: maybeName,\n });\n }\n }\n\n const kind = tokenIsLoop(this.state.type)\n ? \"loop\"\n : this.match(tt._switch)\n ? \"switch\"\n : 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.state.start;\n label.kind = kind;\n } else {\n break;\n }\n }\n\n this.state.labels.push({\n name: maybeName,\n kind: kind,\n statementStart: this.state.start,\n });\n // https://tc39.es/ecma262/#prod-LabelledItem\n node.body =\n flags & ParseStatementFlag.AllowLabeledFunction\n ? this.parseStatementOrSloppyAnnexBFunctionDeclaration(true)\n : this.parseStatement();\n\n this.state.labels.pop();\n node.label = expr;\n return this.finishNode(node, \"LabeledStatement\");\n }\n\n parseExpressionStatement(\n node: Undone<N.ExpressionStatement>,\n expr: N.Expression,\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars -- used in TypeScript parser */\n decorators: N.Decorator[] | null,\n ) {\n node.expression = expr;\n this.semicolon();\n return this.finishNode(node, \"ExpressionStatement\");\n }\n\n // Parse a semicolon-enclosed block of statements, handling `\"use\n // strict\"` declarations when `allowDirectives` is true (used for\n // function bodies).\n\n parseBlock(\n this: Parser,\n allowDirectives: boolean = false,\n createNewLexicalScope: boolean = true,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): N.BlockStatement {\n const node = this.startNode<N.BlockStatement>();\n if (allowDirectives) {\n this.state.strictErrors.clear();\n }\n this.expect(tt.braceL);\n if (createNewLexicalScope) {\n this.scope.enter(ScopeFlag.OTHER);\n }\n this.parseBlockBody(\n node,\n allowDirectives,\n false,\n tt.braceR,\n afterBlockParse,\n );\n if (createNewLexicalScope) {\n this.scope.exit();\n }\n return this.finishNode(node, \"BlockStatement\");\n }\n\n isValidDirective(stmt: N.Statement): boolean {\n return (\n stmt.type === \"ExpressionStatement\" &&\n stmt.expression.type === \"StringLiteral\" &&\n !stmt.expression.extra.parenthesized\n );\n }\n\n parseBlockBody(\n this: Parser,\n node: Undone<N.BlockStatementLike>,\n allowDirectives: boolean | undefined | null,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void {\n const body: N.BlockStatementLike[\"body\"] = (node.body = []);\n const directives: N.BlockStatementLike[\"directives\"] = (node.directives =\n []);\n this.parseBlockOrModuleBlockBody(\n body,\n allowDirectives ? directives : undefined,\n topLevel,\n end,\n afterBlockParse,\n );\n }\n\n // Undefined directives means that directives are not allowed.\n // https://tc39.es/ecma262/#prod-Block\n // https://tc39.es/ecma262/#prod-ModuleBody\n parseBlockOrModuleBlockBody(\n this: Parser,\n body: N.Statement[],\n directives: N.Directive[] | undefined | null,\n topLevel: boolean,\n end: TokenType,\n afterBlockParse?: (hasStrictModeDirective: boolean) => void,\n ): void {\n const oldStrict = this.state.strict;\n let hasStrictModeDirective = false;\n let parsedNonDirective = false;\n\n while (!this.match(end)) {\n const stmt = topLevel\n ? this.parseModuleItem()\n : this.parseStatementListItem();\n\n if (directives && !parsedNonDirective) {\n if (this.isValidDirective(stmt)) {\n const directive = this.stmtToDirective(stmt);\n directives.push(directive);\n\n if (\n !hasStrictModeDirective &&\n directive.value.value === \"use strict\"\n ) {\n hasStrictModeDirective = true;\n this.setStrict(true);\n }\n\n continue;\n }\n parsedNonDirective = true;\n // clear strict errors since the strict mode will not change within the block\n this.state.strictErrors.clear();\n }\n body.push(stmt);\n }\n\n afterBlockParse?.call(this, hasStrictModeDirective);\n\n if (!oldStrict) {\n this.setStrict(false);\n }\n\n this.next();\n }\n\n // Parse a regular `for` loop. The disambiguation code in\n // `parseStatement` will already have parsed the init statement or\n // expression.\n\n parseFor(\n this: Parser,\n node: Undone<N.ForStatement>,\n init?: N.VariableDeclaration | N.Expression | null,\n ): N.ForStatement {\n node.init = init;\n this.semicolon(/* allowAsi */ false);\n node.test = this.match(tt.semi) ? null : this.parseExpression();\n this.semicolon(/* allowAsi */ false);\n node.update = this.match(tt.parenR) ? null : this.parseExpression();\n this.expect(tt.parenR);\n\n // Parse the loop body.\n node.body =\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the loop body. They are permitted in test expressions,\n // outside of the loop body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse the loop body.\n this.parseStatement(),\n );\n\n this.scope.exit();\n this.state.labels.pop();\n\n return this.finishNode(node, \"ForStatement\");\n }\n\n // Parse a `for`/`in` and `for`/`of` loop, which are almost\n // same from parser's perspective.\n\n parseForIn(\n this: Parser,\n node: Undone<N.ForInOf>,\n init: N.VariableDeclaration | N.AssignmentPattern,\n awaitAt?: Position | null,\n ): N.ForInOf {\n const isForIn = this.match(tt._in);\n this.next();\n\n if (isForIn) {\n if (awaitAt !== null) this.unexpected(awaitAt);\n } else {\n node.await = awaitAt !== null;\n }\n\n if (\n init.type === \"VariableDeclaration\" &&\n init.declarations[0].init != null &&\n (!isForIn ||\n !this.options.annexB ||\n this.state.strict ||\n init.kind !== \"var\" ||\n init.declarations[0].id.type !== \"Identifier\")\n ) {\n this.raise(Errors.ForInOfLoopInitializer, {\n at: init,\n type: isForIn ? \"ForInStatement\" : \"ForOfStatement\",\n });\n }\n\n if (init.type === \"AssignmentPattern\") {\n this.raise(Errors.InvalidLhs, {\n at: init,\n ancestor: { type: \"ForStatement\" },\n });\n }\n\n node.left = init;\n node.right = isForIn\n ? this.parseExpression()\n : this.parseMaybeAssignAllowIn();\n this.expect(tt.parenR);\n\n // Parse the loop body.\n node.body =\n // For the smartPipelines plugin:\n // Disable topic references from outer contexts within the loop body.\n // They are permitted in test expressions, outside of the loop body.\n this.withSmartMixTopicForbiddingContext(() =>\n // Parse loop body.\n this.parseStatement(),\n );\n\n this.scope.exit();\n this.state.labels.pop();\n\n return this.finishNode(node, isForIn ? \"ForInStatement\" : \"ForOfStatement\");\n }\n\n // Parse a list of variable declarations.\n\n parseVar(\n this: Parser,\n node: Undone<N.VariableDeclaration>,\n isFor: boolean,\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n allowMissingInitializer: boolean = false,\n ): Undone<N.VariableDeclaration> {\n const declarations: N.VariableDeclarator[] = (node.declarations = []);\n node.kind = kind;\n for (;;) {\n const decl = this.startNode<N.VariableDeclarator>();\n this.parseVarId(decl, kind);\n decl.init = !this.eat(tt.eq)\n ? null\n : isFor\n ? this.parseMaybeAssignDisallowIn()\n : this.parseMaybeAssignAllowIn();\n\n if (decl.init === null && !allowMissingInitializer) {\n if (\n decl.id.type !== \"Identifier\" &&\n !(isFor && (this.match(tt._in) || this.isContextual(tt._of)))\n ) {\n this.raise(Errors.DeclarationMissingInitializer, {\n at: this.state.lastTokEndLoc,\n kind: \"destructuring\",\n });\n } else if (\n kind === \"const\" &&\n !(this.match(tt._in) || this.isContextual(tt._of))\n ) {\n this.raise(Errors.DeclarationMissingInitializer, {\n at: this.state.lastTokEndLoc,\n kind: \"const\",\n });\n }\n }\n declarations.push(this.finishNode(decl, \"VariableDeclarator\"));\n if (!this.eat(tt.comma)) break;\n }\n return node;\n }\n\n parseVarId(\n this: Parser,\n decl: Undone<N.VariableDeclarator>,\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n ): void {\n const id = this.parseBindingAtom();\n this.checkLVal(id, {\n in: { type: \"VariableDeclarator\" },\n binding: kind === \"var\" ? BindingFlag.TYPE_VAR : BindingFlag.TYPE_LEXICAL,\n });\n decl.id = id;\n }\n\n // https://tc39.es/ecma262/#prod-AsyncFunctionExpression\n parseAsyncFunctionExpression(\n this: Parser,\n node: Undone<N.FunctionExpression>,\n ): N.FunctionExpression {\n return this.parseFunction(node, ParseFunctionFlag.Async);\n }\n\n // Parse a function declaration or expression (depending on the\n // ParseFunctionFlag.Declaration flag).\n\n parseFunction<T extends N.NormalFunction>(\n this: Parser,\n node: Undone<T>,\n flags: ParseFunctionFlag = ParseFunctionFlag.Expression,\n ): T {\n const hangingDeclaration = flags & ParseFunctionFlag.HangingDeclaration;\n const isDeclaration = !!(flags & ParseFunctionFlag.Declaration);\n const requireId = isDeclaration && !(flags & ParseFunctionFlag.NullableId);\n const isAsync = !!(flags & ParseFunctionFlag.Async);\n\n this.initFunction(node, isAsync);\n\n if (this.match(tt.star)) {\n if (hangingDeclaration) {\n this.raise(Errors.GeneratorInSingleStatementContext, {\n at: this.state.startLoc,\n });\n }\n this.next(); // eat *\n node.generator = true;\n }\n\n if (isDeclaration) {\n node.id = this.parseFunctionId(requireId);\n }\n\n const oldMaybeInArrowParameters = this.state.maybeInArrowParameters;\n this.state.maybeInArrowParameters = false;\n this.scope.enter(ScopeFlag.FUNCTION);\n this.prodParam.enter(functionFlags(isAsync, node.generator));\n\n if (!isDeclaration) {\n node.id = this.parseFunctionId();\n }\n\n this.parseFunctionParams(node, /* isConstructor */ false);\n\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the function body. They are permitted in function\n // default-parameter expressions, outside of the function body.\n this.withSmartMixTopicForbiddingContext(() => {\n // Parse the function body.\n this.parseFunctionBodyAndFinish(\n node,\n isDeclaration ? \"FunctionDeclaration\" : \"FunctionExpression\",\n );\n });\n\n this.prodParam.exit();\n this.scope.exit();\n\n if (isDeclaration && !hangingDeclaration) {\n // We need to register this _after_ parsing the function body\n // because of TypeScript body-less function declarations,\n // which shouldn't be added to the scope.\n this.registerFunctionStatementId(node as T);\n }\n\n this.state.maybeInArrowParameters = oldMaybeInArrowParameters;\n return node as T;\n }\n\n parseFunctionId(requireId?: boolean): N.Identifier | undefined | null {\n return requireId || tokenIsIdentifier(this.state.type)\n ? this.parseIdentifier()\n : null;\n }\n\n parseFunctionParams(\n this: Parser,\n node: Undone<N.Function>,\n isConstructor?: boolean,\n ): void {\n this.expect(tt.parenL);\n this.expressionScope.enter(newParameterDeclarationScope());\n node.params = this.parseBindingList(\n tt.parenR,\n charCodes.rightParenthesis,\n ParseBindingListFlags.IS_FUNCTION_PARAMS |\n (isConstructor ? ParseBindingListFlags.IS_CONSTRUCTOR_PARAMS : 0),\n );\n\n this.expressionScope.exit();\n }\n\n registerFunctionStatementId(node: N.Function): void {\n if (!node.id) return;\n\n // If it is a regular function declaration in sloppy mode, then it is\n // subject to Annex B semantics (BindingFlag.TYPE_FUNCTION). Otherwise, the binding\n // mode depends on properties of the current scope (see\n // treatFunctionsAsVar).\n this.scope.declareName(\n node.id.name,\n !this.options.annexB || this.state.strict || node.generator || node.async\n ? this.scope.treatFunctionsAsVar\n ? BindingFlag.TYPE_VAR\n : BindingFlag.TYPE_LEXICAL\n : BindingFlag.TYPE_FUNCTION,\n node.id.loc.start,\n );\n }\n\n // Parse a class declaration or literal (depending on the\n // `isStatement` parameter).\n\n parseClass<T extends N.Class>(\n this: Parser,\n node: Undone<T>,\n isStatement: /* T === ClassDeclaration */ boolean,\n optionalId?: boolean,\n ): T {\n this.next(); // 'class'\n\n // A class definition is always strict mode code.\n const oldStrict = this.state.strict;\n this.state.strict = true;\n\n this.parseClassId(node, isStatement, optionalId);\n this.parseClassSuper(node);\n // this.state.strict is restored in parseClassBody\n node.body = this.parseClassBody(!!node.superClass, oldStrict);\n\n return this.finishNode(\n node,\n isStatement ? \"ClassDeclaration\" : \"ClassExpression\",\n );\n }\n\n isClassProperty(): boolean {\n return this.match(tt.eq) || this.match(tt.semi) || this.match(tt.braceR);\n }\n\n isClassMethod(): boolean {\n return this.match(tt.parenL);\n }\n\n isNonstaticConstructor(method: N.ClassMethod | N.ClassProperty): boolean {\n return (\n !method.computed &&\n !method.static &&\n (method.key.name === \"constructor\" || // Identifier\n method.key.value === \"constructor\") // String literal\n );\n }\n\n // https://tc39.es/ecma262/#prod-ClassBody\n parseClassBody(\n this: Parser,\n hadSuperClass: boolean,\n oldStrict: boolean,\n ): N.ClassBody {\n this.classScope.enter();\n\n const state: N.ParseClassMemberState = {\n hadConstructor: false,\n hadSuperClass,\n };\n let decorators: N.Decorator[] = [];\n const classBody = this.startNode<N.ClassBody>();\n classBody.body = [];\n\n this.expect(tt.braceL);\n\n // For the smartPipelines plugin: Disable topic references from outer\n // contexts within the class body.\n this.withSmartMixTopicForbiddingContext(() => {\n // Parse the contents within the braces.\n while (!this.match(tt.braceR)) {\n if (this.eat(tt.semi)) {\n if (decorators.length > 0) {\n throw this.raise(Errors.DecoratorSemicolon, {\n at: this.state.lastTokEndLoc,\n });\n }\n continue;\n }\n\n if (this.match(tt.at)) {\n decorators.push(this.parseDecorator());\n continue;\n }\n\n const member = this.startNode<N.ClassMember>();\n\n // steal the decorators if there are any\n if (decorators.length) {\n // @ts-expect-error Fixme\n member.decorators = decorators;\n this.resetStartLocationFromNode(member, decorators[0]);\n decorators = [];\n }\n\n this.parseClassMember(classBody, member, state);\n\n if (\n // @ts-expect-error Fixme\n member.kind === \"constructor\" &&\n // @ts-expect-error Fixme\n member.decorators &&\n // @ts-expect-error Fixme\n member.decorators.length > 0\n ) {\n this.raise(Errors.DecoratorConstructor, { at: member });\n }\n }\n });\n\n this.state.strict = oldStrict;\n\n this.next(); // eat `}`\n\n if (decorators.length) {\n throw this.raise(Errors.TrailingDecorator, { at: this.state.startLoc });\n }\n\n this.classScope.exit();\n\n return this.finishNode(classBody, \"ClassBody\");\n }\n\n // returns true if the current identifier is a method/field name,\n // false if it is a modifier\n parseClassMemberFromModifier(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n member: Undone<N.ClassMember>,\n ): boolean {\n const key = this.parseIdentifier(true); // eats the modifier\n\n if (this.isClassMethod()) {\n const method: N.ClassMethod = member as any;\n\n // a method named like the modifier\n method.kind = \"method\";\n method.computed = false;\n method.key = key;\n method.static = false;\n this.pushClassMethod(\n classBody,\n method,\n false,\n false,\n /* isConstructor */ false,\n false,\n );\n return true;\n } else if (this.isClassProperty()) {\n const prop: N.ClassProperty = member as any;\n\n // a property named like the modifier\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\n parseClassMember(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n member: Undone<N.ClassMember>,\n state: N.ParseClassMemberState,\n ): void {\n const isStatic = this.isContextual(tt._static);\n\n if (isStatic) {\n if (this.parseClassMemberFromModifier(classBody, member)) {\n // a class element named 'static'\n return;\n }\n if (this.eat(tt.braceL)) {\n this.parseClassStaticBlock(classBody, member as any as N.StaticBlock);\n return;\n }\n }\n\n this.parseClassMemberWithIsStatic(classBody, member, state, isStatic);\n }\n\n parseClassMemberWithIsStatic(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n member: Undone<N.ClassMember>,\n state: N.ParseClassMemberState,\n isStatic: boolean,\n ) {\n const publicMethod = member as N.ClassMethod;\n const privateMethod = member as N.ClassPrivateMethod;\n const publicProp = member as N.ClassProperty;\n const privateProp = member as N.ClassPrivateProperty;\n const accessorProp = member as N.ClassAccessorProperty;\n\n const method: typeof publicMethod | typeof privateMethod = publicMethod;\n const publicMember: typeof publicMethod | typeof publicProp = publicMethod;\n\n member.static = isStatic;\n this.parsePropertyNamePrefixOperator(member);\n\n if (this.eat(tt.star)) {\n // a generator\n method.kind = \"method\";\n const isPrivateName = this.match(tt.privateName);\n this.parseClassElementName(method);\n\n if (isPrivateName) {\n // Private generator method\n this.pushClassPrivateMethod(classBody, privateMethod, true, false);\n return;\n }\n\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsGenerator, {\n at: publicMethod.key,\n });\n }\n\n this.pushClassMethod(\n classBody,\n publicMethod,\n true,\n false,\n /* isConstructor */ false,\n false,\n );\n\n return;\n }\n\n const isContextual =\n tokenIsIdentifier(this.state.type) && !this.state.containsEsc;\n const isPrivate = this.match(tt.privateName);\n const key = this.parseClassElementName(member);\n const maybeQuestionTokenStartLoc = this.state.startLoc;\n\n this.parsePostMemberNameModifiers(publicMember);\n\n if (this.isClassMethod()) {\n method.kind = \"method\";\n\n if (isPrivate) {\n this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n return;\n }\n\n // a normal method\n const isConstructor = this.isNonstaticConstructor(publicMethod);\n let allowsDirectSuper = false;\n if (isConstructor) {\n publicMethod.kind = \"constructor\";\n\n // TypeScript allows multiple overloaded constructor declarations.\n if (state.hadConstructor && !this.hasPlugin(\"typescript\")) {\n this.raise(Errors.DuplicateConstructor, { at: key });\n }\n if (isConstructor && this.hasPlugin(\"typescript\") && member.override) {\n this.raise(Errors.OverrideOnConstructor, { at: key });\n }\n state.hadConstructor = true;\n allowsDirectSuper = state.hadSuperClass;\n }\n\n this.pushClassMethod(\n classBody,\n publicMethod,\n false,\n false,\n isConstructor,\n allowsDirectSuper,\n );\n } else if (this.isClassProperty()) {\n if (isPrivate) {\n this.pushClassPrivateProperty(classBody, privateProp);\n } else {\n this.pushClassProperty(classBody, publicProp);\n }\n } else if (\n isContextual &&\n key.name === \"async\" &&\n !this.isLineTerminator()\n ) {\n // an async method\n this.resetPreviousNodeTrailingComments(key);\n const isGenerator = this.eat(tt.star);\n\n if (publicMember.optional) {\n this.unexpected(maybeQuestionTokenStartLoc);\n }\n\n method.kind = \"method\";\n // The so-called parsed name would have been \"async\": get the real name.\n const isPrivate = this.match(tt.privateName);\n this.parseClassElementName(method);\n this.parsePostMemberNameModifiers(publicMember);\n\n if (isPrivate) {\n // private async method\n this.pushClassPrivateMethod(\n classBody,\n privateMethod,\n isGenerator,\n true,\n );\n } else {\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsAsync, { at: publicMethod.key });\n }\n\n this.pushClassMethod(\n classBody,\n publicMethod,\n isGenerator,\n true,\n /* isConstructor */ false,\n false,\n );\n }\n } else if (\n isContextual &&\n (key.name === \"get\" || key.name === \"set\") &&\n !(this.match(tt.star) && this.isLineTerminator())\n ) {\n // `get\\n*` is an uninitialized property named 'get' followed by a generator.\n // a getter or setter\n this.resetPreviousNodeTrailingComments(key);\n method.kind = key.name;\n // The so-called parsed name would have been \"get/set\": get the real name.\n const isPrivate = this.match(tt.privateName);\n this.parseClassElementName(publicMethod);\n\n if (isPrivate) {\n // private getter/setter\n this.pushClassPrivateMethod(classBody, privateMethod, false, false);\n } else {\n if (this.isNonstaticConstructor(publicMethod)) {\n this.raise(Errors.ConstructorIsAccessor, { at: publicMethod.key });\n }\n this.pushClassMethod(\n classBody,\n publicMethod,\n false,\n false,\n /* isConstructor */ false,\n false,\n );\n }\n\n this.checkGetterSetterParams(publicMethod);\n } else if (\n isContextual &&\n key.name === \"accessor\" &&\n !this.isLineTerminator()\n ) {\n this.expectPlugin(\"decoratorAutoAccessors\");\n this.resetPreviousNodeTrailingComments(key);\n\n // The so-called parsed name would have been \"accessor\": get the real name.\n const isPrivate = this.match(tt.privateName);\n this.parseClassElementName(publicProp);\n this.pushClassAccessorProperty(classBody, accessorProp, isPrivate);\n } else if (this.isLineTerminator()) {\n // an uninitialized class property (due to ASI, since we don't otherwise recognize the next token)\n if (isPrivate) {\n this.pushClassPrivateProperty(classBody, privateProp);\n } else {\n this.pushClassProperty(classBody, publicProp);\n }\n } else {\n this.unexpected();\n }\n }\n\n // https://tc39.es/ecma262/#prod-ClassElementName\n parseClassElementName(\n this: Parser,\n member: Undone<N.ClassMember>,\n ): N.Expression | N.Identifier {\n const { type, value } = this.state;\n if (\n (type === tt.name || type === tt.string) &&\n member.static &&\n value === \"prototype\"\n ) {\n this.raise(Errors.StaticPrototype, { at: this.state.startLoc });\n }\n\n if (type === tt.privateName) {\n if (value === \"constructor\") {\n this.raise(Errors.ConstructorClassPrivateField, {\n at: this.state.startLoc,\n });\n }\n const key = this.parsePrivateName();\n member.key = key;\n return key;\n }\n\n return this.parsePropertyName(member);\n }\n\n parseClassStaticBlock(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n member: Undone<\n N.StaticBlock & {\n decorators?: Array<N.Decorator>;\n }\n >,\n ) {\n // Start a new lexical scope\n this.scope.enter(\n ScopeFlag.CLASS | ScopeFlag.STATIC_BLOCK | ScopeFlag.SUPER,\n );\n // Start a new scope with regard to loop labels\n const oldLabels = this.state.labels;\n this.state.labels = [];\n // ClassStaticBlockStatementList:\n // StatementList[~Yield, ~Await, ~Return] opt\n this.prodParam.enter(ParamKind.PARAM);\n const body: N.Node[] = (member.body = []);\n this.parseBlockOrModuleBlockBody(body, undefined, false, tt.braceR);\n this.prodParam.exit();\n this.scope.exit();\n this.state.labels = oldLabels;\n classBody.body.push(this.finishNode<N.StaticBlock>(member, \"StaticBlock\"));\n if (member.decorators?.length) {\n this.raise(Errors.DecoratorStaticBlock, { at: member });\n }\n }\n\n pushClassProperty(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n prop: N.ClassProperty,\n ) {\n if (\n !prop.computed &&\n (prop.key.name === \"constructor\" || prop.key.value === \"constructor\")\n ) {\n // Non-computed field, which is either an identifier named \"constructor\"\n // or a string literal named \"constructor\"\n this.raise(Errors.ConstructorClassField, { at: prop.key });\n }\n\n classBody.body.push(this.parseClassProperty(prop));\n }\n\n pushClassPrivateProperty(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n prop: Undone<N.ClassPrivateProperty>,\n ) {\n const node = this.parseClassPrivateProperty(prop);\n classBody.body.push(node);\n\n this.classScope.declarePrivateName(\n this.getPrivateNameSV(node.key),\n ClassElementType.OTHER,\n node.key.loc.start,\n );\n }\n\n pushClassAccessorProperty(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n prop: N.ClassAccessorProperty,\n isPrivate: boolean,\n ) {\n if (!isPrivate && !prop.computed) {\n // Not private, so not node is not a PrivateName and we can safely cast\n const key = prop.key as N.Expression;\n\n if (key.name === \"constructor\" || key.value === \"constructor\") {\n // Non-computed field, which is either an identifier named \"constructor\"\n // or a string literal named \"constructor\"\n this.raise(Errors.ConstructorClassField, { at: key });\n }\n }\n\n const node = this.parseClassAccessorProperty(prop);\n classBody.body.push(node);\n\n if (isPrivate) {\n this.classScope.declarePrivateName(\n this.getPrivateNameSV(node.key),\n ClassElementType.OTHER,\n node.key.loc.start,\n );\n }\n }\n\n pushClassMethod(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n method: Undone<N.ClassMethod>,\n isGenerator: boolean,\n isAsync: boolean,\n isConstructor: boolean,\n allowsDirectSuper: boolean,\n ): void {\n classBody.body.push(\n this.parseMethod(\n method,\n isGenerator,\n isAsync,\n isConstructor,\n allowsDirectSuper,\n \"ClassMethod\",\n true,\n ),\n );\n }\n\n pushClassPrivateMethod(\n this: Parser,\n classBody: Undone<N.ClassBody>,\n method: Undone<N.ClassPrivateMethod>,\n isGenerator: boolean,\n isAsync: boolean,\n ): void {\n const node = this.parseMethod(\n method,\n isGenerator,\n isAsync,\n /* isConstructor */ false,\n false,\n \"ClassPrivateMethod\",\n true,\n );\n classBody.body.push(node);\n\n const kind =\n node.kind === \"get\"\n ? node.static\n ? ClassElementType.STATIC_GETTER\n : ClassElementType.INSTANCE_GETTER\n : node.kind === \"set\"\n ? node.static\n ? ClassElementType.STATIC_SETTER\n : ClassElementType.INSTANCE_SETTER\n : ClassElementType.OTHER;\n this.declareClassPrivateMethodInScope(node, kind);\n }\n\n declareClassPrivateMethodInScope(\n node: Undone<\n N.ClassPrivateMethod | N.EstreeMethodDefinition | N.TSDeclareMethod\n >,\n kind: number,\n ) {\n this.classScope.declarePrivateName(\n this.getPrivateNameSV(node.key),\n kind,\n node.key.loc.start,\n );\n }\n\n // Overridden in typescript.js\n parsePostMemberNameModifiers(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n methodOrProp: Undone<N.ClassMethod | N.ClassProperty>,\n ): void {}\n\n // https://tc39.es/ecma262/#prod-FieldDefinition\n parseClassPrivateProperty(\n this: Parser,\n node: Undone<N.ClassPrivateProperty>,\n ): N.ClassPrivateProperty {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassPrivateProperty\");\n }\n\n // https://tc39.es/ecma262/#prod-FieldDefinition\n parseClassProperty(this: Parser, node: N.ClassProperty): N.ClassProperty {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassProperty\");\n }\n\n parseClassAccessorProperty(\n this: Parser,\n node: N.ClassAccessorProperty,\n ): N.ClassAccessorProperty {\n this.parseInitializer(node);\n this.semicolon();\n return this.finishNode(node, \"ClassAccessorProperty\");\n }\n\n // https://tc39.es/ecma262/#prod-Initializer\n parseInitializer(\n this: Parser,\n node: Undone<\n N.ClassProperty | N.ClassPrivateProperty | N.ClassAccessorProperty\n >,\n ): void {\n this.scope.enter(ScopeFlag.CLASS | ScopeFlag.SUPER);\n this.expressionScope.enter(newExpressionScope());\n this.prodParam.enter(ParamKind.PARAM);\n node.value = this.eat(tt.eq) ? this.parseMaybeAssignAllowIn() : null;\n this.expressionScope.exit();\n this.prodParam.exit();\n this.scope.exit();\n }\n\n parseClassId(\n node: Undone<N.Class>,\n isStatement: boolean,\n optionalId?: boolean | null,\n bindingType: BindingFlag = BindingFlag.TYPE_CLASS,\n ): void {\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, { at: this.state.startLoc });\n }\n }\n }\n\n // https://tc39.es/ecma262/#prod-ClassHeritage\n parseClassSuper(this: Parser, node: Undone<N.Class>): void {\n node.superClass = this.eat(tt._extends) ? this.parseExprSubscripts() : null;\n }\n\n // Parses module export declaration.\n // https://tc39.es/ecma262/#prod-ExportDeclaration\n\n parseExport(\n this: Parser,\n node: Undone<\n | N.ExportDefaultDeclaration\n | N.ExportAllDeclaration\n | N.ExportNamedDeclaration\n >,\n decorators: N.Decorator[] | null,\n ): N.AnyExport {\n const maybeDefaultIdentifier = this.parseMaybeImportPhase(\n node,\n /* isExport */ true,\n );\n const hasDefault = this.maybeParseExportDefaultSpecifier(\n node,\n maybeDefaultIdentifier,\n );\n const parseAfterDefault = !hasDefault || this.eat(tt.comma);\n const hasStar =\n parseAfterDefault &&\n this.eatExportStar(\n // @ts-expect-error todo(flow->ts)\n node,\n );\n const hasNamespace =\n hasStar &&\n this.maybeParseExportNamespaceSpecifier(\n // @ts-expect-error todo(flow->ts)\n node,\n );\n const parseAfterNamespace =\n parseAfterDefault && (!hasNamespace || this.eat(tt.comma));\n const isFromRequired = hasDefault || hasStar;\n\n if (hasStar && !hasNamespace) {\n if (hasDefault) this.unexpected();\n if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, { at: node });\n }\n this.parseExportFrom(node as Undone<N.ExportNamedDeclaration>, true);\n\n return this.finishNode(node, \"ExportAllDeclaration\");\n }\n\n const hasSpecifiers = this.maybeParseExportNamedSpecifiers(\n // @ts-expect-error todo(flow->ts)\n node,\n );\n\n if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers) {\n this.unexpected(null, tt.braceL);\n }\n\n if (hasNamespace && parseAfterNamespace) {\n this.unexpected(null, tt._from);\n }\n\n let hasDeclaration;\n if (isFromRequired || hasSpecifiers) {\n hasDeclaration = false;\n if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, { at: node });\n }\n this.parseExportFrom(\n node as Undone<N.ExportNamedDeclaration>,\n isFromRequired,\n );\n } else {\n hasDeclaration = this.maybeParseExportDeclaration(\n node as Undone<N.ExportNamedDeclaration>,\n );\n }\n\n if (isFromRequired || hasSpecifiers || hasDeclaration) {\n const node2 = node as Undone<N.ExportNamedDeclaration>;\n this.checkExport(node2, true, false, !!node2.source);\n if (node2.declaration?.type === \"ClassDeclaration\") {\n this.maybeTakeDecorators(decorators, node2.declaration, node2);\n } else if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, { at: node });\n }\n return this.finishNode(node2, \"ExportNamedDeclaration\");\n }\n\n if (this.eat(tt._default)) {\n const node2 = node as Undone<N.ExportDefaultDeclaration>;\n // export default ...\n const decl = this.parseExportDefaultExpression();\n node2.declaration = decl;\n\n if (decl.type === \"ClassDeclaration\") {\n this.maybeTakeDecorators(decorators, decl as N.ClassDeclaration, node2);\n } else if (decorators) {\n throw this.raise(Errors.UnsupportedDecoratorExport, { at: node });\n }\n\n this.checkExport(node2, true, true);\n\n return this.finishNode(node2, \"ExportDefaultDeclaration\");\n }\n\n this.unexpected(null, tt.braceL);\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n eatExportStar(node: N.Node): boolean {\n return this.eat(tt.star);\n }\n\n maybeParseExportDefaultSpecifier(\n node: Undone<\n | N.ExportDefaultDeclaration\n | N.ExportAllDeclaration\n | N.ExportNamedDeclaration\n >,\n maybeDefaultIdentifier: N.Identifier | null,\n ): node is Undone<N.ExportNamedDeclaration> {\n if (maybeDefaultIdentifier || this.isExportDefaultSpecifier()) {\n // export defaultObj ...\n this.expectPlugin(\"exportDefaultFrom\", maybeDefaultIdentifier?.loc.start);\n const id = maybeDefaultIdentifier || this.parseIdentifier(true);\n const specifier = this.startNodeAtNode<N.ExportDefaultSpecifier>(id);\n specifier.exported = id;\n (node as Undone<N.ExportNamedDeclaration>).specifiers = [\n this.finishNode(specifier, \"ExportDefaultSpecifier\"),\n ];\n return true;\n }\n return false;\n }\n\n maybeParseExportNamespaceSpecifier(node: N.Node): boolean {\n if (this.isContextual(tt._as)) {\n if (!node.specifiers) node.specifiers = [];\n\n const specifier = this.startNodeAt(this.state.lastTokStartLoc);\n\n this.next();\n\n specifier.exported = this.parseModuleExportName();\n node.specifiers.push(\n this.finishNode(specifier, \"ExportNamespaceSpecifier\"),\n );\n return true;\n }\n return false;\n }\n\n maybeParseExportNamedSpecifiers(node: N.Node): boolean {\n if (this.match(tt.braceL)) {\n if (!node.specifiers) node.specifiers = [];\n const isTypeExport = node.exportKind === \"type\";\n node.specifiers.push(...this.parseExportSpecifiers(isTypeExport));\n\n node.source = null;\n node.declaration = null;\n if (this.hasPlugin(\"importAssertions\")) {\n node.assertions = [];\n }\n\n return true;\n }\n return false;\n }\n\n maybeParseExportDeclaration(\n this: Parser,\n node: Undone<N.ExportNamedDeclaration>,\n ): boolean {\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\n isAsyncFunction(): boolean {\n if (!this.isContextual(tt._async)) return false;\n const next = this.nextTokenInLineStart();\n return this.isUnparsedContextual(next, \"function\");\n }\n\n parseExportDefaultExpression(this: Parser): N.Expression | N.Declaration {\n const expr = this.startNode();\n\n if (this.match(tt._function)) {\n this.next();\n return this.parseFunction(\n expr as Undone<N.FunctionDeclaration>,\n ParseFunctionFlag.Declaration | ParseFunctionFlag.NullableId,\n );\n } else if (this.isAsyncFunction()) {\n this.next(); // eat 'async'\n this.next(); // eat 'function'\n return this.parseFunction(\n expr as Undone<N.FunctionDeclaration>,\n ParseFunctionFlag.Declaration |\n ParseFunctionFlag.NullableId |\n ParseFunctionFlag.Async,\n );\n }\n\n if (this.match(tt._class)) {\n return this.parseClass(expr as Undone<N.ClassExpression>, true, true);\n }\n\n if (this.match(tt.at)) {\n if (\n this.hasPlugin(\"decorators\") &&\n this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") === true\n ) {\n this.raise(Errors.DecoratorBeforeExport, { at: this.state.startLoc });\n }\n return this.parseClass(\n this.maybeTakeDecorators(\n this.parseDecorators(false),\n this.startNode<N.ClassDeclaration>(),\n ),\n true,\n true,\n );\n }\n\n if (this.match(tt._const) || this.match(tt._var) || this.isLet()) {\n throw this.raise(Errors.UnsupportedDefaultExport, {\n at: this.state.startLoc,\n });\n }\n\n const res = this.parseMaybeAssignAllowIn();\n this.semicolon();\n return res;\n }\n\n // https://tc39.es/ecma262/#prod-ExportDeclaration\n parseExportDeclaration(\n this: Parser,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n node: Undone<N.ExportNamedDeclaration>,\n ): N.Declaration | undefined | null {\n if (this.match(tt._class)) {\n const node = this.parseClass(\n this.startNode<N.ClassDeclaration>(),\n true,\n false,\n );\n return node;\n }\n return this.parseStatementListItem() as N.Declaration;\n }\n\n isExportDefaultSpecifier(): boolean {\n const { type } = this.state;\n if (tokenIsIdentifier(type)) {\n if ((type === tt._async && !this.state.containsEsc) || type === tt._let) {\n return false;\n }\n if (\n (type === tt._type || type === tt._interface) &&\n !this.state.containsEsc\n ) {\n const { type: nextType } = this.lookahead();\n // If we see any variable name other than `from` after `type` keyword,\n // we consider it as flow/typescript type exports\n // note that this approach may fail on some pedantic cases\n // export type from = number\n if (\n (tokenIsIdentifier(nextType) && nextType !== tt._from) ||\n nextType === tt.braceL\n ) {\n this.expectOnePlugin([\"flow\", \"typescript\"]);\n return false;\n }\n }\n } else if (!this.match(tt._default)) {\n return false;\n }\n\n const next = this.nextTokenStart();\n const hasFrom = this.isUnparsedContextual(next, \"from\");\n if (\n this.input.charCodeAt(next) === charCodes.comma ||\n (tokenIsIdentifier(this.state.type) && hasFrom)\n ) {\n return true;\n }\n // lookahead again when `export default from` is seen\n if (this.match(tt._default) && hasFrom) {\n const nextAfterFrom = this.input.charCodeAt(\n this.nextTokenStartSince(next + 4),\n );\n return (\n nextAfterFrom === charCodes.quotationMark ||\n nextAfterFrom === charCodes.apostrophe\n );\n }\n return false;\n }\n\n parseExportFrom(\n this: Parser,\n node: Undone<N.ExportNamedDeclaration>,\n expect?: boolean,\n ): void {\n if (this.eatContextual(tt._from)) {\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\n this.semicolon();\n }\n\n shouldParseExportDeclaration(): boolean {\n const { type } = this.state;\n if (type === tt.at) {\n this.expectOnePlugin([\"decorators\", \"decorators-legacy\"]);\n if (this.hasPlugin(\"decorators\")) {\n if (\n this.getPluginOption(\"decorators\", \"decoratorsBeforeExport\") === true\n ) {\n this.raise(Errors.DecoratorBeforeExport, {\n at: this.state.startLoc,\n });\n }\n\n return true;\n }\n }\n\n return (\n type === tt._var ||\n type === tt._const ||\n type === tt._function ||\n type === tt._class ||\n this.isLet() ||\n this.isAsyncFunction()\n );\n }\n\n checkExport(\n node: Undone<N.ExportNamedDeclaration | N.ExportDefaultDeclaration>,\n checkNames?: boolean,\n isDefault?: boolean,\n isFrom?: boolean,\n ): void {\n if (checkNames) {\n // Check for duplicate exports\n if (isDefault) {\n // Default exports\n this.checkDuplicateExports(node, \"default\");\n if (this.hasPlugin(\"exportDefaultFrom\")) {\n const declaration = (node as any as N.ExportDefaultDeclaration)\n .declaration;\n if (\n declaration.type === \"Identifier\" &&\n declaration.name === \"from\" &&\n declaration.end - declaration.start === 4 && // does not contain escape\n !declaration.extra?.parenthesized\n ) {\n this.raise(Errors.ExportDefaultFromAsIdentifier, {\n at: declaration,\n });\n }\n }\n // @ts-expect-error node.specifiers may not exist\n } else if (node.specifiers?.length) {\n // Named exports\n // @ts-expect-error node.specifiers may not exist\n for (const specifier of node.specifiers) {\n const { exported } = specifier;\n const exportName =\n exported.type === \"Identifier\" ? exported.name : exported.value;\n this.checkDuplicateExports(specifier, exportName);\n if (!isFrom && specifier.local) {\n const { local } = specifier;\n if (local.type !== \"Identifier\") {\n this.raise(Errors.ExportBindingIsString, {\n at: specifier,\n localName: local.value,\n exportName,\n });\n } else {\n // check for keywords used as local names\n this.checkReservedWord(local.name, local.loc.start, true, false);\n // check if export is defined\n this.scope.checkLocalExport(local);\n }\n }\n }\n } else if (node.declaration) {\n // Exported declarations\n if (\n node.declaration.type === \"FunctionDeclaration\" ||\n node.declaration.type === \"ClassDeclaration\"\n ) {\n const id = node.declaration.id;\n if (!id) throw new Error(\"Assertion failure\");\n\n this.checkDuplicateExports(node, id.name);\n } else if (node.declaration.type === \"VariableDeclaration\") {\n for (const declaration of node.declaration.declarations) {\n this.checkDeclaration(declaration.id);\n }\n }\n }\n }\n }\n\n checkDeclaration(node: N.Pattern | N.ObjectProperty): void {\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 // @ts-expect-error migrate to Babel types\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\n checkDuplicateExports(\n node: Undone<\n | N.Identifier\n | N.StringLiteral\n | N.ExportNamedDeclaration\n | N.ExportSpecifier\n | N.ExportDefaultSpecifier\n >,\n exportName: string,\n ): void {\n if (this.exportedIdentifiers.has(exportName)) {\n if (exportName === \"default\") {\n this.raise(Errors.DuplicateDefaultExport, { at: node });\n } else {\n this.raise(Errors.DuplicateExport, { at: node, exportName });\n }\n }\n this.exportedIdentifiers.add(exportName);\n }\n\n // Parses a comma-separated list of module exports.\n\n parseExportSpecifiers(isInTypeExport: boolean): Array<N.ExportSpecifier> {\n const nodes = [];\n let first = true;\n\n // export { x, y as z } [from '...']\n this.expect(tt.braceL);\n\n while (!this.eat(tt.braceR)) {\n if (first) {\n first = false;\n } else {\n this.expect(tt.comma);\n if (this.eat(tt.braceR)) break;\n }\n const isMaybeTypeOnly = this.isContextual(tt._type);\n const isString = this.match(tt.string);\n const node = this.startNode();\n node.local = this.parseModuleExportName();\n nodes.push(\n this.parseExportSpecifier(\n node,\n isString,\n isInTypeExport,\n isMaybeTypeOnly,\n ),\n );\n }\n\n return nodes;\n }\n\n parseExportSpecifier(\n node: any,\n isString: boolean,\n /* eslint-disable @typescript-eslint/no-unused-vars -- used in TypeScript parser */\n isInTypeExport: boolean,\n isMaybeTypeOnly: boolean,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ): N.ExportSpecifier {\n if (this.eatContextual(tt._as)) {\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<N.ExportSpecifier>(node, \"ExportSpecifier\");\n }\n\n // https://tc39.es/ecma262/#prod-ModuleExportName\n parseModuleExportName(): N.StringLiteral | N.Identifier {\n if (this.match(tt.string)) {\n const result = this.parseStringLiteral(this.state.value);\n const surrogate = result.value.match(loneSurrogate);\n if (surrogate) {\n this.raise(Errors.ModuleExportNameHasLoneSurrogate, {\n at: result,\n surrogateCharCode: surrogate[0].charCodeAt(0),\n });\n }\n return result;\n }\n return this.parseIdentifier(true);\n }\n\n isJSONModuleImport(\n node: Undone<\n N.ExportAllDeclaration | N.ExportNamedDeclaration | N.ImportDeclaration\n >,\n ): boolean {\n if (node.assertions != null) {\n return node.assertions.some(({ key, value }) => {\n return (\n value.value === \"json\" &&\n (key.type === \"Identifier\"\n ? key.name === \"type\"\n : key.value === \"type\")\n );\n });\n }\n return false;\n }\n\n checkImportReflection(node: Undone<N.ImportDeclaration>) {\n const { specifiers } = node;\n const singleBindingType =\n specifiers.length === 1 ? specifiers[0].type : null;\n\n if (node.phase === \"source\") {\n if (singleBindingType !== \"ImportDefaultSpecifier\") {\n this.raise(Errors.SourcePhaseImportRequiresDefault, {\n at: specifiers[0].loc.start,\n });\n }\n } else if (node.phase === \"defer\") {\n if (singleBindingType !== \"ImportNamespaceSpecifier\") {\n this.raise(Errors.DeferImportRequiresNamespace, {\n at: specifiers[0].loc.start,\n });\n }\n } else if (node.module) {\n if (singleBindingType !== \"ImportDefaultSpecifier\") {\n this.raise(Errors.ImportReflectionNotBinding, {\n at: specifiers[0].loc.start,\n });\n }\n if (node.assertions?.length > 0) {\n this.raise(Errors.ImportReflectionHasAssertion, {\n at: node.specifiers[0].loc.start,\n });\n }\n }\n }\n\n checkJSONModuleImport(\n node: Undone<\n N.ExportAllDeclaration | N.ExportNamedDeclaration | N.ImportDeclaration\n >,\n ) {\n // @ts-expect-error Fixme: node.type must be undefined because they are undone\n if (this.isJSONModuleImport(node) && node.type !== \"ExportAllDeclaration\") {\n // @ts-expect-error specifiers may not index node\n const { specifiers } = node;\n if (specifiers != null) {\n // @ts-expect-error refine specifier types\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\"\n ? imported.name !== \"default\"\n : imported.value !== \"default\";\n }\n });\n if (nonDefaultNamedSpecifier !== undefined) {\n this.raise(Errors.ImportJSONBindingNotDefault, {\n at: nonDefaultNamedSpecifier.loc.start,\n });\n }\n }\n }\n }\n\n isPotentialImportPhase(isExport: boolean): boolean {\n if (isExport) return false;\n return (\n this.isContextual(tt._source) ||\n this.isContextual(tt._defer) ||\n this.isContextual(tt._module)\n );\n }\n\n applyImportPhase(\n node: Undone<N.ImportDeclaration | N.ExportNamedDeclaration>,\n isExport: boolean,\n phase: string | null,\n loc?: Position,\n ): void {\n if (isExport) {\n if (!process.env.IS_PUBLISH) {\n if (phase === \"module\" || phase === \"source\") {\n throw new Error(\n `Assertion failure: export declarations do not support the '${phase}' phase.`,\n );\n }\n }\n return;\n }\n\n if (phase === \"module\") {\n this.expectPlugin(\"importReflection\", loc);\n (node as N.ImportDeclaration).module = true;\n } else if (this.hasPlugin(\"importReflection\")) {\n (node as N.ImportDeclaration).module = false;\n }\n\n if (phase === \"source\") {\n this.expectPlugin(\"sourcePhaseImports\", loc);\n (node as N.ImportDeclaration).phase = \"source\";\n } else if (phase === \"defer\") {\n this.expectPlugin(\"deferredImportEvaluation\", loc);\n (node as N.ImportDeclaration).phase = \"defer\";\n } else if (this.hasPlugin(\"sourcePhaseImports\")) {\n (node as N.ImportDeclaration).phase = null;\n }\n }\n\n /*\n * Parse `module` in `import module x from \"x\"`, disambiguating\n * `import module from \"x\"` and `import module from from \"x\"`.\n *\n * This function might return an identifier representing the `module`\n * if it eats `module` and then discovers that it was the default import\n * binding and not the import reflection.\n *\n * This function is also used to parse `import type` and `import typeof`\n * in the TS and Flow plugins.\n *\n * Note: the proposal has been updated to use `source` instead of `module`,\n * but it has not been implemented yet.\n */\n parseMaybeImportPhase(\n node: Undone<N.ImportDeclaration | N.TsImportEqualsDeclaration>,\n isExport: boolean,\n ): N.Identifier | null {\n if (!this.isPotentialImportPhase(isExport)) {\n this.applyImportPhase(\n node as Undone<N.ImportDeclaration>,\n isExport,\n null,\n );\n return null;\n }\n\n const phaseIdentifier = this.parseIdentifier(true);\n\n const { type } = this.state;\n const isImportPhase = tokenIsKeywordOrIdentifier(type)\n ? // OK: import <phase> x from \"foo\";\n // OK: import <phase> from from \"foo\";\n // NO: import <phase> from \"foo\";\n // NO: import <phase> from 'foo';\n // With the module declarations proposals, we will need further disambiguation\n // for `import module from from;`.\n type !== tt._from || this.lookaheadCharCode() === charCodes.lowercaseF\n : // OK: import <phase> { x } from \"foo\";\n // OK: import <phase> x from \"foo\";\n // OK: import <phase> * as T from \"foo\";\n // NO: import <phase> from \"foo\";\n // OK: import <phase> \"foo\";\n // The last one is invalid, we will continue parsing and throw\n // an error later\n type !== tt.comma;\n\n if (isImportPhase) {\n this.resetPreviousIdentifierLeadingComments(phaseIdentifier);\n this.applyImportPhase(\n node as Undone<N.ImportDeclaration>,\n isExport,\n phaseIdentifier.name,\n phaseIdentifier.loc.start,\n );\n return null;\n } else {\n this.applyImportPhase(\n node as Undone<N.ImportDeclaration>,\n isExport,\n null,\n );\n // `<phase>` is a default binding, return it to the main import declaration parser\n return phaseIdentifier;\n }\n }\n\n isPrecedingIdImportPhase(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n phase: string,\n ) {\n const { type } = this.state;\n return tokenIsIdentifier(type)\n ? // OK: import <phase> x from \"foo\";\n // OK: import <phase> from from \"foo\";\n // NO: import <phase> from \"foo\";\n // NO: import <phase> from 'foo';\n // With the module declarations proposals, we will need further disambiguation\n // for `import module from from;`.\n type !== tt._from || this.lookaheadCharCode() === charCodes.lowercaseF\n : // OK: import <phase> { x } from \"foo\";\n // OK: import <phase> x from \"foo\";\n // OK: import <phase> * as T from \"foo\";\n // NO: import <phase> from \"foo\";\n // OK: import <phase> \"foo\";\n // The last one is invalid, we will continue parsing and throw\n // an error later\n type !== tt.comma;\n }\n\n // Parses import declaration.\n // https://tc39.es/ecma262/#prod-ImportDeclaration\n\n parseImport(this: Parser, node: Undone<N.ImportDeclaration>): N.AnyImport {\n if (this.match(tt.string)) {\n // import '...'\n return this.parseImportSourceAndAttributes(node);\n }\n\n return this.parseImportSpecifiersAndAfter(\n node,\n this.parseMaybeImportPhase(node, /* isExport */ false),\n );\n }\n\n parseImportSpecifiersAndAfter(\n this: Parser,\n node: Undone<N.ImportDeclaration>,\n maybeDefaultIdentifier: N.Identifier | null,\n ): N.AnyImport {\n node.specifiers = [];\n\n // check if we have a default import like\n // import React from \"react\";\n const hasDefault = this.maybeParseDefaultImportSpecifier(\n node,\n maybeDefaultIdentifier,\n );\n /* we are checking if we do not have a default import, then it is obvious that we need named imports\n * import { get } from \"axios\";\n * but if we do have a default import\n * we need to check if we have a comma after that and\n * that is where this `|| this.eat` condition comes into play\n */\n const parseNext = !hasDefault || this.eat(tt.comma);\n // if we do have to parse the next set of specifiers, we first check for star imports\n // import React, * from \"react\";\n const hasStar = parseNext && this.maybeParseStarImportSpecifier(node);\n // now we check if we need to parse the next imports\n // but only if they are not importing * (everything)\n if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node);\n this.expectContextual(tt._from);\n\n return this.parseImportSourceAndAttributes(node);\n }\n\n parseImportSourceAndAttributes(\n this: Parser,\n node: Undone<N.ImportDeclaration>,\n ): N.AnyImport {\n node.specifiers ??= [];\n node.source = this.parseImportSource();\n this.maybeParseImportAttributes(node);\n this.checkImportReflection(node);\n this.checkJSONModuleImport(node);\n\n this.semicolon();\n return this.finishNode(node, \"ImportDeclaration\");\n }\n\n parseImportSource(this: Parser): N.StringLiteral {\n if (!this.match(tt.string)) this.unexpected();\n return this.parseExprAtom() as N.StringLiteral;\n }\n\n parseImportSpecifierLocal<\n T extends\n | N.ImportSpecifier\n | N.ImportDefaultSpecifier\n | N.ImportNamespaceSpecifier,\n >(\n node: Undone<N.ImportDeclaration>,\n specifier: Undone<T>,\n type: T[\"type\"],\n ): void {\n specifier.local = this.parseIdentifier();\n node.specifiers.push(this.finishImportSpecifier(specifier, type));\n }\n\n finishImportSpecifier<\n T extends\n | N.ImportSpecifier\n | N.ImportDefaultSpecifier\n | N.ImportNamespaceSpecifier,\n >(\n specifier: Undone<T>,\n type: T[\"type\"],\n bindingType: BindingFlag = BindingFlag.TYPE_LEXICAL,\n ) {\n this.checkLVal(specifier.local, {\n in: { type },\n binding: bindingType,\n });\n return this.finishNode(specifier, type);\n }\n\n /**\n * parse assert entries\n *\n * @see {@link https://tc39.es/proposal-import-attributes/#prod-WithEntries WithEntries}\n */\n parseImportAttributes(): N.ImportAttribute[] {\n this.expect(tt.braceL);\n\n const attrs = [];\n const attrNames = new Set();\n\n do {\n if (this.match(tt.braceR)) {\n break;\n }\n\n const node = this.startNode<N.ImportAttribute>();\n\n // parse AssertionKey : IdentifierName, StringLiteral\n const keyName = this.state.value;\n // check if we already have an entry for an attribute\n // if a duplicate entry is found, throw an error\n // for now this logic will come into play only when someone declares `type` twice\n if (attrNames.has(keyName)) {\n this.raise(Errors.ModuleAttributesWithDuplicateKeys, {\n at: this.state.startLoc,\n key: keyName,\n });\n }\n attrNames.add(keyName);\n if (this.match(tt.string)) {\n node.key = this.parseStringLiteral(keyName);\n } else {\n node.key = this.parseIdentifier(true);\n }\n this.expect(tt.colon);\n\n if (!this.match(tt.string)) {\n throw this.raise(Errors.ModuleAttributeInvalidValue, {\n at: this.state.startLoc,\n });\n }\n node.value = this.parseStringLiteral(this.state.value);\n attrs.push(this.finishNode(node, \"ImportAttribute\"));\n } while (this.eat(tt.comma));\n\n this.expect(tt.braceR);\n\n return attrs;\n }\n\n /**\n * parse module attributes\n * @deprecated It will be removed in Babel 8\n */\n parseModuleAttributes() {\n const attrs: N.ImportAttribute[] = [];\n const attributes = new Set();\n do {\n const node = this.startNode<N.ImportAttribute>();\n node.key = this.parseIdentifier(true);\n\n if (node.key.name !== \"type\") {\n this.raise(Errors.ModuleAttributeDifferentFromType, {\n at: node.key,\n });\n }\n\n if (attributes.has(node.key.name)) {\n this.raise(Errors.ModuleAttributesWithDuplicateKeys, {\n at: node.key,\n key: node.key.name,\n });\n }\n attributes.add(node.key.name);\n this.expect(tt.colon);\n if (!this.match(tt.string)) {\n throw this.raise(Errors.ModuleAttributeInvalidValue, {\n at: this.state.startLoc,\n });\n }\n node.value = this.parseStringLiteral(this.state.value);\n attrs.push(this.finishNode(node, \"ImportAttribute\"));\n } while (this.eat(tt.comma));\n\n return attrs;\n }\n\n maybeParseImportAttributes(\n node: Undone<N.ImportDeclaration | N.ExportNamedDeclaration>,\n ) {\n let attributes: N.ImportAttribute[];\n let useWith = false;\n\n // https://tc39.es/proposal-import-attributes/#prod-WithClause\n if (this.match(tt._with)) {\n if (\n this.hasPrecedingLineBreak() &&\n this.lookaheadCharCode() === charCodes.leftParenthesis\n ) {\n // This will be parsed as a with statement, and we will throw a\n // better error about it not being supported in strict mode.\n return;\n }\n\n this.next(); // eat `with`\n\n if (!process.env.BABEL_8_BREAKING) {\n if (this.hasPlugin(\"moduleAttributes\")) {\n attributes = this.parseModuleAttributes();\n } else {\n this.expectImportAttributesPlugin();\n attributes = this.parseImportAttributes();\n }\n } else {\n this.expectImportAttributesPlugin();\n attributes = this.parseImportAttributes();\n }\n useWith = true;\n } else if (this.isContextual(tt._assert) && !this.hasPrecedingLineBreak()) {\n if (this.hasPlugin(\"importAttributes\")) {\n if (\n this.getPluginOption(\"importAttributes\", \"deprecatedAssertSyntax\") !==\n true\n ) {\n this.raise(Errors.ImportAttributesUseAssert, {\n at: this.state.startLoc,\n });\n }\n this.addExtra(node, \"deprecatedAssertSyntax\", true);\n } else {\n this.expectOnePlugin([\"importAttributes\", \"importAssertions\"]);\n }\n this.next(); // eat `assert`\n attributes = this.parseImportAttributes();\n } else if (\n this.hasPlugin(\"importAttributes\") ||\n this.hasPlugin(\"importAssertions\")\n ) {\n attributes = [];\n } else if (!process.env.BABEL_8_BREAKING) {\n if (this.hasPlugin(\"moduleAttributes\")) {\n attributes = [];\n } else return;\n } else return;\n\n if (!useWith && this.hasPlugin(\"importAssertions\")) {\n node.assertions = attributes;\n } else {\n node.attributes = attributes;\n }\n }\n\n maybeParseDefaultImportSpecifier(\n node: Undone<N.ImportDeclaration>,\n maybeDefaultIdentifier: N.Identifier | null,\n ): boolean {\n // import defaultObj, { x, y as z } from '...'\n if (maybeDefaultIdentifier) {\n const specifier = this.startNodeAtNode<N.ImportDefaultSpecifier>(\n maybeDefaultIdentifier,\n );\n specifier.local = maybeDefaultIdentifier;\n node.specifiers.push(\n this.finishImportSpecifier(specifier, \"ImportDefaultSpecifier\"),\n );\n return true;\n } else if (\n // We allow keywords, and parseImportSpecifierLocal will report a recoverable error\n tokenIsKeywordOrIdentifier(this.state.type)\n ) {\n this.parseImportSpecifierLocal(\n node,\n this.startNode<N.ImportDefaultSpecifier>(),\n \"ImportDefaultSpecifier\",\n );\n return true;\n }\n return false;\n }\n\n maybeParseStarImportSpecifier(node: Undone<N.ImportDeclaration>): boolean {\n if (this.match(tt.star)) {\n const specifier = this.startNode<N.ImportNamespaceSpecifier>();\n this.next();\n this.expectContextual(tt._as);\n\n this.parseImportSpecifierLocal(\n node,\n specifier,\n \"ImportNamespaceSpecifier\",\n );\n return true;\n }\n return false;\n }\n\n parseNamedImportSpecifiers(node: Undone<N.ImportDeclaration>) {\n let first = true;\n this.expect(tt.braceL);\n while (!this.eat(tt.braceR)) {\n if (first) {\n first = false;\n } else {\n // Detect an attempt to deep destructure\n if (this.eat(tt.colon)) {\n throw this.raise(Errors.DestructureNamedImport, {\n at: this.state.startLoc,\n });\n }\n\n this.expect(tt.comma);\n if (this.eat(tt.braceR)) break;\n }\n\n const specifier = this.startNode<N.ImportSpecifier>();\n const importedIsString = this.match(tt.string);\n const isMaybeTypeOnly = this.isContextual(tt._type);\n specifier.imported = this.parseModuleExportName();\n const importSpecifier = this.parseImportSpecifier(\n specifier,\n importedIsString,\n node.importKind === \"type\" || node.importKind === \"typeof\",\n isMaybeTypeOnly,\n undefined,\n );\n node.specifiers.push(importSpecifier);\n }\n }\n\n // https://tc39.es/ecma262/#prod-ImportSpecifier\n parseImportSpecifier(\n specifier: Undone<N.ImportSpecifier>,\n importedIsString: boolean,\n /* eslint-disable @typescript-eslint/no-unused-vars -- used in TypeScript and Flow parser */\n isInTypeOnlyImport: boolean,\n isMaybeTypeOnly: boolean,\n bindingType: BindingFlag | undefined,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ): N.ImportSpecifier {\n if (this.eatContextual(tt._as)) {\n specifier.local = this.parseIdentifier();\n } else {\n const { imported } = specifier;\n if (importedIsString) {\n throw this.raise(Errors.ImportBindingIsString, {\n at: specifier,\n importName: (imported as N.StringLiteral).value,\n });\n }\n this.checkReservedWord(\n (imported as N.Identifier).name,\n specifier.loc.start,\n true,\n true,\n );\n if (!specifier.local) {\n specifier.local = cloneIdentifier(imported);\n }\n }\n return this.finishImportSpecifier(\n specifier,\n \"ImportSpecifier\",\n bindingType,\n );\n }\n\n // This is used in flow and typescript plugin\n // Determine whether a parameter is a this param\n isThisParam(\n param: N.Pattern | N.Identifier | N.TSParameterProperty,\n ): boolean {\n return param.type === \"Identifier\" && param.name === \"this\";\n }\n}\n","import type { Options } from \"../options.ts\";\nimport type * as N from \"../types.ts\";\nimport type { PluginList } from \"../plugin-utils.ts\";\nimport { getOptions } from \"../options.ts\";\nimport StatementParser from \"./statement.ts\";\nimport ScopeHandler from \"../util/scope.ts\";\n\nexport type PluginsMap = Map<\n string,\n {\n [x: string]: any;\n }\n>;\n\nexport default class Parser extends StatementParser {\n // Forward-declaration so typescript plugin can override jsx plugin\n // todo(flow->ts) - this probably can be removed\n // abstract jsxParseOpeningElementAfterName(\n // node: N.JSXOpeningElement,\n // ): N.JSXOpeningElement;\n\n constructor(options: Options | undefined | null, input: string) {\n options = getOptions(options);\n super(options, input);\n\n this.options = options;\n this.initializeScopes();\n this.plugins = pluginsMap(this.options.plugins);\n this.filename = options.sourceFilename;\n }\n\n // This can be overwritten, for example, by the TypeScript plugin.\n getScopeHandler(): {\n new (...args: any): ScopeHandler;\n } {\n return ScopeHandler;\n }\n\n parse(): N.File {\n this.enterInitialScopes();\n const file = this.startNode() as N.File;\n const program = this.startNode() as N.Program;\n this.nextToken();\n file.errors = null;\n this.parseTopLevel(file, program);\n file.errors = this.state.errors;\n return file;\n }\n}\n\nfunction pluginsMap(plugins: PluginList): PluginsMap {\n const pluginMap: PluginsMap = new Map();\n for (const plugin of plugins) {\n const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}];\n if (!pluginMap.has(name)) pluginMap.set(name, options || {});\n }\n return pluginMap;\n}\n","import type { Options } from \"./options.ts\";\nimport {\n hasPlugin,\n validatePlugins,\n mixinPluginNames,\n mixinPlugins,\n type PluginList,\n} from \"./plugin-utils.ts\";\nimport type {\n PluginConfig as ParserPlugin,\n FlowPluginOptions,\n RecordAndTuplePluginOptions,\n PipelineOperatorPluginOptions,\n} from \"./typings.ts\";\nimport Parser from \"./parser/index.ts\";\n\nimport type { ExportedTokenType } from \"./tokenizer/types.ts\";\nimport {\n getExportedToken,\n tt as internalTokenTypes,\n type InternalTokenTypes,\n} from \"./tokenizer/types.ts\";\n\nimport type { Expression, File } from \"./types.ts\";\n\nexport function parse(input: string, options?: Options): File {\n if (options?.sourceType === \"unambiguous\") {\n options = {\n ...options,\n };\n try {\n options.sourceType = \"module\";\n const parser = getParser(options, input);\n const ast = parser.parse();\n\n if (parser.sawUnambiguousESM) {\n return ast;\n }\n\n if (parser.ambiguousScriptDifferentAst) {\n // Top level await introduces code which can be both a valid script and\n // a valid module, but which produces different ASTs:\n // await\n // 0\n // can be parsed either as an AwaitExpression, or as two ExpressionStatements.\n try {\n options.sourceType = \"script\";\n return getParser(options, input).parse();\n } catch {}\n } else {\n // This is both a valid module and a valid script, but\n // we parse it as a script by default\n ast.program.sourceType = \"script\";\n }\n\n return ast;\n } catch (moduleError) {\n try {\n options.sourceType = \"script\";\n return getParser(options, input).parse();\n } catch {}\n\n throw moduleError;\n }\n } else {\n return getParser(options, input).parse();\n }\n}\n\nexport function parseExpression(input: string, options?: Options): Expression {\n const parser = getParser(options, input);\n if (parser.options.strictMode) {\n parser.state.strict = true;\n }\n return parser.getExpression();\n}\n\nfunction generateExportedTokenTypes(\n internalTokenTypes: InternalTokenTypes,\n): Record<string, ExportedTokenType> {\n const tokenTypes: Record<string, ExportedTokenType> = {};\n for (const typeName of Object.keys(\n internalTokenTypes,\n ) as (keyof InternalTokenTypes)[]) {\n tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]);\n }\n return tokenTypes;\n}\n\nexport const tokTypes = generateExportedTokenTypes(internalTokenTypes);\n\nfunction getParser(options: Options | undefined | null, input: string): Parser {\n let cls = Parser;\n if (options?.plugins) {\n validatePlugins(options.plugins);\n cls = getParserClass(options.plugins);\n }\n\n return new cls(options, input);\n}\n\nconst parserClassCache: { [key: string]: { new (...args: any): Parser } } = {};\n\n/** Get a Parser class with plugins applied. */\nfunction getParserClass(pluginsFromOptions: PluginList): {\n new (...args: any): Parser;\n} {\n const pluginList = mixinPluginNames.filter(name =>\n hasPlugin(pluginsFromOptions, name),\n );\n\n const key = pluginList.join(\"/\");\n let cls = parserClassCache[key];\n if (!cls) {\n cls = Parser;\n for (const plugin of pluginList) {\n // @ts-expect-error todo(flow->ts)\n cls = mixinPlugins[plugin](cls);\n }\n parserClassCache[key] = cls;\n }\n return cls;\n}\n\nexport type {\n FlowPluginOptions,\n ParserPlugin,\n PipelineOperatorPluginOptions,\n RecordAndTuplePluginOptions,\n};\nexport type ParserOptions = Partial<Options>;\n"],"names":["Position","constructor","line","col","index","column","SourceLocation","start","end","filename","identifierName","createPositionWithColumnOffset","position","columnOffset","code","ModuleErrors","ImportMetaOutsideModule","message","ImportOutsideModule","NodeDescriptions","ArrayPattern","AssignmentExpression","AssignmentPattern","ArrowFunctionExpression","ConditionalExpression","CatchClause","ForOfStatement","ForInStatement","ForStatement","FormalParameters","Identifier","ImportSpecifier","ImportDefaultSpecifier","ImportNamespaceSpecifier","ObjectPattern","ParenthesizedExpression","RestElement","UpdateExpression","true","false","VariableDeclarator","YieldExpression","toNodeDescription","type","prefix","String","StandardErrors","AccessorIsGenerator","kind","ArgumentsInClass","AsyncFunctionInSingleStatementContext","AwaitBindingIdentifier","AwaitBindingIdentifierInStaticBlock","AwaitExpressionFormalParameter","AwaitUsingNotInAsyncContext","AwaitNotInAsyncContext","AwaitNotInAsyncFunction","BadGetterArity","BadSetterArity","BadSetterRestParameter","ConstructorClassField","ConstructorClassPrivateField","ConstructorIsAccessor","ConstructorIsAsync","ConstructorIsGenerator","DeclarationMissingInitializer","DecoratorArgumentsOutsideParentheses","DecoratorBeforeExport","DecoratorsBeforeAfterExport","DecoratorConstructor","DecoratorExportClass","DecoratorSemicolon","DecoratorStaticBlock","DeferImportRequiresNamespace","DeletePrivateField","DestructureNamedImport","DuplicateConstructor","DuplicateDefaultExport","DuplicateExport","exportName","DuplicateProto","DuplicateRegExpFlags","DynamicImportPhaseRequiresImportExpressions","phase","ElementAfterRest","EscapedCharNotAnIdentifier","ExportBindingIsString","localName","ExportDefaultFromAsIdentifier","ForInOfLoopInitializer","ForInUsing","ForOfAsync","ForOfLet","GeneratorInSingleStatementContext","IllegalBreakContinue","IllegalLanguageModeDirective","IllegalReturn","ImportAttributesUseAssert","ImportBindingIsString","importName","ImportCallArgumentTrailingComma","ImportCallArity","maxArgumentCount","ImportCallNotNewExpression","ImportCallSpreadArgument","ImportJSONBindingNotDefault","ImportReflectionHasAssertion","ImportReflectionNotBinding","IncompatibleRegExpUVFlags","InvalidBigIntLiteral","InvalidCodePoint","InvalidCoverInitializedName","InvalidDecimal","InvalidDigit","radix","InvalidEscapeSequence","InvalidEscapeSequenceTemplate","InvalidEscapedReservedWord","reservedWord","InvalidIdentifier","InvalidLhs","ancestor","InvalidLhsBinding","InvalidLhsOptionalChaining","InvalidNumber","InvalidOrMissingExponent","InvalidOrUnexpectedToken","unexpected","InvalidParenthesizedAssignment","InvalidPrivateFieldResolution","InvalidPropertyBindingPattern","InvalidRecordProperty","InvalidRestAssignmentPattern","LabelRedeclaration","labelName","LetInLexicalBinding","LineTerminatorBeforeArrow","MalformedRegExpFlags","MissingClassName","MissingEqInAssignment","MissingSemicolon","MissingPlugin","missingPlugin","map","name","JSON","stringify","join","MissingOneOfPlugins","MissingUnicodeEscape","MixingCoalesceWithLogical","ModuleAttributeDifferentFromType","ModuleAttributeInvalidValue","ModuleAttributesWithDuplicateKeys","key","ModuleExportNameHasLoneSurrogate","surrogateCharCode","toString","ModuleExportUndefined","MultipleDefaultsInSwitch","NewlineAfterThrow","NoCatchOrFinally","NumberIdentifier","NumericSeparatorInEscapeSequence","ObsoleteAwaitStar","OptionalChainingNoNew","OptionalChainingNoTemplate","OverrideOnConstructor","ParamDupe","PatternHasAccessor","PatternHasMethod","PrivateInExpectedIn","PrivateNameRedeclaration","RecordExpressionBarIncorrectEndSyntaxType","RecordExpressionBarIncorrectStartSyntaxType","RecordExpressionHashIncorrectStartSyntaxType","RecordNoProto","RestTrailingComma","SloppyFunction","SloppyFunctionAnnexB","SourcePhaseImportRequiresDefault","StaticPrototype","SuperNotAllowed","SuperPrivateField","TrailingDecorator","TupleExpressionBarIncorrectEndSyntaxType","TupleExpressionBarIncorrectStartSyntaxType","TupleExpressionHashIncorrectStartSyntaxType","UnexpectedArgumentPlaceholder","UnexpectedAwaitAfterPipelineBody","UnexpectedDigitAfterHash","UnexpectedImportExport","UnexpectedKeyword","keyword","UnexpectedLeadingDecorator","UnexpectedLexicalDeclaration","UnexpectedNewTarget","UnexpectedNumericSeparator","UnexpectedPrivateField","UnexpectedReservedWord","UnexpectedSuper","UnexpectedToken","expected","UnexpectedTokenUnaryExponentiation","UnexpectedUsingDeclaration","UnsupportedBind","UnsupportedDecoratorExport","UnsupportedDefaultExport","UnsupportedImport","UnsupportedMetaProperty","target","onlyValidPropertyName","UnsupportedParameterDecorator","UnsupportedPropertyDecorator","UnsupportedSuper","UnterminatedComment","UnterminatedRegExp","UnterminatedString","UnterminatedTemplate","UsingDeclarationHasBindingPattern","VarRedeclaration","YieldBindingIdentifier","YieldInParameter","ZeroDigitNumericSeparator","StrictModeErrors","StrictDelete","StrictEvalArguments","referenceName","StrictEvalArgumentsBinding","bindingName","StrictFunction","StrictNumericEscape","StrictOctalLiteral","StrictWith","UnparenthesizedPipeBodyDescriptions","Set","PipelineOperatorErrors","PipeBodyIsTighter","PipeTopicRequiresHackPipes","PipeTopicUnbound","PipeTopicUnconfiguredToken","token","PipeTopicUnused","PipeUnparenthesizedBody","PipelineBodyNoArrow","PipelineBodySequenceExpression","PipelineHeadSequenceExpression","PipelineTopicUnused","PrimaryTopicNotAllowed","PrimaryTopicRequiresSmartPipeline","defineHidden","obj","value","Object","defineProperty","enumerable","configurable","toParseErrorConstructor","_ref","toMessage","properties","_objectWithoutPropertiesLoose","_excluded","loc","details","error","SyntaxError","assign","pos","clone","overrides","_overrides$loc","get","set","writable","ParseErrorEnum","argument","syntaxPlugin","Array","isArray","parseErrorTemplates","ParseErrorConstructors","reasonCode","keys","template","_ref2","rest","_excluded2","Errors","toUnenumerable","object","toESTreeLocation","node","estree","superClass","ESTreeParserMixin","parse","file","options","tokens","parseRegExpLiteral","pattern","flags","regex","RegExp","e","estreeParseLiteral","parseBigIntLiteral","bigInt","BigInt","_unused","bigint","parseDecimalLiteral","decimal","parseLiteral","parseStringLiteral","parseNumericLiteral","parseNullLiteral","parseBooleanLiteral","directiveToStmt","directive","expression","raw","extra","expressionValue","stmt","rawValue","initFunction","isAsync","checkDeclaration","isObjectProperty","getObjectOrClassMethodParams","method","params","isValidDirective","_stmt$expression$extr","parenthesized","parseBlockBody","allowDirectives","topLevel","afterBlockParse","directiveStatements","directives","d","body","concat","pushClassMethod","classBody","isGenerator","isConstructor","allowsDirectSuper","parseMethod","typeParameters","push","parsePrivateName","getPluginOption","convertPrivateNameToPrivateIdentifier","getPrivateNameSV","id","isPrivateName","parseFunctionBody","allowExpression","isMethod","allowDirectSuper","inClassScope","funcNode","startNode","computed","finishNode","parseClassProperty","args","propertyNode","parseClassPrivateProperty","parseObjectMethod","prop","isPattern","isAccessor","shorthand","parseObjectProperty","startLoc","refExpressionErrors","isValidLVal","isUnparenthesizedInAssign","binding","isAssignable","isBinding","toAssignable","isLHS","classScope","usePrivateName","toAssignableObjectExpressionProp","isLast","raise","at","finishCallExpression","unfinished","optional","callee","source","arguments","hasPlugin","_node$arguments$","_node$arguments$2","attributes","toReferencedArguments","parseExport","decorators","exportStartLoc","state","lastTokStartLoc","exported","specifiers","length","_declaration$decorato","declaration","resetStartLocation","parseSubscript","base","noCalls","optionalChainMember","substring","stop","chain","startNodeAtNode","isOptionalMemberExpression","hasPropertyAsPrivateName","isObjectMethod","finishNodeAt","endLoc","resetEndLocation","lastTokEndLoc","TokContext","preserveSpace","types","brace","j_oTag","j_cTag","j_expr","beforeExpr","startsExpr","isLoop","isAssign","postfix","ExportedTokenType","label","conf","rightAssociative","binop","updateContext","keywords","Map","createKeyword","createToken","createBinop","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","bracketL","bracketHashL","bracketBarL","bracketR","bracketBarR","braceL","braceBarL","braceHashL","braceR","braceBarR","parenL","parenR","comma","semi","colon","doubleColon","dot","question","questionDot","arrow","ellipsis","backQuote","dollarBraceL","templateTail","templateNonTail","hash","interpreterDirective","eq","slashAssign","xorAssign","moduloAssign","incDec","bang","tilde","doubleCaret","doubleAt","pipeline","nullishCoalescing","logicalOR","logicalAND","bitwiseOR","bitwiseXOR","bitwiseAND","equality","lt","gt","relational","bitShift","bitShiftL","bitShiftR","plusMin","modulo","star","slash","exponent","_in","_instanceof","_break","_case","_catch","_continue","_debugger","_default","_else","_finally","_function","_if","_return","_switch","_throw","_try","_var","_const","_with","_new","_this","_super","_class","_extends","_export","_import","_null","_true","_false","_typeof","_void","_delete","_do","_for","_while","_as","_assert","_async","_await","_defer","_from","_get","_let","_meta","_of","_sent","_set","_source","_static","_using","_yield","_asserts","_checks","_exports","_global","_implements","_intrinsic","_infer","_is","_mixins","_proto","_require","_satisfies","_keyof","_readonly","_unique","_abstract","_declare","_enum","_module","_namespace","_interface","_type","_opaque","string","num","regexp","privateName","eof","jsxName","jsxText","jsxTagStart","jsxTagEnd","placeholder","tokenIsIdentifier","tokenKeywordOrIdentifierIsKeyword","tokenIsKeywordOrIdentifier","tokenIsLiteralPropertyName","tokenComesBeforeExpression","tokenCanStartExpression","tokenIsAssignment","tokenIsFlowInterfaceOrTypeOrOpaque","tokenIsLoop","tokenIsKeyword","tokenIsOperator","tokenIsPostfix","tokenIsPrefix","tokenIsTSTypeOperator","tokenIsTSDeclarationStart","tokenLabelName","tokenOperatorPrecedence","tokenIsRightAssociative","tokenIsTemplate","getExportedToken","context","pop","tc","nonASCIIidentifierStartChars","nonASCIIidentifierChars","nonASCIIidentifierStart","nonASCIIidentifier","astralIdentifierStartCodes","astralIdentifierCodes","isInAstralSet","i","isIdentifierStart","test","fromCharCode","isIdentifierChar","reservedWords","strict","strictBind","reservedWordsStrictSet","reservedWordsStrictBindSet","isReservedWord","word","inModule","isStrictReservedWord","has","isStrictBindOnlyReservedWord","isStrictBindReservedWord","isKeyword","isIteratorStart","current","next","next2","reservedWordLikeSet","canBeReservedWord","Scope","var","lexical","functions","ScopeHandler","parser","scopeStack","undefinedExports","inTopLevel","currentScope","inFunction","currentVarScopeFlags","allowSuper","currentThisScopeFlags","inClass","inClassAndNotInNonArrowFunction","inStaticBlock","ScopeFlag","inNonArrowFunction","treatFunctionsAsVar","treatFunctionsAsVarInScope","createScope","enter","exit","scope","declareName","bindingType","checkRedeclarationInScope","add","maybeExportDefined","delete","isRedeclaredInScope","values","checkLocalExport","topLevelScope","FlowScope","declareFunctions","FlowScopeHandler","BaseParser","sawUnambiguousESM","ambiguousScriptDifferentAst","pluginConfig","plugins","pluginName","pluginOptions","actualOptions","plugin","_this$plugins$get","setTrailingComments","comments","trailingComments","undefined","unshift","setLeadingComments","leadingComments","setInnerComments","innerComments","adjustInnerComments","elements","commentWS","lastElement","CommentsParser","addComment","comment","processComment","commentStack","commentStackLength","lastCommentWS","leadingNode","nodeStart","commentEnd","containingNode","finalizeComment","splice","trailingNode","commentStart","input","charCodeAt","finalizeRemainingComments","resetPreviousNodeTrailingComments","resetPreviousIdentifierLeadingComments","takeSurroundingComments","lineBreak","lineBreakG","isNewLine","skipWhiteSpace","skipWhiteSpaceInLine","skipWhiteSpaceToLineBreak","isWhitespace","State","curLine","lineStart","errors","potentialArrowAt","noArrowAt","noArrowParamsConversionAt","maybeInArrowParameters","inType","noAnonFunctionType","hasFlowComment","isAmbientContext","inAbstractClass","inDisallowConditionalTypesContext","topicContext","maxNumOfResolvableTopics","maxTopicIndex","soloAwait","inFSharpPipelineDirectBody","labels","lastTokStart","ct","canStartJSXElement","containsEsc","firstInvalidTemplateEscapePos","strictErrors","tokensLength","init","strictMode","sourceType","startLine","startColumn","curPosition","skipArrays","val","slice","isDigit","forbiddenNumericSeparatorSiblings","decBinOct","hex","isAllowedNumericSeparatorSibling","bin","ch","oct","dec","readStringContents","initialPos","initialLineStart","initialCurLine","out","firstInvalidLoc","chunkStart","unterminated","isStringEnd","res","readEscapedChar","str","containsInvalid","inTemplate","throwOnInvalid","readHexChar","readCodePoint","fromCodePoint","strictNumericEscape","startPos","match","octalStr","octal","parseInt","len","forceLen","n","readInt","invalidEscapeSequence","allowNumSeparator","bailOnError","forbiddenSiblings","isAllowedSibling","invalid","total","Infinity","prev","numericSeparatorInEscapeSequence","Number","isNaN","unexpectedNumericSeparator","_isDigit","invalidDigit","indexOf","invalidCodePoint","buildPosition","VALID_REGEX_FLAGS","Token","Tokenizer","isLookahead","errorHandlers_readInt","errorRecovery","errorBuilder","errorHandlers_readCodePoint","errorHandlers_readStringContents_string","recordStrictModeErrors","errorHandlers_readStringContents_template","pushToken","checkKeywordEscapes","nextToken","eat","createLookaheadState","curContext","lookahead","old","curr","nextTokenStart","nextTokenStartSince","lastIndex","lookaheadCharCode","nextTokenInLineStart","nextTokenInLineStartSince","lookaheadInLineCharCode","codePointAtPos","cp","trail","setStrict","forEach","toParseError","clear","skipSpace","finishToken","getTokenFromCode","skipBlockComment","skipLineComment","startSkip","spaceStart","loop","attachComment","annexB","commentWhitespace","prevType","replaceToken","readToken_numberSign","readToken_interpreter","nextPos","expectPlugin","readWord1","finishOp","readToken_dot","readNumber","readToken_slash","readToken_mult_modulo","width","readToken_pipe_amp","readToken_caret","proposal","topicToken","lookaheadCh","codePointAt","readToken_atSign","readToken_plus_min","readToken_lt","readToken_gt","size","readToken_eq_excl","readToken_question","readTemplateToken","readRadixNumber","readString","readWord","readRegexp","escaped","content","mods","char","includes","isBigInt","replace","startsWithDot","isFloat","isDecimal","hasExponent","isOctal","hasLeadingZero","integer","underscorePos","parseFloat","quote","readTemplateContinuation","opening","firstCode","escStart","identifierCheck","esc","keywordTypes","raiseProperties","raiseOverwrite","expectOnePlugin","pluginNames","some","ClassScope","privateNames","loneAccessors","undefinedPrivateNames","ClassScopeHandler","stack","oldClassScope","from","declarePrivateName","elementType","redefined","accessor","oldStatic","newStatic","oldKind","newKind","ExpressionScope","canBeArrowParameterDeclaration","isCertainlyParameterDeclaration","ArrowHeadParsingScope","declarationErrors","recordDeclarationError","ParsingErrorClass","clearDeclarationError","iterateErrors","iterator","ExpressionScopeHandler","recordParameterInitializerError","origin","recordArrowParameterBindingError","recordAsyncArrowParametersError","validateAsPattern","newParameterDeclarationScope","newArrowHeadScope","newAsyncArrowScope","newExpressionScope","ProductionParameterHandler","stacks","currentFlags","hasAwait","hasYield","hasReturn","hasIn","functionFlags","UtilParser","addExtra","isContextual","isUnparsedContextual","nameStart","nameEnd","nextCh","isLookaheadContextual","eatContextual","expectContextual","canInsertSemicolon","hasPrecedingLineBreak","hasFollowingLineBreak","isLineTerminator","semicolon","allowAsi","expect","tryParse","fn","oldState","abortSignal","failState","thrown","aborted","checkExpressionErrors","andThrow","shorthandAssignLoc","doubleProtoLoc","privateKeyLoc","optionalParametersLoc","hasErrors","isLiteralPropertyName","property","initializeScopes","oldLabels","oldExportedIdentifiers","exportedIdentifiers","oldInModule","oldScope","getScopeHandler","oldProdParam","prodParam","oldExpressionScope","expressionScope","enterInitialScopes","paramFlags","checkDestructuringPrivate","ExpressionErrors","Node","ranges","range","NodePrototype","prototype","__clone","newNode","clonePlaceholder","cloneIdentifier","cloned","create","expectedNode","cloneStringLiteral","NodeUtils","startNodeAt","resetStartLocationFromNode","locationNode","reservedTypes","FlowErrors","AmbiguousConditionalArrow","AmbiguousDeclareModuleKind","AssignReservedType","reservedType","DeclareClassElement","DeclareClassFieldInitializer","DuplicateDeclareModuleExports","EnumBooleanMemberNotInitialized","memberName","enumName","EnumDuplicateMemberName","EnumInconsistentMemberValues","EnumInvalidExplicitType","invalidEnumType","EnumInvalidExplicitTypeUnknownSupplied","EnumInvalidMemberInitializerPrimaryType","explicitType","EnumInvalidMemberInitializerSymbolType","EnumInvalidMemberInitializerUnknownType","EnumInvalidMemberName","suggestion","EnumNumberMemberNotInitialized","EnumStringMemberInconsistentlyInitialized","GetterMayNotHaveThisParam","ImportReflectionHasImportType","ImportTypeShorthandOnlyInPureImport","InexactInsideExact","InexactInsideNonObject","InexactVariance","InvalidNonTypeImportInDeclareModule","MissingTypeParamDefault","NestedDeclareModule","NestedFlowComment","PatternIsOptional","SetterMayNotHaveThisParam","SpreadVariance","ThisParamAnnotationRequired","ThisParamBannedInConstructor","ThisParamMayNotBeOptional","ThisParamMustBeFirst","ThisParamNoDefault","TypeBeforeInitializer","TypeCastInPattern","UnexpectedExplicitInexactInObject","UnexpectedReservedType","UnexpectedReservedUnderscore","UnexpectedSpaceBetweenModuloChecks","UnexpectedSpreadType","UnexpectedSubtractionOperand","UnexpectedTokenAfterTypeParameter","UnexpectedTypeParameterBeforeAsyncArrowFunction","UnsupportedDeclareExportKind","unsupportedExportKind","UnsupportedStatementInDeclareModule","UnterminatedFlowComment","isEsModuleType","bodyElement","hasTypeImportKind","importKind","exportSuggestions","const","let","interface","partition","list","list1","list2","FLOW_PRAGMA_REGEX","flow","FlowParserMixin","flowPragma","shouldParseTypes","shouldParseEnums","matches","exec","Error","flowParseTypeInitialiser","tok","oldInType","flowParseType","flowParsePredicate","moduloLoc","parseExpression","flowParseTypeAndPredicateInitialiser","predicate","flowParseDeclareClass","flowParseInterfaceish","flowParseDeclareFunction","parseIdentifier","typeNode","typeContainer","flowParseTypeParameterDeclaration","tmp","flowParseFunctionTypeParams","this","returnType","typeAnnotation","flowParseDeclare","insideModule","flowParseDeclareVariable","flowParseDeclareModuleExports","flowParseDeclareModule","flowParseDeclareTypeAlias","flowParseDeclareOpaqueType","flowParseDeclareInterface","flowParseDeclareExportDeclaration","flowParseTypeAnnotatableIdentifier","parseExprAtom","bodyNode","parseImport","hasModuleExport","default","isLet","exportKind","flowParseTypeAnnotation","finished","flowParseTypeAlias","flowParseOpaqueType","isClass","flowParseRestrictedIdentifier","extends","flowParseInterfaceExtends","implements","mixins","flowParseObjectType","allowStatic","allowExact","allowSpread","allowProto","allowInexact","flowParseQualifiedTypeIdentifier","flowParseTypeParameterInstantiation","flowParseInterface","checkNotUnderscore","checkReservedType","liberal","right","declare","supertype","impltype","flowParseTypeParameter","requireDefault","nodeStartLoc","variance","flowParseVariance","ident","bound","defaultRequired","typeParameter","oldNoAnonFunctionType","flowParseTypeParameterInstantiationCallOrNew","flowParseTypeOrImplicitInstantiation","flowParseInterfaceType","flowParseObjectPropertyKey","flowParseObjectTypeIndexer","isStatic","static","flowParseObjectTypeInternalSlot","flowParseObjectTypeMethodish","flowParseFunctionTypeParam","flowParseObjectTypeCallProperty","valueNode","callProperties","indexers","internalSlots","endDelim","exact","inexact","protoStartLoc","inexactStartLoc","propOrInexact","flowParseObjectTypeProperty","flowObjectTypeSemicolon","isInexactToken","proto","flowCheckGetterSetterParams","paramCount","_startLoc","node2","qualification","flowParseGenericType","flowParseTypeofType","flowParsePrimaryType","flowParseTupleType","first","lh","isThis","reinterpretTypeAsFunctionTypeParam","flowIdentToTypeAnnotation","isGroupedType","parseLiteralAtNode","createIdentifier","flowParsePostfixType","seenOptionalIndexedAccess","objectType","indexType","flowParsePrefixType","flowParseAnonFunctionWithoutParens","param","flowParseIntersectionType","flowParseUnionType","allowPrimitiveOverride","typeCastToParameter","allowExpressionBody","forwardNoArrowParamsConversionAt","parseFunctionBodyAndFinish","parseStatementLike","flowParseEnumDeclaration","parseExpressionStatement","expr","shouldParseExportDeclaration","isExportDefaultSpecifier","parseExportDefaultExpression","parseConditional","setOptionalParametersError","originalNoArrowAt","consequent","failed","tryParseConditionalConsequent","valid","getArrowLikeExpressions","alternate","parseMaybeAssign","parseMaybeAssignAllowIn","disallowInvalid","arrows","finishArrowValidation","every","_node$extra","toAssignableList","trailingCommaLoc","checkParams","result","parseParenItem","typeCastNode","assertModuleNodeAllowed","parseExportDeclaration","declarationNode","parseExportSpecifiers","parseExportFrom","eatExportStar","maybeParseExportNamespaceSpecifier","hasNamespace","parseClassId","isStatement","optionalId","parseClassMember","member","parseClassMemberFromModifier","isIterator","readIterator","fullWord","left","exprList","toReferencedList","isParenthesizedExpr","_expr$extra","parseArrayLike","close","canBePattern","isTuple","isParenthesized","isClassMethod","isClassProperty","isNonstaticConstructor","isThisParam","pushClassPrivateMethod","parseClassSuper","superTypeParameters","implemented","checkGetterSetterParams","parsePropertyNamePrefixOperator","parseObjPropValue","parseAssignableListItemTypes","parseMaybeDefault","checkImportReflection","module","parseImportSpecifierLocal","specifier","local","finishImportSpecifier","isPotentialImportPhase","isExport","applyImportPhase","parseImportSpecifier","importedIsString","isInTypeOnlyImport","isMaybeTypeOnly","firstIdent","imported","specifierTypeKind","as_ident","specifierIsTypeImport","checkReservedWord","parseBindingAtom","parseFunctionParams","parseVarId","decl","parseAsyncArrowFromCallExpression","call","shouldParseAsyncArrow","afterLeftParse","_jsx","jsx","currentContext","_jsx2","_jsx3","abort","_arrowExpression$extr","arrowExpression","maybeUnwrapTypeCastExpression","async","parseArrow","shouldParseArrow","setArrowFunctionParameters","allowDuplicates","isArrowFunction","strictModeChanged","parseParenAndDistinguishExpression","canBeArrow","parseSubscripts","parseCallExpressionArguments","parseAsyncArrowWithTypeParameters","subscriptState","isLookaheadToken_lt","typeArguments","parseNewCallee","targs","parseArrowExpression","parseTopLevel","program","fileNode","skipFlowComment","hasFlowCommentCompletion","commentSkip","shiftToFirstNonWhiteSpace","ch2","ch3","flowEnumErrorBooleanMemberNotInitialized","flowEnumErrorInvalidMemberInitializer","enumContext","flowEnumErrorNumberMemberNotInitialized","flowEnumErrorStringMemberInconsistentlyInitialized","flowEnumMemberInit","endOfInit","literal","flowEnumMemberRaw","flowEnumCheckExplicitTypeMismatch","expectedType","flowEnumMembers","seenNames","members","booleanMembers","numberMembers","stringMembers","defaultedMembers","hasUnknownMembers","memberNode","toUpperCase","flowEnumStringMembers","initializedMembers","flowEnumParseExplicitType","flowEnumBody","nameLoc","empty","boolsLen","numsLen","strsLen","defaultedLen","afterNext","entities","__proto__","quot","amp","apos","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","copy","ordf","laquo","not","shy","reg","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","alpha","beta","gamma","delta","epsilon","zeta","eta","theta","iota","kappa","lambda","mu","nu","xi","omicron","pi","rho","sigmaf","sigma","tau","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","image","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","sum","minus","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","ne","equiv","le","ge","sub","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","lang","rang","loz","spades","clubs","hearts","diams","JsxErrors","AttributeIsEmpty","MissingClosingTagElement","openingTagName","MissingClosingTagFragment","UnexpectedSequenceExpression","HTMLEntity","UnsupportedJsxValue","UnterminatedJsxContent","UnwrappedAdjacentJSXElements","isFragment","getQualifiedJSXName","namespace","JSXParserMixin","jsxReadToken","jsxReadEntity","jsxReadNewLine","normalizeCRLF","jsxReadString","codePoint","count","desc","entity","XHTMLEntities","jsxReadWord","jsxParseIdentifier","jsxParseNamespacedName","jsxParseElementName","jsxParseAttributeValue","setContext","jsxParseExpressionContainer","jsxParseEmptyExpression","jsxParseSpreadChild","previousContext","jsxParseAttribute","jsxParseOpeningElementAt","jsxParseOpeningElementAfterName","selfClosing","jsxParseClosingElementAt","jsxParseElementAt","children","openingElement","closingElement","contents","openingFragment","closingFragment","jsxParseElement","newContext","TypeScriptScope","enums","constEnums","classes","exportOnlyBindings","TypeScriptScopeHandler","importsStack","hasImport","allowShadow","isConst","wasConst","getOwn","hasOwnProperty","unwrapParenthesizedExpression","LValParser","_node$extra3","last","_node$extra2","operator","arg","checkToRestConversion","elt","element","toReferencedListDeep","parseSpread","parseRestBinding","parseBindingList","ParseBindingListFlags","parseObjectLike","closeCharCode","allowEmpty","elts","checkCommaAfterRest","parseDecorator","parseAssignableListItem","parseBindingRestProperty","parseBindingProperty","parsePropertyName","_left","ObjectProperty","checkLVal","in","checkClashes","hasParenthesizedAncestor","_expression$extra","checkIdentifier","validity","ParseErrorClass","isParenthesizedExpression","nextAncestor","child","declareNameFromIdentifier","identifier","allowPattern","nonNull","x","assert","TSErrors","AbstractMethodHasImplementation","methodName","AbstractPropertyHasInitializer","propertyName","AccesorCannotDeclareThisParameter","AccesorCannotHaveTypeParameters","AccessorCannotBeOptional","ClassMethodHasDeclare","ClassMethodHasReadonly","ConstInitiailizerMustBeStringOrNumericLiteralOrLiteralEnumReference","ConstructorHasTypeParameters","DeclareAccessor","DeclareClassFieldHasInitializer","DeclareFunctionHasImplementation","DuplicateAccessibilityModifier","modifier","DuplicateModifier","EmptyHeritageClauseType","EmptyTypeArguments","EmptyTypeParameters","ExpectedAmbientAfterExportDeclare","ImportAliasHasImportType","IncompatibleModifiers","modifiers","IndexSignatureHasAbstract","IndexSignatureHasAccessibility","IndexSignatureHasDeclare","IndexSignatureHasOverride","IndexSignatureHasStatic","InitializerNotAllowedInAmbientContext","InvalidModifierOnTypeMember","InvalidModifierOnTypeParameter","InvalidModifierOnTypeParameterPositions","InvalidModifiersOrder","orderedModifiers","InvalidPropertyAccessAfterInstantiationExpression","InvalidTupleMemberLabel","MissingInterfaceName","NonAbstractClassHasAbstractMethod","NonClassMethodPropertyHasAbstractModifer","OptionalTypeBeforeRequired","OverrideNotInSubClass","PrivateElementHasAbstract","PrivateElementHasAccessibility","ReadonlyForMethodSignature","ReservedArrowTypeParam","ReservedTypeAssertion","SetAccesorCannotHaveOptionalParameter","SetAccesorCannotHaveRestParameter","SetAccesorCannotHaveReturnType","SingleTypeParameterWithoutTrailingComma","typeParameterName","StaticBlockCannotHaveModifier","TupleOptionalAfterType","TypeAnnotationAfterAssign","TypeImportCannotSpecifyDefaultAndNamed","TypeModifierIsUsedInTypeExports","TypeModifierIsUsedInTypeImports","UnexpectedParameterModifier","UnexpectedReadonly","UnexpectedTypeAnnotation","UnexpectedTypeCastInParameter","UnsupportedImportTypeArgument","UnsupportedParameterPropertyKind","UnsupportedSignatureParameterKind","keywordTypeFromName","tsIsAccessModifier","tsIsVarianceAnnotations","typescript","TypeScriptParserMixin","tsParseInOutModifiers","tsParseModifiers","bind","allowedModifiers","disallowedModifiers","errorTemplate","tsParseConstModifier","tsParseInOutConstModifiers","tsIsIdentifier","tsTokenCanFollowModifier","tsNextTokenCanFollowModifier","tsParseModifier","stopOnStartOfClassStaticBlock","tsIsStartOfStaticBlocks","tsTryParse","modified","enforceOrder","before","after","incompatible","mod1","mod2","accessibility","tsIsListTerminator","tsParseList","parseElement","tsParseDelimitedList","refTrailingCommaPos","tsParseDelimitedListWorker","expectSuccess","trailingCommaPos","tsParseBracketedList","bracket","skipFirstToken","tsParseImportType","qualifier","tsParseEntityName","tsParseTypeArguments","allowReservedWords","tsParseTypeReference","typeName","tsParseThisTypePredicate","lhs","parameterName","tsParseTypeAnnotation","asserts","tsParseThisTypeNode","tsParseTypeQuery","exprName","tsParseTypeParameter","parseModifiers","tsParseTypeParameterName","constraint","tsEatThenParseType","tsTryParseTypeParameters","tsParseTypeParameters","tsFillSignature","returnToken","signature","returnTokenRequired","paramsKey","returnTypeKey","tsParseBindingListForSignature","tsParseTypeOrTypePredicateAnnotation","tsParseTypeMemberSemicolon","tsParseSignatureMember","tsIsUnambiguouslyIndexSignature","tsTryParseIndexSignature","tsLookAhead","parameters","tsTryParseTypeAnnotation","tsParsePropertyOrMethodSignature","readonly","nodeAny","firstParameter","tsParseTypeMember","idx","tsParseTypeLiteral","tsParseObjectTypeMembers","tsIsStartOfMappedType","tsParseMappedTypeParameter","tsExpectThenParseType","tsParseMappedType","nameType","tsParseType","tsTryParseType","tsParseTupleType","elementTypes","tsParseTupleElementType","seenOptionalElement","elementNode","labeled","isWord","chAfterWord","wordName","typeOrLabel","tsParseNonArrayType","labeledNode","optionalTypeNode","restNode","tsParseParenthesizedType","tsParseFunctionOrConstructorType","abstract","tsInAllowConditionalTypesContext","tsParseLiteralTypeNode","tsParseTemplateLiteralType","parseTemplate","parseTemplateSubstitution","tsParseThisTypeOrThisTypePredicate","thisKeyword","parseMaybeUnary","nodeType","tsParseArrayTypeOrHigher","tsParseTypeOperator","tsParseTypeOperatorOrHigher","tsCheckTypeAnnotationForReadOnly","tsParseInferType","tsParseConstraintForInferType","tsInDisallowConditionalTypesContext","isTypeOperator","tsParseUnionOrIntersectionType","parseConstituentType","hasLeadingOperator","tsParseIntersectionTypeOrHigher","tsParseUnionTypeOrHigher","tsIsStartOfFunctionType","tsIsUnambiguouslyStartOfFunctionType","tsSkipParameterStart","previousErrorCount","_unused2","tsInType","t","tsParseTypePredicateAsserts","thisTypePredicate","typePredicateVariable","tsParseTypePredicatePrefix","tsTryParseTypeOrTypePredicateAnnotation","eatColon","tsParseNonConditionalType","checkType","extendsType","trueType","falseType","isAbstractConstructorSignature","tsParseTypeAssertion","tsParseHeritageClause","originalStartLoc","delimitedList","tsParseInterfaceDeclaration","tsParseTypeAliasDeclaration","tsInNoContext","cb","oldContext","oldInDisallowConditionalTypesContext","tsNextThenParseType","tsParseEnumMember","initializer","tsParseEnumDeclaration","tsParseModuleBlock","parseBlockOrModuleBlockBody","tsParseModuleOrNamespaceDeclaration","nested","inner","tsParseAmbientExternalModuleDeclaration","global","tsParseImportEqualsDeclaration","maybeDefaultIdentifier","moduleReference","tsParseModuleReference","tsIsExternalModuleReference","tsParseExternalModuleReference","f","tsTryParseAndCatch","tsTryParseDeclare","nany","startType","tsInAmbientContext","parseFunctionStatement","parseClass","parseVarStatement","tsParseDeclaration","tsTryParseExportDeclaration","tsParseExpressionStatement","mod","tsCheckLineTerminator","tsParseAbstractDeclaration","tsTryParseGenericAsyncArrowFunction","oldMaybeInArrowParameters","tsParseTypeArgumentsInExpression","reScan_lt","reScan_lt_gt","tsIsDeclarationStart","override","pp","parameter","isSimpleParameter","tsDisallowOptionalPattern","bodilessType","registerFunctionStatementId","tsCheckForInvalidTypeCasts","items","isInParens","nonNullExpression","isOptionalCall","missingParenErrorLoc","atPossibleAsyncArrow","asyncArrowFn","parseTaggedTemplateExpression","tokenType","_callee$extra","parseExprOp","leftStartLoc","minPrec","isSatisfies","checkKeywords","checkDuplicateExports","importNode","parseMaybeImportPhase","parseImportSpecifiersAndAfter","isAbstractClass","cls","allowMissingInitializer","declarations","isValidAmbientConstInitializer","parseStatementContent","parseAccessModifier","tsHasSomeModifiers","callParseClassMemberWithIsStatic","parseClassStaticBlock","parseClassMemberWithIsStatic","hadSuperClass","parsePostMemberNameModifiers","methodOrProp","isDeclare","isIdentifier","parseClassPropertyAnnotation","definite","parseClassAccessorProperty","declareClassPrivateMethodInScope","_typeCast","_typeCast2","typeCast","_typeParameters","reportReservedArrowTypeParam","trailingComma","sawUnary","toAssignableParenthesizedExpression","TSTypeCastExpression","TSParameterProperty","TSNonNullExpression","TSAsExpression","TSSatisfiesExpression","TSTypeAssertion","parseMaybeDecoratorArguments","canHaveLeadingDecorator","getGetterSetterExpectedParamCount","baseCount","firstParam","hasContextParam","parseCatchClauseParam","oldIsAmbientContext","oldInAbstractClass","maybeTakeDecorators","hasBody","shouldParseAsAmbientContext","getExpression","parseExportSpecifier","isString","isInTypeExport","parseTypeOnlyImportExportSpecifier","isImport","isInTypeOnlyImportExport","leftOfAsKey","rightOfAsKey","leftOfAs","rightOfAs","hasTypeSpecifier","canParseAsKeyword","firstAs","secondAs","parseModuleExportName","kindKey","isPossiblyLiteralEnum","expressions","isUncomputedMemberExpressionChain","isNumber","isNegativeNumber","PlaceholderErrors","ClassNameIsRequired","UnexpectedSpace","placeholders","PlaceholdersParserMixin","parsePlaceholder","assertNoSpace","finishPlaceholder","isFinished","chStartsBindingIdentifier","verifyBreakContinue","isBreak","parseStatementOrSloppyAnnexBFunctionDeclaration","parseBlock","createNewLexicalScope","parseFunctionId","requireId","oldStrict","parseClassBody","startsWith","maybeParseExportDefaultSpecifier","_specifiers","checkExport","filter","hasStarImport","maybeParseStarImportSpecifier","parseNamedImportSpecifiers","parseImportSource","v8intrinsic","V8IntrinsicMixin","parseV8Intrinsic","v8IntrinsicStartLoc","parseIdentifierName","expectedConfig","expectedName","expectedOptions","expectedKeys","expectedOptionsIsEmpty","p","option","find","PIPELINE_PROPOSALS","TOPIC_TOKENS","RECORD_AND_TUPLE_SYNTAX_TYPES","validatePlugins","decoratorsBeforeExport","allowCallParenthesized","proposalList","tupleSyntaxIsHash","syntaxType","tokenList","moduleAttributesVersionPluginOption","missingPlugins","mixinPlugins","mixinPluginNames","defaultOptions","sourceFilename","allowAwaitOutsideFunction","allowReturnOutsideFunction","allowNewTargetOutsideFunction","allowImportExportEverywhere","allowSuperOutsideMethod","allowUndeclaredExports","createImportExpressions","createParenthesizedExpressions","getOptions","opts","_opts$key","ExpressionParser","checkProto","isRecord","protoRef","used","shouldExitDescending","disallowIn","disallowInAnd","parseExpressionBase","allowInAnd","parseMaybeAssignDisallowIn","resultError","_resultError$loc","parseYield","ownExpressionErrors","parseMaybeConditional","startIndex","parseExprOps","parseMaybeUnaryOrPrivate","op","prec","checkPipelineAtInfixOperator","logical","coalesce","parseExprOpRightExpr","finishedNode","nextOp","withTopicBindingContext","parseHackPipeBody","parseSmartPipelineBodyInStyle","parseExprOpBaseRightExpr","withSoloAwaitPermittingContext","parseFSharpPipelineBody","_body$extra","requiredParentheses","topicReferenceWasUsedInCurrentContext","checkExponentialAfterUnary","isAwait","isAwaitAllowed","parseAwait","update","isDelete","parseUpdate","isAmbiguousAwait","updateExpressionNode","parseExprSubscripts","maybeAsyncArrow","parseBind","parseCoverCallAndAsyncArrowHead","parseMember","parseNoCallExpr","tag","quasi","expectImportAttributesPlugin","dynamicImport","allowPlaceholder","nodeForExtra","oldInFSharpPipelineDirectBody","addTrailingCommaExtraToNode","parseExprListItem","_call$extra","parseSuper","parseImportMetaProperty","parseImportCall","parseDo","parseFunctionOrFunctionSent","parseDecorators","parseNewOrNewTarget","parseTopicReferenceThenEqualsSign","parseTopicReference","pipeProposal","parseModuleExpression","parseAsyncFunctionExpression","parseAsyncArrowUnaryFunction","topicTokenType","topicTokenValue","finishTopicReference","testTopicReferenceConfiguration","topicReferenceIsAllowedInCurrentContext","registerTopicReference","meta","parseMetaProperty","parseFunction","isSource","innerStartLoc","spreadStartLoc","optionalCommaStartLoc","spreadNodeStartLoc","innerEndLoc","arrowNode","wrapParenthesis","parenExpression","metaProp","parseNew","parseExprList","parseTemplateElement","isTagged","elemStart","elem","isTail","endOffset","elemEnd","cooked","tail","curElt","quasis","propHash","parsePropertyDefinition","maybeAsyncOrAccessorProp","keyName","_params","finishedProp","generator","isExpression","hasStrictModeDirective","nonSimple","isSimpleParamList","formalParameters","reservedTest","delegating","delegate","childExpr","isSimpleReference","checkSmartPipeTopicBodyEarlyErrors","callback","outerContextTopicState","withSmartMixTopicForbiddingContext","outerContextSoloAwaitState","prodParamToSet","ParamKind","prodParamToClear","ret","revertScopes","parseProgram","loopLabel","switchLabel","loneSurrogate","keywordRelationalOperator","babel7CompatTokens","hashEndPos","hashEndLoc","backquoteEnd","backquoteEndLoc","startToken","templateValue","templateElementEnd","templateElementEndLoc","endToken","StatementParser","interpreter","parseInterpreterDirective","finishedProgram","stmtToDirective","directiveLiteral","hasFollowingBindingAtom","endCh","chStartsBindingPattern","hasInLineFollowingBindingIdentifier","startsUsingForOf","startsAwaitUsing","parseModuleItem","ParseStatementFlag","parseStatementListItem","allowLabeledFunction","parseStatement","starttype","allowDeclaration","allowFunctionDeclaration","parseBreakContinueStatement","parseDebuggerStatement","parseDoWhileStatement","parseForStatement","parseIfStatement","parseReturnStatement","parseSwitchStatement","parseThrowStatement","parseTryStatement","parseWhileStatement","parseWithStatement","parseEmptyStatement","nextTokenCharCode","isAsyncFunction","maybeName","parseLabeledStatement","decoratorsEnabledBeforeExport","maybeDecorators","classNode","exportNode","allowExport","paramsStartLoc","lab","parseHeaderExpression","awaitAt","parseFor","startsWithLet","startsWithAwaitUsing","starsWithUsingDeclaration","isLetOrUsing","initNode","parseVar","isForIn","parseForIn","startsWithAsync","isForOf","isHangingDeclaration","ParseFunctionFlag","discriminant","cases","cur","sawDefault","isCase","block","handler","clause","finalizer","statementStart","parsedNonDirective","await","isFor","hangingDeclaration","isDeclaration","hadConstructor","publicMethod","privateMethod","publicProp","privateProp","accessorProp","publicMember","parseClassElementName","isPrivate","maybeQuestionTokenStartLoc","pushClassPrivateProperty","pushClassProperty","pushClassAccessorProperty","_member$decorators","parseInitializer","hasDefault","parseAfterDefault","hasStar","parseAfterNamespace","isFromRequired","hasSpecifiers","maybeParseExportNamedSpecifiers","hasDeclaration","maybeParseExportDeclaration","_node2$declaration","isTypeExport","assertions","nextType","hasFrom","nextAfterFrom","maybeParseImportAttributes","checkJSONModuleImport","checkNames","isDefault","isFrom","_node$specifiers","_declaration$extra","nodes","surrogate","isJSONModuleImport","singleBindingType","_node$assertions","nonDefaultNamedSpecifier","phaseIdentifier","isImportPhase","isPrecedingIdImportPhase","parseImportSourceAndAttributes","maybeParseDefaultImportSpecifier","parseNext","_node$specifiers2","parseImportAttributes","attrs","attrNames","parseModuleAttributes","useWith","importSpecifier","Parser","pluginsMap","pluginMap","_options","getParser","ast","moduleError","generateExportedTokenTypes","internalTokenTypes","tokTypes","getParserClass","parserClassCache","pluginsFromOptions","pluginList"],"mappings":"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AC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,GAAG,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,EAAE,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,IAAI,EAAC,KAAK,EAAC,EAAE,EAAC,IAAI,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAC,IAAI,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC,CAAC,EAAC,IAAI,CAAC;AAEx+C,MAAMC,qBAAqB,GAAG,CAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,IAAI,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,EAAE,EAAC,CAAC,EAAC,EAAE,EAAC,GAAG,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,EAAC,CAAC,EA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"}
\ No newline at end of file diff --git a/node_modules/@babel/parser/package.json b/node_modules/@babel/parser/package.json index 768f887b..5dc69d81 100644 --- a/node_modules/@babel/parser/package.json +++ b/node_modules/@babel/parser/package.json @@ -1,6 +1,6 @@ { "name": "@babel/parser", - "version": "7.23.0", + "version": "7.23.6", "description": "A JavaScript parser", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-parser", @@ -34,10 +34,10 @@ "node": ">=6.0.0" }, "devDependencies": { - "@babel/code-frame": "^7.22.13", + "@babel/code-frame": "^7.23.5", "@babel/helper-check-duplicate-nodes": "^7.22.5", - "@babel/helper-fixtures": "^7.22.19", - "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-fixtures": "^7.23.4", + "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", "charcodes": "^0.2.0" }, diff --git a/node_modules/@babel/parser/typings/babel-parser.d.ts b/node_modules/@babel/parser/typings/babel-parser.d.ts index 37f4de1b..3a61f014 100644 --- a/node_modules/@babel/parser/typings/babel-parser.d.ts +++ b/node_modules/@babel/parser/typings/babel-parser.d.ts @@ -224,8 +224,9 @@ interface ParserOptions { createParenthesizedExpressions?: boolean; /** - * By default, `import(foo)` is parsed as `CallExpression(Import, [Identifier(foo)])`. + * The default is false in Babel 7 and true in Babel 8 * Set this to true to parse it as an `ImportExpression` node. + * Otherwise `import(foo)` is parsed as `CallExpression(Import, [Identifier(foo)])`. */ createImportExpressions?: boolean; } diff --git a/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js.map b/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js.map index 05e92b9e..2f46c1f0 100644 --- a/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js.map +++ b/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import type { FunctionExpression } from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\n/**\n * Check whether a function expression can be affected by\n * https://bugs.webkit.org/show_bug.cgi?id=220517\n * @param path The function expression NodePath\n * @returns the name of function id if it should be transformed, otherwise returns false\n */\nexport function shouldTransform(\n path: NodePath<FunctionExpression>,\n): string | false {\n const { node } = path;\n const functionId = node.id;\n if (!functionId) return false;\n\n const name = functionId.name;\n // On collision, `getOwnBinding` returns the param binding\n // with the id binding be registered as constant violation\n const paramNameBinding = path.scope.getOwnBinding(name);\n if (paramNameBinding === undefined) {\n // Case 1: the function id is injected by babel-helper-name-function, which\n // assigns `NOT_LOCAL_BINDING` to the `functionId` and thus not registering id\n // in scope tracking\n // Case 2: the function id is injected by a third party plugin which does not update the\n // scope info\n return false;\n }\n if (paramNameBinding.kind !== \"param\") {\n // the function id does not reproduce in params\n return false;\n }\n\n if (paramNameBinding.identifier === paramNameBinding.path.node) {\n // the param binding is a simple parameter\n // e.g. (function a(a) {})\n return false;\n }\n\n return name;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { shouldTransform } from \"./util.ts\";\n\nexport default declare(api => {\n api.assertVersion(\"^7.16.0\");\n\n return {\n name: \"plugin-bugfix-safari-id-destructuring-collision-in-function-expression\",\n\n visitor: {\n FunctionExpression(path) {\n const name = shouldTransform(path);\n if (name) {\n // Now we have (function a([a]) {})\n const { scope } = path;\n // invariant: path.node.id is always an Identifier here\n const newParamName = scope.generateUid(name);\n scope.rename(name, newParamName);\n }\n },\n },\n };\n});\n"],"names":["shouldTransform","path","node","functionId","id","name","paramNameBinding","scope","getOwnBinding","undefined","kind","identifier","declare","api","assertVersion","visitor","FunctionExpression","newParamName","generateUid","rename"],"mappings":";;;;;;AASO,SAASA,eAAeA,CAC7BC,IAAkC,EAClB;EAChB,MAAM;AAAEC,IAAAA,IAAAA;AAAK,GAAC,GAAGD,IAAI,CAAA;AACrB,EAAA,MAAME,UAAU,GAAGD,IAAI,CAACE,EAAE,CAAA;AAC1B,EAAA,IAAI,CAACD,UAAU,EAAE,OAAO,KAAK,CAAA;AAE7B,EAAA,MAAME,IAAI,GAAGF,UAAU,CAACE,IAAI,CAAA;EAG5B,MAAMC,gBAAgB,GAAGL,IAAI,CAACM,KAAK,CAACC,aAAa,CAACH,IAAI,CAAC,CAAA;EACvD,IAAIC,gBAAgB,KAAKG,SAAS,EAAE;AAMlC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAIH,gBAAgB,CAACI,IAAI,KAAK,OAAO,EAAE;AAErC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;EAEA,IAAIJ,gBAAgB,CAACK,UAAU,KAAKL,gBAAgB,CAACL,IAAI,CAACC,IAAI,EAAE;AAG9D,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAEA,EAAA,OAAOG,IAAI,CAAA;AACb;;ACrCA,YAAeO,yBAAO,CAACC,GAAG,IAAI;AAC5BA,EAAAA,GAAG,CAACC,aAAa,CAAC,SAAS,CAAC,CAAA;EAE5B,OAAO;AACLT,IAAAA,IAAI,EAAE,wEAAwE;AAE9EU,IAAAA,OAAO,EAAE;MACPC,kBAAkBA,CAACf,IAAI,EAAE;AACvB,QAAA,MAAMI,IAAI,GAAGL,eAAe,CAACC,IAAI,CAAC,CAAA;AAClC,QAAA,IAAII,IAAI,EAAE;UAER,MAAM;AAAEE,YAAAA,KAAAA;AAAM,WAAC,GAAGN,IAAI,CAAA;AAEtB,UAAA,MAAMgB,YAAY,GAAGV,KAAK,CAACW,WAAW,CAACb,IAAI,CAAC,CAAA;AAC5CE,UAAAA,KAAK,CAACY,MAAM,CAACd,IAAI,EAAEY,YAAY,CAAC,CAAA;AAClC,SAAA;AACF,OAAA;AACF,KAAA;GACD,CAAA;AACH,CAAC,CAAC;;;;"}
\ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import type { FunctionExpression } from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\n/**\n * Check whether a function expression can be affected by\n * https://bugs.webkit.org/show_bug.cgi?id=220517\n * @param path The function expression NodePath\n * @returns the name of function id if it should be transformed, otherwise returns false\n */\nexport function shouldTransform(\n path: NodePath<FunctionExpression>,\n): string | false {\n const { node } = path;\n const functionId = node.id;\n if (!functionId) return false;\n\n const name = functionId.name;\n // On collision, `getOwnBinding` returns the param binding\n // with the id binding be registered as constant violation\n const paramNameBinding = path.scope.getOwnBinding(name);\n if (paramNameBinding === undefined) {\n // Case 1: the function id is injected by babel-helper-name-function, which\n // assigns `NOT_LOCAL_BINDING` to the `functionId` and thus not registering id\n // in scope tracking\n // Case 2: the function id is injected by a third party plugin which does not update the\n // scope info\n return false;\n }\n if (paramNameBinding.kind !== \"param\") {\n // the function id does not reproduce in params\n return false;\n }\n\n if (paramNameBinding.identifier === paramNameBinding.path.node) {\n // the param binding is a simple parameter\n // e.g. (function a(a) {})\n return false;\n }\n\n return name;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { shouldTransform } from \"./util.ts\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : \"^7.16.0\",\n );\n\n return {\n name: \"plugin-bugfix-safari-id-destructuring-collision-in-function-expression\",\n\n visitor: {\n FunctionExpression(path) {\n const name = shouldTransform(path);\n if (name) {\n // Now we have (function a([a]) {})\n const { scope } = path;\n // invariant: path.node.id is always an Identifier here\n const newParamName = scope.generateUid(name);\n scope.rename(name, newParamName);\n }\n },\n },\n };\n});\n"],"names":["shouldTransform","path","node","functionId","id","name","paramNameBinding","scope","getOwnBinding","undefined","kind","identifier","declare","api","assertVersion","visitor","FunctionExpression","newParamName","generateUid","rename"],"mappings":";;;;;;AASO,SAASA,eAAeA,CAC7BC,IAAkC,EAClB;EAChB,MAAM;AAAEC,IAAAA,IAAAA;AAAK,GAAC,GAAGD,IAAI,CAAA;AACrB,EAAA,MAAME,UAAU,GAAGD,IAAI,CAACE,EAAE,CAAA;AAC1B,EAAA,IAAI,CAACD,UAAU,EAAE,OAAO,KAAK,CAAA;AAE7B,EAAA,MAAME,IAAI,GAAGF,UAAU,CAACE,IAAI,CAAA;EAG5B,MAAMC,gBAAgB,GAAGL,IAAI,CAACM,KAAK,CAACC,aAAa,CAACH,IAAI,CAAC,CAAA;EACvD,IAAIC,gBAAgB,KAAKG,SAAS,EAAE;AAMlC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AACA,EAAA,IAAIH,gBAAgB,CAACI,IAAI,KAAK,OAAO,EAAE;AAErC,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;EAEA,IAAIJ,gBAAgB,CAACK,UAAU,KAAKL,gBAAgB,CAACL,IAAI,CAACC,IAAI,EAAE;AAG9D,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;AAEA,EAAA,OAAOG,IAAI,CAAA;AACb;;ACrCA,YAAeO,yBAAO,CAACC,GAAG,IAAI;AAC5BA,EAAAA,GAAG,CAACC,aAAa,CAGX,SACN,CAAC,CAAA;EAED,OAAO;AACLT,IAAAA,IAAI,EAAE,wEAAwE;AAE9EU,IAAAA,OAAO,EAAE;MACPC,kBAAkBA,CAACf,IAAI,EAAE;AACvB,QAAA,MAAMI,IAAI,GAAGL,eAAe,CAACC,IAAI,CAAC,CAAA;AAClC,QAAA,IAAII,IAAI,EAAE;UAER,MAAM;AAAEE,YAAAA,KAAAA;AAAM,WAAC,GAAGN,IAAI,CAAA;AAEtB,UAAA,MAAMgB,YAAY,GAAGV,KAAK,CAACW,WAAW,CAACb,IAAI,CAAC,CAAA;AAC5CE,UAAAA,KAAK,CAACY,MAAM,CAACd,IAAI,EAAEY,YAAY,CAAC,CAAA;AAClC,SAAA;AACF,OAAA;AACF,KAAA;GACD,CAAA;AACH,CAAC,CAAC;;;;"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/package.json b/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/package.json index 3ca7ac19..b14e61b6 100644 --- a/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/package.json +++ b/node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression", - "version": "7.22.15", + "version": "7.23.3", "description": "Rename destructuring parameter to workaround https://bugs.webkit.org/show_bug.cgi?id=220517", "repository": { "type": "git", @@ -28,10 +28,10 @@ "@babel/core": "^7.0.0" }, "devDependencies": { - "@babel/core": "^7.22.15", - "@babel/helper-function-name": "^7.22.5", + "@babel/core": "^7.23.3", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/traverse": "^7.22.15" + "@babel/traverse": "^7.23.3" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/lib/index.js.map b/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/lib/index.js.map index 417de8d6..98efcbc4 100644 --- a/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/lib/index.js.map +++ b/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\n// https://crbug.com/v8/11558\n\n// check if there is a spread element followed by another argument.\n// (...[], 0) or (...[], ...[])\n\nfunction matchAffectedArguments(argumentNodes: t.CallExpression[\"arguments\"]) {\n const spreadIndex = argumentNodes.findIndex(node => t.isSpreadElement(node));\n return spreadIndex >= 0 && spreadIndex !== argumentNodes.length - 1;\n}\n\n/**\n * Check whether the optional chain is affected by https://crbug.com/v8/11558.\n * This routine MUST not manipulate NodePath\n *\n * @export\n * @param {(NodePath<t.OptionalMemberExpression | t.OptionalCallExpression>)} path\n * @returns {boolean}\n */\nexport function shouldTransform(\n path: NodePath<t.OptionalMemberExpression | t.OptionalCallExpression>,\n): boolean {\n let optionalPath: NodePath<t.Expression> = path;\n const chains: (t.OptionalCallExpression | t.OptionalMemberExpression)[] = [];\n for (;;) {\n if (optionalPath.isOptionalMemberExpression()) {\n chains.push(optionalPath.node);\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"object\"));\n } else if (optionalPath.isOptionalCallExpression()) {\n chains.push(optionalPath.node);\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"callee\"));\n } else {\n break;\n }\n }\n for (let i = 0; i < chains.length; i++) {\n const node = chains[i];\n if (\n t.isOptionalCallExpression(node) &&\n matchAffectedArguments(node.arguments)\n ) {\n // f?.(...[], 0)\n if (node.optional) {\n return true;\n }\n // o?.m(...[], 0)\n // when node.optional is false, chains[i + 1] is always well defined\n const callee = chains[i + 1];\n if (t.isOptionalMemberExpression(callee, { optional: true })) {\n return true;\n }\n }\n }\n return false;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { transform } from \"@babel/plugin-transform-optional-chaining\";\nimport { shouldTransform } from \"./util.ts\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n const noDocumentAll = api.assumption(\"noDocumentAll\") ?? false;\n const pureGetters = api.assumption(\"pureGetters\") ?? false;\n\n return {\n name: \"bugfix-v8-spread-parameters-in-optional-chaining\",\n\n visitor: {\n \"OptionalCallExpression|OptionalMemberExpression\"(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n ) {\n if (shouldTransform(path)) {\n transform(path, { noDocumentAll, pureGetters });\n }\n },\n },\n };\n});\n"],"names":["matchAffectedArguments","argumentNodes","spreadIndex","findIndex","node","t","isSpreadElement","length","shouldTransform","path","optionalPath","chains","isOptionalMemberExpression","push","skipTransparentExprWrappers","get","isOptionalCallExpression","i","arguments","optional","callee","declare","api","_api$assumption","_api$assumption2","assertVersion","noDocumentAll","assumption","pureGetters","name","visitor","OptionalCallExpression|OptionalMemberExpression","transform"],"mappings":";;;;;;;;;AAQA,SAASA,sBAAsBA,CAACC,aAA4C,EAAE;AAC5E,EAAA,MAAMC,WAAW,GAAGD,aAAa,CAACE,SAAS,CAACC,IAAI,IAAIC,UAAC,CAACC,eAAe,CAACF,IAAI,CAAC,CAAC,CAAA;EAC5E,OAAOF,WAAW,IAAI,CAAC,IAAIA,WAAW,KAAKD,aAAa,CAACM,MAAM,GAAG,CAAC,CAAA;AACrE,CAAA;AAUO,SAASC,eAAeA,CAC7BC,IAAqE,EAC5D;EACT,IAAIC,YAAoC,GAAGD,IAAI,CAAA;EAC/C,MAAME,MAAiE,GAAG,EAAE,CAAA;EAC5E,SAAS;AACP,IAAA,IAAID,YAAY,CAACE,0BAA0B,EAAE,EAAE;AAC7CD,MAAAA,MAAM,CAACE,IAAI,CAACH,YAAY,CAACN,IAAI,CAAC,CAAA;MAC9BM,YAAY,GAAGI,mEAA2B,CAACJ,YAAY,CAACK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;AACxE,KAAC,MAAM,IAAIL,YAAY,CAACM,wBAAwB,EAAE,EAAE;AAClDL,MAAAA,MAAM,CAACE,IAAI,CAACH,YAAY,CAACN,IAAI,CAAC,CAAA;MAC9BM,YAAY,GAAGI,mEAA2B,CAACJ,YAAY,CAACK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;AACxE,KAAC,MAAM;AACL,MAAA,MAAA;AACF,KAAA;AACF,GAAA;AACA,EAAA,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,MAAM,CAACJ,MAAM,EAAEU,CAAC,EAAE,EAAE;AACtC,IAAA,MAAMb,IAAI,GAAGO,MAAM,CAACM,CAAC,CAAC,CAAA;AACtB,IAAA,IACEZ,UAAC,CAACW,wBAAwB,CAACZ,IAAI,CAAC,IAChCJ,sBAAsB,CAACI,IAAI,CAACc,SAAS,CAAC,EACtC;MAEA,IAAId,IAAI,CAACe,QAAQ,EAAE;AACjB,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AAGA,MAAA,MAAMC,MAAM,GAAGT,MAAM,CAACM,CAAC,GAAG,CAAC,CAAC,CAAA;AAC5B,MAAA,IAAIZ,UAAC,CAACO,0BAA0B,CAACQ,MAAM,EAAE;AAAED,QAAAA,QAAQ,EAAE,IAAA;AAAK,OAAC,CAAC,EAAE;AAC5D,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACF,KAAA;AACF,GAAA;AACA,EAAA,OAAO,KAAK,CAAA;AACd;;AClDA,YAAeE,yBAAO,CAACC,GAAG,IAAI;EAAA,IAAAC,eAAA,EAAAC,gBAAA,CAAA;AAC5BF,EAAAA,GAAG,CAACG,aAAa,CAAC,CAAC,CAAC,CAAA;AAEpB,EAAA,MAAMC,aAAa,GAAA,CAAAH,eAAA,GAAGD,GAAG,CAACK,UAAU,CAAC,eAAe,CAAC,KAAAJ,IAAAA,GAAAA,eAAA,GAAI,KAAK,CAAA;AAC9D,EAAA,MAAMK,WAAW,GAAA,CAAAJ,gBAAA,GAAGF,GAAG,CAACK,UAAU,CAAC,aAAa,CAAC,KAAAH,IAAAA,GAAAA,gBAAA,GAAI,KAAK,CAAA;EAE1D,OAAO;AACLK,IAAAA,IAAI,EAAE,kDAAkD;AAExDC,IAAAA,OAAO,EAAE;MACP,iDAAiDC,CAC/CtB,IAAqE,EACrE;AACA,QAAA,IAAID,eAAe,CAACC,IAAI,CAAC,EAAE;UACzBuB,yCAAS,CAACvB,IAAI,EAAE;YAAEiB,aAAa;AAAEE,YAAAA,WAAAA;AAAY,WAAC,CAAC,CAAA;AACjD,SAAA;AACF,OAAA;AACF,KAAA;GACD,CAAA;AACH,CAAC,CAAC;;;;"}
\ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\n// https://crbug.com/v8/11558\n\n// check if there is a spread element followed by another argument.\n// (...[], 0) or (...[], ...[])\n\nfunction matchAffectedArguments(argumentNodes: t.CallExpression[\"arguments\"]) {\n const spreadIndex = argumentNodes.findIndex(node => t.isSpreadElement(node));\n return spreadIndex >= 0 && spreadIndex !== argumentNodes.length - 1;\n}\n\n/**\n * Check whether the optional chain is affected by https://crbug.com/v8/11558.\n * This routine MUST not manipulate NodePath\n *\n * @export\n * @param {(NodePath<t.OptionalMemberExpression | t.OptionalCallExpression>)} path\n * @returns {boolean}\n */\nexport function shouldTransform(\n path: NodePath<t.OptionalMemberExpression | t.OptionalCallExpression>,\n): boolean {\n let optionalPath: NodePath<t.Expression> = path;\n const chains: (t.OptionalCallExpression | t.OptionalMemberExpression)[] = [];\n for (;;) {\n if (optionalPath.isOptionalMemberExpression()) {\n chains.push(optionalPath.node);\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"object\"));\n } else if (optionalPath.isOptionalCallExpression()) {\n chains.push(optionalPath.node);\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"callee\"));\n } else {\n break;\n }\n }\n for (let i = 0; i < chains.length; i++) {\n const node = chains[i];\n if (\n t.isOptionalCallExpression(node) &&\n matchAffectedArguments(node.arguments)\n ) {\n // f?.(...[], 0)\n if (node.optional) {\n return true;\n }\n // o?.m(...[], 0)\n // when node.optional is false, chains[i + 1] is always well defined\n const callee = chains[i + 1];\n if (t.isOptionalMemberExpression(callee, { optional: true })) {\n return true;\n }\n }\n }\n return false;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { transform } from \"@babel/plugin-transform-optional-chaining\";\nimport { shouldTransform } from \"./util.ts\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const noDocumentAll = api.assumption(\"noDocumentAll\") ?? false;\n const pureGetters = api.assumption(\"pureGetters\") ?? false;\n\n return {\n name: \"bugfix-v8-spread-parameters-in-optional-chaining\",\n\n visitor: {\n \"OptionalCallExpression|OptionalMemberExpression\"(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n ) {\n if (shouldTransform(path)) {\n transform(path, { noDocumentAll, pureGetters });\n }\n },\n },\n };\n});\n"],"names":["matchAffectedArguments","argumentNodes","spreadIndex","findIndex","node","t","isSpreadElement","length","shouldTransform","path","optionalPath","chains","isOptionalMemberExpression","push","skipTransparentExprWrappers","get","isOptionalCallExpression","i","arguments","optional","callee","declare","api","_api$assumption","_api$assumption2","assertVersion","noDocumentAll","assumption","pureGetters","name","visitor","OptionalCallExpression|OptionalMemberExpression","transform"],"mappings":";;;;;;;;;AAQA,SAASA,sBAAsBA,CAACC,aAA4C,EAAE;AAC5E,EAAA,MAAMC,WAAW,GAAGD,aAAa,CAACE,SAAS,CAACC,IAAI,IAAIC,UAAC,CAACC,eAAe,CAACF,IAAI,CAAC,CAAC,CAAA;EAC5E,OAAOF,WAAW,IAAI,CAAC,IAAIA,WAAW,KAAKD,aAAa,CAACM,MAAM,GAAG,CAAC,CAAA;AACrE,CAAA;AAUO,SAASC,eAAeA,CAC7BC,IAAqE,EAC5D;EACT,IAAIC,YAAoC,GAAGD,IAAI,CAAA;EAC/C,MAAME,MAAiE,GAAG,EAAE,CAAA;EAC5E,SAAS;AACP,IAAA,IAAID,YAAY,CAACE,0BAA0B,EAAE,EAAE;AAC7CD,MAAAA,MAAM,CAACE,IAAI,CAACH,YAAY,CAACN,IAAI,CAAC,CAAA;MAC9BM,YAAY,GAAGI,mEAA2B,CAACJ,YAAY,CAACK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;AACxE,KAAC,MAAM,IAAIL,YAAY,CAACM,wBAAwB,EAAE,EAAE;AAClDL,MAAAA,MAAM,CAACE,IAAI,CAACH,YAAY,CAACN,IAAI,CAAC,CAAA;MAC9BM,YAAY,GAAGI,mEAA2B,CAACJ,YAAY,CAACK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA;AACxE,KAAC,MAAM;AACL,MAAA,MAAA;AACF,KAAA;AACF,GAAA;AACA,EAAA,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,MAAM,CAACJ,MAAM,EAAEU,CAAC,EAAE,EAAE;AACtC,IAAA,MAAMb,IAAI,GAAGO,MAAM,CAACM,CAAC,CAAC,CAAA;AACtB,IAAA,IACEZ,UAAC,CAACW,wBAAwB,CAACZ,IAAI,CAAC,IAChCJ,sBAAsB,CAACI,IAAI,CAACc,SAAS,CAAC,EACtC;MAEA,IAAId,IAAI,CAACe,QAAQ,EAAE;AACjB,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AAGA,MAAA,MAAMC,MAAM,GAAGT,MAAM,CAACM,CAAC,GAAG,CAAC,CAAC,CAAA;AAC5B,MAAA,IAAIZ,UAAC,CAACO,0BAA0B,CAACQ,MAAM,EAAE;AAAED,QAAAA,QAAQ,EAAE,IAAA;AAAK,OAAC,CAAC,EAAE;AAC5D,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;AACF,KAAA;AACF,GAAA;AACA,EAAA,OAAO,KAAK,CAAA;AACd;;AClDA,YAAeE,yBAAO,CAACC,GAAG,IAAI;EAAA,IAAAC,eAAA,EAAAC,gBAAA,CAAA;AAC5BF,EAAAA,GAAG,CAACG,aAAa,CAGX,CACN,CAAC,CAAA;AAED,EAAA,MAAMC,aAAa,GAAA,CAAAH,eAAA,GAAGD,GAAG,CAACK,UAAU,CAAC,eAAe,CAAC,KAAAJ,IAAAA,GAAAA,eAAA,GAAI,KAAK,CAAA;AAC9D,EAAA,MAAMK,WAAW,GAAA,CAAAJ,gBAAA,GAAGF,GAAG,CAACK,UAAU,CAAC,aAAa,CAAC,KAAAH,IAAAA,GAAAA,gBAAA,GAAI,KAAK,CAAA;EAE1D,OAAO;AACLK,IAAAA,IAAI,EAAE,kDAAkD;AAExDC,IAAAA,OAAO,EAAE;MACP,iDAAiDC,CAC/CtB,IAAqE,EACrE;AACA,QAAA,IAAID,eAAe,CAACC,IAAI,CAAC,EAAE;UACzBuB,yCAAS,CAACvB,IAAI,EAAE;YAAEiB,aAAa;AAAEE,YAAAA,WAAAA;AAAY,WAAC,CAAC,CAAA;AACjD,SAAA;AACF,OAAA;AACF,KAAA;GACD,CAAA;AACH,CAAC,CAAC;;;;"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/package.json b/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/package.json index 7f54c604..b7d061e6 100644 --- a/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/package.json +++ b/node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining", - "version": "7.22.15", + "version": "7.23.3", "description": "Transform optional chaining operators to workaround https://crbug.com/v8/11558", "repository": { "type": "git", @@ -24,15 +24,15 @@ "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5", - "@babel/plugin-transform-optional-chaining": "^7.22.15" + "@babel/plugin-transform-optional-chaining": "^7.23.3" }, "peerDependencies": { "@babel/core": "^7.13.0" }, "devDependencies": { - "@babel/core": "^7.22.15", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/traverse": "^7.22.15" + "@babel/traverse": "^7.23.3" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/LICENSE b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/LICENSE new file mode 100644 index 00000000..f31575ec --- /dev/null +++ b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/README.md b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/README.md new file mode 100644 index 00000000..cbd44da2 --- /dev/null +++ b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/README.md @@ -0,0 +1,19 @@ +# @babel/plugin-bugfix-v8-static-class-fields-redefine-readonly + +> Transform static class fields assignments that are affected by https://crbug.com/v8/12421 + +See our website [@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly](https://babeljs.io/docs/babel-plugin-bugfix-v8-static-class-fields-redefine-readonly) for more information. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/plugin-bugfix-v8-static-class-fields-redefine-readonly +``` + +or using yarn: + +```sh +yarn add @babel/plugin-bugfix-v8-static-class-fields-redefine-readonly --dev +``` diff --git a/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js new file mode 100644 index 00000000..424b87f8 --- /dev/null +++ b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js @@ -0,0 +1,172 @@ +'use strict'; + +Object.defineProperty(exports, '__esModule', { value: true }); + +var core = require('@babel/core'); +var helperPluginUtils = require('@babel/helper-plugin-utils'); +var helperEnvironmentVisitor = require('@babel/helper-environment-visitor'); + +function isNameOrLength(key) { + if (core.types.isIdentifier(key)) { + return key.name === "name" || key.name === "length"; + } + if (core.types.isStringLiteral(key)) { + return key.value === "name" || key.value === "length"; + } + return false; +} +function isStaticFieldWithValue(node) { + return (core.types.isClassProperty(node) || core.types.isClassPrivateProperty(node)) && node.static && !!node.value; +} +const hasReferenceVisitor = { + ReferencedIdentifier(path, state) { + if (path.node.name === state.name) { + state.ref(); + path.stop(); + } + }, + Scope(path, { + name + }) { + if (path.scope.hasOwnBinding(name)) { + path.skip(); + } + } +}; +function isReferenceOrThis(node, name) { + return core.types.isThisExpression(node) || name && core.types.isIdentifier(node, { + name + }); +} +const hasReferenceOrThisVisitor = { + "ThisExpression|ReferencedIdentifier"(path, state) { + if (isReferenceOrThis(path.node, state.name)) { + state.ref(); + path.stop(); + } + }, + FunctionParent(path, state) { + if (path.isArrowFunctionExpression()) return; + if (state.name && !path.scope.hasOwnBinding(state.name)) { + path.traverse(hasReferenceVisitor, state); + } + path.skip(); + if (path.isMethod()) { + helperEnvironmentVisitor.requeueComputedKeyAndDecorators(path); + } + } +}; +function getPotentiallyBuggyFieldsIndexes(path) { + var _path$node$id; + const buggyPublicStaticFieldsIndexes = []; + let classReferenced = false; + const className = (_path$node$id = path.node.id) == null ? void 0 : _path$node$id.name; + const hasReferenceState = { + name: className, + ref: () => classReferenced = true + }; + if (className) { + for (const el of path.get("body.body")) { + if (el.node.computed) { + el.get("key").traverse(hasReferenceVisitor, hasReferenceState); + if (classReferenced) break; + } + } + } + let nextPotentiallyBuggy = false; + const { + body + } = path.node.body; + for (let i = 0; i < body.length; i++) { + const node = body[i]; + if (!nextPotentiallyBuggy) { + if (core.types.isStaticBlock(node)) { + classReferenced = true; + nextPotentiallyBuggy = true; + } else if (isStaticFieldWithValue(node)) { + if (!classReferenced) { + if (isReferenceOrThis(node.value, className)) { + classReferenced = true; + } else { + path.get(`body.body.${i}.value`).traverse(hasReferenceOrThisVisitor, hasReferenceState); + } + } + if (classReferenced) { + nextPotentiallyBuggy = !path.scope.isPure(node.value); + } + } + } + if (core.types.isClassProperty(node, { + static: true + }) && (nextPotentiallyBuggy || node.computed || isNameOrLength(node.key))) { + buggyPublicStaticFieldsIndexes.push(i); + } + } + return buggyPublicStaticFieldsIndexes; +} +function getNameOrLengthStaticFieldsIndexes(path) { + const indexes = []; + const { + body + } = path.node.body; + for (let i = 0; i < body.length; i++) { + const node = body[i]; + if (core.types.isClassProperty(node, { + static: true, + computed: false + }) && isNameOrLength(node.key)) { + indexes.push(i); + } + } + return indexes; +} +function toRanges(nums) { + const ranges = []; + if (nums.length === 0) return ranges; + let start = nums[0]; + let end = start + 1; + for (let i = 1; i < nums.length; i++) { + if (nums[i] <= nums[i - 1]) { + throw new Error("Internal Babel error: nums must be in ascending order"); + } + if (nums[i] === end) { + end++; + } else { + ranges.push([start, end]); + start = nums[i]; + end = start + 1; + } + } + ranges.push([start, end]); + return ranges; +} + +function buildFieldsReplacement(fields, scope, file) { + return core.types.staticBlock(fields.map(field => { + const key = field.computed || !core.types.isIdentifier(field.key) ? field.key : core.types.stringLiteral(field.key.name); + return core.types.expressionStatement(core.types.callExpression(file.addHelper("defineProperty"), [core.types.thisExpression(), key, field.value || scope.buildUndefinedNode()])); + })); +} +var index = helperPluginUtils.declare(api => { + api.assertVersion(7); + const setPublicClassFields = api.assumption("setPublicClassFields"); + return { + name: "bugfix-v8-static-class-fields-redefine-readonly", + visitor: { + Class(path) { + const ranges = toRanges(setPublicClassFields ? getNameOrLengthStaticFieldsIndexes(path) : getPotentiallyBuggyFieldsIndexes(path)); + for (let i = ranges.length - 1; i >= 0; i--) { + const [start, end] = ranges[i]; + const startPath = path.get("body.body")[start]; + startPath.replaceWith(buildFieldsReplacement(path.node.body.body.slice(start, end), path.scope, this.file)); + for (let j = end - 1; j > start; j--) { + path.get("body.body")[j].remove(); + } + } + } + } + }; +}); + +exports.default = index; +//# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js.map b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js.map new file mode 100644 index 00000000..821f1093 --- /dev/null +++ b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/lib/index.js.map @@ -0,0 +1 @@ +{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import type { NodePath, Visitor } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport { requeueComputedKeyAndDecorators } from \"@babel/helper-environment-visitor\";\n\nfunction isNameOrLength(key: t.Node): boolean {\n if (t.isIdentifier(key)) {\n return key.name === \"name\" || key.name === \"length\";\n }\n if (t.isStringLiteral(key)) {\n return key.value === \"name\" || key.value === \"length\";\n }\n return false;\n}\n\nfunction isStaticFieldWithValue(\n node: t.Node,\n): node is t.ClassProperty | t.ClassPrivateProperty {\n return (\n (t.isClassProperty(node) || t.isClassPrivateProperty(node)) &&\n node.static &&\n !!node.value\n );\n}\n\nconst hasReferenceVisitor: Visitor<{ name: string; ref: () => void }> = {\n ReferencedIdentifier(path, state) {\n if (path.node.name === state.name) {\n state.ref();\n path.stop();\n }\n },\n Scope(path, { name }) {\n if (path.scope.hasOwnBinding(name)) {\n path.skip();\n }\n },\n};\n\nfunction isReferenceOrThis(node: t.Node, name?: string) {\n return t.isThisExpression(node) || (name && t.isIdentifier(node, { name }));\n}\n\nconst hasReferenceOrThisVisitor: Visitor<{ name?: string; ref: () => void }> = {\n \"ThisExpression|ReferencedIdentifier\"(path, state) {\n if (isReferenceOrThis(path.node, state.name)) {\n state.ref();\n path.stop();\n }\n },\n FunctionParent(path, state) {\n if (path.isArrowFunctionExpression()) return;\n if (state.name && !path.scope.hasOwnBinding(state.name)) {\n path.traverse(hasReferenceVisitor, state);\n }\n path.skip();\n if (path.isMethod()) {\n requeueComputedKeyAndDecorators(path);\n }\n },\n};\n\ntype ClassElementWithComputedKeySupport = Extract<\n t.ClassBody[\"body\"][number],\n { computed?: boolean }\n>;\n\n/**\n * This function returns an array containing the indexes of class elements\n * that might be affected by https://crbug.com/v8/12421 bug.\n *\n * This bug affects public static class fields that have the same name as an\n * existing non-writable property with the same name. This usually happens when\n * the static field is named 'length' or 'name', since it clashes with the\n * predefined fn.length and fn.name properties. We must also compile static\n * fields with computed key, because they might end up being named 'length' or\n * 'name'.\n *\n * However, this bug can potentially affect public static fields with any name.\n * Consider this example:\n *\n * class A {\n * static {\n * Object.defineProperty(A, \"readonly\", {\n * value: 1,\n * writable: false,\n * configurable: true\n * })\n * }\n *\n * static readonly = 2;\n * }\n *\n * When initializing the 'static readonly' field, the class already has a\n * non-writable property named 'readonly' and thus V8 9.7 incorrectly throws.\n *\n * To avoid unconditionally compiling every public static field, we track how\n * the class is referenced during definition & static evaluation: any side\n * effect after a reference to the class can potentially define a non-writable\n * conficting property, so subsequent public static fields must be compiled.\n * The class could be referenced using the class name in computed keys, which\n * run before static fields, or using either the class name or 'this' in static\n * fields (both public and private) and static blocks.\n *\n * We don't need to check if computed keys referencing the class have any side\n * effect, because during the computed keys evaluation the internal class\n * binding is in TDZ. However, the first side effect in a static field/block\n * could have access to a function defined in a computed key that modifies the\n * class.\n *\n * This logic is already quite complex, so we assume that static blocks always\n * have side effects and reference the class (the reason to use them is to\n * perform additional initialization logic on the class anyway), so that we do\n * not have to check their contents.\n */\nexport function getPotentiallyBuggyFieldsIndexes(path: NodePath<t.Class>) {\n const buggyPublicStaticFieldsIndexes: number[] = [];\n\n let classReferenced = false;\n const className = path.node.id?.name;\n\n const hasReferenceState = {\n name: className,\n ref: () => (classReferenced = true),\n };\n\n if (className) {\n for (const el of path.get(\"body.body\")) {\n if ((el.node as ClassElementWithComputedKeySupport).computed) {\n // Since .traverse skips the top-level node, it doesn't detect\n // a reference happening immediately:\n // class A { [A]() {} }\n // However, it's a TDZ error so it's ok not to consider this case.\n (el as NodePath<ClassElementWithComputedKeySupport>)\n .get(\"key\")\n .traverse(hasReferenceVisitor, hasReferenceState);\n\n if (classReferenced) break;\n }\n }\n }\n\n let nextPotentiallyBuggy = false;\n\n const { body } = path.node.body;\n for (let i = 0; i < body.length; i++) {\n const node = body[i];\n\n if (!nextPotentiallyBuggy) {\n if (t.isStaticBlock(node)) {\n classReferenced = true;\n nextPotentiallyBuggy = true;\n } else if (isStaticFieldWithValue(node)) {\n if (!classReferenced) {\n if (isReferenceOrThis(node.value, className)) {\n classReferenced = true;\n } else {\n (\n path.get(`body.body.${i}.value`) as NodePath<t.Expression>\n ).traverse(hasReferenceOrThisVisitor, hasReferenceState);\n }\n }\n\n if (classReferenced) {\n nextPotentiallyBuggy = !path.scope.isPure(node.value);\n }\n }\n }\n\n if (\n t.isClassProperty(node, { static: true }) &&\n (nextPotentiallyBuggy || node.computed || isNameOrLength(node.key))\n ) {\n buggyPublicStaticFieldsIndexes.push(i);\n }\n }\n\n return buggyPublicStaticFieldsIndexes;\n}\n\nexport function getNameOrLengthStaticFieldsIndexes(path: NodePath<t.Class>) {\n const indexes: number[] = [];\n\n const { body } = path.node.body;\n for (let i = 0; i < body.length; i++) {\n const node = body[i];\n if (\n t.isClassProperty(node, { static: true, computed: false }) &&\n isNameOrLength(node.key)\n ) {\n indexes.push(i);\n }\n }\n\n return indexes;\n}\n\ntype Range = [start: number, end: number];\n\n/**\n * Converts a sorted list of numbers into a list of (inclusive-exclusive)\n * ranges representing the same numbers.\n *\n * @example toRanges([1, 3, 4, 5, 8, 9]) -> [[1, 2], [3, 6], [8, 10]]\n */\nexport function toRanges(nums: number[]): Range[] {\n const ranges: Range[] = [];\n\n if (nums.length === 0) return ranges;\n\n let start = nums[0];\n let end = start + 1;\n for (let i = 1; i < nums.length; i++) {\n if (nums[i] <= nums[i - 1]) {\n throw new Error(\"Internal Babel error: nums must be in ascending order\");\n }\n if (nums[i] === end) {\n end++;\n } else {\n ranges.push([start, end]);\n start = nums[i];\n end = start + 1;\n }\n }\n ranges.push([start, end]);\n\n return ranges;\n}\n","import type { NodePath, Scope } from \"@babel/traverse\";\nimport { types as t, type PluginPass, type File } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nimport {\n getPotentiallyBuggyFieldsIndexes,\n getNameOrLengthStaticFieldsIndexes,\n toRanges,\n} from \"./util.ts\";\n\nfunction buildFieldsReplacement(\n fields: t.ClassProperty[],\n scope: Scope,\n file: File,\n) {\n return t.staticBlock(\n fields.map(field => {\n const key =\n field.computed || !t.isIdentifier(field.key)\n ? field.key\n : t.stringLiteral(field.key.name);\n\n return t.expressionStatement(\n t.callExpression(file.addHelper(\"defineProperty\"), [\n t.thisExpression(),\n key,\n field.value || scope.buildUndefinedNode(),\n ]),\n );\n }),\n );\n}\n\nexport default declare(api => {\n api.assertVersion(7);\n\n const setPublicClassFields = api.assumption(\"setPublicClassFields\");\n\n return {\n name: \"bugfix-v8-static-class-fields-redefine-readonly\",\n\n visitor: {\n Class(this: PluginPass, path: NodePath<t.Class>) {\n const ranges = toRanges(\n setPublicClassFields\n ? getNameOrLengthStaticFieldsIndexes(path)\n : getPotentiallyBuggyFieldsIndexes(path),\n );\n\n for (let i = ranges.length - 1; i >= 0; i--) {\n const [start, end] = ranges[i];\n\n const startPath = path.get(\"body.body\")[start];\n\n startPath.replaceWith(\n buildFieldsReplacement(\n path.node.body.body.slice(start, end) as t.ClassProperty[],\n path.scope,\n this.file,\n ),\n );\n\n for (let j = end - 1; j > start; j--) {\n path.get(\"body.body\")[j].remove();\n }\n }\n },\n },\n };\n});\n"],"names":["isNameOrLength","key","t","isIdentifier","name","isStringLiteral","value","isStaticFieldWithValue","node","isClassProperty","isClassPrivateProperty","static","hasReferenceVisitor","ReferencedIdentifier","path","state","ref","stop","Scope","scope","hasOwnBinding","skip","isReferenceOrThis","isThisExpression","hasReferenceOrThisVisitor","ThisExpression|ReferencedIdentifier","FunctionParent","isArrowFunctionExpression","traverse","isMethod","requeueComputedKeyAndDecorators","getPotentiallyBuggyFieldsIndexes","_path$node$id","buggyPublicStaticFieldsIndexes","classReferenced","className","id","hasReferenceState","el","get","computed","nextPotentiallyBuggy","body","i","length","isStaticBlock","isPure","push","getNameOrLengthStaticFieldsIndexes","indexes","toRanges","nums","ranges","start","end","Error","buildFieldsReplacement","fields","file","staticBlock","map","field","stringLiteral","expressionStatement","callExpression","addHelper","thisExpression","buildUndefinedNode","declare","api","assertVersion","setPublicClassFields","assumption","visitor","Class","startPath","replaceWith","slice","j","remove"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/package.json b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/package.json new file mode 100644 index 00000000..9cb50083 --- /dev/null +++ b/node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/package.json @@ -0,0 +1,41 @@ +{ + "name": "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly", + "version": "7.23.3", + "description": "Transform static class fields assignments that are affected by https://crbug.com/v8/12421", + "repository": { + "type": "git", + "url": "https://github.com/babel/babel.git", + "directory": "packages/babel-plugin-bugfix-v8-static-class-fields-redefine-readonly" + }, + "homepage": "https://babel.dev/docs/en/next/babel-plugin-bugfix-v8-static-class-fields-redefine-readonly", + "license": "MIT", + "publishConfig": { + "access": "public" + }, + "main": "./lib/index.js", + "exports": { + ".": "./lib/index.js", + "./package.json": "./package.json" + }, + "keywords": [ + "babel-plugin", + "bugfix" + ], + "dependencies": { + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-plugin-utils": "^7.22.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + }, + "devDependencies": { + "@babel/core": "^7.23.3", + "@babel/helper-plugin-test-runner": "^7.22.5", + "@babel/traverse": "^7.23.3" + }, + "engines": { + "node": ">=6.9.0" + }, + "author": "The Babel Team (https://babel.dev/team)", + "type": "commonjs" +}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-syntax-import-assertions/README.md b/node_modules/@babel/plugin-syntax-import-assertions/README.md index 22156290..9729e242 100644 --- a/node_modules/@babel/plugin-syntax-import-assertions/README.md +++ b/node_modules/@babel/plugin-syntax-import-assertions/README.md @@ -2,7 +2,7 @@ > Allow parsing of the module assertion attributes in the import statement -See our website [@babel/plugin-syntax-import-assertions](https://babeljs.io/docs/en/babel-plugin-syntax-import-assertions) for more information. +See our website [@babel/plugin-syntax-import-assertions](https://babeljs.io/docs/babel-plugin-syntax-import-assertions) for more information. ## Install diff --git a/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js b/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js index 2aad5b28..fe508b4e 100644 --- a/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js +++ b/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "syntax-import-assertions", @@ -14,6 +14,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js.map b/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js.map index af3ffd73..0f594536 100644 --- a/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js.map +++ b/node_modules/@babel/plugin-syntax-import-assertions/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_default","declare","api","assertVersion","name","manipulateOptions","opts","parserOpts","plugins","push","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"syntax-import-assertions\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"importAssertions\");\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,0BAA0B;IAEhCC,iBAAiBA,CAACC,IAAI,EAAEC,UAAU,EAAE;MAClCA,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC,kBAAkB,CAAC;IAC7C;EACF,CAAC;AACH,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAX,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_default","exports","default","declare","api","assertVersion","name","manipulateOptions","opts","parserOpts","plugins","push"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"syntax-import-assertions\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"importAssertions\");\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,0BAA0B;IAEhCC,iBAAiBA,CAACC,IAAI,EAAEC,UAAU,EAAE;MAClCA,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC,kBAAkB,CAAC;IAC7C;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-syntax-import-assertions/package.json b/node_modules/@babel/plugin-syntax-import-assertions/package.json index 28c6f943..56af8ec2 100644 --- a/node_modules/@babel/plugin-syntax-import-assertions/package.json +++ b/node_modules/@babel/plugin-syntax-import-assertions/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-syntax-import-assertions", - "version": "7.22.5", + "version": "7.23.3", "description": "Allow parsing of the module assertion attributes in the import statement", "repository": { "type": "git", @@ -22,7 +22,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5" + "@babel/core": "^7.23.3" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-syntax-import-attributes/README.md b/node_modules/@babel/plugin-syntax-import-attributes/README.md index ad81ef5a..91f56a02 100644 --- a/node_modules/@babel/plugin-syntax-import-attributes/README.md +++ b/node_modules/@babel/plugin-syntax-import-attributes/README.md @@ -2,7 +2,7 @@ > Allow parsing of the module attributes in the import statement -See our website [@babel/plugin-syntax-import-attributes](https://babeljs.io/docs/en/babel-plugin-syntax-import-attributes) for more information. +See our website [@babel/plugin-syntax-import-attributes](https://babeljs.io/docs/babel-plugin-syntax-import-attributes) for more information. ## Install diff --git a/node_modules/@babel/plugin-syntax-import-attributes/lib/index.js b/node_modules/@babel/plugin-syntax-import-attributes/lib/index.js index 6e78b9a0..dd591457 100644 --- a/node_modules/@babel/plugin-syntax-import-attributes/lib/index.js +++ b/node_modules/@babel/plugin-syntax-import-attributes/lib/index.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)((api, { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, { deprecatedAssertSyntax }) => { api.assertVersion("^7.22.0"); @@ -26,6 +26,5 @@ var _default = (0, _helperPluginUtils.declare)((api, { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-syntax-import-attributes/lib/index.js.map b/node_modules/@babel/plugin-syntax-import-attributes/lib/index.js.map index 678a35c5..1685bf0f 100644 --- a/node_modules/@babel/plugin-syntax-import-attributes/lib/index.js.map +++ b/node_modules/@babel/plugin-syntax-import-attributes/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_default","declare","api","deprecatedAssertSyntax","assertVersion","Error","name","manipulateOptions","parserOpts","generatorOpts","_generatorOpts$import","importAttributesKeyword","plugins","push","Boolean","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n deprecatedAssertSyntax?: boolean;\n}\n\nexport default declare((api, { deprecatedAssertSyntax }: Options) => {\n api.assertVersion(\"^7.22.0\");\n\n if (\n deprecatedAssertSyntax != null &&\n typeof deprecatedAssertSyntax !== \"boolean\"\n ) {\n throw new Error(\n \"'deprecatedAssertSyntax' must be a boolean, if specified.\",\n );\n }\n\n return {\n name: \"syntax-import-attributes\",\n\n manipulateOptions({ parserOpts, generatorOpts }) {\n generatorOpts.importAttributesKeyword ??= \"with\";\n parserOpts.plugins.push([\n \"importAttributes\",\n { deprecatedAssertSyntax: Boolean(deprecatedAssertSyntax) },\n ]);\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAMtC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAE;EAAEC;AAAgC,CAAC,KAAK;EACnED,GAAG,CAACE,aAAa,CAAC,SAAS,CAAC;EAE5B,IACED,sBAAsB,IAAI,IAAI,IAC9B,OAAOA,sBAAsB,KAAK,SAAS,EAC3C;IACA,MAAM,IAAIE,KAAK,CACb,2DACF,CAAC;EACH;EAEA,OAAO;IACLC,IAAI,EAAE,0BAA0B;IAEhCC,iBAAiBA,CAAC;MAAEC,UAAU;MAAEC;IAAc,CAAC,EAAE;MAAA,IAAAC,qBAAA;MAC/C,CAAAA,qBAAA,GAAAD,aAAa,CAACE,uBAAuB,YAAAD,qBAAA,GAArCD,aAAa,CAACE,uBAAuB,GAAK,MAAM;MAChDH,UAAU,CAACI,OAAO,CAACC,IAAI,CAAC,CACtB,kBAAkB,EAClB;QAAEV,sBAAsB,EAAEW,OAAO,CAACX,sBAAsB;MAAE,CAAC,CAC5D,CAAC;IACJ;EACF,CAAC;AACH,CAAC,CAAC;AAAAY,OAAA,CAAAC,OAAA,GAAAhB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_default","exports","default","declare","api","deprecatedAssertSyntax","assertVersion","Error","name","manipulateOptions","parserOpts","generatorOpts","_generatorOpts$import","importAttributesKeyword","plugins","push","Boolean"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n deprecatedAssertSyntax?: boolean;\n}\n\nexport default declare((api, { deprecatedAssertSyntax }: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : \"^7.22.0\",\n );\n\n if (\n deprecatedAssertSyntax != null &&\n typeof deprecatedAssertSyntax !== \"boolean\"\n ) {\n throw new Error(\n \"'deprecatedAssertSyntax' must be a boolean, if specified.\",\n );\n }\n\n return {\n name: \"syntax-import-attributes\",\n\n manipulateOptions({ parserOpts, generatorOpts }) {\n generatorOpts.importAttributesKeyword ??= \"with\";\n parserOpts.plugins.push([\n \"importAttributes\",\n { deprecatedAssertSyntax: Boolean(deprecatedAssertSyntax) },\n ]);\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAMtC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAE;EAAEC;AAAgC,CAAC,KAAK;EACnED,GAAG,CAACE,aAAa,CAGX,SACN,CAAC;EAED,IACED,sBAAsB,IAAI,IAAI,IAC9B,OAAOA,sBAAsB,KAAK,SAAS,EAC3C;IACA,MAAM,IAAIE,KAAK,CACb,2DACF,CAAC;EACH;EAEA,OAAO;IACLC,IAAI,EAAE,0BAA0B;IAEhCC,iBAAiBA,CAAC;MAAEC,UAAU;MAAEC;IAAc,CAAC,EAAE;MAAA,IAAAC,qBAAA;MAC/C,CAAAA,qBAAA,GAAAD,aAAa,CAACE,uBAAuB,YAAAD,qBAAA,GAArCD,aAAa,CAACE,uBAAuB,GAAK,MAAM;MAChDH,UAAU,CAACI,OAAO,CAACC,IAAI,CAAC,CACtB,kBAAkB,EAClB;QAAEV,sBAAsB,EAAEW,OAAO,CAACX,sBAAsB;MAAE,CAAC,CAC5D,CAAC;IACJ;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-syntax-import-attributes/package.json b/node_modules/@babel/plugin-syntax-import-attributes/package.json index 2239fa8e..d932acdd 100644 --- a/node_modules/@babel/plugin-syntax-import-attributes/package.json +++ b/node_modules/@babel/plugin-syntax-import-attributes/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-syntax-import-attributes", - "version": "7.22.5", + "version": "7.23.3", "description": "Allow parsing of the module attributes in the import statement", "repository": { "type": "git", @@ -22,7 +22,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5" + "@babel/core": "^7.23.3" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-arrow-functions/README.md b/node_modules/@babel/plugin-transform-arrow-functions/README.md index aada4d6e..d2c6be31 100644 --- a/node_modules/@babel/plugin-transform-arrow-functions/README.md +++ b/node_modules/@babel/plugin-transform-arrow-functions/README.md @@ -2,7 +2,7 @@ > Compile ES2015 arrow functions to ES5 -See our website [@babel/plugin-transform-arrow-functions](https://babeljs.io/docs/en/babel-plugin-transform-arrow-functions) for more information. +See our website [@babel/plugin-transform-arrow-functions](https://babeljs.io/docs/babel-plugin-transform-arrow-functions) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-arrow-functions/lib/index.js b/node_modules/@babel/plugin-transform-arrow-functions/lib/index.js index 16103d93..48479372 100644 --- a/node_modules/@babel/plugin-transform-arrow-functions/lib/index.js +++ b/node_modules/@babel/plugin-transform-arrow-functions/lib/index.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption; api.assertVersion(7); const noNewArrows = (_api$assumption = api.assumption("noNewArrows")) != null ? _api$assumption : !options.spec; @@ -25,6 +25,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-arrow-functions/lib/index.js.map b/node_modules/@babel/plugin-transform-arrow-functions/lib/index.js.map index 250038b1..42a461d8 100644 --- a/node_modules/@babel/plugin-transform-arrow-functions/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-arrow-functions/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_default","declare","api","options","_api$assumption","assertVersion","noNewArrows","assumption","spec","name","visitor","ArrowFunctionExpression","path","isArrowFunctionExpression","arrowFunctionToExpression","allowInsertArrow","specCompliant","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n spec?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const noNewArrows = api.assumption(\"noNewArrows\") ?? !options.spec;\n\n return {\n name: \"transform-arrow-functions\",\n\n visitor: {\n ArrowFunctionExpression(path) {\n // In some conversion cases, it may have already been converted to a function while this callback\n // was queued up.\n if (!path.isArrowFunctionExpression()) return;\n\n if (process.env.BABEL_8_BREAKING) {\n path.arrowFunctionToExpression({\n // While other utils may be fine inserting other arrows to make more transforms possible,\n // the arrow transform itself absolutely cannot insert new arrow functions.\n allowInsertArrow: false,\n noNewArrows,\n });\n } else {\n path.arrowFunctionToExpression({\n allowInsertArrow: false,\n noNewArrows,\n\n // This is only needed for backward compat with @babel/traverse <7.13.0\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n specCompliant: !noNewArrows,\n });\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAMtC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAAA,IAAAC,eAAA;EAChDF,GAAG,CAACG,aAAa,CAAC,CAAC,CAAC;EAEpB,MAAMC,WAAW,IAAAF,eAAA,GAAGF,GAAG,CAACK,UAAU,CAAC,aAAa,CAAC,YAAAH,eAAA,GAAI,CAACD,OAAO,CAACK,IAAI;EAElE,OAAO;IACLC,IAAI,EAAE,2BAA2B;IAEjCC,OAAO,EAAE;MACPC,uBAAuBA,CAACC,IAAI,EAAE;QAG5B,IAAI,CAACA,IAAI,CAACC,yBAAyB,CAAC,CAAC,EAAE;QAShC;UACLD,IAAI,CAACE,yBAAyB,CAAC;YAC7BC,gBAAgB,EAAE,KAAK;YACvBT,WAAW;YAIXU,aAAa,EAAE,CAACV;UAClB,CAAC,CAAC;QACJ;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAW,OAAA,CAAAC,OAAA,GAAAlB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_default","exports","default","declare","api","options","_api$assumption","assertVersion","noNewArrows","assumption","spec","name","visitor","ArrowFunctionExpression","path","isArrowFunctionExpression","arrowFunctionToExpression","allowInsertArrow","specCompliant"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n spec?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const noNewArrows = api.assumption(\"noNewArrows\") ?? !options.spec;\n\n return {\n name: \"transform-arrow-functions\",\n\n visitor: {\n ArrowFunctionExpression(path) {\n // In some conversion cases, it may have already been converted to a function while this callback\n // was queued up.\n if (!path.isArrowFunctionExpression()) return;\n\n if (process.env.BABEL_8_BREAKING) {\n path.arrowFunctionToExpression({\n // While other utils may be fine inserting other arrows to make more transforms possible,\n // the arrow transform itself absolutely cannot insert new arrow functions.\n allowInsertArrow: false,\n noNewArrows,\n });\n } else {\n path.arrowFunctionToExpression({\n allowInsertArrow: false,\n noNewArrows,\n\n // This is only needed for backward compat with @babel/traverse <7.13.0\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n specCompliant: !noNewArrows,\n });\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAMtC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAAA,IAAAC,eAAA;EAChDF,GAAG,CAACG,aAAa,CAGX,CACN,CAAC;EAED,MAAMC,WAAW,IAAAF,eAAA,GAAGF,GAAG,CAACK,UAAU,CAAC,aAAa,CAAC,YAAAH,eAAA,GAAI,CAACD,OAAO,CAACK,IAAI;EAElE,OAAO;IACLC,IAAI,EAAE,2BAA2B;IAEjCC,OAAO,EAAE;MACPC,uBAAuBA,CAACC,IAAI,EAAE;QAG5B,IAAI,CAACA,IAAI,CAACC,yBAAyB,CAAC,CAAC,EAAE;QAShC;UACLD,IAAI,CAACE,yBAAyB,CAAC;YAC7BC,gBAAgB,EAAE,KAAK;YACvBT,WAAW;YAIXU,aAAa,EAAE,CAACV;UAClB,CAAC,CAAC;QACJ;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-arrow-functions/package.json b/node_modules/@babel/plugin-transform-arrow-functions/package.json index b4bf236f..ea9afe02 100644 --- a/node_modules/@babel/plugin-transform-arrow-functions/package.json +++ b/node_modules/@babel/plugin-transform-arrow-functions/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-arrow-functions", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile ES2015 arrow functions to ES5", "repository": { "type": "git", @@ -23,10 +23,10 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/traverse": "^7.22.5", - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.23.3", + "@babel/types": "^7.23.3" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-async-generator-functions/lib/index.js b/node_modules/@babel/plugin-transform-async-generator-functions/lib/index.js index 0d3d6b9b..6c0b594e 100644 --- a/node_modules/@babel/plugin-transform-async-generator-functions/lib/index.js +++ b/node_modules/@babel/plugin-transform-async-generator-functions/lib/index.js @@ -9,7 +9,7 @@ var _helperRemapAsyncToGenerator = require("@babel/helper-remap-async-to-generat var _core = require("@babel/core"); var _forAwait = require("./for-await.js"); var _helperEnvironmentVisitor = require("@babel/helper-environment-visitor"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); const yieldStarVisitor = _core.traverse.visitors.merge([{ ArrowFunctionExpression(path) { @@ -80,6 +80,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-async-generator-functions/lib/index.js.map b/node_modules/@babel/plugin-transform-async-generator-functions/lib/index.js.map index 313dabca..6a0bff8e 100644 --- a/node_modules/@babel/plugin-transform-async-generator-functions/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-async-generator-functions/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperRemapAsyncToGenerator","_core","_forAwait","_helperEnvironmentVisitor","_default","declare","api","assertVersion","yieldStarVisitor","traverse","visitors","merge","ArrowFunctionExpression","path","skip","YieldExpression","node","state","delegate","asyncIter","t","callExpression","addHelper","argument","environmentVisitor","forAwaitVisitor","ForOfStatement","file","await","build","rewriteForAwait","getAsyncIterator","declar","loop","block","body","ensureBlock","push","length","blockStatement","inherits","p","replaceParent","parentPath","replaceWithMultiple","scope","parent","crawl","visitor","Function","async","generator","remapAsyncToGenerator","wrapAsync","wrapAwait","name","default","Program","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport remapAsyncToGenerator from \"@babel/helper-remap-async-to-generator\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\nimport { traverse, types as t, type PluginPass } from \"@babel/core\";\nimport rewriteForAwait from \"./for-await.ts\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n const yieldStarVisitor = traverse.visitors.merge<PluginPass>([\n {\n ArrowFunctionExpression(path) {\n path.skip();\n },\n\n YieldExpression({ node }, state) {\n if (!node.delegate) return;\n const asyncIter = t.callExpression(state.addHelper(\"asyncIterator\"), [\n node.argument,\n ]);\n node.argument = t.callExpression(\n state.addHelper(\"asyncGeneratorDelegate\"),\n process.env.BABEL_8_BREAKING\n ? [asyncIter]\n : [asyncIter, state.addHelper(\"awaitAsyncGenerator\")],\n );\n },\n },\n environmentVisitor,\n ]);\n\n const forAwaitVisitor = traverse.visitors.merge<PluginPass>([\n {\n ArrowFunctionExpression(path) {\n path.skip();\n },\n\n ForOfStatement(path: NodePath<t.ForOfStatement>, { file }) {\n const { node } = path;\n if (!node.await) return;\n\n const build = rewriteForAwait(path, {\n getAsyncIterator: file.addHelper(\"asyncIterator\"),\n });\n\n const { declar, loop } = build;\n const block = loop.body as t.BlockStatement;\n\n // ensure that it's a block so we can take all its statements\n path.ensureBlock();\n\n // add the value declaration to the new loop body\n if (declar) {\n block.body.push(declar);\n if (path.node.body.body.length) {\n block.body.push(t.blockStatement(path.node.body.body));\n }\n } else {\n block.body.push(...path.node.body.body);\n }\n\n t.inherits(loop, node);\n t.inherits(loop.body, node.body);\n\n const p = build.replaceParent ? path.parentPath : path;\n p.replaceWithMultiple(build.node);\n\n // TODO: Avoid crawl\n p.scope.parent.crawl();\n },\n },\n environmentVisitor,\n ]);\n\n const visitor: Visitor<PluginPass> = {\n Function(path, state) {\n if (!path.node.async) return;\n\n path.traverse(forAwaitVisitor, state);\n\n if (!path.node.generator) return;\n\n path.traverse(yieldStarVisitor, state);\n\n // We don't need to pass the noNewArrows assumption, since\n // async generators are never arrow functions.\n remapAsyncToGenerator(path, {\n wrapAsync: state.addHelper(\"wrapAsyncGenerator\"),\n wrapAwait: state.addHelper(\"awaitAsyncGenerator\"),\n });\n },\n };\n\n return {\n name: \"transform-async-generator-functions\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-async-generators\").default,\n\n visitor: {\n Program(path, state) {\n // We need to traverse the ast here (instead of just vising Function\n // in the top level visitor) because for-await needs to run before the\n // async-to-generator plugin. This is because for-await is transpiled\n // using \"await\" expressions, which are then converted to \"yield\".\n //\n // This is bad for performance, but plugin ordering will allow as to\n // directly visit Function in the top level visitor.\n path.traverse(visitor, state);\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperRemapAsyncToGenerator","_core","_forAwait","_helperEnvironmentVisitor","_default","exports","default","declare","api","assertVersion","yieldStarVisitor","traverse","visitors","merge","ArrowFunctionExpression","path","skip","YieldExpression","node","state","delegate","asyncIter","t","callExpression","addHelper","argument","environmentVisitor","forAwaitVisitor","ForOfStatement","file","await","build","rewriteForAwait","getAsyncIterator","declar","loop","block","body","ensureBlock","push","length","blockStatement","inherits","p","replaceParent","parentPath","replaceWithMultiple","scope","parent","crawl","visitor","Function","async","generator","remapAsyncToGenerator","wrapAsync","wrapAwait","name","Program"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport remapAsyncToGenerator from \"@babel/helper-remap-async-to-generator\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\nimport { traverse, types as t, type PluginPass } from \"@babel/core\";\nimport rewriteForAwait from \"./for-await.ts\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const yieldStarVisitor = traverse.visitors.merge<PluginPass>([\n {\n ArrowFunctionExpression(path) {\n path.skip();\n },\n\n YieldExpression({ node }, state) {\n if (!node.delegate) return;\n const asyncIter = t.callExpression(state.addHelper(\"asyncIterator\"), [\n node.argument,\n ]);\n node.argument = t.callExpression(\n state.addHelper(\"asyncGeneratorDelegate\"),\n process.env.BABEL_8_BREAKING\n ? [asyncIter]\n : [asyncIter, state.addHelper(\"awaitAsyncGenerator\")],\n );\n },\n },\n environmentVisitor,\n ]);\n\n const forAwaitVisitor = traverse.visitors.merge<PluginPass>([\n {\n ArrowFunctionExpression(path) {\n path.skip();\n },\n\n ForOfStatement(path: NodePath<t.ForOfStatement>, { file }) {\n const { node } = path;\n if (!node.await) return;\n\n const build = rewriteForAwait(path, {\n getAsyncIterator: file.addHelper(\"asyncIterator\"),\n });\n\n const { declar, loop } = build;\n const block = loop.body as t.BlockStatement;\n\n // ensure that it's a block so we can take all its statements\n path.ensureBlock();\n\n // add the value declaration to the new loop body\n if (declar) {\n block.body.push(declar);\n if (path.node.body.body.length) {\n block.body.push(t.blockStatement(path.node.body.body));\n }\n } else {\n block.body.push(...path.node.body.body);\n }\n\n t.inherits(loop, node);\n t.inherits(loop.body, node.body);\n\n const p = build.replaceParent ? path.parentPath : path;\n p.replaceWithMultiple(build.node);\n\n // TODO: Avoid crawl\n p.scope.parent.crawl();\n },\n },\n environmentVisitor,\n ]);\n\n const visitor: Visitor<PluginPass> = {\n Function(path, state) {\n if (!path.node.async) return;\n\n path.traverse(forAwaitVisitor, state);\n\n if (!path.node.generator) return;\n\n path.traverse(yieldStarVisitor, state);\n\n // We don't need to pass the noNewArrows assumption, since\n // async generators are never arrow functions.\n remapAsyncToGenerator(path, {\n wrapAsync: state.addHelper(\"wrapAsyncGenerator\"),\n wrapAwait: state.addHelper(\"awaitAsyncGenerator\"),\n });\n },\n };\n\n return {\n name: \"transform-async-generator-functions\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-async-generators\").default,\n\n visitor: {\n Program(path, state) {\n // We need to traverse the ast here (instead of just vising Function\n // in the top level visitor) because for-await needs to run before the\n // async-to-generator plugin. This is because for-await is transpiled\n // using \"await\" expressions, which are then converted to \"yield\".\n //\n // This is bad for performance, but plugin ordering will allow as to\n // directly visit Function in the top level visitor.\n path.traverse(visitor, state);\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-async-generator-functions/package.json b/node_modules/@babel/plugin-transform-async-generator-functions/package.json index 157c6f16..2ca1a058 100644 --- a/node_modules/@babel/plugin-transform-async-generator-functions/package.json +++ b/node_modules/@babel/plugin-transform-async-generator-functions/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-async-generator-functions", - "version": "7.23.2", + "version": "7.23.4", "description": "Turn async generator functions into ES2015 generators", "repository": { "type": "git", @@ -26,7 +26,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", "babel-plugin-polyfill-corejs3": "^0.8.5", "core-js-pure": "^3.30.2" diff --git a/node_modules/@babel/plugin-transform-async-to-generator/README.md b/node_modules/@babel/plugin-transform-async-to-generator/README.md index d5d31e95..91f9df3f 100644 --- a/node_modules/@babel/plugin-transform-async-to-generator/README.md +++ b/node_modules/@babel/plugin-transform-async-to-generator/README.md @@ -2,7 +2,7 @@ > Turn async functions into ES2015 generators -See our website [@babel/plugin-transform-async-to-generator](https://babeljs.io/docs/en/babel-plugin-transform-async-to-generator) for more information. +See our website [@babel/plugin-transform-async-to-generator](https://babeljs.io/docs/babel-plugin-transform-async-to-generator) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-async-to-generator/lib/index.js b/node_modules/@babel/plugin-transform-async-to-generator/lib/index.js index ec7f6c40..65c4a8e0 100644 --- a/node_modules/@babel/plugin-transform-async-to-generator/lib/index.js +++ b/node_modules/@babel/plugin-transform-async-to-generator/lib/index.js @@ -8,7 +8,7 @@ var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _helperRemapAsyncToGenerator = require("@babel/helper-remap-async-to-generator"); var _helperModuleImports = require("@babel/helper-module-imports"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _api$assumption2; api.assertVersion(7); const { @@ -48,6 +48,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-async-to-generator/lib/index.js.map b/node_modules/@babel/plugin-transform-async-to-generator/lib/index.js.map index 0c9eecea..da8e65cb 100644 --- a/node_modules/@babel/plugin-transform-async-to-generator/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-async-to-generator/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperRemapAsyncToGenerator","_helperModuleImports","_core","_default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","method","module","noNewArrows","assumption","ignoreFunctionLength","name","visitor","Function","path","state","node","async","generator","wrapAsync","methodWrapper","t","cloneNode","addNamed","remapAsyncToGenerator","addHelper","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport remapAsyncToGenerator from \"@babel/helper-remap-async-to-generator\";\nimport { addNamed } from \"@babel/helper-module-imports\";\nimport { types as t } from \"@babel/core\";\n\nexport interface Options {\n method?: string;\n module?: string;\n}\n\ntype State = {\n methodWrapper?: t.Identifier | t.SequenceExpression;\n};\n\nexport default declare<State>((api, options: Options) => {\n api.assertVersion(7);\n\n const { method, module } = options;\n // Todo(BABEL 8): Consider default it to false\n const noNewArrows = api.assumption(\"noNewArrows\") ?? true;\n const ignoreFunctionLength = api.assumption(\"ignoreFunctionLength\") ?? false;\n\n if (method && module) {\n return {\n name: \"transform-async-to-generator\",\n\n visitor: {\n Function(path, state) {\n if (!path.node.async || path.node.generator) return;\n\n let wrapAsync = state.methodWrapper;\n if (wrapAsync) {\n wrapAsync = t.cloneNode(wrapAsync);\n } else {\n wrapAsync = state.methodWrapper = addNamed(path, method, module);\n }\n\n remapAsyncToGenerator(\n path,\n { wrapAsync },\n noNewArrows,\n ignoreFunctionLength,\n );\n },\n },\n };\n }\n\n return {\n name: \"transform-async-to-generator\",\n\n visitor: {\n Function(path, state) {\n if (!path.node.async || path.node.generator) return;\n\n remapAsyncToGenerator(\n path,\n { wrapAsync: state.addHelper(\"asyncToGenerator\") },\n noNewArrows,\n ignoreFunctionLength,\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,4BAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAAyC,IAAAI,QAAA,GAW1B,IAAAC,0BAAO,EAAQ,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAAA,IAAAC,eAAA,EAAAC,gBAAA;EACvDH,GAAG,CAACI,aAAa,CAAC,CAAC,CAAC;EAEpB,MAAM;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGL,OAAO;EAElC,MAAMM,WAAW,IAAAL,eAAA,GAAGF,GAAG,CAACQ,UAAU,CAAC,aAAa,CAAC,YAAAN,eAAA,GAAI,IAAI;EACzD,MAAMO,oBAAoB,IAAAN,gBAAA,GAAGH,GAAG,CAACQ,UAAU,CAAC,sBAAsB,CAAC,YAAAL,gBAAA,GAAI,KAAK;EAE5E,IAAIE,MAAM,IAAIC,MAAM,EAAE;IACpB,OAAO;MACLI,IAAI,EAAE,8BAA8B;MAEpCC,OAAO,EAAE;QACPC,QAAQA,CAACC,IAAI,EAAEC,KAAK,EAAE;UACpB,IAAI,CAACD,IAAI,CAACE,IAAI,CAACC,KAAK,IAAIH,IAAI,CAACE,IAAI,CAACE,SAAS,EAAE;UAE7C,IAAIC,SAAS,GAAGJ,KAAK,CAACK,aAAa;UACnC,IAAID,SAAS,EAAE;YACbA,SAAS,GAAGE,WAAC,CAACC,SAAS,CAACH,SAAS,CAAC;UACpC,CAAC,MAAM;YACLA,SAAS,GAAGJ,KAAK,CAACK,aAAa,GAAG,IAAAG,6BAAQ,EAACT,IAAI,EAAER,MAAM,EAAEC,MAAM,CAAC;UAClE;UAEA,IAAAiB,oCAAqB,EACnBV,IAAI,EACJ;YAAEK;UAAU,CAAC,EACbX,WAAW,EACXE,oBACF,CAAC;QACH;MACF;IACF,CAAC;EACH;EAEA,OAAO;IACLC,IAAI,EAAE,8BAA8B;IAEpCC,OAAO,EAAE;MACPC,QAAQA,CAACC,IAAI,EAAEC,KAAK,EAAE;QACpB,IAAI,CAACD,IAAI,CAACE,IAAI,CAACC,KAAK,IAAIH,IAAI,CAACE,IAAI,CAACE,SAAS,EAAE;QAE7C,IAAAM,oCAAqB,EACnBV,IAAI,EACJ;UAAEK,SAAS,EAAEJ,KAAK,CAACU,SAAS,CAAC,kBAAkB;QAAE,CAAC,EAClDjB,WAAW,EACXE,oBACF,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAgB,OAAA,CAAAC,OAAA,GAAA5B,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperRemapAsyncToGenerator","_helperModuleImports","_core","_default","exports","default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","method","module","noNewArrows","assumption","ignoreFunctionLength","name","visitor","Function","path","state","node","async","generator","wrapAsync","methodWrapper","t","cloneNode","addNamed","remapAsyncToGenerator","addHelper"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport remapAsyncToGenerator from \"@babel/helper-remap-async-to-generator\";\nimport { addNamed } from \"@babel/helper-module-imports\";\nimport { types as t } from \"@babel/core\";\n\nexport interface Options {\n method?: string;\n module?: string;\n}\n\ntype State = {\n methodWrapper?: t.Identifier | t.SequenceExpression;\n};\n\nexport default declare<State>((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const { method, module } = options;\n // Todo(BABEL 8): Consider default it to false\n const noNewArrows = api.assumption(\"noNewArrows\") ?? true;\n const ignoreFunctionLength = api.assumption(\"ignoreFunctionLength\") ?? false;\n\n if (method && module) {\n return {\n name: \"transform-async-to-generator\",\n\n visitor: {\n Function(path, state) {\n if (!path.node.async || path.node.generator) return;\n\n let wrapAsync = state.methodWrapper;\n if (wrapAsync) {\n wrapAsync = t.cloneNode(wrapAsync);\n } else {\n wrapAsync = state.methodWrapper = addNamed(path, method, module);\n }\n\n remapAsyncToGenerator(\n path,\n { wrapAsync },\n noNewArrows,\n ignoreFunctionLength,\n );\n },\n },\n };\n }\n\n return {\n name: \"transform-async-to-generator\",\n\n visitor: {\n Function(path, state) {\n if (!path.node.async || path.node.generator) return;\n\n remapAsyncToGenerator(\n path,\n { wrapAsync: state.addHelper(\"asyncToGenerator\") },\n noNewArrows,\n ignoreFunctionLength,\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,4BAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAH,OAAA;AAAyC,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAW1B,IAAAC,0BAAO,EAAQ,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAAA,IAAAC,eAAA,EAAAC,gBAAA;EACvDH,GAAG,CAACI,aAAa,CAGX,CACN,CAAC;EAED,MAAM;IAAEC,MAAM;IAAEC;EAAO,CAAC,GAAGL,OAAO;EAElC,MAAMM,WAAW,IAAAL,eAAA,GAAGF,GAAG,CAACQ,UAAU,CAAC,aAAa,CAAC,YAAAN,eAAA,GAAI,IAAI;EACzD,MAAMO,oBAAoB,IAAAN,gBAAA,GAAGH,GAAG,CAACQ,UAAU,CAAC,sBAAsB,CAAC,YAAAL,gBAAA,GAAI,KAAK;EAE5E,IAAIE,MAAM,IAAIC,MAAM,EAAE;IACpB,OAAO;MACLI,IAAI,EAAE,8BAA8B;MAEpCC,OAAO,EAAE;QACPC,QAAQA,CAACC,IAAI,EAAEC,KAAK,EAAE;UACpB,IAAI,CAACD,IAAI,CAACE,IAAI,CAACC,KAAK,IAAIH,IAAI,CAACE,IAAI,CAACE,SAAS,EAAE;UAE7C,IAAIC,SAAS,GAAGJ,KAAK,CAACK,aAAa;UACnC,IAAID,SAAS,EAAE;YACbA,SAAS,GAAGE,WAAC,CAACC,SAAS,CAACH,SAAS,CAAC;UACpC,CAAC,MAAM;YACLA,SAAS,GAAGJ,KAAK,CAACK,aAAa,GAAG,IAAAG,6BAAQ,EAACT,IAAI,EAAER,MAAM,EAAEC,MAAM,CAAC;UAClE;UAEA,IAAAiB,oCAAqB,EACnBV,IAAI,EACJ;YAAEK;UAAU,CAAC,EACbX,WAAW,EACXE,oBACF,CAAC;QACH;MACF;IACF,CAAC;EACH;EAEA,OAAO;IACLC,IAAI,EAAE,8BAA8B;IAEpCC,OAAO,EAAE;MACPC,QAAQA,CAACC,IAAI,EAAEC,KAAK,EAAE;QACpB,IAAI,CAACD,IAAI,CAACE,IAAI,CAACC,KAAK,IAAIH,IAAI,CAACE,IAAI,CAACE,SAAS,EAAE;QAE7C,IAAAM,oCAAqB,EACnBV,IAAI,EACJ;UAAEK,SAAS,EAAEJ,KAAK,CAACU,SAAS,CAAC,kBAAkB;QAAE,CAAC,EAClDjB,WAAW,EACXE,oBACF,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-async-to-generator/package.json b/node_modules/@babel/plugin-transform-async-to-generator/package.json index 68e1ba14..7fbf3f0e 100644 --- a/node_modules/@babel/plugin-transform-async-to-generator/package.json +++ b/node_modules/@babel/plugin-transform-async-to-generator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-async-to-generator", - "version": "7.22.5", + "version": "7.23.3", "description": "Turn async functions into ES2015 generators", "repository": { "type": "git", @@ -17,15 +17,15 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-module-imports": "^7.22.5", + "@babel/helper-module-imports": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-remap-async-to-generator": "^7.22.5" + "@babel/helper-remap-async-to-generator": "^7.22.20" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-block-scoped-functions/README.md b/node_modules/@babel/plugin-transform-block-scoped-functions/README.md index 1999b60b..872e26a8 100644 --- a/node_modules/@babel/plugin-transform-block-scoped-functions/README.md +++ b/node_modules/@babel/plugin-transform-block-scoped-functions/README.md @@ -2,7 +2,7 @@ > Babel plugin to ensure function declarations at the block level are block scoped -See our website [@babel/plugin-transform-block-scoped-functions](https://babeljs.io/docs/en/babel-plugin-transform-block-scoped-functions) for more information. +See our website [@babel/plugin-transform-block-scoped-functions](https://babeljs.io/docs/babel-plugin-transform-block-scoped-functions) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-block-scoped-functions/lib/index.js b/node_modules/@babel/plugin-transform-block-scoped-functions/lib/index.js index 1e6d6369..d74fae2f 100644 --- a/node_modules/@babel/plugin-transform-block-scoped-functions/lib/index.js +++ b/node_modules/@babel/plugin-transform-block-scoped-functions/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); function transformStatementList(paths) { for (const path of paths) { @@ -39,6 +39,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-block-scoped-functions/lib/index.js.map b/node_modules/@babel/plugin-transform-block-scoped-functions/lib/index.js.map index 66979265..8d3b83bf 100644 --- a/node_modules/@babel/plugin-transform-block-scoped-functions/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-block-scoped-functions/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","transformStatementList","paths","path","isFunctionDeclaration","func","node","declar","t","variableDeclaration","variableDeclarator","id","toExpression","_blockHoist","replaceWith","name","visitor","BlockStatement","parent","isFunction","body","isExportDeclaration","get","SwitchCase","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n function transformStatementList(paths: NodePath<t.Statement>[]) {\n for (const path of paths) {\n if (!path.isFunctionDeclaration()) continue;\n const func = path.node;\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(func.id, t.toExpression(func)),\n ]);\n\n // hoist it up above everything else\n // @ts-expect-error todo(flow->ts): avoid mutations\n declar._blockHoist = 2;\n\n // todo: name this\n func.id = null;\n\n path.replaceWith(declar);\n }\n }\n\n return {\n name: \"transform-block-scoped-functions\",\n\n visitor: {\n BlockStatement(path) {\n const { node, parent } = path;\n if (\n t.isFunction(parent, { body: node }) ||\n t.isExportDeclaration(parent)\n ) {\n return;\n }\n\n transformStatementList(path.get(\"body\"));\n },\n\n SwitchCase(path) {\n transformStatementList(path.get(\"consequent\"));\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAG1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,SAASC,sBAAsBA,CAACC,KAA8B,EAAE;IAC9D,KAAK,MAAMC,IAAI,IAAID,KAAK,EAAE;MACxB,IAAI,CAACC,IAAI,CAACC,qBAAqB,CAAC,CAAC,EAAE;MACnC,MAAMC,IAAI,GAAGF,IAAI,CAACG,IAAI;MACtB,MAAMC,MAAM,GAAGC,WAAC,CAACC,mBAAmB,CAAC,KAAK,EAAE,CAC1CD,WAAC,CAACE,kBAAkB,CAACL,IAAI,CAACM,EAAE,EAAEH,WAAC,CAACI,YAAY,CAACP,IAAI,CAAC,CAAC,CACpD,CAAC;MAIFE,MAAM,CAACM,WAAW,GAAG,CAAC;MAGtBR,IAAI,CAACM,EAAE,GAAG,IAAI;MAEdR,IAAI,CAACW,WAAW,CAACP,MAAM,CAAC;IAC1B;EACF;EAEA,OAAO;IACLQ,IAAI,EAAE,kCAAkC;IAExCC,OAAO,EAAE;MACPC,cAAcA,CAACd,IAAI,EAAE;QACnB,MAAM;UAAEG,IAAI;UAAEY;QAAO,CAAC,GAAGf,IAAI;QAC7B,IACEK,WAAC,CAACW,UAAU,CAACD,MAAM,EAAE;UAAEE,IAAI,EAAEd;QAAK,CAAC,CAAC,IACpCE,WAAC,CAACa,mBAAmB,CAACH,MAAM,CAAC,EAC7B;UACA;QACF;QAEAjB,sBAAsB,CAACE,IAAI,CAACmB,GAAG,CAAC,MAAM,CAAC,CAAC;MAC1C,CAAC;MAEDC,UAAUA,CAACpB,IAAI,EAAE;QACfF,sBAAsB,CAACE,IAAI,CAACmB,GAAG,CAAC,YAAY,CAAC,CAAC;MAChD;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAE,OAAA,CAAAC,OAAA,GAAA5B,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","transformStatementList","paths","path","isFunctionDeclaration","func","node","declar","t","variableDeclaration","variableDeclarator","id","toExpression","_blockHoist","replaceWith","name","visitor","BlockStatement","parent","isFunction","body","isExportDeclaration","get","SwitchCase"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n function transformStatementList(paths: NodePath<t.Statement>[]) {\n for (const path of paths) {\n if (!path.isFunctionDeclaration()) continue;\n const func = path.node;\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(func.id, t.toExpression(func)),\n ]);\n\n // hoist it up above everything else\n // @ts-expect-error todo(flow->ts): avoid mutations\n declar._blockHoist = 2;\n\n // todo: name this\n func.id = null;\n\n path.replaceWith(declar);\n }\n }\n\n return {\n name: \"transform-block-scoped-functions\",\n\n visitor: {\n BlockStatement(path) {\n const { node, parent } = path;\n if (\n t.isFunction(parent, { body: node }) ||\n t.isExportDeclaration(parent)\n ) {\n return;\n }\n\n transformStatementList(path.get(\"body\"));\n },\n\n SwitchCase(path) {\n transformStatementList(path.get(\"consequent\"));\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAG1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,SAASC,sBAAsBA,CAACC,KAA8B,EAAE;IAC9D,KAAK,MAAMC,IAAI,IAAID,KAAK,EAAE;MACxB,IAAI,CAACC,IAAI,CAACC,qBAAqB,CAAC,CAAC,EAAE;MACnC,MAAMC,IAAI,GAAGF,IAAI,CAACG,IAAI;MACtB,MAAMC,MAAM,GAAGC,WAAC,CAACC,mBAAmB,CAAC,KAAK,EAAE,CAC1CD,WAAC,CAACE,kBAAkB,CAACL,IAAI,CAACM,EAAE,EAAEH,WAAC,CAACI,YAAY,CAACP,IAAI,CAAC,CAAC,CACpD,CAAC;MAIFE,MAAM,CAACM,WAAW,GAAG,CAAC;MAGtBR,IAAI,CAACM,EAAE,GAAG,IAAI;MAEdR,IAAI,CAACW,WAAW,CAACP,MAAM,CAAC;IAC1B;EACF;EAEA,OAAO;IACLQ,IAAI,EAAE,kCAAkC;IAExCC,OAAO,EAAE;MACPC,cAAcA,CAACd,IAAI,EAAE;QACnB,MAAM;UAAEG,IAAI;UAAEY;QAAO,CAAC,GAAGf,IAAI;QAC7B,IACEK,WAAC,CAACW,UAAU,CAACD,MAAM,EAAE;UAAEE,IAAI,EAAEd;QAAK,CAAC,CAAC,IACpCE,WAAC,CAACa,mBAAmB,CAACH,MAAM,CAAC,EAC7B;UACA;QACF;QAEAjB,sBAAsB,CAACE,IAAI,CAACmB,GAAG,CAAC,MAAM,CAAC,CAAC;MAC1C,CAAC;MAEDC,UAAUA,CAACpB,IAAI,EAAE;QACfF,sBAAsB,CAACE,IAAI,CAACmB,GAAG,CAAC,YAAY,CAAC,CAAC;MAChD;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-block-scoped-functions/package.json b/node_modules/@babel/plugin-transform-block-scoped-functions/package.json index 0fd8cd4e..a3f3ea15 100644 --- a/node_modules/@babel/plugin-transform-block-scoped-functions/package.json +++ b/node_modules/@babel/plugin-transform-block-scoped-functions/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-block-scoped-functions", - "version": "7.22.5", + "version": "7.23.3", "description": "Babel plugin to ensure function declarations at the block level are block scoped", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js b/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js index 5464912f..5ac708d2 100644 --- a/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js +++ b/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.annexB33FunctionsVisitor = void 0; exports.isVarScope = isVarScope; var _core = require("@babel/core"); -const annexB33FunctionsVisitor = { +const annexB33FunctionsVisitor = exports.annexB33FunctionsVisitor = { VariableDeclaration(path) { if (isStrict(path)) return; if (path.node.kind !== "var") return; @@ -27,7 +27,6 @@ const annexB33FunctionsVisitor = { transformStatementList(path.get("consequent")); } }; -exports.annexB33FunctionsVisitor = annexB33FunctionsVisitor; function transformStatementList(paths) { outer: for (const path of paths) { if (!path.isFunctionDeclaration()) continue; diff --git a/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js.map b/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js.map index b69793b3..77358a12 100644 --- a/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js.map +++ b/node_modules/@babel/plugin-transform-block-scoping/lib/annex-B_3_3.js.map @@ -1 +1 @@ -{"version":3,"names":["_core","require","annexB33FunctionsVisitor","VariableDeclaration","path","isStrict","node","kind","varScope","scope","getFunctionParent","getProgramParent","traverse","functionsToVarVisitor","names","Object","keys","getBindingIdentifiers","BlockStatement","t","isFunction","parent","body","transformStatementList","get","SwitchCase","exports","paths","outer","isFunctionDeclaration","async","generator","parentPath","isVarScope","name","id","currScope","hasOwnBinding","maybeTransformBlockScopedFunction","removeOwnBinding","varNode","variableDeclaration","variableDeclarator","toExpression","_blockHoist","varPath","replaceWith","registerDeclaration","Scope","binding","getOwnBinding","Expression|Declaration","skip","isFunctionParent","isProgram","find","_node$directives","sourceType","isClass","isBlockStatement","directives","some","directive","value"],"sources":["../src/annex-B_3_3.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/traverse\";\n\n// Whenever a function declaration in a nested block scope\n// doesn't conflict with a block-scoped binding from an outer\n// scope, we transform it to a variable declaration.\n//\n// This implements the Annex B.3.3 behavior.\n//\n// TODO(Babel 8): Figure out how this should interact with\n// the transform-block-scoped functions plugin (it feels\n// wrong to handle this transform here), and what we want\n// to do with Annex B behavior in general.\n\n// To avoid confusing block-scoped variables transformed to\n// var with original vars, this transformation happens in two\n// different places:\n// 1. For functions that \"conflict\" with var-variables, in\n// the VariableDeclaration visitor.\n// 2. For functions that don't conflict with any variable,\n// in the FunctionDeclaration visitor.\n\nexport const annexB33FunctionsVisitor: Visitor = {\n VariableDeclaration(path) {\n if (isStrict(path)) return;\n if (path.node.kind !== \"var\") return;\n\n const varScope =\n path.scope.getFunctionParent() || path.scope.getProgramParent();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n varScope.path.traverse(functionsToVarVisitor, {\n names: Object.keys(path.getBindingIdentifiers()),\n });\n },\n\n // NOTE: These two visitors target the same nodes as the\n // block-scoped-functions plugin\n\n BlockStatement(path) {\n if (isStrict(path)) return;\n if (t.isFunction(path.parent, { body: path.node })) return;\n transformStatementList(path.get(\"body\"));\n },\n\n SwitchCase(path) {\n if (isStrict(path)) return;\n transformStatementList(path.get(\"consequent\"));\n },\n};\n\nfunction transformStatementList(paths: NodePath<t.Statement>[]) {\n outer: for (const path of paths) {\n if (!path.isFunctionDeclaration()) continue;\n // Annex B.3.3 only applies to plain functions.\n if (path.node.async || path.node.generator) return;\n\n const { scope } = path.parentPath;\n if (isVarScope(scope)) return;\n\n const { name } = path.node.id;\n let currScope = scope;\n do {\n if (currScope.parent.hasOwnBinding(name)) continue outer;\n currScope = currScope.parent;\n } while (!isVarScope(currScope));\n\n maybeTransformBlockScopedFunction(path);\n }\n}\n\nfunction maybeTransformBlockScopedFunction(\n path: NodePath<t.FunctionDeclaration>,\n) {\n const {\n node,\n parentPath: { scope },\n } = path;\n\n const { id } = node;\n scope.removeOwnBinding(id.name);\n node.id = null;\n\n const varNode = t.variableDeclaration(\"var\", [\n t.variableDeclarator(id, t.toExpression(node)),\n ]);\n // @ts-expect-error undocumented property\n varNode._blockHoist = 2;\n\n const [varPath] = path.replaceWith(varNode);\n scope.registerDeclaration(varPath);\n}\n\nconst functionsToVarVisitor: Visitor<{ names: string[] }> = {\n Scope(path, { names }) {\n for (const name of names) {\n const binding = path.scope.getOwnBinding(name);\n if (binding && binding.kind === \"hoisted\") {\n maybeTransformBlockScopedFunction(\n binding.path as NodePath<t.FunctionDeclaration>,\n );\n }\n }\n },\n \"Expression|Declaration\"(path) {\n path.skip();\n },\n};\n\nexport function isVarScope(scope: Scope) {\n return scope.path.isFunctionParent() || scope.path.isProgram();\n}\n\nfunction isStrict(path: NodePath) {\n return !!path.find(({ node }) => {\n if (t.isProgram(node)) {\n if (node.sourceType === \"module\") return true;\n } else if (t.isClass(node)) {\n return true;\n } else if (!t.isBlockStatement(node)) {\n return false;\n }\n\n return node.directives?.some(\n directive => directive.value.value === \"use strict\",\n );\n });\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_core","require","annexB33FunctionsVisitor","exports","VariableDeclaration","path","isStrict","node","kind","varScope","scope","getFunctionParent","getProgramParent","traverse","functionsToVarVisitor","names","Object","keys","getBindingIdentifiers","BlockStatement","t","isFunction","parent","body","transformStatementList","get","SwitchCase","paths","outer","isFunctionDeclaration","async","generator","parentPath","isVarScope","name","id","currScope","hasOwnBinding","maybeTransformBlockScopedFunction","removeOwnBinding","varNode","variableDeclaration","variableDeclarator","toExpression","_blockHoist","varPath","replaceWith","registerDeclaration","Scope","binding","getOwnBinding","Expression|Declaration","skip","isFunctionParent","isProgram","find","_node$directives","sourceType","isClass","isBlockStatement","directives","some","directive","value"],"sources":["../src/annex-B_3_3.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/traverse\";\n\n// Whenever a function declaration in a nested block scope\n// doesn't conflict with a block-scoped binding from an outer\n// scope, we transform it to a variable declaration.\n//\n// This implements the Annex B.3.3 behavior.\n//\n// TODO(Babel 8): Figure out how this should interact with\n// the transform-block-scoped functions plugin (it feels\n// wrong to handle this transform here), and what we want\n// to do with Annex B behavior in general.\n\n// To avoid confusing block-scoped variables transformed to\n// var with original vars, this transformation happens in two\n// different places:\n// 1. For functions that \"conflict\" with var-variables, in\n// the VariableDeclaration visitor.\n// 2. For functions that don't conflict with any variable,\n// in the FunctionDeclaration visitor.\n\nexport const annexB33FunctionsVisitor: Visitor = {\n VariableDeclaration(path) {\n if (isStrict(path)) return;\n if (path.node.kind !== \"var\") return;\n\n const varScope =\n path.scope.getFunctionParent() || path.scope.getProgramParent();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n varScope.path.traverse(functionsToVarVisitor, {\n names: Object.keys(path.getBindingIdentifiers()),\n });\n },\n\n // NOTE: These two visitors target the same nodes as the\n // block-scoped-functions plugin\n\n BlockStatement(path) {\n if (isStrict(path)) return;\n if (t.isFunction(path.parent, { body: path.node })) return;\n transformStatementList(path.get(\"body\"));\n },\n\n SwitchCase(path) {\n if (isStrict(path)) return;\n transformStatementList(path.get(\"consequent\"));\n },\n};\n\nfunction transformStatementList(paths: NodePath<t.Statement>[]) {\n outer: for (const path of paths) {\n if (!path.isFunctionDeclaration()) continue;\n // Annex B.3.3 only applies to plain functions.\n if (path.node.async || path.node.generator) return;\n\n const { scope } = path.parentPath;\n if (isVarScope(scope)) return;\n\n const { name } = path.node.id;\n let currScope = scope;\n do {\n if (currScope.parent.hasOwnBinding(name)) continue outer;\n currScope = currScope.parent;\n } while (!isVarScope(currScope));\n\n maybeTransformBlockScopedFunction(path);\n }\n}\n\nfunction maybeTransformBlockScopedFunction(\n path: NodePath<t.FunctionDeclaration>,\n) {\n const {\n node,\n parentPath: { scope },\n } = path;\n\n const { id } = node;\n scope.removeOwnBinding(id.name);\n node.id = null;\n\n const varNode = t.variableDeclaration(\"var\", [\n t.variableDeclarator(id, t.toExpression(node)),\n ]);\n // @ts-expect-error undocumented property\n varNode._blockHoist = 2;\n\n const [varPath] = path.replaceWith(varNode);\n scope.registerDeclaration(varPath);\n}\n\nconst functionsToVarVisitor: Visitor<{ names: string[] }> = {\n Scope(path, { names }) {\n for (const name of names) {\n const binding = path.scope.getOwnBinding(name);\n if (binding && binding.kind === \"hoisted\") {\n maybeTransformBlockScopedFunction(\n binding.path as NodePath<t.FunctionDeclaration>,\n );\n }\n }\n },\n \"Expression|Declaration\"(path) {\n path.skip();\n },\n};\n\nexport function isVarScope(scope: Scope) {\n return scope.path.isFunctionParent() || scope.path.isProgram();\n}\n\nfunction isStrict(path: NodePath) {\n return !!path.find(({ node }) => {\n if (t.isProgram(node)) {\n if (node.sourceType === \"module\") return true;\n } else if (t.isClass(node)) {\n return true;\n } else if (!t.isBlockStatement(node)) {\n return false;\n }\n\n return node.directives?.some(\n directive => directive.value.value === \"use strict\",\n );\n });\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-block-scoping/lib/index.js b/node_modules/@babel/plugin-transform-block-scoping/lib/index.js index 6014ff65..2fdec784 100644 --- a/node_modules/@babel/plugin-transform-block-scoping/lib/index.js +++ b/node_modules/@babel/plugin-transform-block-scoping/lib/index.js @@ -9,7 +9,7 @@ var _core = require("@babel/core"); var _loop = require("./loop.js"); var _validation = require("./validation.js"); var _annexB_3_ = require("./annex-B_3_3.js"); -var _default = (0, _helperPluginUtils.declare)((api, opts) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, opts) => { api.assertVersion(7); const { throwIfClosureRequired = false, @@ -106,7 +106,6 @@ var _default = (0, _helperPluginUtils.declare)((api, opts) => { }]) }; }); -exports.default = _default; const conflictingFunctionsVisitor = { Scope(path, { names diff --git a/node_modules/@babel/plugin-transform-block-scoping/lib/index.js.map b/node_modules/@babel/plugin-transform-block-scoping/lib/index.js.map index 9495087e..e17473da 100644 --- a/node_modules/@babel/plugin-transform-block-scoping/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-block-scoping/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_loop","_validation","_annexB_3_","_default","declare","api","opts","assertVersion","throwIfClosureRequired","tdz","tdzEnabled","Error","name","visitor","traverse","visitors","merge","annexB33FunctionsVisitor","Loop","path","state","isForStatement","headPath","get","isForXStatement","needsBodyWrap","markNeedsBodyWrap","buildCodeFrameError","body","bodyScope","isBlockStatement","scope","bindings","getLoopBodyBindings","binding","capturedInClosure","getUsageInBody","captured","updatedBindingsUsages","Map","isBlockScoped","node","names","Object","keys","getBindingIdentifiers","headScope","_bodyScope","hasOwnBinding","getOwnBinding","crawl","usages","hasConstantViolations","parent","hasBinding","hasGlobal","newName","generateUid","rename","push","set","varPath","wrapLoopBody","isVariableDeclaration","transformBlockScopedVariable","unwrapFunctionEnvironment","VariableDeclaration","ClassDeclaration","id","parentPath","isVarScope","noUids","exports","default","conflictingFunctionsVisitor","Scope","kind","Expression|Declaration","skip","dynamicTDZNames","validateUsage","bindingNames","isInLoop","isVarInLoopHead","length","decl","declarations","_decl$init","init","buildUndefinedNode","blockScope","varScope","getFunctionParent","getProgramParent","moveBindingTo","t","identifier","addHelper","isLetOrConst","isLoop","isFunctionParent","BLOCK_SCOPED_SYMBOL"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\nimport { type PluginPass, types as t, traverse } from \"@babel/core\";\n\nimport {\n getLoopBodyBindings,\n getUsageInBody,\n isVarInLoopHead,\n wrapLoopBody,\n} from \"./loop.ts\";\nimport { validateUsage } from \"./validation.ts\";\nimport { annexB33FunctionsVisitor, isVarScope } from \"./annex-B_3_3.ts\";\n\nexport interface Options {\n tdz?: boolean;\n throwIfClosureRequired?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(7);\n\n const { throwIfClosureRequired = false, tdz: tdzEnabled = false } = opts;\n if (typeof throwIfClosureRequired !== \"boolean\") {\n throw new Error(`.throwIfClosureRequired must be a boolean, or undefined`);\n }\n if (typeof tdzEnabled !== \"boolean\") {\n throw new Error(`.tdz must be a boolean, or undefined`);\n }\n\n return {\n name: \"transform-block-scoping\",\n\n visitor: traverse.visitors.merge<PluginPass>([\n // TODO: Consider adding an option to control Annex B behavior.\n annexB33FunctionsVisitor,\n {\n Loop(path: NodePath<t.Loop>, state) {\n const isForStatement = path.isForStatement();\n const headPath = isForStatement\n ? path.get(\"init\")\n : path.isForXStatement()\n ? path.get(\"left\")\n : null;\n\n let needsBodyWrap = false;\n const markNeedsBodyWrap = () => {\n if (throwIfClosureRequired) {\n throw path.buildCodeFrameError(\n \"Compiling let/const in this block would add a closure \" +\n \"(throwIfClosureRequired).\",\n );\n }\n needsBodyWrap = true;\n };\n\n const body = path.get(\"body\");\n let bodyScope: Scope | null;\n if (body.isBlockStatement()) {\n bodyScope = body.scope;\n\n const bindings = getLoopBodyBindings(path);\n for (const binding of bindings) {\n const { capturedInClosure } = getUsageInBody(binding, path);\n if (capturedInClosure) markNeedsBodyWrap();\n }\n }\n\n const captured: string[] = [];\n const updatedBindingsUsages: Map<string, NodePath<t.Identifier>[]> =\n new Map();\n\n if (headPath && isBlockScoped(headPath.node)) {\n const names = Object.keys(headPath.getBindingIdentifiers());\n const headScope = headPath.scope;\n\n for (let name of names) {\n if (bodyScope?.hasOwnBinding(name)) continue; // shadowed\n\n let binding = headScope.getOwnBinding(name);\n if (!binding) {\n headScope.crawl();\n binding = headScope.getOwnBinding(name);\n }\n const { usages, capturedInClosure, hasConstantViolations } =\n getUsageInBody(binding, path);\n\n if (\n headScope.parent.hasBinding(name) ||\n headScope.parent.hasGlobal(name)\n ) {\n // If the binding is not captured, there is no need\n // of adding it to the closure param. However, rename\n // it if it shadows an outer binding, because the\n // closure will be moved to an outer level.\n const newName = headScope.generateUid(name);\n headScope.rename(name, newName);\n name = newName;\n }\n\n if (capturedInClosure) {\n markNeedsBodyWrap();\n captured.push(name);\n }\n\n if (isForStatement && hasConstantViolations) {\n updatedBindingsUsages.set(name, usages);\n }\n }\n }\n\n if (needsBodyWrap) {\n const varPath = wrapLoopBody(path, captured, updatedBindingsUsages);\n\n if (headPath?.isVariableDeclaration<t.Node>()) {\n // If we wrap the loop body, we transform the var\n // declaration in the loop head now, to avoid\n // invalid references that break other plugins:\n //\n // for (let head of x) {\n // let i = head;\n // setTimeout(() => i);\n // }\n //\n // would become\n //\n // function _loop() {\n // let i = head;\n // setTimeout(() => i);\n // }\n // for (let head of x) _loop();\n //\n // which references `head` in a scope where it's not visible.\n transformBlockScopedVariable(headPath, state, tdzEnabled);\n }\n\n varPath.get(\"declarations.0.init\").unwrapFunctionEnvironment();\n }\n },\n\n VariableDeclaration(path, state) {\n transformBlockScopedVariable(path, state, tdzEnabled);\n },\n\n // Class declarations are block-scoped: if there is\n // a class declaration in a nested block that conflicts\n // with an outer block-scoped binding, rename it.\n // TODO: Should this be moved to the classes plugin?\n ClassDeclaration(path) {\n const { id } = path.node;\n if (!id) return;\n\n const { scope } = path.parentPath;\n if (\n !isVarScope(scope) &&\n scope.parent.hasBinding(id.name, { noUids: true })\n ) {\n path.scope.rename(id.name);\n }\n },\n },\n ]),\n };\n});\n\nconst conflictingFunctionsVisitor: Visitor<{ names: string[] }> = {\n Scope(path, { names }) {\n for (const name of names) {\n const binding = path.scope.getOwnBinding(name);\n if (binding && binding.kind === \"hoisted\") {\n path.scope.rename(name);\n }\n }\n },\n \"Expression|Declaration\"(path) {\n path.skip();\n },\n};\n\nfunction transformBlockScopedVariable(\n path: NodePath<t.VariableDeclaration>,\n state: PluginPass,\n tdzEnabled: boolean,\n) {\n if (!isBlockScoped(path.node)) return;\n\n const dynamicTDZNames = validateUsage(path, state, tdzEnabled);\n\n path.node.kind = \"var\";\n\n const bindingNames = Object.keys(path.getBindingIdentifiers());\n for (const name of bindingNames) {\n const binding = path.scope.getOwnBinding(name);\n if (!binding) continue;\n binding.kind = \"var\";\n }\n\n if (\n (isInLoop(path) && !isVarInLoopHead(path)) ||\n dynamicTDZNames.length > 0\n ) {\n for (const decl of path.node.declarations) {\n // We explicitly add `void 0` to cases like\n // for (;;) { let a; }\n // to make sure that `a` doesn't keep the value from\n // the previous iteration.\n decl.init ??= path.scope.buildUndefinedNode();\n }\n }\n\n const blockScope = path.scope;\n const varScope =\n blockScope.getFunctionParent() || blockScope.getProgramParent();\n\n if (varScope !== blockScope) {\n for (const name of bindingNames) {\n let newName = name;\n if (\n // We pass `noUids` true because, if `name` was a generated\n // UID, it has been used to declare the current variable in\n // a nested scope and thus we don't need to assume that it\n // may be declared (but not registered yet) in an upper one.\n blockScope.parent.hasBinding(name, { noUids: true }) ||\n blockScope.parent.hasGlobal(name)\n ) {\n newName = blockScope.generateUid(name);\n blockScope.rename(name, newName);\n }\n\n blockScope.moveBindingTo(newName, varScope);\n }\n }\n\n blockScope.path.traverse(conflictingFunctionsVisitor, {\n names: bindingNames,\n });\n\n for (const name of dynamicTDZNames) {\n path.scope.push({\n id: t.identifier(name),\n init: state.addHelper(\"temporalUndefined\"),\n });\n }\n}\n\nfunction isLetOrConst(kind: string): kind is \"let\" | \"const\" {\n return kind === \"let\" || kind === \"const\";\n}\n\nfunction isInLoop(path: NodePath<t.Node>): boolean {\n if (!path.parentPath) return false;\n if (path.parentPath.isLoop()) return true;\n if (path.parentPath.isFunctionParent()) return false;\n return isInLoop(path.parentPath);\n}\n\nfunction isBlockScoped(node: t.Node): node is t.VariableDeclaration {\n if (!t.isVariableDeclaration(node)) return false;\n if (\n // @ts-expect-error Fixme: document symbol properties\n node[t.BLOCK_SCOPED_SYMBOL]\n ) {\n return true;\n }\n\n if (!isLetOrConst(node.kind) && node.kind !== \"using\") {\n return false;\n }\n\n return true;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AAMA,IAAAG,WAAA,GAAAH,OAAA;AACA,IAAAI,UAAA,GAAAJ,OAAA;AAAwE,IAAAK,QAAA,GAOzD,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,IAAa,KAAK;EAC7CD,GAAG,CAACE,aAAa,CAAC,CAAC,CAAC;EAEpB,MAAM;IAAEC,sBAAsB,GAAG,KAAK;IAAEC,GAAG,EAAEC,UAAU,GAAG;EAAM,CAAC,GAAGJ,IAAI;EACxE,IAAI,OAAOE,sBAAsB,KAAK,SAAS,EAAE;IAC/C,MAAM,IAAIG,KAAK,CAAE,yDAAwD,CAAC;EAC5E;EACA,IAAI,OAAOD,UAAU,KAAK,SAAS,EAAE;IACnC,MAAM,IAAIC,KAAK,CAAE,sCAAqC,CAAC;EACzD;EAEA,OAAO;IACLC,IAAI,EAAE,yBAAyB;IAE/BC,OAAO,EAAEC,cAAQ,CAACC,QAAQ,CAACC,KAAK,CAAa,CAE3CC,mCAAwB,EACxB;MACEC,IAAIA,CAACC,IAAsB,EAAEC,KAAK,EAAE;QAClC,MAAMC,cAAc,GAAGF,IAAI,CAACE,cAAc,CAAC,CAAC;QAC5C,MAAMC,QAAQ,GAAGD,cAAc,GAC3BF,IAAI,CAACI,GAAG,CAAC,MAAM,CAAC,GAChBJ,IAAI,CAACK,eAAe,CAAC,CAAC,GACtBL,IAAI,CAACI,GAAG,CAAC,MAAM,CAAC,GAChB,IAAI;QAER,IAAIE,aAAa,GAAG,KAAK;QACzB,MAAMC,iBAAiB,GAAGA,CAAA,KAAM;UAC9B,IAAIlB,sBAAsB,EAAE;YAC1B,MAAMW,IAAI,CAACQ,mBAAmB,CAC5B,wDAAwD,GACtD,2BACJ,CAAC;UACH;UACAF,aAAa,GAAG,IAAI;QACtB,CAAC;QAED,MAAMG,IAAI,GAAGT,IAAI,CAACI,GAAG,CAAC,MAAM,CAAC;QAC7B,IAAIM,SAAuB;QAC3B,IAAID,IAAI,CAACE,gBAAgB,CAAC,CAAC,EAAE;UAC3BD,SAAS,GAAGD,IAAI,CAACG,KAAK;UAEtB,MAAMC,QAAQ,GAAG,IAAAC,yBAAmB,EAACd,IAAI,CAAC;UAC1C,KAAK,MAAMe,OAAO,IAAIF,QAAQ,EAAE;YAC9B,MAAM;cAAEG;YAAkB,CAAC,GAAG,IAAAC,oBAAc,EAACF,OAAO,EAAEf,IAAI,CAAC;YAC3D,IAAIgB,iBAAiB,EAAET,iBAAiB,CAAC,CAAC;UAC5C;QACF;QAEA,MAAMW,QAAkB,GAAG,EAAE;QAC7B,MAAMC,qBAA4D,GAChE,IAAIC,GAAG,CAAC,CAAC;QAEX,IAAIjB,QAAQ,IAAIkB,aAAa,CAAClB,QAAQ,CAACmB,IAAI,CAAC,EAAE;UAC5C,MAAMC,KAAK,GAAGC,MAAM,CAACC,IAAI,CAACtB,QAAQ,CAACuB,qBAAqB,CAAC,CAAC,CAAC;UAC3D,MAAMC,SAAS,GAAGxB,QAAQ,CAACS,KAAK;UAEhC,KAAK,IAAInB,IAAI,IAAI8B,KAAK,EAAE;YAAA,IAAAK,UAAA;YACtB,KAAAA,UAAA,GAAIlB,SAAS,aAATkB,UAAA,CAAWC,aAAa,CAACpC,IAAI,CAAC,EAAE;YAEpC,IAAIsB,OAAO,GAAGY,SAAS,CAACG,aAAa,CAACrC,IAAI,CAAC;YAC3C,IAAI,CAACsB,OAAO,EAAE;cACZY,SAAS,CAACI,KAAK,CAAC,CAAC;cACjBhB,OAAO,GAAGY,SAAS,CAACG,aAAa,CAACrC,IAAI,CAAC;YACzC;YACA,MAAM;cAAEuC,MAAM;cAAEhB,iBAAiB;cAAEiB;YAAsB,CAAC,GACxD,IAAAhB,oBAAc,EAACF,OAAO,EAAEf,IAAI,CAAC;YAE/B,IACE2B,SAAS,CAACO,MAAM,CAACC,UAAU,CAAC1C,IAAI,CAAC,IACjCkC,SAAS,CAACO,MAAM,CAACE,SAAS,CAAC3C,IAAI,CAAC,EAChC;cAKA,MAAM4C,OAAO,GAAGV,SAAS,CAACW,WAAW,CAAC7C,IAAI,CAAC;cAC3CkC,SAAS,CAACY,MAAM,CAAC9C,IAAI,EAAE4C,OAAO,CAAC;cAC/B5C,IAAI,GAAG4C,OAAO;YAChB;YAEA,IAAIrB,iBAAiB,EAAE;cACrBT,iBAAiB,CAAC,CAAC;cACnBW,QAAQ,CAACsB,IAAI,CAAC/C,IAAI,CAAC;YACrB;YAEA,IAAIS,cAAc,IAAI+B,qBAAqB,EAAE;cAC3Cd,qBAAqB,CAACsB,GAAG,CAAChD,IAAI,EAAEuC,MAAM,CAAC;YACzC;UACF;QACF;QAEA,IAAI1B,aAAa,EAAE;UACjB,MAAMoC,OAAO,GAAG,IAAAC,kBAAY,EAAC3C,IAAI,EAAEkB,QAAQ,EAAEC,qBAAqB,CAAC;UAEnE,IAAIhB,QAAQ,YAARA,QAAQ,CAAEyC,qBAAqB,CAAS,CAAC,EAAE;YAmB7CC,4BAA4B,CAAC1C,QAAQ,EAAEF,KAAK,EAAEV,UAAU,CAAC;UAC3D;UAEAmD,OAAO,CAACtC,GAAG,CAAC,qBAAqB,CAAC,CAAC0C,yBAAyB,CAAC,CAAC;QAChE;MACF,CAAC;MAEDC,mBAAmBA,CAAC/C,IAAI,EAAEC,KAAK,EAAE;QAC/B4C,4BAA4B,CAAC7C,IAAI,EAAEC,KAAK,EAAEV,UAAU,CAAC;MACvD,CAAC;MAMDyD,gBAAgBA,CAAChD,IAAI,EAAE;QACrB,MAAM;UAAEiD;QAAG,CAAC,GAAGjD,IAAI,CAACsB,IAAI;QACxB,IAAI,CAAC2B,EAAE,EAAE;QAET,MAAM;UAAErC;QAAM,CAAC,GAAGZ,IAAI,CAACkD,UAAU;QACjC,IACE,CAAC,IAAAC,qBAAU,EAACvC,KAAK,CAAC,IAClBA,KAAK,CAACsB,MAAM,CAACC,UAAU,CAACc,EAAE,CAACxD,IAAI,EAAE;UAAE2D,MAAM,EAAE;QAAK,CAAC,CAAC,EAClD;UACApD,IAAI,CAACY,KAAK,CAAC2B,MAAM,CAACU,EAAE,CAACxD,IAAI,CAAC;QAC5B;MACF;IACF,CAAC,CACF;EACH,CAAC;AACH,CAAC,CAAC;AAAA4D,OAAA,CAAAC,OAAA,GAAAtE,QAAA;AAEF,MAAMuE,2BAAyD,GAAG;EAChEC,KAAKA,CAACxD,IAAI,EAAE;IAAEuB;EAAM,CAAC,EAAE;IACrB,KAAK,MAAM9B,IAAI,IAAI8B,KAAK,EAAE;MACxB,MAAMR,OAAO,GAAGf,IAAI,CAACY,KAAK,CAACkB,aAAa,CAACrC,IAAI,CAAC;MAC9C,IAAIsB,OAAO,IAAIA,OAAO,CAAC0C,IAAI,KAAK,SAAS,EAAE;QACzCzD,IAAI,CAACY,KAAK,CAAC2B,MAAM,CAAC9C,IAAI,CAAC;MACzB;IACF;EACF,CAAC;EACD,wBAAwBiE,CAAC1D,IAAI,EAAE;IAC7BA,IAAI,CAAC2D,IAAI,CAAC,CAAC;EACb;AACF,CAAC;AAED,SAASd,4BAA4BA,CACnC7C,IAAqC,EACrCC,KAAiB,EACjBV,UAAmB,EACnB;EACA,IAAI,CAAC8B,aAAa,CAACrB,IAAI,CAACsB,IAAI,CAAC,EAAE;EAE/B,MAAMsC,eAAe,GAAG,IAAAC,yBAAa,EAAC7D,IAAI,EAAEC,KAAK,EAAEV,UAAU,CAAC;EAE9DS,IAAI,CAACsB,IAAI,CAACmC,IAAI,GAAG,KAAK;EAEtB,MAAMK,YAAY,GAAGtC,MAAM,CAACC,IAAI,CAACzB,IAAI,CAAC0B,qBAAqB,CAAC,CAAC,CAAC;EAC9D,KAAK,MAAMjC,IAAI,IAAIqE,YAAY,EAAE;IAC/B,MAAM/C,OAAO,GAAGf,IAAI,CAACY,KAAK,CAACkB,aAAa,CAACrC,IAAI,CAAC;IAC9C,IAAI,CAACsB,OAAO,EAAE;IACdA,OAAO,CAAC0C,IAAI,GAAG,KAAK;EACtB;EAEA,IACGM,QAAQ,CAAC/D,IAAI,CAAC,IAAI,CAAC,IAAAgE,qBAAe,EAAChE,IAAI,CAAC,IACzC4D,eAAe,CAACK,MAAM,GAAG,CAAC,EAC1B;IACA,KAAK,MAAMC,IAAI,IAAIlE,IAAI,CAACsB,IAAI,CAAC6C,YAAY,EAAE;MAAA,IAAAC,UAAA;MAKzC,CAAAA,UAAA,GAAAF,IAAI,CAACG,IAAI,YAAAD,UAAA,GAATF,IAAI,CAACG,IAAI,GAAKrE,IAAI,CAACY,KAAK,CAAC0D,kBAAkB,CAAC,CAAC;IAC/C;EACF;EAEA,MAAMC,UAAU,GAAGvE,IAAI,CAACY,KAAK;EAC7B,MAAM4D,QAAQ,GACZD,UAAU,CAACE,iBAAiB,CAAC,CAAC,IAAIF,UAAU,CAACG,gBAAgB,CAAC,CAAC;EAEjE,IAAIF,QAAQ,KAAKD,UAAU,EAAE;IAC3B,KAAK,MAAM9E,IAAI,IAAIqE,YAAY,EAAE;MAC/B,IAAIzB,OAAO,GAAG5C,IAAI;MAClB,IAKE8E,UAAU,CAACrC,MAAM,CAACC,UAAU,CAAC1C,IAAI,EAAE;QAAE2D,MAAM,EAAE;MAAK,CAAC,CAAC,IACpDmB,UAAU,CAACrC,MAAM,CAACE,SAAS,CAAC3C,IAAI,CAAC,EACjC;QACA4C,OAAO,GAAGkC,UAAU,CAACjC,WAAW,CAAC7C,IAAI,CAAC;QACtC8E,UAAU,CAAChC,MAAM,CAAC9C,IAAI,EAAE4C,OAAO,CAAC;MAClC;MAEAkC,UAAU,CAACI,aAAa,CAACtC,OAAO,EAAEmC,QAAQ,CAAC;IAC7C;EACF;EAEAD,UAAU,CAACvE,IAAI,CAACL,QAAQ,CAAC4D,2BAA2B,EAAE;IACpDhC,KAAK,EAAEuC;EACT,CAAC,CAAC;EAEF,KAAK,MAAMrE,IAAI,IAAImE,eAAe,EAAE;IAClC5D,IAAI,CAACY,KAAK,CAAC4B,IAAI,CAAC;MACdS,EAAE,EAAE2B,WAAC,CAACC,UAAU,CAACpF,IAAI,CAAC;MACtB4E,IAAI,EAAEpE,KAAK,CAAC6E,SAAS,CAAC,mBAAmB;IAC3C,CAAC,CAAC;EACJ;AACF;AAEA,SAASC,YAAYA,CAACtB,IAAY,EAA2B;EAC3D,OAAOA,IAAI,KAAK,KAAK,IAAIA,IAAI,KAAK,OAAO;AAC3C;AAEA,SAASM,QAAQA,CAAC/D,IAAsB,EAAW;EACjD,IAAI,CAACA,IAAI,CAACkD,UAAU,EAAE,OAAO,KAAK;EAClC,IAAIlD,IAAI,CAACkD,UAAU,CAAC8B,MAAM,CAAC,CAAC,EAAE,OAAO,IAAI;EACzC,IAAIhF,IAAI,CAACkD,UAAU,CAAC+B,gBAAgB,CAAC,CAAC,EAAE,OAAO,KAAK;EACpD,OAAOlB,QAAQ,CAAC/D,IAAI,CAACkD,UAAU,CAAC;AAClC;AAEA,SAAS7B,aAAaA,CAACC,IAAY,EAAiC;EAClE,IAAI,CAACsD,WAAC,CAAChC,qBAAqB,CAACtB,IAAI,CAAC,EAAE,OAAO,KAAK;EAChD,IAEEA,IAAI,CAACsD,WAAC,CAACM,mBAAmB,CAAC,EAC3B;IACA,OAAO,IAAI;EACb;EAEA,IAAI,CAACH,YAAY,CAACzD,IAAI,CAACmC,IAAI,CAAC,IAAInC,IAAI,CAACmC,IAAI,KAAK,OAAO,EAAE;IACrD,OAAO,KAAK;EACd;EAEA,OAAO,IAAI;AACb"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_loop","_validation","_annexB_3_","_default","exports","default","declare","api","opts","assertVersion","throwIfClosureRequired","tdz","tdzEnabled","Error","name","visitor","traverse","visitors","merge","annexB33FunctionsVisitor","Loop","path","state","isForStatement","headPath","get","isForXStatement","needsBodyWrap","markNeedsBodyWrap","buildCodeFrameError","body","bodyScope","isBlockStatement","scope","bindings","getLoopBodyBindings","binding","capturedInClosure","getUsageInBody","captured","updatedBindingsUsages","Map","isBlockScoped","node","names","Object","keys","getBindingIdentifiers","headScope","_bodyScope","hasOwnBinding","getOwnBinding","crawl","usages","hasConstantViolations","parent","hasBinding","hasGlobal","newName","generateUid","rename","push","set","varPath","wrapLoopBody","isVariableDeclaration","transformBlockScopedVariable","unwrapFunctionEnvironment","VariableDeclaration","ClassDeclaration","id","parentPath","isVarScope","noUids","conflictingFunctionsVisitor","Scope","kind","Expression|Declaration","skip","dynamicTDZNames","validateUsage","bindingNames","isInLoop","isVarInLoopHead","length","decl","declarations","_decl$init","init","buildUndefinedNode","blockScope","varScope","getFunctionParent","getProgramParent","moveBindingTo","t","identifier","addHelper","isLetOrConst","isLoop","isFunctionParent","BLOCK_SCOPED_SYMBOL"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\nimport { type PluginPass, types as t, traverse } from \"@babel/core\";\n\nimport {\n getLoopBodyBindings,\n getUsageInBody,\n isVarInLoopHead,\n wrapLoopBody,\n} from \"./loop.ts\";\nimport { validateUsage } from \"./validation.ts\";\nimport { annexB33FunctionsVisitor, isVarScope } from \"./annex-B_3_3.ts\";\n\nexport interface Options {\n tdz?: boolean;\n throwIfClosureRequired?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const { throwIfClosureRequired = false, tdz: tdzEnabled = false } = opts;\n if (typeof throwIfClosureRequired !== \"boolean\") {\n throw new Error(`.throwIfClosureRequired must be a boolean, or undefined`);\n }\n if (typeof tdzEnabled !== \"boolean\") {\n throw new Error(`.tdz must be a boolean, or undefined`);\n }\n\n return {\n name: \"transform-block-scoping\",\n\n visitor: traverse.visitors.merge<PluginPass>([\n // TODO: Consider adding an option to control Annex B behavior.\n annexB33FunctionsVisitor,\n {\n Loop(path: NodePath<t.Loop>, state) {\n const isForStatement = path.isForStatement();\n const headPath = isForStatement\n ? path.get(\"init\")\n : path.isForXStatement()\n ? path.get(\"left\")\n : null;\n\n let needsBodyWrap = false;\n const markNeedsBodyWrap = () => {\n if (throwIfClosureRequired) {\n throw path.buildCodeFrameError(\n \"Compiling let/const in this block would add a closure \" +\n \"(throwIfClosureRequired).\",\n );\n }\n needsBodyWrap = true;\n };\n\n const body = path.get(\"body\");\n let bodyScope: Scope | null;\n if (body.isBlockStatement()) {\n bodyScope = body.scope;\n\n const bindings = getLoopBodyBindings(path);\n for (const binding of bindings) {\n const { capturedInClosure } = getUsageInBody(binding, path);\n if (capturedInClosure) markNeedsBodyWrap();\n }\n }\n\n const captured: string[] = [];\n const updatedBindingsUsages: Map<string, NodePath<t.Identifier>[]> =\n new Map();\n\n if (headPath && isBlockScoped(headPath.node)) {\n const names = Object.keys(headPath.getBindingIdentifiers());\n const headScope = headPath.scope;\n\n for (let name of names) {\n if (bodyScope?.hasOwnBinding(name)) continue; // shadowed\n\n let binding = headScope.getOwnBinding(name);\n if (!binding) {\n headScope.crawl();\n binding = headScope.getOwnBinding(name);\n }\n const { usages, capturedInClosure, hasConstantViolations } =\n getUsageInBody(binding, path);\n\n if (\n headScope.parent.hasBinding(name) ||\n headScope.parent.hasGlobal(name)\n ) {\n // If the binding is not captured, there is no need\n // of adding it to the closure param. However, rename\n // it if it shadows an outer binding, because the\n // closure will be moved to an outer level.\n const newName = headScope.generateUid(name);\n headScope.rename(name, newName);\n name = newName;\n }\n\n if (capturedInClosure) {\n markNeedsBodyWrap();\n captured.push(name);\n }\n\n if (isForStatement && hasConstantViolations) {\n updatedBindingsUsages.set(name, usages);\n }\n }\n }\n\n if (needsBodyWrap) {\n const varPath = wrapLoopBody(path, captured, updatedBindingsUsages);\n\n if (headPath?.isVariableDeclaration<t.Node>()) {\n // If we wrap the loop body, we transform the var\n // declaration in the loop head now, to avoid\n // invalid references that break other plugins:\n //\n // for (let head of x) {\n // let i = head;\n // setTimeout(() => i);\n // }\n //\n // would become\n //\n // function _loop() {\n // let i = head;\n // setTimeout(() => i);\n // }\n // for (let head of x) _loop();\n //\n // which references `head` in a scope where it's not visible.\n transformBlockScopedVariable(headPath, state, tdzEnabled);\n }\n\n varPath.get(\"declarations.0.init\").unwrapFunctionEnvironment();\n }\n },\n\n VariableDeclaration(path, state) {\n transformBlockScopedVariable(path, state, tdzEnabled);\n },\n\n // Class declarations are block-scoped: if there is\n // a class declaration in a nested block that conflicts\n // with an outer block-scoped binding, rename it.\n // TODO: Should this be moved to the classes plugin?\n ClassDeclaration(path) {\n const { id } = path.node;\n if (!id) return;\n\n const { scope } = path.parentPath;\n if (\n !isVarScope(scope) &&\n scope.parent.hasBinding(id.name, { noUids: true })\n ) {\n path.scope.rename(id.name);\n }\n },\n },\n ]),\n };\n});\n\nconst conflictingFunctionsVisitor: Visitor<{ names: string[] }> = {\n Scope(path, { names }) {\n for (const name of names) {\n const binding = path.scope.getOwnBinding(name);\n if (binding && binding.kind === \"hoisted\") {\n path.scope.rename(name);\n }\n }\n },\n \"Expression|Declaration\"(path) {\n path.skip();\n },\n};\n\nfunction transformBlockScopedVariable(\n path: NodePath<t.VariableDeclaration>,\n state: PluginPass,\n tdzEnabled: boolean,\n) {\n if (!isBlockScoped(path.node)) return;\n\n const dynamicTDZNames = validateUsage(path, state, tdzEnabled);\n\n path.node.kind = \"var\";\n\n const bindingNames = Object.keys(path.getBindingIdentifiers());\n for (const name of bindingNames) {\n const binding = path.scope.getOwnBinding(name);\n if (!binding) continue;\n binding.kind = \"var\";\n }\n\n if (\n (isInLoop(path) && !isVarInLoopHead(path)) ||\n dynamicTDZNames.length > 0\n ) {\n for (const decl of path.node.declarations) {\n // We explicitly add `void 0` to cases like\n // for (;;) { let a; }\n // to make sure that `a` doesn't keep the value from\n // the previous iteration.\n decl.init ??= path.scope.buildUndefinedNode();\n }\n }\n\n const blockScope = path.scope;\n const varScope =\n blockScope.getFunctionParent() || blockScope.getProgramParent();\n\n if (varScope !== blockScope) {\n for (const name of bindingNames) {\n let newName = name;\n if (\n // We pass `noUids` true because, if `name` was a generated\n // UID, it has been used to declare the current variable in\n // a nested scope and thus we don't need to assume that it\n // may be declared (but not registered yet) in an upper one.\n blockScope.parent.hasBinding(name, { noUids: true }) ||\n blockScope.parent.hasGlobal(name)\n ) {\n newName = blockScope.generateUid(name);\n blockScope.rename(name, newName);\n }\n\n blockScope.moveBindingTo(newName, varScope);\n }\n }\n\n blockScope.path.traverse(conflictingFunctionsVisitor, {\n names: bindingNames,\n });\n\n for (const name of dynamicTDZNames) {\n path.scope.push({\n id: t.identifier(name),\n init: state.addHelper(\"temporalUndefined\"),\n });\n }\n}\n\nfunction isLetOrConst(kind: string): kind is \"let\" | \"const\" {\n return kind === \"let\" || kind === \"const\";\n}\n\nfunction isInLoop(path: NodePath<t.Node>): boolean {\n if (!path.parentPath) return false;\n if (path.parentPath.isLoop()) return true;\n if (path.parentPath.isFunctionParent()) return false;\n return isInLoop(path.parentPath);\n}\n\nfunction isBlockScoped(node: t.Node): node is t.VariableDeclaration {\n if (!t.isVariableDeclaration(node)) return false;\n if (\n // @ts-expect-error Fixme: document symbol properties\n node[t.BLOCK_SCOPED_SYMBOL]\n ) {\n return true;\n }\n\n if (!isLetOrConst(node.kind) && node.kind !== \"using\") {\n return false;\n }\n\n return true;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-block-scoping/lib/loop.js.map b/node_modules/@babel/plugin-transform-block-scoping/lib/loop.js.map index 8a147389..d4140aae 100644 --- a/node_modules/@babel/plugin-transform-block-scoping/lib/loop.js.map +++ b/node_modules/@babel/plugin-transform-block-scoping/lib/loop.js.map @@ -1 +1 @@ -{"version":3,"names":["_core","require","collectLoopBodyBindingsVisitor","Expression|Declaration|Loop","path","skip","Scope","state","isFunctionParent","bindings","scope","name","Object","keys","binding","kind","blockScoped","push","getLoopBodyBindings","loopPath","traverse","getUsageInBody","seen","WeakSet","capturedInClosure","constantViolations","filterMap","inBody","inClosure","relativeLoopLocation","id","isUpdateExpression","get","isAssignmentExpression","add","node","references","referencePaths","has","hasConstantViolations","length","usages","concat","bodyPath","currPath","parentPath","isFunction","isClass","isMethod","Error","collectCompletionsAndVarsVisitor","Function","LabeledStatement","enter","labelsStack","label","exit","popped","pop","Loop","_","labellessContinueTargets","labellessBreakTargets","SwitchStatement","BreakStatement|ContinueStatement","includes","isBreakStatement","breaksContinues","ReturnStatement","returns","VariableDeclaration","parent","loopNode","isVarInLoopHead","vars","wrapLoopBody","captured","updatedBindingsUsages","callArgs","closureParams","updater","updatedUsage","t","identifier","innerName","generateUid","assignmentExpression","replaceWith","fn","functionExpression","toBlock","body","call","callExpression","fnParent","findParent","p","async","generator","yieldExpression","awaitExpression","updaterNode","expressionStatement","sequenceExpression","varPath","insertBefore","variableDeclaration","variableDeclarator","bodyStmts","varNames","assign","decl","declarations","getBindingIdentifiers","init","replacement","isForStatement","isForXStatement","left","remove","pushContainer","map","labelNum","returnNum","type","addComment","returnStatement","numericLiteral","cloneNode","template","statement","ast","completionId","isVariableDeclaration","injected","i","indexOf","hasInjected","arg","argument","buildUndefinedNode","blockStatement","key","list","result","item","mapped"],"sources":["../src/loop.ts"],"sourcesContent":["import { template, types as t } from \"@babel/core\";\nimport type { NodePath, Visitor, Binding } from \"@babel/traverse\";\n\ninterface LoopBodyBindingsState {\n blockScoped: Binding[];\n}\n\nconst collectLoopBodyBindingsVisitor: Visitor<LoopBodyBindingsState> = {\n \"Expression|Declaration|Loop\"(path) {\n path.skip();\n },\n Scope(path, state) {\n if (path.isFunctionParent()) path.skip();\n\n const { bindings } = path.scope;\n for (const name of Object.keys(bindings)) {\n const binding = bindings[name];\n if (\n binding.kind === \"let\" ||\n binding.kind === \"const\" ||\n binding.kind === \"hoisted\"\n ) {\n state.blockScoped.push(binding);\n }\n }\n },\n};\n\nexport function getLoopBodyBindings(loopPath: NodePath<t.Loop>) {\n const state: LoopBodyBindingsState = { blockScoped: [] };\n loopPath.traverse(collectLoopBodyBindingsVisitor, state);\n return state.blockScoped;\n}\n\nexport function getUsageInBody(binding: Binding, loopPath: NodePath<t.Loop>) {\n // UpdateExpressions are counted both as a reference and a mutation,\n // so we need to de-duplicate them.\n const seen = new WeakSet<t.Node>();\n\n let capturedInClosure = false;\n\n const constantViolations = filterMap(binding.constantViolations, path => {\n const { inBody, inClosure } = relativeLoopLocation(path, loopPath);\n if (!inBody) return null;\n capturedInClosure ||= inClosure;\n\n const id = path.isUpdateExpression()\n ? path.get(\"argument\")\n : path.isAssignmentExpression()\n ? path.get(\"left\")\n : null;\n if (id) seen.add(id.node);\n return id as NodePath<t.Identifier> | null;\n });\n\n const references = filterMap(binding.referencePaths, path => {\n if (seen.has(path.node)) return null;\n\n const { inBody, inClosure } = relativeLoopLocation(path, loopPath);\n if (!inBody) return null;\n capturedInClosure ||= inClosure;\n\n return path as NodePath<t.Identifier>;\n });\n\n return {\n capturedInClosure,\n hasConstantViolations: constantViolations.length > 0,\n usages: references.concat(constantViolations),\n };\n}\n\nfunction relativeLoopLocation(path: NodePath, loopPath: NodePath<t.Loop>) {\n const bodyPath = loopPath.get(\"body\");\n let inClosure = false;\n\n for (let currPath = path; currPath; currPath = currPath.parentPath) {\n if (currPath.isFunction() || currPath.isClass() || currPath.isMethod()) {\n inClosure = true;\n }\n if (currPath === bodyPath) {\n return { inBody: true, inClosure };\n } else if (currPath === loopPath) {\n return { inBody: false, inClosure };\n }\n }\n\n throw new Error(\n \"Internal Babel error: path is not in loop. Please report this as a bug.\",\n );\n}\n\ninterface CompletionsAndVarsState {\n breaksContinues: NodePath<t.BreakStatement | t.ContinueStatement>[];\n returns: NodePath<t.ReturnStatement>[];\n labelsStack: string[];\n labellessContinueTargets: number;\n labellessBreakTargets: number;\n\n vars: NodePath<t.VariableDeclaration>[];\n loopNode: t.Loop;\n}\n\nconst collectCompletionsAndVarsVisitor: Visitor<CompletionsAndVarsState> = {\n Function(path) {\n path.skip();\n },\n LabeledStatement: {\n enter({ node }, state) {\n state.labelsStack.push(node.label.name);\n },\n exit({ node }, state) {\n const popped = state.labelsStack.pop();\n if (popped !== node.label.name) {\n throw new Error(\"Assertion failure. Please report this bug to Babel.\");\n }\n },\n },\n Loop: {\n enter(_, state) {\n state.labellessContinueTargets++;\n state.labellessBreakTargets++;\n },\n exit(_, state) {\n state.labellessContinueTargets--;\n state.labellessBreakTargets--;\n },\n },\n SwitchStatement: {\n enter(_, state) {\n state.labellessBreakTargets++;\n },\n exit(_, state) {\n state.labellessBreakTargets--;\n },\n },\n \"BreakStatement|ContinueStatement\"(\n path: NodePath<t.BreakStatement | t.ContinueStatement>,\n state,\n ) {\n const { label } = path.node;\n if (label) {\n if (state.labelsStack.includes(label.name)) return;\n } else if (\n path.isBreakStatement()\n ? state.labellessBreakTargets > 0\n : state.labellessContinueTargets > 0\n ) {\n return;\n }\n state.breaksContinues.push(path);\n },\n ReturnStatement(path, state) {\n state.returns.push(path);\n },\n VariableDeclaration(path, state) {\n if (path.parent === state.loopNode && isVarInLoopHead(path)) return;\n if (path.node.kind === \"var\") state.vars.push(path);\n },\n};\n\nexport function wrapLoopBody(\n loopPath: NodePath<t.Loop>,\n captured: string[],\n updatedBindingsUsages: Map<string, NodePath<t.Identifier>[]>,\n) {\n const loopNode = loopPath.node;\n const state: CompletionsAndVarsState = {\n breaksContinues: [],\n returns: [],\n labelsStack: [],\n labellessBreakTargets: 0,\n labellessContinueTargets: 0,\n vars: [],\n loopNode,\n };\n loopPath.traverse(collectCompletionsAndVarsVisitor, state);\n\n const callArgs = [];\n const closureParams = [];\n const updater = [];\n for (const [name, updatedUsage] of updatedBindingsUsages) {\n callArgs.push(t.identifier(name));\n\n const innerName = loopPath.scope.generateUid(name);\n closureParams.push(t.identifier(innerName));\n updater.push(\n t.assignmentExpression(\"=\", t.identifier(name), t.identifier(innerName)),\n );\n for (const path of updatedUsage) path.replaceWith(t.identifier(innerName));\n }\n for (const name of captured) {\n if (updatedBindingsUsages.has(name)) continue; // already injected\n callArgs.push(t.identifier(name));\n closureParams.push(t.identifier(name));\n }\n\n const id = loopPath.scope.generateUid(\"loop\");\n const fn = t.functionExpression(\n null,\n closureParams,\n t.toBlock(loopNode.body),\n );\n let call: t.Expression = t.callExpression(t.identifier(id), callArgs);\n\n const fnParent = loopPath.findParent(p => p.isFunction());\n if (fnParent) {\n const { async, generator } = fnParent.node as t.Function;\n fn.async = async;\n fn.generator = generator;\n if (generator) call = t.yieldExpression(call, true);\n else if (async) call = t.awaitExpression(call);\n }\n\n const updaterNode =\n updater.length > 0\n ? t.expressionStatement(t.sequenceExpression(updater))\n : null;\n if (updaterNode) fn.body.body.push(updaterNode);\n\n // NOTE: Calling .insertBefore on the loop path might cause the\n // loop to be moved in the AST. For example, in\n // if (true) for (let x of y) ...\n // .insertBefore will replace the loop with a block:\n // if (true) { var _loop = ...; for (let x of y) ... }\n // All subsequent operations in this function on the loop node\n // must not assume that loopPath still represents the loop.\n // TODO: Consider using a function declaration\n const [varPath] = loopPath.insertBefore(\n t.variableDeclaration(\"var\", [t.variableDeclarator(t.identifier(id), fn)]),\n ) as [NodePath<t.VariableDeclaration>];\n\n const bodyStmts: t.Statement[] = [];\n\n const varNames: string[] = [];\n for (const varPath of state.vars) {\n const assign = [];\n for (const decl of varPath.node.declarations) {\n varNames.push(...Object.keys(t.getBindingIdentifiers(decl.id)));\n if (decl.init) {\n assign.push(t.assignmentExpression(\"=\", decl.id, decl.init));\n }\n }\n if (assign.length > 0) {\n let replacement: t.Node =\n assign.length === 1 ? assign[0] : t.sequenceExpression(assign);\n if (\n !t.isForStatement(varPath.parent, { init: varPath.node }) &&\n !t.isForXStatement(varPath.parent, { left: varPath.node })\n ) {\n replacement = t.expressionStatement(replacement);\n }\n varPath.replaceWith(replacement);\n } else {\n varPath.remove();\n }\n }\n if (varNames.length) {\n varPath.pushContainer(\n \"declarations\",\n varNames.map(name => t.variableDeclarator(t.identifier(name))),\n );\n }\n\n const labelNum = state.breaksContinues.length;\n const returnNum = state.returns.length;\n if (labelNum + returnNum === 0) {\n bodyStmts.push(t.expressionStatement(call));\n } else if (labelNum === 1 && returnNum === 0) {\n for (const path of state.breaksContinues) {\n const { node } = path;\n const { type, label } = node;\n let name = type === \"BreakStatement\" ? \"break\" : \"continue\";\n if (label) name += \" \" + label.name;\n path.replaceWith(\n t.addComment(\n t.returnStatement(t.numericLiteral(1)),\n \"trailing\",\n \" \" + name,\n true,\n ),\n );\n if (updaterNode) path.insertBefore(t.cloneNode(updaterNode));\n\n bodyStmts.push(\n template.statement.ast`\n if (${call}) ${node}\n `,\n );\n }\n } else {\n const completionId = loopPath.scope.generateUid(\"ret\");\n\n if (varPath.isVariableDeclaration()) {\n varPath.pushContainer(\"declarations\", [\n t.variableDeclarator(t.identifier(completionId)),\n ]);\n bodyStmts.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", t.identifier(completionId), call),\n ),\n );\n } else {\n bodyStmts.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(completionId), call),\n ]),\n );\n }\n\n const injected: string[] = [];\n for (const path of state.breaksContinues) {\n const { node } = path;\n const { type, label } = node;\n let name = type === \"BreakStatement\" ? \"break\" : \"continue\";\n if (label) name += \" \" + label.name;\n\n let i = injected.indexOf(name);\n const hasInjected = i !== -1;\n if (!hasInjected) {\n injected.push(name);\n i = injected.length - 1;\n }\n\n path.replaceWith(\n t.addComment(\n t.returnStatement(t.numericLiteral(i)),\n \"trailing\",\n \" \" + name,\n true,\n ),\n );\n if (updaterNode) path.insertBefore(t.cloneNode(updaterNode));\n\n if (hasInjected) continue;\n\n bodyStmts.push(\n template.statement.ast`\n if (${t.identifier(completionId)} === ${t.numericLiteral(i)}) ${node}\n `,\n );\n }\n\n if (returnNum) {\n for (const path of state.returns) {\n const arg = path.node.argument || path.scope.buildUndefinedNode();\n path.replaceWith(\n template.statement.ast`\n return { v: ${arg} };\n `,\n );\n }\n\n bodyStmts.push(\n template.statement.ast`\n if (${t.identifier(completionId)}) return ${t.identifier(\n completionId,\n )}.v;\n `,\n );\n }\n }\n\n loopNode.body = t.blockStatement(bodyStmts);\n\n return varPath;\n}\n\nexport function isVarInLoopHead(path: NodePath<t.VariableDeclaration>) {\n if (t.isForStatement(path.parent)) return path.key === \"init\";\n if (t.isForXStatement(path.parent)) return path.key === \"left\";\n return false;\n}\n\nfunction filterMap<T, U extends object>(list: T[], fn: (item: T) => U | null) {\n const result: U[] = [];\n for (const item of list) {\n const mapped = fn(item);\n if (mapped) result.push(mapped);\n }\n return result;\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_core","require","collectLoopBodyBindingsVisitor","Expression|Declaration|Loop","path","skip","Scope","state","isFunctionParent","bindings","scope","name","Object","keys","binding","kind","blockScoped","push","getLoopBodyBindings","loopPath","traverse","getUsageInBody","seen","WeakSet","capturedInClosure","constantViolations","filterMap","inBody","inClosure","relativeLoopLocation","id","isUpdateExpression","get","isAssignmentExpression","add","node","references","referencePaths","has","hasConstantViolations","length","usages","concat","bodyPath","currPath","parentPath","isFunction","isClass","isMethod","Error","collectCompletionsAndVarsVisitor","Function","LabeledStatement","enter","labelsStack","label","exit","popped","pop","Loop","_","labellessContinueTargets","labellessBreakTargets","SwitchStatement","BreakStatement|ContinueStatement","includes","isBreakStatement","breaksContinues","ReturnStatement","returns","VariableDeclaration","parent","loopNode","isVarInLoopHead","vars","wrapLoopBody","captured","updatedBindingsUsages","callArgs","closureParams","updater","updatedUsage","t","identifier","innerName","generateUid","assignmentExpression","replaceWith","fn","functionExpression","toBlock","body","call","callExpression","fnParent","findParent","p","async","generator","yieldExpression","awaitExpression","updaterNode","expressionStatement","sequenceExpression","varPath","insertBefore","variableDeclaration","variableDeclarator","bodyStmts","varNames","assign","decl","declarations","getBindingIdentifiers","init","replacement","isForStatement","isForXStatement","left","remove","pushContainer","map","labelNum","returnNum","type","addComment","returnStatement","numericLiteral","cloneNode","template","statement","ast","completionId","isVariableDeclaration","injected","i","indexOf","hasInjected","arg","argument","buildUndefinedNode","blockStatement","key","list","result","item","mapped"],"sources":["../src/loop.ts"],"sourcesContent":["import { template, types as t } from \"@babel/core\";\nimport type { NodePath, Visitor, Binding } from \"@babel/traverse\";\n\ninterface LoopBodyBindingsState {\n blockScoped: Binding[];\n}\n\nconst collectLoopBodyBindingsVisitor: Visitor<LoopBodyBindingsState> = {\n \"Expression|Declaration|Loop\"(path) {\n path.skip();\n },\n Scope(path, state) {\n if (path.isFunctionParent()) path.skip();\n\n const { bindings } = path.scope;\n for (const name of Object.keys(bindings)) {\n const binding = bindings[name];\n if (\n binding.kind === \"let\" ||\n binding.kind === \"const\" ||\n binding.kind === \"hoisted\"\n ) {\n state.blockScoped.push(binding);\n }\n }\n },\n};\n\nexport function getLoopBodyBindings(loopPath: NodePath<t.Loop>) {\n const state: LoopBodyBindingsState = { blockScoped: [] };\n loopPath.traverse(collectLoopBodyBindingsVisitor, state);\n return state.blockScoped;\n}\n\nexport function getUsageInBody(binding: Binding, loopPath: NodePath<t.Loop>) {\n // UpdateExpressions are counted both as a reference and a mutation,\n // so we need to de-duplicate them.\n const seen = new WeakSet<t.Node>();\n\n let capturedInClosure = false;\n\n const constantViolations = filterMap(binding.constantViolations, path => {\n const { inBody, inClosure } = relativeLoopLocation(path, loopPath);\n if (!inBody) return null;\n capturedInClosure ||= inClosure;\n\n const id = path.isUpdateExpression()\n ? path.get(\"argument\")\n : path.isAssignmentExpression()\n ? path.get(\"left\")\n : null;\n if (id) seen.add(id.node);\n return id as NodePath<t.Identifier> | null;\n });\n\n const references = filterMap(binding.referencePaths, path => {\n if (seen.has(path.node)) return null;\n\n const { inBody, inClosure } = relativeLoopLocation(path, loopPath);\n if (!inBody) return null;\n capturedInClosure ||= inClosure;\n\n return path as NodePath<t.Identifier>;\n });\n\n return {\n capturedInClosure,\n hasConstantViolations: constantViolations.length > 0,\n usages: references.concat(constantViolations),\n };\n}\n\nfunction relativeLoopLocation(path: NodePath, loopPath: NodePath<t.Loop>) {\n const bodyPath = loopPath.get(\"body\");\n let inClosure = false;\n\n for (let currPath = path; currPath; currPath = currPath.parentPath) {\n if (currPath.isFunction() || currPath.isClass() || currPath.isMethod()) {\n inClosure = true;\n }\n if (currPath === bodyPath) {\n return { inBody: true, inClosure };\n } else if (currPath === loopPath) {\n return { inBody: false, inClosure };\n }\n }\n\n throw new Error(\n \"Internal Babel error: path is not in loop. Please report this as a bug.\",\n );\n}\n\ninterface CompletionsAndVarsState {\n breaksContinues: NodePath<t.BreakStatement | t.ContinueStatement>[];\n returns: NodePath<t.ReturnStatement>[];\n labelsStack: string[];\n labellessContinueTargets: number;\n labellessBreakTargets: number;\n\n vars: NodePath<t.VariableDeclaration>[];\n loopNode: t.Loop;\n}\n\nconst collectCompletionsAndVarsVisitor: Visitor<CompletionsAndVarsState> = {\n Function(path) {\n path.skip();\n },\n LabeledStatement: {\n enter({ node }, state) {\n state.labelsStack.push(node.label.name);\n },\n exit({ node }, state) {\n const popped = state.labelsStack.pop();\n if (popped !== node.label.name) {\n throw new Error(\"Assertion failure. Please report this bug to Babel.\");\n }\n },\n },\n Loop: {\n enter(_, state) {\n state.labellessContinueTargets++;\n state.labellessBreakTargets++;\n },\n exit(_, state) {\n state.labellessContinueTargets--;\n state.labellessBreakTargets--;\n },\n },\n SwitchStatement: {\n enter(_, state) {\n state.labellessBreakTargets++;\n },\n exit(_, state) {\n state.labellessBreakTargets--;\n },\n },\n \"BreakStatement|ContinueStatement\"(\n path: NodePath<t.BreakStatement | t.ContinueStatement>,\n state,\n ) {\n const { label } = path.node;\n if (label) {\n if (state.labelsStack.includes(label.name)) return;\n } else if (\n path.isBreakStatement()\n ? state.labellessBreakTargets > 0\n : state.labellessContinueTargets > 0\n ) {\n return;\n }\n state.breaksContinues.push(path);\n },\n ReturnStatement(path, state) {\n state.returns.push(path);\n },\n VariableDeclaration(path, state) {\n if (path.parent === state.loopNode && isVarInLoopHead(path)) return;\n if (path.node.kind === \"var\") state.vars.push(path);\n },\n};\n\nexport function wrapLoopBody(\n loopPath: NodePath<t.Loop>,\n captured: string[],\n updatedBindingsUsages: Map<string, NodePath<t.Identifier>[]>,\n) {\n const loopNode = loopPath.node;\n const state: CompletionsAndVarsState = {\n breaksContinues: [],\n returns: [],\n labelsStack: [],\n labellessBreakTargets: 0,\n labellessContinueTargets: 0,\n vars: [],\n loopNode,\n };\n loopPath.traverse(collectCompletionsAndVarsVisitor, state);\n\n const callArgs = [];\n const closureParams = [];\n const updater = [];\n for (const [name, updatedUsage] of updatedBindingsUsages) {\n callArgs.push(t.identifier(name));\n\n const innerName = loopPath.scope.generateUid(name);\n closureParams.push(t.identifier(innerName));\n updater.push(\n t.assignmentExpression(\"=\", t.identifier(name), t.identifier(innerName)),\n );\n for (const path of updatedUsage) path.replaceWith(t.identifier(innerName));\n }\n for (const name of captured) {\n if (updatedBindingsUsages.has(name)) continue; // already injected\n callArgs.push(t.identifier(name));\n closureParams.push(t.identifier(name));\n }\n\n const id = loopPath.scope.generateUid(\"loop\");\n const fn = t.functionExpression(\n null,\n closureParams,\n t.toBlock(loopNode.body),\n );\n let call: t.Expression = t.callExpression(t.identifier(id), callArgs);\n\n const fnParent = loopPath.findParent(p => p.isFunction());\n if (fnParent) {\n const { async, generator } = fnParent.node as t.Function;\n fn.async = async;\n fn.generator = generator;\n if (generator) call = t.yieldExpression(call, true);\n else if (async) call = t.awaitExpression(call);\n }\n\n const updaterNode =\n updater.length > 0\n ? t.expressionStatement(t.sequenceExpression(updater))\n : null;\n if (updaterNode) fn.body.body.push(updaterNode);\n\n // NOTE: Calling .insertBefore on the loop path might cause the\n // loop to be moved in the AST. For example, in\n // if (true) for (let x of y) ...\n // .insertBefore will replace the loop with a block:\n // if (true) { var _loop = ...; for (let x of y) ... }\n // All subsequent operations in this function on the loop node\n // must not assume that loopPath still represents the loop.\n // TODO: Consider using a function declaration\n const [varPath] = loopPath.insertBefore(\n t.variableDeclaration(\"var\", [t.variableDeclarator(t.identifier(id), fn)]),\n ) as [NodePath<t.VariableDeclaration>];\n\n const bodyStmts: t.Statement[] = [];\n\n const varNames: string[] = [];\n for (const varPath of state.vars) {\n const assign = [];\n for (const decl of varPath.node.declarations) {\n varNames.push(...Object.keys(t.getBindingIdentifiers(decl.id)));\n if (decl.init) {\n assign.push(t.assignmentExpression(\"=\", decl.id, decl.init));\n }\n }\n if (assign.length > 0) {\n let replacement: t.Node =\n assign.length === 1 ? assign[0] : t.sequenceExpression(assign);\n if (\n !t.isForStatement(varPath.parent, { init: varPath.node }) &&\n !t.isForXStatement(varPath.parent, { left: varPath.node })\n ) {\n replacement = t.expressionStatement(replacement);\n }\n varPath.replaceWith(replacement);\n } else {\n varPath.remove();\n }\n }\n if (varNames.length) {\n varPath.pushContainer(\n \"declarations\",\n varNames.map(name => t.variableDeclarator(t.identifier(name))),\n );\n }\n\n const labelNum = state.breaksContinues.length;\n const returnNum = state.returns.length;\n if (labelNum + returnNum === 0) {\n bodyStmts.push(t.expressionStatement(call));\n } else if (labelNum === 1 && returnNum === 0) {\n for (const path of state.breaksContinues) {\n const { node } = path;\n const { type, label } = node;\n let name = type === \"BreakStatement\" ? \"break\" : \"continue\";\n if (label) name += \" \" + label.name;\n path.replaceWith(\n t.addComment(\n t.returnStatement(t.numericLiteral(1)),\n \"trailing\",\n \" \" + name,\n true,\n ),\n );\n if (updaterNode) path.insertBefore(t.cloneNode(updaterNode));\n\n bodyStmts.push(\n template.statement.ast`\n if (${call}) ${node}\n `,\n );\n }\n } else {\n const completionId = loopPath.scope.generateUid(\"ret\");\n\n if (varPath.isVariableDeclaration()) {\n varPath.pushContainer(\"declarations\", [\n t.variableDeclarator(t.identifier(completionId)),\n ]);\n bodyStmts.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", t.identifier(completionId), call),\n ),\n );\n } else {\n bodyStmts.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(completionId), call),\n ]),\n );\n }\n\n const injected: string[] = [];\n for (const path of state.breaksContinues) {\n const { node } = path;\n const { type, label } = node;\n let name = type === \"BreakStatement\" ? \"break\" : \"continue\";\n if (label) name += \" \" + label.name;\n\n let i = injected.indexOf(name);\n const hasInjected = i !== -1;\n if (!hasInjected) {\n injected.push(name);\n i = injected.length - 1;\n }\n\n path.replaceWith(\n t.addComment(\n t.returnStatement(t.numericLiteral(i)),\n \"trailing\",\n \" \" + name,\n true,\n ),\n );\n if (updaterNode) path.insertBefore(t.cloneNode(updaterNode));\n\n if (hasInjected) continue;\n\n bodyStmts.push(\n template.statement.ast`\n if (${t.identifier(completionId)} === ${t.numericLiteral(i)}) ${node}\n `,\n );\n }\n\n if (returnNum) {\n for (const path of state.returns) {\n const arg = path.node.argument || path.scope.buildUndefinedNode();\n path.replaceWith(\n template.statement.ast`\n return { v: ${arg} };\n `,\n );\n }\n\n bodyStmts.push(\n template.statement.ast`\n if (${t.identifier(completionId)}) return ${t.identifier(\n completionId,\n )}.v;\n `,\n );\n }\n }\n\n loopNode.body = t.blockStatement(bodyStmts);\n\n return varPath;\n}\n\nexport function isVarInLoopHead(path: NodePath<t.VariableDeclaration>) {\n if (t.isForStatement(path.parent)) return path.key === \"init\";\n if (t.isForXStatement(path.parent)) return path.key === \"left\";\n return false;\n}\n\nfunction filterMap<T, U extends object>(list: T[], fn: (item: T) => U | null) {\n const result: U[] = [];\n for (const item of list) {\n const mapped = fn(item);\n if (mapped) result.push(mapped);\n }\n return result;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-block-scoping/package.json b/node_modules/@babel/plugin-transform-block-scoping/package.json index 6b9eaad9..1248e822 100644 --- a/node_modules/@babel/plugin-transform-block-scoping/package.json +++ b/node_modules/@babel/plugin-transform-block-scoping/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-block-scoping", - "version": "7.23.0", + "version": "7.23.4", "description": "Compile ES2015 block scoping (const and let) to ES5", "repository": { "type": "git", @@ -23,9 +23,9 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/traverse": "^7.23.0" + "@babel/traverse": "^7.23.4" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-class-properties/README.md b/node_modules/@babel/plugin-transform-class-properties/README.md index 63bba5aa..7000ec5b 100644 --- a/node_modules/@babel/plugin-transform-class-properties/README.md +++ b/node_modules/@babel/plugin-transform-class-properties/README.md @@ -2,7 +2,7 @@ > This plugin transforms static class properties as well as properties declared with the property initializer syntax -See our website [@babel/plugin-transform-class-properties](https://babeljs.io/docs/en/babel-plugin-transform-class-properties) for more information. +See our website [@babel/plugin-transform-class-properties](https://babeljs.io/docs/babel-plugin-transform-class-properties) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-class-properties/lib/index.js b/node_modules/@babel/plugin-transform-class-properties/lib/index.js index fcbc860a..f94163c8 100644 --- a/node_modules/@babel/plugin-transform-class-properties/lib/index.js +++ b/node_modules/@babel/plugin-transform-class-properties/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _helperCreateClassFeaturesPlugin = require("@babel/helper-create-class-features-plugin"); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { api.assertVersion(7); return (0, _helperCreateClassFeaturesPlugin.createClassFeaturePlugin)({ name: "transform-class-properties", @@ -18,6 +18,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }); }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-class-properties/lib/index.js.map b/node_modules/@babel/plugin-transform-class-properties/lib/index.js.map index 83dde626..a028b2f2 100644 --- a/node_modules/@babel/plugin-transform-class-properties/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-class-properties/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperCreateClassFeaturesPlugin","_default","declare","api","options","assertVersion","createClassFeaturePlugin","name","feature","FEATURES","fields","loose","manipulateOptions","opts","parserOpts","plugins","push","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\n\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport {\n createClassFeaturePlugin,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n return createClassFeaturePlugin({\n name: \"transform-class-properties\",\n\n api,\n feature: FEATURES.fields,\n loose: options.loose,\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"classProperties\", \"classPrivateProperties\");\n },\n });\n});\n"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,gCAAA,GAAAD,OAAA;AAGoD,IAAAE,QAAA,GAMrC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAChDD,GAAG,CAACE,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO,IAAAC,yDAAwB,EAAC;IAC9BC,IAAI,EAAE,4BAA4B;IAElCJ,GAAG;IACHK,OAAO,EAAEC,yCAAQ,CAACC,MAAM;IACxBC,KAAK,EAAEP,OAAO,CAACO,KAAK;IAEpBC,iBAAiBA,CAACC,IAAI,EAAEC,UAAU,EAAE;MAClCA,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACtE;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAjB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperCreateClassFeaturesPlugin","_default","exports","default","declare","api","options","assertVersion","createClassFeaturePlugin","name","feature","FEATURES","fields","loose","manipulateOptions","opts","parserOpts","plugins","push"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\n\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport {\n createClassFeaturePlugin,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return createClassFeaturePlugin({\n name: \"transform-class-properties\",\n\n api,\n feature: FEATURES.fields,\n loose: options.loose,\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"classProperties\", \"classPrivateProperties\");\n },\n });\n});\n"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,gCAAA,GAAAD,OAAA;AAGoD,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAMrC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAChDD,GAAG,CAACE,aAAa,CAGX,CACN,CAAC;EAED,OAAO,IAAAC,yDAAwB,EAAC;IAC9BC,IAAI,EAAE,4BAA4B;IAElCJ,GAAG;IACHK,OAAO,EAAEC,yCAAQ,CAACC,MAAM;IACxBC,KAAK,EAAEP,OAAO,CAACO,KAAK;IAEpBC,iBAAiBA,CAACC,IAAI,EAAEC,UAAU,EAAE;MAClCA,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC,iBAAiB,EAAE,wBAAwB,CAAC;IACtE;EACF,CAAC,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-class-properties/package.json b/node_modules/@babel/plugin-transform-class-properties/package.json index f33d8324..672d6cbf 100644 --- a/node_modules/@babel/plugin-transform-class-properties/package.json +++ b/node_modules/@babel/plugin-transform-class-properties/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-class-properties", - "version": "7.22.5", + "version": "7.23.3", "description": "This plugin transforms static class properties as well as properties declared with the property initializer syntax", "repository": { "type": "git", @@ -17,14 +17,14 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-class-static-block/lib/index.js b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js index a657297c..94282972 100644 --- a/node_modules/@babel/plugin-transform-class-static-block/lib/index.js +++ b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js @@ -16,7 +16,7 @@ function generateUid(scope, denyList) { } while (denyList.has(uid)); return uid; } -var _default = (0, _helperPluginUtils.declare)(({ +var _default = exports.default = (0, _helperPluginUtils.declare)(({ types: t, template, assertVersion @@ -58,6 +58,5 @@ var _default = (0, _helperPluginUtils.declare)(({ } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-class-static-block/lib/index.js.map b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js.map index e16bcfcd..d3d98cb4 100644 --- a/node_modules/@babel/plugin-transform-class-static-block/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-class-static-block/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperCreateClassFeaturesPlugin","generateUid","scope","denyList","name","uid","i","_generateUid","has","_default","declare","types","t","template","assertVersion","inherits","default","pre","enableFeature","file","FEATURES","staticBlocks","visitor","ClassBody","classBody","privateNames","Set","body","get","path","isPrivate","add","node","isStaticBlock","staticBlockPrivateId","staticBlockRef","privateName","identifier","replacement","blockBody","length","isExpressionStatement","inheritsComments","expression","ast","replaceWith","classPrivateProperty","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { Scope } from \"@babel/traverse\";\n\nimport {\n enableFeature,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\n/**\n * Generate a uid that is not in `denyList`\n *\n * @param {Scope} scope\n * @param {Set<string>} denyList a deny list that the generated uid should avoid\n * @returns\n */\nfunction generateUid(scope: Scope, denyList: Set<string>) {\n const name = \"\";\n let uid;\n let i = 1;\n do {\n uid = scope._generateUid(name, i);\n i++;\n } while (denyList.has(uid));\n return uid;\n}\n\nexport default declare(({ types: t, template, assertVersion }) => {\n assertVersion(\"^7.12.0\");\n\n return {\n name: \"transform-class-static-block\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-class-static-block\").default,\n\n pre() {\n // Enable this in @babel/helper-create-class-features-plugin, so that it\n // can be handled by the private fields and methods transform.\n enableFeature(this.file, FEATURES.staticBlocks, /* loose */ false);\n },\n\n visitor: {\n // Run on ClassBody and not on class so that if @babel/helper-create-class-features-plugin\n // is enabled it can generate optimized output without passing from the intermediate\n // private fields representation.\n ClassBody(classBody) {\n const { scope } = classBody;\n const privateNames = new Set<string>();\n const body = classBody.get(\"body\");\n for (const path of body) {\n if (path.isPrivate()) {\n privateNames.add(path.get(\"key.id\").node.name);\n }\n }\n for (const path of body) {\n if (!path.isStaticBlock()) continue;\n const staticBlockPrivateId = generateUid(scope, privateNames);\n privateNames.add(staticBlockPrivateId);\n const staticBlockRef = t.privateName(\n t.identifier(staticBlockPrivateId),\n );\n\n let replacement;\n const blockBody = path.node.body;\n // We special-case the single expression case to avoid the iife, since\n // it's common.\n if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {\n replacement = t.inheritsComments(\n blockBody[0].expression,\n blockBody[0],\n );\n } else {\n replacement = template.expression.ast`(() => { ${blockBody} })()`;\n }\n\n path.replaceWith(\n t.classPrivateProperty(\n staticBlockRef,\n replacement,\n [],\n /* static */ true,\n ),\n );\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAGA,IAAAC,gCAAA,GAAAD,OAAA;AAYA,SAASE,WAAWA,CAACC,KAAY,EAAEC,QAAqB,EAAE;EACxD,MAAMC,IAAI,GAAG,EAAE;EACf,IAAIC,GAAG;EACP,IAAIC,CAAC,GAAG,CAAC;EACT,GAAG;IACDD,GAAG,GAAGH,KAAK,CAACK,YAAY,CAACH,IAAI,EAAEE,CAAC,CAAC;IACjCA,CAAC,EAAE;EACL,CAAC,QAAQH,QAAQ,CAACK,GAAG,CAACH,GAAG,CAAC;EAC1B,OAAOA,GAAG;AACZ;AAAC,IAAAI,QAAA,GAEc,IAAAC,0BAAO,EAAC,CAAC;EAAEC,KAAK,EAAEC,CAAC;EAAEC,QAAQ;EAAEC;AAAc,CAAC,KAAK;EAChEA,aAAa,CAAC,SAAS,CAAC;EAExB,OAAO;IACLV,IAAI,EAAE,8BAA8B;IACpCW,QAAQ,EAKJhB,OAAO,CAAC,yCAAyC,CAAC,CAACiB,OAAO;IAE9DC,GAAGA,CAAA,EAAG;MAGJ,IAAAC,8CAAa,EAAC,IAAI,CAACC,IAAI,EAAEC,yCAAQ,CAACC,YAAY,EAAc,KAAK,CAAC;IACpE,CAAC;IAEDC,OAAO,EAAE;MAIPC,SAASA,CAACC,SAAS,EAAE;QACnB,MAAM;UAAEtB;QAAM,CAAC,GAAGsB,SAAS;QAC3B,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAAS,CAAC;QACtC,MAAMC,IAAI,GAAGH,SAAS,CAACI,GAAG,CAAC,MAAM,CAAC;QAClC,KAAK,MAAMC,IAAI,IAAIF,IAAI,EAAE;UACvB,IAAIE,IAAI,CAACC,SAAS,CAAC,CAAC,EAAE;YACpBL,YAAY,CAACM,GAAG,CAACF,IAAI,CAACD,GAAG,CAAC,QAAQ,CAAC,CAACI,IAAI,CAAC5B,IAAI,CAAC;UAChD;QACF;QACA,KAAK,MAAMyB,IAAI,IAAIF,IAAI,EAAE;UACvB,IAAI,CAACE,IAAI,CAACI,aAAa,CAAC,CAAC,EAAE;UAC3B,MAAMC,oBAAoB,GAAGjC,WAAW,CAACC,KAAK,EAAEuB,YAAY,CAAC;UAC7DA,YAAY,CAACM,GAAG,CAACG,oBAAoB,CAAC;UACtC,MAAMC,cAAc,GAAGvB,CAAC,CAACwB,WAAW,CAClCxB,CAAC,CAACyB,UAAU,CAACH,oBAAoB,CACnC,CAAC;UAED,IAAII,WAAW;UACf,MAAMC,SAAS,GAAGV,IAAI,CAACG,IAAI,CAACL,IAAI;UAGhC,IAAIY,SAAS,CAACC,MAAM,KAAK,CAAC,IAAI5B,CAAC,CAAC6B,qBAAqB,CAACF,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;YACnED,WAAW,GAAG1B,CAAC,CAAC8B,gBAAgB,CAC9BH,SAAS,CAAC,CAAC,CAAC,CAACI,UAAU,EACvBJ,SAAS,CAAC,CAAC,CACb,CAAC;UACH,CAAC,MAAM;YACLD,WAAW,GAAGzB,QAAQ,CAAC8B,UAAU,CAACC,GAAI,YAAWL,SAAU,OAAM;UACnE;UAEAV,IAAI,CAACgB,WAAW,CACdjC,CAAC,CAACkC,oBAAoB,CACpBX,cAAc,EACdG,WAAW,EACX,EAAE,EACW,IACf,CACF,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAS,OAAA,CAAA/B,OAAA,GAAAP,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperCreateClassFeaturesPlugin","generateUid","scope","denyList","name","uid","i","_generateUid","has","_default","exports","default","declare","types","t","template","assertVersion","inherits","pre","enableFeature","file","FEATURES","staticBlocks","visitor","ClassBody","classBody","privateNames","Set","body","get","path","isPrivate","add","node","isStaticBlock","staticBlockPrivateId","staticBlockRef","privateName","identifier","replacement","blockBody","length","isExpressionStatement","inheritsComments","expression","ast","replaceWith","classPrivateProperty"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { Scope } from \"@babel/traverse\";\n\nimport {\n enableFeature,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\n/**\n * Generate a uid that is not in `denyList`\n *\n * @param {Scope} scope\n * @param {Set<string>} denyList a deny list that the generated uid should avoid\n * @returns\n */\nfunction generateUid(scope: Scope, denyList: Set<string>) {\n const name = \"\";\n let uid;\n let i = 1;\n do {\n uid = scope._generateUid(name, i);\n i++;\n } while (denyList.has(uid));\n return uid;\n}\n\nexport default declare(({ types: t, template, assertVersion }) => {\n assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : \"^7.12.0\",\n );\n\n return {\n name: \"transform-class-static-block\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-class-static-block\").default,\n\n pre() {\n // Enable this in @babel/helper-create-class-features-plugin, so that it\n // can be handled by the private fields and methods transform.\n enableFeature(this.file, FEATURES.staticBlocks, /* loose */ false);\n },\n\n visitor: {\n // Run on ClassBody and not on class so that if @babel/helper-create-class-features-plugin\n // is enabled it can generate optimized output without passing from the intermediate\n // private fields representation.\n ClassBody(classBody) {\n const { scope } = classBody;\n const privateNames = new Set<string>();\n const body = classBody.get(\"body\");\n for (const path of body) {\n if (path.isPrivate()) {\n privateNames.add(path.get(\"key.id\").node.name);\n }\n }\n for (const path of body) {\n if (!path.isStaticBlock()) continue;\n const staticBlockPrivateId = generateUid(scope, privateNames);\n privateNames.add(staticBlockPrivateId);\n const staticBlockRef = t.privateName(\n t.identifier(staticBlockPrivateId),\n );\n\n let replacement;\n const blockBody = path.node.body;\n // We special-case the single expression case to avoid the iife, since\n // it's common.\n if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {\n replacement = t.inheritsComments(\n blockBody[0].expression,\n blockBody[0],\n );\n } else {\n replacement = template.expression.ast`(() => { ${blockBody} })()`;\n }\n\n path.replaceWith(\n t.classPrivateProperty(\n staticBlockRef,\n replacement,\n [],\n /* static */ true,\n ),\n );\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAGA,IAAAC,gCAAA,GAAAD,OAAA;AAYA,SAASE,WAAWA,CAACC,KAAY,EAAEC,QAAqB,EAAE;EACxD,MAAMC,IAAI,GAAG,EAAE;EACf,IAAIC,GAAG;EACP,IAAIC,CAAC,GAAG,CAAC;EACT,GAAG;IACDD,GAAG,GAAGH,KAAK,CAACK,YAAY,CAACH,IAAI,EAAEE,CAAC,CAAC;IACjCA,CAAC,EAAE;EACL,CAAC,QAAQH,QAAQ,CAACK,GAAG,CAACH,GAAG,CAAC;EAC1B,OAAOA,GAAG;AACZ;AAAC,IAAAI,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAAC,0BAAO,EAAC,CAAC;EAAEC,KAAK,EAAEC,CAAC;EAAEC,QAAQ;EAAEC;AAAc,CAAC,KAAK;EAChEA,aAAa,CAGP,SACN,CAAC;EAED,OAAO;IACLZ,IAAI,EAAE,8BAA8B;IACpCa,QAAQ,EAKFlB,OAAO,CAAC,yCAAyC,CAAC,CAACY,OAAO;IAEhEO,GAAGA,CAAA,EAAG;MAGJ,IAAAC,8CAAa,EAAC,IAAI,CAACC,IAAI,EAAEC,yCAAQ,CAACC,YAAY,EAAc,KAAK,CAAC;IACpE,CAAC;IAEDC,OAAO,EAAE;MAIPC,SAASA,CAACC,SAAS,EAAE;QACnB,MAAM;UAAEvB;QAAM,CAAC,GAAGuB,SAAS;QAC3B,MAAMC,YAAY,GAAG,IAAIC,GAAG,CAAS,CAAC;QACtC,MAAMC,IAAI,GAAGH,SAAS,CAACI,GAAG,CAAC,MAAM,CAAC;QAClC,KAAK,MAAMC,IAAI,IAAIF,IAAI,EAAE;UACvB,IAAIE,IAAI,CAACC,SAAS,CAAC,CAAC,EAAE;YACpBL,YAAY,CAACM,GAAG,CAACF,IAAI,CAACD,GAAG,CAAC,QAAQ,CAAC,CAACI,IAAI,CAAC7B,IAAI,CAAC;UAChD;QACF;QACA,KAAK,MAAM0B,IAAI,IAAIF,IAAI,EAAE;UACvB,IAAI,CAACE,IAAI,CAACI,aAAa,CAAC,CAAC,EAAE;UAC3B,MAAMC,oBAAoB,GAAGlC,WAAW,CAACC,KAAK,EAAEwB,YAAY,CAAC;UAC7DA,YAAY,CAACM,GAAG,CAACG,oBAAoB,CAAC;UACtC,MAAMC,cAAc,GAAGtB,CAAC,CAACuB,WAAW,CAClCvB,CAAC,CAACwB,UAAU,CAACH,oBAAoB,CACnC,CAAC;UAED,IAAII,WAAW;UACf,MAAMC,SAAS,GAAGV,IAAI,CAACG,IAAI,CAACL,IAAI;UAGhC,IAAIY,SAAS,CAACC,MAAM,KAAK,CAAC,IAAI3B,CAAC,CAAC4B,qBAAqB,CAACF,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE;YACnED,WAAW,GAAGzB,CAAC,CAAC6B,gBAAgB,CAC9BH,SAAS,CAAC,CAAC,CAAC,CAACI,UAAU,EACvBJ,SAAS,CAAC,CAAC,CACb,CAAC;UACH,CAAC,MAAM;YACLD,WAAW,GAAGxB,QAAQ,CAAC6B,UAAU,CAACC,GAAI,YAAWL,SAAU,OAAM;UACnE;UAEAV,IAAI,CAACgB,WAAW,CACdhC,CAAC,CAACiC,oBAAoB,CACpBX,cAAc,EACdG,WAAW,EACX,EAAE,EACW,IACf,CACF,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-class-static-block/package.json b/node_modules/@babel/plugin-transform-class-static-block/package.json index b8063d1e..0c3b4285 100644 --- a/node_modules/@babel/plugin-transform-class-static-block/package.json +++ b/node_modules/@babel/plugin-transform-class-static-block/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-class-static-block", - "version": "7.22.11", + "version": "7.23.4", "description": "Transform class static blocks", "repository": { "type": "git", @@ -20,7 +20,7 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-class-static-block": "^7.14.5" }, @@ -28,10 +28,10 @@ "@babel/core": "^7.12.0" }, "devDependencies": { - "@babel/core": "^7.22.11", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/traverse": "^7.22.11", - "@babel/types": "^7.22.11" + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-class-static-block", "engines": { diff --git a/node_modules/@babel/plugin-transform-classes/lib/index.js b/node_modules/@babel/plugin-transform-classes/lib/index.js index 01462e1a..3513f3ac 100644 --- a/node_modules/@babel/plugin-transform-classes/lib/index.js +++ b/node_modules/@babel/plugin-transform-classes/lib/index.js @@ -14,7 +14,7 @@ var _globals = require("globals"); var _transformClass = require("./transformClass.js"); const getBuiltinClasses = category => Object.keys(_globals[category]).filter(name => /^[A-Z]/.test(name)); const builtinClasses = new Set([...getBuiltinClasses("builtin"), ...getBuiltinClasses("browser")]); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _api$assumption2, _api$assumption3, _api$assumption4; api.assertVersion(7); const { @@ -68,6 +68,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-classes/lib/index.js.map b/node_modules/@babel/plugin-transform-classes/lib/index.js.map index dde2c199..8476888d 100644 --- a/node_modules/@babel/plugin-transform-classes/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-classes/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperCompilationTargets","_helperAnnotateAsPure","_helperFunctionName","_helperSplitExportDeclaration","_core","_globals","_transformClass","getBuiltinClasses","category","Object","keys","globals","filter","name","test","builtinClasses","Set","_default","declare","api","options","_api$assumption","_api$assumption2","_api$assumption3","_api$assumption4","assertVersion","loose","setClassMethods","assumption","constantSuper","superIsCallableConstructor","noClassCalls","supportUnicodeId","isRequired","targets","VISITED","WeakSet","visitor","ExportDefaultDeclaration","path","get","isClassDeclaration","splitExportDeclaration","ClassDeclaration","node","ref","id","scope","generateUidIdentifier","replaceWith","t","variableDeclaration","variableDeclarator","toExpression","ClassExpression","state","has","inferred","nameFunction","undefined","add","replacedPath","transformClass","file","isCallExpression","annotateAsPure","callee","isArrowFunctionExpression","arrowFunctionToExpression","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\nimport { types as t } from \"@babel/core\";\nimport globals from \"globals\";\nimport transformClass from \"./transformClass.ts\";\n\nconst getBuiltinClasses = (category: keyof typeof globals) =>\n Object.keys(globals[category]).filter(name => /^[A-Z]/.test(name));\n\nconst builtinClasses = new Set([\n ...getBuiltinClasses(\"builtin\"),\n ...getBuiltinClasses(\"browser\"),\n]);\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const { loose = false } = options;\n\n const setClassMethods = api.assumption(\"setClassMethods\") ?? loose;\n const constantSuper = api.assumption(\"constantSuper\") ?? loose;\n const superIsCallableConstructor =\n api.assumption(\"superIsCallableConstructor\") ?? loose;\n const noClassCalls = api.assumption(\"noClassCalls\") ?? loose;\n const supportUnicodeId = !isRequired(\n \"transform-unicode-escapes\",\n api.targets(),\n );\n\n // todo: investigate traversal requeueing\n const VISITED = new WeakSet();\n\n return {\n name: \"transform-classes\",\n\n visitor: {\n ExportDefaultDeclaration(path) {\n if (!path.get(\"declaration\").isClassDeclaration()) return;\n splitExportDeclaration(path);\n },\n\n ClassDeclaration(path) {\n const { node } = path;\n\n const ref = node.id || path.scope.generateUidIdentifier(\"class\");\n\n path.replaceWith(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(ref, t.toExpression(node)),\n ]),\n );\n },\n\n ClassExpression(path, state) {\n const { node } = path;\n if (VISITED.has(node)) return;\n\n const inferred = nameFunction(path, undefined, supportUnicodeId);\n if (inferred && inferred !== node) {\n path.replaceWith(inferred);\n return;\n }\n\n VISITED.add(node);\n\n const [replacedPath] = path.replaceWith(\n transformClass(\n path,\n state.file,\n builtinClasses,\n loose,\n {\n setClassMethods,\n constantSuper,\n superIsCallableConstructor,\n noClassCalls,\n },\n supportUnicodeId,\n ),\n );\n\n if (replacedPath.isCallExpression()) {\n annotateAsPure(replacedPath);\n const callee = replacedPath.get(\"callee\");\n if (callee.isArrowFunctionExpression()) {\n // This is an IIFE, so we don't need to worry about the noNewArrows assumption\n callee.arrowFunctionToExpression();\n }\n }\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperCompilationTargets","_helperAnnotateAsPure","_helperFunctionName","_helperSplitExportDeclaration","_core","_globals","_transformClass","getBuiltinClasses","category","Object","keys","globals","filter","name","test","builtinClasses","Set","_default","exports","default","declare","api","options","_api$assumption","_api$assumption2","_api$assumption3","_api$assumption4","assertVersion","loose","setClassMethods","assumption","constantSuper","superIsCallableConstructor","noClassCalls","supportUnicodeId","isRequired","targets","VISITED","WeakSet","visitor","ExportDefaultDeclaration","path","get","isClassDeclaration","splitExportDeclaration","ClassDeclaration","node","ref","id","scope","generateUidIdentifier","replaceWith","t","variableDeclaration","variableDeclarator","toExpression","ClassExpression","state","has","inferred","nameFunction","undefined","add","replacedPath","transformClass","file","isCallExpression","annotateAsPure","callee","isArrowFunctionExpression","arrowFunctionToExpression"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\nimport { types as t } from \"@babel/core\";\nimport globals from \"globals\";\nimport transformClass from \"./transformClass.ts\";\n\nconst getBuiltinClasses = (category: keyof typeof globals) =>\n Object.keys(globals[category]).filter(name => /^[A-Z]/.test(name));\n\nconst builtinClasses = new Set([\n ...getBuiltinClasses(\"builtin\"),\n ...getBuiltinClasses(\"browser\"),\n]);\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const { loose = false } = options;\n\n const setClassMethods = api.assumption(\"setClassMethods\") ?? loose;\n const constantSuper = api.assumption(\"constantSuper\") ?? loose;\n const superIsCallableConstructor =\n api.assumption(\"superIsCallableConstructor\") ?? loose;\n const noClassCalls = api.assumption(\"noClassCalls\") ?? loose;\n const supportUnicodeId = !isRequired(\n \"transform-unicode-escapes\",\n api.targets(),\n );\n\n // todo: investigate traversal requeueing\n const VISITED = new WeakSet();\n\n return {\n name: \"transform-classes\",\n\n visitor: {\n ExportDefaultDeclaration(path) {\n if (!path.get(\"declaration\").isClassDeclaration()) return;\n splitExportDeclaration(path);\n },\n\n ClassDeclaration(path) {\n const { node } = path;\n\n const ref = node.id || path.scope.generateUidIdentifier(\"class\");\n\n path.replaceWith(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(ref, t.toExpression(node)),\n ]),\n );\n },\n\n ClassExpression(path, state) {\n const { node } = path;\n if (VISITED.has(node)) return;\n\n const inferred = nameFunction(path, undefined, supportUnicodeId);\n if (inferred && inferred !== node) {\n path.replaceWith(inferred);\n return;\n }\n\n VISITED.add(node);\n\n const [replacedPath] = path.replaceWith(\n transformClass(\n path,\n state.file,\n builtinClasses,\n loose,\n {\n setClassMethods,\n constantSuper,\n superIsCallableConstructor,\n noClassCalls,\n },\n supportUnicodeId,\n ),\n );\n\n if (replacedPath.isCallExpression()) {\n annotateAsPure(replacedPath);\n const callee = replacedPath.get(\"callee\");\n if (callee.isArrowFunctionExpression()) {\n // This is an IIFE, so we don't need to worry about the noNewArrows assumption\n callee.arrowFunctionToExpression();\n }\n }\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-classes/lib/transformClass.js b/node_modules/@babel/plugin-transform-classes/lib/transformClass.js index 7cf2e2ee..0753a868 100644 --- a/node_modules/@babel/plugin-transform-classes/lib/transformClass.js +++ b/node_modules/@babel/plugin-transform-classes/lib/transformClass.js @@ -109,7 +109,7 @@ function transformClass(path, file, builtinClasses, isLoose, assumptions, suppor const classBodyPaths = classState.path.get("body.body"); for (const path of classBodyPaths) { const node = path.node; - if (path.isClassProperty()) { + if (path.isClassProperty() || path.isClassPrivateProperty()) { throw path.buildCodeFrameError("Missing class properties transform."); } if (node.decorators) { diff --git a/node_modules/@babel/plugin-transform-classes/lib/transformClass.js.map b/node_modules/@babel/plugin-transform-classes/lib/transformClass.js.map index ac799097..3dc0d185 100644 --- a/node_modules/@babel/plugin-transform-classes/lib/transformClass.js.map +++ b/node_modules/@babel/plugin-transform-classes/lib/transformClass.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperFunctionName","require","_helperReplaceSupers","_helperEnvironmentVisitor","_helperOptimiseCallExpression","_core","_helperAnnotateAsPure","_inlineCreateSuperHelpers","buildConstructor","classRef","constructorBody","node","func","t","functionDeclaration","cloneNode","inherits","transformClass","path","file","builtinClasses","isLoose","assumptions","supportUnicodeId","classState","parent","undefined","scope","classId","superFnId","superName","superReturns","isDerived","extendsNative","construct","userConstructor","userConstructorPath","hasConstructor","body","superThises","pushedConstructor","pushedInherits","pushedCreateClass","protoAlias","dynamicKeys","Map","methods","instance","hasComputed","list","map","static","setState","newState","Object","assign","findThisesVisitor","traverse","visitors","merge","environmentVisitor","ThisExpression","push","createClassHelper","args","callExpression","addHelper","maybeCreateConstructor","classBodyPath","get","isClassMethod","kind","params","constructor","template","expression","ast","blockStatement","unshiftContainer","classMethod","identifier","buildBody","pushBody","verifyConstructor","pushDescriptors","classBodyPaths","isClassProperty","buildCodeFrameError","decorators","isConstructor","replaceSupers","ReplaceSupers","methodPath","objectRef","superRef","constantSuper","refToPreserve","replace","ReturnStatement","getFunctionParent","isArrowFunctionExpression","pushConstructor","pushMethod","pushInheritsToBody","props","placement","length","desc","obj","objectExpression","objectProperty","key","properties","arrayExpression","nullLiteral","lastNonNullIndex","i","isNullLiteral","slice","expressionStatement","wrapSuperCall","bareSuper","thisRef","bareSuperNode","call","superIsCallableConstructor","arguments","unshift","thisExpression","isSpreadElement","isIdentifier","argument","name","callee","memberExpression","logicalExpression","optimiseCall","parentPath","isExpressionStatement","container","assignmentExpression","replaceWith","returnStatement","ref","generateDeclaredUidIdentifier","thisPath","isMemberExpression","object","bareSupers","Super","isCallExpression","guaranteedSuperBeforeFinish","find","isLoop","isConditional","wrapReturn","returnArg","thisExpr","returnParams","bodyPaths","pop","isReturnStatement","pushContainer","returnPath","processMethod","descKey","isNumericLiteral","isBigIntLiteral","stringLiteral","String","value","toComputedKey","fn","toExpression","isStringLiteral","_nameFunction","nameFunction","id","descriptor","has","set","setClassMethods","insertProtoAliasOnce","methodName","computed","isLiteral","functionExpression","generator","async","_nameFunction2","expr","inheritsComments","generateUidIdentifier","classProto","protoDeclaration","variableDeclaration","variableDeclarator","method","directives","pushConstructorToBody","hasInstanceDescriptors","hasStaticDescriptors","addCreateSuperHelper","extractDynamicKeys","elem","isPure","generateUidIdentifierBasedOnNode","setupClosureParamsArgs","closureParams","closureArgs","arg","annotateAsPure","param","classTransformer","superClass","hasBinding","noClassCalls","isStrict","isInStrictMode","constructorOnly","directive","directiveLiteral","arrowFunctionExpression"],"sources":["../src/transformClass.ts"],"sourcesContent":["import type { NodePath, Scope, Visitor } from \"@babel/traverse\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport optimiseCall from \"@babel/helper-optimise-call-expression\";\nimport { traverse, template, types as t, type File } from \"@babel/core\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\n\nimport addCreateSuperHelper from \"./inline-createSuper-helpers.ts\";\n\ntype ClassAssumptions = {\n setClassMethods: boolean;\n constantSuper: boolean;\n superIsCallableConstructor: boolean;\n noClassCalls: boolean;\n};\n\ntype ClassConstructor = t.ClassMethod & { kind: \"constructor\" };\n\nfunction buildConstructor(\n classRef: t.Identifier,\n constructorBody: t.BlockStatement,\n node: t.Class,\n) {\n const func = t.functionDeclaration(\n t.cloneNode(classRef),\n [],\n constructorBody,\n );\n t.inherits(func, node);\n return func;\n}\n\ntype Descriptor = {\n key: t.Expression;\n get?: t.Expression | null;\n set?: t.Expression | null;\n value?: t.Expression | null;\n constructor?: t.Expression | null;\n};\n\ntype State = {\n parent: t.Node;\n scope: Scope;\n node: t.Class;\n path: NodePath<t.Class>;\n file: File;\n\n classId: t.Identifier | void;\n classRef: t.Identifier;\n superFnId: t.Identifier;\n superName: t.Expression | null;\n superReturns: NodePath<t.ReturnStatement>[];\n isDerived: boolean;\n extendsNative: boolean;\n\n construct: t.FunctionDeclaration;\n constructorBody: t.BlockStatement;\n userConstructor: ClassConstructor;\n userConstructorPath: NodePath<ClassConstructor>;\n hasConstructor: boolean;\n\n body: t.Statement[];\n superThises: NodePath<t.ThisExpression>[];\n pushedConstructor: boolean;\n pushedInherits: boolean;\n pushedCreateClass: boolean;\n protoAlias: t.Identifier | null;\n isLoose: boolean;\n\n dynamicKeys: Map<string, t.Expression>;\n\n methods: {\n // 'list' is in the same order as the elements appear in the class body.\n // if there aren't computed keys, we can safely reorder class elements\n // and use 'map' to merge duplicates.\n instance: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map<string, Descriptor>;\n };\n static: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map<string, Descriptor>;\n };\n };\n};\n\ntype PropertyInfo = {\n instance: t.ObjectExpression[] | null;\n static: t.ObjectExpression[] | null;\n};\n\nexport default function transformClass(\n path: NodePath<t.Class>,\n file: File,\n builtinClasses: ReadonlySet<string>,\n isLoose: boolean,\n assumptions: ClassAssumptions,\n supportUnicodeId: boolean,\n) {\n const classState: State = {\n parent: undefined,\n scope: undefined,\n node: undefined,\n path: undefined,\n file: undefined,\n\n classId: undefined,\n classRef: undefined,\n superFnId: undefined,\n superName: null,\n superReturns: [],\n isDerived: false,\n extendsNative: false,\n\n construct: undefined,\n constructorBody: undefined,\n userConstructor: undefined,\n userConstructorPath: undefined,\n hasConstructor: false,\n\n body: [],\n superThises: [],\n pushedConstructor: false,\n pushedInherits: false,\n pushedCreateClass: false,\n protoAlias: null,\n isLoose: false,\n\n dynamicKeys: new Map(),\n\n methods: {\n instance: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n static: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n },\n };\n\n const setState = (newState: Partial<State>) => {\n Object.assign(classState, newState);\n };\n\n const findThisesVisitor = traverse.visitors.merge([\n environmentVisitor,\n {\n ThisExpression(path) {\n classState.superThises.push(path);\n },\n },\n ]);\n\n function createClassHelper(args: t.Expression[]) {\n return t.callExpression(classState.file.addHelper(\"createClass\"), args);\n }\n\n /**\n * Creates a class constructor or bail out if there is one\n */\n function maybeCreateConstructor() {\n const classBodyPath = classState.path.get(\"body\");\n for (const path of classBodyPath.get(\"body\")) {\n if (path.isClassMethod({ kind: \"constructor\" })) return;\n }\n\n let params: t.FunctionExpression[\"params\"], body;\n\n if (classState.isDerived) {\n const constructor = template.expression.ast`\n (function () {\n super(...arguments);\n })\n ` as t.FunctionExpression;\n params = constructor.params;\n body = constructor.body;\n } else {\n params = [];\n body = t.blockStatement([]);\n }\n\n classBodyPath.unshiftContainer(\n \"body\",\n t.classMethod(\"constructor\", t.identifier(\"constructor\"), params, body),\n );\n }\n\n function buildBody() {\n maybeCreateConstructor();\n pushBody();\n verifyConstructor();\n\n if (classState.userConstructor) {\n const { constructorBody, userConstructor, construct } = classState;\n\n constructorBody.body.push(...userConstructor.body.body);\n t.inherits(construct, userConstructor);\n t.inherits(constructorBody, userConstructor.body);\n }\n\n pushDescriptors();\n }\n\n function pushBody() {\n const classBodyPaths: Array<any> = classState.path.get(\"body.body\");\n\n for (const path of classBodyPaths) {\n const node = path.node;\n\n if (path.isClassProperty()) {\n throw path.buildCodeFrameError(\"Missing class properties transform.\");\n }\n\n if (node.decorators) {\n throw path.buildCodeFrameError(\n \"Method has decorators, put the decorator plugin before the classes one.\",\n );\n }\n\n if (t.isClassMethod(node)) {\n const isConstructor = node.kind === \"constructor\";\n\n const replaceSupers = new ReplaceSupers({\n methodPath: path,\n objectRef: classState.classRef,\n superRef: classState.superName,\n constantSuper: assumptions.constantSuper,\n file: classState.file,\n refToPreserve: classState.classRef,\n });\n\n replaceSupers.replace();\n\n const superReturns: NodePath<t.ReturnStatement>[] = [];\n path.traverse(\n traverse.visitors.merge([\n environmentVisitor,\n {\n ReturnStatement(path) {\n if (!path.getFunctionParent().isArrowFunctionExpression()) {\n superReturns.push(path);\n }\n },\n },\n ]),\n );\n\n if (isConstructor) {\n pushConstructor(superReturns, node as ClassConstructor, path);\n } else {\n pushMethod(node, path);\n }\n }\n }\n }\n\n function pushDescriptors() {\n pushInheritsToBody();\n\n const { body } = classState;\n\n const props: PropertyInfo = {\n instance: null,\n static: null,\n };\n\n for (const placement of [\"static\", \"instance\"] as const) {\n if (classState.methods[placement].list.length) {\n props[placement] = classState.methods[placement].list.map(desc => {\n const obj = t.objectExpression([\n t.objectProperty(t.identifier(\"key\"), desc.key),\n ]);\n\n for (const kind of [\"get\", \"set\", \"value\"] as const) {\n if (desc[kind] != null) {\n obj.properties.push(\n t.objectProperty(t.identifier(kind), desc[kind]),\n );\n }\n }\n\n return obj;\n });\n }\n }\n\n if (props.instance || props.static) {\n let args = [\n t.cloneNode(classState.classRef), // Constructor\n props.instance ? t.arrayExpression(props.instance) : t.nullLiteral(), // instanceDescriptors\n props.static ? t.arrayExpression(props.static) : t.nullLiteral(), // staticDescriptors\n ];\n\n let lastNonNullIndex = 0;\n for (let i = 0; i < args.length; i++) {\n if (!t.isNullLiteral(args[i])) lastNonNullIndex = i;\n }\n args = args.slice(0, lastNonNullIndex + 1);\n\n body.push(t.expressionStatement(createClassHelper(args)));\n classState.pushedCreateClass = true;\n }\n }\n\n function wrapSuperCall(\n bareSuper: NodePath<t.CallExpression>,\n superRef: t.Expression,\n thisRef: () => t.Identifier,\n body: NodePath<t.BlockStatement>,\n ) {\n const bareSuperNode = bareSuper.node;\n let call;\n\n if (assumptions.superIsCallableConstructor) {\n bareSuperNode.arguments.unshift(t.thisExpression());\n if (\n bareSuperNode.arguments.length === 2 &&\n t.isSpreadElement(bareSuperNode.arguments[1]) &&\n t.isIdentifier(bareSuperNode.arguments[1].argument, {\n name: \"arguments\",\n })\n ) {\n // special case single arguments spread\n bareSuperNode.arguments[1] = bareSuperNode.arguments[1].argument;\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"apply\"),\n );\n } else {\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"call\"),\n );\n }\n\n call = t.logicalExpression(\"||\", bareSuperNode, t.thisExpression());\n } else {\n call = optimiseCall(\n t.cloneNode(classState.superFnId),\n t.thisExpression(),\n bareSuperNode.arguments,\n false,\n );\n }\n\n if (\n bareSuper.parentPath.isExpressionStatement() &&\n bareSuper.parentPath.container === body.node.body &&\n body.node.body.length - 1 === bareSuper.parentPath.key\n ) {\n // this super call is the last statement in the body so we can just straight up\n // turn it into a return\n\n if (classState.superThises.length) {\n call = t.assignmentExpression(\"=\", thisRef(), call);\n }\n\n bareSuper.parentPath.replaceWith(t.returnStatement(call));\n } else {\n bareSuper.replaceWith(t.assignmentExpression(\"=\", thisRef(), call));\n }\n }\n\n function verifyConstructor() {\n if (!classState.isDerived) return;\n\n const path = classState.userConstructorPath;\n const body = path.get(\"body\");\n\n path.traverse(findThisesVisitor);\n\n let thisRef = function () {\n const ref = path.scope.generateDeclaredUidIdentifier(\"this\");\n thisRef = () => t.cloneNode(ref);\n return ref;\n };\n\n for (const thisPath of classState.superThises) {\n const { node, parentPath } = thisPath;\n if (parentPath.isMemberExpression({ object: node })) {\n thisPath.replaceWith(thisRef());\n continue;\n }\n thisPath.replaceWith(\n t.callExpression(classState.file.addHelper(\"assertThisInitialized\"), [\n thisRef(),\n ]),\n );\n }\n\n const bareSupers: NodePath<t.CallExpression>[] = [];\n path.traverse(\n traverse.visitors.merge([\n environmentVisitor,\n {\n Super(path) {\n const { node, parentPath } = path;\n if (parentPath.isCallExpression({ callee: node })) {\n bareSupers.unshift(parentPath);\n }\n },\n } as Visitor,\n ]),\n );\n\n let guaranteedSuperBeforeFinish = !!bareSupers.length;\n\n for (const bareSuper of bareSupers) {\n wrapSuperCall(bareSuper, classState.superName, thisRef, body);\n\n if (guaranteedSuperBeforeFinish) {\n bareSuper.find(function (parentPath) {\n // hit top so short circuit\n if (parentPath === path) {\n return true;\n }\n\n if (\n parentPath.isLoop() ||\n parentPath.isConditional() ||\n parentPath.isArrowFunctionExpression()\n ) {\n guaranteedSuperBeforeFinish = false;\n return true;\n }\n });\n }\n }\n\n let wrapReturn;\n\n if (classState.isLoose) {\n wrapReturn = (returnArg: t.Expression | void) => {\n const thisExpr = t.callExpression(\n classState.file.addHelper(\"assertThisInitialized\"),\n [thisRef()],\n );\n return returnArg\n ? t.logicalExpression(\"||\", returnArg, thisExpr)\n : thisExpr;\n };\n } else {\n wrapReturn = (returnArg: t.Expression | undefined) => {\n const returnParams: t.Expression[] = [thisRef()];\n if (returnArg != null) {\n returnParams.push(returnArg);\n }\n return t.callExpression(\n classState.file.addHelper(\"possibleConstructorReturn\"),\n returnParams,\n );\n };\n }\n\n // if we have a return as the last node in the body then we've already caught that\n // return\n const bodyPaths = body.get(\"body\");\n if (!bodyPaths.length || !bodyPaths.pop().isReturnStatement()) {\n body.pushContainer(\n \"body\",\n t.returnStatement(\n guaranteedSuperBeforeFinish ? thisRef() : wrapReturn(),\n ),\n );\n }\n\n for (const returnPath of classState.superReturns) {\n returnPath\n .get(\"argument\")\n .replaceWith(wrapReturn(returnPath.node.argument));\n }\n }\n\n /**\n * Push a method to its respective mutatorMap.\n */\n function pushMethod(node: t.ClassMethod, path?: NodePath) {\n const scope = path ? path.scope : classState.scope;\n\n if (node.kind === \"method\") {\n if (processMethod(node, scope)) return;\n }\n\n const placement = node.static ? \"static\" : \"instance\";\n const methods = classState.methods[placement];\n\n const descKey = node.kind === \"method\" ? \"value\" : node.kind;\n const key =\n t.isNumericLiteral(node.key) || t.isBigIntLiteral(node.key)\n ? t.stringLiteral(String(node.key.value))\n : t.toComputedKey(node);\n\n let fn: t.Expression = t.toExpression(node);\n\n if (t.isStringLiteral(key)) {\n // infer function name\n if (node.kind === \"method\") {\n // @ts-expect-error Fixme: we are passing a ClassMethod to nameFunction, but nameFunction\n // does not seem to support it\n fn =\n nameFunction(\n // @ts-expect-error Fixme: we are passing a ClassMethod to nameFunction, but nameFunction\n // does not seem to support it\n { id: key, node: node, scope },\n undefined,\n supportUnicodeId,\n ) ?? fn;\n }\n } else {\n // todo(flow->ts) find a way to avoid \"key as t.StringLiteral\" below which relies on this assignment\n methods.hasComputed = true;\n }\n\n let descriptor: Descriptor;\n if (\n !methods.hasComputed &&\n methods.map.has((key as t.StringLiteral).value)\n ) {\n descriptor = methods.map.get((key as t.StringLiteral).value);\n descriptor[descKey] = fn;\n\n if (descKey === \"value\") {\n descriptor.get = null;\n descriptor.set = null;\n } else {\n descriptor.value = null;\n }\n } else {\n descriptor = {\n key:\n // private name has been handled in class-properties transform\n key as t.Expression,\n [descKey]: fn,\n } as Descriptor;\n methods.list.push(descriptor);\n\n if (!methods.hasComputed) {\n methods.map.set((key as t.StringLiteral).value, descriptor);\n }\n }\n }\n\n function processMethod(node: t.ClassMethod, scope: Scope) {\n if (assumptions.setClassMethods && !node.decorators) {\n // use assignments instead of define properties for loose classes\n let { classRef } = classState;\n if (!node.static) {\n insertProtoAliasOnce();\n classRef = classState.protoAlias;\n }\n const methodName = t.memberExpression(\n t.cloneNode(classRef),\n node.key,\n node.computed || t.isLiteral(node.key),\n );\n\n let func: t.Expression = t.functionExpression(\n null,\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n node.params,\n node.body,\n node.generator,\n node.async,\n );\n t.inherits(func, node);\n\n const key = t.toComputedKey(node, node.key);\n if (t.isStringLiteral(key)) {\n // @ts-expect-error: requires strictNullCheck\n func =\n nameFunction(\n {\n node: func,\n id: key,\n scope,\n },\n undefined,\n supportUnicodeId,\n ) ?? func;\n }\n\n const expr = t.expressionStatement(\n t.assignmentExpression(\"=\", methodName, func),\n );\n t.inheritsComments(expr, node);\n classState.body.push(expr);\n return true;\n }\n\n return false;\n }\n\n function insertProtoAliasOnce() {\n if (classState.protoAlias === null) {\n setState({ protoAlias: classState.scope.generateUidIdentifier(\"proto\") });\n const classProto = t.memberExpression(\n classState.classRef,\n t.identifier(\"prototype\"),\n );\n const protoDeclaration = t.variableDeclaration(\"var\", [\n t.variableDeclarator(classState.protoAlias, classProto),\n ]);\n\n classState.body.push(protoDeclaration);\n }\n }\n\n /**\n * Replace the constructor body of our class.\n */\n function pushConstructor(\n superReturns: NodePath<t.ReturnStatement>[],\n method: ClassConstructor,\n path: NodePath<ClassConstructor>,\n ) {\n setState({\n userConstructorPath: path,\n userConstructor: method,\n hasConstructor: true,\n superReturns,\n });\n\n const { construct } = classState;\n\n t.inheritsComments(construct, method);\n\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n construct.params = method.params;\n\n t.inherits(construct.body, method.body);\n construct.body.directives = method.body.directives;\n\n pushConstructorToBody();\n }\n\n function pushConstructorToBody() {\n if (classState.pushedConstructor) return;\n classState.pushedConstructor = true;\n\n // we haven't pushed any descriptors yet\n // @ts-expect-error todo(flow->ts) maybe remove this block - properties from condition are not used anywhere else\n if (classState.hasInstanceDescriptors || classState.hasStaticDescriptors) {\n pushDescriptors();\n }\n\n classState.body.push(classState.construct);\n\n pushInheritsToBody();\n }\n\n /**\n * Push inherits helper to body.\n */\n function pushInheritsToBody() {\n if (!classState.isDerived || classState.pushedInherits) return;\n\n const superFnId = path.scope.generateUidIdentifier(\"super\");\n\n setState({ pushedInherits: true, superFnId });\n\n // Unshift to ensure that the constructor inheritance is set up before\n // any properties can be assigned to the prototype.\n\n if (!assumptions.superIsCallableConstructor) {\n classState.body.unshift(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(\n superFnId,\n t.callExpression(addCreateSuperHelper(classState.file), [\n t.cloneNode(classState.classRef),\n ]),\n ),\n ]),\n );\n }\n\n classState.body.unshift(\n t.expressionStatement(\n t.callExpression(\n classState.file.addHelper(\n classState.isLoose ? \"inheritsLoose\" : \"inherits\",\n ),\n [t.cloneNode(classState.classRef), t.cloneNode(classState.superName)],\n ),\n ),\n );\n }\n\n function extractDynamicKeys() {\n const { dynamicKeys, node, scope } = classState;\n\n for (const elem of node.body.body) {\n if (!t.isClassMethod(elem) || !elem.computed) continue;\n if (scope.isPure(elem.key, /* constants only*/ true)) continue;\n\n const id = scope.generateUidIdentifierBasedOnNode(elem.key);\n dynamicKeys.set(id.name, elem.key);\n\n elem.key = id;\n }\n }\n\n function setupClosureParamsArgs() {\n const { superName, dynamicKeys } = classState;\n const closureParams = [];\n const closureArgs = [];\n\n if (classState.isDerived) {\n let arg = t.cloneNode(superName);\n if (classState.extendsNative) {\n arg = t.callExpression(classState.file.addHelper(\"wrapNativeSuper\"), [\n arg,\n ]);\n annotateAsPure(arg);\n }\n\n const param =\n classState.scope.generateUidIdentifierBasedOnNode(superName);\n\n closureParams.push(param);\n closureArgs.push(arg);\n\n setState({ superName: t.cloneNode(param) });\n }\n\n for (const [name, value] of dynamicKeys) {\n closureParams.push(t.identifier(name));\n closureArgs.push(value);\n }\n\n return { closureParams, closureArgs };\n }\n\n function classTransformer(\n path: NodePath<t.Class>,\n file: File,\n builtinClasses: ReadonlySet<string>,\n isLoose: boolean,\n ) {\n setState({\n parent: path.parent,\n scope: path.scope,\n node: path.node,\n path,\n file,\n isLoose,\n });\n\n setState({\n classId: classState.node.id,\n // this is the name of the binding that will **always** reference the class we've constructed\n classRef: classState.node.id\n ? t.identifier(classState.node.id.name)\n : classState.scope.generateUidIdentifier(\"class\"),\n superName: classState.node.superClass,\n isDerived: !!classState.node.superClass,\n constructorBody: t.blockStatement([]),\n });\n\n setState({\n extendsNative:\n t.isIdentifier(classState.superName) &&\n builtinClasses.has(classState.superName.name) &&\n !classState.scope.hasBinding(\n classState.superName.name,\n /* noGlobals */ true,\n ),\n });\n\n const { classRef, node, constructorBody } = classState;\n\n setState({\n construct: buildConstructor(classRef, constructorBody, node),\n });\n\n extractDynamicKeys();\n\n const { body } = classState;\n const { closureParams, closureArgs } = setupClosureParamsArgs();\n\n buildBody();\n\n // make sure this class isn't directly called (with A() instead new A())\n if (!assumptions.noClassCalls) {\n constructorBody.body.unshift(\n t.expressionStatement(\n t.callExpression(classState.file.addHelper(\"classCallCheck\"), [\n t.thisExpression(),\n t.cloneNode(classState.classRef),\n ]),\n ),\n );\n }\n\n const isStrict = path.isInStrictMode();\n let constructorOnly = classState.classId && body.length === 1;\n if (constructorOnly && !isStrict) {\n for (const param of classState.construct.params) {\n // It's illegal to put a use strict directive into the body of a function\n // with non-simple parameters for some reason. So, we have to use a strict\n // wrapper function.\n if (!t.isIdentifier(param)) {\n constructorOnly = false;\n break;\n }\n }\n }\n\n const directives = constructorOnly\n ? (body[0] as t.FunctionExpression | t.FunctionDeclaration).body\n .directives\n : [];\n if (!isStrict) {\n directives.push(t.directive(t.directiveLiteral(\"use strict\")));\n }\n\n if (constructorOnly) {\n // named class with only a constructor\n const expr = t.toExpression(\n body[0] as t.FunctionExpression | t.FunctionDeclaration,\n );\n return classState.isLoose ? expr : createClassHelper([expr]);\n }\n\n let returnArg: t.Expression = t.cloneNode(classState.classRef);\n if (!classState.pushedCreateClass && !classState.isLoose) {\n returnArg = createClassHelper([returnArg]);\n }\n\n body.push(t.returnStatement(returnArg));\n const container = t.arrowFunctionExpression(\n closureParams,\n t.blockStatement(body, directives),\n );\n return t.callExpression(container, closureArgs);\n }\n\n return classTransformer(path, file, builtinClasses, isLoose);\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperFunctionName","require","_helperReplaceSupers","_helperEnvironmentVisitor","_helperOptimiseCallExpression","_core","_helperAnnotateAsPure","_inlineCreateSuperHelpers","buildConstructor","classRef","constructorBody","node","func","t","functionDeclaration","cloneNode","inherits","transformClass","path","file","builtinClasses","isLoose","assumptions","supportUnicodeId","classState","parent","undefined","scope","classId","superFnId","superName","superReturns","isDerived","extendsNative","construct","userConstructor","userConstructorPath","hasConstructor","body","superThises","pushedConstructor","pushedInherits","pushedCreateClass","protoAlias","dynamicKeys","Map","methods","instance","hasComputed","list","map","static","setState","newState","Object","assign","findThisesVisitor","traverse","visitors","merge","environmentVisitor","ThisExpression","push","createClassHelper","args","callExpression","addHelper","maybeCreateConstructor","classBodyPath","get","isClassMethod","kind","params","constructor","template","expression","ast","blockStatement","unshiftContainer","classMethod","identifier","buildBody","pushBody","verifyConstructor","pushDescriptors","classBodyPaths","isClassProperty","isClassPrivateProperty","buildCodeFrameError","decorators","isConstructor","replaceSupers","ReplaceSupers","methodPath","objectRef","superRef","constantSuper","refToPreserve","replace","ReturnStatement","getFunctionParent","isArrowFunctionExpression","pushConstructor","pushMethod","pushInheritsToBody","props","placement","length","desc","obj","objectExpression","objectProperty","key","properties","arrayExpression","nullLiteral","lastNonNullIndex","i","isNullLiteral","slice","expressionStatement","wrapSuperCall","bareSuper","thisRef","bareSuperNode","call","superIsCallableConstructor","arguments","unshift","thisExpression","isSpreadElement","isIdentifier","argument","name","callee","memberExpression","logicalExpression","optimiseCall","parentPath","isExpressionStatement","container","assignmentExpression","replaceWith","returnStatement","ref","generateDeclaredUidIdentifier","thisPath","isMemberExpression","object","bareSupers","Super","isCallExpression","guaranteedSuperBeforeFinish","find","isLoop","isConditional","wrapReturn","returnArg","thisExpr","returnParams","bodyPaths","pop","isReturnStatement","pushContainer","returnPath","processMethod","descKey","isNumericLiteral","isBigIntLiteral","stringLiteral","String","value","toComputedKey","fn","toExpression","isStringLiteral","_nameFunction","nameFunction","id","descriptor","has","set","setClassMethods","insertProtoAliasOnce","methodName","computed","isLiteral","functionExpression","generator","async","_nameFunction2","expr","inheritsComments","generateUidIdentifier","classProto","protoDeclaration","variableDeclaration","variableDeclarator","method","directives","pushConstructorToBody","hasInstanceDescriptors","hasStaticDescriptors","addCreateSuperHelper","extractDynamicKeys","elem","isPure","generateUidIdentifierBasedOnNode","setupClosureParamsArgs","closureParams","closureArgs","arg","annotateAsPure","param","classTransformer","superClass","hasBinding","noClassCalls","isStrict","isInStrictMode","constructorOnly","directive","directiveLiteral","arrowFunctionExpression"],"sources":["../src/transformClass.ts"],"sourcesContent":["import type { NodePath, Scope, Visitor } from \"@babel/traverse\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport optimiseCall from \"@babel/helper-optimise-call-expression\";\nimport { traverse, template, types as t, type File } from \"@babel/core\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\n\nimport addCreateSuperHelper from \"./inline-createSuper-helpers.ts\";\n\ntype ClassAssumptions = {\n setClassMethods: boolean;\n constantSuper: boolean;\n superIsCallableConstructor: boolean;\n noClassCalls: boolean;\n};\n\ntype ClassConstructor = t.ClassMethod & { kind: \"constructor\" };\n\nfunction buildConstructor(\n classRef: t.Identifier,\n constructorBody: t.BlockStatement,\n node: t.Class,\n) {\n const func = t.functionDeclaration(\n t.cloneNode(classRef),\n [],\n constructorBody,\n );\n t.inherits(func, node);\n return func;\n}\n\ntype Descriptor = {\n key: t.Expression;\n get?: t.Expression | null;\n set?: t.Expression | null;\n value?: t.Expression | null;\n constructor?: t.Expression | null;\n};\n\ntype State = {\n parent: t.Node;\n scope: Scope;\n node: t.Class;\n path: NodePath<t.Class>;\n file: File;\n\n classId: t.Identifier | void;\n classRef: t.Identifier;\n superFnId: t.Identifier;\n superName: t.Expression | null;\n superReturns: NodePath<t.ReturnStatement>[];\n isDerived: boolean;\n extendsNative: boolean;\n\n construct: t.FunctionDeclaration;\n constructorBody: t.BlockStatement;\n userConstructor: ClassConstructor;\n userConstructorPath: NodePath<ClassConstructor>;\n hasConstructor: boolean;\n\n body: t.Statement[];\n superThises: NodePath<t.ThisExpression>[];\n pushedConstructor: boolean;\n pushedInherits: boolean;\n pushedCreateClass: boolean;\n protoAlias: t.Identifier | null;\n isLoose: boolean;\n\n dynamicKeys: Map<string, t.Expression>;\n\n methods: {\n // 'list' is in the same order as the elements appear in the class body.\n // if there aren't computed keys, we can safely reorder class elements\n // and use 'map' to merge duplicates.\n instance: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map<string, Descriptor>;\n };\n static: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map<string, Descriptor>;\n };\n };\n};\n\ntype PropertyInfo = {\n instance: t.ObjectExpression[] | null;\n static: t.ObjectExpression[] | null;\n};\n\nexport default function transformClass(\n path: NodePath<t.Class>,\n file: File,\n builtinClasses: ReadonlySet<string>,\n isLoose: boolean,\n assumptions: ClassAssumptions,\n supportUnicodeId: boolean,\n) {\n const classState: State = {\n parent: undefined,\n scope: undefined,\n node: undefined,\n path: undefined,\n file: undefined,\n\n classId: undefined,\n classRef: undefined,\n superFnId: undefined,\n superName: null,\n superReturns: [],\n isDerived: false,\n extendsNative: false,\n\n construct: undefined,\n constructorBody: undefined,\n userConstructor: undefined,\n userConstructorPath: undefined,\n hasConstructor: false,\n\n body: [],\n superThises: [],\n pushedConstructor: false,\n pushedInherits: false,\n pushedCreateClass: false,\n protoAlias: null,\n isLoose: false,\n\n dynamicKeys: new Map(),\n\n methods: {\n instance: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n static: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n },\n };\n\n const setState = (newState: Partial<State>) => {\n Object.assign(classState, newState);\n };\n\n const findThisesVisitor = traverse.visitors.merge([\n environmentVisitor,\n {\n ThisExpression(path) {\n classState.superThises.push(path);\n },\n },\n ]);\n\n function createClassHelper(args: t.Expression[]) {\n return t.callExpression(classState.file.addHelper(\"createClass\"), args);\n }\n\n /**\n * Creates a class constructor or bail out if there is one\n */\n function maybeCreateConstructor() {\n const classBodyPath = classState.path.get(\"body\");\n for (const path of classBodyPath.get(\"body\")) {\n if (path.isClassMethod({ kind: \"constructor\" })) return;\n }\n\n let params: t.FunctionExpression[\"params\"], body;\n\n if (classState.isDerived) {\n const constructor = template.expression.ast`\n (function () {\n super(...arguments);\n })\n ` as t.FunctionExpression;\n params = constructor.params;\n body = constructor.body;\n } else {\n params = [];\n body = t.blockStatement([]);\n }\n\n classBodyPath.unshiftContainer(\n \"body\",\n t.classMethod(\"constructor\", t.identifier(\"constructor\"), params, body),\n );\n }\n\n function buildBody() {\n maybeCreateConstructor();\n pushBody();\n verifyConstructor();\n\n if (classState.userConstructor) {\n const { constructorBody, userConstructor, construct } = classState;\n\n constructorBody.body.push(...userConstructor.body.body);\n t.inherits(construct, userConstructor);\n t.inherits(constructorBody, userConstructor.body);\n }\n\n pushDescriptors();\n }\n\n function pushBody() {\n const classBodyPaths: Array<any> = classState.path.get(\"body.body\");\n\n for (const path of classBodyPaths) {\n const node = path.node;\n\n if (path.isClassProperty() || path.isClassPrivateProperty()) {\n throw path.buildCodeFrameError(\"Missing class properties transform.\");\n }\n\n if (node.decorators) {\n throw path.buildCodeFrameError(\n \"Method has decorators, put the decorator plugin before the classes one.\",\n );\n }\n\n if (t.isClassMethod(node)) {\n const isConstructor = node.kind === \"constructor\";\n\n const replaceSupers = new ReplaceSupers({\n methodPath: path,\n objectRef: classState.classRef,\n superRef: classState.superName,\n constantSuper: assumptions.constantSuper,\n file: classState.file,\n refToPreserve: classState.classRef,\n });\n\n replaceSupers.replace();\n\n const superReturns: NodePath<t.ReturnStatement>[] = [];\n path.traverse(\n traverse.visitors.merge([\n environmentVisitor,\n {\n ReturnStatement(path) {\n if (!path.getFunctionParent().isArrowFunctionExpression()) {\n superReturns.push(path);\n }\n },\n },\n ]),\n );\n\n if (isConstructor) {\n pushConstructor(superReturns, node as ClassConstructor, path);\n } else {\n pushMethod(node, path);\n }\n }\n }\n }\n\n function pushDescriptors() {\n pushInheritsToBody();\n\n const { body } = classState;\n\n const props: PropertyInfo = {\n instance: null,\n static: null,\n };\n\n for (const placement of [\"static\", \"instance\"] as const) {\n if (classState.methods[placement].list.length) {\n props[placement] = classState.methods[placement].list.map(desc => {\n const obj = t.objectExpression([\n t.objectProperty(t.identifier(\"key\"), desc.key),\n ]);\n\n for (const kind of [\"get\", \"set\", \"value\"] as const) {\n if (desc[kind] != null) {\n obj.properties.push(\n t.objectProperty(t.identifier(kind), desc[kind]),\n );\n }\n }\n\n return obj;\n });\n }\n }\n\n if (props.instance || props.static) {\n let args = [\n t.cloneNode(classState.classRef), // Constructor\n props.instance ? t.arrayExpression(props.instance) : t.nullLiteral(), // instanceDescriptors\n props.static ? t.arrayExpression(props.static) : t.nullLiteral(), // staticDescriptors\n ];\n\n let lastNonNullIndex = 0;\n for (let i = 0; i < args.length; i++) {\n if (!t.isNullLiteral(args[i])) lastNonNullIndex = i;\n }\n args = args.slice(0, lastNonNullIndex + 1);\n\n body.push(t.expressionStatement(createClassHelper(args)));\n classState.pushedCreateClass = true;\n }\n }\n\n function wrapSuperCall(\n bareSuper: NodePath<t.CallExpression>,\n superRef: t.Expression,\n thisRef: () => t.Identifier,\n body: NodePath<t.BlockStatement>,\n ) {\n const bareSuperNode = bareSuper.node;\n let call;\n\n if (assumptions.superIsCallableConstructor) {\n bareSuperNode.arguments.unshift(t.thisExpression());\n if (\n bareSuperNode.arguments.length === 2 &&\n t.isSpreadElement(bareSuperNode.arguments[1]) &&\n t.isIdentifier(bareSuperNode.arguments[1].argument, {\n name: \"arguments\",\n })\n ) {\n // special case single arguments spread\n bareSuperNode.arguments[1] = bareSuperNode.arguments[1].argument;\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"apply\"),\n );\n } else {\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"call\"),\n );\n }\n\n call = t.logicalExpression(\"||\", bareSuperNode, t.thisExpression());\n } else {\n call = optimiseCall(\n t.cloneNode(classState.superFnId),\n t.thisExpression(),\n bareSuperNode.arguments,\n false,\n );\n }\n\n if (\n bareSuper.parentPath.isExpressionStatement() &&\n bareSuper.parentPath.container === body.node.body &&\n body.node.body.length - 1 === bareSuper.parentPath.key\n ) {\n // this super call is the last statement in the body so we can just straight up\n // turn it into a return\n\n if (classState.superThises.length) {\n call = t.assignmentExpression(\"=\", thisRef(), call);\n }\n\n bareSuper.parentPath.replaceWith(t.returnStatement(call));\n } else {\n bareSuper.replaceWith(t.assignmentExpression(\"=\", thisRef(), call));\n }\n }\n\n function verifyConstructor() {\n if (!classState.isDerived) return;\n\n const path = classState.userConstructorPath;\n const body = path.get(\"body\");\n\n path.traverse(findThisesVisitor);\n\n let thisRef = function () {\n const ref = path.scope.generateDeclaredUidIdentifier(\"this\");\n thisRef = () => t.cloneNode(ref);\n return ref;\n };\n\n for (const thisPath of classState.superThises) {\n const { node, parentPath } = thisPath;\n if (parentPath.isMemberExpression({ object: node })) {\n thisPath.replaceWith(thisRef());\n continue;\n }\n thisPath.replaceWith(\n t.callExpression(classState.file.addHelper(\"assertThisInitialized\"), [\n thisRef(),\n ]),\n );\n }\n\n const bareSupers: NodePath<t.CallExpression>[] = [];\n path.traverse(\n traverse.visitors.merge([\n environmentVisitor,\n {\n Super(path) {\n const { node, parentPath } = path;\n if (parentPath.isCallExpression({ callee: node })) {\n bareSupers.unshift(parentPath);\n }\n },\n } as Visitor,\n ]),\n );\n\n let guaranteedSuperBeforeFinish = !!bareSupers.length;\n\n for (const bareSuper of bareSupers) {\n wrapSuperCall(bareSuper, classState.superName, thisRef, body);\n\n if (guaranteedSuperBeforeFinish) {\n bareSuper.find(function (parentPath) {\n // hit top so short circuit\n if (parentPath === path) {\n return true;\n }\n\n if (\n parentPath.isLoop() ||\n parentPath.isConditional() ||\n parentPath.isArrowFunctionExpression()\n ) {\n guaranteedSuperBeforeFinish = false;\n return true;\n }\n });\n }\n }\n\n let wrapReturn;\n\n if (classState.isLoose) {\n wrapReturn = (returnArg: t.Expression | void) => {\n const thisExpr = t.callExpression(\n classState.file.addHelper(\"assertThisInitialized\"),\n [thisRef()],\n );\n return returnArg\n ? t.logicalExpression(\"||\", returnArg, thisExpr)\n : thisExpr;\n };\n } else {\n wrapReturn = (returnArg: t.Expression | undefined) => {\n const returnParams: t.Expression[] = [thisRef()];\n if (returnArg != null) {\n returnParams.push(returnArg);\n }\n return t.callExpression(\n classState.file.addHelper(\"possibleConstructorReturn\"),\n returnParams,\n );\n };\n }\n\n // if we have a return as the last node in the body then we've already caught that\n // return\n const bodyPaths = body.get(\"body\");\n if (!bodyPaths.length || !bodyPaths.pop().isReturnStatement()) {\n body.pushContainer(\n \"body\",\n t.returnStatement(\n guaranteedSuperBeforeFinish ? thisRef() : wrapReturn(),\n ),\n );\n }\n\n for (const returnPath of classState.superReturns) {\n returnPath\n .get(\"argument\")\n .replaceWith(wrapReturn(returnPath.node.argument));\n }\n }\n\n /**\n * Push a method to its respective mutatorMap.\n */\n function pushMethod(node: t.ClassMethod, path?: NodePath) {\n const scope = path ? path.scope : classState.scope;\n\n if (node.kind === \"method\") {\n if (processMethod(node, scope)) return;\n }\n\n const placement = node.static ? \"static\" : \"instance\";\n const methods = classState.methods[placement];\n\n const descKey = node.kind === \"method\" ? \"value\" : node.kind;\n const key =\n t.isNumericLiteral(node.key) || t.isBigIntLiteral(node.key)\n ? t.stringLiteral(String(node.key.value))\n : t.toComputedKey(node);\n\n let fn: t.Expression = t.toExpression(node);\n\n if (t.isStringLiteral(key)) {\n // infer function name\n if (node.kind === \"method\") {\n // @ts-expect-error Fixme: we are passing a ClassMethod to nameFunction, but nameFunction\n // does not seem to support it\n fn =\n nameFunction(\n // @ts-expect-error Fixme: we are passing a ClassMethod to nameFunction, but nameFunction\n // does not seem to support it\n { id: key, node: node, scope },\n undefined,\n supportUnicodeId,\n ) ?? fn;\n }\n } else {\n // todo(flow->ts) find a way to avoid \"key as t.StringLiteral\" below which relies on this assignment\n methods.hasComputed = true;\n }\n\n let descriptor: Descriptor;\n if (\n !methods.hasComputed &&\n methods.map.has((key as t.StringLiteral).value)\n ) {\n descriptor = methods.map.get((key as t.StringLiteral).value);\n descriptor[descKey] = fn;\n\n if (descKey === \"value\") {\n descriptor.get = null;\n descriptor.set = null;\n } else {\n descriptor.value = null;\n }\n } else {\n descriptor = {\n key:\n // private name has been handled in class-properties transform\n key as t.Expression,\n [descKey]: fn,\n } as Descriptor;\n methods.list.push(descriptor);\n\n if (!methods.hasComputed) {\n methods.map.set((key as t.StringLiteral).value, descriptor);\n }\n }\n }\n\n function processMethod(node: t.ClassMethod, scope: Scope) {\n if (assumptions.setClassMethods && !node.decorators) {\n // use assignments instead of define properties for loose classes\n let { classRef } = classState;\n if (!node.static) {\n insertProtoAliasOnce();\n classRef = classState.protoAlias;\n }\n const methodName = t.memberExpression(\n t.cloneNode(classRef),\n node.key,\n node.computed || t.isLiteral(node.key),\n );\n\n let func: t.Expression = t.functionExpression(\n null,\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n node.params,\n node.body,\n node.generator,\n node.async,\n );\n t.inherits(func, node);\n\n const key = t.toComputedKey(node, node.key);\n if (t.isStringLiteral(key)) {\n // @ts-expect-error: requires strictNullCheck\n func =\n nameFunction(\n {\n node: func,\n id: key,\n scope,\n },\n undefined,\n supportUnicodeId,\n ) ?? func;\n }\n\n const expr = t.expressionStatement(\n t.assignmentExpression(\"=\", methodName, func),\n );\n t.inheritsComments(expr, node);\n classState.body.push(expr);\n return true;\n }\n\n return false;\n }\n\n function insertProtoAliasOnce() {\n if (classState.protoAlias === null) {\n setState({ protoAlias: classState.scope.generateUidIdentifier(\"proto\") });\n const classProto = t.memberExpression(\n classState.classRef,\n t.identifier(\"prototype\"),\n );\n const protoDeclaration = t.variableDeclaration(\"var\", [\n t.variableDeclarator(classState.protoAlias, classProto),\n ]);\n\n classState.body.push(protoDeclaration);\n }\n }\n\n /**\n * Replace the constructor body of our class.\n */\n function pushConstructor(\n superReturns: NodePath<t.ReturnStatement>[],\n method: ClassConstructor,\n path: NodePath<ClassConstructor>,\n ) {\n setState({\n userConstructorPath: path,\n userConstructor: method,\n hasConstructor: true,\n superReturns,\n });\n\n const { construct } = classState;\n\n t.inheritsComments(construct, method);\n\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n construct.params = method.params;\n\n t.inherits(construct.body, method.body);\n construct.body.directives = method.body.directives;\n\n pushConstructorToBody();\n }\n\n function pushConstructorToBody() {\n if (classState.pushedConstructor) return;\n classState.pushedConstructor = true;\n\n // we haven't pushed any descriptors yet\n // @ts-expect-error todo(flow->ts) maybe remove this block - properties from condition are not used anywhere else\n if (classState.hasInstanceDescriptors || classState.hasStaticDescriptors) {\n pushDescriptors();\n }\n\n classState.body.push(classState.construct);\n\n pushInheritsToBody();\n }\n\n /**\n * Push inherits helper to body.\n */\n function pushInheritsToBody() {\n if (!classState.isDerived || classState.pushedInherits) return;\n\n const superFnId = path.scope.generateUidIdentifier(\"super\");\n\n setState({ pushedInherits: true, superFnId });\n\n // Unshift to ensure that the constructor inheritance is set up before\n // any properties can be assigned to the prototype.\n\n if (!assumptions.superIsCallableConstructor) {\n classState.body.unshift(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(\n superFnId,\n t.callExpression(addCreateSuperHelper(classState.file), [\n t.cloneNode(classState.classRef),\n ]),\n ),\n ]),\n );\n }\n\n classState.body.unshift(\n t.expressionStatement(\n t.callExpression(\n classState.file.addHelper(\n classState.isLoose ? \"inheritsLoose\" : \"inherits\",\n ),\n [t.cloneNode(classState.classRef), t.cloneNode(classState.superName)],\n ),\n ),\n );\n }\n\n function extractDynamicKeys() {\n const { dynamicKeys, node, scope } = classState;\n\n for (const elem of node.body.body) {\n if (!t.isClassMethod(elem) || !elem.computed) continue;\n if (scope.isPure(elem.key, /* constants only*/ true)) continue;\n\n const id = scope.generateUidIdentifierBasedOnNode(elem.key);\n dynamicKeys.set(id.name, elem.key);\n\n elem.key = id;\n }\n }\n\n function setupClosureParamsArgs() {\n const { superName, dynamicKeys } = classState;\n const closureParams = [];\n const closureArgs = [];\n\n if (classState.isDerived) {\n let arg = t.cloneNode(superName);\n if (classState.extendsNative) {\n arg = t.callExpression(classState.file.addHelper(\"wrapNativeSuper\"), [\n arg,\n ]);\n annotateAsPure(arg);\n }\n\n const param =\n classState.scope.generateUidIdentifierBasedOnNode(superName);\n\n closureParams.push(param);\n closureArgs.push(arg);\n\n setState({ superName: t.cloneNode(param) });\n }\n\n for (const [name, value] of dynamicKeys) {\n closureParams.push(t.identifier(name));\n closureArgs.push(value);\n }\n\n return { closureParams, closureArgs };\n }\n\n function classTransformer(\n path: NodePath<t.Class>,\n file: File,\n builtinClasses: ReadonlySet<string>,\n isLoose: boolean,\n ) {\n setState({\n parent: path.parent,\n scope: path.scope,\n node: path.node,\n path,\n file,\n isLoose,\n });\n\n setState({\n classId: classState.node.id,\n // this is the name of the binding that will **always** reference the class we've constructed\n classRef: classState.node.id\n ? t.identifier(classState.node.id.name)\n : classState.scope.generateUidIdentifier(\"class\"),\n superName: classState.node.superClass,\n isDerived: !!classState.node.superClass,\n constructorBody: t.blockStatement([]),\n });\n\n setState({\n extendsNative:\n t.isIdentifier(classState.superName) &&\n builtinClasses.has(classState.superName.name) &&\n !classState.scope.hasBinding(\n classState.superName.name,\n /* noGlobals */ true,\n ),\n });\n\n const { classRef, node, constructorBody } = classState;\n\n setState({\n construct: buildConstructor(classRef, constructorBody, node),\n });\n\n extractDynamicKeys();\n\n const { body } = classState;\n const { closureParams, closureArgs } = setupClosureParamsArgs();\n\n buildBody();\n\n // make sure this class isn't directly called (with A() instead new A())\n if (!assumptions.noClassCalls) {\n constructorBody.body.unshift(\n t.expressionStatement(\n t.callExpression(classState.file.addHelper(\"classCallCheck\"), [\n t.thisExpression(),\n t.cloneNode(classState.classRef),\n ]),\n ),\n );\n }\n\n const isStrict = path.isInStrictMode();\n let constructorOnly = classState.classId && body.length === 1;\n if (constructorOnly && !isStrict) {\n for (const param of classState.construct.params) {\n // It's illegal to put a use strict directive into the body of a function\n // with non-simple parameters for some reason. So, we have to use a strict\n // wrapper function.\n if (!t.isIdentifier(param)) {\n constructorOnly = false;\n break;\n }\n }\n }\n\n const directives = constructorOnly\n ? (body[0] as t.FunctionExpression | t.FunctionDeclaration).body\n .directives\n : [];\n if (!isStrict) {\n directives.push(t.directive(t.directiveLiteral(\"use strict\")));\n }\n\n if (constructorOnly) {\n // named class with only a constructor\n const expr = t.toExpression(\n body[0] as t.FunctionExpression | t.FunctionDeclaration,\n );\n return classState.isLoose ? expr : createClassHelper([expr]);\n }\n\n let returnArg: t.Expression = t.cloneNode(classState.classRef);\n if (!classState.pushedCreateClass && !classState.isLoose) {\n returnArg = createClassHelper([returnArg]);\n }\n\n body.push(t.returnStatement(returnArg));\n const container = t.arrowFunctionExpression(\n closureParams,\n t.blockStatement(body, directives),\n );\n return t.callExpression(container, closureArgs);\n }\n\n return classTransformer(path, file, builtinClasses, isLoose);\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-classes/package.json b/node_modules/@babel/plugin-transform-classes/package.json index f9176586..d43f8f96 100644 --- a/node_modules/@babel/plugin-transform-classes/package.json +++ b/node_modules/@babel/plugin-transform-classes/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-classes", - "version": "7.22.15", + "version": "7.23.5", "description": "Compile ES2015 classes to ES5", "repository": { "type": "git", @@ -16,11 +16,11 @@ "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", "@babel/helper-compilation-targets": "^7.22.15", - "@babel/helper-environment-visitor": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-environment-visitor": "^7.22.20", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-optimise-call-expression": "^7.22.5", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.9", + "@babel/helper-replace-supers": "^7.22.20", "@babel/helper-split-export-declaration": "^7.22.6", "globals": "^11.1.0" }, @@ -31,9 +31,9 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.15", + "@babel/core": "^7.23.5", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/traverse": "^7.22.15" + "@babel/traverse": "^7.23.5" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-computed-properties/README.md b/node_modules/@babel/plugin-transform-computed-properties/README.md index d8e4fa61..397c7073 100644 --- a/node_modules/@babel/plugin-transform-computed-properties/README.md +++ b/node_modules/@babel/plugin-transform-computed-properties/README.md @@ -2,7 +2,7 @@ > Compile ES2015 computed properties to ES5 -See our website [@babel/plugin-transform-computed-properties](https://babeljs.io/docs/en/babel-plugin-transform-computed-properties) for more information. +See our website [@babel/plugin-transform-computed-properties](https://babeljs.io/docs/babel-plugin-transform-computed-properties) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-computed-properties/lib/index.js b/node_modules/@babel/plugin-transform-computed-properties/lib/index.js index 8b5d93a3..08676e2a 100644 --- a/node_modules/@babel/plugin-transform-computed-properties/lib/index.js +++ b/node_modules/@babel/plugin-transform-computed-properties/lib/index.js @@ -17,12 +17,15 @@ var _template = require("@babel/template"); `; DefineAccessorHelper._compact = true; } -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption; api.assertVersion(7); const setComputedProperties = (_api$assumption = api.assumption("setComputedProperties")) != null ? _api$assumption : options.loose; const pushComputedProps = setComputedProperties ? pushComputedPropsLoose : pushComputedPropsSpec; - function buildDefineAccessor(state, type, obj, key, fn) { + function buildDefineAccessor(state, obj, prop) { + const type = prop.kind; + const key = !prop.computed && _core.types.isIdentifier(prop.key) ? _core.types.stringLiteral(prop.key.name) : prop.key; + const fn = getValue(prop); { let helper; if (state.availableHelper("defineAccessor")) { @@ -53,29 +56,23 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { function pushAssign(objId, prop, body) { body.push(_core.types.expressionStatement(_core.types.assignmentExpression("=", _core.types.memberExpression(_core.types.cloneNode(objId), prop.key, prop.computed || _core.types.isLiteral(prop.key)), getValue(prop)))); } - function pushAccessorDefine({ - body, - computedProps, - initPropExpression, - objId, - state - }, prop) { - const kind = prop.kind; - const key = !prop.computed && _core.types.isIdentifier(prop.key) ? _core.types.stringLiteral(prop.key.name) : prop.key; - const value = getValue(prop); - if (computedProps.length === 1) { - return buildDefineAccessor(state, kind, initPropExpression, key, value); - } else { - body.push(_core.types.expressionStatement(buildDefineAccessor(state, kind, _core.types.cloneNode(objId), key, value))); - } - } function pushComputedPropsLoose(info) { - for (const prop of info.computedProps) { + const { + computedProps, + state, + initPropExpression, + objId, + body + } = info; + for (const prop of computedProps) { if (_core.types.isObjectMethod(prop) && (prop.kind === "get" || prop.kind === "set")) { - const single = pushAccessorDefine(info, prop); - if (single) return single; + if (computedProps.length === 1) { + return buildDefineAccessor(state, initPropExpression, prop); + } else { + body.push(_core.types.expressionStatement(buildDefineAccessor(state, _core.types.cloneNode(objId), prop))); + } } else { - pushAssign(_core.types.cloneNode(info.objId), prop, info.body); + pushAssign(_core.types.cloneNode(objId), prop, body); } } } @@ -86,19 +83,28 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { computedProps, state } = info; + const CHUNK_LENGTH_CAP = 10; + let currentChunk = null; + const computedPropsChunks = []; for (const prop of computedProps) { - const key = _core.types.toComputedKey(prop); - if (_core.types.isObjectMethod(prop) && (prop.kind === "get" || prop.kind === "set")) { - const single = pushAccessorDefine(info, prop); - if (single) return single; - } else { - const value = getValue(prop); - if (computedProps.length === 1) { - return _core.types.callExpression(state.addHelper("defineProperty"), [info.initPropExpression, key, value]); + if (!currentChunk || currentChunk.length === CHUNK_LENGTH_CAP) { + currentChunk = []; + computedPropsChunks.push(currentChunk); + } + currentChunk.push(prop); + } + for (const chunk of computedPropsChunks) { + const single = computedPropsChunks.length === 1; + let node = single ? info.initPropExpression : _core.types.cloneNode(objId); + for (const prop of chunk) { + if (_core.types.isObjectMethod(prop) && (prop.kind === "get" || prop.kind === "set")) { + node = buildDefineAccessor(info.state, node, prop); } else { - body.push(_core.types.expressionStatement(_core.types.callExpression(state.addHelper("defineProperty"), [_core.types.cloneNode(objId), key, value]))); + node = _core.types.callExpression(state.addHelper("defineProperty"), [node, _core.types.toComputedKey(prop), getValue(prop)]); } } + if (single) return node; + body.push(_core.types.expressionStatement(node)); } } return { @@ -148,7 +154,9 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { if (single) { path.replaceWith(single); } else { - body.push(_core.types.expressionStatement(_core.types.cloneNode(objId))); + if (setComputedProperties) { + body.push(_core.types.expressionStatement(_core.types.cloneNode(objId))); + } path.replaceWithMultiple(body); } } @@ -156,6 +164,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-computed-properties/lib/index.js.map b/node_modules/@babel/plugin-transform-computed-properties/lib/index.js.map index fb00d72c..3e199eb2 100644 --- a/node_modules/@babel/plugin-transform-computed-properties/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-computed-properties/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_core","require","_helperPluginUtils","_template","DefineAccessorHelper","template","expression","ast","_compact","_default","declare","api","options","_api$assumption","assertVersion","setComputedProperties","assumption","loose","pushComputedProps","pushComputedPropsLoose","pushComputedPropsSpec","buildDefineAccessor","state","type","obj","key","fn","helper","availableHelper","addHelper","file","get","id","scope","generateUidIdentifier","push","init","set","t","cloneNode","callExpression","stringLiteral","getValue","prop","isObjectProperty","value","isObjectMethod","functionExpression","params","body","generator","async","pushAssign","objId","expressionStatement","assignmentExpression","memberExpression","computed","isLiteral","pushAccessorDefine","computedProps","initPropExpression","kind","isIdentifier","name","length","info","single","toComputedKey","visitor","ObjectExpression","exit","path","node","parent","hasComputed","properties","initProps","foundComputed","isSpreadElement","generateUidIdentifierBasedOnNode","objectExpression","variableDeclaration","variableDeclarator","replaceWith","replaceWithMultiple","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { PluginPass } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport template from \"@babel/template\";\nimport type { Scope } from \"@babel/traverse\";\n\nexport interface Options {\n loose?: boolean;\n}\n\ntype PropertyInfo = {\n scope: Scope;\n objId: t.Identifier;\n body: t.Statement[];\n computedProps: t.ObjectMember[];\n initPropExpression: t.ObjectExpression;\n state: PluginPass;\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var DefineAccessorHelper = template.expression.ast`\n function (type, obj, key, fn) {\n var desc = { configurable: true, enumerable: true };\n desc[type] = fn;\n return Object.defineProperty(obj, key, desc);\n }\n `;\n // @ts-expect-error undocumented _compact node property\n DefineAccessorHelper._compact = true;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const setComputedProperties =\n api.assumption(\"setComputedProperties\") ?? options.loose;\n\n const pushComputedProps = setComputedProperties\n ? pushComputedPropsLoose\n : pushComputedPropsSpec;\n\n function buildDefineAccessor(\n state: PluginPass,\n type: \"get\" | \"set\",\n obj: t.Expression,\n key: t.Expression,\n fn: t.Expression,\n ) {\n if (process.env.BABEL_8_BREAKING) {\n return t.callExpression(state.addHelper(\"defineAccessor\"), [\n t.stringLiteral(type),\n obj,\n key,\n fn,\n ]);\n } else {\n let helper: t.Identifier;\n if (state.availableHelper(\"defineAccessor\")) {\n helper = state.addHelper(\"defineAccessor\");\n } else {\n // Fallback for @babel/helpers <= 7.20.6, manually add helper function\n const file = state.file;\n helper = file.get(\"fallbackDefineAccessorHelper\");\n if (!helper) {\n const id = file.scope.generateUidIdentifier(\"defineAccessor\");\n file.scope.push({\n id,\n init: DefineAccessorHelper,\n });\n file.set(\"fallbackDefineAccessorHelper\", (helper = id));\n }\n helper = t.cloneNode(helper);\n }\n\n return t.callExpression(helper, [t.stringLiteral(type), obj, key, fn]);\n }\n }\n\n /**\n * Get value of an object member under object expression.\n * Returns a function expression if prop is a ObjectMethod.\n *\n * @param {t.ObjectMember} prop\n * @returns t.Expression\n */\n function getValue(prop: t.ObjectMember) {\n if (t.isObjectProperty(prop)) {\n return prop.value as t.Expression;\n } else if (t.isObjectMethod(prop)) {\n return t.functionExpression(\n null,\n prop.params,\n prop.body,\n prop.generator,\n prop.async,\n );\n }\n }\n\n function pushAssign(\n objId: t.Identifier,\n prop: t.ObjectMember,\n body: t.Statement[],\n ) {\n body.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.cloneNode(objId),\n prop.key,\n prop.computed || t.isLiteral(prop.key),\n ),\n getValue(prop),\n ),\n ),\n );\n }\n\n function pushAccessorDefine(\n { body, computedProps, initPropExpression, objId, state }: PropertyInfo,\n prop: t.ObjectMethod,\n ) {\n const kind = prop.kind as \"get\" | \"set\";\n const key =\n !prop.computed && t.isIdentifier(prop.key)\n ? t.stringLiteral(prop.key.name)\n : prop.key;\n const value = getValue(prop);\n\n if (computedProps.length === 1) {\n return buildDefineAccessor(state, kind, initPropExpression, key, value);\n } else {\n body.push(\n t.expressionStatement(\n buildDefineAccessor(state, kind, t.cloneNode(objId), key, value),\n ),\n );\n }\n }\n\n function pushComputedPropsLoose(info: PropertyInfo) {\n for (const prop of info.computedProps) {\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n const single = pushAccessorDefine(info, prop);\n if (single) return single;\n } else {\n pushAssign(t.cloneNode(info.objId), prop, info.body);\n }\n }\n }\n\n function pushComputedPropsSpec(info: PropertyInfo) {\n const { objId, body, computedProps, state } = info;\n\n for (const prop of computedProps) {\n // PrivateName must not be in ObjectExpression\n const key = t.toComputedKey(prop) as t.Expression;\n\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n const single = pushAccessorDefine(info, prop);\n if (single) return single;\n } else {\n // the value of ObjectProperty in ObjectExpression must be an expression\n const value = getValue(prop);\n if (computedProps.length === 1) {\n return t.callExpression(state.addHelper(\"defineProperty\"), [\n info.initPropExpression,\n key,\n value,\n ]);\n } else {\n body.push(\n t.expressionStatement(\n t.callExpression(state.addHelper(\"defineProperty\"), [\n t.cloneNode(objId),\n key,\n value,\n ]),\n ),\n );\n }\n }\n }\n }\n\n return {\n name: \"transform-computed-properties\",\n\n visitor: {\n ObjectExpression: {\n exit(path, state) {\n const { node, parent, scope } = path;\n let hasComputed = false;\n for (const prop of node.properties) {\n // @ts-expect-error SpreadElement must not have computed property\n hasComputed = prop.computed === true;\n if (hasComputed) break;\n }\n if (!hasComputed) return;\n\n // put all getters/setters into the first object expression as well as all initialisers up\n // to the first computed property\n\n const initProps: t.ObjectMember[] = [];\n const computedProps: t.ObjectMember[] = [];\n let foundComputed = false;\n\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n continue;\n }\n if (prop.computed) {\n foundComputed = true;\n }\n\n if (foundComputed) {\n computedProps.push(prop);\n } else {\n initProps.push(prop);\n }\n }\n\n const objId = scope.generateUidIdentifierBasedOnNode(parent);\n const initPropExpression = t.objectExpression(initProps);\n const body = [];\n\n body.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(objId, initPropExpression),\n ]),\n );\n\n const single = pushComputedProps({\n scope,\n objId,\n body,\n computedProps,\n initPropExpression,\n state,\n });\n\n if (single) {\n path.replaceWith(single);\n } else {\n body.push(t.expressionStatement(t.cloneNode(objId)));\n path.replaceWithMultiple(body);\n }\n },\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_core","require","_helperPluginUtils","_template","DefineAccessorHelper","template","expression","ast","_compact","_default","exports","default","declare","api","options","_api$assumption","assertVersion","setComputedProperties","assumption","loose","pushComputedProps","pushComputedPropsLoose","pushComputedPropsSpec","buildDefineAccessor","state","obj","prop","type","kind","key","computed","t","isIdentifier","stringLiteral","name","fn","getValue","helper","availableHelper","addHelper","file","get","id","scope","generateUidIdentifier","push","init","set","cloneNode","callExpression","isObjectProperty","value","isObjectMethod","functionExpression","params","body","generator","async","pushAssign","objId","expressionStatement","assignmentExpression","memberExpression","isLiteral","info","computedProps","initPropExpression","length","CHUNK_LENGTH_CAP","currentChunk","computedPropsChunks","chunk","single","node","toComputedKey","visitor","ObjectExpression","exit","path","parent","hasComputed","properties","initProps","foundComputed","isSpreadElement","generateUidIdentifierBasedOnNode","objectExpression","variableDeclaration","variableDeclarator","replaceWith","replaceWithMultiple"],"sources":["../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { PluginPass } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport template from \"@babel/template\";\nimport type { Scope } from \"@babel/traverse\";\n\nexport interface Options {\n loose?: boolean;\n}\n\ntype PropertyInfo = {\n scope: Scope;\n objId: t.Identifier;\n body: t.Statement[];\n computedProps: t.ObjectMember[];\n initPropExpression: t.ObjectExpression;\n state: PluginPass;\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var DefineAccessorHelper = template.expression.ast`\n function (type, obj, key, fn) {\n var desc = { configurable: true, enumerable: true };\n desc[type] = fn;\n return Object.defineProperty(obj, key, desc);\n }\n `;\n // @ts-expect-error undocumented _compact node property\n DefineAccessorHelper._compact = true;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const setComputedProperties =\n api.assumption(\"setComputedProperties\") ?? options.loose;\n\n const pushComputedProps = setComputedProperties\n ? pushComputedPropsLoose\n : pushComputedPropsSpec;\n\n function buildDefineAccessor(\n state: PluginPass,\n obj: t.Expression,\n prop: t.ObjectMethod,\n ) {\n const type = prop.kind as \"get\" | \"set\";\n const key =\n !prop.computed && t.isIdentifier(prop.key)\n ? t.stringLiteral(prop.key.name)\n : prop.key;\n const fn = getValue(prop);\n if (process.env.BABEL_8_BREAKING) {\n return t.callExpression(state.addHelper(\"defineAccessor\"), [\n t.stringLiteral(type),\n obj,\n key,\n fn,\n ]);\n } else {\n let helper: t.Identifier;\n if (state.availableHelper(\"defineAccessor\")) {\n helper = state.addHelper(\"defineAccessor\");\n } else {\n // Fallback for @babel/helpers <= 7.20.6, manually add helper function\n const file = state.file;\n helper = file.get(\"fallbackDefineAccessorHelper\");\n if (!helper) {\n const id = file.scope.generateUidIdentifier(\"defineAccessor\");\n file.scope.push({\n id,\n init: DefineAccessorHelper,\n });\n file.set(\"fallbackDefineAccessorHelper\", (helper = id));\n }\n helper = t.cloneNode(helper);\n }\n\n return t.callExpression(helper, [t.stringLiteral(type), obj, key, fn]);\n }\n }\n\n /**\n * Get value of an object member under object expression.\n * Returns a function expression if prop is a ObjectMethod.\n *\n * @param {t.ObjectMember} prop\n * @returns t.Expression\n */\n function getValue(prop: t.ObjectMember) {\n if (t.isObjectProperty(prop)) {\n return prop.value as t.Expression;\n } else if (t.isObjectMethod(prop)) {\n return t.functionExpression(\n null,\n prop.params,\n prop.body,\n prop.generator,\n prop.async,\n );\n }\n }\n\n function pushAssign(\n objId: t.Identifier,\n prop: t.ObjectMember,\n body: t.Statement[],\n ) {\n body.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.cloneNode(objId),\n prop.key,\n prop.computed || t.isLiteral(prop.key),\n ),\n getValue(prop),\n ),\n ),\n );\n }\n\n function pushComputedPropsLoose(info: PropertyInfo) {\n const { computedProps, state, initPropExpression, objId, body } = info;\n\n for (const prop of computedProps) {\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n if (computedProps.length === 1) {\n return buildDefineAccessor(state, initPropExpression, prop);\n } else {\n body.push(\n t.expressionStatement(\n buildDefineAccessor(state, t.cloneNode(objId), prop),\n ),\n );\n }\n } else {\n pushAssign(t.cloneNode(objId), prop, body);\n }\n }\n }\n\n function pushComputedPropsSpec(info: PropertyInfo) {\n const { objId, body, computedProps, state } = info;\n\n // To prevent too deep AST structures in case of large objects\n const CHUNK_LENGTH_CAP = 10;\n\n let currentChunk: t.ObjectMember[] = null;\n const computedPropsChunks: Array<t.ObjectMember[]> = [];\n for (const prop of computedProps) {\n if (!currentChunk || currentChunk.length === CHUNK_LENGTH_CAP) {\n currentChunk = [];\n computedPropsChunks.push(currentChunk);\n }\n currentChunk.push(prop);\n }\n\n for (const chunk of computedPropsChunks) {\n const single = computedPropsChunks.length === 1;\n let node: t.Expression = single\n ? info.initPropExpression\n : t.cloneNode(objId);\n for (const prop of chunk) {\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n node = buildDefineAccessor(info.state, node, prop);\n } else {\n node = t.callExpression(state.addHelper(\"defineProperty\"), [\n node,\n // PrivateName must not be in ObjectExpression\n t.toComputedKey(prop) as t.Expression,\n // the value of ObjectProperty in ObjectExpression must be an expression\n getValue(prop),\n ]);\n }\n }\n if (single) return node;\n body.push(t.expressionStatement(node));\n }\n }\n\n return {\n name: \"transform-computed-properties\",\n\n visitor: {\n ObjectExpression: {\n exit(path, state) {\n const { node, parent, scope } = path;\n let hasComputed = false;\n for (const prop of node.properties) {\n // @ts-expect-error SpreadElement must not have computed property\n hasComputed = prop.computed === true;\n if (hasComputed) break;\n }\n if (!hasComputed) return;\n\n // put all getters/setters into the first object expression as well as all initialisers up\n // to the first computed property\n\n const initProps: t.ObjectMember[] = [];\n const computedProps: t.ObjectMember[] = [];\n let foundComputed = false;\n\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n continue;\n }\n if (prop.computed) {\n foundComputed = true;\n }\n\n if (foundComputed) {\n computedProps.push(prop);\n } else {\n initProps.push(prop);\n }\n }\n\n const objId = scope.generateUidIdentifierBasedOnNode(parent);\n const initPropExpression = t.objectExpression(initProps);\n const body = [];\n\n body.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(objId, initPropExpression),\n ]),\n );\n\n const single = pushComputedProps({\n scope,\n objId,\n body,\n computedProps,\n initPropExpression,\n state,\n });\n\n if (single) {\n path.replaceWith(single);\n } else {\n if (setComputedProperties) {\n body.push(t.expressionStatement(t.cloneNode(objId)));\n }\n path.replaceWithMultiple(body);\n }\n },\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-computed-properties/package.json b/node_modules/@babel/plugin-transform-computed-properties/package.json index 7fd0c9d9..3824dea5 100644 --- a/node_modules/@babel/plugin-transform-computed-properties/package.json +++ b/node_modules/@babel/plugin-transform-computed-properties/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-computed-properties", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile ES2015 computed properties to ES5", "repository": { "type": "git", @@ -18,13 +18,13 @@ ], "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/template": "^7.22.5" + "@babel/template": "^7.22.15" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-destructuring/lib/index.js.map b/node_modules/@babel/plugin-transform-destructuring/lib/index.js.map index 7e24dd28..88fa29a6 100644 --- a/node_modules/@babel/plugin-transform-destructuring/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-destructuring/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { Scope, NodePath } from \"@babel/traverse\";\nimport type { TraversalAncestors } from \"@babel/types\";\n\nfunction isPureVoid(node: t.Node) {\n return (\n t.isUnaryExpression(node) &&\n node.operator === \"void\" &&\n t.isPureish(node.argument)\n );\n}\n\nexport function unshiftForXStatementBody(\n statementPath: NodePath<t.ForXStatement>,\n newStatements: t.Statement[],\n) {\n statementPath.ensureBlock();\n const { scope, node } = statementPath;\n const bodyScopeBindings = statementPath.get(\"body\").scope.bindings;\n const hasShadowedBlockScopedBindings = Object.keys(bodyScopeBindings).some(\n name => scope.hasBinding(name),\n );\n\n if (hasShadowedBlockScopedBindings) {\n // handle shadowed variables referenced in computed keys:\n // var a = 0;for (const { #x: x, [a++]: y } of z) { const a = 1; }\n node.body = t.blockStatement([...newStatements, node.body]);\n } else {\n node.body.body.unshift(...newStatements);\n }\n}\n\n/**\n * Test if an ArrayPattern's elements contain any RestElements.\n */\n\nfunction hasArrayRest(pattern: t.ArrayPattern) {\n return pattern.elements.some(elem => t.isRestElement(elem));\n}\n\n/**\n * Test if an ObjectPattern's properties contain any RestElements.\n */\n\nfunction hasObjectRest(pattern: t.ObjectPattern) {\n return pattern.properties.some(prop => t.isRestElement(prop));\n}\n\ninterface UnpackableArrayExpression extends t.ArrayExpression {\n elements: (null | t.Expression)[];\n}\n\nconst STOP_TRAVERSAL = {};\n\ninterface ArrayUnpackVisitorState {\n deopt: boolean;\n bindings: Record<string, t.Identifier>;\n}\n\n// NOTE: This visitor is meant to be used via t.traverse\nconst arrayUnpackVisitor = (\n node: t.Node,\n ancestors: TraversalAncestors,\n state: ArrayUnpackVisitorState,\n) => {\n if (!ancestors.length) {\n // Top-level node: this is the array literal.\n return;\n }\n\n if (\n t.isIdentifier(node) &&\n t.isReferenced(node, ancestors[ancestors.length - 1].node) &&\n state.bindings[node.name]\n ) {\n state.deopt = true;\n throw STOP_TRAVERSAL;\n }\n};\n\nexport type DestructuringTransformerNode =\n | t.VariableDeclaration\n | t.ExpressionStatement\n | t.ReturnStatement;\n\ninterface DestructuringTransformerOption {\n blockHoist?: number;\n operator?: t.AssignmentExpression[\"operator\"];\n nodes?: DestructuringTransformerNode[];\n kind?: t.VariableDeclaration[\"kind\"];\n scope: Scope;\n arrayLikeIsIterable: boolean;\n iterableIsArray: boolean;\n objectRestNoSymbols: boolean;\n useBuiltIns: boolean;\n addHelper: File[\"addHelper\"];\n}\nexport class DestructuringTransformer {\n private blockHoist: number;\n private operator: t.AssignmentExpression[\"operator\"];\n arrayRefSet: Set<string>;\n private nodes: DestructuringTransformerNode[];\n private scope: Scope;\n private kind: t.VariableDeclaration[\"kind\"];\n private iterableIsArray: boolean;\n private arrayLikeIsIterable: boolean;\n private objectRestNoSymbols: boolean;\n private useBuiltIns: boolean;\n private addHelper: File[\"addHelper\"];\n constructor(opts: DestructuringTransformerOption) {\n this.blockHoist = opts.blockHoist;\n this.operator = opts.operator;\n this.arrayRefSet = new Set();\n this.nodes = opts.nodes || [];\n this.scope = opts.scope;\n this.kind = opts.kind;\n this.iterableIsArray = opts.iterableIsArray;\n this.arrayLikeIsIterable = opts.arrayLikeIsIterable;\n this.objectRestNoSymbols = opts.objectRestNoSymbols;\n this.useBuiltIns = opts.useBuiltIns;\n this.addHelper = opts.addHelper;\n }\n\n getExtendsHelper() {\n return this.useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : this.addHelper(\"extends\");\n }\n\n buildVariableAssignment(\n id: t.AssignmentExpression[\"left\"],\n init: t.Expression,\n ) {\n let op = this.operator;\n if (t.isMemberExpression(id) || t.isOptionalMemberExpression(id)) op = \"=\";\n\n let node: t.ExpressionStatement | t.VariableDeclaration;\n\n if (op) {\n node = t.expressionStatement(\n t.assignmentExpression(\n op,\n id,\n t.cloneNode(init) || this.scope.buildUndefinedNode(),\n ),\n );\n } else {\n let nodeInit: t.Expression;\n\n if ((this.kind === \"const\" || this.kind === \"using\") && init === null) {\n nodeInit = this.scope.buildUndefinedNode();\n } else {\n nodeInit = t.cloneNode(init);\n }\n\n node = t.variableDeclaration(this.kind, [\n t.variableDeclarator(id as t.LVal, nodeInit),\n ]);\n }\n\n //@ts-expect-error(todo): document block hoist property\n node._blockHoist = this.blockHoist;\n\n return node;\n }\n\n buildVariableDeclaration(id: t.Identifier, init: t.Expression) {\n const declar = t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.cloneNode(id), t.cloneNode(init)),\n ]);\n // @ts-expect-error todo(flow->ts): avoid mutations\n declar._blockHoist = this.blockHoist;\n return declar;\n }\n\n push(id: t.LVal, _init: t.Expression | null) {\n const init = t.cloneNode(_init);\n if (t.isObjectPattern(id)) {\n this.pushObjectPattern(id, init);\n } else if (t.isArrayPattern(id)) {\n this.pushArrayPattern(id, init);\n } else if (t.isAssignmentPattern(id)) {\n this.pushAssignmentPattern(id, init);\n } else {\n this.nodes.push(this.buildVariableAssignment(id, init));\n }\n }\n\n toArray(node: t.Expression, count?: boolean | number) {\n if (\n this.iterableIsArray ||\n (t.isIdentifier(node) && this.arrayRefSet.has(node.name))\n ) {\n return node;\n } else {\n return this.scope.toArray(node, count, this.arrayLikeIsIterable);\n }\n }\n\n pushAssignmentPattern(\n { left, right }: t.AssignmentPattern,\n valueRef: t.Expression | null,\n ) {\n // handle array init with void 0. This also happens when\n // the value was originally a hole.\n // const [x = 42] = [void 0,];\n // -> const x = 42;\n if (isPureVoid(valueRef)) {\n this.push(left, right);\n return;\n }\n\n // we need to assign the current value of the assignment to avoid evaluating\n // it more than once\n const tempId = this.scope.generateUidIdentifierBasedOnNode(valueRef);\n\n this.nodes.push(this.buildVariableDeclaration(tempId, valueRef));\n\n const tempConditional = t.conditionalExpression(\n t.binaryExpression(\n \"===\",\n t.cloneNode(tempId),\n this.scope.buildUndefinedNode(),\n ),\n right,\n t.cloneNode(tempId),\n );\n\n if (t.isPattern(left)) {\n let patternId;\n let node;\n\n if (\n this.kind === \"const\" ||\n this.kind === \"let\" ||\n this.kind === \"using\"\n ) {\n patternId = this.scope.generateUidIdentifier(tempId.name);\n node = this.buildVariableDeclaration(patternId, tempConditional);\n } else {\n patternId = tempId;\n\n node = t.expressionStatement(\n t.assignmentExpression(\"=\", t.cloneNode(tempId), tempConditional),\n );\n }\n\n this.nodes.push(node);\n this.push(left, patternId);\n } else {\n this.nodes.push(this.buildVariableAssignment(left, tempConditional));\n }\n }\n\n pushObjectRest(\n pattern: t.ObjectPattern,\n objRef: t.Expression,\n spreadProp: t.RestElement,\n spreadPropIndex: number,\n ) {\n const value = buildObjectExcludingKeys(\n pattern.properties.slice(0, spreadPropIndex) as t.ObjectProperty[],\n objRef,\n this.scope,\n name => this.addHelper(name),\n this.objectRestNoSymbols,\n this.useBuiltIns,\n );\n this.nodes.push(this.buildVariableAssignment(spreadProp.argument, value));\n }\n\n pushObjectProperty(prop: t.ObjectProperty, propRef: t.Expression) {\n if (t.isLiteral(prop.key)) prop.computed = true;\n\n const pattern = prop.value as t.LVal;\n const objRef = t.memberExpression(\n t.cloneNode(propRef),\n prop.key,\n prop.computed,\n );\n\n if (t.isPattern(pattern)) {\n this.push(pattern, objRef);\n } else {\n this.nodes.push(this.buildVariableAssignment(pattern, objRef));\n }\n }\n\n pushObjectPattern(pattern: t.ObjectPattern, objRef: t.Expression) {\n // https://github.com/babel/babel/issues/681\n\n if (!pattern.properties.length) {\n this.nodes.push(\n t.expressionStatement(\n t.callExpression(\n this.addHelper(\"objectDestructuringEmpty\"),\n isPureVoid(objRef) ? [] : [objRef],\n ),\n ),\n );\n return;\n }\n\n // if we have more than one properties in this pattern and the objectRef is a\n // member expression then we need to assign it to a temporary variable so it's\n // only evaluated once\n\n if (pattern.properties.length > 1 && !this.scope.isStatic(objRef)) {\n const temp = this.scope.generateUidIdentifierBasedOnNode(objRef);\n this.nodes.push(this.buildVariableDeclaration(temp, objRef));\n objRef = temp;\n }\n\n // Replace impure computed key expressions if we have a rest parameter\n if (hasObjectRest(pattern)) {\n let copiedPattern: t.ObjectPattern;\n for (let i = 0; i < pattern.properties.length; i++) {\n const prop = pattern.properties[i];\n if (t.isRestElement(prop)) {\n break;\n }\n const key = prop.key;\n if (prop.computed && !this.scope.isPure(key)) {\n const name = this.scope.generateUidIdentifierBasedOnNode(key);\n this.nodes.push(\n //@ts-expect-error PrivateName has been handled by destructuring-private\n this.buildVariableDeclaration(name, key),\n );\n if (!copiedPattern) {\n copiedPattern = pattern = {\n ...pattern,\n properties: pattern.properties.slice(),\n };\n }\n copiedPattern.properties[i] = {\n ...prop,\n key: name,\n };\n }\n }\n }\n\n for (let i = 0; i < pattern.properties.length; i++) {\n const prop = pattern.properties[i];\n if (t.isRestElement(prop)) {\n this.pushObjectRest(pattern, objRef, prop, i);\n } else {\n this.pushObjectProperty(prop, objRef);\n }\n }\n }\n\n canUnpackArrayPattern(\n pattern: t.ArrayPattern,\n arr: t.Expression,\n ): arr is UnpackableArrayExpression {\n // not an array so there's no way we can deal with this\n if (!t.isArrayExpression(arr)) return false;\n\n // pattern has less elements than the array and doesn't have a rest so some\n // elements won't be evaluated\n if (pattern.elements.length > arr.elements.length) return;\n if (\n pattern.elements.length < arr.elements.length &&\n !hasArrayRest(pattern)\n ) {\n return false;\n }\n\n for (const elem of pattern.elements) {\n // deopt on holes\n if (!elem) return false;\n\n // deopt on member expressions as they may be included in the RHS\n if (t.isMemberExpression(elem)) return false;\n }\n\n for (const elem of arr.elements) {\n // deopt on spread elements\n if (t.isSpreadElement(elem)) return false;\n\n // deopt call expressions as they might change values of LHS variables\n if (t.isCallExpression(elem)) return false;\n\n // deopt on member expressions as they may be getter/setters and have side-effects\n if (t.isMemberExpression(elem)) return false;\n }\n\n // deopt on reference to left side identifiers\n const bindings = t.getBindingIdentifiers(pattern);\n const state: ArrayUnpackVisitorState = { deopt: false, bindings };\n\n try {\n t.traverse(arr, arrayUnpackVisitor, state);\n } catch (e) {\n if (e !== STOP_TRAVERSAL) throw e;\n }\n\n return !state.deopt;\n }\n\n pushUnpackedArrayPattern(\n pattern: t.ArrayPattern,\n arr: UnpackableArrayExpression,\n ) {\n const holeToUndefined = (el: t.Expression) =>\n el ?? this.scope.buildUndefinedNode();\n\n for (let i = 0; i < pattern.elements.length; i++) {\n const elem = pattern.elements[i];\n if (t.isRestElement(elem)) {\n this.push(\n elem.argument,\n t.arrayExpression(arr.elements.slice(i).map(holeToUndefined)),\n );\n } else {\n this.push(elem, holeToUndefined(arr.elements[i]));\n }\n }\n }\n\n pushArrayPattern(pattern: t.ArrayPattern, arrayRef: t.Expression | null) {\n if (arrayRef === null) {\n this.nodes.push(\n t.expressionStatement(\n t.callExpression(this.addHelper(\"objectDestructuringEmpty\"), []),\n ),\n );\n return;\n }\n if (!pattern.elements) return;\n\n // optimise basic array destructuring of an array expression\n //\n // we can't do this to a pattern of unequal size to it's right hand\n // array expression as then there will be values that won't be evaluated\n //\n // eg: let [a, b] = [1, 2];\n\n if (this.canUnpackArrayPattern(pattern, arrayRef)) {\n this.pushUnpackedArrayPattern(pattern, arrayRef);\n return;\n }\n\n // if we have a rest then we need all the elements so don't tell\n // `scope.toArray` to only get a certain amount\n\n const count = !hasArrayRest(pattern) && pattern.elements.length;\n\n // so we need to ensure that the `arrayRef` is an array, `scope.toArray` will\n // return a locally bound identifier if it's been inferred to be an array,\n // otherwise it'll be a call to a helper that will ensure it's one\n\n const toArray = this.toArray(arrayRef, count);\n\n if (t.isIdentifier(toArray)) {\n // we've been given an identifier so it must have been inferred to be an\n // array\n arrayRef = toArray;\n } else {\n arrayRef = this.scope.generateUidIdentifierBasedOnNode(arrayRef);\n this.arrayRefSet.add(arrayRef.name);\n this.nodes.push(this.buildVariableDeclaration(arrayRef, toArray));\n }\n\n for (let i = 0; i < pattern.elements.length; i++) {\n const elem = pattern.elements[i];\n\n // hole\n if (!elem) continue;\n\n let elemRef;\n\n if (t.isRestElement(elem)) {\n elemRef = this.toArray(arrayRef);\n elemRef = t.callExpression(\n t.memberExpression(elemRef, t.identifier(\"slice\")),\n [t.numericLiteral(i)],\n );\n\n // set the element to the rest element argument since we've dealt with it\n // being a rest already\n this.push(elem.argument, elemRef);\n } else {\n elemRef = t.memberExpression(arrayRef, t.numericLiteral(i), true);\n this.push(elem, elemRef);\n }\n }\n }\n\n init(pattern: t.LVal, ref: t.Expression) {\n // trying to destructure a value that we can't evaluate more than once so we\n // need to save it to a variable\n\n if (!t.isArrayExpression(ref) && !t.isMemberExpression(ref)) {\n const memo = this.scope.maybeGenerateMemoised(ref, true);\n if (memo) {\n this.nodes.push(this.buildVariableDeclaration(memo, t.cloneNode(ref)));\n ref = memo;\n }\n }\n\n this.push(pattern, ref);\n\n return this.nodes;\n }\n}\n\ninterface ExcludingKey {\n key: t.Expression | t.PrivateName;\n computed: boolean;\n}\n\nexport function buildObjectExcludingKeys<T extends ExcludingKey>(\n excludedKeys: T[],\n objRef: t.Expression,\n scope: Scope,\n addHelper: File[\"addHelper\"],\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n): t.CallExpression {\n // get all the keys that appear in this object before the current spread\n\n const keys = [];\n let allLiteral = true;\n let hasTemplateLiteral = false;\n for (let i = 0; i < excludedKeys.length; i++) {\n const prop = excludedKeys[i];\n const key = prop.key;\n if (t.isIdentifier(key) && !prop.computed) {\n keys.push(t.stringLiteral(key.name));\n } else if (t.isTemplateLiteral(key)) {\n keys.push(t.cloneNode(key));\n hasTemplateLiteral = true;\n } else if (t.isLiteral(key)) {\n // @ts-expect-error todo(flow->ts) NullLiteral\n keys.push(t.stringLiteral(String(key.value)));\n } else if (t.isPrivateName(key)) {\n // private key is not enumerable\n } else {\n keys.push(t.cloneNode(key));\n allLiteral = false;\n }\n }\n\n let value;\n if (keys.length === 0) {\n const extendsHelper = useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : addHelper(\"extends\");\n value = t.callExpression(extendsHelper, [\n t.objectExpression([]),\n t.sequenceExpression([\n t.callExpression(addHelper(\"objectDestructuringEmpty\"), [\n t.cloneNode(objRef),\n ]),\n t.cloneNode(objRef),\n ]),\n ]);\n } else {\n let keyExpression: t.Expression = t.arrayExpression(keys);\n\n if (!allLiteral) {\n keyExpression = t.callExpression(\n t.memberExpression(keyExpression, t.identifier(\"map\")),\n [addHelper(\"toPropertyKey\")],\n );\n } else if (!hasTemplateLiteral && !t.isProgram(scope.block)) {\n // Hoist definition of excluded keys, so that it's not created each time.\n const programScope = scope.getProgramParent();\n const id = programScope.generateUidIdentifier(\"excluded\");\n\n programScope.push({\n id,\n init: keyExpression,\n kind: \"const\",\n });\n\n keyExpression = t.cloneNode(id);\n }\n\n value = t.callExpression(\n addHelper(`objectWithoutProperties${objectRestNoSymbols ? \"Loose\" : \"\"}`),\n [t.cloneNode(objRef), keyExpression],\n );\n }\n return value;\n}\n\nexport function convertVariableDeclaration(\n path: NodePath<t.VariableDeclaration>,\n addHelper: File[\"addHelper\"],\n arrayLikeIsIterable: boolean,\n iterableIsArray: boolean,\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n) {\n const { node, scope } = path;\n\n const nodeKind = node.kind;\n const nodeLoc = node.loc;\n const nodes = [];\n\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n const patternId = declar.init;\n const pattern = declar.id;\n\n const destructuring: DestructuringTransformer =\n new DestructuringTransformer({\n // @ts-expect-error(todo): avoid internal properties access\n blockHoist: node._blockHoist,\n nodes: nodes,\n scope: scope,\n kind: node.kind,\n iterableIsArray,\n arrayLikeIsIterable,\n useBuiltIns,\n objectRestNoSymbols,\n addHelper,\n });\n\n if (t.isPattern(pattern)) {\n destructuring.init(pattern, patternId);\n\n if (+i !== node.declarations.length - 1) {\n // we aren't the last declarator so let's just make the\n // last transformed node inherit from us\n t.inherits(nodes[nodes.length - 1], declar);\n }\n } else {\n nodes.push(\n t.inherits(\n destructuring.buildVariableAssignment(pattern, patternId),\n declar,\n ),\n );\n }\n }\n\n let tail: t.VariableDeclaration | null = null;\n let nodesOut = [];\n for (const node of nodes) {\n if (t.isVariableDeclaration(node)) {\n if (tail !== null) {\n // Create a single compound declarations\n tail.declarations.push(...node.declarations);\n continue;\n } else {\n // Make sure the original node kind is used for each compound declaration\n node.kind = nodeKind;\n tail = node;\n }\n } else {\n tail = null;\n }\n // Propagate the original declaration node's location\n if (!node.loc) {\n node.loc = nodeLoc;\n }\n nodesOut.push(node);\n }\n\n if (\n nodesOut.length === 2 &&\n t.isVariableDeclaration(nodesOut[0]) &&\n t.isExpressionStatement(nodesOut[1]) &&\n t.isCallExpression(nodesOut[1].expression) &&\n nodesOut[0].declarations.length === 1\n ) {\n // This can only happen when we generate this code:\n // var _ref = DESTRUCTURED_VALUE;\n // babelHelpers.objectDestructuringEmpty(_ref);\n // Since pushing those two statements to the for loop .init will require an IIFE,\n // we can optimize them to\n // babelHelpers.objectDestructuringEmpty(DESTRUCTURED_VALUE);\n const expr = nodesOut[1].expression;\n expr.arguments = [nodesOut[0].declarations[0].init];\n nodesOut = [expr];\n } else {\n // We must keep nodes all are expressions or statements, so `replaceWithMultiple` can work.\n if (\n t.isForStatement(path.parent, { init: node }) &&\n !nodesOut.some(v => t.isVariableDeclaration(v))\n ) {\n for (let i = 0; i < nodesOut.length; i++) {\n const node: t.Node = nodesOut[i];\n if (t.isExpressionStatement(node)) {\n nodesOut[i] = node.expression;\n }\n }\n }\n }\n\n if (nodesOut.length === 1) {\n path.replaceWith(nodesOut[0]);\n } else {\n path.replaceWithMultiple(nodesOut);\n }\n scope.crawl();\n}\n\nexport function convertAssignmentExpression(\n path: NodePath<t.AssignmentExpression & { left: t.Pattern }>,\n addHelper: File[\"addHelper\"],\n arrayLikeIsIterable: boolean,\n iterableIsArray: boolean,\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n) {\n const { node, scope, parentPath } = path;\n\n const nodes: DestructuringTransformerNode[] = [];\n\n const destructuring = new DestructuringTransformer({\n operator: node.operator,\n scope: scope,\n nodes: nodes,\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n addHelper,\n });\n\n let ref: t.Identifier | void;\n if (\n (!parentPath.isExpressionStatement() &&\n !parentPath.isSequenceExpression()) ||\n path.isCompletionRecord()\n ) {\n ref = scope.generateUidIdentifierBasedOnNode(node.right, \"ref\");\n\n nodes.push(\n t.variableDeclaration(\"var\", [t.variableDeclarator(ref, node.right)]),\n );\n\n if (t.isArrayExpression(node.right)) {\n destructuring.arrayRefSet.add(ref.name);\n }\n }\n\n destructuring.init(node.left, ref || node.right);\n\n if (ref) {\n if (parentPath.isArrowFunctionExpression()) {\n path.replaceWith(t.blockStatement([]));\n nodes.push(t.returnStatement(t.cloneNode(ref)));\n } else {\n nodes.push(t.expressionStatement(t.cloneNode(ref)));\n }\n }\n\n path.replaceWithMultiple(nodes);\n scope.crawl();\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport {\n DestructuringTransformer,\n convertVariableDeclaration,\n convertAssignmentExpression,\n unshiftForXStatementBody,\n type DestructuringTransformerNode,\n} from \"./util.ts\";\nexport { buildObjectExcludingKeys, unshiftForXStatementBody } from \"./util.ts\";\nimport type { NodePath } from \"@babel/traverse\";\n\n/**\n * Test if a VariableDeclaration's declarations contains any Patterns.\n */\n\nfunction variableDeclarationHasPattern(node: t.VariableDeclaration) {\n for (const declar of node.declarations) {\n if (t.isPattern(declar.id)) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Options {\n allowArrayLike?: boolean;\n loose?: boolean;\n useBuiltIns?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const { useBuiltIns = false } = options;\n\n const iterableIsArray =\n api.assumption(\"iterableIsArray\") ?? options.loose ?? false;\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\") ?? false;\n const objectRestNoSymbols =\n api.assumption(\"objectRestNoSymbols\") ?? options.loose ?? false;\n\n return {\n name: \"transform-destructuring\",\n\n visitor: {\n ExportNamedDeclaration(path) {\n const declaration = path.get(\"declaration\");\n if (!declaration.isVariableDeclaration()) return;\n if (!variableDeclarationHasPattern(declaration.node)) return;\n\n const specifiers = [];\n\n for (const name of Object.keys(path.getOuterBindingIdentifiers())) {\n specifiers.push(\n t.exportSpecifier(t.identifier(name), t.identifier(name)),\n );\n }\n\n // Split the declaration and export list into two declarations so that the variable\n // declaration can be split up later without needing to worry about not being a\n // top-level statement.\n path.replaceWith(declaration.node);\n path.insertAfter(t.exportNamedDeclaration(null, specifiers));\n path.scope.crawl();\n },\n\n ForXStatement(path: NodePath<t.ForXStatement>) {\n const { node, scope } = path;\n const left = node.left;\n\n if (t.isPattern(left)) {\n // for ({ length: k } in { abc: 3 });\n\n const temp = scope.generateUidIdentifier(\"ref\");\n\n node.left = t.variableDeclaration(\"var\", [\n t.variableDeclarator(temp),\n ]);\n\n path.ensureBlock();\n const statementBody = path.node.body.body;\n const nodes = [];\n // todo: the completion of a for statement can only be observed from\n // a do block (or eval that we don't support),\n // but the new do-expression proposal plans to ban iteration ends in the\n // do block, maybe we can get rid of this\n if (statementBody.length === 0 && path.isCompletionRecord()) {\n nodes.unshift(t.expressionStatement(scope.buildUndefinedNode()));\n }\n\n nodes.unshift(\n t.expressionStatement(\n t.assignmentExpression(\"=\", left, t.cloneNode(temp)),\n ),\n );\n\n unshiftForXStatementBody(path, nodes);\n scope.crawl();\n return;\n }\n\n if (!t.isVariableDeclaration(left)) return;\n\n const pattern = left.declarations[0].id;\n if (!t.isPattern(pattern)) return;\n\n const key = scope.generateUidIdentifier(\"ref\");\n node.left = t.variableDeclaration(left.kind, [\n t.variableDeclarator(key, null),\n ]);\n\n const nodes: DestructuringTransformerNode[] = [];\n\n const destructuring = new DestructuringTransformer({\n kind: left.kind,\n scope: scope,\n nodes: nodes,\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n addHelper: name => this.addHelper(name),\n });\n\n destructuring.init(pattern, key);\n\n unshiftForXStatementBody(path, nodes);\n scope.crawl();\n },\n\n CatchClause({ node, scope }) {\n const pattern = node.param;\n if (!t.isPattern(pattern)) return;\n\n const ref = scope.generateUidIdentifier(\"ref\");\n node.param = ref;\n\n const nodes: DestructuringTransformerNode[] = [];\n\n const destructuring = new DestructuringTransformer({\n kind: \"let\",\n scope: scope,\n nodes: nodes,\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n addHelper: name => this.addHelper(name),\n });\n destructuring.init(pattern, ref);\n\n node.body.body = [...nodes, ...node.body.body];\n scope.crawl();\n },\n\n AssignmentExpression(path, state) {\n if (!t.isPattern(path.node.left)) return;\n convertAssignmentExpression(\n path as NodePath<t.AssignmentExpression & { left: t.Pattern }>,\n name => state.addHelper(name),\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n );\n },\n\n VariableDeclaration(path, state) {\n const { node, parent } = path;\n if (t.isForXStatement(parent)) return;\n if (!parent || !path.container) return; // i don't know why this is necessary - TODO\n if (!variableDeclarationHasPattern(node)) return;\n convertVariableDeclaration(\n path,\n name => state.addHelper(name),\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n );\n },\n },\n };\n});\n"],"names":["isPureVoid","node","t","isUnaryExpression","operator","isPureish","argument","unshiftForXStatementBody","statementPath","newStatements","ensureBlock","scope","bodyScopeBindings","get","bindings","hasShadowedBlockScopedBindings","Object","keys","some","name","hasBinding","body","blockStatement","unshift","hasArrayRest","pattern","elements","elem","isRestElement","hasObjectRest","properties","prop","STOP_TRAVERSAL","arrayUnpackVisitor","ancestors","state","length","isIdentifier","isReferenced","deopt","DestructuringTransformer","constructor","opts","blockHoist","arrayRefSet","nodes","kind","iterableIsArray","arrayLikeIsIterable","objectRestNoSymbols","useBuiltIns","addHelper","Set","getExtendsHelper","memberExpression","identifier","buildVariableAssignment","id","init","op","isMemberExpression","isOptionalMemberExpression","expressionStatement","assignmentExpression","cloneNode","buildUndefinedNode","nodeInit","variableDeclaration","variableDeclarator","_blockHoist","buildVariableDeclaration","declar","push","_init","isObjectPattern","pushObjectPattern","isArrayPattern","pushArrayPattern","isAssignmentPattern","pushAssignmentPattern","toArray","count","has","left","right","valueRef","tempId","generateUidIdentifierBasedOnNode","tempConditional","conditionalExpression","binaryExpression","isPattern","patternId","generateUidIdentifier","pushObjectRest","objRef","spreadProp","spreadPropIndex","value","buildObjectExcludingKeys","slice","pushObjectProperty","propRef","isLiteral","key","computed","callExpression","isStatic","temp","copiedPattern","i","isPure","assign","canUnpackArrayPattern","arr","isArrayExpression","isSpreadElement","isCallExpression","getBindingIdentifiers","traverse","e","pushUnpackedArrayPattern","holeToUndefined","el","arrayExpression","map","arrayRef","add","elemRef","numericLiteral","ref","memo","maybeGenerateMemoised","excludedKeys","allLiteral","hasTemplateLiteral","stringLiteral","isTemplateLiteral","String","isPrivateName","extendsHelper","objectExpression","sequenceExpression","keyExpression","isProgram","block","programScope","getProgramParent","convertVariableDeclaration","path","nodeKind","nodeLoc","loc","declarations","destructuring","inherits","tail","nodesOut","isVariableDeclaration","isExpressionStatement","expression","expr","arguments","isForStatement","parent","v","replaceWith","replaceWithMultiple","crawl","convertAssignmentExpression","parentPath","isSequenceExpression","isCompletionRecord","isArrowFunctionExpression","returnStatement","variableDeclarationHasPattern","declare","api","options","_ref","_api$assumption","_ref2","_options$allowArrayLi","_ref3","_api$assumption2","assertVersion","assumption","loose","allowArrayLike","visitor","ExportNamedDeclaration","declaration","specifiers","getOuterBindingIdentifiers","exportSpecifier","insertAfter","exportNamedDeclaration","ForXStatement","statementBody","CatchClause","param","AssignmentExpression","VariableDeclaration","isForXStatement","container"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/util.ts","../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { Scope, NodePath } from \"@babel/traverse\";\nimport type { TraversalAncestors } from \"@babel/types\";\n\nfunction isPureVoid(node: t.Node) {\n return (\n t.isUnaryExpression(node) &&\n node.operator === \"void\" &&\n t.isPureish(node.argument)\n );\n}\n\nexport function unshiftForXStatementBody(\n statementPath: NodePath<t.ForXStatement>,\n newStatements: t.Statement[],\n) {\n statementPath.ensureBlock();\n const { scope, node } = statementPath;\n const bodyScopeBindings = statementPath.get(\"body\").scope.bindings;\n const hasShadowedBlockScopedBindings = Object.keys(bodyScopeBindings).some(\n name => scope.hasBinding(name),\n );\n\n if (hasShadowedBlockScopedBindings) {\n // handle shadowed variables referenced in computed keys:\n // var a = 0;for (const { #x: x, [a++]: y } of z) { const a = 1; }\n node.body = t.blockStatement([...newStatements, node.body]);\n } else {\n node.body.body.unshift(...newStatements);\n }\n}\n\n/**\n * Test if an ArrayPattern's elements contain any RestElements.\n */\n\nfunction hasArrayRest(pattern: t.ArrayPattern) {\n return pattern.elements.some(elem => t.isRestElement(elem));\n}\n\n/**\n * Test if an ObjectPattern's properties contain any RestElements.\n */\n\nfunction hasObjectRest(pattern: t.ObjectPattern) {\n return pattern.properties.some(prop => t.isRestElement(prop));\n}\n\ninterface UnpackableArrayExpression extends t.ArrayExpression {\n elements: (null | t.Expression)[];\n}\n\nconst STOP_TRAVERSAL = {};\n\ninterface ArrayUnpackVisitorState {\n deopt: boolean;\n bindings: Record<string, t.Identifier>;\n}\n\n// NOTE: This visitor is meant to be used via t.traverse\nconst arrayUnpackVisitor = (\n node: t.Node,\n ancestors: TraversalAncestors,\n state: ArrayUnpackVisitorState,\n) => {\n if (!ancestors.length) {\n // Top-level node: this is the array literal.\n return;\n }\n\n if (\n t.isIdentifier(node) &&\n t.isReferenced(node, ancestors[ancestors.length - 1].node) &&\n state.bindings[node.name]\n ) {\n state.deopt = true;\n throw STOP_TRAVERSAL;\n }\n};\n\nexport type DestructuringTransformerNode =\n | t.VariableDeclaration\n | t.ExpressionStatement\n | t.ReturnStatement;\n\ninterface DestructuringTransformerOption {\n blockHoist?: number;\n operator?: t.AssignmentExpression[\"operator\"];\n nodes?: DestructuringTransformerNode[];\n kind?: t.VariableDeclaration[\"kind\"];\n scope: Scope;\n arrayLikeIsIterable: boolean;\n iterableIsArray: boolean;\n objectRestNoSymbols: boolean;\n useBuiltIns: boolean;\n addHelper: File[\"addHelper\"];\n}\nexport class DestructuringTransformer {\n private blockHoist: number;\n private operator: t.AssignmentExpression[\"operator\"];\n arrayRefSet: Set<string>;\n private nodes: DestructuringTransformerNode[];\n private scope: Scope;\n private kind: t.VariableDeclaration[\"kind\"];\n private iterableIsArray: boolean;\n private arrayLikeIsIterable: boolean;\n private objectRestNoSymbols: boolean;\n private useBuiltIns: boolean;\n private addHelper: File[\"addHelper\"];\n constructor(opts: DestructuringTransformerOption) {\n this.blockHoist = opts.blockHoist;\n this.operator = opts.operator;\n this.arrayRefSet = new Set();\n this.nodes = opts.nodes || [];\n this.scope = opts.scope;\n this.kind = opts.kind;\n this.iterableIsArray = opts.iterableIsArray;\n this.arrayLikeIsIterable = opts.arrayLikeIsIterable;\n this.objectRestNoSymbols = opts.objectRestNoSymbols;\n this.useBuiltIns = opts.useBuiltIns;\n this.addHelper = opts.addHelper;\n }\n\n getExtendsHelper() {\n return this.useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : this.addHelper(\"extends\");\n }\n\n buildVariableAssignment(\n id: t.AssignmentExpression[\"left\"],\n init: t.Expression,\n ) {\n let op = this.operator;\n if (t.isMemberExpression(id) || t.isOptionalMemberExpression(id)) op = \"=\";\n\n let node: t.ExpressionStatement | t.VariableDeclaration;\n\n if (op) {\n node = t.expressionStatement(\n t.assignmentExpression(\n op,\n id,\n t.cloneNode(init) || this.scope.buildUndefinedNode(),\n ),\n );\n } else {\n let nodeInit: t.Expression;\n\n if ((this.kind === \"const\" || this.kind === \"using\") && init === null) {\n nodeInit = this.scope.buildUndefinedNode();\n } else {\n nodeInit = t.cloneNode(init);\n }\n\n node = t.variableDeclaration(this.kind, [\n t.variableDeclarator(id as t.LVal, nodeInit),\n ]);\n }\n\n //@ts-expect-error(todo): document block hoist property\n node._blockHoist = this.blockHoist;\n\n return node;\n }\n\n buildVariableDeclaration(id: t.Identifier, init: t.Expression) {\n const declar = t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.cloneNode(id), t.cloneNode(init)),\n ]);\n // @ts-expect-error todo(flow->ts): avoid mutations\n declar._blockHoist = this.blockHoist;\n return declar;\n }\n\n push(id: t.LVal, _init: t.Expression | null) {\n const init = t.cloneNode(_init);\n if (t.isObjectPattern(id)) {\n this.pushObjectPattern(id, init);\n } else if (t.isArrayPattern(id)) {\n this.pushArrayPattern(id, init);\n } else if (t.isAssignmentPattern(id)) {\n this.pushAssignmentPattern(id, init);\n } else {\n this.nodes.push(this.buildVariableAssignment(id, init));\n }\n }\n\n toArray(node: t.Expression, count?: boolean | number) {\n if (\n this.iterableIsArray ||\n (t.isIdentifier(node) && this.arrayRefSet.has(node.name))\n ) {\n return node;\n } else {\n return this.scope.toArray(node, count, this.arrayLikeIsIterable);\n }\n }\n\n pushAssignmentPattern(\n { left, right }: t.AssignmentPattern,\n valueRef: t.Expression | null,\n ) {\n // handle array init with void 0. This also happens when\n // the value was originally a hole.\n // const [x = 42] = [void 0,];\n // -> const x = 42;\n if (isPureVoid(valueRef)) {\n this.push(left, right);\n return;\n }\n\n // we need to assign the current value of the assignment to avoid evaluating\n // it more than once\n const tempId = this.scope.generateUidIdentifierBasedOnNode(valueRef);\n\n this.nodes.push(this.buildVariableDeclaration(tempId, valueRef));\n\n const tempConditional = t.conditionalExpression(\n t.binaryExpression(\n \"===\",\n t.cloneNode(tempId),\n this.scope.buildUndefinedNode(),\n ),\n right,\n t.cloneNode(tempId),\n );\n\n if (t.isPattern(left)) {\n let patternId;\n let node;\n\n if (\n this.kind === \"const\" ||\n this.kind === \"let\" ||\n this.kind === \"using\"\n ) {\n patternId = this.scope.generateUidIdentifier(tempId.name);\n node = this.buildVariableDeclaration(patternId, tempConditional);\n } else {\n patternId = tempId;\n\n node = t.expressionStatement(\n t.assignmentExpression(\"=\", t.cloneNode(tempId), tempConditional),\n );\n }\n\n this.nodes.push(node);\n this.push(left, patternId);\n } else {\n this.nodes.push(this.buildVariableAssignment(left, tempConditional));\n }\n }\n\n pushObjectRest(\n pattern: t.ObjectPattern,\n objRef: t.Expression,\n spreadProp: t.RestElement,\n spreadPropIndex: number,\n ) {\n const value = buildObjectExcludingKeys(\n pattern.properties.slice(0, spreadPropIndex) as t.ObjectProperty[],\n objRef,\n this.scope,\n name => this.addHelper(name),\n this.objectRestNoSymbols,\n this.useBuiltIns,\n );\n this.nodes.push(this.buildVariableAssignment(spreadProp.argument, value));\n }\n\n pushObjectProperty(prop: t.ObjectProperty, propRef: t.Expression) {\n if (t.isLiteral(prop.key)) prop.computed = true;\n\n const pattern = prop.value as t.LVal;\n const objRef = t.memberExpression(\n t.cloneNode(propRef),\n prop.key,\n prop.computed,\n );\n\n if (t.isPattern(pattern)) {\n this.push(pattern, objRef);\n } else {\n this.nodes.push(this.buildVariableAssignment(pattern, objRef));\n }\n }\n\n pushObjectPattern(pattern: t.ObjectPattern, objRef: t.Expression) {\n // https://github.com/babel/babel/issues/681\n\n if (!pattern.properties.length) {\n this.nodes.push(\n t.expressionStatement(\n t.callExpression(\n this.addHelper(\"objectDestructuringEmpty\"),\n isPureVoid(objRef) ? [] : [objRef],\n ),\n ),\n );\n return;\n }\n\n // if we have more than one properties in this pattern and the objectRef is a\n // member expression then we need to assign it to a temporary variable so it's\n // only evaluated once\n\n if (pattern.properties.length > 1 && !this.scope.isStatic(objRef)) {\n const temp = this.scope.generateUidIdentifierBasedOnNode(objRef);\n this.nodes.push(this.buildVariableDeclaration(temp, objRef));\n objRef = temp;\n }\n\n // Replace impure computed key expressions if we have a rest parameter\n if (hasObjectRest(pattern)) {\n let copiedPattern: t.ObjectPattern;\n for (let i = 0; i < pattern.properties.length; i++) {\n const prop = pattern.properties[i];\n if (t.isRestElement(prop)) {\n break;\n }\n const key = prop.key;\n if (prop.computed && !this.scope.isPure(key)) {\n const name = this.scope.generateUidIdentifierBasedOnNode(key);\n this.nodes.push(\n //@ts-expect-error PrivateName has been handled by destructuring-private\n this.buildVariableDeclaration(name, key),\n );\n if (!copiedPattern) {\n copiedPattern = pattern = {\n ...pattern,\n properties: pattern.properties.slice(),\n };\n }\n copiedPattern.properties[i] = {\n ...prop,\n key: name,\n };\n }\n }\n }\n\n for (let i = 0; i < pattern.properties.length; i++) {\n const prop = pattern.properties[i];\n if (t.isRestElement(prop)) {\n this.pushObjectRest(pattern, objRef, prop, i);\n } else {\n this.pushObjectProperty(prop, objRef);\n }\n }\n }\n\n canUnpackArrayPattern(\n pattern: t.ArrayPattern,\n arr: t.Expression,\n ): arr is UnpackableArrayExpression {\n // not an array so there's no way we can deal with this\n if (!t.isArrayExpression(arr)) return false;\n\n // pattern has less elements than the array and doesn't have a rest so some\n // elements won't be evaluated\n if (pattern.elements.length > arr.elements.length) return;\n if (\n pattern.elements.length < arr.elements.length &&\n !hasArrayRest(pattern)\n ) {\n return false;\n }\n\n for (const elem of pattern.elements) {\n // deopt on holes\n if (!elem) return false;\n\n // deopt on member expressions as they may be included in the RHS\n if (t.isMemberExpression(elem)) return false;\n }\n\n for (const elem of arr.elements) {\n // deopt on spread elements\n if (t.isSpreadElement(elem)) return false;\n\n // deopt call expressions as they might change values of LHS variables\n if (t.isCallExpression(elem)) return false;\n\n // deopt on member expressions as they may be getter/setters and have side-effects\n if (t.isMemberExpression(elem)) return false;\n }\n\n // deopt on reference to left side identifiers\n const bindings = t.getBindingIdentifiers(pattern);\n const state: ArrayUnpackVisitorState = { deopt: false, bindings };\n\n try {\n t.traverse(arr, arrayUnpackVisitor, state);\n } catch (e) {\n if (e !== STOP_TRAVERSAL) throw e;\n }\n\n return !state.deopt;\n }\n\n pushUnpackedArrayPattern(\n pattern: t.ArrayPattern,\n arr: UnpackableArrayExpression,\n ) {\n const holeToUndefined = (el: t.Expression) =>\n el ?? this.scope.buildUndefinedNode();\n\n for (let i = 0; i < pattern.elements.length; i++) {\n const elem = pattern.elements[i];\n if (t.isRestElement(elem)) {\n this.push(\n elem.argument,\n t.arrayExpression(arr.elements.slice(i).map(holeToUndefined)),\n );\n } else {\n this.push(elem, holeToUndefined(arr.elements[i]));\n }\n }\n }\n\n pushArrayPattern(pattern: t.ArrayPattern, arrayRef: t.Expression | null) {\n if (arrayRef === null) {\n this.nodes.push(\n t.expressionStatement(\n t.callExpression(this.addHelper(\"objectDestructuringEmpty\"), []),\n ),\n );\n return;\n }\n if (!pattern.elements) return;\n\n // optimise basic array destructuring of an array expression\n //\n // we can't do this to a pattern of unequal size to it's right hand\n // array expression as then there will be values that won't be evaluated\n //\n // eg: let [a, b] = [1, 2];\n\n if (this.canUnpackArrayPattern(pattern, arrayRef)) {\n this.pushUnpackedArrayPattern(pattern, arrayRef);\n return;\n }\n\n // if we have a rest then we need all the elements so don't tell\n // `scope.toArray` to only get a certain amount\n\n const count = !hasArrayRest(pattern) && pattern.elements.length;\n\n // so we need to ensure that the `arrayRef` is an array, `scope.toArray` will\n // return a locally bound identifier if it's been inferred to be an array,\n // otherwise it'll be a call to a helper that will ensure it's one\n\n const toArray = this.toArray(arrayRef, count);\n\n if (t.isIdentifier(toArray)) {\n // we've been given an identifier so it must have been inferred to be an\n // array\n arrayRef = toArray;\n } else {\n arrayRef = this.scope.generateUidIdentifierBasedOnNode(arrayRef);\n this.arrayRefSet.add(arrayRef.name);\n this.nodes.push(this.buildVariableDeclaration(arrayRef, toArray));\n }\n\n for (let i = 0; i < pattern.elements.length; i++) {\n const elem = pattern.elements[i];\n\n // hole\n if (!elem) continue;\n\n let elemRef;\n\n if (t.isRestElement(elem)) {\n elemRef = this.toArray(arrayRef);\n elemRef = t.callExpression(\n t.memberExpression(elemRef, t.identifier(\"slice\")),\n [t.numericLiteral(i)],\n );\n\n // set the element to the rest element argument since we've dealt with it\n // being a rest already\n this.push(elem.argument, elemRef);\n } else {\n elemRef = t.memberExpression(arrayRef, t.numericLiteral(i), true);\n this.push(elem, elemRef);\n }\n }\n }\n\n init(pattern: t.LVal, ref: t.Expression) {\n // trying to destructure a value that we can't evaluate more than once so we\n // need to save it to a variable\n\n if (!t.isArrayExpression(ref) && !t.isMemberExpression(ref)) {\n const memo = this.scope.maybeGenerateMemoised(ref, true);\n if (memo) {\n this.nodes.push(this.buildVariableDeclaration(memo, t.cloneNode(ref)));\n ref = memo;\n }\n }\n\n this.push(pattern, ref);\n\n return this.nodes;\n }\n}\n\ninterface ExcludingKey {\n key: t.Expression | t.PrivateName;\n computed: boolean;\n}\n\nexport function buildObjectExcludingKeys<T extends ExcludingKey>(\n excludedKeys: T[],\n objRef: t.Expression,\n scope: Scope,\n addHelper: File[\"addHelper\"],\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n): t.CallExpression {\n // get all the keys that appear in this object before the current spread\n\n const keys = [];\n let allLiteral = true;\n let hasTemplateLiteral = false;\n for (let i = 0; i < excludedKeys.length; i++) {\n const prop = excludedKeys[i];\n const key = prop.key;\n if (t.isIdentifier(key) && !prop.computed) {\n keys.push(t.stringLiteral(key.name));\n } else if (t.isTemplateLiteral(key)) {\n keys.push(t.cloneNode(key));\n hasTemplateLiteral = true;\n } else if (t.isLiteral(key)) {\n // @ts-expect-error todo(flow->ts) NullLiteral\n keys.push(t.stringLiteral(String(key.value)));\n } else if (t.isPrivateName(key)) {\n // private key is not enumerable\n } else {\n keys.push(t.cloneNode(key));\n allLiteral = false;\n }\n }\n\n let value;\n if (keys.length === 0) {\n const extendsHelper = useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : addHelper(\"extends\");\n value = t.callExpression(extendsHelper, [\n t.objectExpression([]),\n t.sequenceExpression([\n t.callExpression(addHelper(\"objectDestructuringEmpty\"), [\n t.cloneNode(objRef),\n ]),\n t.cloneNode(objRef),\n ]),\n ]);\n } else {\n let keyExpression: t.Expression = t.arrayExpression(keys);\n\n if (!allLiteral) {\n keyExpression = t.callExpression(\n t.memberExpression(keyExpression, t.identifier(\"map\")),\n [addHelper(\"toPropertyKey\")],\n );\n } else if (!hasTemplateLiteral && !t.isProgram(scope.block)) {\n // Hoist definition of excluded keys, so that it's not created each time.\n const programScope = scope.getProgramParent();\n const id = programScope.generateUidIdentifier(\"excluded\");\n\n programScope.push({\n id,\n init: keyExpression,\n kind: \"const\",\n });\n\n keyExpression = t.cloneNode(id);\n }\n\n value = t.callExpression(\n addHelper(`objectWithoutProperties${objectRestNoSymbols ? \"Loose\" : \"\"}`),\n [t.cloneNode(objRef), keyExpression],\n );\n }\n return value;\n}\n\nexport function convertVariableDeclaration(\n path: NodePath<t.VariableDeclaration>,\n addHelper: File[\"addHelper\"],\n arrayLikeIsIterable: boolean,\n iterableIsArray: boolean,\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n) {\n const { node, scope } = path;\n\n const nodeKind = node.kind;\n const nodeLoc = node.loc;\n const nodes = [];\n\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n const patternId = declar.init;\n const pattern = declar.id;\n\n const destructuring: DestructuringTransformer =\n new DestructuringTransformer({\n // @ts-expect-error(todo): avoid internal properties access\n blockHoist: node._blockHoist,\n nodes: nodes,\n scope: scope,\n kind: node.kind,\n iterableIsArray,\n arrayLikeIsIterable,\n useBuiltIns,\n objectRestNoSymbols,\n addHelper,\n });\n\n if (t.isPattern(pattern)) {\n destructuring.init(pattern, patternId);\n\n if (+i !== node.declarations.length - 1) {\n // we aren't the last declarator so let's just make the\n // last transformed node inherit from us\n t.inherits(nodes[nodes.length - 1], declar);\n }\n } else {\n nodes.push(\n t.inherits(\n destructuring.buildVariableAssignment(pattern, patternId),\n declar,\n ),\n );\n }\n }\n\n let tail: t.VariableDeclaration | null = null;\n let nodesOut = [];\n for (const node of nodes) {\n if (t.isVariableDeclaration(node)) {\n if (tail !== null) {\n // Create a single compound declarations\n tail.declarations.push(...node.declarations);\n continue;\n } else {\n // Make sure the original node kind is used for each compound declaration\n node.kind = nodeKind;\n tail = node;\n }\n } else {\n tail = null;\n }\n // Propagate the original declaration node's location\n if (!node.loc) {\n node.loc = nodeLoc;\n }\n nodesOut.push(node);\n }\n\n if (\n nodesOut.length === 2 &&\n t.isVariableDeclaration(nodesOut[0]) &&\n t.isExpressionStatement(nodesOut[1]) &&\n t.isCallExpression(nodesOut[1].expression) &&\n nodesOut[0].declarations.length === 1\n ) {\n // This can only happen when we generate this code:\n // var _ref = DESTRUCTURED_VALUE;\n // babelHelpers.objectDestructuringEmpty(_ref);\n // Since pushing those two statements to the for loop .init will require an IIFE,\n // we can optimize them to\n // babelHelpers.objectDestructuringEmpty(DESTRUCTURED_VALUE);\n const expr = nodesOut[1].expression;\n expr.arguments = [nodesOut[0].declarations[0].init];\n nodesOut = [expr];\n } else {\n // We must keep nodes all are expressions or statements, so `replaceWithMultiple` can work.\n if (\n t.isForStatement(path.parent, { init: node }) &&\n !nodesOut.some(v => t.isVariableDeclaration(v))\n ) {\n for (let i = 0; i < nodesOut.length; i++) {\n const node: t.Node = nodesOut[i];\n if (t.isExpressionStatement(node)) {\n nodesOut[i] = node.expression;\n }\n }\n }\n }\n\n if (nodesOut.length === 1) {\n path.replaceWith(nodesOut[0]);\n } else {\n path.replaceWithMultiple(nodesOut);\n }\n scope.crawl();\n}\n\nexport function convertAssignmentExpression(\n path: NodePath<t.AssignmentExpression & { left: t.Pattern }>,\n addHelper: File[\"addHelper\"],\n arrayLikeIsIterable: boolean,\n iterableIsArray: boolean,\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n) {\n const { node, scope, parentPath } = path;\n\n const nodes: DestructuringTransformerNode[] = [];\n\n const destructuring = new DestructuringTransformer({\n operator: node.operator,\n scope: scope,\n nodes: nodes,\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n addHelper,\n });\n\n let ref: t.Identifier | void;\n if (\n (!parentPath.isExpressionStatement() &&\n !parentPath.isSequenceExpression()) ||\n path.isCompletionRecord()\n ) {\n ref = scope.generateUidIdentifierBasedOnNode(node.right, \"ref\");\n\n nodes.push(\n t.variableDeclaration(\"var\", [t.variableDeclarator(ref, node.right)]),\n );\n\n if (t.isArrayExpression(node.right)) {\n destructuring.arrayRefSet.add(ref.name);\n }\n }\n\n destructuring.init(node.left, ref || node.right);\n\n if (ref) {\n if (parentPath.isArrowFunctionExpression()) {\n path.replaceWith(t.blockStatement([]));\n nodes.push(t.returnStatement(t.cloneNode(ref)));\n } else {\n nodes.push(t.expressionStatement(t.cloneNode(ref)));\n }\n }\n\n path.replaceWithMultiple(nodes);\n scope.crawl();\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport {\n DestructuringTransformer,\n convertVariableDeclaration,\n convertAssignmentExpression,\n unshiftForXStatementBody,\n type DestructuringTransformerNode,\n} from \"./util.ts\";\nexport { buildObjectExcludingKeys, unshiftForXStatementBody } from \"./util.ts\";\nimport type { NodePath } from \"@babel/traverse\";\n\n/**\n * Test if a VariableDeclaration's declarations contains any Patterns.\n */\n\nfunction variableDeclarationHasPattern(node: t.VariableDeclaration) {\n for (const declar of node.declarations) {\n if (t.isPattern(declar.id)) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Options {\n allowArrayLike?: boolean;\n loose?: boolean;\n useBuiltIns?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const { useBuiltIns = false } = options;\n\n const iterableIsArray =\n api.assumption(\"iterableIsArray\") ?? options.loose ?? false;\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\") ?? false;\n const objectRestNoSymbols =\n api.assumption(\"objectRestNoSymbols\") ?? options.loose ?? false;\n\n return {\n name: \"transform-destructuring\",\n\n visitor: {\n ExportNamedDeclaration(path) {\n const declaration = path.get(\"declaration\");\n if (!declaration.isVariableDeclaration()) return;\n if (!variableDeclarationHasPattern(declaration.node)) return;\n\n const specifiers = [];\n\n for (const name of Object.keys(path.getOuterBindingIdentifiers())) {\n specifiers.push(\n t.exportSpecifier(t.identifier(name), t.identifier(name)),\n );\n }\n\n // Split the declaration and export list into two declarations so that the variable\n // declaration can be split up later without needing to worry about not being a\n // top-level statement.\n path.replaceWith(declaration.node);\n path.insertAfter(t.exportNamedDeclaration(null, specifiers));\n path.scope.crawl();\n },\n\n ForXStatement(path: NodePath<t.ForXStatement>) {\n const { node, scope } = path;\n const left = node.left;\n\n if (t.isPattern(left)) {\n // for ({ length: k } in { abc: 3 });\n\n const temp = scope.generateUidIdentifier(\"ref\");\n\n node.left = t.variableDeclaration(\"var\", [\n t.variableDeclarator(temp),\n ]);\n\n path.ensureBlock();\n const statementBody = path.node.body.body;\n const nodes = [];\n // todo: the completion of a for statement can only be observed from\n // a do block (or eval that we don't support),\n // but the new do-expression proposal plans to ban iteration ends in the\n // do block, maybe we can get rid of this\n if (statementBody.length === 0 && path.isCompletionRecord()) {\n nodes.unshift(t.expressionStatement(scope.buildUndefinedNode()));\n }\n\n nodes.unshift(\n t.expressionStatement(\n t.assignmentExpression(\"=\", left, t.cloneNode(temp)),\n ),\n );\n\n unshiftForXStatementBody(path, nodes);\n scope.crawl();\n return;\n }\n\n if (!t.isVariableDeclaration(left)) return;\n\n const pattern = left.declarations[0].id;\n if (!t.isPattern(pattern)) return;\n\n const key = scope.generateUidIdentifier(\"ref\");\n node.left = t.variableDeclaration(left.kind, [\n t.variableDeclarator(key, null),\n ]);\n\n const nodes: DestructuringTransformerNode[] = [];\n\n const destructuring = new DestructuringTransformer({\n kind: left.kind,\n scope: scope,\n nodes: nodes,\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n addHelper: name => this.addHelper(name),\n });\n\n destructuring.init(pattern, key);\n\n unshiftForXStatementBody(path, nodes);\n scope.crawl();\n },\n\n CatchClause({ node, scope }) {\n const pattern = node.param;\n if (!t.isPattern(pattern)) return;\n\n const ref = scope.generateUidIdentifier(\"ref\");\n node.param = ref;\n\n const nodes: DestructuringTransformerNode[] = [];\n\n const destructuring = new DestructuringTransformer({\n kind: \"let\",\n scope: scope,\n nodes: nodes,\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n addHelper: name => this.addHelper(name),\n });\n destructuring.init(pattern, ref);\n\n node.body.body = [...nodes, ...node.body.body];\n scope.crawl();\n },\n\n AssignmentExpression(path, state) {\n if (!t.isPattern(path.node.left)) return;\n convertAssignmentExpression(\n path as NodePath<t.AssignmentExpression & { left: t.Pattern }>,\n name => state.addHelper(name),\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n );\n },\n\n VariableDeclaration(path, state) {\n const { node, parent } = path;\n if (t.isForXStatement(parent)) return;\n if (!parent || !path.container) return; // i don't know why this is necessary - TODO\n if (!variableDeclarationHasPattern(node)) return;\n convertVariableDeclaration(\n path,\n name => state.addHelper(name),\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n );\n },\n },\n };\n});\n"],"names":["isPureVoid","node","t","isUnaryExpression","operator","isPureish","argument","unshiftForXStatementBody","statementPath","newStatements","ensureBlock","scope","bodyScopeBindings","get","bindings","hasShadowedBlockScopedBindings","Object","keys","some","name","hasBinding","body","blockStatement","unshift","hasArrayRest","pattern","elements","elem","isRestElement","hasObjectRest","properties","prop","STOP_TRAVERSAL","arrayUnpackVisitor","ancestors","state","length","isIdentifier","isReferenced","deopt","DestructuringTransformer","constructor","opts","blockHoist","arrayRefSet","nodes","kind","iterableIsArray","arrayLikeIsIterable","objectRestNoSymbols","useBuiltIns","addHelper","Set","getExtendsHelper","memberExpression","identifier","buildVariableAssignment","id","init","op","isMemberExpression","isOptionalMemberExpression","expressionStatement","assignmentExpression","cloneNode","buildUndefinedNode","nodeInit","variableDeclaration","variableDeclarator","_blockHoist","buildVariableDeclaration","declar","push","_init","isObjectPattern","pushObjectPattern","isArrayPattern","pushArrayPattern","isAssignmentPattern","pushAssignmentPattern","toArray","count","has","left","right","valueRef","tempId","generateUidIdentifierBasedOnNode","tempConditional","conditionalExpression","binaryExpression","isPattern","patternId","generateUidIdentifier","pushObjectRest","objRef","spreadProp","spreadPropIndex","value","buildObjectExcludingKeys","slice","pushObjectProperty","propRef","isLiteral","key","computed","callExpression","isStatic","temp","copiedPattern","i","isPure","assign","canUnpackArrayPattern","arr","isArrayExpression","isSpreadElement","isCallExpression","getBindingIdentifiers","traverse","e","pushUnpackedArrayPattern","holeToUndefined","el","arrayExpression","map","arrayRef","add","elemRef","numericLiteral","ref","memo","maybeGenerateMemoised","excludedKeys","allLiteral","hasTemplateLiteral","stringLiteral","isTemplateLiteral","String","isPrivateName","extendsHelper","objectExpression","sequenceExpression","keyExpression","isProgram","block","programScope","getProgramParent","convertVariableDeclaration","path","nodeKind","nodeLoc","loc","declarations","destructuring","inherits","tail","nodesOut","isVariableDeclaration","isExpressionStatement","expression","expr","arguments","isForStatement","parent","v","replaceWith","replaceWithMultiple","crawl","convertAssignmentExpression","parentPath","isSequenceExpression","isCompletionRecord","isArrowFunctionExpression","returnStatement","variableDeclarationHasPattern","declare","api","options","_ref","_api$assumption","_ref2","_options$allowArrayLi","_ref3","_api$assumption2","assertVersion","assumption","loose","allowArrayLike","visitor","ExportNamedDeclaration","declaration","specifiers","getOuterBindingIdentifiers","exportSpecifier","insertAfter","exportNamedDeclaration","ForXStatement","statementBody","CatchClause","param","AssignmentExpression","VariableDeclaration","isForXStatement","container"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-destructuring/package.json b/node_modules/@babel/plugin-transform-destructuring/package.json index 9d3c8e7e..f376f2af 100644 --- a/node_modules/@babel/plugin-transform-destructuring/package.json +++ b/node_modules/@babel/plugin-transform-destructuring/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-destructuring", - "version": "7.23.0", + "version": "7.23.3", "description": "Compile ES2015 destructuring to ES5", "repository": { "type": "git", @@ -23,9 +23,9 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/traverse": "^7.23.0" + "@babel/traverse": "^7.23.3" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-dotall-regex/README.md b/node_modules/@babel/plugin-transform-dotall-regex/README.md index 73fed7b5..ccfbb5e0 100644 --- a/node_modules/@babel/plugin-transform-dotall-regex/README.md +++ b/node_modules/@babel/plugin-transform-dotall-regex/README.md @@ -2,7 +2,7 @@ > Compile regular expressions using the `s` (`dotAll`) flag to ES5. -See our website [@babel/plugin-transform-dotall-regex](https://babeljs.io/docs/en/babel-plugin-transform-dotall-regex) for more information. +See our website [@babel/plugin-transform-dotall-regex](https://babeljs.io/docs/babel-plugin-transform-dotall-regex) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-dotall-regex/lib/index.js b/node_modules/@babel/plugin-transform-dotall-regex/lib/index.js index 22ccdaf5..8473f5da 100644 --- a/node_modules/@babel/plugin-transform-dotall-regex/lib/index.js +++ b/node_modules/@babel/plugin-transform-dotall-regex/lib/index.js @@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperCreateRegexpFeaturesPlugin = require("@babel/helper-create-regexp-features-plugin"); var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return (0, _helperCreateRegexpFeaturesPlugin.createRegExpFeaturePlugin)({ name: "transform-dotall-regex", feature: "dotAllFlag" }); }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-dotall-regex/lib/index.js.map b/node_modules/@babel/plugin-transform-dotall-regex/lib/index.js.map index dbeeb2b3..103fed6d 100644 --- a/node_modules/@babel/plugin-transform-dotall-regex/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-dotall-regex/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperCreateRegexpFeaturesPlugin","require","_helperPluginUtils","_default","declare","api","assertVersion","createRegExpFeaturePlugin","name","feature","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return createRegExpFeaturePlugin({\n name: \"transform-dotall-regex\",\n feature: \"dotAllFlag\",\n });\n});\n"],"mappings":";;;;;;AACA,IAAAA,iCAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAAqD,IAAAE,QAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO,IAAAC,2DAAyB,EAAC;IAC/BC,IAAI,EAAE,wBAAwB;IAC9BC,OAAO,EAAE;EACX,CAAC,CAAC;AACJ,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAR,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperCreateRegexpFeaturesPlugin","require","_helperPluginUtils","_default","exports","default","declare","api","assertVersion","createRegExpFeaturePlugin","name","feature"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return createRegExpFeaturePlugin({\n name: \"transform-dotall-regex\",\n feature: \"dotAllFlag\",\n });\n});\n"],"mappings":";;;;;;AACA,IAAAA,iCAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAAqD,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO,IAAAC,2DAAyB,EAAC;IAC/BC,IAAI,EAAE,wBAAwB;IAC9BC,OAAO,EAAE;EACX,CAAC,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-dotall-regex/package.json b/node_modules/@babel/plugin-transform-dotall-regex/package.json index 3c98b673..f8595886 100644 --- a/node_modules/@babel/plugin-transform-dotall-regex/package.json +++ b/node_modules/@babel/plugin-transform-dotall-regex/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-dotall-regex", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile regular expressions using the `s` (`dotAll`) flag to ES5.", "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-dotall-regex", "license": "MIT", @@ -22,14 +22,14 @@ }, "bugs": "https://github.com/babel/babel/issues", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-duplicate-keys/README.md b/node_modules/@babel/plugin-transform-duplicate-keys/README.md index a2d6673f..05ca68b6 100644 --- a/node_modules/@babel/plugin-transform-duplicate-keys/README.md +++ b/node_modules/@babel/plugin-transform-duplicate-keys/README.md @@ -2,7 +2,7 @@ > Compile objects with duplicate keys to valid strict ES5 -See our website [@babel/plugin-transform-duplicate-keys](https://babeljs.io/docs/en/babel-plugin-transform-duplicate-keys) for more information. +See our website [@babel/plugin-transform-duplicate-keys](https://babeljs.io/docs/babel-plugin-transform-duplicate-keys) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js b/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js index 5a9b47d2..ab16c120 100644 --- a/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js +++ b/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js @@ -12,7 +12,7 @@ function getName(key) { } return key.value.toString(); } -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-duplicate-keys", @@ -56,6 +56,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js.map b/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js.map index 86ce6dbb..57e1b03c 100644 --- a/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-duplicate-keys/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","getName","key","t","isIdentifier","name","value","toString","_default","declare","api","assertVersion","visitor","ObjectExpression","path","node","plainProps","properties","filter","prop","isSpreadElement","computed","alreadySeenData","Object","create","alreadySeenGetters","alreadySeenSetters","isDuplicate","kind","stringLiteral","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nfunction getName(\n key: t.Identifier | t.StringLiteral | t.NumericLiteral | t.BigIntLiteral,\n) {\n if (t.isIdentifier(key)) {\n return key.name;\n }\n return key.value.toString();\n}\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-duplicate-keys\",\n\n visitor: {\n ObjectExpression(path) {\n const { node } = path;\n const plainProps = node.properties.filter(\n prop => !t.isSpreadElement(prop) && !prop.computed,\n ) as (t.ObjectMethod | t.ObjectProperty)[];\n\n // A property is a duplicate key if:\n // * the property is a data property, and is preceded by a data,\n // getter, or setter property of the same name.\n // * the property is a getter property, and is preceded by a data or\n // getter property of the same name.\n // * the property is a setter property, and is preceded by a data or\n // setter property of the same name.\n\n const alreadySeenData = Object.create(null);\n const alreadySeenGetters = Object.create(null);\n const alreadySeenSetters = Object.create(null);\n\n for (const prop of plainProps) {\n const name = getName(\n // prop must be non-computed\n prop.key as\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n );\n let isDuplicate = false;\n // @ts-expect-error prop.kind is not defined in ObjectProperty\n switch (prop.kind) {\n case \"get\":\n if (alreadySeenData[name] || alreadySeenGetters[name]) {\n isDuplicate = true;\n }\n alreadySeenGetters[name] = true;\n break;\n case \"set\":\n if (alreadySeenData[name] || alreadySeenSetters[name]) {\n isDuplicate = true;\n }\n alreadySeenSetters[name] = true;\n break;\n default:\n if (\n alreadySeenData[name] ||\n alreadySeenGetters[name] ||\n alreadySeenSetters[name]\n ) {\n isDuplicate = true;\n }\n alreadySeenData[name] = true;\n }\n\n if (isDuplicate) {\n // Rely on the computed properties transform to split the property\n // assignment out of the object literal.\n prop.computed = true;\n prop.key = t.stringLiteral(name);\n }\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA,SAASE,OAAOA,CACdC,GAAwE,EACxE;EACA,IAAIC,WAAC,CAACC,YAAY,CAACF,GAAG,CAAC,EAAE;IACvB,OAAOA,GAAG,CAACG,IAAI;EACjB;EACA,OAAOH,GAAG,CAACI,KAAK,CAACC,QAAQ,CAAC,CAAC;AAC7B;AAAC,IAAAC,QAAA,GAEc,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLN,IAAI,EAAE,0BAA0B;IAEhCO,OAAO,EAAE;MACPC,gBAAgBA,CAACC,IAAI,EAAE;QACrB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,MAAME,UAAU,GAAGD,IAAI,CAACE,UAAU,CAACC,MAAM,CACvCC,IAAI,IAAI,CAAChB,WAAC,CAACiB,eAAe,CAACD,IAAI,CAAC,IAAI,CAACA,IAAI,CAACE,QAC5C,CAA0C;QAU1C,MAAMC,eAAe,GAAGC,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC;QAC3C,MAAMC,kBAAkB,GAAGF,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC;QAC9C,MAAME,kBAAkB,GAAGH,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC;QAE9C,KAAK,MAAML,IAAI,IAAIH,UAAU,EAAE;UAC7B,MAAMX,IAAI,GAAGJ,OAAO,CAElBkB,IAAI,CAACjB,GAKP,CAAC;UACD,IAAIyB,WAAW,GAAG,KAAK;UAEvB,QAAQR,IAAI,CAACS,IAAI;YACf,KAAK,KAAK;cACR,IAAIN,eAAe,CAACjB,IAAI,CAAC,IAAIoB,kBAAkB,CAACpB,IAAI,CAAC,EAAE;gBACrDsB,WAAW,GAAG,IAAI;cACpB;cACAF,kBAAkB,CAACpB,IAAI,CAAC,GAAG,IAAI;cAC/B;YACF,KAAK,KAAK;cACR,IAAIiB,eAAe,CAACjB,IAAI,CAAC,IAAIqB,kBAAkB,CAACrB,IAAI,CAAC,EAAE;gBACrDsB,WAAW,GAAG,IAAI;cACpB;cACAD,kBAAkB,CAACrB,IAAI,CAAC,GAAG,IAAI;cAC/B;YACF;cACE,IACEiB,eAAe,CAACjB,IAAI,CAAC,IACrBoB,kBAAkB,CAACpB,IAAI,CAAC,IACxBqB,kBAAkB,CAACrB,IAAI,CAAC,EACxB;gBACAsB,WAAW,GAAG,IAAI;cACpB;cACAL,eAAe,CAACjB,IAAI,CAAC,GAAG,IAAI;UAChC;UAEA,IAAIsB,WAAW,EAAE;YAGfR,IAAI,CAACE,QAAQ,GAAG,IAAI;YACpBF,IAAI,CAACjB,GAAG,GAAGC,WAAC,CAAC0B,aAAa,CAACxB,IAAI,CAAC;UAClC;QACF;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAyB,OAAA,CAAAC,OAAA,GAAAvB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","getName","key","t","isIdentifier","name","value","toString","_default","exports","default","declare","api","assertVersion","visitor","ObjectExpression","path","node","plainProps","properties","filter","prop","isSpreadElement","computed","alreadySeenData","Object","create","alreadySeenGetters","alreadySeenSetters","isDuplicate","kind","stringLiteral"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nfunction getName(\n key: t.Identifier | t.StringLiteral | t.NumericLiteral | t.BigIntLiteral,\n) {\n if (t.isIdentifier(key)) {\n return key.name;\n }\n return key.value.toString();\n}\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-duplicate-keys\",\n\n visitor: {\n ObjectExpression(path) {\n const { node } = path;\n const plainProps = node.properties.filter(\n prop => !t.isSpreadElement(prop) && !prop.computed,\n ) as (t.ObjectMethod | t.ObjectProperty)[];\n\n // A property is a duplicate key if:\n // * the property is a data property, and is preceded by a data,\n // getter, or setter property of the same name.\n // * the property is a getter property, and is preceded by a data or\n // getter property of the same name.\n // * the property is a setter property, and is preceded by a data or\n // setter property of the same name.\n\n const alreadySeenData = Object.create(null);\n const alreadySeenGetters = Object.create(null);\n const alreadySeenSetters = Object.create(null);\n\n for (const prop of plainProps) {\n const name = getName(\n // prop must be non-computed\n prop.key as\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n );\n let isDuplicate = false;\n // @ts-expect-error prop.kind is not defined in ObjectProperty\n switch (prop.kind) {\n case \"get\":\n if (alreadySeenData[name] || alreadySeenGetters[name]) {\n isDuplicate = true;\n }\n alreadySeenGetters[name] = true;\n break;\n case \"set\":\n if (alreadySeenData[name] || alreadySeenSetters[name]) {\n isDuplicate = true;\n }\n alreadySeenSetters[name] = true;\n break;\n default:\n if (\n alreadySeenData[name] ||\n alreadySeenGetters[name] ||\n alreadySeenSetters[name]\n ) {\n isDuplicate = true;\n }\n alreadySeenData[name] = true;\n }\n\n if (isDuplicate) {\n // Rely on the computed properties transform to split the property\n // assignment out of the object literal.\n prop.computed = true;\n prop.key = t.stringLiteral(name);\n }\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA,SAASE,OAAOA,CACdC,GAAwE,EACxE;EACA,IAAIC,WAAC,CAACC,YAAY,CAACF,GAAG,CAAC,EAAE;IACvB,OAAOA,GAAG,CAACG,IAAI;EACjB;EACA,OAAOH,GAAG,CAACI,KAAK,CAACC,QAAQ,CAAC,CAAC;AAC7B;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLR,IAAI,EAAE,0BAA0B;IAEhCS,OAAO,EAAE;MACPC,gBAAgBA,CAACC,IAAI,EAAE;QACrB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,MAAME,UAAU,GAAGD,IAAI,CAACE,UAAU,CAACC,MAAM,CACvCC,IAAI,IAAI,CAAClB,WAAC,CAACmB,eAAe,CAACD,IAAI,CAAC,IAAI,CAACA,IAAI,CAACE,QAC5C,CAA0C;QAU1C,MAAMC,eAAe,GAAGC,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC;QAC3C,MAAMC,kBAAkB,GAAGF,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC;QAC9C,MAAME,kBAAkB,GAAGH,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC;QAE9C,KAAK,MAAML,IAAI,IAAIH,UAAU,EAAE;UAC7B,MAAMb,IAAI,GAAGJ,OAAO,CAElBoB,IAAI,CAACnB,GAKP,CAAC;UACD,IAAI2B,WAAW,GAAG,KAAK;UAEvB,QAAQR,IAAI,CAACS,IAAI;YACf,KAAK,KAAK;cACR,IAAIN,eAAe,CAACnB,IAAI,CAAC,IAAIsB,kBAAkB,CAACtB,IAAI,CAAC,EAAE;gBACrDwB,WAAW,GAAG,IAAI;cACpB;cACAF,kBAAkB,CAACtB,IAAI,CAAC,GAAG,IAAI;cAC/B;YACF,KAAK,KAAK;cACR,IAAImB,eAAe,CAACnB,IAAI,CAAC,IAAIuB,kBAAkB,CAACvB,IAAI,CAAC,EAAE;gBACrDwB,WAAW,GAAG,IAAI;cACpB;cACAD,kBAAkB,CAACvB,IAAI,CAAC,GAAG,IAAI;cAC/B;YACF;cACE,IACEmB,eAAe,CAACnB,IAAI,CAAC,IACrBsB,kBAAkB,CAACtB,IAAI,CAAC,IACxBuB,kBAAkB,CAACvB,IAAI,CAAC,EACxB;gBACAwB,WAAW,GAAG,IAAI;cACpB;cACAL,eAAe,CAACnB,IAAI,CAAC,GAAG,IAAI;UAChC;UAEA,IAAIwB,WAAW,EAAE;YAGfR,IAAI,CAACE,QAAQ,GAAG,IAAI;YACpBF,IAAI,CAACnB,GAAG,GAAGC,WAAC,CAAC4B,aAAa,CAAC1B,IAAI,CAAC;UAClC;QACF;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-duplicate-keys/package.json b/node_modules/@babel/plugin-transform-duplicate-keys/package.json index 2fbc731d..2c273661 100644 --- a/node_modules/@babel/plugin-transform-duplicate-keys/package.json +++ b/node_modules/@babel/plugin-transform-duplicate-keys/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-duplicate-keys", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile objects with duplicate keys to valid strict ES5", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-dynamic-import/lib/index.js b/node_modules/@babel/plugin-transform-dynamic-import/lib/index.js index 091c5013..4bef54f2 100644 --- a/node_modules/@babel/plugin-transform-dynamic-import/lib/index.js +++ b/node_modules/@babel/plugin-transform-dynamic-import/lib/index.js @@ -18,13 +18,13 @@ Babel to transpile your imports and exports, you can use the @babel/plugin-syntax-dynamic-import plugin and let your bundler handle dynamic imports. `; -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-dynamic-import", inherits: require("@babel/plugin-syntax-dynamic-import").default, pre() { - this.file.set("@babel/plugin-proposal-dynamic-import", "7.22.11"); + this.file.set("@babel/plugin-proposal-dynamic-import", "7.23.4"); }, visitor: { Program() { @@ -36,6 +36,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-dynamic-import/lib/index.js.map b/node_modules/@babel/plugin-transform-dynamic-import/lib/index.js.map index b3523d51..7bfbaca0 100644 --- a/node_modules/@babel/plugin-transform-dynamic-import/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-dynamic-import/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","SUPPORTED_MODULES","MODULES_NOT_FOUND","_default","declare","api","assertVersion","name","inherits","default","pre","file","set","visitor","Program","modules","get","includes","Error","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nconst SUPPORTED_MODULES = [\"commonjs\", \"amd\", \"systemjs\"];\n\nconst MODULES_NOT_FOUND = `\\\n@babel/plugin-transform-dynamic-import depends on a modules\ntransform plugin. Supported plugins are:\n - @babel/plugin-transform-modules-commonjs ^7.4.0\n - @babel/plugin-transform-modules-amd ^7.4.0\n - @babel/plugin-transform-modules-systemjs ^7.4.0\n\nIf you are using Webpack or Rollup and thus don't want\nBabel to transpile your imports and exports, you can use\nthe @babel/plugin-syntax-dynamic-import plugin and let your\nbundler handle dynamic imports.\n`;\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-dynamic-import\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-dynamic-import\").default,\n\n pre() {\n // We keep using the old name, for compatibility with older\n // version of the CommonJS transform.\n this.file.set(\n \"@babel/plugin-proposal-dynamic-import\",\n PACKAGE_JSON.version,\n );\n },\n\n visitor: {\n Program() {\n const modules = this.file.get(\"@babel/plugin-transform-modules-*\");\n\n if (!SUPPORTED_MODULES.includes(modules)) {\n throw new Error(MODULES_NOT_FOUND);\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,MAAMC,iBAAiB,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;AAEzD,MAAMC,iBAAiB,GAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAAC,IAAAC,QAAA,GAEa,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,0BAA0B;IAChCC,QAAQ,EAKJR,OAAO,CAAC,qCAAqC,CAAC,CAACS,OAAO;IAE1DC,GAAGA,CAAA,EAAG;MAGJ,IAAI,CAACC,IAAI,CAACC,GAAG,CACX,uCAAuC,WAEzC,CAAC;IACH,CAAC;IAEDC,OAAO,EAAE;MACPC,OAAOA,CAAA,EAAG;QACR,MAAMC,OAAO,GAAG,IAAI,CAACJ,IAAI,CAACK,GAAG,CAAC,mCAAmC,CAAC;QAElE,IAAI,CAACf,iBAAiB,CAACgB,QAAQ,CAACF,OAAO,CAAC,EAAE;UACxC,MAAM,IAAIG,KAAK,CAAChB,iBAAiB,CAAC;QACpC;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAiB,OAAA,CAAAV,OAAA,GAAAN,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","SUPPORTED_MODULES","MODULES_NOT_FOUND","_default","exports","default","declare","api","assertVersion","name","inherits","pre","file","set","visitor","Program","modules","get","includes","Error"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nconst SUPPORTED_MODULES = [\"commonjs\", \"amd\", \"systemjs\"];\n\nconst MODULES_NOT_FOUND = `\\\n@babel/plugin-transform-dynamic-import depends on a modules\ntransform plugin. Supported plugins are:\n - @babel/plugin-transform-modules-commonjs ^7.4.0\n - @babel/plugin-transform-modules-amd ^7.4.0\n - @babel/plugin-transform-modules-systemjs ^7.4.0\n\nIf you are using Webpack or Rollup and thus don't want\nBabel to transpile your imports and exports, you can use\nthe @babel/plugin-syntax-dynamic-import plugin and let your\nbundler handle dynamic imports.\n`;\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-dynamic-import\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-dynamic-import\").default,\n\n pre() {\n // We keep using the old name, for compatibility with older\n // version of the CommonJS transform.\n this.file.set(\n \"@babel/plugin-proposal-dynamic-import\",\n PACKAGE_JSON.version,\n );\n },\n\n visitor: {\n Program() {\n const modules = this.file.get(\"@babel/plugin-transform-modules-*\");\n\n if (!SUPPORTED_MODULES.includes(modules)) {\n throw new Error(MODULES_NOT_FOUND);\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,MAAMC,iBAAiB,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,UAAU,CAAC;AAEzD,MAAMC,iBAAiB,GAAI;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEa,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,0BAA0B;IAChCC,QAAQ,EAKFV,OAAO,CAAC,qCAAqC,CAAC,CAACK,OAAO;IAE5DM,GAAGA,CAAA,EAAG;MAGJ,IAAI,CAACC,IAAI,CAACC,GAAG,CACX,uCAAuC,UAEzC,CAAC;IACH,CAAC;IAEDC,OAAO,EAAE;MACPC,OAAOA,CAAA,EAAG;QACR,MAAMC,OAAO,GAAG,IAAI,CAACJ,IAAI,CAACK,GAAG,CAAC,mCAAmC,CAAC;QAElE,IAAI,CAAChB,iBAAiB,CAACiB,QAAQ,CAACF,OAAO,CAAC,EAAE;UACxC,MAAM,IAAIG,KAAK,CAACjB,iBAAiB,CAAC;QACpC;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-dynamic-import/package.json b/node_modules/@babel/plugin-transform-dynamic-import/package.json index 80372dbf..cd29f79b 100644 --- a/node_modules/@babel/plugin-transform-dynamic-import/package.json +++ b/node_modules/@babel/plugin-transform-dynamic-import/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-dynamic-import", - "version": "7.22.11", + "version": "7.23.4", "description": "Transform import() expressions", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.11", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-exponentiation-operator/README.md b/node_modules/@babel/plugin-transform-exponentiation-operator/README.md index fd4de007..4c3899f2 100644 --- a/node_modules/@babel/plugin-transform-exponentiation-operator/README.md +++ b/node_modules/@babel/plugin-transform-exponentiation-operator/README.md @@ -2,7 +2,7 @@ > Compile exponentiation operator to ES5 -See our website [@babel/plugin-transform-exponentiation-operator](https://babeljs.io/docs/en/babel-plugin-transform-exponentiation-operator) for more information. +See our website [@babel/plugin-transform-exponentiation-operator](https://babeljs.io/docs/babel-plugin-transform-exponentiation-operator) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-exponentiation-operator/lib/index.js b/node_modules/@babel/plugin-transform-exponentiation-operator/lib/index.js index 9c94a4db..c7869deb 100644 --- a/node_modules/@babel/plugin-transform-exponentiation-operator/lib/index.js +++ b/node_modules/@babel/plugin-transform-exponentiation-operator/lib/index.js @@ -7,7 +7,7 @@ exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _helperBuilderBinaryAssignmentOperatorVisitor = require("@babel/helper-builder-binary-assignment-operator-visitor"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-exponentiation-operator", @@ -19,6 +19,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { }) }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-exponentiation-operator/lib/index.js.map b/node_modules/@babel/plugin-transform-exponentiation-operator/lib/index.js.map index e2a688f2..2b5e384d 100644 --- a/node_modules/@babel/plugin-transform-exponentiation-operator/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-exponentiation-operator/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperBuilderBinaryAssignmentOperatorVisitor","_core","_default","declare","api","assertVersion","name","visitor","build","operator","left","right","t","callExpression","memberExpression","identifier","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport build from \"@babel/helper-builder-binary-assignment-operator-visitor\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-exponentiation-operator\",\n\n visitor: build({\n operator: \"**\",\n\n build(left, right) {\n return t.callExpression(\n t.memberExpression(t.identifier(\"Math\"), t.identifier(\"pow\")),\n [\n // left can be PrivateName only if operator is `\"in\"`\n left as t.Expression,\n right,\n ],\n );\n },\n }),\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,6CAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAAyC,IAAAG,QAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,mCAAmC;IAEzCC,OAAO,EAAE,IAAAC,qDAAK,EAAC;MACbC,QAAQ,EAAE,IAAI;MAEdD,KAAKA,CAACE,IAAI,EAAEC,KAAK,EAAE;QACjB,OAAOC,WAAC,CAACC,cAAc,CACrBD,WAAC,CAACE,gBAAgB,CAACF,WAAC,CAACG,UAAU,CAAC,MAAM,CAAC,EAAEH,WAAC,CAACG,UAAU,CAAC,KAAK,CAAC,CAAC,EAC7D,CAEEL,IAAI,EACJC,KAAK,CAET,CAAC;MACH;IACF,CAAC;EACH,CAAC;AACH,CAAC,CAAC;AAAAK,OAAA,CAAAC,OAAA,GAAAf,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperBuilderBinaryAssignmentOperatorVisitor","_core","_default","exports","default","declare","api","assertVersion","name","visitor","build","operator","left","right","t","callExpression","memberExpression","identifier"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport build from \"@babel/helper-builder-binary-assignment-operator-visitor\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-exponentiation-operator\",\n\n visitor: build({\n operator: \"**\",\n\n build(left, right) {\n return t.callExpression(\n t.memberExpression(t.identifier(\"Math\"), t.identifier(\"pow\")),\n [\n // left can be PrivateName only if operator is `\"in\"`\n left as t.Expression,\n right,\n ],\n );\n },\n }),\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,6CAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAAyC,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,mCAAmC;IAEzCC,OAAO,EAAE,IAAAC,qDAAK,EAAC;MACbC,QAAQ,EAAE,IAAI;MAEdD,KAAKA,CAACE,IAAI,EAAEC,KAAK,EAAE;QACjB,OAAOC,WAAC,CAACC,cAAc,CACrBD,WAAC,CAACE,gBAAgB,CAACF,WAAC,CAACG,UAAU,CAAC,MAAM,CAAC,EAAEH,WAAC,CAACG,UAAU,CAAC,KAAK,CAAC,CAAC,EAC7D,CAEEL,IAAI,EACJC,KAAK,CAET,CAAC;MACH;IACF,CAAC;EACH,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-exponentiation-operator/package.json b/node_modules/@babel/plugin-transform-exponentiation-operator/package.json index e5a109cc..c508aec7 100644 --- a/node_modules/@babel/plugin-transform-exponentiation-operator/package.json +++ b/node_modules/@babel/plugin-transform-exponentiation-operator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-exponentiation-operator", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile exponentiation operator to ES5", "repository": { "type": "git", @@ -17,14 +17,14 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.5", + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-export-namespace-from/lib/index.js b/node_modules/@babel/plugin-transform-export-namespace-from/lib/index.js index 5856d7b7..fc0ef639 100644 --- a/node_modules/@babel/plugin-transform-export-namespace-from/lib/index.js +++ b/node_modules/@babel/plugin-transform-export-namespace-from/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-export-namespace-from", @@ -42,6 +42,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-export-namespace-from/lib/index.js.map b/node_modules/@babel/plugin-transform-export-namespace-from/lib/index.js.map index 6d8d20b2..354fcaa4 100644 --- a/node_modules/@babel/plugin-transform-export-namespace-from/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-export-namespace-from/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","name","inherits","default","visitor","ExportNamedDeclaration","path","_exported$name","node","scope","specifiers","index","t","isExportDefaultSpecifier","isExportNamespaceSpecifier","nodes","push","exportNamedDeclaration","shift","source","specifier","exported","uid","generateUidIdentifier","value","importDeclaration","importNamespaceSpecifier","cloneNode","exportSpecifier","length","replaceWithMultiple","registerDeclaration","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-export-namespace-from\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-export-namespace-from\").default,\n\n visitor: {\n ExportNamedDeclaration(path) {\n const { node, scope } = path;\n const { specifiers } = node;\n\n const index = t.isExportDefaultSpecifier(specifiers[0]) ? 1 : 0;\n if (!t.isExportNamespaceSpecifier(specifiers[index])) return;\n\n const nodes = [];\n\n if (index === 1) {\n nodes.push(\n t.exportNamedDeclaration(null, [specifiers.shift()], node.source),\n );\n }\n\n const specifier = specifiers.shift();\n const { exported } = specifier;\n const uid = scope.generateUidIdentifier(\n // @ts-expect-error Identifier ?? StringLiteral\n exported.name ?? exported.value,\n );\n\n nodes.push(\n t.importDeclaration(\n [t.importNamespaceSpecifier(uid)],\n t.cloneNode(node.source),\n ),\n t.exportNamedDeclaration(null, [\n t.exportSpecifier(t.cloneNode(uid), exported),\n ]),\n );\n\n if (node.specifiers.length >= 1) {\n nodes.push(node);\n }\n\n const [importDeclaration] = path.replaceWithMultiple(nodes);\n path.scope.registerDeclaration(importDeclaration);\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,iCAAiC;IACvCC,QAAQ,EAKJP,OAAO,CAAC,4CAA4C,CAAC,CAACQ,OAAO;IAEjEC,OAAO,EAAE;MACPC,sBAAsBA,CAACC,IAAI,EAAE;QAAA,IAAAC,cAAA;QAC3B,MAAM;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGH,IAAI;QAC5B,MAAM;UAAEI;QAAW,CAAC,GAAGF,IAAI;QAE3B,MAAMG,KAAK,GAAGC,WAAC,CAACC,wBAAwB,CAACH,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAC/D,IAAI,CAACE,WAAC,CAACE,0BAA0B,CAACJ,UAAU,CAACC,KAAK,CAAC,CAAC,EAAE;QAEtD,MAAMI,KAAK,GAAG,EAAE;QAEhB,IAAIJ,KAAK,KAAK,CAAC,EAAE;UACfI,KAAK,CAACC,IAAI,CACRJ,WAAC,CAACK,sBAAsB,CAAC,IAAI,EAAE,CAACP,UAAU,CAACQ,KAAK,CAAC,CAAC,CAAC,EAAEV,IAAI,CAACW,MAAM,CAClE,CAAC;QACH;QAEA,MAAMC,SAAS,GAAGV,UAAU,CAACQ,KAAK,CAAC,CAAC;QACpC,MAAM;UAAEG;QAAS,CAAC,GAAGD,SAAS;QAC9B,MAAME,GAAG,GAAGb,KAAK,CAACc,qBAAqB,EAAAhB,cAAA,GAErCc,QAAQ,CAACpB,IAAI,YAAAM,cAAA,GAAIc,QAAQ,CAACG,KAC5B,CAAC;QAEDT,KAAK,CAACC,IAAI,CACRJ,WAAC,CAACa,iBAAiB,CACjB,CAACb,WAAC,CAACc,wBAAwB,CAACJ,GAAG,CAAC,CAAC,EACjCV,WAAC,CAACe,SAAS,CAACnB,IAAI,CAACW,MAAM,CACzB,CAAC,EACDP,WAAC,CAACK,sBAAsB,CAAC,IAAI,EAAE,CAC7BL,WAAC,CAACgB,eAAe,CAAChB,WAAC,CAACe,SAAS,CAACL,GAAG,CAAC,EAAED,QAAQ,CAAC,CAC9C,CACH,CAAC;QAED,IAAIb,IAAI,CAACE,UAAU,CAACmB,MAAM,IAAI,CAAC,EAAE;UAC/Bd,KAAK,CAACC,IAAI,CAACR,IAAI,CAAC;QAClB;QAEA,MAAM,CAACiB,iBAAiB,CAAC,GAAGnB,IAAI,CAACwB,mBAAmB,CAACf,KAAK,CAAC;QAC3DT,IAAI,CAACG,KAAK,CAACsB,mBAAmB,CAACN,iBAAiB,CAAC;MACnD;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAO,OAAA,CAAA7B,OAAA,GAAAN,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","name","inherits","visitor","ExportNamedDeclaration","path","_exported$name","node","scope","specifiers","index","t","isExportDefaultSpecifier","isExportNamespaceSpecifier","nodes","push","exportNamedDeclaration","shift","source","specifier","exported","uid","generateUidIdentifier","value","importDeclaration","importNamespaceSpecifier","cloneNode","exportSpecifier","length","replaceWithMultiple","registerDeclaration"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-export-namespace-from\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-export-namespace-from\").default,\n\n visitor: {\n ExportNamedDeclaration(path) {\n const { node, scope } = path;\n const { specifiers } = node;\n\n const index = t.isExportDefaultSpecifier(specifiers[0]) ? 1 : 0;\n if (!t.isExportNamespaceSpecifier(specifiers[index])) return;\n\n const nodes = [];\n\n if (index === 1) {\n nodes.push(\n t.exportNamedDeclaration(null, [specifiers.shift()], node.source),\n );\n }\n\n const specifier = specifiers.shift();\n const { exported } = specifier;\n const uid = scope.generateUidIdentifier(\n // @ts-expect-error Identifier ?? StringLiteral\n exported.name ?? exported.value,\n );\n\n nodes.push(\n t.importDeclaration(\n [t.importNamespaceSpecifier(uid)],\n t.cloneNode(node.source),\n ),\n t.exportNamedDeclaration(null, [\n t.exportSpecifier(t.cloneNode(uid), exported),\n ]),\n );\n\n if (node.specifiers.length >= 1) {\n nodes.push(node);\n }\n\n const [importDeclaration] = path.replaceWithMultiple(nodes);\n path.scope.registerDeclaration(importDeclaration);\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,iCAAiC;IACvCC,QAAQ,EAKFT,OAAO,CAAC,4CAA4C,CAAC,CAACI,OAAO;IAEnEM,OAAO,EAAE;MACPC,sBAAsBA,CAACC,IAAI,EAAE;QAAA,IAAAC,cAAA;QAC3B,MAAM;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGH,IAAI;QAC5B,MAAM;UAAEI;QAAW,CAAC,GAAGF,IAAI;QAE3B,MAAMG,KAAK,GAAGC,WAAC,CAACC,wBAAwB,CAACH,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QAC/D,IAAI,CAACE,WAAC,CAACE,0BAA0B,CAACJ,UAAU,CAACC,KAAK,CAAC,CAAC,EAAE;QAEtD,MAAMI,KAAK,GAAG,EAAE;QAEhB,IAAIJ,KAAK,KAAK,CAAC,EAAE;UACfI,KAAK,CAACC,IAAI,CACRJ,WAAC,CAACK,sBAAsB,CAAC,IAAI,EAAE,CAACP,UAAU,CAACQ,KAAK,CAAC,CAAC,CAAC,EAAEV,IAAI,CAACW,MAAM,CAClE,CAAC;QACH;QAEA,MAAMC,SAAS,GAAGV,UAAU,CAACQ,KAAK,CAAC,CAAC;QACpC,MAAM;UAAEG;QAAS,CAAC,GAAGD,SAAS;QAC9B,MAAME,GAAG,GAAGb,KAAK,CAACc,qBAAqB,EAAAhB,cAAA,GAErCc,QAAQ,CAACnB,IAAI,YAAAK,cAAA,GAAIc,QAAQ,CAACG,KAC5B,CAAC;QAEDT,KAAK,CAACC,IAAI,CACRJ,WAAC,CAACa,iBAAiB,CACjB,CAACb,WAAC,CAACc,wBAAwB,CAACJ,GAAG,CAAC,CAAC,EACjCV,WAAC,CAACe,SAAS,CAACnB,IAAI,CAACW,MAAM,CACzB,CAAC,EACDP,WAAC,CAACK,sBAAsB,CAAC,IAAI,EAAE,CAC7BL,WAAC,CAACgB,eAAe,CAAChB,WAAC,CAACe,SAAS,CAACL,GAAG,CAAC,EAAED,QAAQ,CAAC,CAC9C,CACH,CAAC;QAED,IAAIb,IAAI,CAACE,UAAU,CAACmB,MAAM,IAAI,CAAC,EAAE;UAC/Bd,KAAK,CAACC,IAAI,CAACR,IAAI,CAAC;QAClB;QAEA,MAAM,CAACiB,iBAAiB,CAAC,GAAGnB,IAAI,CAACwB,mBAAmB,CAACf,KAAK,CAAC;QAC3DT,IAAI,CAACG,KAAK,CAACsB,mBAAmB,CAACN,iBAAiB,CAAC;MACnD;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-export-namespace-from/package.json b/node_modules/@babel/plugin-transform-export-namespace-from/package.json index 2e131daa..8ccd0b7a 100644 --- a/node_modules/@babel/plugin-transform-export-namespace-from/package.json +++ b/node_modules/@babel/plugin-transform-export-namespace-from/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-export-namespace-from", - "version": "7.22.11", + "version": "7.23.4", "description": "Compile export namespace to ES2015", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.11", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-export-namespace-from", diff --git a/node_modules/@babel/plugin-transform-for-of/lib/index.js b/node_modules/@babel/plugin-transform-for-of/lib/index.js index 3d4daace..8b517bd8 100644 --- a/node_modules/@babel/plugin-transform-for-of/lib/index.js +++ b/node_modules/@babel/plugin-transform-for-of/lib/index.js @@ -7,6 +7,7 @@ exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); var _noHelperImplementation = require("./no-helper-implementation.js"); +var _helperSkipTransparentExpressionWrappers = require("@babel/helper-skip-transparent-expression-wrappers"); function buildLoopBody(path, declar, newBody) { let block; const bodyPath = path.get("body"); @@ -19,7 +20,7 @@ function buildLoopBody(path, declar, newBody) { } return block; } -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _options$assumeArray, _options$allowArrayLi, _api$assumption; api.assertVersion(7); { @@ -56,14 +57,17 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } = path; const { left, - right, await: isAwait } = path.node; if (isAwait) { return; } + const right = (0, _helperSkipTransparentExpressionWrappers.skipTransparentExprWrapperNodes)(path.node.right); const i = scope.generateUidIdentifier("i"); let array = scope.maybeGenerateMemoised(right, true); + if (!array && _core.types.isIdentifier(right) && path.get("body").scope.hasOwnBinding(right.name)) { + array = scope.generateUidIdentifier("arr"); + } const inits = [_core.types.variableDeclarator(i, _core.types.numericLiteral(0))]; if (array) { inits.push(_core.types.variableDeclarator(array, right)); @@ -186,6 +190,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-for-of/lib/index.js.map b/node_modules/@babel/plugin-transform-for-of/lib/index.js.map index 11016d6c..ec15b8cd 100644 --- a/node_modules/@babel/plugin-transform-for-of/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-for-of/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_noHelperImplementation","buildLoopBody","path","declar","newBody","block","bodyPath","get","body","node","t","isBlockStatement","Object","keys","getBindingIdentifiers","some","id","scope","hasOwnBinding","blockStatement","toBlock","unshift","_default","declare","api","options","_options$assumeArray","_options$allowArrayLi","_api$assumption","assertVersion","assumeArray","allowArrayLike","loose","Error","test","version","iterableIsArray","assumption","arrayLikeIsIterable","skipIteratorClosing","name","visitor","ForOfStatement","left","right","await","isAwait","i","generateUidIdentifier","array","maybeGenerateMemoised","inits","variableDeclarator","numericLiteral","push","item","memberExpression","cloneNode","assignment","isVariableDeclaration","declarations","init","expressionStatement","assignmentExpression","replaceWith","forStatement","variableDeclaration","binaryExpression","identifier","updateExpression","buildForOfArray","template","buildForOfNoIteratorClosing","statements","buildForOf","builder","build","helper","getContainer","nodes","_ForOfStatementArray","generateUidIdentifierBasedOnNode","iterationKey","loop","BODY","KEY","NAME","ARR","inherits","iterationValue","state","isArrayExpression","isGenericType","isArrayTypeAnnotation","getTypeAnnotation","availableHelper","transformWithoutHelper","parent","stepKey","generateUid","stepValue","kind","CREATE_ITERATOR_HELPER","addHelper","ITERATOR_HELPER","ARRAY_LIKE_IS_ITERABLE","booleanLiteral","STEP_KEY","OBJECT","container","isLabeledStatement","labeledStatement","label","parentPath","replaceWithMultiple","skip","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport transformWithoutHelper from \"./no-helper-implementation.ts\";\n\nexport interface Options {\n allowArrayLike?: boolean;\n assumeArray?: boolean;\n loose?: boolean;\n}\n\nfunction buildLoopBody(\n path: NodePath<t.ForXStatement>,\n declar: t.Statement,\n newBody?: t.Statement | t.Expression,\n) {\n let block;\n const bodyPath = path.get(\"body\");\n const body = newBody ?? bodyPath.node;\n if (\n t.isBlockStatement(body) &&\n Object.keys(path.getBindingIdentifiers()).some(id =>\n bodyPath.scope.hasOwnBinding(id),\n )\n ) {\n block = t.blockStatement([declar, body]);\n } else {\n block = t.toBlock(body);\n block.body.unshift(declar);\n }\n return block;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n {\n const { assumeArray, allowArrayLike, loose } = options;\n\n if (loose === true && assumeArray === true) {\n throw new Error(\n `The loose and assumeArray options cannot be used together in @babel/plugin-transform-for-of`,\n );\n }\n\n if (assumeArray === true && allowArrayLike === true) {\n throw new Error(\n `The assumeArray and allowArrayLike options cannot be used together in @babel/plugin-transform-for-of`,\n );\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // TODO: Remove in Babel 8\n if (allowArrayLike && /^7\\.\\d\\./.test(api.version)) {\n throw new Error(\n `The allowArrayLike is only supported when using @babel/core@^7.10.0`,\n );\n }\n }\n }\n\n const iterableIsArray =\n options.assumeArray ??\n // Loose mode is not compatible with 'assumeArray', so we shouldn't read\n // 'iterableIsArray' if 'loose' is true.\n (!options.loose && api.assumption(\"iterableIsArray\"));\n\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\");\n\n const skipIteratorClosing =\n api.assumption(\"skipForOfIteratorClosing\") ?? options.loose;\n\n if (iterableIsArray && arrayLikeIsIterable) {\n throw new Error(\n `The \"iterableIsArray\" and \"arrayLikeIsIterable\" assumptions are not compatible.`,\n );\n }\n\n if (iterableIsArray) {\n return {\n name: \"transform-for-of\",\n\n visitor: {\n ForOfStatement(path) {\n const { scope } = path;\n const { left, right, await: isAwait } = path.node;\n if (isAwait) {\n return;\n }\n const i = scope.generateUidIdentifier(\"i\");\n let array: t.Identifier | t.ThisExpression =\n scope.maybeGenerateMemoised(right, true);\n\n const inits = [t.variableDeclarator(i, t.numericLiteral(0))];\n if (array) {\n inits.push(t.variableDeclarator(array, right));\n } else {\n array = right as t.Identifier | t.ThisExpression;\n }\n\n const item = t.memberExpression(\n t.cloneNode(array),\n t.cloneNode(i),\n true,\n );\n let assignment;\n if (t.isVariableDeclaration(left)) {\n assignment = left;\n assignment.declarations[0].init = item;\n } else {\n assignment = t.expressionStatement(\n t.assignmentExpression(\"=\", left, item),\n );\n }\n\n path.replaceWith(\n t.forStatement(\n t.variableDeclaration(\"let\", inits),\n t.binaryExpression(\n \"<\",\n t.cloneNode(i),\n t.memberExpression(t.cloneNode(array), t.identifier(\"length\")),\n ),\n t.updateExpression(\"++\", t.cloneNode(i)),\n buildLoopBody(path, assignment),\n ),\n );\n },\n },\n };\n }\n\n const buildForOfArray = template`\n for (var KEY = 0, NAME = ARR; KEY < NAME.length; KEY++) BODY;\n `;\n\n const buildForOfNoIteratorClosing = template.statements`\n for (var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY;\n !(STEP_KEY = ITERATOR_HELPER()).done;) BODY;\n `;\n\n const buildForOf = template.statements`\n var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY;\n try {\n for (ITERATOR_HELPER.s(); !(STEP_KEY = ITERATOR_HELPER.n()).done;) BODY;\n } catch (err) {\n ITERATOR_HELPER.e(err);\n } finally {\n ITERATOR_HELPER.f();\n }\n `;\n\n const builder = skipIteratorClosing\n ? {\n build: buildForOfNoIteratorClosing,\n helper: \"createForOfIteratorHelperLoose\",\n getContainer: (nodes: t.Statement[]): [t.ForStatement] =>\n nodes as [t.ForStatement],\n }\n : {\n build: buildForOf,\n helper: \"createForOfIteratorHelper\",\n getContainer: (nodes: t.Statement[]): [t.ForStatement] =>\n (nodes[1] as t.TryStatement).block.body as [t.ForStatement],\n };\n\n function _ForOfStatementArray(path: NodePath<t.ForOfStatement>) {\n const { node, scope } = path;\n\n const right = scope.generateUidIdentifierBasedOnNode(node.right, \"arr\");\n const iterationKey = scope.generateUidIdentifier(\"i\");\n\n const loop = buildForOfArray({\n BODY: node.body,\n KEY: iterationKey,\n NAME: right,\n ARR: node.right,\n }) as t.For;\n\n t.inherits(loop, node);\n\n const iterationValue = t.memberExpression(\n t.cloneNode(right),\n t.cloneNode(iterationKey),\n true,\n );\n\n let declar;\n const left = node.left;\n if (t.isVariableDeclaration(left)) {\n left.declarations[0].init = iterationValue;\n declar = left;\n } else {\n declar = t.expressionStatement(\n t.assignmentExpression(\"=\", left, iterationValue),\n );\n }\n\n loop.body = buildLoopBody(path, declar, loop.body);\n\n return loop;\n }\n\n return {\n name: \"transform-for-of\",\n visitor: {\n ForOfStatement(path, state) {\n const right = path.get(\"right\");\n if (\n right.isArrayExpression() ||\n (process.env.BABEL_8_BREAKING\n ? right.isGenericType(\"Array\")\n : right.isGenericType(\"Array\") ||\n t.isArrayTypeAnnotation(right.getTypeAnnotation()))\n ) {\n path.replaceWith(_ForOfStatementArray(path));\n return;\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(builder.helper)) {\n // Babel <7.9.0 doesn't support this helper\n transformWithoutHelper(skipIteratorClosing, path, state);\n return;\n }\n }\n\n const { node, parent, scope } = path;\n const left = node.left;\n let declar;\n\n const stepKey = scope.generateUid(\"step\");\n const stepValue = t.memberExpression(\n t.identifier(stepKey),\n t.identifier(\"value\"),\n );\n\n if (t.isVariableDeclaration(left)) {\n // for (let i of test)\n declar = t.variableDeclaration(left.kind, [\n t.variableDeclarator(left.declarations[0].id, stepValue),\n ]);\n } else {\n // for (i of test), for ({ i } of test)\n declar = t.expressionStatement(\n t.assignmentExpression(\"=\", left, stepValue),\n );\n }\n\n const nodes = builder.build({\n CREATE_ITERATOR_HELPER: state.addHelper(builder.helper),\n ITERATOR_HELPER: scope.generateUidIdentifier(\"iterator\"),\n ARRAY_LIKE_IS_ITERABLE: arrayLikeIsIterable\n ? t.booleanLiteral(true)\n : null,\n STEP_KEY: t.identifier(stepKey),\n OBJECT: node.right,\n BODY: buildLoopBody(path, declar),\n });\n const container = builder.getContainer(nodes);\n\n t.inherits(container[0], node);\n t.inherits(container[0].body, node.body);\n\n if (t.isLabeledStatement(parent)) {\n // @ts-expect-error replacing node types\n container[0] = t.labeledStatement(parent.label, container[0]);\n\n path.parentPath.replaceWithMultiple(nodes);\n\n // The parent has been replaced, prevent Babel from traversing a detached path\n path.skip();\n } else {\n path.replaceWithMultiple(nodes);\n }\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_noHelperImplementation","_helperSkipTransparentExpressionWrappers","buildLoopBody","path","declar","newBody","block","bodyPath","get","body","node","t","isBlockStatement","Object","keys","getBindingIdentifiers","some","id","scope","hasOwnBinding","blockStatement","toBlock","unshift","_default","exports","default","declare","api","options","_options$assumeArray","_options$allowArrayLi","_api$assumption","assertVersion","assumeArray","allowArrayLike","loose","Error","test","version","iterableIsArray","assumption","arrayLikeIsIterable","skipIteratorClosing","name","visitor","ForOfStatement","left","await","isAwait","right","skipTransparentExprWrapperNodes","i","generateUidIdentifier","array","maybeGenerateMemoised","isIdentifier","inits","variableDeclarator","numericLiteral","push","item","memberExpression","cloneNode","assignment","isVariableDeclaration","declarations","init","expressionStatement","assignmentExpression","replaceWith","forStatement","variableDeclaration","binaryExpression","identifier","updateExpression","buildForOfArray","template","buildForOfNoIteratorClosing","statements","buildForOf","builder","build","helper","getContainer","nodes","_ForOfStatementArray","generateUidIdentifierBasedOnNode","iterationKey","loop","BODY","KEY","NAME","ARR","inherits","iterationValue","state","isArrayExpression","isGenericType","isArrayTypeAnnotation","getTypeAnnotation","availableHelper","transformWithoutHelper","parent","stepKey","generateUid","stepValue","kind","CREATE_ITERATOR_HELPER","addHelper","ITERATOR_HELPER","ARRAY_LIKE_IS_ITERABLE","booleanLiteral","STEP_KEY","OBJECT","container","isLabeledStatement","labeledStatement","label","parentPath","replaceWithMultiple","skip"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport transformWithoutHelper from \"./no-helper-implementation.ts\";\nimport { skipTransparentExprWrapperNodes } from \"@babel/helper-skip-transparent-expression-wrappers\";\n\nexport interface Options {\n allowArrayLike?: boolean;\n assumeArray?: boolean;\n loose?: boolean;\n}\n\nfunction buildLoopBody(\n path: NodePath<t.ForXStatement>,\n declar: t.Statement,\n newBody?: t.Statement | t.Expression,\n) {\n let block;\n const bodyPath = path.get(\"body\");\n const body = newBody ?? bodyPath.node;\n if (\n t.isBlockStatement(body) &&\n Object.keys(path.getBindingIdentifiers()).some(id =>\n bodyPath.scope.hasOwnBinding(id),\n )\n ) {\n block = t.blockStatement([declar, body]);\n } else {\n block = t.toBlock(body);\n block.body.unshift(declar);\n }\n return block;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n {\n const { assumeArray, allowArrayLike, loose } = options;\n\n if (loose === true && assumeArray === true) {\n throw new Error(\n `The loose and assumeArray options cannot be used together in @babel/plugin-transform-for-of`,\n );\n }\n\n if (assumeArray === true && allowArrayLike === true) {\n throw new Error(\n `The assumeArray and allowArrayLike options cannot be used together in @babel/plugin-transform-for-of`,\n );\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // TODO: Remove in Babel 8\n if (allowArrayLike && /^7\\.\\d\\./.test(api.version)) {\n throw new Error(\n `The allowArrayLike is only supported when using @babel/core@^7.10.0`,\n );\n }\n }\n }\n\n const iterableIsArray =\n options.assumeArray ??\n // Loose mode is not compatible with 'assumeArray', so we shouldn't read\n // 'iterableIsArray' if 'loose' is true.\n (!options.loose && api.assumption(\"iterableIsArray\"));\n\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\");\n\n const skipIteratorClosing =\n api.assumption(\"skipForOfIteratorClosing\") ?? options.loose;\n\n if (iterableIsArray && arrayLikeIsIterable) {\n throw new Error(\n `The \"iterableIsArray\" and \"arrayLikeIsIterable\" assumptions are not compatible.`,\n );\n }\n\n if (iterableIsArray) {\n return {\n name: \"transform-for-of\",\n\n visitor: {\n ForOfStatement(path) {\n const { scope } = path;\n const { left, await: isAwait } = path.node;\n if (isAwait) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const right = skipTransparentExprWrapperNodes(\n path.node.right,\n ) as t.Expression;\n const i = scope.generateUidIdentifier(\"i\");\n let array: t.Identifier | t.ThisExpression =\n scope.maybeGenerateMemoised(right, true);\n if (\n !array &&\n t.isIdentifier(right) &&\n path.get(\"body\").scope.hasOwnBinding(right.name)\n ) {\n array = scope.generateUidIdentifier(\"arr\");\n }\n\n const inits = [t.variableDeclarator(i, t.numericLiteral(0))];\n if (array) {\n inits.push(t.variableDeclarator(array, right));\n } else {\n array = right as t.Identifier | t.ThisExpression;\n }\n\n const item = t.memberExpression(\n t.cloneNode(array),\n t.cloneNode(i),\n true,\n );\n let assignment;\n if (t.isVariableDeclaration(left)) {\n assignment = left;\n assignment.declarations[0].init = item;\n } else {\n assignment = t.expressionStatement(\n t.assignmentExpression(\"=\", left, item),\n );\n }\n\n path.replaceWith(\n t.forStatement(\n t.variableDeclaration(\"let\", inits),\n t.binaryExpression(\n \"<\",\n t.cloneNode(i),\n t.memberExpression(t.cloneNode(array), t.identifier(\"length\")),\n ),\n t.updateExpression(\"++\", t.cloneNode(i)),\n buildLoopBody(path, assignment),\n ),\n );\n },\n },\n };\n }\n\n const buildForOfArray = template`\n for (var KEY = 0, NAME = ARR; KEY < NAME.length; KEY++) BODY;\n `;\n\n const buildForOfNoIteratorClosing = template.statements`\n for (var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY;\n !(STEP_KEY = ITERATOR_HELPER()).done;) BODY;\n `;\n\n const buildForOf = template.statements`\n var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY;\n try {\n for (ITERATOR_HELPER.s(); !(STEP_KEY = ITERATOR_HELPER.n()).done;) BODY;\n } catch (err) {\n ITERATOR_HELPER.e(err);\n } finally {\n ITERATOR_HELPER.f();\n }\n `;\n\n const builder = skipIteratorClosing\n ? {\n build: buildForOfNoIteratorClosing,\n helper: \"createForOfIteratorHelperLoose\",\n getContainer: (nodes: t.Statement[]): [t.ForStatement] =>\n nodes as [t.ForStatement],\n }\n : {\n build: buildForOf,\n helper: \"createForOfIteratorHelper\",\n getContainer: (nodes: t.Statement[]): [t.ForStatement] =>\n (nodes[1] as t.TryStatement).block.body as [t.ForStatement],\n };\n\n function _ForOfStatementArray(path: NodePath<t.ForOfStatement>) {\n const { node, scope } = path;\n\n const right = scope.generateUidIdentifierBasedOnNode(node.right, \"arr\");\n const iterationKey = scope.generateUidIdentifier(\"i\");\n\n const loop = buildForOfArray({\n BODY: node.body,\n KEY: iterationKey,\n NAME: right,\n ARR: node.right,\n }) as t.For;\n\n t.inherits(loop, node);\n\n const iterationValue = t.memberExpression(\n t.cloneNode(right),\n t.cloneNode(iterationKey),\n true,\n );\n\n let declar;\n const left = node.left;\n if (t.isVariableDeclaration(left)) {\n left.declarations[0].init = iterationValue;\n declar = left;\n } else {\n declar = t.expressionStatement(\n t.assignmentExpression(\"=\", left, iterationValue),\n );\n }\n\n loop.body = buildLoopBody(path, declar, loop.body);\n\n return loop;\n }\n\n return {\n name: \"transform-for-of\",\n visitor: {\n ForOfStatement(path, state) {\n const right = path.get(\"right\");\n if (\n right.isArrayExpression() ||\n (process.env.BABEL_8_BREAKING\n ? right.isGenericType(\"Array\")\n : right.isGenericType(\"Array\") ||\n t.isArrayTypeAnnotation(right.getTypeAnnotation()))\n ) {\n path.replaceWith(_ForOfStatementArray(path));\n return;\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(builder.helper)) {\n // Babel <7.9.0 doesn't support this helper\n transformWithoutHelper(skipIteratorClosing, path, state);\n return;\n }\n }\n\n const { node, parent, scope } = path;\n const left = node.left;\n let declar;\n\n const stepKey = scope.generateUid(\"step\");\n const stepValue = t.memberExpression(\n t.identifier(stepKey),\n t.identifier(\"value\"),\n );\n\n if (t.isVariableDeclaration(left)) {\n // for (let i of test)\n declar = t.variableDeclaration(left.kind, [\n t.variableDeclarator(left.declarations[0].id, stepValue),\n ]);\n } else {\n // for (i of test), for ({ i } of test)\n declar = t.expressionStatement(\n t.assignmentExpression(\"=\", left, stepValue),\n );\n }\n\n const nodes = builder.build({\n CREATE_ITERATOR_HELPER: state.addHelper(builder.helper),\n ITERATOR_HELPER: scope.generateUidIdentifier(\"iterator\"),\n ARRAY_LIKE_IS_ITERABLE: arrayLikeIsIterable\n ? t.booleanLiteral(true)\n : null,\n STEP_KEY: t.identifier(stepKey),\n OBJECT: node.right,\n BODY: buildLoopBody(path, declar),\n });\n const container = builder.getContainer(nodes);\n\n t.inherits(container[0], node);\n t.inherits(container[0].body, node.body);\n\n if (t.isLabeledStatement(parent)) {\n // @ts-expect-error replacing node types\n container[0] = t.labeledStatement(parent.label, container[0]);\n\n path.parentPath.replaceWithMultiple(nodes);\n\n // The parent has been replaced, prevent Babel from traversing a detached path\n path.skip();\n } else {\n path.replaceWithMultiple(nodes);\n }\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-for-of/package.json b/node_modules/@babel/plugin-transform-for-of/package.json index 56fccae8..c2a11238 100644 --- a/node_modules/@babel/plugin-transform-for-of/package.json +++ b/node_modules/@babel/plugin-transform-for-of/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-for-of", - "version": "7.22.15", + "version": "7.23.6", "description": "Compile ES2015 for...of to ES5", "repository": { "type": "git", @@ -17,13 +17,14 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.22.5", + "@babel/helper-skip-transparent-expression-wrappers": "^7.22.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.15", + "@babel/core": "^7.23.6", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-function-name/README.md b/node_modules/@babel/plugin-transform-function-name/README.md index 27d3e10c..ef8beb1c 100644 --- a/node_modules/@babel/plugin-transform-function-name/README.md +++ b/node_modules/@babel/plugin-transform-function-name/README.md @@ -2,7 +2,7 @@ > Apply ES2015 function.name semantics to all functions -See our website [@babel/plugin-transform-function-name](https://babeljs.io/docs/en/babel-plugin-transform-function-name) for more information. +See our website [@babel/plugin-transform-function-name](https://babeljs.io/docs/babel-plugin-transform-function-name) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-function-name/lib/index.js b/node_modules/@babel/plugin-transform-function-name/lib/index.js index 7d401bf7..16df763b 100644 --- a/node_modules/@babel/plugin-transform-function-name/lib/index.js +++ b/node_modules/@babel/plugin-transform-function-name/lib/index.js @@ -7,7 +7,7 @@ exports.default = void 0; var _helperCompilationTargets = require("@babel/helper-compilation-targets"); var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _helperFunctionName = require("@babel/helper-function-name"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); const supportUnicodeId = !(0, _helperCompilationTargets.isRequired)("transform-unicode-escapes", api.targets()); return { @@ -31,6 +31,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-function-name/lib/index.js.map b/node_modules/@babel/plugin-transform-function-name/lib/index.js.map index d0b718a3..4bf4271c 100644 --- a/node_modules/@babel/plugin-transform-function-name/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-function-name/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperCompilationTargets","require","_helperPluginUtils","_helperFunctionName","_default","declare","api","assertVersion","supportUnicodeId","isRequired","targets","name","visitor","FunctionExpression","exit","path","key","parentPath","isObjectProperty","replacement","nameFunction","replaceWith","ObjectProperty","value","get","isFunction","newNode","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { isRequired } from \"@babel/helper-compilation-targets\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport nameFunction from \"@babel/helper-function-name\";\n\nexport default declare(api => {\n api.assertVersion(7);\n const supportUnicodeId = !isRequired(\n \"transform-unicode-escapes\",\n api.targets(),\n );\n\n return {\n name: \"transform-function-name\",\n\n visitor: {\n FunctionExpression: {\n exit(path) {\n if (path.key !== \"value\" && !path.parentPath.isObjectProperty()) {\n const replacement = nameFunction(path);\n if (replacement) path.replaceWith(replacement);\n }\n },\n },\n\n ObjectProperty(path) {\n const value = path.get(\"value\");\n if (value.isFunction()) {\n const newNode = nameFunction(\n // @ts-expect-error Fixme: should check ArrowFunctionExpression\n value,\n false,\n supportUnicodeId,\n );\n if (newNode) value.replaceWith(newNode);\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAAuD,IAAAG,QAAA,GAExC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EACpB,MAAMC,gBAAgB,GAAG,CAAC,IAAAC,oCAAU,EAClC,2BAA2B,EAC3BH,GAAG,CAACI,OAAO,CAAC,CACd,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,yBAAyB;IAE/BC,OAAO,EAAE;MACPC,kBAAkB,EAAE;QAClBC,IAAIA,CAACC,IAAI,EAAE;UACT,IAAIA,IAAI,CAACC,GAAG,KAAK,OAAO,IAAI,CAACD,IAAI,CAACE,UAAU,CAACC,gBAAgB,CAAC,CAAC,EAAE;YAC/D,MAAMC,WAAW,GAAG,IAAAC,2BAAY,EAACL,IAAI,CAAC;YACtC,IAAII,WAAW,EAAEJ,IAAI,CAACM,WAAW,CAACF,WAAW,CAAC;UAChD;QACF;MACF,CAAC;MAEDG,cAAcA,CAACP,IAAI,EAAE;QACnB,MAAMQ,KAAK,GAAGR,IAAI,CAACS,GAAG,CAAC,OAAO,CAAC;QAC/B,IAAID,KAAK,CAACE,UAAU,CAAC,CAAC,EAAE;UACtB,MAAMC,OAAO,GAAG,IAAAN,2BAAY,EAE1BG,KAAK,EACL,KAAK,EACLf,gBACF,CAAC;UACD,IAAIkB,OAAO,EAAEH,KAAK,CAACF,WAAW,CAACK,OAAO,CAAC;QACzC;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAxB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperCompilationTargets","require","_helperPluginUtils","_helperFunctionName","_default","exports","default","declare","api","assertVersion","supportUnicodeId","isRequired","targets","name","visitor","FunctionExpression","exit","path","key","parentPath","isObjectProperty","replacement","nameFunction","replaceWith","ObjectProperty","value","get","isFunction","newNode"],"sources":["../src/index.ts"],"sourcesContent":["import { isRequired } from \"@babel/helper-compilation-targets\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport nameFunction from \"@babel/helper-function-name\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n const supportUnicodeId = !isRequired(\n \"transform-unicode-escapes\",\n api.targets(),\n );\n\n return {\n name: \"transform-function-name\",\n\n visitor: {\n FunctionExpression: {\n exit(path) {\n if (path.key !== \"value\" && !path.parentPath.isObjectProperty()) {\n const replacement = nameFunction(path);\n if (replacement) path.replaceWith(replacement);\n }\n },\n },\n\n ObjectProperty(path) {\n const value = path.get(\"value\");\n if (value.isFunction()) {\n const newNode = nameFunction(\n // @ts-expect-error Fixme: should check ArrowFunctionExpression\n value,\n false,\n supportUnicodeId,\n );\n if (newNode) value.replaceWith(newNode);\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,yBAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AAAuD,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAExC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EACD,MAAMC,gBAAgB,GAAG,CAAC,IAAAC,oCAAU,EAClC,2BAA2B,EAC3BH,GAAG,CAACI,OAAO,CAAC,CACd,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,yBAAyB;IAE/BC,OAAO,EAAE;MACPC,kBAAkB,EAAE;QAClBC,IAAIA,CAACC,IAAI,EAAE;UACT,IAAIA,IAAI,CAACC,GAAG,KAAK,OAAO,IAAI,CAACD,IAAI,CAACE,UAAU,CAACC,gBAAgB,CAAC,CAAC,EAAE;YAC/D,MAAMC,WAAW,GAAG,IAAAC,2BAAY,EAACL,IAAI,CAAC;YACtC,IAAII,WAAW,EAAEJ,IAAI,CAACM,WAAW,CAACF,WAAW,CAAC;UAChD;QACF;MACF,CAAC;MAEDG,cAAcA,CAACP,IAAI,EAAE;QACnB,MAAMQ,KAAK,GAAGR,IAAI,CAACS,GAAG,CAAC,OAAO,CAAC;QAC/B,IAAID,KAAK,CAACE,UAAU,CAAC,CAAC,EAAE;UACtB,MAAMC,OAAO,GAAG,IAAAN,2BAAY,EAE1BG,KAAK,EACL,KAAK,EACLf,gBACF,CAAC;UACD,IAAIkB,OAAO,EAAEH,KAAK,CAACF,WAAW,CAACK,OAAO,CAAC;QACzC;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-function-name/package.json b/node_modules/@babel/plugin-transform-function-name/package.json index 9587283f..3091de64 100644 --- a/node_modules/@babel/plugin-transform-function-name/package.json +++ b/node_modules/@babel/plugin-transform-function-name/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-function-name", - "version": "7.22.5", + "version": "7.23.3", "description": "Apply ES2015 function.name semantics to all functions", "repository": { "type": "git", @@ -17,15 +17,15 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-compilation-targets": "^7.22.5", - "@babel/helper-function-name": "^7.22.5", + "@babel/helper-compilation-targets": "^7.22.15", + "@babel/helper-function-name": "^7.23.0", "@babel/helper-plugin-utils": "^7.22.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-json-strings/lib/index.js b/node_modules/@babel/plugin-transform-json-strings/lib/index.js index 38a9d365..17ea0c9e 100644 --- a/node_modules/@babel/plugin-transform-json-strings/lib/index.js +++ b/node_modules/@babel/plugin-transform-json-strings/lib/index.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); const regex = /(\\*)([\u2028\u2029])/g; function replace(match, escapes, separator) { @@ -29,6 +29,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-json-strings/lib/index.js.map b/node_modules/@babel/plugin-transform-json-strings/lib/index.js.map index f0e219ef..f79f7a36 100644 --- a/node_modules/@babel/plugin-transform-json-strings/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-json-strings/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_default","declare","api","assertVersion","regex","replace","match","escapes","separator","isEscaped","length","charCodeAt","toString","name","inherits","default","visitor","DirectiveLiteral|StringLiteral","node","extra","raw","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(7);\n const regex = /(\\\\*)([\\u2028\\u2029])/g;\n function replace(match: string, escapes: string, separator: string) {\n // If there's an odd number, that means the separator itself was escaped.\n // \"\\X\" escapes X.\n // \"\\\\X\" escapes the backslash, so X is unescaped.\n const isEscaped = escapes.length % 2 === 1;\n if (isEscaped) return match;\n\n return `${escapes}\\\\u${separator.charCodeAt(0).toString(16)}`;\n }\n\n return {\n name: \"transform-json-strings\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-json-strings\").default,\n\n visitor: {\n \"DirectiveLiteral|StringLiteral\"({\n node,\n }: NodePath<t.DirectiveLiteral | t.StringLiteral>) {\n const { extra } = node;\n if (!extra?.raw) return;\n\n extra.raw = (extra.raw as string).replace(regex, replace);\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAItC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EACpB,MAAMC,KAAK,GAAG,wBAAwB;EACtC,SAASC,OAAOA,CAACC,KAAa,EAAEC,OAAe,EAAEC,SAAiB,EAAE;IAIlE,MAAMC,SAAS,GAAGF,OAAO,CAACG,MAAM,GAAG,CAAC,KAAK,CAAC;IAC1C,IAAID,SAAS,EAAE,OAAOH,KAAK;IAE3B,OAAQ,GAAEC,OAAQ,MAAKC,SAAS,CAACG,UAAU,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAE,EAAC;EAC/D;EAEA,OAAO;IACLC,IAAI,EAAE,wBAAwB;IAC9BC,QAAQ,EAKJf,OAAO,CAAC,mCAAmC,CAAC,CAACgB,OAAO;IAExDC,OAAO,EAAE;MACP,gCAAgCC,CAAC;QAC/BC;MAC8C,CAAC,EAAE;QACjD,MAAM;UAAEC;QAAM,CAAC,GAAGD,IAAI;QACtB,IAAI,EAACC,KAAK,YAALA,KAAK,CAAEC,GAAG,GAAE;QAEjBD,KAAK,CAACC,GAAG,GAAID,KAAK,CAACC,GAAG,CAAYf,OAAO,CAACD,KAAK,EAAEC,OAAO,CAAC;MAC3D;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAgB,OAAA,CAAAN,OAAA,GAAAf,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_default","exports","default","declare","api","assertVersion","regex","replace","match","escapes","separator","isEscaped","length","charCodeAt","toString","name","inherits","visitor","DirectiveLiteral|StringLiteral","node","extra","raw"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n const regex = /(\\\\*)([\\u2028\\u2029])/g;\n function replace(match: string, escapes: string, separator: string) {\n // If there's an odd number, that means the separator itself was escaped.\n // \"\\X\" escapes X.\n // \"\\\\X\" escapes the backslash, so X is unescaped.\n const isEscaped = escapes.length % 2 === 1;\n if (isEscaped) return match;\n\n return `${escapes}\\\\u${separator.charCodeAt(0).toString(16)}`;\n }\n\n return {\n name: \"transform-json-strings\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-json-strings\").default,\n\n visitor: {\n \"DirectiveLiteral|StringLiteral\"({\n node,\n }: NodePath<t.DirectiveLiteral | t.StringLiteral>) {\n const { extra } = node;\n if (!extra?.raw) return;\n\n extra.raw = (extra.raw as string).replace(regex, replace);\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAItC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EACD,MAAMC,KAAK,GAAG,wBAAwB;EACtC,SAASC,OAAOA,CAACC,KAAa,EAAEC,OAAe,EAAEC,SAAiB,EAAE;IAIlE,MAAMC,SAAS,GAAGF,OAAO,CAACG,MAAM,GAAG,CAAC,KAAK,CAAC;IAC1C,IAAID,SAAS,EAAE,OAAOH,KAAK;IAE3B,OAAQ,GAAEC,OAAQ,MAAKC,SAAS,CAACG,UAAU,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAE,EAAC;EAC/D;EAEA,OAAO;IACLC,IAAI,EAAE,wBAAwB;IAC9BC,QAAQ,EAKFjB,OAAO,CAAC,mCAAmC,CAAC,CAACG,OAAO;IAE1De,OAAO,EAAE;MACP,gCAAgCC,CAAC;QAC/BC;MAC8C,CAAC,EAAE;QACjD,MAAM;UAAEC;QAAM,CAAC,GAAGD,IAAI;QACtB,IAAI,EAACC,KAAK,YAALA,KAAK,CAAEC,GAAG,GAAE;QAEjBD,KAAK,CAACC,GAAG,GAAID,KAAK,CAACC,GAAG,CAAYd,OAAO,CAACD,KAAK,EAAEC,OAAO,CAAC;MAC3D;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-json-strings/package.json b/node_modules/@babel/plugin-transform-json-strings/package.json index 9681f7f5..d41c39e4 100644 --- a/node_modules/@babel/plugin-transform-json-strings/package.json +++ b/node_modules/@babel/plugin-transform-json-strings/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-json-strings", - "version": "7.22.11", + "version": "7.23.4", "description": "Escape U+2028 LINE SEPARATOR and U+2029 PARAGRAPH SEPARATOR in JS strings", "repository": { "type": "git", @@ -24,7 +24,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.11", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-literals/README.md b/node_modules/@babel/plugin-transform-literals/README.md index ba4d3196..f9d7bf90 100644 --- a/node_modules/@babel/plugin-transform-literals/README.md +++ b/node_modules/@babel/plugin-transform-literals/README.md @@ -2,7 +2,7 @@ > Compile ES2015 unicode string and number literals to ES5 -See our website [@babel/plugin-transform-literals](https://babeljs.io/docs/en/babel-plugin-transform-literals) for more information. +See our website [@babel/plugin-transform-literals](https://babeljs.io/docs/babel-plugin-transform-literals) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-literals/lib/index.js b/node_modules/@babel/plugin-transform-literals/lib/index.js index 34302ef5..a5a12f81 100644 --- a/node_modules/@babel/plugin-transform-literals/lib/index.js +++ b/node_modules/@babel/plugin-transform-literals/lib/index.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-literals", @@ -27,6 +27,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-literals/lib/index.js.map b/node_modules/@babel/plugin-transform-literals/lib/index.js.map index ff247c1f..01b973d3 100644 --- a/node_modules/@babel/plugin-transform-literals/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-literals/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_default","declare","api","assertVersion","name","visitor","NumericLiteral","node","extra","test","raw","undefined","StringLiteral","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-literals\",\n\n visitor: {\n NumericLiteral({ node }) {\n // number octal like 0b10 or 0o70\n // @ts-expect-error Add node.extra typings\n if (node.extra && /^0[ob]/i.test(node.extra.raw)) {\n node.extra = undefined;\n }\n },\n\n StringLiteral({ node }) {\n // unicode escape\n // @ts-expect-error Add node.extra typings\n if (node.extra && /\\\\[u]/gi.test(node.extra.raw)) {\n node.extra = undefined;\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,oBAAoB;IAE1BC,OAAO,EAAE;MACPC,cAAcA,CAAC;QAAEC;MAAK,CAAC,EAAE;QAGvB,IAAIA,IAAI,CAACC,KAAK,IAAI,SAAS,CAACC,IAAI,CAACF,IAAI,CAACC,KAAK,CAACE,GAAG,CAAC,EAAE;UAChDH,IAAI,CAACC,KAAK,GAAGG,SAAS;QACxB;MACF,CAAC;MAEDC,aAAaA,CAAC;QAAEL;MAAK,CAAC,EAAE;QAGtB,IAAIA,IAAI,CAACC,KAAK,IAAI,SAAS,CAACC,IAAI,CAACF,IAAI,CAACC,KAAK,CAACE,GAAG,CAAC,EAAE;UAChDH,IAAI,CAACC,KAAK,GAAGG,SAAS;QACxB;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAE,OAAA,CAAAC,OAAA,GAAAd,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_default","exports","default","declare","api","assertVersion","name","visitor","NumericLiteral","node","extra","test","raw","undefined","StringLiteral"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-literals\",\n\n visitor: {\n NumericLiteral({ node }) {\n // number octal like 0b10 or 0o70\n // @ts-expect-error Add node.extra typings\n if (node.extra && /^0[ob]/i.test(node.extra.raw)) {\n node.extra = undefined;\n }\n },\n\n StringLiteral({ node }) {\n // unicode escape\n // @ts-expect-error Add node.extra typings\n if (node.extra && /\\\\[u]/gi.test(node.extra.raw)) {\n node.extra = undefined;\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,oBAAoB;IAE1BC,OAAO,EAAE;MACPC,cAAcA,CAAC;QAAEC;MAAK,CAAC,EAAE;QAGvB,IAAIA,IAAI,CAACC,KAAK,IAAI,SAAS,CAACC,IAAI,CAACF,IAAI,CAACC,KAAK,CAACE,GAAG,CAAC,EAAE;UAChDH,IAAI,CAACC,KAAK,GAAGG,SAAS;QACxB;MACF,CAAC;MAEDC,aAAaA,CAAC;QAAEL;MAAK,CAAC,EAAE;QAGtB,IAAIA,IAAI,CAACC,KAAK,IAAI,SAAS,CAACC,IAAI,CAACF,IAAI,CAACC,KAAK,CAACE,GAAG,CAAC,EAAE;UAChDH,IAAI,CAACC,KAAK,GAAGG,SAAS;QACxB;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-literals/package.json b/node_modules/@babel/plugin-transform-literals/package.json index 9dfc2ecc..0ff8b3e0 100644 --- a/node_modules/@babel/plugin-transform-literals/package.json +++ b/node_modules/@babel/plugin-transform-literals/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-literals", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile ES2015 unicode string and number literals to ES5", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js b/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js index 984841d7..d33071eb 100644 --- a/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js +++ b/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-logical-assignment-operators", @@ -51,6 +51,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js.map b/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js.map index 009ce9ac..500843c9 100644 --- a/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-logical-assignment-operators/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","name","inherits","default","visitor","AssignmentExpression","path","node","scope","operator","left","right","operatorTrunc","slice","t","LOGICAL_OPERATORS","includes","lhs","cloneNode","isMemberExpression","object","property","computed","memo","maybeGenerateMemoised","assignmentExpression","replaceWith","logicalExpression","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-logical-assignment-operators\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-logical-assignment-operators\").default,\n\n visitor: {\n AssignmentExpression(path) {\n const { node, scope } = path;\n const { operator, left, right } = node;\n const operatorTrunc = operator.slice(0, -1);\n if (!t.LOGICAL_OPERATORS.includes(operatorTrunc)) {\n return;\n }\n\n const lhs = t.cloneNode(left) as t.Identifier | t.MemberExpression;\n if (t.isMemberExpression(left)) {\n const { object, property, computed } = left;\n const memo = scope.maybeGenerateMemoised(object);\n if (memo) {\n left.object = memo;\n (lhs as t.MemberExpression).object = t.assignmentExpression(\n \"=\",\n t.cloneNode(memo),\n // object must not be Super when `memo` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n object as t.Expression,\n );\n }\n\n if (computed) {\n const memo = scope.maybeGenerateMemoised(property);\n if (memo) {\n left.property = memo;\n (lhs as t.MemberExpression).property = t.assignmentExpression(\n \"=\",\n t.cloneNode(memo),\n // @ts-expect-error todo(flow->ts): property can be t.PrivateName\n property,\n );\n }\n }\n }\n\n path.replaceWith(\n t.logicalExpression(\n // @ts-expect-error operatorTrunc has been tested by t.LOGICAL_OPERATORS\n operatorTrunc,\n lhs,\n t.assignmentExpression(\"=\", left, right),\n ),\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,wCAAwC;IAC9CC,QAAQ,EAKJP,OAAO,CAAC,mDAAmD,CAAC,CAACQ,OAAO;IAExEC,OAAO,EAAE;MACPC,oBAAoBA,CAACC,IAAI,EAAE;QACzB,MAAM;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGF,IAAI;QAC5B,MAAM;UAAEG,QAAQ;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGJ,IAAI;QACtC,MAAMK,aAAa,GAAGH,QAAQ,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAACC,WAAC,CAACC,iBAAiB,CAACC,QAAQ,CAACJ,aAAa,CAAC,EAAE;UAChD;QACF;QAEA,MAAMK,GAAG,GAAGH,WAAC,CAACI,SAAS,CAACR,IAAI,CAAsC;QAClE,IAAII,WAAC,CAACK,kBAAkB,CAACT,IAAI,CAAC,EAAE;UAC9B,MAAM;YAAEU,MAAM;YAAEC,QAAQ;YAAEC;UAAS,CAAC,GAAGZ,IAAI;UAC3C,MAAMa,IAAI,GAAGf,KAAK,CAACgB,qBAAqB,CAACJ,MAAM,CAAC;UAChD,IAAIG,IAAI,EAAE;YACRb,IAAI,CAACU,MAAM,GAAGG,IAAI;YACjBN,GAAG,CAAwBG,MAAM,GAAGN,WAAC,CAACW,oBAAoB,CACzD,GAAG,EACHX,WAAC,CAACI,SAAS,CAACK,IAAI,CAAC,EAGjBH,MACF,CAAC;UACH;UAEA,IAAIE,QAAQ,EAAE;YACZ,MAAMC,IAAI,GAAGf,KAAK,CAACgB,qBAAqB,CAACH,QAAQ,CAAC;YAClD,IAAIE,IAAI,EAAE;cACRb,IAAI,CAACW,QAAQ,GAAGE,IAAI;cACnBN,GAAG,CAAwBI,QAAQ,GAAGP,WAAC,CAACW,oBAAoB,CAC3D,GAAG,EACHX,WAAC,CAACI,SAAS,CAACK,IAAI,CAAC,EAEjBF,QACF,CAAC;YACH;UACF;QACF;QAEAf,IAAI,CAACoB,WAAW,CACdZ,WAAC,CAACa,iBAAiB,CAEjBf,aAAa,EACbK,GAAG,EACHH,WAAC,CAACW,oBAAoB,CAAC,GAAG,EAAEf,IAAI,EAAEC,KAAK,CACzC,CACF,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAiB,OAAA,CAAAzB,OAAA,GAAAN,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","name","inherits","visitor","AssignmentExpression","path","node","scope","operator","left","right","operatorTrunc","slice","t","LOGICAL_OPERATORS","includes","lhs","cloneNode","isMemberExpression","object","property","computed","memo","maybeGenerateMemoised","assignmentExpression","replaceWith","logicalExpression"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-logical-assignment-operators\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-logical-assignment-operators\").default,\n\n visitor: {\n AssignmentExpression(path) {\n const { node, scope } = path;\n const { operator, left, right } = node;\n const operatorTrunc = operator.slice(0, -1);\n if (!t.LOGICAL_OPERATORS.includes(operatorTrunc)) {\n return;\n }\n\n const lhs = t.cloneNode(left) as t.Identifier | t.MemberExpression;\n if (t.isMemberExpression(left)) {\n const { object, property, computed } = left;\n const memo = scope.maybeGenerateMemoised(object);\n if (memo) {\n left.object = memo;\n (lhs as t.MemberExpression).object = t.assignmentExpression(\n \"=\",\n t.cloneNode(memo),\n // object must not be Super when `memo` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n object as t.Expression,\n );\n }\n\n if (computed) {\n const memo = scope.maybeGenerateMemoised(property);\n if (memo) {\n left.property = memo;\n (lhs as t.MemberExpression).property = t.assignmentExpression(\n \"=\",\n t.cloneNode(memo),\n // @ts-expect-error todo(flow->ts): property can be t.PrivateName\n property,\n );\n }\n }\n }\n\n path.replaceWith(\n t.logicalExpression(\n // @ts-expect-error operatorTrunc has been tested by t.LOGICAL_OPERATORS\n operatorTrunc,\n lhs,\n t.assignmentExpression(\"=\", left, right),\n ),\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,wCAAwC;IAC9CC,QAAQ,EAKFT,OAAO,CAAC,mDAAmD,CAAC,CAACI,OAAO;IAE1EM,OAAO,EAAE;MACPC,oBAAoBA,CAACC,IAAI,EAAE;QACzB,MAAM;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGF,IAAI;QAC5B,MAAM;UAAEG,QAAQ;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGJ,IAAI;QACtC,MAAMK,aAAa,GAAGH,QAAQ,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC3C,IAAI,CAACC,WAAC,CAACC,iBAAiB,CAACC,QAAQ,CAACJ,aAAa,CAAC,EAAE;UAChD;QACF;QAEA,MAAMK,GAAG,GAAGH,WAAC,CAACI,SAAS,CAACR,IAAI,CAAsC;QAClE,IAAII,WAAC,CAACK,kBAAkB,CAACT,IAAI,CAAC,EAAE;UAC9B,MAAM;YAAEU,MAAM;YAAEC,QAAQ;YAAEC;UAAS,CAAC,GAAGZ,IAAI;UAC3C,MAAMa,IAAI,GAAGf,KAAK,CAACgB,qBAAqB,CAACJ,MAAM,CAAC;UAChD,IAAIG,IAAI,EAAE;YACRb,IAAI,CAACU,MAAM,GAAGG,IAAI;YACjBN,GAAG,CAAwBG,MAAM,GAAGN,WAAC,CAACW,oBAAoB,CACzD,GAAG,EACHX,WAAC,CAACI,SAAS,CAACK,IAAI,CAAC,EAGjBH,MACF,CAAC;UACH;UAEA,IAAIE,QAAQ,EAAE;YACZ,MAAMC,IAAI,GAAGf,KAAK,CAACgB,qBAAqB,CAACH,QAAQ,CAAC;YAClD,IAAIE,IAAI,EAAE;cACRb,IAAI,CAACW,QAAQ,GAAGE,IAAI;cACnBN,GAAG,CAAwBI,QAAQ,GAAGP,WAAC,CAACW,oBAAoB,CAC3D,GAAG,EACHX,WAAC,CAACI,SAAS,CAACK,IAAI,CAAC,EAEjBF,QACF,CAAC;YACH;UACF;QACF;QAEAf,IAAI,CAACoB,WAAW,CACdZ,WAAC,CAACa,iBAAiB,CAEjBf,aAAa,EACbK,GAAG,EACHH,WAAC,CAACW,oBAAoB,CAAC,GAAG,EAAEf,IAAI,EAAEC,KAAK,CACzC,CACF,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-logical-assignment-operators/package.json b/node_modules/@babel/plugin-transform-logical-assignment-operators/package.json index 963c52aa..d967033b 100644 --- a/node_modules/@babel/plugin-transform-logical-assignment-operators/package.json +++ b/node_modules/@babel/plugin-transform-logical-assignment-operators/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-logical-assignment-operators", - "version": "7.22.11", + "version": "7.23.4", "description": "Transforms logical assignment operators into short-circuited assignments", "repository": { "type": "git", @@ -23,9 +23,9 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.11", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11" + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-logical-assignment-operators", "engines": { diff --git a/node_modules/@babel/plugin-transform-member-expression-literals/README.md b/node_modules/@babel/plugin-transform-member-expression-literals/README.md index 4c04b043..7f8b7f69 100644 --- a/node_modules/@babel/plugin-transform-member-expression-literals/README.md +++ b/node_modules/@babel/plugin-transform-member-expression-literals/README.md @@ -2,7 +2,7 @@ > Ensure that reserved words are quoted in property accesses -See our website [@babel/plugin-transform-member-expression-literals](https://babeljs.io/docs/en/babel-plugin-transform-member-expression-literals) for more information. +See our website [@babel/plugin-transform-member-expression-literals](https://babeljs.io/docs/babel-plugin-transform-member-expression-literals) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-member-expression-literals/lib/index.js b/node_modules/@babel/plugin-transform-member-expression-literals/lib/index.js index 804222d0..47d5f6a5 100644 --- a/node_modules/@babel/plugin-transform-member-expression-literals/lib/index.js +++ b/node_modules/@babel/plugin-transform-member-expression-literals/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-member-expression-literals", @@ -25,6 +25,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-member-expression-literals/lib/index.js.map b/node_modules/@babel/plugin-transform-member-expression-literals/lib/index.js.map index 79310989..3ab22cb0 100644 --- a/node_modules/@babel/plugin-transform-member-expression-literals/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-member-expression-literals/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","name","visitor","MemberExpression","exit","node","prop","property","computed","t","isIdentifier","isValidES3Identifier","stringLiteral","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-member-expression-literals\",\n\n visitor: {\n MemberExpression: {\n exit({ node }) {\n const prop = node.property;\n if (\n !node.computed &&\n t.isIdentifier(prop) &&\n !t.isValidES3Identifier(prop.name)\n ) {\n // foo.default -> foo[\"default\"]\n node.property = t.stringLiteral(prop.name);\n node.computed = true;\n }\n },\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,sCAAsC;IAE5CC,OAAO,EAAE;MACPC,gBAAgB,EAAE;QAChBC,IAAIA,CAAC;UAAEC;QAAK,CAAC,EAAE;UACb,MAAMC,IAAI,GAAGD,IAAI,CAACE,QAAQ;UAC1B,IACE,CAACF,IAAI,CAACG,QAAQ,IACdC,WAAC,CAACC,YAAY,CAACJ,IAAI,CAAC,IACpB,CAACG,WAAC,CAACE,oBAAoB,CAACL,IAAI,CAACL,IAAI,CAAC,EAClC;YAEAI,IAAI,CAACE,QAAQ,GAAGE,WAAC,CAACG,aAAa,CAACN,IAAI,CAACL,IAAI,CAAC;YAC1CI,IAAI,CAACG,QAAQ,GAAG,IAAI;UACtB;QACF;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAK,OAAA,CAAAC,OAAA,GAAAjB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","name","visitor","MemberExpression","exit","node","prop","property","computed","t","isIdentifier","isValidES3Identifier","stringLiteral"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-member-expression-literals\",\n\n visitor: {\n MemberExpression: {\n exit({ node }) {\n const prop = node.property;\n if (\n !node.computed &&\n t.isIdentifier(prop) &&\n !t.isValidES3Identifier(prop.name)\n ) {\n // foo.default -> foo[\"default\"]\n node.property = t.stringLiteral(prop.name);\n node.computed = true;\n }\n },\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,sCAAsC;IAE5CC,OAAO,EAAE;MACPC,gBAAgB,EAAE;QAChBC,IAAIA,CAAC;UAAEC;QAAK,CAAC,EAAE;UACb,MAAMC,IAAI,GAAGD,IAAI,CAACE,QAAQ;UAC1B,IACE,CAACF,IAAI,CAACG,QAAQ,IACdC,WAAC,CAACC,YAAY,CAACJ,IAAI,CAAC,IACpB,CAACG,WAAC,CAACE,oBAAoB,CAACL,IAAI,CAACL,IAAI,CAAC,EAClC;YAEAI,IAAI,CAACE,QAAQ,GAAGE,WAAC,CAACG,aAAa,CAACN,IAAI,CAACL,IAAI,CAAC;YAC1CI,IAAI,CAACG,QAAQ,GAAG,IAAI;UACtB;QACF;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-member-expression-literals/package.json b/node_modules/@babel/plugin-transform-member-expression-literals/package.json index bdd63194..8a1349ac 100644 --- a/node_modules/@babel/plugin-transform-member-expression-literals/package.json +++ b/node_modules/@babel/plugin-transform-member-expression-literals/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-member-expression-literals", - "version": "7.22.5", + "version": "7.23.3", "description": "Ensure that reserved words are quoted in property accesses", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-modules-amd/lib/index.js b/node_modules/@babel/plugin-transform-modules-amd/lib/index.js index 50424a38..e7db686c 100644 --- a/node_modules/@babel/plugin-transform-modules-amd/lib/index.js +++ b/node_modules/@babel/plugin-transform-modules-amd/lib/index.js @@ -28,7 +28,7 @@ function injectWrapper(path, wrapper) { amdFactory.pushContainer("directives", directives); amdFactory.pushContainer("body", body); } -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _api$assumption2; api.assertVersion(7); const { @@ -140,6 +140,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-modules-amd/lib/index.js.map b/node_modules/@babel/plugin-transform-modules-amd/lib/index.js.map index d26f0710..885f7d43 100644 --- a/node_modules/@babel/plugin-transform-modules-amd/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-modules-amd/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperModuleTransforms","_core","buildWrapper","template","statement","buildAnonymousWrapper","injectWrapper","path","wrapper","body","directives","node","amdFactoryCall","pushContainer","get","amdFactoryCallArgs","amdFactory","length","_default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","allowTopLevelThis","strict","strictMode","importInterop","noInterop","constantReexports","assumption","loose","enumerableModuleMeta","name","pre","file","set","visitor","types","importExpression","state","has","isCallExpression","isImport","requireId","resolveId","rejectId","scope","generateUidIdentifier","result","t","identifier","wrapInterop","replaceWith","buildDynamicImport","specifier","expression","ast","cloneNode","Program","exit","isModule","REQUIRE","amdArgs","importNames","push","stringLiteral","moduleName","getModuleName","opts","meta","headers","rewriteModuleStatementsAndPrepareHeader","filename","hasExports","exportName","source","metadata","isSideEffectImport","interop","header","expressionStatement","assignmentExpression","loc","buildNamespaceInitStatements","ensureStatementsHoisted","unshiftContainer","MODULE_NAME","AMD_ARGUMENTS","arrayExpression","IMPORT_NAMES","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport {\n buildDynamicImport,\n isModule,\n rewriteModuleStatementsAndPrepareHeader,\n type RewriteModuleStatementsAndPrepareHeaderOptions,\n hasExports,\n isSideEffectImport,\n buildNamespaceInitStatements,\n ensureStatementsHoisted,\n wrapInterop,\n getModuleName,\n} from \"@babel/helper-module-transforms\";\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst buildWrapper = template.statement(`\n define(MODULE_NAME, AMD_ARGUMENTS, function(IMPORT_NAMES) {\n })\n`);\n\nconst buildAnonymousWrapper = template.statement(`\n define([\"require\"], function(REQUIRE) {\n })\n`);\n\nfunction injectWrapper(\n path: NodePath<t.Program>,\n wrapper: t.ExpressionStatement,\n) {\n const { body, directives } = path.node;\n path.node.directives = [];\n path.node.body = [];\n const amdFactoryCall = path\n .pushContainer(\"body\", wrapper)[0]\n .get(\"expression\") as NodePath<t.CallExpression>;\n const amdFactoryCallArgs = amdFactoryCall.get(\"arguments\");\n const amdFactory = (\n amdFactoryCallArgs[\n amdFactoryCallArgs.length - 1\n ] as NodePath<t.FunctionExpression>\n ).get(\"body\");\n amdFactory.pushContainer(\"directives\", directives);\n amdFactory.pushContainer(\"body\", body);\n}\n\nexport interface Options extends PluginOptions {\n allowTopLevelThis?: boolean;\n importInterop?: RewriteModuleStatementsAndPrepareHeaderOptions[\"importInterop\"];\n loose?: boolean;\n noInterop?: boolean;\n strict?: boolean;\n strictMode?: boolean;\n}\n\ntype State = {\n requireId?: t.Identifier;\n resolveId?: t.Identifier;\n rejectId?: t.Identifier;\n};\n\nexport default declare<State>((api, options: Options) => {\n api.assertVersion(7);\n\n const { allowTopLevelThis, strict, strictMode, importInterop, noInterop } =\n options;\n\n const constantReexports =\n api.assumption(\"constantReexports\") ?? options.loose;\n const enumerableModuleMeta =\n api.assumption(\"enumerableModuleMeta\") ?? options.loose;\n\n return {\n name: \"transform-modules-amd\",\n\n pre() {\n this.file.set(\"@babel/plugin-transform-modules-*\", \"amd\");\n },\n\n visitor: {\n [\"CallExpression\" +\n (api.types.importExpression ? \"|ImportExpression\" : \"\")](\n this: State & PluginPass,\n path: NodePath<t.CallExpression | t.ImportExpression>,\n state: State,\n ) {\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) return;\n if (path.isCallExpression() && !path.get(\"callee\").isImport()) return;\n\n let { requireId, resolveId, rejectId } = state;\n if (!requireId) {\n requireId = path.scope.generateUidIdentifier(\"require\");\n state.requireId = requireId;\n }\n if (!resolveId || !rejectId) {\n resolveId = path.scope.generateUidIdentifier(\"resolve\");\n rejectId = path.scope.generateUidIdentifier(\"reject\");\n state.resolveId = resolveId;\n state.rejectId = rejectId;\n }\n\n let result: t.Node = t.identifier(\"imported\");\n if (!noInterop) {\n result = wrapInterop(this.file.path, result, \"namespace\");\n }\n\n path.replaceWith(\n buildDynamicImport(\n path.node,\n false,\n false,\n specifier => template.expression.ast`\n new Promise((${resolveId}, ${rejectId}) =>\n ${requireId}(\n [${specifier}],\n imported => ${t.cloneNode(resolveId)}(${result}),\n ${t.cloneNode(rejectId)}\n )\n )\n `,\n ),\n );\n },\n Program: {\n exit(path, { requireId }) {\n if (!isModule(path)) {\n if (requireId) {\n injectWrapper(\n path,\n buildAnonymousWrapper({\n REQUIRE: t.cloneNode(requireId),\n }) as t.ExpressionStatement,\n );\n }\n return;\n }\n\n const amdArgs = [];\n const importNames = [];\n if (requireId) {\n amdArgs.push(t.stringLiteral(\"require\"));\n importNames.push(t.cloneNode(requireId));\n }\n\n let moduleName = getModuleName(this.file.opts, options);\n // @ts-expect-error todo(flow->ts): do not reuse variables\n if (moduleName) moduleName = t.stringLiteral(moduleName);\n\n const { meta, headers } = rewriteModuleStatementsAndPrepareHeader(\n path,\n {\n enumerableModuleMeta,\n constantReexports,\n strict,\n strictMode,\n allowTopLevelThis,\n importInterop,\n noInterop,\n filename: this.file.opts.filename,\n },\n );\n\n if (hasExports(meta)) {\n amdArgs.push(t.stringLiteral(\"exports\"));\n\n importNames.push(t.identifier(meta.exportName));\n }\n\n for (const [source, metadata] of meta.source) {\n amdArgs.push(t.stringLiteral(source));\n importNames.push(t.identifier(metadata.name));\n\n if (!isSideEffectImport(metadata)) {\n const interop = wrapInterop(\n path,\n t.identifier(metadata.name),\n metadata.interop,\n );\n if (interop) {\n const header = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.identifier(metadata.name),\n interop,\n ),\n );\n header.loc = metadata.loc;\n headers.push(header);\n }\n }\n\n headers.push(\n ...buildNamespaceInitStatements(\n meta,\n metadata,\n constantReexports,\n ),\n );\n }\n\n ensureStatementsHoisted(headers);\n path.unshiftContainer(\"body\", headers);\n\n injectWrapper(\n path,\n buildWrapper({\n MODULE_NAME: moduleName,\n\n AMD_ARGUMENTS: t.arrayExpression(amdArgs),\n IMPORT_NAMES: importNames,\n }) as t.ExpressionStatement,\n );\n },\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperModuleTransforms","_core","buildWrapper","template","statement","buildAnonymousWrapper","injectWrapper","path","wrapper","body","directives","node","amdFactoryCall","pushContainer","get","amdFactoryCallArgs","amdFactory","length","_default","exports","default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","allowTopLevelThis","strict","strictMode","importInterop","noInterop","constantReexports","assumption","loose","enumerableModuleMeta","name","pre","file","set","visitor","types","importExpression","state","has","isCallExpression","isImport","requireId","resolveId","rejectId","scope","generateUidIdentifier","result","t","identifier","wrapInterop","replaceWith","buildDynamicImport","specifier","expression","ast","cloneNode","Program","exit","isModule","REQUIRE","amdArgs","importNames","push","stringLiteral","moduleName","getModuleName","opts","meta","headers","rewriteModuleStatementsAndPrepareHeader","filename","hasExports","exportName","source","metadata","isSideEffectImport","interop","header","expressionStatement","assignmentExpression","loc","buildNamespaceInitStatements","ensureStatementsHoisted","unshiftContainer","MODULE_NAME","AMD_ARGUMENTS","arrayExpression","IMPORT_NAMES"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport {\n buildDynamicImport,\n isModule,\n rewriteModuleStatementsAndPrepareHeader,\n type RewriteModuleStatementsAndPrepareHeaderOptions,\n hasExports,\n isSideEffectImport,\n buildNamespaceInitStatements,\n ensureStatementsHoisted,\n wrapInterop,\n getModuleName,\n} from \"@babel/helper-module-transforms\";\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst buildWrapper = template.statement(`\n define(MODULE_NAME, AMD_ARGUMENTS, function(IMPORT_NAMES) {\n })\n`);\n\nconst buildAnonymousWrapper = template.statement(`\n define([\"require\"], function(REQUIRE) {\n })\n`);\n\nfunction injectWrapper(\n path: NodePath<t.Program>,\n wrapper: t.ExpressionStatement,\n) {\n const { body, directives } = path.node;\n path.node.directives = [];\n path.node.body = [];\n const amdFactoryCall = path\n .pushContainer(\"body\", wrapper)[0]\n .get(\"expression\") as NodePath<t.CallExpression>;\n const amdFactoryCallArgs = amdFactoryCall.get(\"arguments\");\n const amdFactory = (\n amdFactoryCallArgs[\n amdFactoryCallArgs.length - 1\n ] as NodePath<t.FunctionExpression>\n ).get(\"body\");\n amdFactory.pushContainer(\"directives\", directives);\n amdFactory.pushContainer(\"body\", body);\n}\n\nexport interface Options extends PluginOptions {\n allowTopLevelThis?: boolean;\n importInterop?: RewriteModuleStatementsAndPrepareHeaderOptions[\"importInterop\"];\n loose?: boolean;\n noInterop?: boolean;\n strict?: boolean;\n strictMode?: boolean;\n}\n\ntype State = {\n requireId?: t.Identifier;\n resolveId?: t.Identifier;\n rejectId?: t.Identifier;\n};\n\nexport default declare<State>((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const { allowTopLevelThis, strict, strictMode, importInterop, noInterop } =\n options;\n\n const constantReexports =\n api.assumption(\"constantReexports\") ?? options.loose;\n const enumerableModuleMeta =\n api.assumption(\"enumerableModuleMeta\") ?? options.loose;\n\n return {\n name: \"transform-modules-amd\",\n\n pre() {\n this.file.set(\"@babel/plugin-transform-modules-*\", \"amd\");\n },\n\n visitor: {\n [\"CallExpression\" +\n (api.types.importExpression ? \"|ImportExpression\" : \"\")](\n this: State & PluginPass,\n path: NodePath<t.CallExpression | t.ImportExpression>,\n state: State,\n ) {\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) return;\n if (path.isCallExpression() && !path.get(\"callee\").isImport()) return;\n\n let { requireId, resolveId, rejectId } = state;\n if (!requireId) {\n requireId = path.scope.generateUidIdentifier(\"require\");\n state.requireId = requireId;\n }\n if (!resolveId || !rejectId) {\n resolveId = path.scope.generateUidIdentifier(\"resolve\");\n rejectId = path.scope.generateUidIdentifier(\"reject\");\n state.resolveId = resolveId;\n state.rejectId = rejectId;\n }\n\n let result: t.Node = t.identifier(\"imported\");\n if (!noInterop) {\n result = wrapInterop(this.file.path, result, \"namespace\");\n }\n\n path.replaceWith(\n buildDynamicImport(\n path.node,\n false,\n false,\n specifier => template.expression.ast`\n new Promise((${resolveId}, ${rejectId}) =>\n ${requireId}(\n [${specifier}],\n imported => ${t.cloneNode(resolveId)}(${result}),\n ${t.cloneNode(rejectId)}\n )\n )\n `,\n ),\n );\n },\n Program: {\n exit(path, { requireId }) {\n if (!isModule(path)) {\n if (requireId) {\n injectWrapper(\n path,\n buildAnonymousWrapper({\n REQUIRE: t.cloneNode(requireId),\n }) as t.ExpressionStatement,\n );\n }\n return;\n }\n\n const amdArgs = [];\n const importNames = [];\n if (requireId) {\n amdArgs.push(t.stringLiteral(\"require\"));\n importNames.push(t.cloneNode(requireId));\n }\n\n let moduleName = getModuleName(this.file.opts, options);\n // @ts-expect-error todo(flow->ts): do not reuse variables\n if (moduleName) moduleName = t.stringLiteral(moduleName);\n\n const { meta, headers } = rewriteModuleStatementsAndPrepareHeader(\n path,\n {\n enumerableModuleMeta,\n constantReexports,\n strict,\n strictMode,\n allowTopLevelThis,\n importInterop,\n noInterop,\n filename: this.file.opts.filename,\n },\n );\n\n if (hasExports(meta)) {\n amdArgs.push(t.stringLiteral(\"exports\"));\n\n importNames.push(t.identifier(meta.exportName));\n }\n\n for (const [source, metadata] of meta.source) {\n amdArgs.push(t.stringLiteral(source));\n importNames.push(t.identifier(metadata.name));\n\n if (!isSideEffectImport(metadata)) {\n const interop = wrapInterop(\n path,\n t.identifier(metadata.name),\n metadata.interop,\n );\n if (interop) {\n const header = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.identifier(metadata.name),\n interop,\n ),\n );\n header.loc = metadata.loc;\n headers.push(header);\n }\n }\n\n headers.push(\n ...buildNamespaceInitStatements(\n meta,\n metadata,\n constantReexports,\n ),\n );\n }\n\n ensureStatementsHoisted(headers);\n path.unshiftContainer(\"body\", headers);\n\n injectWrapper(\n path,\n buildWrapper({\n MODULE_NAME: moduleName,\n\n AMD_ARGUMENTS: t.arrayExpression(amdArgs),\n IMPORT_NAMES: importNames,\n }) as t.ExpressionStatement,\n );\n },\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-modules-amd/package.json b/node_modules/@babel/plugin-transform-modules-amd/package.json index 923c4450..95b754a8 100644 --- a/node_modules/@babel/plugin-transform-modules-amd/package.json +++ b/node_modules/@babel/plugin-transform-modules-amd/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-modules-amd", - "version": "7.23.0", + "version": "7.23.3", "description": "This plugin transforms ES2015 modules to AMD", "repository": { "type": "git", @@ -14,7 +14,7 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" }, "keywords": [ @@ -24,9 +24,9 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/plugin-external-helpers": "^7.22.5" + "@babel/plugin-external-helpers": "^7.23.3" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js b/node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js index fe3cf756..f597cce9 100644 --- a/node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js +++ b/node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js @@ -17,7 +17,7 @@ var _core = require("@babel/core"); var _dynamicImport = require("./dynamic-import.js"); var _lazy = require("./lazy.js"); var _hooks = require("./hooks.js"); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _api$assumption2, _api$assumption3; api.assertVersion(7); const { @@ -193,6 +193,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js.map b/node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js.map index dd6e5591..52df13ea 100644 --- a/node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-modules-commonjs/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperModuleTransforms","_helperSimpleAccess","_core","_dynamicImport","_lazy","_hooks","_default","declare","api","options","_api$assumption","_api$assumption2","_api$assumption3","assertVersion","strictNamespace","mjsStrictNamespace","allowTopLevelThis","strict","strictMode","noInterop","importInterop","lazy","allowCommonJSExports","loose","constantReexports","assumption","enumerableModuleMeta","noIncompleteNsImportDetection","Array","isArray","every","item","Error","getAssertion","localName","template","expression","ast","moduleExportsVisitor","ReferencedIdentifier","path","node","name","localBinding","scope","getBinding","rootBinding","parentPath","isObjectProperty","value","isObjectPattern","isAssignmentExpression","left","replaceWith","UpdateExpression","arg","get","isIdentifier","t","assignmentExpression","operator","AssignmentExpression","right","sequenceExpression","isPattern","ids","getOuterBindingIdentifiers","Object","keys","filter","pre","file","set","defineCommonJSHook","lazyImportsHook","visitor","types","importExpression","has","isCallExpression","isImport","callee","rename","parent","transformDynamicImport","Program","exit","state","isModule","simplifyAccess","Set","traverse","moduleName","getModuleName","opts","stringLiteral","hooks","makeInvokers","meta","headers","rewriteModuleStatementsAndPrepareHeader","exportName","wrapReference","getWrapperPayload","esNamespaceOnly","filename","test","source","metadata","loadExpr","callExpression","identifier","header","isSideEffectImport","wrap","expressionStatement","_header","init","wrapInterop","interop","res","buildRequireWrapper","referenced","statement","loc","push","buildNamespaceInitStatements","ensureStatementsHoisted","unshiftContainer","forEach","indexOf","isVariableDeclaration","registerDeclaration","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport {\n isModule,\n rewriteModuleStatementsAndPrepareHeader,\n type RewriteModuleStatementsAndPrepareHeaderOptions,\n isSideEffectImport,\n buildNamespaceInitStatements,\n ensureStatementsHoisted,\n wrapInterop,\n getModuleName,\n} from \"@babel/helper-module-transforms\";\nimport simplifyAccess from \"@babel/helper-simple-access\";\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport type { Visitor, Scope, NodePath } from \"@babel/traverse\";\n\nimport { transformDynamicImport } from \"./dynamic-import.ts\";\nimport { lazyImportsHook } from \"./lazy.ts\";\n\nimport { defineCommonJSHook, makeInvokers } from \"./hooks.ts\";\nexport { defineCommonJSHook };\n\nexport interface Options extends PluginOptions {\n allowCommonJSExports?: boolean;\n allowTopLevelThis?: boolean;\n importInterop?: RewriteModuleStatementsAndPrepareHeaderOptions[\"importInterop\"];\n lazy?: RewriteModuleStatementsAndPrepareHeaderOptions[\"lazy\"];\n loose?: boolean;\n mjsStrictNamespace?: boolean;\n noInterop?: boolean;\n strict?: boolean;\n strictMode?: boolean;\n strictNamespace?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const {\n // 'true' for imports to strictly have .default, instead of having\n // destructuring-like behavior for their properties. This matches the behavior\n // of the initial Node.js (v12) behavior when importing a CommonJS without\n // the __esMoule property.\n // .strictNamespace is for non-mjs files, mjsStrictNamespace if for mjs files.\n strictNamespace = false,\n mjsStrictNamespace = strictNamespace,\n\n allowTopLevelThis,\n strict,\n strictMode,\n noInterop,\n importInterop,\n lazy = false,\n // Defaulting to 'true' for now. May change before 7.x major.\n allowCommonJSExports = true,\n loose = false,\n } = options;\n\n const constantReexports = api.assumption(\"constantReexports\") ?? loose;\n const enumerableModuleMeta = api.assumption(\"enumerableModuleMeta\") ?? loose;\n const noIncompleteNsImportDetection =\n api.assumption(\"noIncompleteNsImportDetection\") ?? false;\n\n if (\n typeof lazy !== \"boolean\" &&\n typeof lazy !== \"function\" &&\n (!Array.isArray(lazy) || !lazy.every(item => typeof item === \"string\"))\n ) {\n throw new Error(`.lazy must be a boolean, array of strings, or a function`);\n }\n\n if (typeof strictNamespace !== \"boolean\") {\n throw new Error(`.strictNamespace must be a boolean, or undefined`);\n }\n if (typeof mjsStrictNamespace !== \"boolean\") {\n throw new Error(`.mjsStrictNamespace must be a boolean, or undefined`);\n }\n\n const getAssertion = (localName: string) => template.expression.ast`\n (function(){\n throw new Error(\n \"The CommonJS '\" + \"${localName}\" + \"' variable is not available in ES6 modules.\" +\n \"Consider setting setting sourceType:script or sourceType:unambiguous in your \" +\n \"Babel config for this file.\");\n })()\n `;\n\n const moduleExportsVisitor: Visitor<{ scope: Scope }> = {\n ReferencedIdentifier(path) {\n const localName = path.node.name;\n if (localName !== \"module\" && localName !== \"exports\") return;\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = this.scope.getBinding(localName);\n\n if (\n // redeclared in this scope\n rootBinding !== localBinding ||\n (path.parentPath.isObjectProperty({ value: path.node }) &&\n path.parentPath.parentPath.isObjectPattern()) ||\n path.parentPath.isAssignmentExpression({ left: path.node }) ||\n path.isAssignmentExpression({ left: path.node })\n ) {\n return;\n }\n\n path.replaceWith(getAssertion(localName));\n },\n\n UpdateExpression(path) {\n const arg = path.get(\"argument\");\n if (!arg.isIdentifier()) return;\n const localName = arg.node.name;\n if (localName !== \"module\" && localName !== \"exports\") return;\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = this.scope.getBinding(localName);\n\n // redeclared in this scope\n if (rootBinding !== localBinding) return;\n\n path.replaceWith(\n t.assignmentExpression(\n path.node.operator[0] + \"=\",\n arg.node,\n getAssertion(localName),\n ),\n );\n },\n\n AssignmentExpression(path) {\n const left = path.get(\"left\");\n if (left.isIdentifier()) {\n const localName = left.node.name;\n if (localName !== \"module\" && localName !== \"exports\") return;\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = this.scope.getBinding(localName);\n\n // redeclared in this scope\n if (rootBinding !== localBinding) return;\n\n const right = path.get(\"right\");\n right.replaceWith(\n t.sequenceExpression([right.node, getAssertion(localName)]),\n );\n } else if (left.isPattern()) {\n const ids = left.getOuterBindingIdentifiers();\n const localName = Object.keys(ids).filter(localName => {\n if (localName !== \"module\" && localName !== \"exports\") return false;\n\n return (\n this.scope.getBinding(localName) ===\n path.scope.getBinding(localName)\n );\n })[0];\n\n if (localName) {\n const right = path.get(\"right\");\n right.replaceWith(\n t.sequenceExpression([right.node, getAssertion(localName)]),\n );\n }\n }\n },\n };\n\n return {\n name: \"transform-modules-commonjs\",\n\n pre() {\n this.file.set(\"@babel/plugin-transform-modules-*\", \"commonjs\");\n\n if (lazy) defineCommonJSHook(this.file, lazyImportsHook(lazy));\n },\n\n visitor: {\n [\"CallExpression\" +\n (api.types.importExpression ? \"|ImportExpression\" : \"\")](\n this: PluginPass,\n path: NodePath<t.CallExpression | t.ImportExpression>,\n ) {\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) return;\n if (path.isCallExpression() && !t.isImport(path.node.callee)) return;\n\n let { scope } = path;\n do {\n scope.rename(\"require\");\n } while ((scope = scope.parent));\n\n transformDynamicImport(path, noInterop, this.file);\n },\n\n Program: {\n exit(path, state) {\n if (!isModule(path)) return;\n\n // Rename the bindings auto-injected into the scope so there is no\n // risk of conflict between the bindings.\n path.scope.rename(\"exports\");\n path.scope.rename(\"module\");\n path.scope.rename(\"require\");\n path.scope.rename(\"__filename\");\n path.scope.rename(\"__dirname\");\n\n // Rewrite references to 'module' and 'exports' to throw exceptions.\n // These objects are specific to CommonJS and are not available in\n // real ES6 implementations.\n if (!allowCommonJSExports) {\n if (process.env.BABEL_8_BREAKING) {\n simplifyAccess(path, new Set([\"module\", \"exports\"]));\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) The third param has been removed in Babel 8.\n simplifyAccess(path, new Set([\"module\", \"exports\"]), false);\n }\n path.traverse(moduleExportsVisitor, {\n scope: path.scope,\n });\n }\n\n let moduleName = getModuleName(this.file.opts, options);\n // @ts-expect-error todo(flow->ts): do not reuse variables\n if (moduleName) moduleName = t.stringLiteral(moduleName);\n\n const hooks = makeInvokers(this.file);\n\n const { meta, headers } = rewriteModuleStatementsAndPrepareHeader(\n path,\n {\n exportName: \"exports\",\n constantReexports,\n enumerableModuleMeta,\n strict,\n strictMode,\n allowTopLevelThis,\n noInterop,\n importInterop,\n wrapReference: hooks.wrapReference,\n getWrapperPayload: hooks.getWrapperPayload,\n esNamespaceOnly:\n typeof state.filename === \"string\" &&\n /\\.mjs$/.test(state.filename)\n ? mjsStrictNamespace\n : strictNamespace,\n noIncompleteNsImportDetection,\n filename: this.file.opts.filename,\n },\n );\n\n for (const [source, metadata] of meta.source) {\n const loadExpr = t.callExpression(t.identifier(\"require\"), [\n t.stringLiteral(source),\n ]);\n\n let header: t.Statement;\n if (isSideEffectImport(metadata)) {\n if (lazy && metadata.wrap === \"function\") {\n throw new Error(\"Assertion failure\");\n }\n\n header = t.expressionStatement(loadExpr);\n } else {\n const init =\n wrapInterop(path, loadExpr, metadata.interop) || loadExpr;\n\n if (metadata.wrap) {\n const res = hooks.buildRequireWrapper(\n metadata.name,\n init,\n metadata.wrap,\n metadata.referenced,\n );\n if (res === false) continue;\n else header = res;\n }\n header ??= template.statement.ast`\n var ${metadata.name} = ${init};\n `;\n }\n header.loc = metadata.loc;\n\n headers.push(header);\n headers.push(\n ...buildNamespaceInitStatements(\n meta,\n metadata,\n constantReexports,\n hooks.wrapReference,\n ),\n );\n }\n\n ensureStatementsHoisted(headers);\n path.unshiftContainer(\"body\", headers);\n path.get(\"body\").forEach(path => {\n if (headers.indexOf(path.node) === -1) return;\n if (path.isVariableDeclaration()) {\n path.scope.registerDeclaration(path);\n }\n });\n },\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperModuleTransforms","_helperSimpleAccess","_core","_dynamicImport","_lazy","_hooks","_default","exports","default","declare","api","options","_api$assumption","_api$assumption2","_api$assumption3","assertVersion","strictNamespace","mjsStrictNamespace","allowTopLevelThis","strict","strictMode","noInterop","importInterop","lazy","allowCommonJSExports","loose","constantReexports","assumption","enumerableModuleMeta","noIncompleteNsImportDetection","Array","isArray","every","item","Error","getAssertion","localName","template","expression","ast","moduleExportsVisitor","ReferencedIdentifier","path","node","name","localBinding","scope","getBinding","rootBinding","parentPath","isObjectProperty","value","isObjectPattern","isAssignmentExpression","left","replaceWith","UpdateExpression","arg","get","isIdentifier","t","assignmentExpression","operator","AssignmentExpression","right","sequenceExpression","isPattern","ids","getOuterBindingIdentifiers","Object","keys","filter","pre","file","set","defineCommonJSHook","lazyImportsHook","visitor","types","importExpression","has","isCallExpression","isImport","callee","rename","parent","transformDynamicImport","Program","exit","state","isModule","simplifyAccess","Set","traverse","moduleName","getModuleName","opts","stringLiteral","hooks","makeInvokers","meta","headers","rewriteModuleStatementsAndPrepareHeader","exportName","wrapReference","getWrapperPayload","esNamespaceOnly","filename","test","source","metadata","loadExpr","callExpression","identifier","header","isSideEffectImport","wrap","expressionStatement","_header","init","wrapInterop","interop","res","buildRequireWrapper","referenced","statement","loc","push","buildNamespaceInitStatements","ensureStatementsHoisted","unshiftContainer","forEach","indexOf","isVariableDeclaration","registerDeclaration"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport {\n isModule,\n rewriteModuleStatementsAndPrepareHeader,\n type RewriteModuleStatementsAndPrepareHeaderOptions,\n isSideEffectImport,\n buildNamespaceInitStatements,\n ensureStatementsHoisted,\n wrapInterop,\n getModuleName,\n} from \"@babel/helper-module-transforms\";\nimport simplifyAccess from \"@babel/helper-simple-access\";\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport type { Visitor, Scope, NodePath } from \"@babel/traverse\";\n\nimport { transformDynamicImport } from \"./dynamic-import.ts\";\nimport { lazyImportsHook } from \"./lazy.ts\";\n\nimport { defineCommonJSHook, makeInvokers } from \"./hooks.ts\";\nexport { defineCommonJSHook };\n\nexport interface Options extends PluginOptions {\n allowCommonJSExports?: boolean;\n allowTopLevelThis?: boolean;\n importInterop?: RewriteModuleStatementsAndPrepareHeaderOptions[\"importInterop\"];\n lazy?: RewriteModuleStatementsAndPrepareHeaderOptions[\"lazy\"];\n loose?: boolean;\n mjsStrictNamespace?: boolean;\n noInterop?: boolean;\n strict?: boolean;\n strictMode?: boolean;\n strictNamespace?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const {\n // 'true' for imports to strictly have .default, instead of having\n // destructuring-like behavior for their properties. This matches the behavior\n // of the initial Node.js (v12) behavior when importing a CommonJS without\n // the __esMoule property.\n // .strictNamespace is for non-mjs files, mjsStrictNamespace if for mjs files.\n strictNamespace = false,\n mjsStrictNamespace = strictNamespace,\n\n allowTopLevelThis,\n strict,\n strictMode,\n noInterop,\n importInterop,\n lazy = false,\n // Defaulting to 'true' for now. May change before 7.x major.\n allowCommonJSExports = true,\n loose = false,\n } = options;\n\n const constantReexports = api.assumption(\"constantReexports\") ?? loose;\n const enumerableModuleMeta = api.assumption(\"enumerableModuleMeta\") ?? loose;\n const noIncompleteNsImportDetection =\n api.assumption(\"noIncompleteNsImportDetection\") ?? false;\n\n if (\n typeof lazy !== \"boolean\" &&\n typeof lazy !== \"function\" &&\n (!Array.isArray(lazy) || !lazy.every(item => typeof item === \"string\"))\n ) {\n throw new Error(`.lazy must be a boolean, array of strings, or a function`);\n }\n\n if (typeof strictNamespace !== \"boolean\") {\n throw new Error(`.strictNamespace must be a boolean, or undefined`);\n }\n if (typeof mjsStrictNamespace !== \"boolean\") {\n throw new Error(`.mjsStrictNamespace must be a boolean, or undefined`);\n }\n\n const getAssertion = (localName: string) => template.expression.ast`\n (function(){\n throw new Error(\n \"The CommonJS '\" + \"${localName}\" + \"' variable is not available in ES6 modules.\" +\n \"Consider setting setting sourceType:script or sourceType:unambiguous in your \" +\n \"Babel config for this file.\");\n })()\n `;\n\n const moduleExportsVisitor: Visitor<{ scope: Scope }> = {\n ReferencedIdentifier(path) {\n const localName = path.node.name;\n if (localName !== \"module\" && localName !== \"exports\") return;\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = this.scope.getBinding(localName);\n\n if (\n // redeclared in this scope\n rootBinding !== localBinding ||\n (path.parentPath.isObjectProperty({ value: path.node }) &&\n path.parentPath.parentPath.isObjectPattern()) ||\n path.parentPath.isAssignmentExpression({ left: path.node }) ||\n path.isAssignmentExpression({ left: path.node })\n ) {\n return;\n }\n\n path.replaceWith(getAssertion(localName));\n },\n\n UpdateExpression(path) {\n const arg = path.get(\"argument\");\n if (!arg.isIdentifier()) return;\n const localName = arg.node.name;\n if (localName !== \"module\" && localName !== \"exports\") return;\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = this.scope.getBinding(localName);\n\n // redeclared in this scope\n if (rootBinding !== localBinding) return;\n\n path.replaceWith(\n t.assignmentExpression(\n path.node.operator[0] + \"=\",\n arg.node,\n getAssertion(localName),\n ),\n );\n },\n\n AssignmentExpression(path) {\n const left = path.get(\"left\");\n if (left.isIdentifier()) {\n const localName = left.node.name;\n if (localName !== \"module\" && localName !== \"exports\") return;\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = this.scope.getBinding(localName);\n\n // redeclared in this scope\n if (rootBinding !== localBinding) return;\n\n const right = path.get(\"right\");\n right.replaceWith(\n t.sequenceExpression([right.node, getAssertion(localName)]),\n );\n } else if (left.isPattern()) {\n const ids = left.getOuterBindingIdentifiers();\n const localName = Object.keys(ids).filter(localName => {\n if (localName !== \"module\" && localName !== \"exports\") return false;\n\n return (\n this.scope.getBinding(localName) ===\n path.scope.getBinding(localName)\n );\n })[0];\n\n if (localName) {\n const right = path.get(\"right\");\n right.replaceWith(\n t.sequenceExpression([right.node, getAssertion(localName)]),\n );\n }\n }\n },\n };\n\n return {\n name: \"transform-modules-commonjs\",\n\n pre() {\n this.file.set(\"@babel/plugin-transform-modules-*\", \"commonjs\");\n\n if (lazy) defineCommonJSHook(this.file, lazyImportsHook(lazy));\n },\n\n visitor: {\n [\"CallExpression\" +\n (api.types.importExpression ? \"|ImportExpression\" : \"\")](\n this: PluginPass,\n path: NodePath<t.CallExpression | t.ImportExpression>,\n ) {\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) return;\n if (path.isCallExpression() && !t.isImport(path.node.callee)) return;\n\n let { scope } = path;\n do {\n scope.rename(\"require\");\n } while ((scope = scope.parent));\n\n transformDynamicImport(path, noInterop, this.file);\n },\n\n Program: {\n exit(path, state) {\n if (!isModule(path)) return;\n\n // Rename the bindings auto-injected into the scope so there is no\n // risk of conflict between the bindings.\n path.scope.rename(\"exports\");\n path.scope.rename(\"module\");\n path.scope.rename(\"require\");\n path.scope.rename(\"__filename\");\n path.scope.rename(\"__dirname\");\n\n // Rewrite references to 'module' and 'exports' to throw exceptions.\n // These objects are specific to CommonJS and are not available in\n // real ES6 implementations.\n if (!allowCommonJSExports) {\n if (process.env.BABEL_8_BREAKING) {\n simplifyAccess(path, new Set([\"module\", \"exports\"]));\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) The third param has been removed in Babel 8.\n simplifyAccess(path, new Set([\"module\", \"exports\"]), false);\n }\n path.traverse(moduleExportsVisitor, {\n scope: path.scope,\n });\n }\n\n let moduleName = getModuleName(this.file.opts, options);\n // @ts-expect-error todo(flow->ts): do not reuse variables\n if (moduleName) moduleName = t.stringLiteral(moduleName);\n\n const hooks = makeInvokers(this.file);\n\n const { meta, headers } = rewriteModuleStatementsAndPrepareHeader(\n path,\n {\n exportName: \"exports\",\n constantReexports,\n enumerableModuleMeta,\n strict,\n strictMode,\n allowTopLevelThis,\n noInterop,\n importInterop,\n wrapReference: hooks.wrapReference,\n getWrapperPayload: hooks.getWrapperPayload,\n esNamespaceOnly:\n typeof state.filename === \"string\" &&\n /\\.mjs$/.test(state.filename)\n ? mjsStrictNamespace\n : strictNamespace,\n noIncompleteNsImportDetection,\n filename: this.file.opts.filename,\n },\n );\n\n for (const [source, metadata] of meta.source) {\n const loadExpr = t.callExpression(t.identifier(\"require\"), [\n t.stringLiteral(source),\n ]);\n\n let header: t.Statement;\n if (isSideEffectImport(metadata)) {\n if (lazy && metadata.wrap === \"function\") {\n throw new Error(\"Assertion failure\");\n }\n\n header = t.expressionStatement(loadExpr);\n } else {\n const init =\n wrapInterop(path, loadExpr, metadata.interop) || loadExpr;\n\n if (metadata.wrap) {\n const res = hooks.buildRequireWrapper(\n metadata.name,\n init,\n metadata.wrap,\n metadata.referenced,\n );\n if (res === false) continue;\n else header = res;\n }\n header ??= template.statement.ast`\n var ${metadata.name} = ${init};\n `;\n }\n header.loc = metadata.loc;\n\n headers.push(header);\n headers.push(\n ...buildNamespaceInitStatements(\n meta,\n metadata,\n constantReexports,\n hooks.wrapReference,\n ),\n );\n }\n\n ensureStatementsHoisted(headers);\n path.unshiftContainer(\"body\", headers);\n path.get(\"body\").forEach(path => {\n if (headers.indexOf(path.node) === -1) return;\n if (path.isVariableDeclaration()) {\n path.scope.registerDeclaration(path);\n }\n });\n },\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-modules-commonjs/lib/lazy.js b/node_modules/@babel/plugin-transform-modules-commonjs/lib/lazy.js index fb62ea2b..d3136fa0 100644 --- a/node_modules/@babel/plugin-transform-modules-commonjs/lib/lazy.js +++ b/node_modules/@babel/plugin-transform-modules-commonjs/lib/lazy.js @@ -8,7 +8,7 @@ var _core = require("@babel/core"); var _helperModuleTransforms = require("@babel/helper-module-transforms"); const lazyImportsHook = lazy => ({ name: `${"@babel/plugin-transform-modules-commonjs"}/lazy`, - version: "7.23.0", + version: "7.23.3", getWrapperPayload(source, metadata) { if ((0, _helperModuleTransforms.isSideEffectImport)(metadata) || metadata.reexportAll) { return null; diff --git a/node_modules/@babel/plugin-transform-modules-commonjs/package.json b/node_modules/@babel/plugin-transform-modules-commonjs/package.json index 2ec7d48c..74f66606 100644 --- a/node_modules/@babel/plugin-transform-modules-commonjs/package.json +++ b/node_modules/@babel/plugin-transform-modules-commonjs/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-modules-commonjs", - "version": "7.23.0", + "version": "7.23.3", "description": "This plugin transforms ES2015 modules to CommonJS", "repository": { "type": "git", @@ -13,7 +13,7 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-simple-access": "^7.22.5" }, @@ -24,9 +24,9 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/plugin-external-helpers": "^7.22.5" + "@babel/plugin-external-helpers": "^7.23.3" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-modules-commonjs", "engines": { diff --git a/node_modules/@babel/plugin-transform-modules-systemjs/lib/index.js b/node_modules/@babel/plugin-transform-modules-systemjs/lib/index.js index 2ea4b522..087b4bd2 100644 --- a/node_modules/@babel/plugin-transform-modules-systemjs/lib/index.js +++ b/node_modules/@babel/plugin-transform-modules-systemjs/lib/index.js @@ -79,7 +79,7 @@ function constructExportCall(path, exportIdent, exportNames, exportValues, expor } return statements; } -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { api.assertVersion(7); const { systemGlobal = "System", @@ -398,6 +398,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-modules-systemjs/lib/index.js.map b/node_modules/@babel/plugin-transform-modules-systemjs/lib/index.js.map index 398c3ecf..ef96a04c 100644 --- a/node_modules/@babel/plugin-transform-modules-systemjs/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-modules-systemjs/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperHoistVariables","_core","_helperModuleTransforms","_helperValidatorIdentifier","buildTemplate","template","statement","buildExportAll","MISSING_PLUGIN_WARNING","MISSING_PLUGIN_ERROR","getExportSpecifierName","node","stringSpecifiers","type","name","stringValue","value","isIdentifierName","add","Error","constructExportCall","path","exportIdent","exportNames","exportValues","exportStarTarget","statements","length","push","t","expressionStatement","callExpression","stringLiteral","objectProperties","i","exportName","exportValue","objectProperty","has","identifier","objectExpression","exportObj","scope","generateUid","variableDeclaration","variableDeclarator","KEY","generateUidIdentifier","EXPORT_OBJ","TARGET","assignmentExpression","memberExpression","_default","declare","api","options","assertVersion","systemGlobal","allowTopLevelThis","reassignmentVisited","WeakSet","reassignmentVisitor","AssignmentExpression|UpdateExpression","arg","isAssignmentExpression","get","isObjectPattern","isArrayPattern","exprs","Object","keys","getBindingIdentifiers","getBinding","exportedNames","exports","exportedName","buildCall","expression","replaceWith","sequenceExpression","isIdentifier","isPostUpdateExpression","isUpdateExpression","prefix","binaryExpression","operator","unaryExpression","cloneNode","argument","numericLiteral","pre","file","set","visitor","types","importExpression","state","isCallExpression","isImport","callee","console","warn","buildDynamicImport","specifier","contextIdent","MetaProperty","meta","property","ReferencedIdentifier","hasBinding","Program","enter","Set","rewriteThis","exit","exportMap","create","modules","beforeBody","setters","sources","variableIds","removedPaths","addExportName","key","val","pushModule","source","specifiers","module","forEach","m","imports","concat","buildExportCall","body","isFunctionDeclaration","isClassDeclaration","id","toExpression","isVariableDeclaration","kind","isImportDeclaration","removeBinding","remove","isExportAllDeclaration","isExportDefaultDeclaration","declar","declaration","buildUndefinedNode","isExportNamedDeclaration","isFunction","isClass","nodes","local","exported","binding","replaceWithMultiple","setterBody","target","isImportNamespaceSpecifier","isImportDefaultSpecifier","importSpecifier","isImportSpecifier","imported","hasExportStar","isExportSpecifier","isStringLiteral","functionExpression","blockStatement","moduleName","getModuleName","opts","hoistVariables","hasInit","unshift","map","traverse","hasTLA","AwaitExpression","stop","Function","skip","noScope","SYSTEM_REGISTER","BEFORE_BODY","MODULE_NAME","SETTERS","arrayExpression","EXECUTE","SOURCES","EXPORT_IDENTIFIER","CONTEXT_IDENTIFIER","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport hoistVariables from \"@babel/helper-hoist-variables\";\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport {\n buildDynamicImport,\n getModuleName,\n rewriteThis,\n} from \"@babel/helper-module-transforms\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport { isIdentifierName } from \"@babel/helper-validator-identifier\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\n\nconst buildTemplate = template.statement(`\n SYSTEM_REGISTER(MODULE_NAME, SOURCES, function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n \"use strict\";\n BEFORE_BODY;\n return {\n setters: SETTERS,\n execute: EXECUTE,\n };\n });\n`);\n\nconst buildExportAll = template.statement(`\n for (var KEY in TARGET) {\n if (KEY !== \"default\" && KEY !== \"__esModule\") EXPORT_OBJ[KEY] = TARGET[KEY];\n }\n`);\n\nconst MISSING_PLUGIN_WARNING = `\\\nWARNING: Dynamic import() transformation must be enabled using the\n @babel/plugin-transform-dynamic-import plugin. Babel 8 will\n no longer transform import() without using that plugin.\n`;\n\nconst MISSING_PLUGIN_ERROR = `\\\nERROR: Dynamic import() transformation must be enabled using the\n @babel/plugin-transform-dynamic-import plugin. Babel 8\n no longer transforms import() without using that plugin.\n`;\n\n//todo: use getExportSpecifierName in `helper-module-transforms` when this library is refactored to NodePath usage.\n\nexport function getExportSpecifierName(\n node: t.Node,\n stringSpecifiers: Set<string>,\n): string {\n if (node.type === \"Identifier\") {\n return node.name;\n } else if (node.type === \"StringLiteral\") {\n const stringValue = node.value;\n // add specifier value to `stringSpecifiers` only when it can not be converted to an identifier name\n // i.e In `import { \"foo\" as bar }`\n // we do not consider `\"foo\"` to be a `stringSpecifier` because we can treat it as\n // `import { foo as bar }`\n // This helps minimize the size of `stringSpecifiers` and reduce overhead of checking valid identifier names\n // when building transpiled code from metadata\n if (!isIdentifierName(stringValue)) {\n stringSpecifiers.add(stringValue);\n }\n return stringValue;\n } else {\n throw new Error(\n `Expected export specifier to be either Identifier or StringLiteral, got ${node.type}`,\n );\n }\n}\n\ntype PluginState = {\n contextIdent: string;\n // List of names that should only be printed as string literals.\n // i.e. `import { \"any unicode\" as foo } from \"some-module\"`\n // `stringSpecifiers` is Set(1) [\"any unicode\"]\n // In most cases `stringSpecifiers` is an empty Set\n stringSpecifiers: Set<string>;\n};\n\ntype ModuleMetadata = {\n key: string;\n imports: any[];\n exports: any[];\n};\n\nfunction constructExportCall(\n path: NodePath<t.Program>,\n exportIdent: t.Identifier,\n exportNames: string[],\n exportValues: t.Expression[],\n exportStarTarget: t.Identifier | null,\n stringSpecifiers: Set<string>,\n) {\n const statements = [];\n if (!exportStarTarget) {\n if (exportNames.length === 1) {\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [\n t.stringLiteral(exportNames[0]),\n exportValues[0],\n ]),\n ),\n );\n } else {\n const objectProperties = [];\n for (let i = 0; i < exportNames.length; i++) {\n const exportName = exportNames[i];\n const exportValue = exportValues[i];\n objectProperties.push(\n t.objectProperty(\n stringSpecifiers.has(exportName)\n ? t.stringLiteral(exportName)\n : t.identifier(exportName),\n exportValue,\n ),\n );\n }\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [t.objectExpression(objectProperties)]),\n ),\n );\n }\n } else {\n const exportObj = path.scope.generateUid(\"exportObj\");\n\n statements.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(exportObj), t.objectExpression([])),\n ]),\n );\n\n statements.push(\n buildExportAll({\n KEY: path.scope.generateUidIdentifier(\"key\"),\n EXPORT_OBJ: t.identifier(exportObj),\n TARGET: exportStarTarget,\n }),\n );\n\n for (let i = 0; i < exportNames.length; i++) {\n const exportName = exportNames[i];\n const exportValue = exportValues[i];\n\n statements.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.identifier(exportObj),\n t.identifier(exportName),\n ),\n exportValue,\n ),\n ),\n );\n }\n\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [t.identifier(exportObj)]),\n ),\n );\n }\n return statements;\n}\n\nexport interface Options extends PluginOptions {\n allowTopLevelThis?: boolean;\n systemGlobal?: string;\n}\n\ntype ReassignmentVisitorState = {\n scope: Scope;\n exports: any;\n buildCall: (name: string, value: t.Expression) => t.ExpressionStatement;\n};\n\nexport default declare<PluginState>((api, options: Options) => {\n api.assertVersion(7);\n\n const { systemGlobal = \"System\", allowTopLevelThis = false } = options;\n const reassignmentVisited = new WeakSet();\n\n const reassignmentVisitor: Visitor<ReassignmentVisitorState> = {\n \"AssignmentExpression|UpdateExpression\"(\n path: NodePath<t.AssignmentExpression | t.UpdateExpression>,\n ) {\n if (reassignmentVisited.has(path.node)) return;\n reassignmentVisited.add(path.node);\n\n const arg = path.isAssignmentExpression()\n ? path.get(\"left\")\n : path.get(\"argument\");\n\n if (arg.isObjectPattern() || arg.isArrayPattern()) {\n const exprs: t.SequenceExpression[\"expressions\"] = [path.node];\n for (const name of Object.keys(arg.getBindingIdentifiers())) {\n if (this.scope.getBinding(name) !== path.scope.getBinding(name)) {\n return;\n }\n const exportedNames = this.exports[name];\n if (!exportedNames) continue;\n for (const exportedName of exportedNames) {\n exprs.push(\n this.buildCall(exportedName, t.identifier(name)).expression,\n );\n }\n }\n path.replaceWith(t.sequenceExpression(exprs));\n return;\n }\n\n if (!arg.isIdentifier()) return;\n\n const name = arg.node.name;\n\n // redeclared in this scope\n if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return;\n\n const exportedNames = this.exports[name];\n if (!exportedNames) return;\n\n let node: t.Expression = path.node;\n\n // if it is a non-prefix update expression (x++ etc)\n // then we must replace with the expression (_export('x', x + 1), x++)\n // in order to ensure the same update expression value\n const isPostUpdateExpression = t.isUpdateExpression(node, {\n prefix: false,\n });\n if (isPostUpdateExpression) {\n node = t.binaryExpression(\n // @ts-expect-error The operator of a post-update expression must be \"++\" | \"--\"\n node.operator[0],\n t.unaryExpression(\n \"+\",\n t.cloneNode(\n // @ts-expect-error node is UpdateExpression\n node.argument,\n ),\n ),\n t.numericLiteral(1),\n );\n }\n\n for (const exportedName of exportedNames) {\n node = this.buildCall(exportedName, node).expression;\n }\n\n if (isPostUpdateExpression) {\n node = t.sequenceExpression([node, path.node]);\n }\n\n path.replaceWith(node);\n },\n };\n\n return {\n name: \"transform-modules-systemjs\",\n\n pre() {\n this.file.set(\"@babel/plugin-transform-modules-*\", \"systemjs\");\n },\n\n visitor: {\n [\"CallExpression\" +\n (api.types.importExpression ? \"|ImportExpression\" : \"\")](\n this: PluginPass & PluginState,\n path: NodePath<t.CallExpression | t.ImportExpression>,\n state: PluginState,\n ) {\n if (path.isCallExpression() && !t.isImport(path.node.callee)) return;\n if (path.isCallExpression()) {\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(MISSING_PLUGIN_ERROR);\n } else {\n console.warn(MISSING_PLUGIN_WARNING);\n }\n }\n } else {\n // when createImportExpressions is true, we require the dynamic import transform\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) {\n throw new Error(MISSING_PLUGIN_ERROR);\n }\n }\n path.replaceWith(\n buildDynamicImport(path.node, false, true, specifier =>\n t.callExpression(\n t.memberExpression(\n t.identifier(state.contextIdent),\n t.identifier(\"import\"),\n ),\n [specifier],\n ),\n ),\n );\n },\n\n MetaProperty(path, state: PluginState) {\n if (\n path.node.meta.name === \"import\" &&\n path.node.property.name === \"meta\"\n ) {\n path.replaceWith(\n t.memberExpression(\n t.identifier(state.contextIdent),\n t.identifier(\"meta\"),\n ),\n );\n }\n },\n\n ReferencedIdentifier(path, state) {\n if (\n path.node.name === \"__moduleName\" &&\n !path.scope.hasBinding(\"__moduleName\")\n ) {\n path.replaceWith(\n t.memberExpression(\n t.identifier(state.contextIdent),\n t.identifier(\"id\"),\n ),\n );\n }\n },\n\n Program: {\n enter(path, state) {\n state.contextIdent = path.scope.generateUid(\"context\");\n state.stringSpecifiers = new Set();\n if (!allowTopLevelThis) {\n rewriteThis(path);\n }\n },\n exit(path, state) {\n const scope = path.scope;\n const exportIdent = scope.generateUid(\"export\");\n const { contextIdent, stringSpecifiers } = state;\n\n const exportMap: Record<string, string[]> = Object.create(null);\n const modules: ModuleMetadata[] = [];\n\n const beforeBody = [];\n const setters: t.Expression[] = [];\n const sources: t.StringLiteral[] = [];\n const variableIds = [];\n const removedPaths = [];\n\n function addExportName(key: string, val: string) {\n exportMap[key] = exportMap[key] || [];\n exportMap[key].push(val);\n }\n\n function pushModule(\n source: string,\n key: \"imports\" | \"exports\",\n specifiers: t.ModuleSpecifier[] | t.ExportAllDeclaration,\n ) {\n let module: ModuleMetadata;\n modules.forEach(function (m) {\n if (m.key === source) {\n module = m;\n }\n });\n if (!module) {\n modules.push(\n (module = { key: source, imports: [], exports: [] }),\n );\n }\n module[key] = module[key].concat(specifiers);\n }\n\n function buildExportCall(name: string, val: t.Expression) {\n return t.expressionStatement(\n t.callExpression(t.identifier(exportIdent), [\n t.stringLiteral(name),\n val,\n ]),\n );\n }\n\n const exportNames = [];\n const exportValues: t.Expression[] = [];\n\n const body = path.get(\"body\");\n\n for (const path of body) {\n if (path.isFunctionDeclaration()) {\n beforeBody.push(path.node);\n removedPaths.push(path);\n } else if (path.isClassDeclaration()) {\n variableIds.push(t.cloneNode(path.node.id));\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(path.node.id),\n t.toExpression(path.node),\n ),\n ),\n );\n } else if (path.isVariableDeclaration()) {\n // Convert top-level variable declarations to \"var\",\n // because they must be hoisted\n path.node.kind = \"var\";\n } else if (path.isImportDeclaration()) {\n const source = path.node.source.value;\n pushModule(source, \"imports\", path.node.specifiers);\n for (const name of Object.keys(path.getBindingIdentifiers())) {\n scope.removeBinding(name);\n variableIds.push(t.identifier(name));\n }\n path.remove();\n } else if (path.isExportAllDeclaration()) {\n pushModule(path.node.source.value, \"exports\", path.node);\n path.remove();\n } else if (path.isExportDefaultDeclaration()) {\n const declar = path.node.declaration;\n if (t.isClassDeclaration(declar)) {\n const id = declar.id;\n if (id) {\n exportNames.push(\"default\");\n exportValues.push(scope.buildUndefinedNode());\n variableIds.push(t.cloneNode(id));\n addExportName(id.name, \"default\");\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(id),\n t.toExpression(declar),\n ),\n ),\n );\n } else {\n exportNames.push(\"default\");\n exportValues.push(t.toExpression(declar));\n removedPaths.push(path);\n }\n } else if (t.isFunctionDeclaration(declar)) {\n const id = declar.id;\n if (id) {\n beforeBody.push(declar);\n exportNames.push(\"default\");\n exportValues.push(t.cloneNode(id));\n addExportName(id.name, \"default\");\n } else {\n exportNames.push(\"default\");\n exportValues.push(t.toExpression(declar));\n }\n removedPaths.push(path);\n } else {\n // @ts-expect-error TSDeclareFunction is not expected here\n path.replaceWith(buildExportCall(\"default\", declar));\n }\n } else if (path.isExportNamedDeclaration()) {\n const declar = path.node.declaration;\n\n if (declar) {\n path.replaceWith(declar);\n\n if (t.isFunction(declar)) {\n const name = declar.id.name;\n addExportName(name, name);\n beforeBody.push(declar);\n exportNames.push(name);\n exportValues.push(t.cloneNode(declar.id));\n removedPaths.push(path);\n } else if (t.isClass(declar)) {\n const name = declar.id.name;\n exportNames.push(name);\n exportValues.push(scope.buildUndefinedNode());\n variableIds.push(t.cloneNode(declar.id));\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(declar.id),\n t.toExpression(declar),\n ),\n ),\n );\n addExportName(name, name);\n } else {\n if (t.isVariableDeclaration(declar)) {\n // Convert top-level variable declarations to \"var\",\n // because they must be hoisted\n declar.kind = \"var\";\n }\n for (const name of Object.keys(\n t.getBindingIdentifiers(declar),\n )) {\n addExportName(name, name);\n }\n }\n } else {\n const specifiers = path.node.specifiers;\n if (specifiers?.length) {\n if (path.node.source) {\n pushModule(path.node.source.value, \"exports\", specifiers);\n path.remove();\n } else {\n const nodes = [];\n\n for (const specifier of specifiers) {\n // @ts-expect-error This isn't an \"export ... from\" declaration\n // because path.node.source is falsy, so the local specifier exists.\n const { local, exported } = specifier;\n\n const binding = scope.getBinding(local.name);\n const exportedName = getExportSpecifierName(\n exported,\n stringSpecifiers,\n );\n // hoisted function export\n if (\n binding &&\n t.isFunctionDeclaration(binding.path.node)\n ) {\n exportNames.push(exportedName);\n exportValues.push(t.cloneNode(local));\n }\n // only globals also exported this way\n else if (!binding) {\n nodes.push(buildExportCall(exportedName, local));\n }\n addExportName(local.name, exportedName);\n }\n\n path.replaceWithMultiple(nodes);\n }\n } else {\n path.remove();\n }\n }\n }\n }\n\n modules.forEach(function (specifiers) {\n const setterBody = [];\n const target = scope.generateUid(specifiers.key);\n\n for (let specifier of specifiers.imports) {\n if (t.isImportNamespaceSpecifier(specifier)) {\n setterBody.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n specifier.local,\n t.identifier(target),\n ),\n ),\n );\n } else if (t.isImportDefaultSpecifier(specifier)) {\n specifier = t.importSpecifier(\n specifier.local,\n t.identifier(\"default\"),\n );\n }\n\n if (t.isImportSpecifier(specifier)) {\n const { imported } = specifier;\n setterBody.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n specifier.local,\n t.memberExpression(\n t.identifier(target),\n specifier.imported,\n /* computed */ imported.type === \"StringLiteral\",\n ),\n ),\n ),\n );\n }\n }\n\n if (specifiers.exports.length) {\n const exportNames = [];\n const exportValues = [];\n let hasExportStar = false;\n\n for (const node of specifiers.exports) {\n if (t.isExportAllDeclaration(node)) {\n hasExportStar = true;\n } else if (t.isExportSpecifier(node)) {\n const exportedName = getExportSpecifierName(\n node.exported,\n stringSpecifiers,\n );\n exportNames.push(exportedName);\n exportValues.push(\n t.memberExpression(\n t.identifier(target),\n node.local,\n t.isStringLiteral(node.local),\n ),\n );\n } else {\n // todo\n }\n }\n\n setterBody.push(\n ...constructExportCall(\n path,\n t.identifier(exportIdent),\n exportNames,\n exportValues,\n hasExportStar ? t.identifier(target) : null,\n stringSpecifiers,\n ),\n );\n }\n\n sources.push(t.stringLiteral(specifiers.key));\n setters.push(\n t.functionExpression(\n null,\n [t.identifier(target)],\n t.blockStatement(setterBody),\n ),\n );\n });\n\n let moduleName = getModuleName(this.file.opts, options);\n // @ts-expect-error todo(flow->ts): do not reuse variables\n if (moduleName) moduleName = t.stringLiteral(moduleName);\n\n hoistVariables(path, (id, name, hasInit) => {\n variableIds.push(id);\n if (!hasInit && name in exportMap) {\n for (const exported of exportMap[name]) {\n exportNames.push(exported);\n exportValues.push(scope.buildUndefinedNode());\n }\n }\n });\n\n if (variableIds.length) {\n beforeBody.unshift(\n t.variableDeclaration(\n \"var\",\n variableIds.map(id => t.variableDeclarator(id)),\n ),\n );\n }\n\n if (exportNames.length) {\n beforeBody.push(\n ...constructExportCall(\n path,\n t.identifier(exportIdent),\n exportNames,\n exportValues,\n null,\n stringSpecifiers,\n ),\n );\n }\n\n path.traverse(reassignmentVisitor, {\n exports: exportMap,\n buildCall: buildExportCall,\n scope,\n });\n\n for (const path of removedPaths) {\n path.remove();\n }\n\n let hasTLA = false;\n path.traverse({\n AwaitExpression(path) {\n hasTLA = true;\n path.stop();\n },\n Function(path) {\n path.skip();\n },\n // @ts-expect-error - todo: add noScope to type definitions\n noScope: true,\n });\n\n path.node.body = [\n buildTemplate({\n SYSTEM_REGISTER: t.memberExpression(\n t.identifier(systemGlobal),\n t.identifier(\"register\"),\n ),\n BEFORE_BODY: beforeBody,\n MODULE_NAME: moduleName,\n SETTERS: t.arrayExpression(setters),\n EXECUTE: t.functionExpression(\n null,\n [],\n t.blockStatement(path.node.body),\n false,\n hasTLA,\n ),\n SOURCES: t.arrayExpression(sources),\n EXPORT_IDENTIFIER: t.identifier(exportIdent),\n CONTEXT_IDENTIFIER: t.identifier(contextIdent),\n }),\n ];\n },\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperHoistVariables","_core","_helperModuleTransforms","_helperValidatorIdentifier","buildTemplate","template","statement","buildExportAll","MISSING_PLUGIN_WARNING","MISSING_PLUGIN_ERROR","getExportSpecifierName","node","stringSpecifiers","type","name","stringValue","value","isIdentifierName","add","Error","constructExportCall","path","exportIdent","exportNames","exportValues","exportStarTarget","statements","length","push","t","expressionStatement","callExpression","stringLiteral","objectProperties","i","exportName","exportValue","objectProperty","has","identifier","objectExpression","exportObj","scope","generateUid","variableDeclaration","variableDeclarator","KEY","generateUidIdentifier","EXPORT_OBJ","TARGET","assignmentExpression","memberExpression","_default","exports","default","declare","api","options","assertVersion","systemGlobal","allowTopLevelThis","reassignmentVisited","WeakSet","reassignmentVisitor","AssignmentExpression|UpdateExpression","arg","isAssignmentExpression","get","isObjectPattern","isArrayPattern","exprs","Object","keys","getBindingIdentifiers","getBinding","exportedNames","exportedName","buildCall","expression","replaceWith","sequenceExpression","isIdentifier","isPostUpdateExpression","isUpdateExpression","prefix","binaryExpression","operator","unaryExpression","cloneNode","argument","numericLiteral","pre","file","set","visitor","types","importExpression","state","isCallExpression","isImport","callee","console","warn","buildDynamicImport","specifier","contextIdent","MetaProperty","meta","property","ReferencedIdentifier","hasBinding","Program","enter","Set","rewriteThis","exit","exportMap","create","modules","beforeBody","setters","sources","variableIds","removedPaths","addExportName","key","val","pushModule","source","specifiers","module","forEach","m","imports","concat","buildExportCall","body","isFunctionDeclaration","isClassDeclaration","id","toExpression","isVariableDeclaration","kind","isImportDeclaration","removeBinding","remove","isExportAllDeclaration","isExportDefaultDeclaration","declar","declaration","buildUndefinedNode","isExportNamedDeclaration","isFunction","isClass","nodes","local","exported","binding","replaceWithMultiple","setterBody","target","isImportNamespaceSpecifier","isImportDefaultSpecifier","importSpecifier","isImportSpecifier","imported","hasExportStar","isExportSpecifier","isStringLiteral","functionExpression","blockStatement","moduleName","getModuleName","opts","hoistVariables","hasInit","unshift","map","traverse","hasTLA","AwaitExpression","stop","Function","skip","noScope","SYSTEM_REGISTER","BEFORE_BODY","MODULE_NAME","SETTERS","arrayExpression","EXECUTE","SOURCES","EXPORT_IDENTIFIER","CONTEXT_IDENTIFIER"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport hoistVariables from \"@babel/helper-hoist-variables\";\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport {\n buildDynamicImport,\n getModuleName,\n rewriteThis,\n} from \"@babel/helper-module-transforms\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport { isIdentifierName } from \"@babel/helper-validator-identifier\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\n\nconst buildTemplate = template.statement(`\n SYSTEM_REGISTER(MODULE_NAME, SOURCES, function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n \"use strict\";\n BEFORE_BODY;\n return {\n setters: SETTERS,\n execute: EXECUTE,\n };\n });\n`);\n\nconst buildExportAll = template.statement(`\n for (var KEY in TARGET) {\n if (KEY !== \"default\" && KEY !== \"__esModule\") EXPORT_OBJ[KEY] = TARGET[KEY];\n }\n`);\n\nconst MISSING_PLUGIN_WARNING = `\\\nWARNING: Dynamic import() transformation must be enabled using the\n @babel/plugin-transform-dynamic-import plugin. Babel 8 will\n no longer transform import() without using that plugin.\n`;\n\nconst MISSING_PLUGIN_ERROR = `\\\nERROR: Dynamic import() transformation must be enabled using the\n @babel/plugin-transform-dynamic-import plugin. Babel 8\n no longer transforms import() without using that plugin.\n`;\n\n//todo: use getExportSpecifierName in `helper-module-transforms` when this library is refactored to NodePath usage.\n\nexport function getExportSpecifierName(\n node: t.Node,\n stringSpecifiers: Set<string>,\n): string {\n if (node.type === \"Identifier\") {\n return node.name;\n } else if (node.type === \"StringLiteral\") {\n const stringValue = node.value;\n // add specifier value to `stringSpecifiers` only when it can not be converted to an identifier name\n // i.e In `import { \"foo\" as bar }`\n // we do not consider `\"foo\"` to be a `stringSpecifier` because we can treat it as\n // `import { foo as bar }`\n // This helps minimize the size of `stringSpecifiers` and reduce overhead of checking valid identifier names\n // when building transpiled code from metadata\n if (!isIdentifierName(stringValue)) {\n stringSpecifiers.add(stringValue);\n }\n return stringValue;\n } else {\n throw new Error(\n `Expected export specifier to be either Identifier or StringLiteral, got ${node.type}`,\n );\n }\n}\n\ntype PluginState = {\n contextIdent: string;\n // List of names that should only be printed as string literals.\n // i.e. `import { \"any unicode\" as foo } from \"some-module\"`\n // `stringSpecifiers` is Set(1) [\"any unicode\"]\n // In most cases `stringSpecifiers` is an empty Set\n stringSpecifiers: Set<string>;\n};\n\ntype ModuleMetadata = {\n key: string;\n imports: any[];\n exports: any[];\n};\n\nfunction constructExportCall(\n path: NodePath<t.Program>,\n exportIdent: t.Identifier,\n exportNames: string[],\n exportValues: t.Expression[],\n exportStarTarget: t.Identifier | null,\n stringSpecifiers: Set<string>,\n) {\n const statements = [];\n if (!exportStarTarget) {\n if (exportNames.length === 1) {\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [\n t.stringLiteral(exportNames[0]),\n exportValues[0],\n ]),\n ),\n );\n } else {\n const objectProperties = [];\n for (let i = 0; i < exportNames.length; i++) {\n const exportName = exportNames[i];\n const exportValue = exportValues[i];\n objectProperties.push(\n t.objectProperty(\n stringSpecifiers.has(exportName)\n ? t.stringLiteral(exportName)\n : t.identifier(exportName),\n exportValue,\n ),\n );\n }\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [t.objectExpression(objectProperties)]),\n ),\n );\n }\n } else {\n const exportObj = path.scope.generateUid(\"exportObj\");\n\n statements.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(exportObj), t.objectExpression([])),\n ]),\n );\n\n statements.push(\n buildExportAll({\n KEY: path.scope.generateUidIdentifier(\"key\"),\n EXPORT_OBJ: t.identifier(exportObj),\n TARGET: exportStarTarget,\n }),\n );\n\n for (let i = 0; i < exportNames.length; i++) {\n const exportName = exportNames[i];\n const exportValue = exportValues[i];\n\n statements.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.identifier(exportObj),\n t.identifier(exportName),\n ),\n exportValue,\n ),\n ),\n );\n }\n\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [t.identifier(exportObj)]),\n ),\n );\n }\n return statements;\n}\n\nexport interface Options extends PluginOptions {\n allowTopLevelThis?: boolean;\n systemGlobal?: string;\n}\n\ntype ReassignmentVisitorState = {\n scope: Scope;\n exports: any;\n buildCall: (name: string, value: t.Expression) => t.ExpressionStatement;\n};\n\nexport default declare<PluginState>((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const { systemGlobal = \"System\", allowTopLevelThis = false } = options;\n const reassignmentVisited = new WeakSet();\n\n const reassignmentVisitor: Visitor<ReassignmentVisitorState> = {\n \"AssignmentExpression|UpdateExpression\"(\n path: NodePath<t.AssignmentExpression | t.UpdateExpression>,\n ) {\n if (reassignmentVisited.has(path.node)) return;\n reassignmentVisited.add(path.node);\n\n const arg = path.isAssignmentExpression()\n ? path.get(\"left\")\n : path.get(\"argument\");\n\n if (arg.isObjectPattern() || arg.isArrayPattern()) {\n const exprs: t.SequenceExpression[\"expressions\"] = [path.node];\n for (const name of Object.keys(arg.getBindingIdentifiers())) {\n if (this.scope.getBinding(name) !== path.scope.getBinding(name)) {\n return;\n }\n const exportedNames = this.exports[name];\n if (!exportedNames) continue;\n for (const exportedName of exportedNames) {\n exprs.push(\n this.buildCall(exportedName, t.identifier(name)).expression,\n );\n }\n }\n path.replaceWith(t.sequenceExpression(exprs));\n return;\n }\n\n if (!arg.isIdentifier()) return;\n\n const name = arg.node.name;\n\n // redeclared in this scope\n if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return;\n\n const exportedNames = this.exports[name];\n if (!exportedNames) return;\n\n let node: t.Expression = path.node;\n\n // if it is a non-prefix update expression (x++ etc)\n // then we must replace with the expression (_export('x', x + 1), x++)\n // in order to ensure the same update expression value\n const isPostUpdateExpression = t.isUpdateExpression(node, {\n prefix: false,\n });\n if (isPostUpdateExpression) {\n node = t.binaryExpression(\n // @ts-expect-error The operator of a post-update expression must be \"++\" | \"--\"\n node.operator[0],\n t.unaryExpression(\n \"+\",\n t.cloneNode(\n // @ts-expect-error node is UpdateExpression\n node.argument,\n ),\n ),\n t.numericLiteral(1),\n );\n }\n\n for (const exportedName of exportedNames) {\n node = this.buildCall(exportedName, node).expression;\n }\n\n if (isPostUpdateExpression) {\n node = t.sequenceExpression([node, path.node]);\n }\n\n path.replaceWith(node);\n },\n };\n\n return {\n name: \"transform-modules-systemjs\",\n\n pre() {\n this.file.set(\"@babel/plugin-transform-modules-*\", \"systemjs\");\n },\n\n visitor: {\n [\"CallExpression\" +\n (api.types.importExpression ? \"|ImportExpression\" : \"\")](\n this: PluginPass & PluginState,\n path: NodePath<t.CallExpression | t.ImportExpression>,\n state: PluginState,\n ) {\n if (path.isCallExpression() && !t.isImport(path.node.callee)) return;\n if (path.isCallExpression()) {\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(MISSING_PLUGIN_ERROR);\n } else {\n console.warn(MISSING_PLUGIN_WARNING);\n }\n }\n } else {\n // when createImportExpressions is true, we require the dynamic import transform\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) {\n throw new Error(MISSING_PLUGIN_ERROR);\n }\n }\n path.replaceWith(\n buildDynamicImport(path.node, false, true, specifier =>\n t.callExpression(\n t.memberExpression(\n t.identifier(state.contextIdent),\n t.identifier(\"import\"),\n ),\n [specifier],\n ),\n ),\n );\n },\n\n MetaProperty(path, state: PluginState) {\n if (\n path.node.meta.name === \"import\" &&\n path.node.property.name === \"meta\"\n ) {\n path.replaceWith(\n t.memberExpression(\n t.identifier(state.contextIdent),\n t.identifier(\"meta\"),\n ),\n );\n }\n },\n\n ReferencedIdentifier(path, state) {\n if (\n path.node.name === \"__moduleName\" &&\n !path.scope.hasBinding(\"__moduleName\")\n ) {\n path.replaceWith(\n t.memberExpression(\n t.identifier(state.contextIdent),\n t.identifier(\"id\"),\n ),\n );\n }\n },\n\n Program: {\n enter(path, state) {\n state.contextIdent = path.scope.generateUid(\"context\");\n state.stringSpecifiers = new Set();\n if (!allowTopLevelThis) {\n rewriteThis(path);\n }\n },\n exit(path, state) {\n const scope = path.scope;\n const exportIdent = scope.generateUid(\"export\");\n const { contextIdent, stringSpecifiers } = state;\n\n const exportMap: Record<string, string[]> = Object.create(null);\n const modules: ModuleMetadata[] = [];\n\n const beforeBody = [];\n const setters: t.Expression[] = [];\n const sources: t.StringLiteral[] = [];\n const variableIds = [];\n const removedPaths = [];\n\n function addExportName(key: string, val: string) {\n exportMap[key] = exportMap[key] || [];\n exportMap[key].push(val);\n }\n\n function pushModule(\n source: string,\n key: \"imports\" | \"exports\",\n specifiers: t.ModuleSpecifier[] | t.ExportAllDeclaration,\n ) {\n let module: ModuleMetadata;\n modules.forEach(function (m) {\n if (m.key === source) {\n module = m;\n }\n });\n if (!module) {\n modules.push(\n (module = { key: source, imports: [], exports: [] }),\n );\n }\n module[key] = module[key].concat(specifiers);\n }\n\n function buildExportCall(name: string, val: t.Expression) {\n return t.expressionStatement(\n t.callExpression(t.identifier(exportIdent), [\n t.stringLiteral(name),\n val,\n ]),\n );\n }\n\n const exportNames = [];\n const exportValues: t.Expression[] = [];\n\n const body = path.get(\"body\");\n\n for (const path of body) {\n if (path.isFunctionDeclaration()) {\n beforeBody.push(path.node);\n removedPaths.push(path);\n } else if (path.isClassDeclaration()) {\n variableIds.push(t.cloneNode(path.node.id));\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(path.node.id),\n t.toExpression(path.node),\n ),\n ),\n );\n } else if (path.isVariableDeclaration()) {\n // Convert top-level variable declarations to \"var\",\n // because they must be hoisted\n path.node.kind = \"var\";\n } else if (path.isImportDeclaration()) {\n const source = path.node.source.value;\n pushModule(source, \"imports\", path.node.specifiers);\n for (const name of Object.keys(path.getBindingIdentifiers())) {\n scope.removeBinding(name);\n variableIds.push(t.identifier(name));\n }\n path.remove();\n } else if (path.isExportAllDeclaration()) {\n pushModule(path.node.source.value, \"exports\", path.node);\n path.remove();\n } else if (path.isExportDefaultDeclaration()) {\n const declar = path.node.declaration;\n if (t.isClassDeclaration(declar)) {\n const id = declar.id;\n if (id) {\n exportNames.push(\"default\");\n exportValues.push(scope.buildUndefinedNode());\n variableIds.push(t.cloneNode(id));\n addExportName(id.name, \"default\");\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(id),\n t.toExpression(declar),\n ),\n ),\n );\n } else {\n exportNames.push(\"default\");\n exportValues.push(t.toExpression(declar));\n removedPaths.push(path);\n }\n } else if (t.isFunctionDeclaration(declar)) {\n const id = declar.id;\n if (id) {\n beforeBody.push(declar);\n exportNames.push(\"default\");\n exportValues.push(t.cloneNode(id));\n addExportName(id.name, \"default\");\n } else {\n exportNames.push(\"default\");\n exportValues.push(t.toExpression(declar));\n }\n removedPaths.push(path);\n } else {\n // @ts-expect-error TSDeclareFunction is not expected here\n path.replaceWith(buildExportCall(\"default\", declar));\n }\n } else if (path.isExportNamedDeclaration()) {\n const declar = path.node.declaration;\n\n if (declar) {\n path.replaceWith(declar);\n\n if (t.isFunction(declar)) {\n const name = declar.id.name;\n addExportName(name, name);\n beforeBody.push(declar);\n exportNames.push(name);\n exportValues.push(t.cloneNode(declar.id));\n removedPaths.push(path);\n } else if (t.isClass(declar)) {\n const name = declar.id.name;\n exportNames.push(name);\n exportValues.push(scope.buildUndefinedNode());\n variableIds.push(t.cloneNode(declar.id));\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(declar.id),\n t.toExpression(declar),\n ),\n ),\n );\n addExportName(name, name);\n } else {\n if (t.isVariableDeclaration(declar)) {\n // Convert top-level variable declarations to \"var\",\n // because they must be hoisted\n declar.kind = \"var\";\n }\n for (const name of Object.keys(\n t.getBindingIdentifiers(declar),\n )) {\n addExportName(name, name);\n }\n }\n } else {\n const specifiers = path.node.specifiers;\n if (specifiers?.length) {\n if (path.node.source) {\n pushModule(path.node.source.value, \"exports\", specifiers);\n path.remove();\n } else {\n const nodes = [];\n\n for (const specifier of specifiers) {\n // @ts-expect-error This isn't an \"export ... from\" declaration\n // because path.node.source is falsy, so the local specifier exists.\n const { local, exported } = specifier;\n\n const binding = scope.getBinding(local.name);\n const exportedName = getExportSpecifierName(\n exported,\n stringSpecifiers,\n );\n // hoisted function export\n if (\n binding &&\n t.isFunctionDeclaration(binding.path.node)\n ) {\n exportNames.push(exportedName);\n exportValues.push(t.cloneNode(local));\n }\n // only globals also exported this way\n else if (!binding) {\n nodes.push(buildExportCall(exportedName, local));\n }\n addExportName(local.name, exportedName);\n }\n\n path.replaceWithMultiple(nodes);\n }\n } else {\n path.remove();\n }\n }\n }\n }\n\n modules.forEach(function (specifiers) {\n const setterBody = [];\n const target = scope.generateUid(specifiers.key);\n\n for (let specifier of specifiers.imports) {\n if (t.isImportNamespaceSpecifier(specifier)) {\n setterBody.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n specifier.local,\n t.identifier(target),\n ),\n ),\n );\n } else if (t.isImportDefaultSpecifier(specifier)) {\n specifier = t.importSpecifier(\n specifier.local,\n t.identifier(\"default\"),\n );\n }\n\n if (t.isImportSpecifier(specifier)) {\n const { imported } = specifier;\n setterBody.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n specifier.local,\n t.memberExpression(\n t.identifier(target),\n specifier.imported,\n /* computed */ imported.type === \"StringLiteral\",\n ),\n ),\n ),\n );\n }\n }\n\n if (specifiers.exports.length) {\n const exportNames = [];\n const exportValues = [];\n let hasExportStar = false;\n\n for (const node of specifiers.exports) {\n if (t.isExportAllDeclaration(node)) {\n hasExportStar = true;\n } else if (t.isExportSpecifier(node)) {\n const exportedName = getExportSpecifierName(\n node.exported,\n stringSpecifiers,\n );\n exportNames.push(exportedName);\n exportValues.push(\n t.memberExpression(\n t.identifier(target),\n node.local,\n t.isStringLiteral(node.local),\n ),\n );\n } else {\n // todo\n }\n }\n\n setterBody.push(\n ...constructExportCall(\n path,\n t.identifier(exportIdent),\n exportNames,\n exportValues,\n hasExportStar ? t.identifier(target) : null,\n stringSpecifiers,\n ),\n );\n }\n\n sources.push(t.stringLiteral(specifiers.key));\n setters.push(\n t.functionExpression(\n null,\n [t.identifier(target)],\n t.blockStatement(setterBody),\n ),\n );\n });\n\n let moduleName = getModuleName(this.file.opts, options);\n // @ts-expect-error todo(flow->ts): do not reuse variables\n if (moduleName) moduleName = t.stringLiteral(moduleName);\n\n hoistVariables(path, (id, name, hasInit) => {\n variableIds.push(id);\n if (!hasInit && name in exportMap) {\n for (const exported of exportMap[name]) {\n exportNames.push(exported);\n exportValues.push(scope.buildUndefinedNode());\n }\n }\n });\n\n if (variableIds.length) {\n beforeBody.unshift(\n t.variableDeclaration(\n \"var\",\n variableIds.map(id => t.variableDeclarator(id)),\n ),\n );\n }\n\n if (exportNames.length) {\n beforeBody.push(\n ...constructExportCall(\n path,\n t.identifier(exportIdent),\n exportNames,\n exportValues,\n null,\n stringSpecifiers,\n ),\n );\n }\n\n path.traverse(reassignmentVisitor, {\n exports: exportMap,\n buildCall: buildExportCall,\n scope,\n });\n\n for (const path of removedPaths) {\n path.remove();\n }\n\n let hasTLA = false;\n path.traverse({\n AwaitExpression(path) {\n hasTLA = true;\n path.stop();\n },\n Function(path) {\n path.skip();\n },\n // @ts-expect-error - todo: add noScope to type definitions\n noScope: true,\n });\n\n path.node.body = [\n buildTemplate({\n SYSTEM_REGISTER: t.memberExpression(\n t.identifier(systemGlobal),\n t.identifier(\"register\"),\n ),\n BEFORE_BODY: beforeBody,\n MODULE_NAME: moduleName,\n SETTERS: t.arrayExpression(setters),\n EXECUTE: t.functionExpression(\n null,\n [],\n t.blockStatement(path.node.body),\n false,\n hasTLA,\n ),\n SOURCES: t.arrayExpression(sources),\n EXPORT_IDENTIFIER: t.identifier(exportIdent),\n CONTEXT_IDENTIFIER: t.identifier(contextIdent),\n }),\n ];\n },\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-modules-systemjs/package.json b/node_modules/@babel/plugin-transform-modules-systemjs/package.json index 3a33f409..959fe4a3 100644 --- a/node_modules/@babel/plugin-transform-modules-systemjs/package.json +++ b/node_modules/@babel/plugin-transform-modules-systemjs/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-modules-systemjs", - "version": "7.23.0", + "version": "7.23.3", "description": "This plugin transforms ES2015 modules to SystemJS", "repository": { "type": "git", @@ -14,7 +14,7 @@ "main": "./lib/index.js", "dependencies": { "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-module-transforms": "^7.23.0", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5", "@babel/helper-validator-identifier": "^7.22.20" }, @@ -25,7 +25,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-modules-systemjs", diff --git a/node_modules/@babel/plugin-transform-modules-umd/README.md b/node_modules/@babel/plugin-transform-modules-umd/README.md index 2b5f2d12..e9f0358a 100644 --- a/node_modules/@babel/plugin-transform-modules-umd/README.md +++ b/node_modules/@babel/plugin-transform-modules-umd/README.md @@ -2,7 +2,7 @@ > This plugin transforms ES2015 modules to UMD -See our website [@babel/plugin-transform-modules-umd](https://babeljs.io/docs/en/babel-plugin-transform-modules-umd) for more information. +See our website [@babel/plugin-transform-modules-umd](https://babeljs.io/docs/babel-plugin-transform-modules-umd) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-modules-umd/lib/index.js b/node_modules/@babel/plugin-transform-modules-umd/lib/index.js index 3f761d9e..41190e73 100644 --- a/node_modules/@babel/plugin-transform-modules-umd/lib/index.js +++ b/node_modules/@babel/plugin-transform-modules-umd/lib/index.js @@ -30,7 +30,7 @@ const buildWrapper = (0, _core.template)(` function(IMPORT_NAMES) { }) `); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _api$assumption2; api.assertVersion(7); const { @@ -152,6 +152,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-modules-umd/lib/index.js.map b/node_modules/@babel/plugin-transform-modules-umd/lib/index.js.map index d2c3ea01..892d2bed 100644 --- a/node_modules/@babel/plugin-transform-modules-umd/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-modules-umd/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_path","_helperModuleTransforms","_core","buildPrerequisiteAssignment","template","buildWrapper","_default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","globals","exactGlobals","allowTopLevelThis","strict","strictMode","noInterop","importInterop","constantReexports","assumption","loose","enumerableModuleMeta","buildBrowserInit","browserGlobals","filename","moduleName","moduleNameOrBasename","value","basename","extname","globalToAssign","t","memberExpression","identifier","toIdentifier","initAssignments","globalName","members","split","slice","reduce","accum","curr","push","GLOBAL_REFERENCE","cloneNode","expressionStatement","assignmentExpression","buildBrowserArg","source","globalRef","requireName","name","visitor","Program","exit","path","isModule","getModuleName","file","opts","moduleNameLiteral","stringLiteral","meta","headers","rewriteModuleStatementsAndPrepareHeader","amdArgs","commonjsArgs","browserArgs","importNames","hasExports","exportName","metadata","callExpression","isSideEffectImport","interop","wrapInterop","header","loc","buildNamespaceInitStatements","ensureStatementsHoisted","unshiftContainer","body","directives","node","umdWrapper","pushContainer","MODULE_NAME","AMD_ARGUMENTS","arrayExpression","COMMONJS_ARGUMENTS","BROWSER_ARGUMENTS","IMPORT_NAMES","GLOBAL_TO_ASSIGN","umdFactory","get","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { basename, extname } from \"path\";\nimport {\n isModule,\n rewriteModuleStatementsAndPrepareHeader,\n type RewriteModuleStatementsAndPrepareHeaderOptions,\n hasExports,\n isSideEffectImport,\n buildNamespaceInitStatements,\n ensureStatementsHoisted,\n wrapInterop,\n getModuleName,\n} from \"@babel/helper-module-transforms\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst buildPrerequisiteAssignment = template(`\n GLOBAL_REFERENCE = GLOBAL_REFERENCE || {}\n`);\n// Note: we avoid comparing typeof results with \"object\" or \"symbol\" otherwise\n// they will be processed by `transform-typeof-symbol`, which in return could\n// cause typeof helper used before declaration\nconst buildWrapper = template(`\n (function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(MODULE_NAME, AMD_ARGUMENTS, factory);\n } else if (typeof exports !== \"undefined\") {\n factory(COMMONJS_ARGUMENTS);\n } else {\n var mod = { exports: {} };\n factory(BROWSER_ARGUMENTS);\n\n GLOBAL_TO_ASSIGN;\n }\n })(\n typeof globalThis !== \"undefined\" ? globalThis\n : typeof self !== \"undefined\" ? self\n : this,\n function(IMPORT_NAMES) {\n })\n`);\n\nexport interface Options extends PluginOptions {\n allowTopLevelThis?: boolean;\n exactGlobals?: boolean;\n globals?: Record<string, string>;\n importInterop?: RewriteModuleStatementsAndPrepareHeaderOptions[\"importInterop\"];\n loose?: boolean;\n noInterop?: boolean;\n strict?: boolean;\n strictMode?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const {\n globals,\n exactGlobals,\n allowTopLevelThis,\n strict,\n strictMode,\n noInterop,\n importInterop,\n } = options;\n\n const constantReexports =\n api.assumption(\"constantReexports\") ?? options.loose;\n const enumerableModuleMeta =\n api.assumption(\"enumerableModuleMeta\") ?? options.loose;\n\n /**\n * Build the assignment statements that initialize the UMD global.\n */\n function buildBrowserInit(\n browserGlobals: Record<string, string>,\n exactGlobals: boolean,\n filename: string,\n moduleName: t.StringLiteral | void,\n ) {\n const moduleNameOrBasename = moduleName\n ? moduleName.value\n : basename(filename, extname(filename));\n let globalToAssign = t.memberExpression(\n t.identifier(\"global\"),\n t.identifier(t.toIdentifier(moduleNameOrBasename)),\n );\n let initAssignments = [];\n\n if (exactGlobals) {\n const globalName = browserGlobals[moduleNameOrBasename];\n\n if (globalName) {\n initAssignments = [];\n\n const members = globalName.split(\".\");\n globalToAssign = members.slice(1).reduce(\n (accum, curr) => {\n initAssignments.push(\n buildPrerequisiteAssignment({\n GLOBAL_REFERENCE: t.cloneNode(accum),\n }),\n );\n return t.memberExpression(accum, t.identifier(curr));\n },\n t.memberExpression(t.identifier(\"global\"), t.identifier(members[0])),\n );\n }\n }\n\n initAssignments.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n globalToAssign,\n t.memberExpression(t.identifier(\"mod\"), t.identifier(\"exports\")),\n ),\n ),\n );\n\n return initAssignments;\n }\n\n /**\n * Build the member expression that reads from a global for a given source.\n */\n function buildBrowserArg(\n browserGlobals: Record<string, string>,\n exactGlobals: boolean,\n source: string,\n ) {\n let memberExpression: t.MemberExpression;\n if (exactGlobals) {\n const globalRef = browserGlobals[source];\n if (globalRef) {\n memberExpression = globalRef\n .split(\".\")\n .reduce(\n (accum: t.Identifier | t.MemberExpression, curr) =>\n t.memberExpression(accum, t.identifier(curr)),\n t.identifier(\"global\"),\n ) as t.MemberExpression;\n } else {\n memberExpression = t.memberExpression(\n t.identifier(\"global\"),\n t.identifier(t.toIdentifier(source)),\n );\n }\n } else {\n const requireName = basename(source, extname(source));\n const globalName = browserGlobals[requireName] || requireName;\n memberExpression = t.memberExpression(\n t.identifier(\"global\"),\n t.identifier(t.toIdentifier(globalName)),\n );\n }\n return memberExpression;\n }\n\n return {\n name: \"transform-modules-umd\",\n\n visitor: {\n Program: {\n exit(path) {\n if (!isModule(path)) return;\n\n const browserGlobals = globals || {};\n\n const moduleName = getModuleName(this.file.opts, options);\n let moduleNameLiteral: void | t.StringLiteral;\n if (moduleName) moduleNameLiteral = t.stringLiteral(moduleName);\n\n const { meta, headers } = rewriteModuleStatementsAndPrepareHeader(\n path,\n {\n constantReexports,\n enumerableModuleMeta,\n strict,\n strictMode,\n allowTopLevelThis,\n noInterop,\n importInterop,\n filename: this.file.opts.filename,\n },\n );\n\n const amdArgs = [];\n const commonjsArgs = [];\n const browserArgs = [];\n const importNames = [];\n\n if (hasExports(meta)) {\n amdArgs.push(t.stringLiteral(\"exports\"));\n commonjsArgs.push(t.identifier(\"exports\"));\n browserArgs.push(\n t.memberExpression(t.identifier(\"mod\"), t.identifier(\"exports\")),\n );\n importNames.push(t.identifier(meta.exportName));\n }\n\n for (const [source, metadata] of meta.source) {\n amdArgs.push(t.stringLiteral(source));\n commonjsArgs.push(\n t.callExpression(t.identifier(\"require\"), [\n t.stringLiteral(source),\n ]),\n );\n browserArgs.push(\n buildBrowserArg(browserGlobals, exactGlobals, source),\n );\n importNames.push(t.identifier(metadata.name));\n\n if (!isSideEffectImport(metadata)) {\n const interop = wrapInterop(\n path,\n t.identifier(metadata.name),\n metadata.interop,\n );\n if (interop) {\n const header = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.identifier(metadata.name),\n interop,\n ),\n );\n // @ts-expect-error todo(flow->ts)\n header.loc = meta.loc;\n headers.push(header);\n }\n }\n\n headers.push(\n ...buildNamespaceInitStatements(\n meta,\n metadata,\n constantReexports,\n ),\n );\n }\n\n ensureStatementsHoisted(headers);\n path.unshiftContainer(\"body\", headers);\n\n const { body, directives } = path.node;\n path.node.directives = [];\n path.node.body = [];\n const umdWrapper = path.pushContainer(\"body\", [\n buildWrapper({\n //todo: buildWrapper does not handle void moduleNameLiteral\n MODULE_NAME: moduleNameLiteral,\n\n AMD_ARGUMENTS: t.arrayExpression(amdArgs),\n COMMONJS_ARGUMENTS: commonjsArgs,\n BROWSER_ARGUMENTS: browserArgs,\n IMPORT_NAMES: importNames,\n\n GLOBAL_TO_ASSIGN: buildBrowserInit(\n browserGlobals,\n exactGlobals,\n this.filename || \"unknown\",\n moduleNameLiteral,\n ),\n }) as t.Statement,\n ])[0] as NodePath<t.ExpressionStatement>;\n const umdFactory = (\n umdWrapper.get(\"expression.arguments\")[1] as NodePath<t.Function>\n ).get(\"body\") as NodePath<t.BlockStatement>;\n umdFactory.pushContainer(\"directives\", directives);\n umdFactory.pushContainer(\"body\", body);\n },\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_path","_helperModuleTransforms","_core","buildPrerequisiteAssignment","template","buildWrapper","_default","exports","default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","globals","exactGlobals","allowTopLevelThis","strict","strictMode","noInterop","importInterop","constantReexports","assumption","loose","enumerableModuleMeta","buildBrowserInit","browserGlobals","filename","moduleName","moduleNameOrBasename","value","basename","extname","globalToAssign","t","memberExpression","identifier","toIdentifier","initAssignments","globalName","members","split","slice","reduce","accum","curr","push","GLOBAL_REFERENCE","cloneNode","expressionStatement","assignmentExpression","buildBrowserArg","source","globalRef","requireName","name","visitor","Program","exit","path","isModule","getModuleName","file","opts","moduleNameLiteral","stringLiteral","meta","headers","rewriteModuleStatementsAndPrepareHeader","amdArgs","commonjsArgs","browserArgs","importNames","hasExports","exportName","metadata","callExpression","isSideEffectImport","interop","wrapInterop","header","loc","buildNamespaceInitStatements","ensureStatementsHoisted","unshiftContainer","body","directives","node","umdWrapper","pushContainer","MODULE_NAME","AMD_ARGUMENTS","arrayExpression","COMMONJS_ARGUMENTS","BROWSER_ARGUMENTS","IMPORT_NAMES","GLOBAL_TO_ASSIGN","umdFactory","get"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { basename, extname } from \"path\";\nimport {\n isModule,\n rewriteModuleStatementsAndPrepareHeader,\n type RewriteModuleStatementsAndPrepareHeaderOptions,\n hasExports,\n isSideEffectImport,\n buildNamespaceInitStatements,\n ensureStatementsHoisted,\n wrapInterop,\n getModuleName,\n} from \"@babel/helper-module-transforms\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst buildPrerequisiteAssignment = template(`\n GLOBAL_REFERENCE = GLOBAL_REFERENCE || {}\n`);\n// Note: we avoid comparing typeof results with \"object\" or \"symbol\" otherwise\n// they will be processed by `transform-typeof-symbol`, which in return could\n// cause typeof helper used before declaration\nconst buildWrapper = template(`\n (function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(MODULE_NAME, AMD_ARGUMENTS, factory);\n } else if (typeof exports !== \"undefined\") {\n factory(COMMONJS_ARGUMENTS);\n } else {\n var mod = { exports: {} };\n factory(BROWSER_ARGUMENTS);\n\n GLOBAL_TO_ASSIGN;\n }\n })(\n typeof globalThis !== \"undefined\" ? globalThis\n : typeof self !== \"undefined\" ? self\n : this,\n function(IMPORT_NAMES) {\n })\n`);\n\nexport interface Options extends PluginOptions {\n allowTopLevelThis?: boolean;\n exactGlobals?: boolean;\n globals?: Record<string, string>;\n importInterop?: RewriteModuleStatementsAndPrepareHeaderOptions[\"importInterop\"];\n loose?: boolean;\n noInterop?: boolean;\n strict?: boolean;\n strictMode?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const {\n globals,\n exactGlobals,\n allowTopLevelThis,\n strict,\n strictMode,\n noInterop,\n importInterop,\n } = options;\n\n const constantReexports =\n api.assumption(\"constantReexports\") ?? options.loose;\n const enumerableModuleMeta =\n api.assumption(\"enumerableModuleMeta\") ?? options.loose;\n\n /**\n * Build the assignment statements that initialize the UMD global.\n */\n function buildBrowserInit(\n browserGlobals: Record<string, string>,\n exactGlobals: boolean,\n filename: string,\n moduleName: t.StringLiteral | void,\n ) {\n const moduleNameOrBasename = moduleName\n ? moduleName.value\n : basename(filename, extname(filename));\n let globalToAssign = t.memberExpression(\n t.identifier(\"global\"),\n t.identifier(t.toIdentifier(moduleNameOrBasename)),\n );\n let initAssignments = [];\n\n if (exactGlobals) {\n const globalName = browserGlobals[moduleNameOrBasename];\n\n if (globalName) {\n initAssignments = [];\n\n const members = globalName.split(\".\");\n globalToAssign = members.slice(1).reduce(\n (accum, curr) => {\n initAssignments.push(\n buildPrerequisiteAssignment({\n GLOBAL_REFERENCE: t.cloneNode(accum),\n }),\n );\n return t.memberExpression(accum, t.identifier(curr));\n },\n t.memberExpression(t.identifier(\"global\"), t.identifier(members[0])),\n );\n }\n }\n\n initAssignments.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n globalToAssign,\n t.memberExpression(t.identifier(\"mod\"), t.identifier(\"exports\")),\n ),\n ),\n );\n\n return initAssignments;\n }\n\n /**\n * Build the member expression that reads from a global for a given source.\n */\n function buildBrowserArg(\n browserGlobals: Record<string, string>,\n exactGlobals: boolean,\n source: string,\n ) {\n let memberExpression: t.MemberExpression;\n if (exactGlobals) {\n const globalRef = browserGlobals[source];\n if (globalRef) {\n memberExpression = globalRef\n .split(\".\")\n .reduce(\n (accum: t.Identifier | t.MemberExpression, curr) =>\n t.memberExpression(accum, t.identifier(curr)),\n t.identifier(\"global\"),\n ) as t.MemberExpression;\n } else {\n memberExpression = t.memberExpression(\n t.identifier(\"global\"),\n t.identifier(t.toIdentifier(source)),\n );\n }\n } else {\n const requireName = basename(source, extname(source));\n const globalName = browserGlobals[requireName] || requireName;\n memberExpression = t.memberExpression(\n t.identifier(\"global\"),\n t.identifier(t.toIdentifier(globalName)),\n );\n }\n return memberExpression;\n }\n\n return {\n name: \"transform-modules-umd\",\n\n visitor: {\n Program: {\n exit(path) {\n if (!isModule(path)) return;\n\n const browserGlobals = globals || {};\n\n const moduleName = getModuleName(this.file.opts, options);\n let moduleNameLiteral: void | t.StringLiteral;\n if (moduleName) moduleNameLiteral = t.stringLiteral(moduleName);\n\n const { meta, headers } = rewriteModuleStatementsAndPrepareHeader(\n path,\n {\n constantReexports,\n enumerableModuleMeta,\n strict,\n strictMode,\n allowTopLevelThis,\n noInterop,\n importInterop,\n filename: this.file.opts.filename,\n },\n );\n\n const amdArgs = [];\n const commonjsArgs = [];\n const browserArgs = [];\n const importNames = [];\n\n if (hasExports(meta)) {\n amdArgs.push(t.stringLiteral(\"exports\"));\n commonjsArgs.push(t.identifier(\"exports\"));\n browserArgs.push(\n t.memberExpression(t.identifier(\"mod\"), t.identifier(\"exports\")),\n );\n importNames.push(t.identifier(meta.exportName));\n }\n\n for (const [source, metadata] of meta.source) {\n amdArgs.push(t.stringLiteral(source));\n commonjsArgs.push(\n t.callExpression(t.identifier(\"require\"), [\n t.stringLiteral(source),\n ]),\n );\n browserArgs.push(\n buildBrowserArg(browserGlobals, exactGlobals, source),\n );\n importNames.push(t.identifier(metadata.name));\n\n if (!isSideEffectImport(metadata)) {\n const interop = wrapInterop(\n path,\n t.identifier(metadata.name),\n metadata.interop,\n );\n if (interop) {\n const header = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.identifier(metadata.name),\n interop,\n ),\n );\n // @ts-expect-error todo(flow->ts)\n header.loc = meta.loc;\n headers.push(header);\n }\n }\n\n headers.push(\n ...buildNamespaceInitStatements(\n meta,\n metadata,\n constantReexports,\n ),\n );\n }\n\n ensureStatementsHoisted(headers);\n path.unshiftContainer(\"body\", headers);\n\n const { body, directives } = path.node;\n path.node.directives = [];\n path.node.body = [];\n const umdWrapper = path.pushContainer(\"body\", [\n buildWrapper({\n //todo: buildWrapper does not handle void moduleNameLiteral\n MODULE_NAME: moduleNameLiteral,\n\n AMD_ARGUMENTS: t.arrayExpression(amdArgs),\n COMMONJS_ARGUMENTS: commonjsArgs,\n BROWSER_ARGUMENTS: browserArgs,\n IMPORT_NAMES: importNames,\n\n GLOBAL_TO_ASSIGN: buildBrowserInit(\n browserGlobals,\n exactGlobals,\n this.filename || \"unknown\",\n moduleNameLiteral,\n ),\n }) as t.Statement,\n ])[0] as NodePath<t.ExpressionStatement>;\n const umdFactory = (\n umdWrapper.get(\"expression.arguments\")[1] as NodePath<t.Function>\n ).get(\"body\") as NodePath<t.BlockStatement>;\n umdFactory.pushContainer(\"directives\", directives);\n umdFactory.pushContainer(\"body\", body);\n },\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAYA,IAAAG,KAAA,GAAAH,OAAA;AAGA,MAAMI,2BAA2B,GAAG,IAAAC,cAAQ,EAAE;AAC9C;AACA,CAAC,CAAC;AAIF,MAAMC,YAAY,GAAG,IAAAD,cAAQ,EAAE;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC;AAAC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAaY,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAAA,IAAAC,eAAA,EAAAC,gBAAA;EAChDH,GAAG,CAACI,aAAa,CAGX,CACN,CAAC;EAED,MAAM;IACJC,OAAO;IACPC,YAAY;IACZC,iBAAiB;IACjBC,MAAM;IACNC,UAAU;IACVC,SAAS;IACTC;EACF,CAAC,GAAGV,OAAO;EAEX,MAAMW,iBAAiB,IAAAV,eAAA,GACrBF,GAAG,CAACa,UAAU,CAAC,mBAAmB,CAAC,YAAAX,eAAA,GAAID,OAAO,CAACa,KAAK;EACtD,MAAMC,oBAAoB,IAAAZ,gBAAA,GACxBH,GAAG,CAACa,UAAU,CAAC,sBAAsB,CAAC,YAAAV,gBAAA,GAAIF,OAAO,CAACa,KAAK;EAKzD,SAASE,gBAAgBA,CACvBC,cAAsC,EACtCX,YAAqB,EACrBY,QAAgB,EAChBC,UAAkC,EAClC;IACA,MAAMC,oBAAoB,GAAGD,UAAU,GACnCA,UAAU,CAACE,KAAK,GAChB,IAAAC,cAAQ,EAACJ,QAAQ,EAAE,IAAAK,aAAO,EAACL,QAAQ,CAAC,CAAC;IACzC,IAAIM,cAAc,GAAGC,WAAC,CAACC,gBAAgB,CACrCD,WAAC,CAACE,UAAU,CAAC,QAAQ,CAAC,EACtBF,WAAC,CAACE,UAAU,CAACF,WAAC,CAACG,YAAY,CAACR,oBAAoB,CAAC,CACnD,CAAC;IACD,IAAIS,eAAe,GAAG,EAAE;IAExB,IAAIvB,YAAY,EAAE;MAChB,MAAMwB,UAAU,GAAGb,cAAc,CAACG,oBAAoB,CAAC;MAEvD,IAAIU,UAAU,EAAE;QACdD,eAAe,GAAG,EAAE;QAEpB,MAAME,OAAO,GAAGD,UAAU,CAACE,KAAK,CAAC,GAAG,CAAC;QACrCR,cAAc,GAAGO,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC,CAACC,MAAM,CACtC,CAACC,KAAK,EAAEC,IAAI,KAAK;UACfP,eAAe,CAACQ,IAAI,CAClB5C,2BAA2B,CAAC;YAC1B6C,gBAAgB,EAAEb,WAAC,CAACc,SAAS,CAACJ,KAAK;UACrC,CAAC,CACH,CAAC;UACD,OAAOV,WAAC,CAACC,gBAAgB,CAACS,KAAK,EAAEV,WAAC,CAACE,UAAU,CAACS,IAAI,CAAC,CAAC;QACtD,CAAC,EACDX,WAAC,CAACC,gBAAgB,CAACD,WAAC,CAACE,UAAU,CAAC,QAAQ,CAAC,EAAEF,WAAC,CAACE,UAAU,CAACI,OAAO,CAAC,CAAC,CAAC,CAAC,CACrE,CAAC;MACH;IACF;IAEAF,eAAe,CAACQ,IAAI,CAClBZ,WAAC,CAACe,mBAAmB,CACnBf,WAAC,CAACgB,oBAAoB,CACpB,GAAG,EACHjB,cAAc,EACdC,WAAC,CAACC,gBAAgB,CAACD,WAAC,CAACE,UAAU,CAAC,KAAK,CAAC,EAAEF,WAAC,CAACE,UAAU,CAAC,SAAS,CAAC,CACjE,CACF,CACF,CAAC;IAED,OAAOE,eAAe;EACxB;EAKA,SAASa,eAAeA,CACtBzB,cAAsC,EACtCX,YAAqB,EACrBqC,MAAc,EACd;IACA,IAAIjB,gBAAoC;IACxC,IAAIpB,YAAY,EAAE;MAChB,MAAMsC,SAAS,GAAG3B,cAAc,CAAC0B,MAAM,CAAC;MACxC,IAAIC,SAAS,EAAE;QACblB,gBAAgB,GAAGkB,SAAS,CACzBZ,KAAK,CAAC,GAAG,CAAC,CACVE,MAAM,CACL,CAACC,KAAwC,EAAEC,IAAI,KAC7CX,WAAC,CAACC,gBAAgB,CAACS,KAAK,EAAEV,WAAC,CAACE,UAAU,CAACS,IAAI,CAAC,CAAC,EAC/CX,WAAC,CAACE,UAAU,CAAC,QAAQ,CACvB,CAAuB;MAC3B,CAAC,MAAM;QACLD,gBAAgB,GAAGD,WAAC,CAACC,gBAAgB,CACnCD,WAAC,CAACE,UAAU,CAAC,QAAQ,CAAC,EACtBF,WAAC,CAACE,UAAU,CAACF,WAAC,CAACG,YAAY,CAACe,MAAM,CAAC,CACrC,CAAC;MACH;IACF,CAAC,MAAM;MACL,MAAME,WAAW,GAAG,IAAAvB,cAAQ,EAACqB,MAAM,EAAE,IAAApB,aAAO,EAACoB,MAAM,CAAC,CAAC;MACrD,MAAMb,UAAU,GAAGb,cAAc,CAAC4B,WAAW,CAAC,IAAIA,WAAW;MAC7DnB,gBAAgB,GAAGD,WAAC,CAACC,gBAAgB,CACnCD,WAAC,CAACE,UAAU,CAAC,QAAQ,CAAC,EACtBF,WAAC,CAACE,UAAU,CAACF,WAAC,CAACG,YAAY,CAACE,UAAU,CAAC,CACzC,CAAC;IACH;IACA,OAAOJ,gBAAgB;EACzB;EAEA,OAAO;IACLoB,IAAI,EAAE,uBAAuB;IAE7BC,OAAO,EAAE;MACPC,OAAO,EAAE;QACPC,IAAIA,CAACC,IAAI,EAAE;UACT,IAAI,CAAC,IAAAC,gCAAQ,EAACD,IAAI,CAAC,EAAE;UAErB,MAAMjC,cAAc,GAAGZ,OAAO,IAAI,CAAC,CAAC;UAEpC,MAAMc,UAAU,GAAG,IAAAiC,qCAAa,EAAC,IAAI,CAACC,IAAI,CAACC,IAAI,EAAErD,OAAO,CAAC;UACzD,IAAIsD,iBAAyC;UAC7C,IAAIpC,UAAU,EAAEoC,iBAAiB,GAAG9B,WAAC,CAAC+B,aAAa,CAACrC,UAAU,CAAC;UAE/D,MAAM;YAAEsC,IAAI;YAAEC;UAAQ,CAAC,GAAG,IAAAC,+DAAuC,EAC/DT,IAAI,EACJ;YACEtC,iBAAiB;YACjBG,oBAAoB;YACpBP,MAAM;YACNC,UAAU;YACVF,iBAAiB;YACjBG,SAAS;YACTC,aAAa;YACbO,QAAQ,EAAE,IAAI,CAACmC,IAAI,CAACC,IAAI,CAACpC;UAC3B,CACF,CAAC;UAED,MAAM0C,OAAO,GAAG,EAAE;UAClB,MAAMC,YAAY,GAAG,EAAE;UACvB,MAAMC,WAAW,GAAG,EAAE;UACtB,MAAMC,WAAW,GAAG,EAAE;UAEtB,IAAI,IAAAC,kCAAU,EAACP,IAAI,CAAC,EAAE;YACpBG,OAAO,CAACvB,IAAI,CAACZ,WAAC,CAAC+B,aAAa,CAAC,SAAS,CAAC,CAAC;YACxCK,YAAY,CAACxB,IAAI,CAACZ,WAAC,CAACE,UAAU,CAAC,SAAS,CAAC,CAAC;YAC1CmC,WAAW,CAACzB,IAAI,CACdZ,WAAC,CAACC,gBAAgB,CAACD,WAAC,CAACE,UAAU,CAAC,KAAK,CAAC,EAAEF,WAAC,CAACE,UAAU,CAAC,SAAS,CAAC,CACjE,CAAC;YACDoC,WAAW,CAAC1B,IAAI,CAACZ,WAAC,CAACE,UAAU,CAAC8B,IAAI,CAACQ,UAAU,CAAC,CAAC;UACjD;UAEA,KAAK,MAAM,CAACtB,MAAM,EAAEuB,QAAQ,CAAC,IAAIT,IAAI,CAACd,MAAM,EAAE;YAC5CiB,OAAO,CAACvB,IAAI,CAACZ,WAAC,CAAC+B,aAAa,CAACb,MAAM,CAAC,CAAC;YACrCkB,YAAY,CAACxB,IAAI,CACfZ,WAAC,CAAC0C,cAAc,CAAC1C,WAAC,CAACE,UAAU,CAAC,SAAS,CAAC,EAAE,CACxCF,WAAC,CAAC+B,aAAa,CAACb,MAAM,CAAC,CACxB,CACH,CAAC;YACDmB,WAAW,CAACzB,IAAI,CACdK,eAAe,CAACzB,cAAc,EAAEX,YAAY,EAAEqC,MAAM,CACtD,CAAC;YACDoB,WAAW,CAAC1B,IAAI,CAACZ,WAAC,CAACE,UAAU,CAACuC,QAAQ,CAACpB,IAAI,CAAC,CAAC;YAE7C,IAAI,CAAC,IAAAsB,0CAAkB,EAACF,QAAQ,CAAC,EAAE;cACjC,MAAMG,OAAO,GAAG,IAAAC,mCAAW,EACzBpB,IAAI,EACJzB,WAAC,CAACE,UAAU,CAACuC,QAAQ,CAACpB,IAAI,CAAC,EAC3BoB,QAAQ,CAACG,OACX,CAAC;cACD,IAAIA,OAAO,EAAE;gBACX,MAAME,MAAM,GAAG9C,WAAC,CAACe,mBAAmB,CAClCf,WAAC,CAACgB,oBAAoB,CACpB,GAAG,EACHhB,WAAC,CAACE,UAAU,CAACuC,QAAQ,CAACpB,IAAI,CAAC,EAC3BuB,OACF,CACF,CAAC;gBAEDE,MAAM,CAACC,GAAG,GAAGf,IAAI,CAACe,GAAG;gBACrBd,OAAO,CAACrB,IAAI,CAACkC,MAAM,CAAC;cACtB;YACF;YAEAb,OAAO,CAACrB,IAAI,CACV,GAAG,IAAAoC,oDAA4B,EAC7BhB,IAAI,EACJS,QAAQ,EACRtD,iBACF,CACF,CAAC;UACH;UAEA,IAAA8D,+CAAuB,EAAChB,OAAO,CAAC;UAChCR,IAAI,CAACyB,gBAAgB,CAAC,MAAM,EAAEjB,OAAO,CAAC;UAEtC,MAAM;YAAEkB,IAAI;YAAEC;UAAW,CAAC,GAAG3B,IAAI,CAAC4B,IAAI;UACtC5B,IAAI,CAAC4B,IAAI,CAACD,UAAU,GAAG,EAAE;UACzB3B,IAAI,CAAC4B,IAAI,CAACF,IAAI,GAAG,EAAE;UACnB,MAAMG,UAAU,GAAG7B,IAAI,CAAC8B,aAAa,CAAC,MAAM,EAAE,CAC5CrF,YAAY,CAAC;YAEXsF,WAAW,EAAE1B,iBAAiB;YAE9B2B,aAAa,EAAEzD,WAAC,CAAC0D,eAAe,CAACvB,OAAO,CAAC;YACzCwB,kBAAkB,EAAEvB,YAAY;YAChCwB,iBAAiB,EAAEvB,WAAW;YAC9BwB,YAAY,EAAEvB,WAAW;YAEzBwB,gBAAgB,EAAEvE,gBAAgB,CAChCC,cAAc,EACdX,YAAY,EACZ,IAAI,CAACY,QAAQ,IAAI,SAAS,EAC1BqC,iBACF;UACF,CAAC,CAAC,CACH,CAAC,CAAC,CAAC,CAAoC;UACxC,MAAMiC,UAAU,GACdT,UAAU,CAACU,GAAG,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CACzCA,GAAG,CAAC,MAAM,CAA+B;UAC3CD,UAAU,CAACR,aAAa,CAAC,YAAY,EAAEH,UAAU,CAAC;UAClDW,UAAU,CAACR,aAAa,CAAC,MAAM,EAAEJ,IAAI,CAAC;QACxC;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-modules-umd/package.json b/node_modules/@babel/plugin-transform-modules-umd/package.json index 905b42c8..87055990 100644 --- a/node_modules/@babel/plugin-transform-modules-umd/package.json +++ b/node_modules/@babel/plugin-transform-modules-umd/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-modules-umd", - "version": "7.22.5", + "version": "7.23.3", "description": "This plugin transforms ES2015 modules to UMD", "repository": { "type": "git", @@ -14,7 +14,7 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/helper-module-transforms": "^7.22.5", + "@babel/helper-module-transforms": "^7.23.3", "@babel/helper-plugin-utils": "^7.22.5" }, "keywords": [ @@ -24,9 +24,9 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/plugin-external-helpers": "^7.22.5" + "@babel/plugin-external-helpers": "^7.23.3" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-new-target/README.md b/node_modules/@babel/plugin-transform-new-target/README.md index affc541d..6dcbcf70 100644 --- a/node_modules/@babel/plugin-transform-new-target/README.md +++ b/node_modules/@babel/plugin-transform-new-target/README.md @@ -2,7 +2,7 @@ > Transforms new.target meta property -See our website [@babel/plugin-transform-new-target](https://babeljs.io/docs/en/babel-plugin-transform-new-target) for more information. +See our website [@babel/plugin-transform-new-target](https://babeljs.io/docs/babel-plugin-transform-new-target) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-new-target/lib/index.js b/node_modules/@babel/plugin-transform-new-target/lib/index.js index 340ad9ab..4a4940d0 100644 --- a/node_modules/@babel/plugin-transform-new-target/lib/index.js +++ b/node_modules/@babel/plugin-transform-new-target/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-new-target", @@ -67,6 +67,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-new-target/lib/index.js.map b/node_modules/@babel/plugin-transform-new-target/lib/index.js.map index 02426b2f..7bdaaafe 100644 --- a/node_modules/@babel/plugin-transform-new-target/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-new-target/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","name","visitor","MetaProperty","path","meta","get","property","scope","isIdentifier","func","findParent","isClass","isFunction","isArrowFunctionExpression","isClassMethod","kind","buildCodeFrameError","node","t","isMethod","replaceWith","buildUndefinedNode","constructor","memberExpression","thisExpression","identifier","id","generateUidIdentifier","parentPath","hasOwnBinding","bindingIdentifierEquals","rename","parent","conditionalExpression","binaryExpression","cloneNode","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-new-target\",\n\n visitor: {\n MetaProperty(path) {\n const meta = path.get(\"meta\");\n const property = path.get(\"property\");\n const { scope } = path;\n\n if (\n meta.isIdentifier({ name: \"new\" }) &&\n property.isIdentifier({ name: \"target\" })\n ) {\n const func = path.findParent(path => {\n if (path.isClass()) return true;\n if (path.isFunction() && !path.isArrowFunctionExpression()) {\n if (path.isClassMethod({ kind: \"constructor\" })) {\n return false;\n }\n\n return true;\n }\n return false;\n }) as NodePath<\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.Class\n | t.ClassMethod\n | t.ClassPrivateMethod\n >;\n\n if (!func) {\n throw path.buildCodeFrameError(\n \"new.target must be under a (non-arrow) function or a class.\",\n );\n }\n\n const { node } = func;\n if (t.isMethod(node)) {\n path.replaceWith(scope.buildUndefinedNode());\n return;\n }\n\n const constructor = t.memberExpression(\n t.thisExpression(),\n t.identifier(\"constructor\"),\n );\n\n if (func.isClass()) {\n path.replaceWith(constructor);\n return;\n }\n\n if (!node.id) {\n node.id = scope.generateUidIdentifier(\"target\");\n } else {\n // packages/babel-helper-create-class-features-plugin/src/fields.ts#L192 unshadow\n let scope = path.scope;\n const name = node.id.name;\n while (scope !== func.parentPath.scope) {\n if (\n scope.hasOwnBinding(name) &&\n !scope.bindingIdentifierEquals(name, node.id)\n ) {\n scope.rename(name);\n }\n scope = scope.parent;\n }\n }\n\n path.replaceWith(\n t.conditionalExpression(\n t.binaryExpression(\n \"instanceof\",\n t.thisExpression(),\n t.cloneNode(node.id),\n ),\n constructor,\n scope.buildUndefinedNode(),\n ),\n );\n }\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","name","visitor","MetaProperty","path","meta","get","property","scope","isIdentifier","func","findParent","isClass","isFunction","isArrowFunctionExpression","isClassMethod","kind","buildCodeFrameError","node","t","isMethod","replaceWith","buildUndefinedNode","constructor","memberExpression","thisExpression","identifier","id","generateUidIdentifier","parentPath","hasOwnBinding","bindingIdentifierEquals","rename","parent","conditionalExpression","binaryExpression","cloneNode"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-new-target\",\n\n visitor: {\n MetaProperty(path) {\n const meta = path.get(\"meta\");\n const property = path.get(\"property\");\n const { scope } = path;\n\n if (\n meta.isIdentifier({ name: \"new\" }) &&\n property.isIdentifier({ name: \"target\" })\n ) {\n const func = path.findParent(path => {\n if (path.isClass()) return true;\n if (path.isFunction() && !path.isArrowFunctionExpression()) {\n if (path.isClassMethod({ kind: \"constructor\" })) {\n return false;\n }\n\n return true;\n }\n return false;\n }) as NodePath<\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.Class\n | t.ClassMethod\n | t.ClassPrivateMethod\n >;\n\n if (!func) {\n throw path.buildCodeFrameError(\n \"new.target must be under a (non-arrow) function or a class.\",\n );\n }\n\n const { node } = func;\n if (t.isMethod(node)) {\n path.replaceWith(scope.buildUndefinedNode());\n return;\n }\n\n const constructor = t.memberExpression(\n t.thisExpression(),\n t.identifier(\"constructor\"),\n );\n\n if (func.isClass()) {\n path.replaceWith(constructor);\n return;\n }\n\n if (!node.id) {\n node.id = scope.generateUidIdentifier(\"target\");\n } else {\n // packages/babel-helper-create-class-features-plugin/src/fields.ts#L192 unshadow\n let scope = path.scope;\n const name = node.id.name;\n while (scope !== func.parentPath.scope) {\n if (\n scope.hasOwnBinding(name) &&\n !scope.bindingIdentifierEquals(name, node.id)\n ) {\n scope.rename(name);\n }\n scope = scope.parent;\n }\n }\n\n path.replaceWith(\n t.conditionalExpression(\n t.binaryExpression(\n \"instanceof\",\n t.thisExpression(),\n t.cloneNode(node.id),\n ),\n constructor,\n scope.buildUndefinedNode(),\n ),\n );\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAG1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,sBAAsB;IAE5BC,OAAO,EAAE;MACPC,YAAYA,CAACC,IAAI,EAAE;QACjB,MAAMC,IAAI,GAAGD,IAAI,CAACE,GAAG,CAAC,MAAM,CAAC;QAC7B,MAAMC,QAAQ,GAAGH,IAAI,CAACE,GAAG,CAAC,UAAU,CAAC;QACrC,MAAM;UAAEE;QAAM,CAAC,GAAGJ,IAAI;QAEtB,IACEC,IAAI,CAACI,YAAY,CAAC;UAAER,IAAI,EAAE;QAAM,CAAC,CAAC,IAClCM,QAAQ,CAACE,YAAY,CAAC;UAAER,IAAI,EAAE;QAAS,CAAC,CAAC,EACzC;UACA,MAAMS,IAAI,GAAGN,IAAI,CAACO,UAAU,CAACP,IAAI,IAAI;YACnC,IAAIA,IAAI,CAACQ,OAAO,CAAC,CAAC,EAAE,OAAO,IAAI;YAC/B,IAAIR,IAAI,CAACS,UAAU,CAAC,CAAC,IAAI,CAACT,IAAI,CAACU,yBAAyB,CAAC,CAAC,EAAE;cAC1D,IAAIV,IAAI,CAACW,aAAa,CAAC;gBAAEC,IAAI,EAAE;cAAc,CAAC,CAAC,EAAE;gBAC/C,OAAO,KAAK;cACd;cAEA,OAAO,IAAI;YACb;YACA,OAAO,KAAK;UACd,CAAC,CAMA;UAED,IAAI,CAACN,IAAI,EAAE;YACT,MAAMN,IAAI,CAACa,mBAAmB,CAC5B,6DACF,CAAC;UACH;UAEA,MAAM;YAAEC;UAAK,CAAC,GAAGR,IAAI;UACrB,IAAIS,WAAC,CAACC,QAAQ,CAACF,IAAI,CAAC,EAAE;YACpBd,IAAI,CAACiB,WAAW,CAACb,KAAK,CAACc,kBAAkB,CAAC,CAAC,CAAC;YAC5C;UACF;UAEA,MAAMC,WAAW,GAAGJ,WAAC,CAACK,gBAAgB,CACpCL,WAAC,CAACM,cAAc,CAAC,CAAC,EAClBN,WAAC,CAACO,UAAU,CAAC,aAAa,CAC5B,CAAC;UAED,IAAIhB,IAAI,CAACE,OAAO,CAAC,CAAC,EAAE;YAClBR,IAAI,CAACiB,WAAW,CAACE,WAAW,CAAC;YAC7B;UACF;UAEA,IAAI,CAACL,IAAI,CAACS,EAAE,EAAE;YACZT,IAAI,CAACS,EAAE,GAAGnB,KAAK,CAACoB,qBAAqB,CAAC,QAAQ,CAAC;UACjD,CAAC,MAAM;YAEL,IAAIpB,KAAK,GAAGJ,IAAI,CAACI,KAAK;YACtB,MAAMP,IAAI,GAAGiB,IAAI,CAACS,EAAE,CAAC1B,IAAI;YACzB,OAAOO,KAAK,KAAKE,IAAI,CAACmB,UAAU,CAACrB,KAAK,EAAE;cACtC,IACEA,KAAK,CAACsB,aAAa,CAAC7B,IAAI,CAAC,IACzB,CAACO,KAAK,CAACuB,uBAAuB,CAAC9B,IAAI,EAAEiB,IAAI,CAACS,EAAE,CAAC,EAC7C;gBACAnB,KAAK,CAACwB,MAAM,CAAC/B,IAAI,CAAC;cACpB;cACAO,KAAK,GAAGA,KAAK,CAACyB,MAAM;YACtB;UACF;UAEA7B,IAAI,CAACiB,WAAW,CACdF,WAAC,CAACe,qBAAqB,CACrBf,WAAC,CAACgB,gBAAgB,CAChB,YAAY,EACZhB,WAAC,CAACM,cAAc,CAAC,CAAC,EAClBN,WAAC,CAACiB,SAAS,CAAClB,IAAI,CAACS,EAAE,CACrB,CAAC,EACDJ,WAAW,EACXf,KAAK,CAACc,kBAAkB,CAAC,CAC3B,CACF,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-new-target/package.json b/node_modules/@babel/plugin-transform-new-target/package.json index 4c68ac37..28ae764c 100644 --- a/node_modules/@babel/plugin-transform-new-target/package.json +++ b/node_modules/@babel/plugin-transform-new-target/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-new-target", - "version": "7.22.5", + "version": "7.23.3", "description": "Transforms new.target meta property", "repository": { "type": "git", @@ -23,10 +23,10 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-class-properties": "^7.22.5" + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-class-properties": "^7.23.3" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js b/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js index e80d70af..4025a61e 100644 --- a/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js +++ b/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)((api, { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, { loose = false }) => { var _api$assumption; @@ -44,6 +44,5 @@ var _default = (0, _helperPluginUtils.declare)((api, { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js.map b/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js.map index d828f03b..e4731fe6 100644 --- a/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-nullish-coalescing-operator/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","loose","_api$assumption","assertVersion","noDocumentAll","assumption","name","inherits","default","visitor","LogicalExpression","path","node","scope","operator","ref","assignment","isStatic","left","t","cloneNode","isPattern","replaceWith","template","statement","ast","generateUidIdentifierBasedOnNode","push","id","assignmentExpression","conditionalExpression","binaryExpression","nullLiteral","logicalExpression","buildUndefinedNode","right","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t, template } from \"@babel/core\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, { loose = false }: Options) => {\n api.assertVersion(7);\n const noDocumentAll = api.assumption(\"noDocumentAll\") ?? loose;\n\n return {\n name: \"transform-nullish-coalescing-operator\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-nullish-coalescing-operator\").default,\n\n visitor: {\n LogicalExpression(path) {\n const { node, scope } = path;\n if (node.operator !== \"??\") {\n return;\n }\n\n let ref;\n let assignment;\n // skip creating extra reference when `left` is static\n if (scope.isStatic(node.left)) {\n ref = node.left;\n assignment = t.cloneNode(node.left);\n } else if (scope.path.isPattern()) {\n // Replace `function (a, x = a.b ?? c) {}` to `function (a, x = (() => a.b ?? c)() ){}`\n // so the temporary variable can be injected in correct scope\n path.replaceWith(template.statement.ast`(() => ${path.node})()`);\n // The injected nullish expression will be queued and eventually transformed when visited\n return;\n } else {\n ref = scope.generateUidIdentifierBasedOnNode(node.left);\n scope.push({ id: t.cloneNode(ref) });\n assignment = t.assignmentExpression(\"=\", ref, node.left);\n }\n\n path.replaceWith(\n t.conditionalExpression(\n // We cannot use `!= null` in spec mode because\n // `document.all == null` and `document.all` is not \"nullish\".\n noDocumentAll\n ? t.binaryExpression(\"!=\", assignment, t.nullLiteral())\n : t.logicalExpression(\n \"&&\",\n t.binaryExpression(\"!==\", assignment, t.nullLiteral()),\n t.binaryExpression(\n \"!==\",\n t.cloneNode(ref),\n scope.buildUndefinedNode(),\n ),\n ),\n t.cloneNode(ref),\n node.right,\n ),\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAmD,IAAAE,QAAA,GAMpC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAE;EAAEC,KAAK,GAAG;AAAe,CAAC,KAAK;EAAA,IAAAC,eAAA;EAC1DF,GAAG,CAACG,aAAa,CAAC,CAAC,CAAC;EACpB,MAAMC,aAAa,IAAAF,eAAA,GAAGF,GAAG,CAACK,UAAU,CAAC,eAAe,CAAC,YAAAH,eAAA,GAAID,KAAK;EAE9D,OAAO;IACLK,IAAI,EAAE,uCAAuC;IAC7CC,QAAQ,EAKJX,OAAO,CAAC,kDAAkD,CAAC,CAACY,OAAO;IAEvEC,OAAO,EAAE;MACPC,iBAAiBA,CAACC,IAAI,EAAE;QACtB,MAAM;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGF,IAAI;QAC5B,IAAIC,IAAI,CAACE,QAAQ,KAAK,IAAI,EAAE;UAC1B;QACF;QAEA,IAAIC,GAAG;QACP,IAAIC,UAAU;QAEd,IAAIH,KAAK,CAACI,QAAQ,CAACL,IAAI,CAACM,IAAI,CAAC,EAAE;UAC7BH,GAAG,GAAGH,IAAI,CAACM,IAAI;UACfF,UAAU,GAAGG,WAAC,CAACC,SAAS,CAACR,IAAI,CAACM,IAAI,CAAC;QACrC,CAAC,MAAM,IAAIL,KAAK,CAACF,IAAI,CAACU,SAAS,CAAC,CAAC,EAAE;UAGjCV,IAAI,CAACW,WAAW,CAACC,cAAQ,CAACC,SAAS,CAACC,GAAI,UAASd,IAAI,CAACC,IAAK,KAAI,CAAC;UAEhE;QACF,CAAC,MAAM;UACLG,GAAG,GAAGF,KAAK,CAACa,gCAAgC,CAACd,IAAI,CAACM,IAAI,CAAC;UACvDL,KAAK,CAACc,IAAI,CAAC;YAAEC,EAAE,EAAET,WAAC,CAACC,SAAS,CAACL,GAAG;UAAE,CAAC,CAAC;UACpCC,UAAU,GAAGG,WAAC,CAACU,oBAAoB,CAAC,GAAG,EAAEd,GAAG,EAAEH,IAAI,CAACM,IAAI,CAAC;QAC1D;QAEAP,IAAI,CAACW,WAAW,CACdH,WAAC,CAACW,qBAAqB,CAGrB1B,aAAa,GACTe,WAAC,CAACY,gBAAgB,CAAC,IAAI,EAAEf,UAAU,EAAEG,WAAC,CAACa,WAAW,CAAC,CAAC,CAAC,GACrDb,WAAC,CAACc,iBAAiB,CACjB,IAAI,EACJd,WAAC,CAACY,gBAAgB,CAAC,KAAK,EAAEf,UAAU,EAAEG,WAAC,CAACa,WAAW,CAAC,CAAC,CAAC,EACtDb,WAAC,CAACY,gBAAgB,CAChB,KAAK,EACLZ,WAAC,CAACC,SAAS,CAACL,GAAG,CAAC,EAChBF,KAAK,CAACqB,kBAAkB,CAAC,CAC3B,CACF,CAAC,EACLf,WAAC,CAACC,SAAS,CAACL,GAAG,CAAC,EAChBH,IAAI,CAACuB,KACP,CACF,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAC,OAAA,CAAA5B,OAAA,GAAAV,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","loose","_api$assumption","assertVersion","noDocumentAll","assumption","name","inherits","visitor","LogicalExpression","path","node","scope","operator","ref","assignment","isStatic","left","t","cloneNode","isPattern","replaceWith","template","statement","ast","generateUidIdentifierBasedOnNode","push","id","assignmentExpression","conditionalExpression","binaryExpression","nullLiteral","logicalExpression","buildUndefinedNode","right"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t, template } from \"@babel/core\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, { loose = false }: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n const noDocumentAll = api.assumption(\"noDocumentAll\") ?? loose;\n\n return {\n name: \"transform-nullish-coalescing-operator\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-nullish-coalescing-operator\").default,\n\n visitor: {\n LogicalExpression(path) {\n const { node, scope } = path;\n if (node.operator !== \"??\") {\n return;\n }\n\n let ref;\n let assignment;\n // skip creating extra reference when `left` is static\n if (scope.isStatic(node.left)) {\n ref = node.left;\n assignment = t.cloneNode(node.left);\n } else if (scope.path.isPattern()) {\n // Replace `function (a, x = a.b ?? c) {}` to `function (a, x = (() => a.b ?? c)() ){}`\n // so the temporary variable can be injected in correct scope\n path.replaceWith(template.statement.ast`(() => ${path.node})()`);\n // The injected nullish expression will be queued and eventually transformed when visited\n return;\n } else {\n ref = scope.generateUidIdentifierBasedOnNode(node.left);\n scope.push({ id: t.cloneNode(ref) });\n assignment = t.assignmentExpression(\"=\", ref, node.left);\n }\n\n path.replaceWith(\n t.conditionalExpression(\n // We cannot use `!= null` in spec mode because\n // `document.all == null` and `document.all` is not \"nullish\".\n noDocumentAll\n ? t.binaryExpression(\"!=\", assignment, t.nullLiteral())\n : t.logicalExpression(\n \"&&\",\n t.binaryExpression(\"!==\", assignment, t.nullLiteral()),\n t.binaryExpression(\n \"!==\",\n t.cloneNode(ref),\n scope.buildUndefinedNode(),\n ),\n ),\n t.cloneNode(ref),\n node.right,\n ),\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAmD,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAMpC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAE;EAAEC,KAAK,GAAG;AAAe,CAAC,KAAK;EAAA,IAAAC,eAAA;EAC1DF,GAAG,CAACG,aAAa,CAGX,CACN,CAAC;EACD,MAAMC,aAAa,IAAAF,eAAA,GAAGF,GAAG,CAACK,UAAU,CAAC,eAAe,CAAC,YAAAH,eAAA,GAAID,KAAK;EAE9D,OAAO;IACLK,IAAI,EAAE,uCAAuC;IAC7CC,QAAQ,EAKFb,OAAO,CAAC,kDAAkD,CAAC,CAACI,OAAO;IAEzEU,OAAO,EAAE;MACPC,iBAAiBA,CAACC,IAAI,EAAE;QACtB,MAAM;UAAEC,IAAI;UAAEC;QAAM,CAAC,GAAGF,IAAI;QAC5B,IAAIC,IAAI,CAACE,QAAQ,KAAK,IAAI,EAAE;UAC1B;QACF;QAEA,IAAIC,GAAG;QACP,IAAIC,UAAU;QAEd,IAAIH,KAAK,CAACI,QAAQ,CAACL,IAAI,CAACM,IAAI,CAAC,EAAE;UAC7BH,GAAG,GAAGH,IAAI,CAACM,IAAI;UACfF,UAAU,GAAGG,WAAC,CAACC,SAAS,CAACR,IAAI,CAACM,IAAI,CAAC;QACrC,CAAC,MAAM,IAAIL,KAAK,CAACF,IAAI,CAACU,SAAS,CAAC,CAAC,EAAE;UAGjCV,IAAI,CAACW,WAAW,CAACC,cAAQ,CAACC,SAAS,CAACC,GAAI,UAASd,IAAI,CAACC,IAAK,KAAI,CAAC;UAEhE;QACF,CAAC,MAAM;UACLG,GAAG,GAAGF,KAAK,CAACa,gCAAgC,CAACd,IAAI,CAACM,IAAI,CAAC;UACvDL,KAAK,CAACc,IAAI,CAAC;YAAEC,EAAE,EAAET,WAAC,CAACC,SAAS,CAACL,GAAG;UAAE,CAAC,CAAC;UACpCC,UAAU,GAAGG,WAAC,CAACU,oBAAoB,CAAC,GAAG,EAAEd,GAAG,EAAEH,IAAI,CAACM,IAAI,CAAC;QAC1D;QAEAP,IAAI,CAACW,WAAW,CACdH,WAAC,CAACW,qBAAqB,CAGrBzB,aAAa,GACTc,WAAC,CAACY,gBAAgB,CAAC,IAAI,EAAEf,UAAU,EAAEG,WAAC,CAACa,WAAW,CAAC,CAAC,CAAC,GACrDb,WAAC,CAACc,iBAAiB,CACjB,IAAI,EACJd,WAAC,CAACY,gBAAgB,CAAC,KAAK,EAAEf,UAAU,EAAEG,WAAC,CAACa,WAAW,CAAC,CAAC,CAAC,EACtDb,WAAC,CAACY,gBAAgB,CAChB,KAAK,EACLZ,WAAC,CAACC,SAAS,CAACL,GAAG,CAAC,EAChBF,KAAK,CAACqB,kBAAkB,CAAC,CAC3B,CACF,CAAC,EACLf,WAAC,CAACC,SAAS,CAACL,GAAG,CAAC,EAChBH,IAAI,CAACuB,KACP,CACF,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-nullish-coalescing-operator/package.json b/node_modules/@babel/plugin-transform-nullish-coalescing-operator/package.json index dd3a8539..038e14ee 100644 --- a/node_modules/@babel/plugin-transform-nullish-coalescing-operator/package.json +++ b/node_modules/@babel/plugin-transform-nullish-coalescing-operator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-nullish-coalescing-operator", - "version": "7.22.11", + "version": "7.23.4", "description": "Remove nullish coalescing operator", "repository": { "type": "git", @@ -24,7 +24,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.11", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-numeric-separator/lib/index.js b/node_modules/@babel/plugin-transform-numeric-separator/lib/index.js index f5b56a61..b881300d 100644 --- a/node_modules/@babel/plugin-transform-numeric-separator/lib/index.js +++ b/node_modules/@babel/plugin-transform-numeric-separator/lib/index.js @@ -16,7 +16,7 @@ function remover({ extra.raw = extra.raw.replace(/_/g, ""); } } -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-numeric-separator", @@ -27,6 +27,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-numeric-separator/lib/index.js.map b/node_modules/@babel/plugin-transform-numeric-separator/lib/index.js.map index c03ae44c..ac868fcb 100644 --- a/node_modules/@babel/plugin-transform-numeric-separator/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-numeric-separator/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","remover","node","_extra$raw","extra","raw","includes","replace","_default","declare","api","assertVersion","name","inherits","default","visitor","NumericLiteral","BigIntLiteral","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\n/**\n * Given a bigIntLiteral or NumericLiteral, remove numeric\n * separator `_` from its raw representation\n *\n * @param {NodePath<BigIntLiteral | NumericLiteral>} { node }: A Babel AST node path\n */\nfunction remover({ node }: NodePath<t.BigIntLiteral | t.NumericLiteral>) {\n const { extra } = node;\n // @ts-expect-error todo(flow->ts)\n if (extra?.raw?.includes(\"_\")) {\n // @ts-expect-error todo(flow->ts)\n extra.raw = extra.raw.replace(/_/g, \"\");\n }\n}\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-numeric-separator\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-numeric-separator\").default,\n\n visitor: {\n NumericLiteral: remover,\n BigIntLiteral: remover,\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAUA,SAASC,OAAOA,CAAC;EAAEC;AAAmD,CAAC,EAAE;EAAA,IAAAC,UAAA;EACvE,MAAM;IAAEC;EAAM,CAAC,GAAGF,IAAI;EAEtB,IAAIE,KAAK,aAAAD,UAAA,GAALC,KAAK,CAAEC,GAAG,aAAVF,UAAA,CAAYG,QAAQ,CAAC,GAAG,CAAC,EAAE;IAE7BF,KAAK,CAACC,GAAG,GAAGD,KAAK,CAACC,GAAG,CAACE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;EACzC;AACF;AAAC,IAAAC,QAAA,GAEc,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,6BAA6B;IACnCC,QAAQ,EAKJb,OAAO,CAAC,wCAAwC,CAAC,CAACc,OAAO;IAE7DC,OAAO,EAAE;MACPC,cAAc,EAAEf,OAAO;MACvBgB,aAAa,EAAEhB;IACjB;EACF,CAAC;AACH,CAAC,CAAC;AAAAiB,OAAA,CAAAJ,OAAA,GAAAN,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","remover","node","_extra$raw","extra","raw","includes","replace","_default","exports","default","declare","api","assertVersion","name","inherits","visitor","NumericLiteral","BigIntLiteral"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\n/**\n * Given a bigIntLiteral or NumericLiteral, remove numeric\n * separator `_` from its raw representation\n *\n * @param {NodePath<BigIntLiteral | NumericLiteral>} { node }: A Babel AST node path\n */\nfunction remover({ node }: NodePath<t.BigIntLiteral | t.NumericLiteral>) {\n const { extra } = node;\n // @ts-expect-error todo(flow->ts)\n if (extra?.raw?.includes(\"_\")) {\n // @ts-expect-error todo(flow->ts)\n extra.raw = extra.raw.replace(/_/g, \"\");\n }\n}\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-numeric-separator\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-numeric-separator\").default,\n\n visitor: {\n NumericLiteral: remover,\n BigIntLiteral: remover,\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAUA,SAASC,OAAOA,CAAC;EAAEC;AAAmD,CAAC,EAAE;EAAA,IAAAC,UAAA;EACvE,MAAM;IAAEC;EAAM,CAAC,GAAGF,IAAI;EAEtB,IAAIE,KAAK,aAAAD,UAAA,GAALC,KAAK,CAAEC,GAAG,aAAVF,UAAA,CAAYG,QAAQ,CAAC,GAAG,CAAC,EAAE;IAE7BF,KAAK,CAACC,GAAG,GAAGD,KAAK,CAACC,GAAG,CAACE,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;EACzC;AACF;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,6BAA6B;IACnCC,QAAQ,EAKFf,OAAO,CAAC,wCAAwC,CAAC,CAACU,OAAO;IAE/DM,OAAO,EAAE;MACPC,cAAc,EAAEhB,OAAO;MACvBiB,aAAa,EAAEjB;IACjB;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-numeric-separator/package.json b/node_modules/@babel/plugin-transform-numeric-separator/package.json index 732ce162..fab53954 100644 --- a/node_modules/@babel/plugin-transform-numeric-separator/package.json +++ b/node_modules/@babel/plugin-transform-numeric-separator/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-numeric-separator", - "version": "7.22.11", + "version": "7.23.4", "description": "Remove numeric separators from Decimal, Binary, Hex and Octal literals", "repository": { "type": "git", @@ -24,10 +24,10 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.11", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/traverse": "^7.22.11", - "@babel/types": "^7.22.11" + "@babel/traverse": "^7.23.4", + "@babel/types": "^7.23.4" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-object-rest-spread/lib/index.js.map b/node_modules/@babel/plugin-transform-object-rest-spread/lib/index.js.map index 535a3190..6d7c0ce4 100644 --- a/node_modules/@babel/plugin-transform-object-rest-spread/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-object-rest-spread/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/shouldStoreRHSInTemporaryVariable.ts","../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\n\nconst {\n isObjectProperty,\n isArrayPattern,\n isObjectPattern,\n isAssignmentPattern,\n isRestElement,\n isIdentifier,\n} = t;\n/**\n * This is a helper function to determine if we should create an intermediate variable\n * such that the RHS of an assignment is not duplicated.\n *\n * See https://github.com/babel/babel/pull/13711#issuecomment-914388382 for discussion\n * on further optimizations.\n */\nexport default function shouldStoreRHSInTemporaryVariable(\n node: t.LVal,\n): boolean {\n if (isArrayPattern(node)) {\n const nonNullElements = node.elements.filter(element => element !== null);\n if (nonNullElements.length > 1) return true;\n else return shouldStoreRHSInTemporaryVariable(nonNullElements[0]);\n } else if (isObjectPattern(node)) {\n const { properties } = node;\n if (properties.length > 1) return true;\n else if (properties.length === 0) return false;\n else {\n const firstProperty = properties[0];\n if (isObjectProperty(firstProperty)) {\n // the value of the property must be an LVal\n return shouldStoreRHSInTemporaryVariable(firstProperty.value as t.LVal);\n } else {\n return shouldStoreRHSInTemporaryVariable(firstProperty);\n }\n }\n } else if (isAssignmentPattern(node)) {\n return shouldStoreRHSInTemporaryVariable(node.left);\n } else if (isRestElement(node)) {\n if (isIdentifier(node.argument)) return true;\n return shouldStoreRHSInTemporaryVariable(node.argument);\n } else {\n // node is Identifier or MemberExpression\n return false;\n }\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { PluginPass } from \"@babel/core\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\nimport { convertFunctionParams } from \"@babel/plugin-transform-parameters\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport compatData from \"@babel/compat-data/corejs2-built-ins\";\nimport shouldStoreRHSInTemporaryVariable from \"./shouldStoreRHSInTemporaryVariable.ts\";\n\nconst { isAssignmentPattern, isObjectProperty } = t;\n// @babel/types <=7.3.3 counts FOO as referenced in var { x: FOO }.\n// We need to detect this bug to know if \"unused\" means 0 or 1 references.\nif (!process.env.BABEL_8_BREAKING) {\n const node = t.identifier(\"a\");\n const property = t.objectProperty(t.identifier(\"key\"), node);\n const pattern = t.objectPattern([property]);\n\n // eslint-disable-next-line no-var\n var ZERO_REFS = t.isReferenced(node, property, pattern) ? 1 : 0;\n}\n\ntype Param = NodePath<t.Function[\"params\"][number]>;\nexport interface Options {\n useBuiltIns?: boolean;\n loose?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(7);\n\n const targets = api.targets();\n const supportsObjectAssign = !isRequired(\"es6.object.assign\", targets, {\n compatData,\n });\n\n const { useBuiltIns = supportsObjectAssign, loose = false } = opts;\n\n if (typeof loose !== \"boolean\") {\n throw new Error(\".loose must be a boolean, or undefined\");\n }\n\n const ignoreFunctionLength = api.assumption(\"ignoreFunctionLength\") ?? loose;\n const objectRestNoSymbols = api.assumption(\"objectRestNoSymbols\") ?? loose;\n const pureGetters = api.assumption(\"pureGetters\") ?? loose;\n const setSpreadProperties = api.assumption(\"setSpreadProperties\") ?? loose;\n\n function getExtendsHelper(\n file: PluginPass,\n ): t.MemberExpression | t.Identifier {\n return useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : file.addHelper(\"extends\");\n }\n\n function hasRestElement(path: Param) {\n let foundRestElement = false;\n visitRestElements(path, restElement => {\n foundRestElement = true;\n restElement.stop();\n });\n return foundRestElement;\n }\n\n function hasObjectPatternRestElement(path: NodePath): boolean {\n let foundRestElement = false;\n visitRestElements(path, restElement => {\n if (restElement.parentPath.isObjectPattern()) {\n foundRestElement = true;\n restElement.stop();\n }\n });\n return foundRestElement;\n }\n\n function visitRestElements(\n path: NodePath,\n visitor: (path: NodePath<t.RestElement>) => any,\n ) {\n path.traverse({\n Expression(path) {\n const { parent, key } = path;\n if (\n (isAssignmentPattern(parent) && key === \"right\") ||\n (isObjectProperty(parent) && parent.computed && key === \"key\")\n ) {\n path.skip();\n }\n },\n RestElement: visitor,\n });\n }\n\n function hasSpread(node: t.ObjectExpression): boolean {\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n return true;\n }\n }\n return false;\n }\n\n // returns an array of all keys of an object, and a status flag indicating if all extracted keys\n // were converted to stringLiterals or not\n // e.g. extracts {keys: [\"a\", \"b\", \"3\", ++x], allLiteral: false }\n // from ast of {a: \"foo\", b, 3: \"bar\", [++x]: \"baz\"}\n function extractNormalizedKeys(node: t.ObjectPattern) {\n // RestElement has been removed in createObjectRest\n const props = node.properties as t.ObjectProperty[];\n const keys: t.Expression[] = [];\n let allLiteral = true;\n let hasTemplateLiteral = false;\n\n for (const prop of props) {\n if (t.isIdentifier(prop.key) && !prop.computed) {\n // since a key {a: 3} is equivalent to {\"a\": 3}, use the latter\n keys.push(t.stringLiteral(prop.key.name));\n } else if (t.isTemplateLiteral(prop.key)) {\n keys.push(t.cloneNode(prop.key));\n hasTemplateLiteral = true;\n } else if (t.isLiteral(prop.key)) {\n keys.push(\n t.stringLiteral(\n String(\n // @ts-expect-error prop.key can not be a NullLiteral\n prop.key.value,\n ),\n ),\n );\n } else {\n // @ts-expect-error private name has been handled by destructuring-private\n keys.push(t.cloneNode(prop.key));\n allLiteral = false;\n }\n }\n\n return { keys, allLiteral, hasTemplateLiteral };\n }\n\n // replaces impure computed keys with new identifiers\n // and returns variable declarators of these new identifiers\n function replaceImpureComputedKeys(\n properties: NodePath<t.ObjectProperty>[],\n scope: Scope,\n ) {\n const impureComputedPropertyDeclarators: t.VariableDeclarator[] = [];\n for (const propPath of properties) {\n // PrivateName is handled in destructuring-private plugin\n const key = propPath.get(\"key\") as NodePath<t.Expression>;\n if (propPath.node.computed && !key.isPure()) {\n const name = scope.generateUidBasedOnNode(key.node);\n const declarator = t.variableDeclarator(t.identifier(name), key.node);\n impureComputedPropertyDeclarators.push(declarator);\n key.replaceWith(t.identifier(name));\n }\n }\n return impureComputedPropertyDeclarators;\n }\n\n function removeUnusedExcludedKeys(path: NodePath<t.ObjectPattern>): void {\n const bindings = path.getOuterBindingIdentifierPaths();\n\n Object.keys(bindings).forEach(bindingName => {\n const bindingParentPath = bindings[bindingName].parentPath;\n if (\n path.scope.getBinding(bindingName).references >\n (process.env.BABEL_8_BREAKING ? 0 : ZERO_REFS) ||\n !bindingParentPath.isObjectProperty()\n ) {\n return;\n }\n bindingParentPath.remove();\n });\n }\n\n //expects path to an object pattern\n function createObjectRest(\n path: NodePath<t.ObjectPattern>,\n file: PluginPass,\n objRef: t.Identifier | t.MemberExpression,\n ): [t.VariableDeclarator[], t.LVal, t.CallExpression] {\n const props = path.get(\"properties\");\n const last = props[props.length - 1];\n t.assertRestElement(last.node);\n const restElement = t.cloneNode(last.node);\n last.remove();\n\n const impureComputedPropertyDeclarators = replaceImpureComputedKeys(\n path.get(\"properties\") as NodePath<t.ObjectProperty>[],\n path.scope,\n );\n const { keys, allLiteral, hasTemplateLiteral } = extractNormalizedKeys(\n path.node,\n );\n\n if (keys.length === 0) {\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(getExtendsHelper(file), [\n t.objectExpression([]),\n t.sequenceExpression([\n t.callExpression(file.addHelper(\"objectDestructuringEmpty\"), [\n t.cloneNode(objRef),\n ]),\n t.cloneNode(objRef),\n ]),\n ]),\n ];\n }\n\n let keyExpression;\n if (!allLiteral) {\n // map to toPropertyKey to handle the possible non-string values\n keyExpression = t.callExpression(\n t.memberExpression(t.arrayExpression(keys), t.identifier(\"map\")),\n [file.addHelper(\"toPropertyKey\")],\n );\n } else {\n keyExpression = t.arrayExpression(keys);\n\n if (!hasTemplateLiteral && !t.isProgram(path.scope.block)) {\n // Hoist definition of excluded keys, so that it's not created each time.\n const program = path.findParent(path => path.isProgram());\n const id = path.scope.generateUidIdentifier(\"excluded\");\n\n program.scope.push({\n id,\n init: keyExpression,\n kind: \"const\",\n });\n\n keyExpression = t.cloneNode(id);\n }\n }\n\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(\n file.addHelper(\n `objectWithoutProperties${objectRestNoSymbols ? \"Loose\" : \"\"}`,\n ),\n [t.cloneNode(objRef), keyExpression],\n ),\n ];\n }\n\n function replaceRestElement(\n parentPath: NodePath<t.Function | t.CatchClause>,\n paramPath: NodePath<\n t.Function[\"params\"][number] | t.AssignmentPattern[\"left\"]\n >,\n container?: t.VariableDeclaration[],\n ): void {\n if (paramPath.isAssignmentPattern()) {\n replaceRestElement(parentPath, paramPath.get(\"left\"), container);\n return;\n }\n\n if (paramPath.isArrayPattern() && hasRestElement(paramPath)) {\n const elements = paramPath.get(\"elements\");\n\n for (let i = 0; i < elements.length; i++) {\n replaceRestElement(parentPath, elements[i], container);\n }\n }\n\n if (paramPath.isObjectPattern() && hasRestElement(paramPath)) {\n const uid = parentPath.scope.generateUidIdentifier(\"ref\");\n\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(paramPath.node, uid),\n ]);\n\n if (container) {\n container.push(declar);\n } else {\n parentPath.ensureBlock();\n parentPath.get(\"body\").unshiftContainer(\"body\", declar);\n }\n paramPath.replaceWith(t.cloneNode(uid));\n }\n }\n\n return {\n name: \"transform-object-rest-spread\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-object-rest-spread\").default,\n\n visitor: {\n // function a({ b, ...c }) {}\n Function(path) {\n const params = path.get(\"params\");\n const paramsWithRestElement = new Set<number>();\n const idsInRestParams = new Set();\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (hasRestElement(param)) {\n paramsWithRestElement.add(i);\n for (const name of Object.keys(param.getBindingIdentifiers())) {\n idsInRestParams.add(name);\n }\n }\n }\n\n // if true, a parameter exists that has an id in its initializer\n // that is also an id bound in a rest parameter\n // example: f({...R}, a = R)\n let idInRest = false;\n\n const IdentifierHandler = function (\n path: NodePath<t.Identifier>,\n functionScope: Scope,\n ) {\n const name = path.node.name;\n if (\n path.scope.getBinding(name) === functionScope.getBinding(name) &&\n idsInRestParams.has(name)\n ) {\n idInRest = true;\n path.stop();\n }\n };\n\n let i: number;\n for (i = 0; i < params.length && !idInRest; ++i) {\n const param = params[i];\n if (!paramsWithRestElement.has(i)) {\n if (param.isReferencedIdentifier() || param.isBindingIdentifier()) {\n IdentifierHandler(param, path.scope);\n } else {\n param.traverse(\n {\n \"Scope|TypeAnnotation|TSTypeAnnotation\": path => path.skip(),\n \"ReferencedIdentifier|BindingIdentifier\": IdentifierHandler,\n },\n path.scope,\n );\n }\n }\n }\n\n if (!idInRest) {\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (paramsWithRestElement.has(i)) {\n replaceRestElement(path, param);\n }\n }\n } else {\n const shouldTransformParam = (idx: number) =>\n idx >= i - 1 || paramsWithRestElement.has(idx);\n convertFunctionParams(\n path,\n ignoreFunctionLength,\n shouldTransformParam,\n replaceRestElement,\n );\n }\n },\n\n // adapted from transform-destructuring/src/index.js#pushObjectRest\n // const { a, ...b } = c;\n VariableDeclarator(path, file) {\n if (!path.get(\"id\").isObjectPattern()) {\n return;\n }\n\n let insertionPath = path;\n const originalPath = path;\n\n visitRestElements(path.get(\"id\"), path => {\n if (!path.parentPath.isObjectPattern()) {\n // Return early if the parent is not an ObjectPattern, but\n // (for example) an ArrayPattern or Function, because that\n // means this RestElement is an not an object property.\n return;\n }\n\n if (\n // skip single-property case, e.g.\n // const { ...x } = foo();\n // since the RHS will not be duplicated\n shouldStoreRHSInTemporaryVariable(originalPath.node.id) &&\n !t.isIdentifier(originalPath.node.init)\n ) {\n // const { a, ...b } = foo();\n // to avoid calling foo() twice, as a first step convert it to:\n // const _foo = foo(),\n // { a, ...b } = _foo;\n const initRef = path.scope.generateUidIdentifierBasedOnNode(\n originalPath.node.init,\n \"ref\",\n );\n // insert _foo = foo()\n originalPath.insertBefore(\n t.variableDeclarator(initRef, originalPath.node.init),\n );\n // replace foo() with _foo\n originalPath.replaceWith(\n t.variableDeclarator(originalPath.node.id, t.cloneNode(initRef)),\n );\n\n return;\n }\n\n let ref = originalPath.node.init;\n const refPropertyPath: NodePath<t.ObjectProperty>[] = [];\n let kind;\n\n path.findParent((path: NodePath): boolean => {\n if (path.isObjectProperty()) {\n refPropertyPath.unshift(path);\n } else if (path.isVariableDeclarator()) {\n kind = path.parentPath.node.kind;\n return true;\n }\n });\n\n const impureObjRefComputedDeclarators = replaceImpureComputedKeys(\n refPropertyPath,\n path.scope,\n );\n refPropertyPath.forEach(prop => {\n const { node } = prop;\n ref = t.memberExpression(\n ref,\n t.cloneNode(node.key),\n node.computed || t.isLiteral(node.key),\n );\n });\n\n //@ts-expect-error: findParent can not apply assertions on result shape\n const objectPatternPath: NodePath<t.ObjectPattern> = path.findParent(\n path => path.isObjectPattern(),\n );\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(\n objectPatternPath,\n file,\n ref as t.MemberExpression,\n );\n\n if (pureGetters) {\n removeUnusedExcludedKeys(objectPatternPath);\n }\n\n t.assertIdentifier(argument);\n\n insertionPath.insertBefore(impureComputedPropertyDeclarators);\n\n insertionPath.insertBefore(impureObjRefComputedDeclarators);\n\n insertionPath = insertionPath.insertAfter(\n t.variableDeclarator(argument, callExpression),\n )[0] as NodePath<t.VariableDeclarator>;\n\n path.scope.registerBinding(kind, insertionPath);\n\n if (objectPatternPath.node.properties.length === 0) {\n objectPatternPath\n .findParent(\n path => path.isObjectProperty() || path.isVariableDeclarator(),\n )\n .remove();\n }\n });\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n // export var { a, ...b } = c;\n ExportNamedDeclaration(path) {\n const declaration = path.get(\"declaration\");\n if (!declaration.isVariableDeclaration()) return;\n\n const hasRest = declaration\n .get(\"declarations\")\n .some(path => hasObjectPatternRestElement(path.get(\"id\")));\n if (!hasRest) return;\n\n const specifiers = [];\n\n for (const name of Object.keys(path.getOuterBindingIdentifiers(true))) {\n specifiers.push(\n t.exportSpecifier(t.identifier(name), t.identifier(name)),\n );\n }\n\n // Split the declaration and export list into two declarations so that the variable\n // declaration can be split up later without needing to worry about not being a\n // top-level statement.\n path.replaceWith(declaration.node);\n path.insertAfter(t.exportNamedDeclaration(null, specifiers));\n },\n\n // try {} catch ({a, ...b}) {}\n CatchClause(path) {\n const paramPath = path.get(\"param\");\n replaceRestElement(path, paramPath);\n },\n\n // ({a, ...b} = c);\n AssignmentExpression(path, file) {\n const leftPath = path.get(\"left\");\n if (leftPath.isObjectPattern() && hasRestElement(leftPath)) {\n const nodes = [];\n\n const refName = path.scope.generateUidBasedOnNode(\n path.node.right,\n \"ref\",\n );\n\n nodes.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(refName), path.node.right),\n ]),\n );\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(leftPath, file, t.identifier(refName));\n\n if (impureComputedPropertyDeclarators.length > 0) {\n nodes.push(\n t.variableDeclaration(\"var\", impureComputedPropertyDeclarators),\n );\n }\n\n const nodeWithoutSpread = t.cloneNode(path.node);\n nodeWithoutSpread.right = t.identifier(refName);\n nodes.push(t.expressionStatement(nodeWithoutSpread));\n nodes.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", argument, callExpression),\n ),\n );\n nodes.push(t.expressionStatement(t.identifier(refName)));\n\n path.replaceWithMultiple(nodes);\n }\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n ForXStatement(path: NodePath<t.ForXStatement>) {\n const { node, scope } = path;\n const leftPath = path.get(\"left\");\n const left = node.left;\n\n if (!hasObjectPatternRestElement(leftPath)) {\n return;\n }\n\n if (!t.isVariableDeclaration(left)) {\n // for ({a, ...b} of []) {}\n const temp = scope.generateUidIdentifier(\"ref\");\n\n node.left = t.variableDeclaration(\"var\", [\n t.variableDeclarator(temp),\n ]);\n\n path.ensureBlock();\n const body = path.node.body;\n\n if (body.body.length === 0 && path.isCompletionRecord()) {\n body.body.unshift(\n t.expressionStatement(scope.buildUndefinedNode()),\n );\n }\n\n body.body.unshift(\n t.expressionStatement(\n t.assignmentExpression(\"=\", left, t.cloneNode(temp)),\n ),\n );\n } else {\n // for (var {a, ...b} of []) {}\n const pattern = left.declarations[0].id;\n\n const key = scope.generateUidIdentifier(\"ref\");\n node.left = t.variableDeclaration(left.kind, [\n t.variableDeclarator(key, null),\n ]);\n\n path.ensureBlock();\n const body = node.body as t.BlockStatement;\n\n body.body.unshift(\n t.variableDeclaration(node.left.kind, [\n t.variableDeclarator(pattern, t.cloneNode(key)),\n ]),\n );\n }\n },\n\n // [{a, ...b}] = c;\n ArrayPattern(path) {\n const objectPatterns: t.VariableDeclarator[] = [];\n\n visitRestElements(path, path => {\n if (!path.parentPath.isObjectPattern()) {\n // Return early if the parent is not an ObjectPattern, but\n // (for example) an ArrayPattern or Function, because that\n // means this RestElement is an not an object property.\n return;\n }\n\n const objectPattern = path.parentPath;\n\n const uid = path.scope.generateUidIdentifier(\"ref\");\n objectPatterns.push(t.variableDeclarator(objectPattern.node, uid));\n\n objectPattern.replaceWith(t.cloneNode(uid));\n path.skip();\n });\n\n if (objectPatterns.length > 0) {\n const statementPath = path.getStatementParent();\n const statementNode = statementPath.node;\n const kind =\n statementNode.type === \"VariableDeclaration\"\n ? statementNode.kind\n : \"var\";\n statementPath.insertAfter(\n t.variableDeclaration(kind, objectPatterns),\n );\n }\n },\n\n // var a = { ...b, ...c }\n ObjectExpression(path, file) {\n if (!hasSpread(path.node)) return;\n\n let helper: t.Identifier | t.MemberExpression;\n if (setSpreadProperties) {\n helper = getExtendsHelper(file);\n } else {\n try {\n helper = file.addHelper(\"objectSpread2\");\n } catch {\n // TODO: This is needed to workaround https://github.com/babel/babel/issues/10187\n // and https://github.com/babel/babel/issues/10179 for older @babel/core versions\n // where #10187 isn't fixed.\n this.file.declarations[\"objectSpread2\"] = null;\n\n // objectSpread2 has been introduced in v7.5.0\n // We have to maintain backward compatibility.\n helper = file.addHelper(\"objectSpread\");\n }\n }\n\n let exp: t.CallExpression = null;\n let props: t.ObjectMember[] = [];\n\n function make() {\n const hadProps = props.length > 0;\n const obj = t.objectExpression(props);\n props = [];\n\n if (!exp) {\n exp = t.callExpression(helper, [obj]);\n return;\n }\n\n // When we can assume that getters are pure and don't depend on\n // the order of evaluation, we can avoid making multiple calls.\n if (pureGetters) {\n if (hadProps) {\n exp.arguments.push(obj);\n }\n return;\n }\n\n exp = t.callExpression(t.cloneNode(helper), [\n exp,\n // If we have static props, we need to insert an empty object\n // because the odd arguments are copied with [[Get]], not\n // [[GetOwnProperty]]\n ...(hadProps ? [t.objectExpression([]), obj] : []),\n ]);\n }\n\n for (const prop of path.node.properties) {\n if (t.isSpreadElement(prop)) {\n make();\n exp.arguments.push(prop.argument);\n } else {\n props.push(prop);\n }\n }\n\n if (props.length) make();\n\n path.replaceWith(exp);\n },\n },\n };\n});\n"],"names":["isObjectProperty","isArrayPattern","isObjectPattern","isAssignmentPattern","isRestElement","isIdentifier","t","shouldStoreRHSInTemporaryVariable","node","nonNullElements","elements","filter","element","length","properties","firstProperty","value","left","argument","identifier","property","objectProperty","pattern","objectPattern","ZERO_REFS","isReferenced","declare","api","opts","_api$assumption","_api$assumption2","_api$assumption3","_api$assumption4","assertVersion","targets","supportsObjectAssign","isRequired","compatData","useBuiltIns","loose","Error","ignoreFunctionLength","assumption","objectRestNoSymbols","pureGetters","setSpreadProperties","getExtendsHelper","file","memberExpression","addHelper","hasRestElement","path","foundRestElement","visitRestElements","restElement","stop","hasObjectPatternRestElement","parentPath","visitor","traverse","Expression","parent","key","computed","skip","RestElement","hasSpread","prop","isSpreadElement","extractNormalizedKeys","props","keys","allLiteral","hasTemplateLiteral","push","stringLiteral","name","isTemplateLiteral","cloneNode","isLiteral","String","replaceImpureComputedKeys","scope","impureComputedPropertyDeclarators","propPath","get","isPure","generateUidBasedOnNode","declarator","variableDeclarator","replaceWith","removeUnusedExcludedKeys","bindings","getOuterBindingIdentifierPaths","Object","forEach","bindingName","bindingParentPath","getBinding","references","remove","createObjectRest","objRef","last","assertRestElement","callExpression","objectExpression","sequenceExpression","keyExpression","arrayExpression","isProgram","block","program","findParent","id","generateUidIdentifier","init","kind","replaceRestElement","paramPath","container","i","uid","declar","variableDeclaration","ensureBlock","unshiftContainer","inherits","require","default","Function","params","paramsWithRestElement","Set","idsInRestParams","param","add","getBindingIdentifiers","idInRest","IdentifierHandler","functionScope","has","isReferencedIdentifier","isBindingIdentifier","shouldTransformParam","idx","convertFunctionParams","VariableDeclarator","insertionPath","originalPath","initRef","generateUidIdentifierBasedOnNode","insertBefore","ref","refPropertyPath","unshift","isVariableDeclarator","impureObjRefComputedDeclarators","objectPatternPath","assertIdentifier","insertAfter","registerBinding","ExportNamedDeclaration","declaration","isVariableDeclaration","hasRest","some","specifiers","getOuterBindingIdentifiers","exportSpecifier","exportNamedDeclaration","CatchClause","AssignmentExpression","leftPath","nodes","refName","right","nodeWithoutSpread","expressionStatement","assignmentExpression","replaceWithMultiple","ForXStatement","temp","body","isCompletionRecord","buildUndefinedNode","declarations","ArrayPattern","objectPatterns","statementPath","getStatementParent","statementNode","type","ObjectExpression","helper","_unused","exp","make","hadProps","obj","arguments"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/shouldStoreRHSInTemporaryVariable.ts","../src/index.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\n\nconst {\n isObjectProperty,\n isArrayPattern,\n isObjectPattern,\n isAssignmentPattern,\n isRestElement,\n isIdentifier,\n} = t;\n/**\n * This is a helper function to determine if we should create an intermediate variable\n * such that the RHS of an assignment is not duplicated.\n *\n * See https://github.com/babel/babel/pull/13711#issuecomment-914388382 for discussion\n * on further optimizations.\n */\nexport default function shouldStoreRHSInTemporaryVariable(\n node: t.LVal,\n): boolean {\n if (isArrayPattern(node)) {\n const nonNullElements = node.elements.filter(element => element !== null);\n if (nonNullElements.length > 1) return true;\n else return shouldStoreRHSInTemporaryVariable(nonNullElements[0]);\n } else if (isObjectPattern(node)) {\n const { properties } = node;\n if (properties.length > 1) return true;\n else if (properties.length === 0) return false;\n else {\n const firstProperty = properties[0];\n if (isObjectProperty(firstProperty)) {\n // the value of the property must be an LVal\n return shouldStoreRHSInTemporaryVariable(firstProperty.value as t.LVal);\n } else {\n return shouldStoreRHSInTemporaryVariable(firstProperty);\n }\n }\n } else if (isAssignmentPattern(node)) {\n return shouldStoreRHSInTemporaryVariable(node.left);\n } else if (isRestElement(node)) {\n if (isIdentifier(node.argument)) return true;\n return shouldStoreRHSInTemporaryVariable(node.argument);\n } else {\n // node is Identifier or MemberExpression\n return false;\n }\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { PluginPass } from \"@babel/core\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\nimport { convertFunctionParams } from \"@babel/plugin-transform-parameters\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport compatData from \"@babel/compat-data/corejs2-built-ins\";\nimport shouldStoreRHSInTemporaryVariable from \"./shouldStoreRHSInTemporaryVariable.ts\";\n\nconst { isAssignmentPattern, isObjectProperty } = t;\n// @babel/types <=7.3.3 counts FOO as referenced in var { x: FOO }.\n// We need to detect this bug to know if \"unused\" means 0 or 1 references.\nif (!process.env.BABEL_8_BREAKING) {\n const node = t.identifier(\"a\");\n const property = t.objectProperty(t.identifier(\"key\"), node);\n const pattern = t.objectPattern([property]);\n\n // eslint-disable-next-line no-var\n var ZERO_REFS = t.isReferenced(node, property, pattern) ? 1 : 0;\n}\n\ntype Param = NodePath<t.Function[\"params\"][number]>;\nexport interface Options {\n useBuiltIns?: boolean;\n loose?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const targets = api.targets();\n const supportsObjectAssign = !isRequired(\"es6.object.assign\", targets, {\n compatData,\n });\n\n const { useBuiltIns = supportsObjectAssign, loose = false } = opts;\n\n if (typeof loose !== \"boolean\") {\n throw new Error(\".loose must be a boolean, or undefined\");\n }\n\n const ignoreFunctionLength = api.assumption(\"ignoreFunctionLength\") ?? loose;\n const objectRestNoSymbols = api.assumption(\"objectRestNoSymbols\") ?? loose;\n const pureGetters = api.assumption(\"pureGetters\") ?? loose;\n const setSpreadProperties = api.assumption(\"setSpreadProperties\") ?? loose;\n\n function getExtendsHelper(\n file: PluginPass,\n ): t.MemberExpression | t.Identifier {\n return useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : file.addHelper(\"extends\");\n }\n\n function hasRestElement(path: Param) {\n let foundRestElement = false;\n visitRestElements(path, restElement => {\n foundRestElement = true;\n restElement.stop();\n });\n return foundRestElement;\n }\n\n function hasObjectPatternRestElement(path: NodePath): boolean {\n let foundRestElement = false;\n visitRestElements(path, restElement => {\n if (restElement.parentPath.isObjectPattern()) {\n foundRestElement = true;\n restElement.stop();\n }\n });\n return foundRestElement;\n }\n\n function visitRestElements(\n path: NodePath,\n visitor: (path: NodePath<t.RestElement>) => any,\n ) {\n path.traverse({\n Expression(path) {\n const { parent, key } = path;\n if (\n (isAssignmentPattern(parent) && key === \"right\") ||\n (isObjectProperty(parent) && parent.computed && key === \"key\")\n ) {\n path.skip();\n }\n },\n RestElement: visitor,\n });\n }\n\n function hasSpread(node: t.ObjectExpression): boolean {\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n return true;\n }\n }\n return false;\n }\n\n // returns an array of all keys of an object, and a status flag indicating if all extracted keys\n // were converted to stringLiterals or not\n // e.g. extracts {keys: [\"a\", \"b\", \"3\", ++x], allLiteral: false }\n // from ast of {a: \"foo\", b, 3: \"bar\", [++x]: \"baz\"}\n function extractNormalizedKeys(node: t.ObjectPattern) {\n // RestElement has been removed in createObjectRest\n const props = node.properties as t.ObjectProperty[];\n const keys: t.Expression[] = [];\n let allLiteral = true;\n let hasTemplateLiteral = false;\n\n for (const prop of props) {\n if (t.isIdentifier(prop.key) && !prop.computed) {\n // since a key {a: 3} is equivalent to {\"a\": 3}, use the latter\n keys.push(t.stringLiteral(prop.key.name));\n } else if (t.isTemplateLiteral(prop.key)) {\n keys.push(t.cloneNode(prop.key));\n hasTemplateLiteral = true;\n } else if (t.isLiteral(prop.key)) {\n keys.push(\n t.stringLiteral(\n String(\n // @ts-expect-error prop.key can not be a NullLiteral\n prop.key.value,\n ),\n ),\n );\n } else {\n // @ts-expect-error private name has been handled by destructuring-private\n keys.push(t.cloneNode(prop.key));\n allLiteral = false;\n }\n }\n\n return { keys, allLiteral, hasTemplateLiteral };\n }\n\n // replaces impure computed keys with new identifiers\n // and returns variable declarators of these new identifiers\n function replaceImpureComputedKeys(\n properties: NodePath<t.ObjectProperty>[],\n scope: Scope,\n ) {\n const impureComputedPropertyDeclarators: t.VariableDeclarator[] = [];\n for (const propPath of properties) {\n // PrivateName is handled in destructuring-private plugin\n const key = propPath.get(\"key\") as NodePath<t.Expression>;\n if (propPath.node.computed && !key.isPure()) {\n const name = scope.generateUidBasedOnNode(key.node);\n const declarator = t.variableDeclarator(t.identifier(name), key.node);\n impureComputedPropertyDeclarators.push(declarator);\n key.replaceWith(t.identifier(name));\n }\n }\n return impureComputedPropertyDeclarators;\n }\n\n function removeUnusedExcludedKeys(path: NodePath<t.ObjectPattern>): void {\n const bindings = path.getOuterBindingIdentifierPaths();\n\n Object.keys(bindings).forEach(bindingName => {\n const bindingParentPath = bindings[bindingName].parentPath;\n if (\n path.scope.getBinding(bindingName).references >\n (process.env.BABEL_8_BREAKING ? 0 : ZERO_REFS) ||\n !bindingParentPath.isObjectProperty()\n ) {\n return;\n }\n bindingParentPath.remove();\n });\n }\n\n //expects path to an object pattern\n function createObjectRest(\n path: NodePath<t.ObjectPattern>,\n file: PluginPass,\n objRef: t.Identifier | t.MemberExpression,\n ): [t.VariableDeclarator[], t.LVal, t.CallExpression] {\n const props = path.get(\"properties\");\n const last = props[props.length - 1];\n t.assertRestElement(last.node);\n const restElement = t.cloneNode(last.node);\n last.remove();\n\n const impureComputedPropertyDeclarators = replaceImpureComputedKeys(\n path.get(\"properties\") as NodePath<t.ObjectProperty>[],\n path.scope,\n );\n const { keys, allLiteral, hasTemplateLiteral } = extractNormalizedKeys(\n path.node,\n );\n\n if (keys.length === 0) {\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(getExtendsHelper(file), [\n t.objectExpression([]),\n t.sequenceExpression([\n t.callExpression(file.addHelper(\"objectDestructuringEmpty\"), [\n t.cloneNode(objRef),\n ]),\n t.cloneNode(objRef),\n ]),\n ]),\n ];\n }\n\n let keyExpression;\n if (!allLiteral) {\n // map to toPropertyKey to handle the possible non-string values\n keyExpression = t.callExpression(\n t.memberExpression(t.arrayExpression(keys), t.identifier(\"map\")),\n [file.addHelper(\"toPropertyKey\")],\n );\n } else {\n keyExpression = t.arrayExpression(keys);\n\n if (!hasTemplateLiteral && !t.isProgram(path.scope.block)) {\n // Hoist definition of excluded keys, so that it's not created each time.\n const program = path.findParent(path => path.isProgram());\n const id = path.scope.generateUidIdentifier(\"excluded\");\n\n program.scope.push({\n id,\n init: keyExpression,\n kind: \"const\",\n });\n\n keyExpression = t.cloneNode(id);\n }\n }\n\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(\n file.addHelper(\n `objectWithoutProperties${objectRestNoSymbols ? \"Loose\" : \"\"}`,\n ),\n [t.cloneNode(objRef), keyExpression],\n ),\n ];\n }\n\n function replaceRestElement(\n parentPath: NodePath<t.Function | t.CatchClause>,\n paramPath: NodePath<\n t.Function[\"params\"][number] | t.AssignmentPattern[\"left\"]\n >,\n container?: t.VariableDeclaration[],\n ): void {\n if (paramPath.isAssignmentPattern()) {\n replaceRestElement(parentPath, paramPath.get(\"left\"), container);\n return;\n }\n\n if (paramPath.isArrayPattern() && hasRestElement(paramPath)) {\n const elements = paramPath.get(\"elements\");\n\n for (let i = 0; i < elements.length; i++) {\n replaceRestElement(parentPath, elements[i], container);\n }\n }\n\n if (paramPath.isObjectPattern() && hasRestElement(paramPath)) {\n const uid = parentPath.scope.generateUidIdentifier(\"ref\");\n\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(paramPath.node, uid),\n ]);\n\n if (container) {\n container.push(declar);\n } else {\n parentPath.ensureBlock();\n parentPath.get(\"body\").unshiftContainer(\"body\", declar);\n }\n paramPath.replaceWith(t.cloneNode(uid));\n }\n }\n\n return {\n name: \"transform-object-rest-spread\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-object-rest-spread\").default,\n\n visitor: {\n // function a({ b, ...c }) {}\n Function(path) {\n const params = path.get(\"params\");\n const paramsWithRestElement = new Set<number>();\n const idsInRestParams = new Set();\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (hasRestElement(param)) {\n paramsWithRestElement.add(i);\n for (const name of Object.keys(param.getBindingIdentifiers())) {\n idsInRestParams.add(name);\n }\n }\n }\n\n // if true, a parameter exists that has an id in its initializer\n // that is also an id bound in a rest parameter\n // example: f({...R}, a = R)\n let idInRest = false;\n\n const IdentifierHandler = function (\n path: NodePath<t.Identifier>,\n functionScope: Scope,\n ) {\n const name = path.node.name;\n if (\n path.scope.getBinding(name) === functionScope.getBinding(name) &&\n idsInRestParams.has(name)\n ) {\n idInRest = true;\n path.stop();\n }\n };\n\n let i: number;\n for (i = 0; i < params.length && !idInRest; ++i) {\n const param = params[i];\n if (!paramsWithRestElement.has(i)) {\n if (param.isReferencedIdentifier() || param.isBindingIdentifier()) {\n IdentifierHandler(param, path.scope);\n } else {\n param.traverse(\n {\n \"Scope|TypeAnnotation|TSTypeAnnotation\": path => path.skip(),\n \"ReferencedIdentifier|BindingIdentifier\": IdentifierHandler,\n },\n path.scope,\n );\n }\n }\n }\n\n if (!idInRest) {\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (paramsWithRestElement.has(i)) {\n replaceRestElement(path, param);\n }\n }\n } else {\n const shouldTransformParam = (idx: number) =>\n idx >= i - 1 || paramsWithRestElement.has(idx);\n convertFunctionParams(\n path,\n ignoreFunctionLength,\n shouldTransformParam,\n replaceRestElement,\n );\n }\n },\n\n // adapted from transform-destructuring/src/index.js#pushObjectRest\n // const { a, ...b } = c;\n VariableDeclarator(path, file) {\n if (!path.get(\"id\").isObjectPattern()) {\n return;\n }\n\n let insertionPath = path;\n const originalPath = path;\n\n visitRestElements(path.get(\"id\"), path => {\n if (!path.parentPath.isObjectPattern()) {\n // Return early if the parent is not an ObjectPattern, but\n // (for example) an ArrayPattern or Function, because that\n // means this RestElement is an not an object property.\n return;\n }\n\n if (\n // skip single-property case, e.g.\n // const { ...x } = foo();\n // since the RHS will not be duplicated\n shouldStoreRHSInTemporaryVariable(originalPath.node.id) &&\n !t.isIdentifier(originalPath.node.init)\n ) {\n // const { a, ...b } = foo();\n // to avoid calling foo() twice, as a first step convert it to:\n // const _foo = foo(),\n // { a, ...b } = _foo;\n const initRef = path.scope.generateUidIdentifierBasedOnNode(\n originalPath.node.init,\n \"ref\",\n );\n // insert _foo = foo()\n originalPath.insertBefore(\n t.variableDeclarator(initRef, originalPath.node.init),\n );\n // replace foo() with _foo\n originalPath.replaceWith(\n t.variableDeclarator(originalPath.node.id, t.cloneNode(initRef)),\n );\n\n return;\n }\n\n let ref = originalPath.node.init;\n const refPropertyPath: NodePath<t.ObjectProperty>[] = [];\n let kind;\n\n path.findParent((path: NodePath): boolean => {\n if (path.isObjectProperty()) {\n refPropertyPath.unshift(path);\n } else if (path.isVariableDeclarator()) {\n kind = path.parentPath.node.kind;\n return true;\n }\n });\n\n const impureObjRefComputedDeclarators = replaceImpureComputedKeys(\n refPropertyPath,\n path.scope,\n );\n refPropertyPath.forEach(prop => {\n const { node } = prop;\n ref = t.memberExpression(\n ref,\n t.cloneNode(node.key),\n node.computed || t.isLiteral(node.key),\n );\n });\n\n //@ts-expect-error: findParent can not apply assertions on result shape\n const objectPatternPath: NodePath<t.ObjectPattern> = path.findParent(\n path => path.isObjectPattern(),\n );\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(\n objectPatternPath,\n file,\n ref as t.MemberExpression,\n );\n\n if (pureGetters) {\n removeUnusedExcludedKeys(objectPatternPath);\n }\n\n t.assertIdentifier(argument);\n\n insertionPath.insertBefore(impureComputedPropertyDeclarators);\n\n insertionPath.insertBefore(impureObjRefComputedDeclarators);\n\n insertionPath = insertionPath.insertAfter(\n t.variableDeclarator(argument, callExpression),\n )[0] as NodePath<t.VariableDeclarator>;\n\n path.scope.registerBinding(kind, insertionPath);\n\n if (objectPatternPath.node.properties.length === 0) {\n objectPatternPath\n .findParent(\n path => path.isObjectProperty() || path.isVariableDeclarator(),\n )\n .remove();\n }\n });\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n // export var { a, ...b } = c;\n ExportNamedDeclaration(path) {\n const declaration = path.get(\"declaration\");\n if (!declaration.isVariableDeclaration()) return;\n\n const hasRest = declaration\n .get(\"declarations\")\n .some(path => hasObjectPatternRestElement(path.get(\"id\")));\n if (!hasRest) return;\n\n const specifiers = [];\n\n for (const name of Object.keys(path.getOuterBindingIdentifiers(true))) {\n specifiers.push(\n t.exportSpecifier(t.identifier(name), t.identifier(name)),\n );\n }\n\n // Split the declaration and export list into two declarations so that the variable\n // declaration can be split up later without needing to worry about not being a\n // top-level statement.\n path.replaceWith(declaration.node);\n path.insertAfter(t.exportNamedDeclaration(null, specifiers));\n },\n\n // try {} catch ({a, ...b}) {}\n CatchClause(path) {\n const paramPath = path.get(\"param\");\n replaceRestElement(path, paramPath);\n },\n\n // ({a, ...b} = c);\n AssignmentExpression(path, file) {\n const leftPath = path.get(\"left\");\n if (leftPath.isObjectPattern() && hasRestElement(leftPath)) {\n const nodes = [];\n\n const refName = path.scope.generateUidBasedOnNode(\n path.node.right,\n \"ref\",\n );\n\n nodes.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(refName), path.node.right),\n ]),\n );\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(leftPath, file, t.identifier(refName));\n\n if (impureComputedPropertyDeclarators.length > 0) {\n nodes.push(\n t.variableDeclaration(\"var\", impureComputedPropertyDeclarators),\n );\n }\n\n const nodeWithoutSpread = t.cloneNode(path.node);\n nodeWithoutSpread.right = t.identifier(refName);\n nodes.push(t.expressionStatement(nodeWithoutSpread));\n nodes.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", argument, callExpression),\n ),\n );\n nodes.push(t.expressionStatement(t.identifier(refName)));\n\n path.replaceWithMultiple(nodes);\n }\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n ForXStatement(path: NodePath<t.ForXStatement>) {\n const { node, scope } = path;\n const leftPath = path.get(\"left\");\n const left = node.left;\n\n if (!hasObjectPatternRestElement(leftPath)) {\n return;\n }\n\n if (!t.isVariableDeclaration(left)) {\n // for ({a, ...b} of []) {}\n const temp = scope.generateUidIdentifier(\"ref\");\n\n node.left = t.variableDeclaration(\"var\", [\n t.variableDeclarator(temp),\n ]);\n\n path.ensureBlock();\n const body = path.node.body;\n\n if (body.body.length === 0 && path.isCompletionRecord()) {\n body.body.unshift(\n t.expressionStatement(scope.buildUndefinedNode()),\n );\n }\n\n body.body.unshift(\n t.expressionStatement(\n t.assignmentExpression(\"=\", left, t.cloneNode(temp)),\n ),\n );\n } else {\n // for (var {a, ...b} of []) {}\n const pattern = left.declarations[0].id;\n\n const key = scope.generateUidIdentifier(\"ref\");\n node.left = t.variableDeclaration(left.kind, [\n t.variableDeclarator(key, null),\n ]);\n\n path.ensureBlock();\n const body = node.body as t.BlockStatement;\n\n body.body.unshift(\n t.variableDeclaration(node.left.kind, [\n t.variableDeclarator(pattern, t.cloneNode(key)),\n ]),\n );\n }\n },\n\n // [{a, ...b}] = c;\n ArrayPattern(path) {\n const objectPatterns: t.VariableDeclarator[] = [];\n\n visitRestElements(path, path => {\n if (!path.parentPath.isObjectPattern()) {\n // Return early if the parent is not an ObjectPattern, but\n // (for example) an ArrayPattern or Function, because that\n // means this RestElement is an not an object property.\n return;\n }\n\n const objectPattern = path.parentPath;\n\n const uid = path.scope.generateUidIdentifier(\"ref\");\n objectPatterns.push(t.variableDeclarator(objectPattern.node, uid));\n\n objectPattern.replaceWith(t.cloneNode(uid));\n path.skip();\n });\n\n if (objectPatterns.length > 0) {\n const statementPath = path.getStatementParent();\n const statementNode = statementPath.node;\n const kind =\n statementNode.type === \"VariableDeclaration\"\n ? statementNode.kind\n : \"var\";\n statementPath.insertAfter(\n t.variableDeclaration(kind, objectPatterns),\n );\n }\n },\n\n // var a = { ...b, ...c }\n ObjectExpression(path, file) {\n if (!hasSpread(path.node)) return;\n\n let helper: t.Identifier | t.MemberExpression;\n if (setSpreadProperties) {\n helper = getExtendsHelper(file);\n } else {\n try {\n helper = file.addHelper(\"objectSpread2\");\n } catch {\n // TODO: This is needed to workaround https://github.com/babel/babel/issues/10187\n // and https://github.com/babel/babel/issues/10179 for older @babel/core versions\n // where #10187 isn't fixed.\n this.file.declarations[\"objectSpread2\"] = null;\n\n // objectSpread2 has been introduced in v7.5.0\n // We have to maintain backward compatibility.\n helper = file.addHelper(\"objectSpread\");\n }\n }\n\n let exp: t.CallExpression = null;\n let props: t.ObjectMember[] = [];\n\n function make() {\n const hadProps = props.length > 0;\n const obj = t.objectExpression(props);\n props = [];\n\n if (!exp) {\n exp = t.callExpression(helper, [obj]);\n return;\n }\n\n // When we can assume that getters are pure and don't depend on\n // the order of evaluation, we can avoid making multiple calls.\n if (pureGetters) {\n if (hadProps) {\n exp.arguments.push(obj);\n }\n return;\n }\n\n exp = t.callExpression(t.cloneNode(helper), [\n exp,\n // If we have static props, we need to insert an empty object\n // because the odd arguments are copied with [[Get]], not\n // [[GetOwnProperty]]\n ...(hadProps ? [t.objectExpression([]), obj] : []),\n ]);\n }\n\n for (const prop of path.node.properties) {\n if (t.isSpreadElement(prop)) {\n make();\n exp.arguments.push(prop.argument);\n } else {\n props.push(prop);\n }\n }\n\n if (props.length) make();\n\n path.replaceWith(exp);\n },\n },\n };\n});\n"],"names":["isObjectProperty","isArrayPattern","isObjectPattern","isAssignmentPattern","isRestElement","isIdentifier","t","shouldStoreRHSInTemporaryVariable","node","nonNullElements","elements","filter","element","length","properties","firstProperty","value","left","argument","identifier","property","objectProperty","pattern","objectPattern","ZERO_REFS","isReferenced","declare","api","opts","_api$assumption","_api$assumption2","_api$assumption3","_api$assumption4","assertVersion","targets","supportsObjectAssign","isRequired","compatData","useBuiltIns","loose","Error","ignoreFunctionLength","assumption","objectRestNoSymbols","pureGetters","setSpreadProperties","getExtendsHelper","file","memberExpression","addHelper","hasRestElement","path","foundRestElement","visitRestElements","restElement","stop","hasObjectPatternRestElement","parentPath","visitor","traverse","Expression","parent","key","computed","skip","RestElement","hasSpread","prop","isSpreadElement","extractNormalizedKeys","props","keys","allLiteral","hasTemplateLiteral","push","stringLiteral","name","isTemplateLiteral","cloneNode","isLiteral","String","replaceImpureComputedKeys","scope","impureComputedPropertyDeclarators","propPath","get","isPure","generateUidBasedOnNode","declarator","variableDeclarator","replaceWith","removeUnusedExcludedKeys","bindings","getOuterBindingIdentifierPaths","Object","forEach","bindingName","bindingParentPath","getBinding","references","remove","createObjectRest","objRef","last","assertRestElement","callExpression","objectExpression","sequenceExpression","keyExpression","arrayExpression","isProgram","block","program","findParent","id","generateUidIdentifier","init","kind","replaceRestElement","paramPath","container","i","uid","declar","variableDeclaration","ensureBlock","unshiftContainer","inherits","require","default","Function","params","paramsWithRestElement","Set","idsInRestParams","param","add","getBindingIdentifiers","idInRest","IdentifierHandler","functionScope","has","isReferencedIdentifier","isBindingIdentifier","shouldTransformParam","idx","convertFunctionParams","VariableDeclarator","insertionPath","originalPath","initRef","generateUidIdentifierBasedOnNode","insertBefore","ref","refPropertyPath","unshift","isVariableDeclarator","impureObjRefComputedDeclarators","objectPatternPath","assertIdentifier","insertAfter","registerBinding","ExportNamedDeclaration","declaration","isVariableDeclaration","hasRest","some","specifiers","getOuterBindingIdentifiers","exportSpecifier","exportNamedDeclaration","CatchClause","AssignmentExpression","leftPath","nodes","refName","right","nodeWithoutSpread","expressionStatement","assignmentExpression","replaceWithMultiple","ForXStatement","temp","body","isCompletionRecord","buildUndefinedNode","declarations","ArrayPattern","objectPatterns","statementPath","getStatementParent","statementNode","type","ObjectExpression","helper","_unused","exp","make","hadProps","obj","arguments"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-object-rest-spread/package.json b/node_modules/@babel/plugin-transform-object-rest-spread/package.json index df2042f2..02bdf520 100644 --- a/node_modules/@babel/plugin-transform-object-rest-spread/package.json +++ b/node_modules/@babel/plugin-transform-object-rest-spread/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-object-rest-spread", - "version": "7.22.15", + "version": "7.23.4", "description": "Compile object rest and spread to ES5", "repository": { "type": "git", @@ -17,19 +17,19 @@ "babel-plugin" ], "dependencies": { - "@babel/compat-data": "^7.22.9", + "@babel/compat-data": "^7.23.3", "@babel/helper-compilation-targets": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.22.15" + "@babel/plugin-transform-parameters": "^7.23.3" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.15", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/parser": "^7.22.15" + "@babel/parser": "^7.23.4" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-object-super/README.md b/node_modules/@babel/plugin-transform-object-super/README.md index a89ae805..1ab1b4d3 100644 --- a/node_modules/@babel/plugin-transform-object-super/README.md +++ b/node_modules/@babel/plugin-transform-object-super/README.md @@ -2,7 +2,7 @@ > Compile ES2015 object super to ES5 -See our website [@babel/plugin-transform-object-super](https://babeljs.io/docs/en/babel-plugin-transform-object-super) for more information. +See our website [@babel/plugin-transform-object-super](https://babeljs.io/docs/babel-plugin-transform-object-super) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-object-super/lib/index.js b/node_modules/@babel/plugin-transform-object-super/lib/index.js index 59dad106..345090db 100644 --- a/node_modules/@babel/plugin-transform-object-super/lib/index.js +++ b/node_modules/@babel/plugin-transform-object-super/lib/index.js @@ -15,11 +15,27 @@ function replacePropertySuper(path, getObjectRef, file) { }); replaceSupers.replace(); } -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); + const newLets = new Set(); return { name: "transform-object-super", visitor: { + Loop: { + exit(path) { + newLets.forEach(v => { + if (v.scopePath === path) { + path.scope.push({ + id: v.id, + kind: "let" + }); + path.scope.crawl(); + path.requeue(); + newLets.delete(v); + } + }); + } + }, ObjectExpression(path, state) { let objectRef; const getObjectRef = () => objectRef = objectRef || path.scope.generateUidIdentifier("obj"); @@ -28,15 +44,24 @@ var _default = (0, _helperPluginUtils.declare)(api => { replacePropertySuper(propPath, getObjectRef, state.file); }); if (objectRef) { - path.scope.push({ - id: _core.types.cloneNode(objectRef) - }); + const scopePath = path.findParent(p => p.isFunction() || p.isProgram() || p.isLoop()); + const useLet = scopePath.isLoop(); + if (useLet) { + newLets.add({ + scopePath, + id: _core.types.cloneNode(objectRef) + }); + } else { + path.scope.push({ + id: _core.types.cloneNode(objectRef), + kind: "var" + }); + } path.replaceWith(_core.types.assignmentExpression("=", _core.types.cloneNode(objectRef), path.node)); } } } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-object-super/lib/index.js.map b/node_modules/@babel/plugin-transform-object-super/lib/index.js.map index 60a70759..769b0c28 100644 --- a/node_modules/@babel/plugin-transform-object-super/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-object-super/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperReplaceSupers","_core","replacePropertySuper","path","getObjectRef","file","replaceSupers","ReplaceSupers","methodPath","replace","_default","declare","api","assertVersion","name","visitor","ObjectExpression","state","objectRef","scope","generateUidIdentifier","get","forEach","propPath","isMethod","push","id","t","cloneNode","replaceWith","assignmentExpression","node","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport { types as t, type File } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nfunction replacePropertySuper(\n path: NodePath<t.ObjectMethod>,\n getObjectRef: () => t.Identifier,\n file: File,\n) {\n // @ts-expect-error todo(flow->ts):\n const replaceSupers = new ReplaceSupers({\n getObjectRef: getObjectRef,\n methodPath: path,\n file: file,\n });\n\n replaceSupers.replace();\n}\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-object-super\",\n\n visitor: {\n ObjectExpression(path, state) {\n let objectRef: t.Identifier;\n const getObjectRef = () =>\n (objectRef = objectRef || path.scope.generateUidIdentifier(\"obj\"));\n\n path.get(\"properties\").forEach(propPath => {\n if (!propPath.isMethod()) return;\n\n replacePropertySuper(propPath, getObjectRef, state.file);\n });\n\n if (objectRef) {\n path.scope.push({ id: t.cloneNode(objectRef) });\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(objectRef), path.node),\n );\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAGA,SAASG,oBAAoBA,CAC3BC,IAA8B,EAC9BC,YAAgC,EAChCC,IAAU,EACV;EAEA,MAAMC,aAAa,GAAG,IAAIC,4BAAa,CAAC;IACtCH,YAAY,EAAEA,YAAY;IAC1BI,UAAU,EAAEL,IAAI;IAChBE,IAAI,EAAEA;EACR,CAAC,CAAC;EAEFC,aAAa,CAACG,OAAO,CAAC,CAAC;AACzB;AAAC,IAAAC,QAAA,GAEc,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,wBAAwB;IAE9BC,OAAO,EAAE;MACPC,gBAAgBA,CAACb,IAAI,EAAEc,KAAK,EAAE;QAC5B,IAAIC,SAAuB;QAC3B,MAAMd,YAAY,GAAGA,CAAA,KAClBc,SAAS,GAAGA,SAAS,IAAIf,IAAI,CAACgB,KAAK,CAACC,qBAAqB,CAAC,KAAK,CAAE;QAEpEjB,IAAI,CAACkB,GAAG,CAAC,YAAY,CAAC,CAACC,OAAO,CAACC,QAAQ,IAAI;UACzC,IAAI,CAACA,QAAQ,CAACC,QAAQ,CAAC,CAAC,EAAE;UAE1BtB,oBAAoB,CAACqB,QAAQ,EAAEnB,YAAY,EAAEa,KAAK,CAACZ,IAAI,CAAC;QAC1D,CAAC,CAAC;QAEF,IAAIa,SAAS,EAAE;UACbf,IAAI,CAACgB,KAAK,CAACM,IAAI,CAAC;YAAEC,EAAE,EAAEC,WAAC,CAACC,SAAS,CAACV,SAAS;UAAE,CAAC,CAAC;UAC/Cf,IAAI,CAAC0B,WAAW,CACdF,WAAC,CAACG,oBAAoB,CAAC,GAAG,EAAEH,WAAC,CAACC,SAAS,CAACV,SAAS,CAAC,EAAEf,IAAI,CAAC4B,IAAI,CAC/D,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAvB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperReplaceSupers","_core","replacePropertySuper","path","getObjectRef","file","replaceSupers","ReplaceSupers","methodPath","replace","_default","exports","default","declare","api","assertVersion","newLets","Set","name","visitor","Loop","exit","forEach","v","scopePath","scope","push","id","kind","crawl","requeue","delete","ObjectExpression","state","objectRef","generateUidIdentifier","get","propPath","isMethod","findParent","p","isFunction","isProgram","isLoop","useLet","add","t","cloneNode","replaceWith","assignmentExpression","node"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport { types as t, type File } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nfunction replacePropertySuper(\n path: NodePath<t.ObjectMethod>,\n getObjectRef: () => t.Identifier,\n file: File,\n) {\n // @ts-expect-error todo(flow->ts):\n const replaceSupers = new ReplaceSupers({\n getObjectRef: getObjectRef,\n methodPath: path,\n file: file,\n });\n\n replaceSupers.replace();\n}\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n const newLets = new Set<{\n scopePath: NodePath;\n id: t.Identifier;\n }>();\n\n return {\n name: \"transform-object-super\",\n\n visitor: {\n Loop: {\n exit(path) {\n newLets.forEach(v => {\n if (v.scopePath === path) {\n path.scope.push({\n id: v.id,\n kind: \"let\",\n });\n path.scope.crawl();\n path.requeue();\n newLets.delete(v);\n }\n });\n },\n },\n ObjectExpression(path, state) {\n let objectRef: t.Identifier;\n const getObjectRef = () =>\n (objectRef = objectRef || path.scope.generateUidIdentifier(\"obj\"));\n\n path.get(\"properties\").forEach(propPath => {\n if (!propPath.isMethod()) return;\n\n replacePropertySuper(propPath, getObjectRef, state.file);\n });\n\n if (objectRef) {\n const scopePath = path.findParent(\n p => p.isFunction() || p.isProgram() || p.isLoop(),\n );\n const useLet = scopePath.isLoop();\n // For transform-block-scoping\n if (useLet) {\n newLets.add({ scopePath, id: t.cloneNode(objectRef) });\n } else {\n path.scope.push({\n id: t.cloneNode(objectRef),\n kind: \"var\",\n });\n }\n\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(objectRef), path.node),\n );\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAGA,SAASG,oBAAoBA,CAC3BC,IAA8B,EAC9BC,YAAgC,EAChCC,IAAU,EACV;EAEA,MAAMC,aAAa,GAAG,IAAIC,4BAAa,CAAC;IACtCH,YAAY,EAAEA,YAAY;IAC1BI,UAAU,EAAEL,IAAI;IAChBE,IAAI,EAAEA;EACR,CAAC,CAAC;EAEFC,aAAa,CAACG,OAAO,CAAC,CAAC;AACzB;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEc,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EACD,MAAMC,OAAO,GAAG,IAAIC,GAAG,CAGpB,CAAC;EAEJ,OAAO;IACLC,IAAI,EAAE,wBAAwB;IAE9BC,OAAO,EAAE;MACPC,IAAI,EAAE;QACJC,IAAIA,CAAClB,IAAI,EAAE;UACTa,OAAO,CAACM,OAAO,CAACC,CAAC,IAAI;YACnB,IAAIA,CAAC,CAACC,SAAS,KAAKrB,IAAI,EAAE;cACxBA,IAAI,CAACsB,KAAK,CAACC,IAAI,CAAC;gBACdC,EAAE,EAAEJ,CAAC,CAACI,EAAE;gBACRC,IAAI,EAAE;cACR,CAAC,CAAC;cACFzB,IAAI,CAACsB,KAAK,CAACI,KAAK,CAAC,CAAC;cAClB1B,IAAI,CAAC2B,OAAO,CAAC,CAAC;cACdd,OAAO,CAACe,MAAM,CAACR,CAAC,CAAC;YACnB;UACF,CAAC,CAAC;QACJ;MACF,CAAC;MACDS,gBAAgBA,CAAC7B,IAAI,EAAE8B,KAAK,EAAE;QAC5B,IAAIC,SAAuB;QAC3B,MAAM9B,YAAY,GAAGA,CAAA,KAClB8B,SAAS,GAAGA,SAAS,IAAI/B,IAAI,CAACsB,KAAK,CAACU,qBAAqB,CAAC,KAAK,CAAE;QAEpEhC,IAAI,CAACiC,GAAG,CAAC,YAAY,CAAC,CAACd,OAAO,CAACe,QAAQ,IAAI;UACzC,IAAI,CAACA,QAAQ,CAACC,QAAQ,CAAC,CAAC,EAAE;UAE1BpC,oBAAoB,CAACmC,QAAQ,EAAEjC,YAAY,EAAE6B,KAAK,CAAC5B,IAAI,CAAC;QAC1D,CAAC,CAAC;QAEF,IAAI6B,SAAS,EAAE;UACb,MAAMV,SAAS,GAAGrB,IAAI,CAACoC,UAAU,CAC/BC,CAAC,IAAIA,CAAC,CAACC,UAAU,CAAC,CAAC,IAAID,CAAC,CAACE,SAAS,CAAC,CAAC,IAAIF,CAAC,CAACG,MAAM,CAAC,CACnD,CAAC;UACD,MAAMC,MAAM,GAAGpB,SAAS,CAACmB,MAAM,CAAC,CAAC;UAEjC,IAAIC,MAAM,EAAE;YACV5B,OAAO,CAAC6B,GAAG,CAAC;cAAErB,SAAS;cAAEG,EAAE,EAAEmB,WAAC,CAACC,SAAS,CAACb,SAAS;YAAE,CAAC,CAAC;UACxD,CAAC,MAAM;YACL/B,IAAI,CAACsB,KAAK,CAACC,IAAI,CAAC;cACdC,EAAE,EAAEmB,WAAC,CAACC,SAAS,CAACb,SAAS,CAAC;cAC1BN,IAAI,EAAE;YACR,CAAC,CAAC;UACJ;UAEAzB,IAAI,CAAC6C,WAAW,CACdF,WAAC,CAACG,oBAAoB,CAAC,GAAG,EAAEH,WAAC,CAACC,SAAS,CAACb,SAAS,CAAC,EAAE/B,IAAI,CAAC+C,IAAI,CAC/D,CAAC;QACH;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-object-super/package.json b/node_modules/@babel/plugin-transform-object-super/package.json index caf160ec..c70428d5 100644 --- a/node_modules/@babel/plugin-transform-object-super/package.json +++ b/node_modules/@babel/plugin-transform-object-super/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-object-super", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile ES2015 object super to ES5", "repository": { "type": "git", @@ -18,13 +18,13 @@ ], "dependencies": { "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-replace-supers": "^7.22.5" + "@babel/helper-replace-supers": "^7.22.20" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-optional-catch-binding/lib/index.js b/node_modules/@babel/plugin-transform-optional-catch-binding/lib/index.js index 68bb51fb..8a71d5d7 100644 --- a/node_modules/@babel/plugin-transform-optional-catch-binding/lib/index.js +++ b/node_modules/@babel/plugin-transform-optional-catch-binding/lib/index.js @@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-optional-catch-binding", @@ -21,6 +21,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-optional-catch-binding/lib/index.js.map b/node_modules/@babel/plugin-transform-optional-catch-binding/lib/index.js.map index b55a6613..98efa623 100644 --- a/node_modules/@babel/plugin-transform-optional-catch-binding/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-optional-catch-binding/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_default","declare","api","assertVersion","name","inherits","default","visitor","CatchClause","path","node","param","uid","scope","generateUidIdentifier","paramPath","get","replaceWith","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-optional-catch-binding\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-optional-catch-binding\").default,\n\n visitor: {\n CatchClause(path) {\n if (!path.node.param) {\n const uid = path.scope.generateUidIdentifier(\"unused\");\n const paramPath = path.get(\"param\");\n paramPath.replaceWith(uid);\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,kCAAkC;IACxCC,QAAQ,EAKJN,OAAO,CAAC,6CAA6C,CAAC,CAACO,OAAO;IAElEC,OAAO,EAAE;MACPC,WAAWA,CAACC,IAAI,EAAE;QAChB,IAAI,CAACA,IAAI,CAACC,IAAI,CAACC,KAAK,EAAE;UACpB,MAAMC,GAAG,GAAGH,IAAI,CAACI,KAAK,CAACC,qBAAqB,CAAC,QAAQ,CAAC;UACtD,MAAMC,SAAS,GAAGN,IAAI,CAACO,GAAG,CAAC,OAAO,CAAC;UACnCD,SAAS,CAACE,WAAW,CAACL,GAAG,CAAC;QAC5B;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAM,OAAA,CAAAZ,OAAA,GAAAN,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_default","exports","default","declare","api","assertVersion","name","inherits","visitor","CatchClause","path","node","param","uid","scope","generateUidIdentifier","paramPath","get","replaceWith"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-optional-catch-binding\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-optional-catch-binding\").default,\n\n visitor: {\n CatchClause(path) {\n if (!path.node.param) {\n const uid = path.scope.generateUidIdentifier(\"unused\");\n const paramPath = path.get(\"param\");\n paramPath.replaceWith(uid);\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAAqD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,kCAAkC;IACxCC,QAAQ,EAKFR,OAAO,CAAC,6CAA6C,CAAC,CAACG,OAAO;IAEpEM,OAAO,EAAE;MACPC,WAAWA,CAACC,IAAI,EAAE;QAChB,IAAI,CAACA,IAAI,CAACC,IAAI,CAACC,KAAK,EAAE;UACpB,MAAMC,GAAG,GAAGH,IAAI,CAACI,KAAK,CAACC,qBAAqB,CAAC,QAAQ,CAAC;UACtD,MAAMC,SAAS,GAAGN,IAAI,CAACO,GAAG,CAAC,OAAO,CAAC;UACnCD,SAAS,CAACE,WAAW,CAACL,GAAG,CAAC;QAC5B;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-optional-catch-binding/package.json b/node_modules/@babel/plugin-transform-optional-catch-binding/package.json index b9591164..18c0e006 100644 --- a/node_modules/@babel/plugin-transform-optional-catch-binding/package.json +++ b/node_modules/@babel/plugin-transform-optional-catch-binding/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-optional-catch-binding", - "version": "7.22.11", + "version": "7.23.4", "description": "Compile optional catch bindings", "repository": { "type": "git", @@ -24,7 +24,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.11", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-optional-chaining/lib/index.js.map b/node_modules/@babel/plugin-transform-optional-chaining/lib/index.js.map index bfde1407..9b4e30c0 100644 --- a/node_modules/@babel/plugin-transform-optional-chaining/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-optional-chaining/lib/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../src/util.ts","../src/transform.ts","../src/index.ts"],"sourcesContent":["import type { NodePath } from \"@babel/traverse\";\nimport { isTransparentExprWrapper } from \"@babel/helper-skip-transparent-expression-wrappers\";\n/**\n * Test if a NodePath will be cast to boolean when evaluated.\n * It respects transparent expression wrappers defined in\n * \"@babel/helper-skip-transparent-expression-wrappers\"\n *\n * @example\n * // returns true\n * const nodePathADotB = NodePath(\"if (a.b) {}\").get(\"test\"); // a.b\n * willPathCastToBoolean(nodePathADotB)\n * @example\n * // returns false\n * willPathCastToBoolean(NodePath(\"a.b\"))\n * @param {NodePath} path\n * @returns {boolean}\n */\nexport function willPathCastToBoolean(path: NodePath): boolean {\n const maybeWrapped = findOutermostTransparentParent(path);\n const { node, parentPath } = maybeWrapped;\n if (parentPath.isLogicalExpression()) {\n const { operator, right } = parentPath.node;\n if (\n operator === \"&&\" ||\n operator === \"||\" ||\n (operator === \"??\" && node === right)\n ) {\n return willPathCastToBoolean(parentPath);\n }\n }\n if (parentPath.isSequenceExpression()) {\n const { expressions } = parentPath.node;\n if (expressions[expressions.length - 1] === node) {\n return willPathCastToBoolean(parentPath);\n } else {\n // if it is in the middle of a sequence expression, we don't\n // care the return value so just cast to boolean for smaller\n // output\n return true;\n }\n }\n return (\n parentPath.isConditional({ test: node }) ||\n parentPath.isUnaryExpression({ operator: \"!\" }) ||\n parentPath.isLoop({ test: node })\n );\n}\n\n/**\n * Return the outermost transparent expression wrapper of a given path,\n * otherwise returns path itself.\n * @example\n * const nodePathADotB = NodePath(\"(a.b as any)\").get(\"expression\"); // a.b\n * // returns NodePath(\"(a.b as any)\")\n * findOutermostTransparentParent(nodePathADotB);\n * @param {NodePath} path\n * @returns {NodePath}\n */\nexport function findOutermostTransparentParent(path: NodePath): NodePath {\n let maybeWrapped = path;\n path.findParent(p => {\n if (!isTransparentExprWrapper(p.node)) return true;\n maybeWrapped = p;\n });\n return maybeWrapped;\n}\n","import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport {\n skipTransparentExprWrapperNodes,\n skipTransparentExprWrappers,\n} from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport {\n willPathCastToBoolean,\n findOutermostTransparentParent,\n} from \"./util.ts\";\n\n// TODO(Babel 9): Use .at(-1)\nconst last = <T>(arr: T[]) => arr[arr.length - 1];\n\nfunction isSimpleMemberExpression(\n expression: t.Expression | t.Super,\n): expression is t.Identifier | t.Super | t.MemberExpression {\n expression = skipTransparentExprWrapperNodes(expression);\n return (\n t.isIdentifier(expression) ||\n t.isSuper(expression) ||\n (t.isMemberExpression(expression) &&\n !expression.computed &&\n isSimpleMemberExpression(expression.object))\n );\n}\n\n/**\n * Test if a given optional chain `path` needs to be memoized\n * @param {NodePath} path\n * @returns {boolean}\n */\nfunction needsMemoize(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n) {\n let optionalPath: NodePath = path;\n const { scope } = path;\n while (\n optionalPath.isOptionalMemberExpression() ||\n optionalPath.isOptionalCallExpression()\n ) {\n const { node } = optionalPath;\n const childPath = skipTransparentExprWrappers(\n // @ts-expect-error isOptionalMemberExpression does not work with NodePath union\n optionalPath.isOptionalMemberExpression()\n ? optionalPath.get(\"object\")\n : optionalPath.get(\"callee\"),\n );\n if (node.optional) {\n return !scope.isStatic(childPath.node);\n }\n\n optionalPath = childPath;\n }\n}\n\nconst NULLISH_CHECK = template.expression(\n `%%check%% === null || %%ref%% === void 0`,\n);\nconst NULLISH_CHECK_NO_DDA = template.expression(`%%check%% == null`);\nconst NULLISH_CHECK_NEG = template.expression(\n `%%check%% !== null && %%ref%% !== void 0`,\n);\nconst NULLISH_CHECK_NO_DDA_NEG = template.expression(`%%check%% != null`);\n\ninterface OptionalChainAssumptions {\n pureGetters: boolean;\n noDocumentAll: boolean;\n}\n\nexport function transformOptionalChain(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n { pureGetters, noDocumentAll }: OptionalChainAssumptions,\n replacementPath: NodePath<t.Expression>,\n ifNullish: t.Expression,\n wrapLast?: (value: t.Expression) => t.Expression,\n) {\n const { scope } = path;\n\n // Replace `function (a, x = a.b?.c) {}` to `function (a, x = (() => a.b?.c)() ){}`\n // so the temporary variable can be injected in correct scope\n if (scope.path.isPattern() && needsMemoize(path)) {\n replacementPath.replaceWith(\n template.expression.ast`(() => ${replacementPath.node})()`,\n );\n // The injected optional chain will be queued and eventually transformed when visited\n return;\n }\n\n const optionals = [];\n\n let optionalPath = path;\n while (\n optionalPath.isOptionalMemberExpression() ||\n optionalPath.isOptionalCallExpression()\n ) {\n const { node } = optionalPath;\n if (node.optional) {\n optionals.push(node);\n }\n // @ts-expect-error isOptionalMemberExpression does not work with NodePath union\n if (optionalPath.isOptionalMemberExpression()) {\n // @ts-expect-error todo(flow->ts) avoid changing more type\n optionalPath.node.type = \"MemberExpression\";\n // @ts-expect-error todo(flow->ts)\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"object\"));\n } else if (optionalPath.isOptionalCallExpression()) {\n // @ts-expect-error todo(flow->ts) avoid changing more type\n optionalPath.node.type = \"CallExpression\";\n // @ts-expect-error todo(flow->ts)\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"callee\"));\n }\n }\n\n if (optionals.length === 0) {\n // Malformed AST: there was an OptionalMemberExpression node\n // with no actual optional elements.\n return;\n }\n\n const checks = [];\n\n let tmpVar;\n\n for (let i = optionals.length - 1; i >= 0; i--) {\n const node = optionals[i] as unknown as\n | t.MemberExpression\n | t.CallExpression;\n\n const isCall = t.isCallExpression(node);\n\n const chainWithTypes = isCall\n ? // V8 intrinsics must not be an optional call\n (node.callee as t.Expression)\n : node.object;\n const chain = skipTransparentExprWrapperNodes(chainWithTypes);\n\n let ref;\n let check;\n if (isCall && t.isIdentifier(chain, { name: \"eval\" })) {\n check = ref = chain;\n // `eval?.()` is an indirect eval call transformed to `(0,eval)()`\n node.callee = t.sequenceExpression([t.numericLiteral(0), ref]);\n } else if (pureGetters && isCall && isSimpleMemberExpression(chain)) {\n // If we assume getters are pure (avoiding a Function#call) and we are at the call,\n // we can avoid a needless memoize. We only do this if the callee is a simple member\n // expression, to avoid multiple calls to nested call expressions.\n check = ref = node.callee;\n } else if (scope.isStatic(chain)) {\n check = ref = chainWithTypes;\n } else {\n // We cannot reuse the tmpVar for calls, because we need to\n // store both the method and the receiver.\n if (!tmpVar || isCall) {\n tmpVar = scope.generateUidIdentifierBasedOnNode(chain);\n scope.push({ id: t.cloneNode(tmpVar) });\n }\n ref = tmpVar;\n check = t.assignmentExpression(\n \"=\",\n t.cloneNode(tmpVar),\n // Here `chainWithTypes` MUST NOT be cloned because it could be\n // updated when generating the memoised context of a call\n // expression. It must be an Expression when `ref` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n chainWithTypes as t.Expression,\n );\n\n isCall ? (node.callee = ref) : (node.object = ref);\n }\n\n // Ensure call expressions have the proper `this`\n // `foo.bar()` has context `foo`.\n if (isCall && t.isMemberExpression(chain)) {\n if (pureGetters && isSimpleMemberExpression(chain)) {\n // To avoid a Function#call, we can instead re-grab the property from the context object.\n // `a.?b.?()` translates roughly to `_a.b != null && _a.b()`\n node.callee = chainWithTypes;\n } else {\n // Otherwise, we need to memoize the context object, and change the call into a Function#call.\n // `a.?b.?()` translates roughly to `(_b = _a.b) != null && _b.call(_a)`\n const { object } = chain;\n let context: t.Expression;\n if (t.isSuper(object)) {\n context = t.thisExpression();\n } else {\n const memoized = scope.maybeGenerateMemoised(object);\n if (memoized) {\n context = memoized;\n chain.object = t.assignmentExpression(\"=\", memoized, object);\n } else {\n context = object;\n }\n }\n\n node.arguments.unshift(t.cloneNode(context));\n // @ts-expect-error node.callee can not be an V8IntrinsicIdentifier: V8 intrinsic is disallowed in optional chain\n node.callee = t.memberExpression(node.callee, t.identifier(\"call\"));\n }\n }\n\n const data = { check: t.cloneNode(check), ref: t.cloneNode(ref) };\n // We make `ref` non-enumerable, so that @babel/template doesn't throw\n // in the noDocumentAll template if it's not used.\n Object.defineProperty(data, \"ref\", { enumerable: false });\n checks.push(data);\n }\n\n let result = replacementPath.node;\n if (wrapLast) result = wrapLast(result);\n\n const ifNullishBoolean = t.isBooleanLiteral(ifNullish);\n const ifNullishFalse = ifNullishBoolean && ifNullish.value === false;\n const ifNullishVoid =\n !ifNullishBoolean && t.isUnaryExpression(ifNullish, { operator: \"void\" });\n\n const isEvaluationValueIgnored =\n (t.isExpressionStatement(replacementPath.parent) &&\n !replacementPath.isCompletionRecord()) ||\n (t.isSequenceExpression(replacementPath.parent) &&\n last(replacementPath.parent.expressions) !== replacementPath.node);\n\n // prettier-ignore\n const tpl = ifNullishFalse\n ? (noDocumentAll ? NULLISH_CHECK_NO_DDA_NEG : NULLISH_CHECK_NEG)\n : (noDocumentAll ? NULLISH_CHECK_NO_DDA : NULLISH_CHECK);\n const logicalOp = ifNullishFalse ? \"&&\" : \"||\";\n\n const check = checks\n .map(tpl)\n .reduce((expr, check) => t.logicalExpression(logicalOp, expr, check));\n\n replacementPath.replaceWith(\n ifNullishBoolean || (ifNullishVoid && isEvaluationValueIgnored)\n ? t.logicalExpression(logicalOp, check, result)\n : t.conditionalExpression(check, ifNullish, result),\n );\n}\n\nexport function transform(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n assumptions: OptionalChainAssumptions,\n) {\n const { scope } = path;\n\n // maybeWrapped points to the outermost transparent expression wrapper\n // or the path itself\n const maybeWrapped = findOutermostTransparentParent(path);\n const { parentPath } = maybeWrapped;\n\n if (parentPath.isUnaryExpression({ operator: \"delete\" })) {\n transformOptionalChain(\n path,\n assumptions,\n parentPath,\n t.booleanLiteral(true),\n );\n } else {\n let wrapLast;\n if (\n parentPath.isCallExpression({ callee: maybeWrapped.node }) &&\n // note that the first condition must implies that `path.optional` is `true`,\n // otherwise the parentPath should be an OptionalCallExpression\n path.isOptionalMemberExpression()\n ) {\n // Ensure (a?.b)() has proper `this`\n wrapLast = (replacement: t.MemberExpression) => {\n // `(a?.b)()` to `(a == null ? undefined : a.b.bind(a))()`\n // object must not be Super as super?.foo is invalid\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const object = skipTransparentExprWrapperNodes(\n replacement.object,\n ) as t.Expression;\n let baseRef: t.Expression;\n if (!assumptions.pureGetters || !isSimpleMemberExpression(object)) {\n // memoize the context object when getters are not always pure\n // or the object is not a simple member expression\n // `(a?.b.c)()` to `(a == null ? undefined : (_a$b = a.b).c.bind(_a$b))()`\n baseRef = scope.maybeGenerateMemoised(object);\n if (baseRef) {\n replacement.object = t.assignmentExpression(\"=\", baseRef, object);\n }\n }\n return t.callExpression(\n t.memberExpression(replacement, t.identifier(\"bind\")),\n [t.cloneNode(baseRef ?? object)],\n );\n };\n }\n\n transformOptionalChain(\n path,\n assumptions,\n path,\n willPathCastToBoolean(maybeWrapped)\n ? t.booleanLiteral(false)\n : scope.buildUndefinedNode(),\n wrapLast,\n );\n }\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { transform, transformOptionalChain } from \"./transform.ts\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nexport interface Options {\n loose?: boolean;\n}\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const { loose = false } = options;\n const noDocumentAll = api.assumption(\"noDocumentAll\") ?? loose;\n const pureGetters = api.assumption(\"pureGetters\") ?? loose;\n\n return {\n name: \"transform-optional-chaining\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-optional-chaining\").default,\n\n visitor: {\n \"OptionalCallExpression|OptionalMemberExpression\"(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n ) {\n transform(path, { noDocumentAll, pureGetters });\n },\n },\n };\n});\n\nexport { transform, transformOptionalChain };\n"],"names":["willPathCastToBoolean","path","maybeWrapped","findOutermostTransparentParent","node","parentPath","isLogicalExpression","operator","right","isSequenceExpression","expressions","length","isConditional","test","isUnaryExpression","isLoop","findParent","p","isTransparentExprWrapper","last","arr","isSimpleMemberExpression","expression","skipTransparentExprWrapperNodes","t","isIdentifier","isSuper","isMemberExpression","computed","object","needsMemoize","optionalPath","scope","isOptionalMemberExpression","isOptionalCallExpression","childPath","skipTransparentExprWrappers","get","optional","isStatic","NULLISH_CHECK","template","NULLISH_CHECK_NO_DDA","NULLISH_CHECK_NEG","NULLISH_CHECK_NO_DDA_NEG","transformOptionalChain","pureGetters","noDocumentAll","replacementPath","ifNullish","wrapLast","isPattern","replaceWith","ast","optionals","push","type","checks","tmpVar","i","isCall","isCallExpression","chainWithTypes","callee","chain","ref","check","name","sequenceExpression","numericLiteral","generateUidIdentifierBasedOnNode","id","cloneNode","assignmentExpression","context","thisExpression","memoized","maybeGenerateMemoised","arguments","unshift","memberExpression","identifier","data","Object","defineProperty","enumerable","result","ifNullishBoolean","isBooleanLiteral","ifNullishFalse","value","ifNullishVoid","isEvaluationValueIgnored","isExpressionStatement","parent","isCompletionRecord","tpl","logicalOp","map","reduce","expr","logicalExpression","conditionalExpression","transform","assumptions","booleanLiteral","replacement","_baseRef","baseRef","callExpression","buildUndefinedNode","declare","api","options","_api$assumption","_api$assumption2","assertVersion","loose","assumption","inherits","require","default","visitor","OptionalCallExpression|OptionalMemberExpression"],"mappings":"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"}
\ No newline at end of file +{"version":3,"file":"index.js","sources":["../src/util.ts","../src/transform.ts","../src/index.ts"],"sourcesContent":["import type { NodePath } from \"@babel/traverse\";\nimport { isTransparentExprWrapper } from \"@babel/helper-skip-transparent-expression-wrappers\";\n/**\n * Test if a NodePath will be cast to boolean when evaluated.\n * It respects transparent expression wrappers defined in\n * \"@babel/helper-skip-transparent-expression-wrappers\"\n *\n * @example\n * // returns true\n * const nodePathADotB = NodePath(\"if (a.b) {}\").get(\"test\"); // a.b\n * willPathCastToBoolean(nodePathADotB)\n * @example\n * // returns false\n * willPathCastToBoolean(NodePath(\"a.b\"))\n * @param {NodePath} path\n * @returns {boolean}\n */\nexport function willPathCastToBoolean(path: NodePath): boolean {\n const maybeWrapped = findOutermostTransparentParent(path);\n const { node, parentPath } = maybeWrapped;\n if (parentPath.isLogicalExpression()) {\n const { operator, right } = parentPath.node;\n if (\n operator === \"&&\" ||\n operator === \"||\" ||\n (operator === \"??\" && node === right)\n ) {\n return willPathCastToBoolean(parentPath);\n }\n }\n if (parentPath.isSequenceExpression()) {\n const { expressions } = parentPath.node;\n if (expressions[expressions.length - 1] === node) {\n return willPathCastToBoolean(parentPath);\n } else {\n // if it is in the middle of a sequence expression, we don't\n // care the return value so just cast to boolean for smaller\n // output\n return true;\n }\n }\n return (\n parentPath.isConditional({ test: node }) ||\n parentPath.isUnaryExpression({ operator: \"!\" }) ||\n parentPath.isLoop({ test: node })\n );\n}\n\n/**\n * Return the outermost transparent expression wrapper of a given path,\n * otherwise returns path itself.\n * @example\n * const nodePathADotB = NodePath(\"(a.b as any)\").get(\"expression\"); // a.b\n * // returns NodePath(\"(a.b as any)\")\n * findOutermostTransparentParent(nodePathADotB);\n * @param {NodePath} path\n * @returns {NodePath}\n */\nexport function findOutermostTransparentParent(path: NodePath): NodePath {\n let maybeWrapped = path;\n path.findParent(p => {\n if (!isTransparentExprWrapper(p.node)) return true;\n maybeWrapped = p;\n });\n return maybeWrapped;\n}\n","import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport {\n skipTransparentExprWrapperNodes,\n skipTransparentExprWrappers,\n} from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport {\n willPathCastToBoolean,\n findOutermostTransparentParent,\n} from \"./util.ts\";\n\n// TODO(Babel 9): Use .at(-1)\nconst last = <T>(arr: T[]) => arr[arr.length - 1];\n\nfunction isSimpleMemberExpression(\n expression: t.Expression | t.Super,\n): expression is t.Identifier | t.Super | t.MemberExpression {\n expression = skipTransparentExprWrapperNodes(expression);\n return (\n t.isIdentifier(expression) ||\n t.isSuper(expression) ||\n (t.isMemberExpression(expression) &&\n !expression.computed &&\n isSimpleMemberExpression(expression.object))\n );\n}\n\n/**\n * Test if a given optional chain `path` needs to be memoized\n * @param {NodePath} path\n * @returns {boolean}\n */\nfunction needsMemoize(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n) {\n let optionalPath: NodePath = path;\n const { scope } = path;\n while (\n optionalPath.isOptionalMemberExpression() ||\n optionalPath.isOptionalCallExpression()\n ) {\n const { node } = optionalPath;\n const childPath = skipTransparentExprWrappers(\n // @ts-expect-error isOptionalMemberExpression does not work with NodePath union\n optionalPath.isOptionalMemberExpression()\n ? optionalPath.get(\"object\")\n : optionalPath.get(\"callee\"),\n );\n if (node.optional) {\n return !scope.isStatic(childPath.node);\n }\n\n optionalPath = childPath;\n }\n}\n\nconst NULLISH_CHECK = template.expression(\n `%%check%% === null || %%ref%% === void 0`,\n);\nconst NULLISH_CHECK_NO_DDA = template.expression(`%%check%% == null`);\nconst NULLISH_CHECK_NEG = template.expression(\n `%%check%% !== null && %%ref%% !== void 0`,\n);\nconst NULLISH_CHECK_NO_DDA_NEG = template.expression(`%%check%% != null`);\n\ninterface OptionalChainAssumptions {\n pureGetters: boolean;\n noDocumentAll: boolean;\n}\n\nexport function transformOptionalChain(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n { pureGetters, noDocumentAll }: OptionalChainAssumptions,\n replacementPath: NodePath<t.Expression>,\n ifNullish: t.Expression,\n wrapLast?: (value: t.Expression) => t.Expression,\n) {\n const { scope } = path;\n\n // Replace `function (a, x = a.b?.c) {}` to `function (a, x = (() => a.b?.c)() ){}`\n // so the temporary variable can be injected in correct scope\n if (scope.path.isPattern() && needsMemoize(path)) {\n replacementPath.replaceWith(\n template.expression.ast`(() => ${replacementPath.node})()`,\n );\n // The injected optional chain will be queued and eventually transformed when visited\n return;\n }\n\n const optionals = [];\n\n let optionalPath = path;\n while (\n optionalPath.isOptionalMemberExpression() ||\n optionalPath.isOptionalCallExpression()\n ) {\n const { node } = optionalPath;\n if (node.optional) {\n optionals.push(node);\n }\n // @ts-expect-error isOptionalMemberExpression does not work with NodePath union\n if (optionalPath.isOptionalMemberExpression()) {\n // @ts-expect-error todo(flow->ts) avoid changing more type\n optionalPath.node.type = \"MemberExpression\";\n // @ts-expect-error todo(flow->ts)\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"object\"));\n } else if (optionalPath.isOptionalCallExpression()) {\n // @ts-expect-error todo(flow->ts) avoid changing more type\n optionalPath.node.type = \"CallExpression\";\n // @ts-expect-error todo(flow->ts)\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"callee\"));\n }\n }\n\n if (optionals.length === 0) {\n // Malformed AST: there was an OptionalMemberExpression node\n // with no actual optional elements.\n return;\n }\n\n const checks = [];\n\n let tmpVar;\n\n for (let i = optionals.length - 1; i >= 0; i--) {\n const node = optionals[i] as unknown as\n | t.MemberExpression\n | t.CallExpression;\n\n const isCall = t.isCallExpression(node);\n\n const chainWithTypes = isCall\n ? // V8 intrinsics must not be an optional call\n (node.callee as t.Expression)\n : node.object;\n const chain = skipTransparentExprWrapperNodes(chainWithTypes);\n\n let ref;\n let check;\n if (isCall && t.isIdentifier(chain, { name: \"eval\" })) {\n check = ref = chain;\n // `eval?.()` is an indirect eval call transformed to `(0,eval)()`\n node.callee = t.sequenceExpression([t.numericLiteral(0), ref]);\n } else if (pureGetters && isCall && isSimpleMemberExpression(chain)) {\n // If we assume getters are pure (avoiding a Function#call) and we are at the call,\n // we can avoid a needless memoize. We only do this if the callee is a simple member\n // expression, to avoid multiple calls to nested call expressions.\n check = ref = node.callee;\n } else if (scope.isStatic(chain)) {\n check = ref = chainWithTypes;\n } else {\n // We cannot reuse the tmpVar for calls, because we need to\n // store both the method and the receiver.\n if (!tmpVar || isCall) {\n tmpVar = scope.generateUidIdentifierBasedOnNode(chain);\n scope.push({ id: t.cloneNode(tmpVar) });\n }\n ref = tmpVar;\n check = t.assignmentExpression(\n \"=\",\n t.cloneNode(tmpVar),\n // Here `chainWithTypes` MUST NOT be cloned because it could be\n // updated when generating the memoised context of a call\n // expression. It must be an Expression when `ref` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n chainWithTypes as t.Expression,\n );\n\n isCall ? (node.callee = ref) : (node.object = ref);\n }\n\n // Ensure call expressions have the proper `this`\n // `foo.bar()` has context `foo`.\n if (isCall && t.isMemberExpression(chain)) {\n if (pureGetters && isSimpleMemberExpression(chain)) {\n // To avoid a Function#call, we can instead re-grab the property from the context object.\n // `a.?b.?()` translates roughly to `_a.b != null && _a.b()`\n node.callee = chainWithTypes;\n } else {\n // Otherwise, we need to memoize the context object, and change the call into a Function#call.\n // `a.?b.?()` translates roughly to `(_b = _a.b) != null && _b.call(_a)`\n const { object } = chain;\n let context: t.Expression;\n if (t.isSuper(object)) {\n context = t.thisExpression();\n } else {\n const memoized = scope.maybeGenerateMemoised(object);\n if (memoized) {\n context = memoized;\n chain.object = t.assignmentExpression(\"=\", memoized, object);\n } else {\n context = object;\n }\n }\n\n node.arguments.unshift(t.cloneNode(context));\n // @ts-expect-error node.callee can not be an V8IntrinsicIdentifier: V8 intrinsic is disallowed in optional chain\n node.callee = t.memberExpression(node.callee, t.identifier(\"call\"));\n }\n }\n\n const data = { check: t.cloneNode(check), ref: t.cloneNode(ref) };\n // We make `ref` non-enumerable, so that @babel/template doesn't throw\n // in the noDocumentAll template if it's not used.\n Object.defineProperty(data, \"ref\", { enumerable: false });\n checks.push(data);\n }\n\n let result = replacementPath.node;\n if (wrapLast) result = wrapLast(result);\n\n const ifNullishBoolean = t.isBooleanLiteral(ifNullish);\n const ifNullishFalse = ifNullishBoolean && ifNullish.value === false;\n const ifNullishVoid =\n !ifNullishBoolean && t.isUnaryExpression(ifNullish, { operator: \"void\" });\n\n const isEvaluationValueIgnored =\n (t.isExpressionStatement(replacementPath.parent) &&\n !replacementPath.isCompletionRecord()) ||\n (t.isSequenceExpression(replacementPath.parent) &&\n last(replacementPath.parent.expressions) !== replacementPath.node);\n\n // prettier-ignore\n const tpl = ifNullishFalse\n ? (noDocumentAll ? NULLISH_CHECK_NO_DDA_NEG : NULLISH_CHECK_NEG)\n : (noDocumentAll ? NULLISH_CHECK_NO_DDA : NULLISH_CHECK);\n const logicalOp = ifNullishFalse ? \"&&\" : \"||\";\n\n const check = checks\n .map(tpl)\n .reduce((expr, check) => t.logicalExpression(logicalOp, expr, check));\n\n replacementPath.replaceWith(\n ifNullishBoolean || (ifNullishVoid && isEvaluationValueIgnored)\n ? t.logicalExpression(logicalOp, check, result)\n : t.conditionalExpression(check, ifNullish, result),\n );\n}\n\nexport function transform(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n assumptions: OptionalChainAssumptions,\n) {\n const { scope } = path;\n\n // maybeWrapped points to the outermost transparent expression wrapper\n // or the path itself\n const maybeWrapped = findOutermostTransparentParent(path);\n const { parentPath } = maybeWrapped;\n\n if (parentPath.isUnaryExpression({ operator: \"delete\" })) {\n transformOptionalChain(\n path,\n assumptions,\n parentPath,\n t.booleanLiteral(true),\n );\n } else {\n let wrapLast;\n if (\n parentPath.isCallExpression({ callee: maybeWrapped.node }) &&\n // note that the first condition must implies that `path.optional` is `true`,\n // otherwise the parentPath should be an OptionalCallExpression\n path.isOptionalMemberExpression()\n ) {\n // Ensure (a?.b)() has proper `this`\n wrapLast = (replacement: t.MemberExpression) => {\n // `(a?.b)()` to `(a == null ? undefined : a.b.bind(a))()`\n // object must not be Super as super?.foo is invalid\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const object = skipTransparentExprWrapperNodes(\n replacement.object,\n ) as t.Expression;\n let baseRef: t.Expression;\n if (!assumptions.pureGetters || !isSimpleMemberExpression(object)) {\n // memoize the context object when getters are not always pure\n // or the object is not a simple member expression\n // `(a?.b.c)()` to `(a == null ? undefined : (_a$b = a.b).c.bind(_a$b))()`\n baseRef = scope.maybeGenerateMemoised(object);\n if (baseRef) {\n replacement.object = t.assignmentExpression(\"=\", baseRef, object);\n }\n }\n return t.callExpression(\n t.memberExpression(replacement, t.identifier(\"bind\")),\n [t.cloneNode(baseRef ?? object)],\n );\n };\n }\n\n transformOptionalChain(\n path,\n assumptions,\n path,\n willPathCastToBoolean(maybeWrapped)\n ? t.booleanLiteral(false)\n : scope.buildUndefinedNode(),\n wrapLast,\n );\n }\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { transform, transformOptionalChain } from \"./transform.ts\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nexport interface Options {\n loose?: boolean;\n}\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const { loose = false } = options;\n const noDocumentAll = api.assumption(\"noDocumentAll\") ?? loose;\n const pureGetters = api.assumption(\"pureGetters\") ?? loose;\n\n return {\n name: \"transform-optional-chaining\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-optional-chaining\").default,\n\n visitor: {\n \"OptionalCallExpression|OptionalMemberExpression\"(\n path: NodePath<t.OptionalCallExpression | t.OptionalMemberExpression>,\n ) {\n transform(path, { noDocumentAll, pureGetters });\n },\n },\n };\n});\n\nexport { transform, transformOptionalChain };\n"],"names":["willPathCastToBoolean","path","maybeWrapped","findOutermostTransparentParent","node","parentPath","isLogicalExpression","operator","right","isSequenceExpression","expressions","length","isConditional","test","isUnaryExpression","isLoop","findParent","p","isTransparentExprWrapper","last","arr","isSimpleMemberExpression","expression","skipTransparentExprWrapperNodes","t","isIdentifier","isSuper","isMemberExpression","computed","object","needsMemoize","optionalPath","scope","isOptionalMemberExpression","isOptionalCallExpression","childPath","skipTransparentExprWrappers","get","optional","isStatic","NULLISH_CHECK","template","NULLISH_CHECK_NO_DDA","NULLISH_CHECK_NEG","NULLISH_CHECK_NO_DDA_NEG","transformOptionalChain","pureGetters","noDocumentAll","replacementPath","ifNullish","wrapLast","isPattern","replaceWith","ast","optionals","push","type","checks","tmpVar","i","isCall","isCallExpression","chainWithTypes","callee","chain","ref","check","name","sequenceExpression","numericLiteral","generateUidIdentifierBasedOnNode","id","cloneNode","assignmentExpression","context","thisExpression","memoized","maybeGenerateMemoised","arguments","unshift","memberExpression","identifier","data","Object","defineProperty","enumerable","result","ifNullishBoolean","isBooleanLiteral","ifNullishFalse","value","ifNullishVoid","isEvaluationValueIgnored","isExpressionStatement","parent","isCompletionRecord","tpl","logicalOp","map","reduce","expr","logicalExpression","conditionalExpression","transform","assumptions","booleanLiteral","replacement","_baseRef","baseRef","callExpression","buildUndefinedNode","declare","api","options","_api$assumption","_api$assumption2","assertVersion","loose","assumption","inherits","require","default","visitor","OptionalCallExpression|OptionalMemberExpression"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-optional-chaining/package.json b/node_modules/@babel/plugin-transform-optional-chaining/package.json index f0373dcc..e5ba8009 100644 --- a/node_modules/@babel/plugin-transform-optional-chaining/package.json +++ b/node_modules/@babel/plugin-transform-optional-chaining/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-optional-chaining", - "version": "7.23.0", + "version": "7.23.4", "description": "Transform optional chaining operators into a series of nil checks", "repository": { "type": "git", @@ -25,10 +25,10 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/traverse": "^7.23.0" + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/traverse": "^7.23.4" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/plugin-transform-parameters/lib/index.js b/node_modules/@babel/plugin-transform-parameters/lib/index.js index 10c53eff..141b982d 100644 --- a/node_modules/@babel/plugin-transform-parameters/lib/index.js +++ b/node_modules/@babel/plugin-transform-parameters/lib/index.js @@ -13,7 +13,7 @@ exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _params = require("./params.js"); var _rest = require("./rest.js"); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _api$assumption2; api.assertVersion(7); const ignoreFunctionLength = (_api$assumption = api.assumption("ignoreFunctionLength")) != null ? _api$assumption : options.loose; @@ -38,6 +38,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-parameters/lib/index.js.map b/node_modules/@babel/plugin-transform-parameters/lib/index.js.map index b1f93a1b..5c8a3d2f 100644 --- a/node_modules/@babel/plugin-transform-parameters/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-parameters/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_params","_rest","_default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","ignoreFunctionLength","assumption","loose","noNewArrows","name","visitor","Function","path","isArrowFunctionExpression","get","some","param","isRestElement","isAssignmentPattern","arrowFunctionToExpression","allowInsertArrowWithRest","isFunctionExpression","convertedRest","convertFunctionRest","convertedParams","convertFunctionParams","scope","crawl","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport convertFunctionParams from \"./params.ts\";\nimport convertFunctionRest from \"./rest.ts\";\nexport { convertFunctionParams };\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const ignoreFunctionLength =\n api.assumption(\"ignoreFunctionLength\") ?? options.loose;\n // Todo(BABEL 8): Consider default it to false\n const noNewArrows = api.assumption(\"noNewArrows\") ?? true;\n\n return {\n name: \"transform-parameters\",\n\n visitor: {\n Function(path) {\n if (\n path.isArrowFunctionExpression() &&\n path\n .get(\"params\")\n .some(param => param.isRestElement() || param.isAssignmentPattern())\n ) {\n // default/rest visitors require access to `arguments`, so it cannot be an arrow\n path.arrowFunctionToExpression({\n allowInsertArrowWithRest: false,\n noNewArrows,\n });\n\n // In some cases arrowFunctionToExpression replaces the function with a wrapper.\n // Return early; the wrapped function will be visited later in the AST traversal.\n if (!path.isFunctionExpression()) return;\n }\n\n const convertedRest = convertFunctionRest(path);\n const convertedParams = convertFunctionParams(\n path,\n ignoreFunctionLength,\n );\n\n if (convertedRest || convertedParams) {\n // Manually reprocess this scope to ensure that the moved params are updated.\n path.scope.crawl();\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA4C,IAAAG,QAAA,GAO7B,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAAA,IAAAC,eAAA,EAAAC,gBAAA;EAChDH,GAAG,CAACI,aAAa,CAAC,CAAC,CAAC;EAEpB,MAAMC,oBAAoB,IAAAH,eAAA,GACxBF,GAAG,CAACM,UAAU,CAAC,sBAAsB,CAAC,YAAAJ,eAAA,GAAID,OAAO,CAACM,KAAK;EAEzD,MAAMC,WAAW,IAAAL,gBAAA,GAAGH,GAAG,CAACM,UAAU,CAAC,aAAa,CAAC,YAAAH,gBAAA,GAAI,IAAI;EAEzD,OAAO;IACLM,IAAI,EAAE,sBAAsB;IAE5BC,OAAO,EAAE;MACPC,QAAQA,CAACC,IAAI,EAAE;QACb,IACEA,IAAI,CAACC,yBAAyB,CAAC,CAAC,IAChCD,IAAI,CACDE,GAAG,CAAC,QAAQ,CAAC,CACbC,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACC,aAAa,CAAC,CAAC,IAAID,KAAK,CAACE,mBAAmB,CAAC,CAAC,CAAC,EACtE;UAEAN,IAAI,CAACO,yBAAyB,CAAC;YAC7BC,wBAAwB,EAAE,KAAK;YAC/BZ;UACF,CAAC,CAAC;UAIF,IAAI,CAACI,IAAI,CAACS,oBAAoB,CAAC,CAAC,EAAE;QACpC;QAEA,MAAMC,aAAa,GAAG,IAAAC,aAAmB,EAACX,IAAI,CAAC;QAC/C,MAAMY,eAAe,GAAG,IAAAC,eAAqB,EAC3Cb,IAAI,EACJP,oBACF,CAAC;QAED,IAAIiB,aAAa,IAAIE,eAAe,EAAE;UAEpCZ,IAAI,CAACc,KAAK,CAACC,KAAK,CAAC,CAAC;QACpB;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAA/B,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_params","_rest","_default","exports","default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","ignoreFunctionLength","assumption","loose","noNewArrows","name","visitor","Function","path","isArrowFunctionExpression","get","some","param","isRestElement","isAssignmentPattern","arrowFunctionToExpression","allowInsertArrowWithRest","isFunctionExpression","convertedRest","convertFunctionRest","convertedParams","convertFunctionParams","scope","crawl"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport convertFunctionParams from \"./params.ts\";\nimport convertFunctionRest from \"./rest.ts\";\nexport { convertFunctionParams };\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const ignoreFunctionLength =\n api.assumption(\"ignoreFunctionLength\") ?? options.loose;\n // Todo(BABEL 8): Consider default it to false\n const noNewArrows = api.assumption(\"noNewArrows\") ?? true;\n\n return {\n name: \"transform-parameters\",\n\n visitor: {\n Function(path) {\n if (\n path.isArrowFunctionExpression() &&\n path\n .get(\"params\")\n .some(param => param.isRestElement() || param.isAssignmentPattern())\n ) {\n // default/rest visitors require access to `arguments`, so it cannot be an arrow\n path.arrowFunctionToExpression({\n allowInsertArrowWithRest: false,\n noNewArrows,\n });\n\n // In some cases arrowFunctionToExpression replaces the function with a wrapper.\n // Return early; the wrapped function will be visited later in the AST traversal.\n if (!path.isFunctionExpression()) return;\n }\n\n const convertedRest = convertFunctionRest(path);\n const convertedParams = convertFunctionParams(\n path,\n ignoreFunctionLength,\n );\n\n if (convertedRest || convertedParams) {\n // Manually reprocess this scope to ensure that the moved params are updated.\n path.scope.crawl();\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AAA4C,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAO7B,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAAA,IAAAC,eAAA,EAAAC,gBAAA;EAChDH,GAAG,CAACI,aAAa,CAGX,CACN,CAAC;EAED,MAAMC,oBAAoB,IAAAH,eAAA,GACxBF,GAAG,CAACM,UAAU,CAAC,sBAAsB,CAAC,YAAAJ,eAAA,GAAID,OAAO,CAACM,KAAK;EAEzD,MAAMC,WAAW,IAAAL,gBAAA,GAAGH,GAAG,CAACM,UAAU,CAAC,aAAa,CAAC,YAAAH,gBAAA,GAAI,IAAI;EAEzD,OAAO;IACLM,IAAI,EAAE,sBAAsB;IAE5BC,OAAO,EAAE;MACPC,QAAQA,CAACC,IAAI,EAAE;QACb,IACEA,IAAI,CAACC,yBAAyB,CAAC,CAAC,IAChCD,IAAI,CACDE,GAAG,CAAC,QAAQ,CAAC,CACbC,IAAI,CAACC,KAAK,IAAIA,KAAK,CAACC,aAAa,CAAC,CAAC,IAAID,KAAK,CAACE,mBAAmB,CAAC,CAAC,CAAC,EACtE;UAEAN,IAAI,CAACO,yBAAyB,CAAC;YAC7BC,wBAAwB,EAAE,KAAK;YAC/BZ;UACF,CAAC,CAAC;UAIF,IAAI,CAACI,IAAI,CAACS,oBAAoB,CAAC,CAAC,EAAE;QACpC;QAEA,MAAMC,aAAa,GAAG,IAAAC,aAAmB,EAACX,IAAI,CAAC;QAC/C,MAAMY,eAAe,GAAG,IAAAC,eAAqB,EAC3Cb,IAAI,EACJP,oBACF,CAAC;QAED,IAAIiB,aAAa,IAAIE,eAAe,EAAE;UAEpCZ,IAAI,CAACc,KAAK,CAACC,KAAK,CAAC,CAAC;QACpB;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js b/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js index 0b85a50f..82332985 100644 --- a/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js +++ b/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js @@ -7,7 +7,7 @@ exports.buildScopeIIFE = buildScopeIIFE; exports.collectShadowedParamsNames = collectShadowedParamsNames; exports.iifeVisitor = void 0; var _core = require("@babel/core"); -const iifeVisitor = { +const iifeVisitor = exports.iifeVisitor = { "ReferencedIdentifier|BindingIdentifier"(path, state) { const { scope, @@ -23,7 +23,6 @@ const iifeVisitor = { }, "TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration": path => path.skip() }; -exports.iifeVisitor = iifeVisitor; function collectShadowedParamsNames(param, functionScope, shadowedParams) { for (const name of Object.keys(param.getBindingIdentifiers())) { var _functionScope$bindin; diff --git a/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js.map b/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js.map index 97b3b9a4..2d160381 100644 --- a/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js.map +++ b/node_modules/@babel/plugin-transform-parameters/lib/shadow-utils.js.map @@ -1 +1 @@ -{"version":3,"names":["_core","require","iifeVisitor","ReferencedIdentifier|BindingIdentifier","path","state","scope","node","name","getBinding","parent","hasOwnBinding","needsOuterBinding","stop","skip","exports","collectShadowedParamsNames","param","functionScope","shadowedParams","Object","keys","getBindingIdentifiers","_functionScope$bindin","constantViolations","bindings","redeclarator","type","init","declaration","parentPath","isFor","get","remove","add","buildScopeIIFE","body","args","params","push","t","identifier","returnStatement","callExpression","arrowFunctionExpression"],"sources":["../src/shadow-utils.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\n\ntype State = {\n needsOuterBinding: boolean;\n scope: Scope;\n};\n\nexport const iifeVisitor: Visitor<State> = {\n \"ReferencedIdentifier|BindingIdentifier\"(\n path: NodePath<t.Identifier>,\n state,\n ) {\n const { scope, node } = path;\n const { name } = node;\n\n if (\n name === \"eval\" ||\n (scope.getBinding(name) === state.scope.parent.getBinding(name) &&\n state.scope.hasOwnBinding(name))\n ) {\n state.needsOuterBinding = true;\n path.stop();\n }\n },\n // type annotations don't use or introduce \"real\" bindings\n \"TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration\":\n (path: NodePath) => path.skip(),\n};\n\nexport function collectShadowedParamsNames(\n param: NodePath<t.Function[\"params\"][number]>,\n functionScope: Scope,\n shadowedParams: Set<string>,\n) {\n for (const name of Object.keys(param.getBindingIdentifiers())) {\n const constantViolations = functionScope.bindings[name]?.constantViolations;\n if (constantViolations) {\n for (const redeclarator of constantViolations) {\n const node = redeclarator.node;\n // If a constant violation is a var or a function declaration,\n // we first check to see if it's a var without an init.\n // If so, we remove that declarator.\n // Otherwise, we have to wrap it in an IIFE.\n switch (node.type) {\n case \"VariableDeclarator\": {\n if (node.init === null) {\n const declaration = redeclarator.parentPath;\n // The following uninitialized var declarators should not be removed\n // for (var x in {})\n // for (var x;;)\n if (\n !declaration.parentPath.isFor() ||\n declaration.parentPath.get(\"body\") === declaration\n ) {\n redeclarator.remove();\n break;\n }\n }\n\n shadowedParams.add(name);\n break;\n }\n case \"FunctionDeclaration\":\n shadowedParams.add(name);\n break;\n }\n }\n }\n }\n}\n\nexport function buildScopeIIFE(\n shadowedParams: Set<string>,\n body: t.BlockStatement,\n) {\n const args = [];\n const params = [];\n\n for (const name of shadowedParams) {\n // We create them twice; the other option is to use t.cloneNode\n args.push(t.identifier(name));\n params.push(t.identifier(name));\n }\n\n return t.returnStatement(\n t.callExpression(t.arrowFunctionExpression(params, body), args),\n );\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAQO,MAAMC,WAA2B,GAAG;EACzC,wCAAwCC,CACtCC,IAA4B,EAC5BC,KAAK,EACL;IACA,MAAM;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGH,IAAI;IAC5B,MAAM;MAAEI;IAAK,CAAC,GAAGD,IAAI;IAErB,IACEC,IAAI,KAAK,MAAM,IACdF,KAAK,CAACG,UAAU,CAACD,IAAI,CAAC,KAAKH,KAAK,CAACC,KAAK,CAACI,MAAM,CAACD,UAAU,CAACD,IAAI,CAAC,IAC7DH,KAAK,CAACC,KAAK,CAACK,aAAa,CAACH,IAAI,CAAE,EAClC;MACAH,KAAK,CAACO,iBAAiB,GAAG,IAAI;MAC9BR,IAAI,CAACS,IAAI,CAAC,CAAC;IACb;EACF,CAAC;EAED,qFAAqF,EAClFT,IAAc,IAAKA,IAAI,CAACU,IAAI,CAAC;AAClC,CAAC;AAACC,OAAA,CAAAb,WAAA,GAAAA,WAAA;AAEK,SAASc,0BAA0BA,CACxCC,KAA6C,EAC7CC,aAAoB,EACpBC,cAA2B,EAC3B;EACA,KAAK,MAAMX,IAAI,IAAIY,MAAM,CAACC,IAAI,CAACJ,KAAK,CAACK,qBAAqB,CAAC,CAAC,CAAC,EAAE;IAAA,IAAAC,qBAAA;IAC7D,MAAMC,kBAAkB,IAAAD,qBAAA,GAAGL,aAAa,CAACO,QAAQ,CAACjB,IAAI,CAAC,qBAA5Be,qBAAA,CAA8BC,kBAAkB;IAC3E,IAAIA,kBAAkB,EAAE;MACtB,KAAK,MAAME,YAAY,IAAIF,kBAAkB,EAAE;QAC7C,MAAMjB,IAAI,GAAGmB,YAAY,CAACnB,IAAI;QAK9B,QAAQA,IAAI,CAACoB,IAAI;UACf,KAAK,oBAAoB;YAAE;cACzB,IAAIpB,IAAI,CAACqB,IAAI,KAAK,IAAI,EAAE;gBACtB,MAAMC,WAAW,GAAGH,YAAY,CAACI,UAAU;gBAI3C,IACE,CAACD,WAAW,CAACC,UAAU,CAACC,KAAK,CAAC,CAAC,IAC/BF,WAAW,CAACC,UAAU,CAACE,GAAG,CAAC,MAAM,CAAC,KAAKH,WAAW,EAClD;kBACAH,YAAY,CAACO,MAAM,CAAC,CAAC;kBACrB;gBACF;cACF;cAEAd,cAAc,CAACe,GAAG,CAAC1B,IAAI,CAAC;cACxB;YACF;UACA,KAAK,qBAAqB;YACxBW,cAAc,CAACe,GAAG,CAAC1B,IAAI,CAAC;YACxB;QACJ;MACF;IACF;EACF;AACF;AAEO,SAAS2B,cAAcA,CAC5BhB,cAA2B,EAC3BiB,IAAsB,EACtB;EACA,MAAMC,IAAI,GAAG,EAAE;EACf,MAAMC,MAAM,GAAG,EAAE;EAEjB,KAAK,MAAM9B,IAAI,IAAIW,cAAc,EAAE;IAEjCkB,IAAI,CAACE,IAAI,CAACC,WAAC,CAACC,UAAU,CAACjC,IAAI,CAAC,CAAC;IAC7B8B,MAAM,CAACC,IAAI,CAACC,WAAC,CAACC,UAAU,CAACjC,IAAI,CAAC,CAAC;EACjC;EAEA,OAAOgC,WAAC,CAACE,eAAe,CACtBF,WAAC,CAACG,cAAc,CAACH,WAAC,CAACI,uBAAuB,CAACN,MAAM,EAAEF,IAAI,CAAC,EAAEC,IAAI,CAChE,CAAC;AACH"}
\ No newline at end of file +{"version":3,"names":["_core","require","iifeVisitor","exports","ReferencedIdentifier|BindingIdentifier","path","state","scope","node","name","getBinding","parent","hasOwnBinding","needsOuterBinding","stop","skip","collectShadowedParamsNames","param","functionScope","shadowedParams","Object","keys","getBindingIdentifiers","_functionScope$bindin","constantViolations","bindings","redeclarator","type","init","declaration","parentPath","isFor","get","remove","add","buildScopeIIFE","body","args","params","push","t","identifier","returnStatement","callExpression","arrowFunctionExpression"],"sources":["../src/shadow-utils.ts"],"sourcesContent":["import { types as t } from \"@babel/core\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\n\ntype State = {\n needsOuterBinding: boolean;\n scope: Scope;\n};\n\nexport const iifeVisitor: Visitor<State> = {\n \"ReferencedIdentifier|BindingIdentifier\"(\n path: NodePath<t.Identifier>,\n state,\n ) {\n const { scope, node } = path;\n const { name } = node;\n\n if (\n name === \"eval\" ||\n (scope.getBinding(name) === state.scope.parent.getBinding(name) &&\n state.scope.hasOwnBinding(name))\n ) {\n state.needsOuterBinding = true;\n path.stop();\n }\n },\n // type annotations don't use or introduce \"real\" bindings\n \"TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration\":\n (path: NodePath) => path.skip(),\n};\n\nexport function collectShadowedParamsNames(\n param: NodePath<t.Function[\"params\"][number]>,\n functionScope: Scope,\n shadowedParams: Set<string>,\n) {\n for (const name of Object.keys(param.getBindingIdentifiers())) {\n const constantViolations = functionScope.bindings[name]?.constantViolations;\n if (constantViolations) {\n for (const redeclarator of constantViolations) {\n const node = redeclarator.node;\n // If a constant violation is a var or a function declaration,\n // we first check to see if it's a var without an init.\n // If so, we remove that declarator.\n // Otherwise, we have to wrap it in an IIFE.\n switch (node.type) {\n case \"VariableDeclarator\": {\n if (node.init === null) {\n const declaration = redeclarator.parentPath;\n // The following uninitialized var declarators should not be removed\n // for (var x in {})\n // for (var x;;)\n if (\n !declaration.parentPath.isFor() ||\n declaration.parentPath.get(\"body\") === declaration\n ) {\n redeclarator.remove();\n break;\n }\n }\n\n shadowedParams.add(name);\n break;\n }\n case \"FunctionDeclaration\":\n shadowedParams.add(name);\n break;\n }\n }\n }\n }\n}\n\nexport function buildScopeIIFE(\n shadowedParams: Set<string>,\n body: t.BlockStatement,\n) {\n const args = [];\n const params = [];\n\n for (const name of shadowedParams) {\n // We create them twice; the other option is to use t.cloneNode\n args.push(t.identifier(name));\n params.push(t.identifier(name));\n }\n\n return t.returnStatement(\n t.callExpression(t.arrowFunctionExpression(params, body), args),\n );\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,KAAA,GAAAC,OAAA;AAQO,MAAMC,WAA2B,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzC,wCAAwCE,CACtCC,IAA4B,EAC5BC,KAAK,EACL;IACA,MAAM;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAGH,IAAI;IAC5B,MAAM;MAAEI;IAAK,CAAC,GAAGD,IAAI;IAErB,IACEC,IAAI,KAAK,MAAM,IACdF,KAAK,CAACG,UAAU,CAACD,IAAI,CAAC,KAAKH,KAAK,CAACC,KAAK,CAACI,MAAM,CAACD,UAAU,CAACD,IAAI,CAAC,IAC7DH,KAAK,CAACC,KAAK,CAACK,aAAa,CAACH,IAAI,CAAE,EAClC;MACAH,KAAK,CAACO,iBAAiB,GAAG,IAAI;MAC9BR,IAAI,CAACS,IAAI,CAAC,CAAC;IACb;EACF,CAAC;EAED,qFAAqF,EAClFT,IAAc,IAAKA,IAAI,CAACU,IAAI,CAAC;AAClC,CAAC;AAEM,SAASC,0BAA0BA,CACxCC,KAA6C,EAC7CC,aAAoB,EACpBC,cAA2B,EAC3B;EACA,KAAK,MAAMV,IAAI,IAAIW,MAAM,CAACC,IAAI,CAACJ,KAAK,CAACK,qBAAqB,CAAC,CAAC,CAAC,EAAE;IAAA,IAAAC,qBAAA;IAC7D,MAAMC,kBAAkB,IAAAD,qBAAA,GAAGL,aAAa,CAACO,QAAQ,CAAChB,IAAI,CAAC,qBAA5Bc,qBAAA,CAA8BC,kBAAkB;IAC3E,IAAIA,kBAAkB,EAAE;MACtB,KAAK,MAAME,YAAY,IAAIF,kBAAkB,EAAE;QAC7C,MAAMhB,IAAI,GAAGkB,YAAY,CAAClB,IAAI;QAK9B,QAAQA,IAAI,CAACmB,IAAI;UACf,KAAK,oBAAoB;YAAE;cACzB,IAAInB,IAAI,CAACoB,IAAI,KAAK,IAAI,EAAE;gBACtB,MAAMC,WAAW,GAAGH,YAAY,CAACI,UAAU;gBAI3C,IACE,CAACD,WAAW,CAACC,UAAU,CAACC,KAAK,CAAC,CAAC,IAC/BF,WAAW,CAACC,UAAU,CAACE,GAAG,CAAC,MAAM,CAAC,KAAKH,WAAW,EAClD;kBACAH,YAAY,CAACO,MAAM,CAAC,CAAC;kBACrB;gBACF;cACF;cAEAd,cAAc,CAACe,GAAG,CAACzB,IAAI,CAAC;cACxB;YACF;UACA,KAAK,qBAAqB;YACxBU,cAAc,CAACe,GAAG,CAACzB,IAAI,CAAC;YACxB;QACJ;MACF;IACF;EACF;AACF;AAEO,SAAS0B,cAAcA,CAC5BhB,cAA2B,EAC3BiB,IAAsB,EACtB;EACA,MAAMC,IAAI,GAAG,EAAE;EACf,MAAMC,MAAM,GAAG,EAAE;EAEjB,KAAK,MAAM7B,IAAI,IAAIU,cAAc,EAAE;IAEjCkB,IAAI,CAACE,IAAI,CAACC,WAAC,CAACC,UAAU,CAAChC,IAAI,CAAC,CAAC;IAC7B6B,MAAM,CAACC,IAAI,CAACC,WAAC,CAACC,UAAU,CAAChC,IAAI,CAAC,CAAC;EACjC;EAEA,OAAO+B,WAAC,CAACE,eAAe,CACtBF,WAAC,CAACG,cAAc,CAACH,WAAC,CAACI,uBAAuB,CAACN,MAAM,EAAEF,IAAI,CAAC,EAAEC,IAAI,CAChE,CAAC;AACH"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-parameters/package.json b/node_modules/@babel/plugin-transform-parameters/package.json index 4121f502..472c1160 100644 --- a/node_modules/@babel/plugin-transform-parameters/package.json +++ b/node_modules/@babel/plugin-transform-parameters/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-parameters", - "version": "7.22.15", + "version": "7.23.3", "description": "Compile ES2015 default and rest parameters to ES5", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.15", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-private-methods/README.md b/node_modules/@babel/plugin-transform-private-methods/README.md index 69275309..c7ef0a4a 100644 --- a/node_modules/@babel/plugin-transform-private-methods/README.md +++ b/node_modules/@babel/plugin-transform-private-methods/README.md @@ -2,7 +2,7 @@ > This plugin transforms private class methods -See our website [@babel/plugin-transform-private-methods](https://babeljs.io/docs/en/babel-plugin-transform-private-methods) for more information. +See our website [@babel/plugin-transform-private-methods](https://babeljs.io/docs/babel-plugin-transform-private-methods) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-private-methods/lib/index.js b/node_modules/@babel/plugin-transform-private-methods/lib/index.js index 90768352..ee0fee05 100644 --- a/node_modules/@babel/plugin-transform-private-methods/lib/index.js +++ b/node_modules/@babel/plugin-transform-private-methods/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _helperCreateClassFeaturesPlugin = require("@babel/helper-create-class-features-plugin"); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { api.assertVersion(7); return (0, _helperCreateClassFeaturesPlugin.createClassFeaturePlugin)({ name: "transform-private-methods", @@ -18,6 +18,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }); }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-private-methods/lib/index.js.map b/node_modules/@babel/plugin-transform-private-methods/lib/index.js.map index 0bd88ec7..a328dbd3 100644 --- a/node_modules/@babel/plugin-transform-private-methods/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-private-methods/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperCreateClassFeaturesPlugin","_default","declare","api","options","assertVersion","createClassFeaturePlugin","name","feature","FEATURES","privateMethods","loose","manipulateOptions","opts","parserOpts","plugins","push","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\n\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport {\n createClassFeaturePlugin,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n return createClassFeaturePlugin({\n name: \"transform-private-methods\",\n\n api,\n feature: FEATURES.privateMethods,\n loose: options.loose,\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"classPrivateMethods\");\n },\n });\n});\n"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,gCAAA,GAAAD,OAAA;AAGoD,IAAAE,QAAA,GAMrC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAChDD,GAAG,CAACE,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO,IAAAC,yDAAwB,EAAC;IAC9BC,IAAI,EAAE,2BAA2B;IAEjCJ,GAAG;IACHK,OAAO,EAAEC,yCAAQ,CAACC,cAAc;IAChCC,KAAK,EAAEP,OAAO,CAACO,KAAK;IAEpBC,iBAAiBA,CAACC,IAAI,EAAEC,UAAU,EAAE;MAClCA,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC,qBAAqB,CAAC;IAChD;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAjB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperCreateClassFeaturesPlugin","_default","exports","default","declare","api","options","assertVersion","createClassFeaturePlugin","name","feature","FEATURES","privateMethods","loose","manipulateOptions","opts","parserOpts","plugins","push"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\n\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport {\n createClassFeaturePlugin,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return createClassFeaturePlugin({\n name: \"transform-private-methods\",\n\n api,\n feature: FEATURES.privateMethods,\n loose: options.loose,\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"classPrivateMethods\");\n },\n });\n});\n"],"mappings":";;;;;;AAEA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,gCAAA,GAAAD,OAAA;AAGoD,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAMrC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAChDD,GAAG,CAACE,aAAa,CAGX,CACN,CAAC;EAED,OAAO,IAAAC,yDAAwB,EAAC;IAC9BC,IAAI,EAAE,2BAA2B;IAEjCJ,GAAG;IACHK,OAAO,EAAEC,yCAAQ,CAACC,cAAc;IAChCC,KAAK,EAAEP,OAAO,CAACO,KAAK;IAEpBC,iBAAiBA,CAACC,IAAI,EAAEC,UAAU,EAAE;MAClCA,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC,qBAAqB,CAAC;IAChD;EACF,CAAC,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-private-methods/package.json b/node_modules/@babel/plugin-transform-private-methods/package.json index b6ddbe34..e019292c 100644 --- a/node_modules/@babel/plugin-transform-private-methods/package.json +++ b/node_modules/@babel/plugin-transform-private-methods/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-private-methods", - "version": "7.22.5", + "version": "7.23.3", "description": "This plugin transforms private class methods", "repository": { "type": "git", @@ -17,14 +17,14 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.22.5", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-private-property-in-object/lib/index.js b/node_modules/@babel/plugin-transform-private-property-in-object/lib/index.js index d3910662..81d07758 100644 --- a/node_modules/@babel/plugin-transform-private-property-in-object/lib/index.js +++ b/node_modules/@babel/plugin-transform-private-property-in-object/lib/index.js @@ -7,7 +7,7 @@ exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _helperCreateClassFeaturesPlugin = require("@babel/helper-create-class-features-plugin"); var _helperAnnotateAsPure = require("@babel/helper-annotate-as-pure"); -var _default = (0, _helperPluginUtils.declare)((api, opt) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, opt) => { api.assertVersion(7); const { types: t, @@ -122,6 +122,5 @@ var _default = (0, _helperPluginUtils.declare)((api, opt) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-private-property-in-object/lib/index.js.map b/node_modules/@babel/plugin-transform-private-property-in-object/lib/index.js.map index 31a508c4..cf30b8de 100644 --- a/node_modules/@babel/plugin-transform-private-property-in-object/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-private-property-in-object/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperCreateClassFeaturesPlugin","_helperAnnotateAsPure","_default","declare","api","opt","assertVersion","types","t","template","loose","classWeakSets","WeakMap","fieldsWeakSets","unshadow","name","targetScope","scope","hasOwnBinding","rename","parent","injectToFieldInit","fieldPath","expr","before","node","value","get","insertBefore","insertAfter","set","unaryExpression","injectInitialization","classPath","init","firstFieldPath","constructorPath","el","isClassProperty","isClassPrivateProperty","static","isClassMethod","kind","injectConstructorInit","expressionStatement","getWeakSetId","weakSets","outerClass","reference","inject","id","generateUidIdentifier","expression","ast","cloneNode","newExpr","newExpression","identifier","annotateAsPure","inherits","default","pre","enableFeature","file","FEATURES","privateIn","visitor","BinaryExpression","path","state","operator","isPrivateName","left","privateElement","findParent","isClass","find","isPrivate","key","parentPath","isPattern","replaceWith","type","buildCheckInRHS","right","_outerClass$node$id","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport {\n enableFeature,\n FEATURES,\n injectInitialization as injectConstructorInit,\n buildCheckInRHS,\n} from \"@babel/helper-create-class-features-plugin\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\n\nexport interface Options {\n loose?: boolean;\n}\nexport default declare((api, opt: Options) => {\n api.assertVersion(7);\n const { types: t, template } = api;\n const { loose } = opt;\n\n // NOTE: When using the class fields or private methods plugins,\n // they will also take care of '#priv in obj' checks when visiting\n // the ClassExpression or ClassDeclaration nodes.\n // The visitor of this plugin is only effective when not compiling\n // private fields and methods.\n\n const classWeakSets: WeakMap<t.Class, t.Identifier> = new WeakMap();\n const fieldsWeakSets: WeakMap<\n t.ClassPrivateProperty | t.ClassPrivateMethod,\n t.Identifier\n > = new WeakMap();\n\n function unshadow(name: string, targetScope: Scope, scope: Scope) {\n while (scope !== targetScope) {\n if (scope.hasOwnBinding(name)) scope.rename(name);\n scope = scope.parent;\n }\n }\n\n function injectToFieldInit(\n fieldPath: NodePath<t.ClassPrivateProperty | t.ClassProperty>,\n expr: t.Expression,\n before = false,\n ) {\n if (fieldPath.node.value) {\n const value = fieldPath.get(\"value\");\n if (before) {\n value.insertBefore(expr);\n } else {\n value.insertAfter(expr);\n }\n } else {\n fieldPath.set(\"value\", t.unaryExpression(\"void\", expr));\n }\n }\n\n function injectInitialization(\n classPath: NodePath<t.Class>,\n init: t.Expression,\n ) {\n let firstFieldPath;\n let constructorPath;\n\n for (const el of classPath.get(\"body.body\")) {\n if (\n (el.isClassProperty() || el.isClassPrivateProperty()) &&\n !el.node.static\n ) {\n firstFieldPath = el;\n break;\n }\n if (!constructorPath && el.isClassMethod({ kind: \"constructor\" })) {\n constructorPath = el;\n }\n }\n\n if (firstFieldPath) {\n injectToFieldInit(firstFieldPath, init, true);\n } else {\n injectConstructorInit(classPath, constructorPath, [\n t.expressionStatement(init),\n ]);\n }\n }\n\n function getWeakSetId<Ref extends t.Node>(\n weakSets: WeakMap<Ref, t.Identifier>,\n outerClass: NodePath<t.Class>,\n reference: NodePath<Ref>,\n name = \"\",\n inject: (\n reference: NodePath<Ref>,\n expression: t.Expression,\n before?: boolean,\n ) => void,\n ) {\n let id = weakSets.get(reference.node);\n\n if (!id) {\n id = outerClass.scope.generateUidIdentifier(`${name || \"\"} brandCheck`);\n weakSets.set(reference.node, id);\n\n inject(reference, template.expression.ast`${t.cloneNode(id)}.add(this)`);\n\n const newExpr = t.newExpression(t.identifier(\"WeakSet\"), []);\n annotateAsPure(newExpr);\n\n outerClass.insertBefore(template.ast`var ${id} = ${newExpr}`);\n }\n\n return t.cloneNode(id);\n }\n\n return {\n name: \"transform-private-property-in-object\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-private-property-in-object\").default,\n pre() {\n // Enable this in @babel/helper-create-class-features-plugin, so that it\n // can be handled by the private fields and methods transform.\n enableFeature(this.file, FEATURES.privateIn, loose);\n },\n visitor: {\n BinaryExpression(path, state) {\n const { node } = path;\n const { file } = state;\n if (node.operator !== \"in\") return;\n if (!t.isPrivateName(node.left)) return;\n\n const { name } = node.left.id;\n\n let privateElement: NodePath<\n t.ClassPrivateMethod | t.ClassPrivateProperty\n >;\n const outerClass = path.findParent(path => {\n if (!path.isClass()) return false;\n\n privateElement = path.get(\"body.body\").find(\n ({ node }) =>\n // fixme: Support class accessor property\n t.isPrivate(node) && node.key.id.name === name,\n ) as NodePath<t.ClassPrivateMethod | t.ClassPrivateProperty>;\n\n return !!privateElement;\n }) as NodePath<t.Class>;\n\n if (outerClass.parentPath.scope.path.isPattern()) {\n outerClass.replaceWith(\n template.ast`(() => ${outerClass.node})()` as t.Statement,\n );\n // The injected class will be queued and eventually transformed when visited\n return;\n }\n\n if (privateElement.node.type === \"ClassPrivateMethod\") {\n if (privateElement.node.static) {\n if (outerClass.node.id) {\n unshadow(outerClass.node.id.name, outerClass.scope, path.scope);\n } else {\n outerClass.set(\"id\", path.scope.generateUidIdentifier(\"class\"));\n }\n path.replaceWith(\n template.expression.ast`\n ${t.cloneNode(outerClass.node.id)} === ${buildCheckInRHS(\n node.right,\n file,\n )}\n `,\n );\n } else {\n const id = getWeakSetId(\n classWeakSets,\n outerClass,\n outerClass,\n outerClass.node.id?.name,\n injectInitialization,\n );\n\n path.replaceWith(\n template.expression.ast`${id}.has(${buildCheckInRHS(\n node.right,\n file,\n )})`,\n );\n }\n } else {\n // Private fields might not all be initialized: see the 'halfConstructed'\n // example at https://v8.dev/features/private-brand-checks.\n\n const id = getWeakSetId<t.ClassPrivateProperty>(\n fieldsWeakSets,\n outerClass,\n privateElement as NodePath<t.ClassPrivateProperty>,\n privateElement.node.key.id.name,\n injectToFieldInit,\n );\n\n path.replaceWith(\n template.expression.ast`${id}.has(${buildCheckInRHS(\n node.right,\n file,\n )})`,\n );\n }\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperCreateClassFeaturesPlugin","_helperAnnotateAsPure","_default","exports","default","declare","api","opt","assertVersion","types","t","template","loose","classWeakSets","WeakMap","fieldsWeakSets","unshadow","name","targetScope","scope","hasOwnBinding","rename","parent","injectToFieldInit","fieldPath","expr","before","node","value","get","insertBefore","insertAfter","set","unaryExpression","injectInitialization","classPath","init","firstFieldPath","constructorPath","el","isClassProperty","isClassPrivateProperty","static","isClassMethod","kind","injectConstructorInit","expressionStatement","getWeakSetId","weakSets","outerClass","reference","inject","id","generateUidIdentifier","expression","ast","cloneNode","newExpr","newExpression","identifier","annotateAsPure","inherits","pre","enableFeature","file","FEATURES","privateIn","visitor","BinaryExpression","path","state","operator","isPrivateName","left","privateElement","findParent","isClass","find","isPrivate","key","parentPath","isPattern","replaceWith","type","buildCheckInRHS","right","_outerClass$node$id"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport {\n enableFeature,\n FEATURES,\n injectInitialization as injectConstructorInit,\n buildCheckInRHS,\n} from \"@babel/helper-create-class-features-plugin\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\n\nexport interface Options {\n loose?: boolean;\n}\nexport default declare((api, opt: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n const { types: t, template } = api;\n const { loose } = opt;\n\n // NOTE: When using the class fields or private methods plugins,\n // they will also take care of '#priv in obj' checks when visiting\n // the ClassExpression or ClassDeclaration nodes.\n // The visitor of this plugin is only effective when not compiling\n // private fields and methods.\n\n const classWeakSets: WeakMap<t.Class, t.Identifier> = new WeakMap();\n const fieldsWeakSets: WeakMap<\n t.ClassPrivateProperty | t.ClassPrivateMethod,\n t.Identifier\n > = new WeakMap();\n\n function unshadow(name: string, targetScope: Scope, scope: Scope) {\n while (scope !== targetScope) {\n if (scope.hasOwnBinding(name)) scope.rename(name);\n scope = scope.parent;\n }\n }\n\n function injectToFieldInit(\n fieldPath: NodePath<t.ClassPrivateProperty | t.ClassProperty>,\n expr: t.Expression,\n before = false,\n ) {\n if (fieldPath.node.value) {\n const value = fieldPath.get(\"value\");\n if (before) {\n value.insertBefore(expr);\n } else {\n value.insertAfter(expr);\n }\n } else {\n fieldPath.set(\"value\", t.unaryExpression(\"void\", expr));\n }\n }\n\n function injectInitialization(\n classPath: NodePath<t.Class>,\n init: t.Expression,\n ) {\n let firstFieldPath;\n let constructorPath;\n\n for (const el of classPath.get(\"body.body\")) {\n if (\n (el.isClassProperty() || el.isClassPrivateProperty()) &&\n !el.node.static\n ) {\n firstFieldPath = el;\n break;\n }\n if (!constructorPath && el.isClassMethod({ kind: \"constructor\" })) {\n constructorPath = el;\n }\n }\n\n if (firstFieldPath) {\n injectToFieldInit(firstFieldPath, init, true);\n } else {\n injectConstructorInit(classPath, constructorPath, [\n t.expressionStatement(init),\n ]);\n }\n }\n\n function getWeakSetId<Ref extends t.Node>(\n weakSets: WeakMap<Ref, t.Identifier>,\n outerClass: NodePath<t.Class>,\n reference: NodePath<Ref>,\n name = \"\",\n inject: (\n reference: NodePath<Ref>,\n expression: t.Expression,\n before?: boolean,\n ) => void,\n ) {\n let id = weakSets.get(reference.node);\n\n if (!id) {\n id = outerClass.scope.generateUidIdentifier(`${name || \"\"} brandCheck`);\n weakSets.set(reference.node, id);\n\n inject(reference, template.expression.ast`${t.cloneNode(id)}.add(this)`);\n\n const newExpr = t.newExpression(t.identifier(\"WeakSet\"), []);\n annotateAsPure(newExpr);\n\n outerClass.insertBefore(template.ast`var ${id} = ${newExpr}`);\n }\n\n return t.cloneNode(id);\n }\n\n return {\n name: \"transform-private-property-in-object\",\n inherits: USE_ESM\n ? undefined\n : IS_STANDALONE\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-private-property-in-object\").default,\n pre() {\n // Enable this in @babel/helper-create-class-features-plugin, so that it\n // can be handled by the private fields and methods transform.\n enableFeature(this.file, FEATURES.privateIn, loose);\n },\n visitor: {\n BinaryExpression(path, state) {\n const { node } = path;\n const { file } = state;\n if (node.operator !== \"in\") return;\n if (!t.isPrivateName(node.left)) return;\n\n const { name } = node.left.id;\n\n let privateElement: NodePath<\n t.ClassPrivateMethod | t.ClassPrivateProperty\n >;\n const outerClass = path.findParent(path => {\n if (!path.isClass()) return false;\n\n privateElement = path.get(\"body.body\").find(\n ({ node }) =>\n // fixme: Support class accessor property\n t.isPrivate(node) && node.key.id.name === name,\n ) as NodePath<t.ClassPrivateMethod | t.ClassPrivateProperty>;\n\n return !!privateElement;\n }) as NodePath<t.Class>;\n\n if (outerClass.parentPath.scope.path.isPattern()) {\n outerClass.replaceWith(\n template.ast`(() => ${outerClass.node})()` as t.Statement,\n );\n // The injected class will be queued and eventually transformed when visited\n return;\n }\n\n if (privateElement.node.type === \"ClassPrivateMethod\") {\n if (privateElement.node.static) {\n if (outerClass.node.id) {\n unshadow(outerClass.node.id.name, outerClass.scope, path.scope);\n } else {\n outerClass.set(\"id\", path.scope.generateUidIdentifier(\"class\"));\n }\n path.replaceWith(\n template.expression.ast`\n ${t.cloneNode(outerClass.node.id)} === ${buildCheckInRHS(\n node.right,\n file,\n )}\n `,\n );\n } else {\n const id = getWeakSetId(\n classWeakSets,\n outerClass,\n outerClass,\n outerClass.node.id?.name,\n injectInitialization,\n );\n\n path.replaceWith(\n template.expression.ast`${id}.has(${buildCheckInRHS(\n node.right,\n file,\n )})`,\n );\n }\n } else {\n // Private fields might not all be initialized: see the 'halfConstructed'\n // example at https://v8.dev/features/private-brand-checks.\n\n const id = getWeakSetId<t.ClassPrivateProperty>(\n fieldsWeakSets,\n outerClass,\n privateElement as NodePath<t.ClassPrivateProperty>,\n privateElement.node.key.id.name,\n injectToFieldInit,\n );\n\n path.replaceWith(\n template.expression.ast`${id}.has(${buildCheckInRHS(\n node.right,\n file,\n )})`,\n );\n }\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-private-property-in-object/package.json b/node_modules/@babel/plugin-transform-private-property-in-object/package.json index 7e1dde03..ed6022b2 100644 --- a/node_modules/@babel/plugin-transform-private-property-in-object/package.json +++ b/node_modules/@babel/plugin-transform-private-property-in-object/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-private-property-in-object", - "version": "7.22.11", + "version": "7.23.4", "description": "This plugin transforms checks for a private property in an object", "repository": { "type": "git", @@ -18,7 +18,7 @@ ], "dependencies": { "@babel/helper-annotate-as-pure": "^7.22.5", - "@babel/helper-create-class-features-plugin": "^7.22.11", + "@babel/helper-create-class-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5", "@babel/plugin-syntax-private-property-in-object": "^7.14.5" }, @@ -26,7 +26,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.11", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-property-literals/README.md b/node_modules/@babel/plugin-transform-property-literals/README.md index 2c21aca1..8e490aba 100644 --- a/node_modules/@babel/plugin-transform-property-literals/README.md +++ b/node_modules/@babel/plugin-transform-property-literals/README.md @@ -2,7 +2,7 @@ > Ensure that reserved words are quoted in object property keys -See our website [@babel/plugin-transform-property-literals](https://babeljs.io/docs/en/babel-plugin-transform-property-literals) for more information. +See our website [@babel/plugin-transform-property-literals](https://babeljs.io/docs/babel-plugin-transform-property-literals) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-property-literals/lib/index.js b/node_modules/@babel/plugin-transform-property-literals/lib/index.js index 518350b5..21460542 100644 --- a/node_modules/@babel/plugin-transform-property-literals/lib/index.js +++ b/node_modules/@babel/plugin-transform-property-literals/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-property-literals", @@ -24,6 +24,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-property-literals/lib/index.js.map b/node_modules/@babel/plugin-transform-property-literals/lib/index.js.map index a1a1a70e..1357844c 100644 --- a/node_modules/@babel/plugin-transform-property-literals/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-property-literals/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","name","visitor","ObjectProperty","exit","node","key","computed","t","isIdentifier","isValidES3Identifier","stringLiteral","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-property-literals\",\n\n visitor: {\n ObjectProperty: {\n exit({ node }) {\n const key = node.key;\n if (\n !node.computed &&\n t.isIdentifier(key) &&\n !t.isValidES3Identifier(key.name)\n ) {\n // default: \"bar\" -> \"default\": \"bar\"\n node.key = t.stringLiteral(key.name);\n }\n },\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,6BAA6B;IAEnCC,OAAO,EAAE;MACPC,cAAc,EAAE;QACdC,IAAIA,CAAC;UAAEC;QAAK,CAAC,EAAE;UACb,MAAMC,GAAG,GAAGD,IAAI,CAACC,GAAG;UACpB,IACE,CAACD,IAAI,CAACE,QAAQ,IACdC,WAAC,CAACC,YAAY,CAACH,GAAG,CAAC,IACnB,CAACE,WAAC,CAACE,oBAAoB,CAACJ,GAAG,CAACL,IAAI,CAAC,EACjC;YAEAI,IAAI,CAACC,GAAG,GAAGE,WAAC,CAACG,aAAa,CAACL,GAAG,CAACL,IAAI,CAAC;UACtC;QACF;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAW,OAAA,CAAAC,OAAA,GAAAhB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","name","visitor","ObjectProperty","exit","node","key","computed","t","isIdentifier","isValidES3Identifier","stringLiteral"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-property-literals\",\n\n visitor: {\n ObjectProperty: {\n exit({ node }) {\n const key = node.key;\n if (\n !node.computed &&\n t.isIdentifier(key) &&\n !t.isValidES3Identifier(key.name)\n ) {\n // default: \"bar\" -> \"default\": \"bar\"\n node.key = t.stringLiteral(key.name);\n }\n },\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,6BAA6B;IAEnCC,OAAO,EAAE;MACPC,cAAc,EAAE;QACdC,IAAIA,CAAC;UAAEC;QAAK,CAAC,EAAE;UACb,MAAMC,GAAG,GAAGD,IAAI,CAACC,GAAG;UACpB,IACE,CAACD,IAAI,CAACE,QAAQ,IACdC,WAAC,CAACC,YAAY,CAACH,GAAG,CAAC,IACnB,CAACE,WAAC,CAACE,oBAAoB,CAACJ,GAAG,CAACL,IAAI,CAAC,EACjC;YAEAI,IAAI,CAACC,GAAG,GAAGE,WAAC,CAACG,aAAa,CAACL,GAAG,CAACL,IAAI,CAAC;UACtC;QACF;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-property-literals/package.json b/node_modules/@babel/plugin-transform-property-literals/package.json index 950ece87..6016e41b 100644 --- a/node_modules/@babel/plugin-transform-property-literals/package.json +++ b/node_modules/@babel/plugin-transform-property-literals/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-property-literals", - "version": "7.22.5", + "version": "7.23.3", "description": "Ensure that reserved words are quoted in object property keys", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-regenerator/lib/index.js b/node_modules/@babel/plugin-transform-regenerator/lib/index.js index 18cc899c..82240337 100644 --- a/node_modules/@babel/plugin-transform-regenerator/lib/index.js +++ b/node_modules/@babel/plugin-transform-regenerator/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _regeneratorTransform = require("regenerator-transform"); -var _default = (0, _helperPluginUtils.declare)(({ +var _default = exports.default = (0, _helperPluginUtils.declare)(({ types: t, assertVersion }) => { @@ -39,6 +39,5 @@ var _default = (0, _helperPluginUtils.declare)(({ } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-regenerator/lib/index.js.map b/node_modules/@babel/plugin-transform-regenerator/lib/index.js.map index e03b55bc..6e890949 100644 --- a/node_modules/@babel/plugin-transform-regenerator/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-regenerator/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_regeneratorTransform","_default","declare","types","t","assertVersion","name","inherits","regeneratorTransform","default","visitor","MemberExpression","path","_this$availableHelper","availableHelper","call","obj","get","isIdentifier","helper","addHelper","isArrowFunctionExpression","replaceWith","body","callExpression","exports"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { types as t } from \"@babel/core\";\nimport regeneratorTransform from \"regenerator-transform\";\n\nexport default declare(({ types: t, assertVersion }) => {\n assertVersion(7);\n\n return {\n name: \"transform-regenerator\",\n\n inherits: regeneratorTransform.default,\n\n visitor: {\n // We visit MemberExpression so that we always transform\n // regeneratorRuntime before babel-plugin-polyfill-regenerator.\n MemberExpression(path) {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.availableHelper?.(\"regeneratorRuntime\")) {\n // When using an older @babel/helpers version, fallback\n // to the old behavior.\n // TODO: Remove this in Babel 8.\n return;\n }\n }\n\n const obj = path.get(\"object\");\n if (obj.isIdentifier({ name: \"regeneratorRuntime\" })) {\n const helper = this.addHelper(\"regeneratorRuntime\") as\n | t.Identifier\n | t.ArrowFunctionExpression;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (\n // TODO: Remove this in Babel 8, it's necessary to\n // avoid the IIFE when using older Babel versions.\n t.isArrowFunctionExpression(helper)\n ) {\n obj.replaceWith(helper.body);\n return;\n }\n }\n\n obj.replaceWith(t.callExpression(helper, []));\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AAAyD,IAAAE,QAAA,GAE1C,IAAAC,0BAAO,EAAC,CAAC;EAAEC,KAAK,EAAEC,CAAC;EAAEC;AAAc,CAAC,KAAK;EACtDA,aAAa,CAAC,CAAC,CAAC;EAEhB,OAAO;IACLC,IAAI,EAAE,uBAAuB;IAE7BC,QAAQ,EAAEC,qBAAoB,CAACC,OAAO;IAEtCC,OAAO,EAAE;MAGPC,gBAAgBA,CAACC,IAAI,EAAE;QACc;UAAA,IAAAC,qBAAA;UACjC,IAAI,GAAAA,qBAAA,GAAC,IAAI,CAACC,eAAe,aAApBD,qBAAA,CAAAE,IAAA,KAAI,EAAmB,oBAAoB,CAAC,GAAE;YAIjD;UACF;QACF;QAEA,MAAMC,GAAG,GAAGJ,IAAI,CAACK,GAAG,CAAC,QAAQ,CAAC;QAC9B,IAAID,GAAG,CAACE,YAAY,CAAC;UAAEZ,IAAI,EAAE;QAAqB,CAAC,CAAC,EAAE;UACpD,MAAMa,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,oBAAoB,CAErB;UAEM;YACjC,IAGEhB,CAAC,CAACiB,yBAAyB,CAACF,MAAM,CAAC,EACnC;cACAH,GAAG,CAACM,WAAW,CAACH,MAAM,CAACI,IAAI,CAAC;cAC5B;YACF;UACF;UAEAP,GAAG,CAACM,WAAW,CAAClB,CAAC,CAACoB,cAAc,CAACL,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/C;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAM,OAAA,CAAAhB,OAAA,GAAAR,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_regeneratorTransform","_default","exports","default","declare","types","t","assertVersion","name","inherits","regeneratorTransform","visitor","MemberExpression","path","_this$availableHelper","availableHelper","call","obj","get","isIdentifier","helper","addHelper","isArrowFunctionExpression","replaceWith","body","callExpression"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport type { types as t } from \"@babel/core\";\nimport regeneratorTransform from \"regenerator-transform\";\n\nexport default declare(({ types: t, assertVersion }) => {\n assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-regenerator\",\n\n inherits: regeneratorTransform.default,\n\n visitor: {\n // We visit MemberExpression so that we always transform\n // regeneratorRuntime before babel-plugin-polyfill-regenerator.\n MemberExpression(path) {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.availableHelper?.(\"regeneratorRuntime\")) {\n // When using an older @babel/helpers version, fallback\n // to the old behavior.\n // TODO: Remove this in Babel 8.\n return;\n }\n }\n\n const obj = path.get(\"object\");\n if (obj.isIdentifier({ name: \"regeneratorRuntime\" })) {\n const helper = this.addHelper(\"regeneratorRuntime\") as\n | t.Identifier\n | t.ArrowFunctionExpression;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (\n // TODO: Remove this in Babel 8, it's necessary to\n // avoid the IIFE when using older Babel versions.\n t.isArrowFunctionExpression(helper)\n ) {\n obj.replaceWith(helper.body);\n return;\n }\n }\n\n obj.replaceWith(t.callExpression(helper, []));\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEA,IAAAC,qBAAA,GAAAD,OAAA;AAAyD,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE1C,IAAAC,0BAAO,EAAC,CAAC;EAAEC,KAAK,EAAEC,CAAC;EAAEC;AAAc,CAAC,KAAK;EACtDA,aAAa,CAGP,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,uBAAuB;IAE7BC,QAAQ,EAAEC,qBAAoB,CAACP,OAAO;IAEtCQ,OAAO,EAAE;MAGPC,gBAAgBA,CAACC,IAAI,EAAE;QACc;UAAA,IAAAC,qBAAA;UACjC,IAAI,GAAAA,qBAAA,GAAC,IAAI,CAACC,eAAe,aAApBD,qBAAA,CAAAE,IAAA,KAAI,EAAmB,oBAAoB,CAAC,GAAE;YAIjD;UACF;QACF;QAEA,MAAMC,GAAG,GAAGJ,IAAI,CAACK,GAAG,CAAC,QAAQ,CAAC;QAC9B,IAAID,GAAG,CAACE,YAAY,CAAC;UAAEX,IAAI,EAAE;QAAqB,CAAC,CAAC,EAAE;UACpD,MAAMY,MAAM,GAAG,IAAI,CAACC,SAAS,CAAC,oBAAoB,CAErB;UAEM;YACjC,IAGEf,CAAC,CAACgB,yBAAyB,CAACF,MAAM,CAAC,EACnC;cACAH,GAAG,CAACM,WAAW,CAACH,MAAM,CAACI,IAAI,CAAC;cAC5B;YACF;UACF;UAEAP,GAAG,CAACM,WAAW,CAACjB,CAAC,CAACmB,cAAc,CAACL,MAAM,EAAE,EAAE,CAAC,CAAC;QAC/C;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-regenerator/package.json b/node_modules/@babel/plugin-transform-regenerator/package.json index f473ff82..48a4f20f 100644 --- a/node_modules/@babel/plugin-transform-regenerator/package.json +++ b/node_modules/@babel/plugin-transform-regenerator/package.json @@ -2,7 +2,7 @@ "name": "@babel/plugin-transform-regenerator", "author": "The Babel Team (https://babel.dev/team)", "description": "Explode async and generator functions into a state machine.", - "version": "7.22.10", + "version": "7.23.3", "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-regenerator", "repository": { "type": "git", @@ -22,7 +22,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.10", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-reserved-words/README.md b/node_modules/@babel/plugin-transform-reserved-words/README.md index 72d8fb01..ff4b776e 100644 --- a/node_modules/@babel/plugin-transform-reserved-words/README.md +++ b/node_modules/@babel/plugin-transform-reserved-words/README.md @@ -2,7 +2,7 @@ > Ensure that no reserved words are used. -See our website [@babel/plugin-transform-reserved-words](https://babeljs.io/docs/en/babel-plugin-transform-reserved-words) for more information. +See our website [@babel/plugin-transform-reserved-words](https://babeljs.io/docs/babel-plugin-transform-reserved-words) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-reserved-words/lib/index.js b/node_modules/@babel/plugin-transform-reserved-words/lib/index.js index 020df652..6b3ef583 100644 --- a/node_modules/@babel/plugin-transform-reserved-words/lib/index.js +++ b/node_modules/@babel/plugin-transform-reserved-words/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-reserved-words", @@ -19,6 +19,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-reserved-words/lib/index.js.map b/node_modules/@babel/plugin-transform-reserved-words/lib/index.js.map index 5b525bcc..15257645 100644 --- a/node_modules/@babel/plugin-transform-reserved-words/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-reserved-words/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","name","visitor","BindingIdentifier|ReferencedIdentifier","path","t","isValidES3Identifier","node","scope","rename","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-reserved-words\",\n\n visitor: {\n \"BindingIdentifier|ReferencedIdentifier\"(path: NodePath<t.Identifier>) {\n if (!t.isValidES3Identifier(path.node.name)) {\n path.scope.rename(path.node.name);\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAG1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,0BAA0B;IAEhCC,OAAO,EAAE;MACP,wCAAwCC,CAACC,IAA4B,EAAE;QACrE,IAAI,CAACC,WAAC,CAACC,oBAAoB,CAACF,IAAI,CAACG,IAAI,CAACN,IAAI,CAAC,EAAE;UAC3CG,IAAI,CAACI,KAAK,CAACC,MAAM,CAACL,IAAI,CAACG,IAAI,CAACN,IAAI,CAAC;QACnC;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAS,OAAA,CAAAC,OAAA,GAAAd,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","name","visitor","BindingIdentifier|ReferencedIdentifier","path","t","isValidES3Identifier","node","scope","rename"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-reserved-words\",\n\n visitor: {\n \"BindingIdentifier|ReferencedIdentifier\"(path: NodePath<t.Identifier>) {\n if (!t.isValidES3Identifier(path.node.name)) {\n path.scope.rename(path.node.name);\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAG1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,0BAA0B;IAEhCC,OAAO,EAAE;MACP,wCAAwCC,CAACC,IAA4B,EAAE;QACrE,IAAI,CAACC,WAAC,CAACC,oBAAoB,CAACF,IAAI,CAACG,IAAI,CAACN,IAAI,CAAC,EAAE;UAC3CG,IAAI,CAACI,KAAK,CAACC,MAAM,CAACL,IAAI,CAACG,IAAI,CAACN,IAAI,CAAC;QACnC;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-reserved-words/package.json b/node_modules/@babel/plugin-transform-reserved-words/package.json index acfb172c..89ce0a9c 100644 --- a/node_modules/@babel/plugin-transform-reserved-words/package.json +++ b/node_modules/@babel/plugin-transform-reserved-words/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-reserved-words", - "version": "7.22.5", + "version": "7.23.3", "description": "Ensure that no reserved words are used.", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-shorthand-properties/README.md b/node_modules/@babel/plugin-transform-shorthand-properties/README.md index 165bd481..39f34291 100644 --- a/node_modules/@babel/plugin-transform-shorthand-properties/README.md +++ b/node_modules/@babel/plugin-transform-shorthand-properties/README.md @@ -2,7 +2,7 @@ > Compile ES2015 shorthand properties to ES5 -See our website [@babel/plugin-transform-shorthand-properties](https://babeljs.io/docs/en/babel-plugin-transform-shorthand-properties) for more information. +See our website [@babel/plugin-transform-shorthand-properties](https://babeljs.io/docs/babel-plugin-transform-shorthand-properties) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-shorthand-properties/lib/index.js b/node_modules/@babel/plugin-transform-shorthand-properties/lib/index.js index 0d3bc5cb..4fe6ce2a 100644 --- a/node_modules/@babel/plugin-transform-shorthand-properties/lib/index.js +++ b/node_modules/@babel/plugin-transform-shorthand-properties/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-shorthand-properties", @@ -46,6 +46,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-shorthand-properties/lib/index.js.map b/node_modules/@babel/plugin-transform-shorthand-properties/lib/index.js.map index 0ab017da..368993d6 100644 --- a/node_modules/@babel/plugin-transform-shorthand-properties/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-shorthand-properties/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","name","visitor","ObjectMethod","path","node","kind","func","t","functionExpression","params","body","generator","async","returnType","computedKey","toComputedKey","isStringLiteral","value","replaceWith","objectProperty","key","computed","ObjectProperty","shorthand","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-shorthand-properties\",\n\n visitor: {\n ObjectMethod(path) {\n const { node } = path;\n if (node.kind === \"method\") {\n const func = t.functionExpression(\n null,\n node.params,\n node.body,\n node.generator,\n node.async,\n );\n func.returnType = node.returnType;\n\n const computedKey = t.toComputedKey(node);\n if (t.isStringLiteral(computedKey, { value: \"__proto__\" })) {\n path.replaceWith(t.objectProperty(computedKey, func, true));\n } else {\n path.replaceWith(t.objectProperty(node.key, func, node.computed));\n }\n }\n },\n\n ObjectProperty(path) {\n const { node } = path;\n if (node.shorthand) {\n const computedKey = t.toComputedKey(node);\n if (t.isStringLiteral(computedKey, { value: \"__proto__\" })) {\n path.replaceWith(t.objectProperty(computedKey, node.value, true));\n } else {\n node.shorthand = false;\n }\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,gCAAgC;IAEtCC,OAAO,EAAE;MACPC,YAAYA,CAACC,IAAI,EAAE;QACjB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,IAAIC,IAAI,CAACC,IAAI,KAAK,QAAQ,EAAE;UAC1B,MAAMC,IAAI,GAAGC,WAAC,CAACC,kBAAkB,CAC/B,IAAI,EACJJ,IAAI,CAACK,MAAM,EACXL,IAAI,CAACM,IAAI,EACTN,IAAI,CAACO,SAAS,EACdP,IAAI,CAACQ,KACP,CAAC;UACDN,IAAI,CAACO,UAAU,GAAGT,IAAI,CAACS,UAAU;UAEjC,MAAMC,WAAW,GAAGP,WAAC,CAACQ,aAAa,CAACX,IAAI,CAAC;UACzC,IAAIG,WAAC,CAACS,eAAe,CAACF,WAAW,EAAE;YAAEG,KAAK,EAAE;UAAY,CAAC,CAAC,EAAE;YAC1Dd,IAAI,CAACe,WAAW,CAACX,WAAC,CAACY,cAAc,CAACL,WAAW,EAAER,IAAI,EAAE,IAAI,CAAC,CAAC;UAC7D,CAAC,MAAM;YACLH,IAAI,CAACe,WAAW,CAACX,WAAC,CAACY,cAAc,CAACf,IAAI,CAACgB,GAAG,EAAEd,IAAI,EAAEF,IAAI,CAACiB,QAAQ,CAAC,CAAC;UACnE;QACF;MACF,CAAC;MAEDC,cAAcA,CAACnB,IAAI,EAAE;QACnB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,IAAIC,IAAI,CAACmB,SAAS,EAAE;UAClB,MAAMT,WAAW,GAAGP,WAAC,CAACQ,aAAa,CAACX,IAAI,CAAC;UACzC,IAAIG,WAAC,CAACS,eAAe,CAACF,WAAW,EAAE;YAAEG,KAAK,EAAE;UAAY,CAAC,CAAC,EAAE;YAC1Dd,IAAI,CAACe,WAAW,CAACX,WAAC,CAACY,cAAc,CAACL,WAAW,EAAEV,IAAI,CAACa,KAAK,EAAE,IAAI,CAAC,CAAC;UACnE,CAAC,MAAM;YACLb,IAAI,CAACmB,SAAS,GAAG,KAAK;UACxB;QACF;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAA7B,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","name","visitor","ObjectMethod","path","node","kind","func","t","functionExpression","params","body","generator","async","returnType","computedKey","toComputedKey","isStringLiteral","value","replaceWith","objectProperty","key","computed","ObjectProperty","shorthand"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-shorthand-properties\",\n\n visitor: {\n ObjectMethod(path) {\n const { node } = path;\n if (node.kind === \"method\") {\n const func = t.functionExpression(\n null,\n node.params,\n node.body,\n node.generator,\n node.async,\n );\n func.returnType = node.returnType;\n\n const computedKey = t.toComputedKey(node);\n if (t.isStringLiteral(computedKey, { value: \"__proto__\" })) {\n path.replaceWith(t.objectProperty(computedKey, func, true));\n } else {\n path.replaceWith(t.objectProperty(node.key, func, node.computed));\n }\n }\n },\n\n ObjectProperty(path) {\n const { node } = path;\n if (node.shorthand) {\n const computedKey = t.toComputedKey(node);\n if (t.isStringLiteral(computedKey, { value: \"__proto__\" })) {\n path.replaceWith(t.objectProperty(computedKey, node.value, true));\n } else {\n node.shorthand = false;\n }\n }\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,gCAAgC;IAEtCC,OAAO,EAAE;MACPC,YAAYA,CAACC,IAAI,EAAE;QACjB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,IAAIC,IAAI,CAACC,IAAI,KAAK,QAAQ,EAAE;UAC1B,MAAMC,IAAI,GAAGC,WAAC,CAACC,kBAAkB,CAC/B,IAAI,EACJJ,IAAI,CAACK,MAAM,EACXL,IAAI,CAACM,IAAI,EACTN,IAAI,CAACO,SAAS,EACdP,IAAI,CAACQ,KACP,CAAC;UACDN,IAAI,CAACO,UAAU,GAAGT,IAAI,CAACS,UAAU;UAEjC,MAAMC,WAAW,GAAGP,WAAC,CAACQ,aAAa,CAACX,IAAI,CAAC;UACzC,IAAIG,WAAC,CAACS,eAAe,CAACF,WAAW,EAAE;YAAEG,KAAK,EAAE;UAAY,CAAC,CAAC,EAAE;YAC1Dd,IAAI,CAACe,WAAW,CAACX,WAAC,CAACY,cAAc,CAACL,WAAW,EAAER,IAAI,EAAE,IAAI,CAAC,CAAC;UAC7D,CAAC,MAAM;YACLH,IAAI,CAACe,WAAW,CAACX,WAAC,CAACY,cAAc,CAACf,IAAI,CAACgB,GAAG,EAAEd,IAAI,EAAEF,IAAI,CAACiB,QAAQ,CAAC,CAAC;UACnE;QACF;MACF,CAAC;MAEDC,cAAcA,CAACnB,IAAI,EAAE;QACnB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,IAAIC,IAAI,CAACmB,SAAS,EAAE;UAClB,MAAMT,WAAW,GAAGP,WAAC,CAACQ,aAAa,CAACX,IAAI,CAAC;UACzC,IAAIG,WAAC,CAACS,eAAe,CAACF,WAAW,EAAE;YAAEG,KAAK,EAAE;UAAY,CAAC,CAAC,EAAE;YAC1Dd,IAAI,CAACe,WAAW,CAACX,WAAC,CAACY,cAAc,CAACL,WAAW,EAAEV,IAAI,CAACa,KAAK,EAAE,IAAI,CAAC,CAAC;UACnE,CAAC,MAAM;YACLb,IAAI,CAACmB,SAAS,GAAG,KAAK;UACxB;QACF;MACF;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-shorthand-properties/package.json b/node_modules/@babel/plugin-transform-shorthand-properties/package.json index 587027f4..964d64e9 100644 --- a/node_modules/@babel/plugin-transform-shorthand-properties/package.json +++ b/node_modules/@babel/plugin-transform-shorthand-properties/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-shorthand-properties", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile ES2015 shorthand properties to ES5", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/plugin-transform-spread/README.md b/node_modules/@babel/plugin-transform-spread/README.md index 49527482..c964617f 100644 --- a/node_modules/@babel/plugin-transform-spread/README.md +++ b/node_modules/@babel/plugin-transform-spread/README.md @@ -2,7 +2,7 @@ > Compile ES2015 spread to ES5 -See our website [@babel/plugin-transform-spread](https://babeljs.io/docs/en/babel-plugin-transform-spread) for more information. +See our website [@babel/plugin-transform-spread](https://babeljs.io/docs/babel-plugin-transform-spread) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-spread/lib/index.js b/node_modules/@babel/plugin-transform-spread/lib/index.js index 52859610..f996f731 100644 --- a/node_modules/@babel/plugin-transform-spread/lib/index.js +++ b/node_modules/@babel/plugin-transform-spread/lib/index.js @@ -7,7 +7,7 @@ exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _helperSkipTransparentExpressionWrappers = require("@babel/helper-skip-transparent-expression-wrappers"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _options$allowArrayLi; api.assertVersion(7); const iterableIsArray = (_api$assumption = api.assumption("iterableIsArray")) != null ? _api$assumption : options.loose; @@ -140,6 +140,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-spread/lib/index.js.map b/node_modules/@babel/plugin-transform-spread/lib/index.js.map index d1fc2f44..208553fd 100644 --- a/node_modules/@babel/plugin-transform-spread/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-spread/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_helperSkipTransparentExpressionWrappers","_core","_default","declare","api","options","_api$assumption","_options$allowArrayLi","assertVersion","iterableIsArray","assumption","loose","arrayLikeIsIterable","allowArrayLike","getSpreadLiteral","spread","scope","t","isIdentifier","argument","name","toArray","hasHole","elements","some","el","hasSpread","nodes","i","length","isSpreadElement","push","_props","arrayExpression","build","props","file","prop","spreadLiteral","isArrayExpression","callExpression","addHelper","visitor","ArrayExpression","path","node","first","replaceWith","shift","memberExpression","identifier","CallExpression","args","arguments","calleePath","skipTransparentExprWrappers","get","isSuper","buildCodeFrameError","contextLiteral","buildUndefinedNode","callee","isMemberExpression","temp","maybeGenerateMemoised","object","assignmentExpression","cloneNode","thisExpression","unshift","NewExpression","hub","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport type { File } from \"@babel/core\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\n\ntype ListElement = t.SpreadElement | t.Expression;\n\nexport interface Options {\n allowArrayLike?: boolean;\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const iterableIsArray = api.assumption(\"iterableIsArray\") ?? options.loose;\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\");\n\n function getSpreadLiteral(\n spread: t.SpreadElement,\n scope: Scope,\n ): t.Expression {\n if (\n iterableIsArray &&\n !t.isIdentifier(spread.argument, { name: \"arguments\" })\n ) {\n return spread.argument;\n } else {\n return scope.toArray(spread.argument, true, arrayLikeIsIterable);\n }\n }\n\n function hasHole(spread: t.ArrayExpression): boolean {\n return spread.elements.some(el => el === null);\n }\n\n function hasSpread(nodes: Array<t.Node>): boolean {\n for (let i = 0; i < nodes.length; i++) {\n if (t.isSpreadElement(nodes[i])) {\n return true;\n }\n }\n return false;\n }\n\n function push(_props: Array<ListElement>, nodes: Array<t.Expression>) {\n if (!_props.length) return _props;\n nodes.push(t.arrayExpression(_props));\n return [];\n }\n\n function build(\n props: Array<ListElement>,\n scope: Scope,\n file: File,\n ): t.Expression[] {\n const nodes: Array<t.Expression> = [];\n let _props: Array<ListElement> = [];\n\n for (const prop of props) {\n if (t.isSpreadElement(prop)) {\n _props = push(_props, nodes);\n let spreadLiteral = getSpreadLiteral(prop, scope);\n\n if (t.isArrayExpression(spreadLiteral) && hasHole(spreadLiteral)) {\n spreadLiteral = t.callExpression(\n file.addHelper(\n process.env.BABEL_8_BREAKING\n ? \"arrayLikeToArray\"\n : \"arrayWithoutHoles\",\n ),\n [spreadLiteral],\n );\n }\n\n nodes.push(spreadLiteral);\n } else {\n _props.push(prop);\n }\n }\n\n push(_props, nodes);\n\n return nodes;\n }\n\n return {\n name: \"transform-spread\",\n\n visitor: {\n ArrayExpression(path): void {\n const { node, scope } = path;\n const elements = node.elements;\n if (!hasSpread(elements)) return;\n\n const nodes = build(elements, scope, this.file);\n let first = nodes[0];\n\n // If there is only one element in the ArrayExpression and\n // the element was transformed (Array.prototype.slice.call or toConsumableArray)\n // we know that the transformed code already takes care of cloning the array.\n // So we can simply return that element.\n if (\n nodes.length === 1 &&\n first !== (elements[0] as t.SpreadElement).argument\n ) {\n path.replaceWith(first);\n return;\n }\n\n // If the first element is a ArrayExpression we can directly call\n // concat on it.\n // `[..].concat(..)`\n // If not then we have to use `[].concat(arr)` and not `arr.concat`\n // because `arr` could be extended/modified (e.g. Immutable) and we do not know exactly\n // what concat would produce.\n if (!t.isArrayExpression(first)) {\n first = t.arrayExpression([]);\n } else {\n nodes.shift();\n }\n\n path.replaceWith(\n t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n ),\n );\n },\n CallExpression(path): void {\n const { node, scope } = path;\n\n const args = node.arguments as Array<ListElement>;\n if (!hasSpread(args)) return;\n const calleePath = skipTransparentExprWrappers(\n path.get(\"callee\") as NodePath<t.Expression>,\n );\n if (calleePath.isSuper()) {\n // NOTE: spread and classes have almost the same compat data, so this is very unlikely to happen in practice.\n throw path.buildCodeFrameError(\n \"It's not possible to compile spread arguments in `super()` without compiling classes.\\n\" +\n \"Please add '@babel/plugin-transform-classes' to your Babel configuration.\",\n );\n }\n let contextLiteral: t.Expression | t.Super = scope.buildUndefinedNode();\n node.arguments = [];\n\n let nodes: t.Expression[];\n if (\n args.length === 1 &&\n t.isIdentifier((args[0] as t.SpreadElement).argument, {\n name: \"arguments\",\n })\n ) {\n nodes = [(args[0] as t.SpreadElement).argument];\n } else {\n nodes = build(args, scope, this.file);\n }\n\n const first = nodes.shift();\n if (nodes.length) {\n node.arguments.push(\n t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n ),\n );\n } else {\n node.arguments.push(first);\n }\n\n const callee = calleePath.node as t.MemberExpression;\n\n if (t.isMemberExpression(callee)) {\n const temp = scope.maybeGenerateMemoised(callee.object);\n if (temp) {\n callee.object = t.assignmentExpression(\n \"=\",\n temp,\n // object must not be Super when `temp` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n callee.object as t.Expression,\n );\n contextLiteral = temp;\n } else {\n contextLiteral = t.cloneNode(callee.object);\n }\n }\n\n // We use the original callee here, to preserve any types/parentheses\n node.callee = t.memberExpression(\n node.callee as t.Expression,\n t.identifier(\"apply\"),\n );\n if (t.isSuper(contextLiteral)) {\n contextLiteral = t.thisExpression();\n }\n\n node.arguments.unshift(t.cloneNode(contextLiteral));\n },\n\n NewExpression(path): void {\n const { node, scope } = path;\n if (!hasSpread(node.arguments)) return;\n\n const nodes = build(\n node.arguments as Array<ListElement>,\n scope,\n this.file,\n );\n\n const first = nodes.shift();\n\n let args: t.Expression;\n if (nodes.length) {\n args = t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n );\n } else {\n args = first;\n }\n\n path.replaceWith(\n t.callExpression(path.hub.addHelper(\"construct\"), [\n node.callee as t.Expression,\n args,\n ]),\n );\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_helperSkipTransparentExpressionWrappers","_core","_default","exports","default","declare","api","options","_api$assumption","_options$allowArrayLi","assertVersion","iterableIsArray","assumption","loose","arrayLikeIsIterable","allowArrayLike","getSpreadLiteral","spread","scope","t","isIdentifier","argument","name","toArray","hasHole","elements","some","el","hasSpread","nodes","i","length","isSpreadElement","push","_props","arrayExpression","build","props","file","prop","spreadLiteral","isArrayExpression","callExpression","addHelper","visitor","ArrayExpression","path","node","first","replaceWith","shift","memberExpression","identifier","CallExpression","args","arguments","calleePath","skipTransparentExprWrappers","get","isSuper","buildCodeFrameError","contextLiteral","buildUndefinedNode","callee","isMemberExpression","temp","maybeGenerateMemoised","object","assignmentExpression","cloneNode","thisExpression","unshift","NewExpression","hub"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport type { File } from \"@babel/core\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\n\ntype ListElement = t.SpreadElement | t.Expression;\n\nexport interface Options {\n allowArrayLike?: boolean;\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const iterableIsArray = api.assumption(\"iterableIsArray\") ?? options.loose;\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\");\n\n function getSpreadLiteral(\n spread: t.SpreadElement,\n scope: Scope,\n ): t.Expression {\n if (\n iterableIsArray &&\n !t.isIdentifier(spread.argument, { name: \"arguments\" })\n ) {\n return spread.argument;\n } else {\n return scope.toArray(spread.argument, true, arrayLikeIsIterable);\n }\n }\n\n function hasHole(spread: t.ArrayExpression): boolean {\n return spread.elements.some(el => el === null);\n }\n\n function hasSpread(nodes: Array<t.Node>): boolean {\n for (let i = 0; i < nodes.length; i++) {\n if (t.isSpreadElement(nodes[i])) {\n return true;\n }\n }\n return false;\n }\n\n function push(_props: Array<ListElement>, nodes: Array<t.Expression>) {\n if (!_props.length) return _props;\n nodes.push(t.arrayExpression(_props));\n return [];\n }\n\n function build(\n props: Array<ListElement>,\n scope: Scope,\n file: File,\n ): t.Expression[] {\n const nodes: Array<t.Expression> = [];\n let _props: Array<ListElement> = [];\n\n for (const prop of props) {\n if (t.isSpreadElement(prop)) {\n _props = push(_props, nodes);\n let spreadLiteral = getSpreadLiteral(prop, scope);\n\n if (t.isArrayExpression(spreadLiteral) && hasHole(spreadLiteral)) {\n spreadLiteral = t.callExpression(\n file.addHelper(\n process.env.BABEL_8_BREAKING\n ? \"arrayLikeToArray\"\n : \"arrayWithoutHoles\",\n ),\n [spreadLiteral],\n );\n }\n\n nodes.push(spreadLiteral);\n } else {\n _props.push(prop);\n }\n }\n\n push(_props, nodes);\n\n return nodes;\n }\n\n return {\n name: \"transform-spread\",\n\n visitor: {\n ArrayExpression(path): void {\n const { node, scope } = path;\n const elements = node.elements;\n if (!hasSpread(elements)) return;\n\n const nodes = build(elements, scope, this.file);\n let first = nodes[0];\n\n // If there is only one element in the ArrayExpression and\n // the element was transformed (Array.prototype.slice.call or toConsumableArray)\n // we know that the transformed code already takes care of cloning the array.\n // So we can simply return that element.\n if (\n nodes.length === 1 &&\n first !== (elements[0] as t.SpreadElement).argument\n ) {\n path.replaceWith(first);\n return;\n }\n\n // If the first element is a ArrayExpression we can directly call\n // concat on it.\n // `[..].concat(..)`\n // If not then we have to use `[].concat(arr)` and not `arr.concat`\n // because `arr` could be extended/modified (e.g. Immutable) and we do not know exactly\n // what concat would produce.\n if (!t.isArrayExpression(first)) {\n first = t.arrayExpression([]);\n } else {\n nodes.shift();\n }\n\n path.replaceWith(\n t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n ),\n );\n },\n CallExpression(path): void {\n const { node, scope } = path;\n\n const args = node.arguments as Array<ListElement>;\n if (!hasSpread(args)) return;\n const calleePath = skipTransparentExprWrappers(\n path.get(\"callee\") as NodePath<t.Expression>,\n );\n if (calleePath.isSuper()) {\n // NOTE: spread and classes have almost the same compat data, so this is very unlikely to happen in practice.\n throw path.buildCodeFrameError(\n \"It's not possible to compile spread arguments in `super()` without compiling classes.\\n\" +\n \"Please add '@babel/plugin-transform-classes' to your Babel configuration.\",\n );\n }\n let contextLiteral: t.Expression | t.Super = scope.buildUndefinedNode();\n node.arguments = [];\n\n let nodes: t.Expression[];\n if (\n args.length === 1 &&\n t.isIdentifier((args[0] as t.SpreadElement).argument, {\n name: \"arguments\",\n })\n ) {\n nodes = [(args[0] as t.SpreadElement).argument];\n } else {\n nodes = build(args, scope, this.file);\n }\n\n const first = nodes.shift();\n if (nodes.length) {\n node.arguments.push(\n t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n ),\n );\n } else {\n node.arguments.push(first);\n }\n\n const callee = calleePath.node as t.MemberExpression;\n\n if (t.isMemberExpression(callee)) {\n const temp = scope.maybeGenerateMemoised(callee.object);\n if (temp) {\n callee.object = t.assignmentExpression(\n \"=\",\n temp,\n // object must not be Super when `temp` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n callee.object as t.Expression,\n );\n contextLiteral = temp;\n } else {\n contextLiteral = t.cloneNode(callee.object);\n }\n }\n\n // We use the original callee here, to preserve any types/parentheses\n node.callee = t.memberExpression(\n node.callee as t.Expression,\n t.identifier(\"apply\"),\n );\n if (t.isSuper(contextLiteral)) {\n contextLiteral = t.thisExpression();\n }\n\n node.arguments.unshift(t.cloneNode(contextLiteral));\n },\n\n NewExpression(path): void {\n const { node, scope } = path;\n if (!hasSpread(node.arguments)) return;\n\n const nodes = build(\n node.arguments as Array<ListElement>,\n scope,\n this.file,\n );\n\n const first = nodes.shift();\n\n let args: t.Expression;\n if (nodes.length) {\n args = t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n );\n } else {\n args = first;\n }\n\n path.replaceWith(\n t.callExpression(path.hub.addHelper(\"construct\"), [\n node.callee as t.Expression,\n args,\n ]),\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,wCAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAF,OAAA;AAAyC,IAAAG,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAU1B,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAAA,IAAAC,eAAA,EAAAC,qBAAA;EAChDH,GAAG,CAACI,aAAa,CAGX,CACN,CAAC;EAED,MAAMC,eAAe,IAAAH,eAAA,GAAGF,GAAG,CAACM,UAAU,CAAC,iBAAiB,CAAC,YAAAJ,eAAA,GAAID,OAAO,CAACM,KAAK;EAC1E,MAAMC,mBAAmB,IAAAL,qBAAA,GACvBF,OAAO,CAACQ,cAAc,YAAAN,qBAAA,GAAIH,GAAG,CAACM,UAAU,CAAC,qBAAqB,CAAC;EAEjE,SAASI,gBAAgBA,CACvBC,MAAuB,EACvBC,KAAY,EACE;IACd,IACEP,eAAe,IACf,CAACQ,WAAC,CAACC,YAAY,CAACH,MAAM,CAACI,QAAQ,EAAE;MAAEC,IAAI,EAAE;IAAY,CAAC,CAAC,EACvD;MACA,OAAOL,MAAM,CAACI,QAAQ;IACxB,CAAC,MAAM;MACL,OAAOH,KAAK,CAACK,OAAO,CAACN,MAAM,CAACI,QAAQ,EAAE,IAAI,EAAEP,mBAAmB,CAAC;IAClE;EACF;EAEA,SAASU,OAAOA,CAACP,MAAyB,EAAW;IACnD,OAAOA,MAAM,CAACQ,QAAQ,CAACC,IAAI,CAACC,EAAE,IAAIA,EAAE,KAAK,IAAI,CAAC;EAChD;EAEA,SAASC,SAASA,CAACC,KAAoB,EAAW;IAChD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,KAAK,CAACE,MAAM,EAAED,CAAC,EAAE,EAAE;MACrC,IAAIX,WAAC,CAACa,eAAe,CAACH,KAAK,CAACC,CAAC,CAAC,CAAC,EAAE;QAC/B,OAAO,IAAI;MACb;IACF;IACA,OAAO,KAAK;EACd;EAEA,SAASG,IAAIA,CAACC,MAA0B,EAAEL,KAA0B,EAAE;IACpE,IAAI,CAACK,MAAM,CAACH,MAAM,EAAE,OAAOG,MAAM;IACjCL,KAAK,CAACI,IAAI,CAACd,WAAC,CAACgB,eAAe,CAACD,MAAM,CAAC,CAAC;IACrC,OAAO,EAAE;EACX;EAEA,SAASE,KAAKA,CACZC,KAAyB,EACzBnB,KAAY,EACZoB,IAAU,EACM;IAChB,MAAMT,KAA0B,GAAG,EAAE;IACrC,IAAIK,MAA0B,GAAG,EAAE;IAEnC,KAAK,MAAMK,IAAI,IAAIF,KAAK,EAAE;MACxB,IAAIlB,WAAC,CAACa,eAAe,CAACO,IAAI,CAAC,EAAE;QAC3BL,MAAM,GAAGD,IAAI,CAACC,MAAM,EAAEL,KAAK,CAAC;QAC5B,IAAIW,aAAa,GAAGxB,gBAAgB,CAACuB,IAAI,EAAErB,KAAK,CAAC;QAEjD,IAAIC,WAAC,CAACsB,iBAAiB,CAACD,aAAa,CAAC,IAAIhB,OAAO,CAACgB,aAAa,CAAC,EAAE;UAChEA,aAAa,GAAGrB,WAAC,CAACuB,cAAc,CAC9BJ,IAAI,CAACK,SAAS,CAGR,mBACN,CAAC,EACD,CAACH,aAAa,CAChB,CAAC;QACH;QAEAX,KAAK,CAACI,IAAI,CAACO,aAAa,CAAC;MAC3B,CAAC,MAAM;QACLN,MAAM,CAACD,IAAI,CAACM,IAAI,CAAC;MACnB;IACF;IAEAN,IAAI,CAACC,MAAM,EAAEL,KAAK,CAAC;IAEnB,OAAOA,KAAK;EACd;EAEA,OAAO;IACLP,IAAI,EAAE,kBAAkB;IAExBsB,OAAO,EAAE;MACPC,eAAeA,CAACC,IAAI,EAAQ;QAC1B,MAAM;UAAEC,IAAI;UAAE7B;QAAM,CAAC,GAAG4B,IAAI;QAC5B,MAAMrB,QAAQ,GAAGsB,IAAI,CAACtB,QAAQ;QAC9B,IAAI,CAACG,SAAS,CAACH,QAAQ,CAAC,EAAE;QAE1B,MAAMI,KAAK,GAAGO,KAAK,CAACX,QAAQ,EAAEP,KAAK,EAAE,IAAI,CAACoB,IAAI,CAAC;QAC/C,IAAIU,KAAK,GAAGnB,KAAK,CAAC,CAAC,CAAC;QAMpB,IACEA,KAAK,CAACE,MAAM,KAAK,CAAC,IAClBiB,KAAK,KAAMvB,QAAQ,CAAC,CAAC,CAAC,CAAqBJ,QAAQ,EACnD;UACAyB,IAAI,CAACG,WAAW,CAACD,KAAK,CAAC;UACvB;QACF;QAQA,IAAI,CAAC7B,WAAC,CAACsB,iBAAiB,CAACO,KAAK,CAAC,EAAE;UAC/BA,KAAK,GAAG7B,WAAC,CAACgB,eAAe,CAAC,EAAE,CAAC;QAC/B,CAAC,MAAM;UACLN,KAAK,CAACqB,KAAK,CAAC,CAAC;QACf;QAEAJ,IAAI,CAACG,WAAW,CACd9B,WAAC,CAACuB,cAAc,CACdvB,WAAC,CAACgC,gBAAgB,CAACH,KAAK,EAAE7B,WAAC,CAACiC,UAAU,CAAC,QAAQ,CAAC,CAAC,EACjDvB,KACF,CACF,CAAC;MACH,CAAC;MACDwB,cAAcA,CAACP,IAAI,EAAQ;QACzB,MAAM;UAAEC,IAAI;UAAE7B;QAAM,CAAC,GAAG4B,IAAI;QAE5B,MAAMQ,IAAI,GAAGP,IAAI,CAACQ,SAA+B;QACjD,IAAI,CAAC3B,SAAS,CAAC0B,IAAI,CAAC,EAAE;QACtB,MAAME,UAAU,GAAG,IAAAC,oEAA2B,EAC5CX,IAAI,CAACY,GAAG,CAAC,QAAQ,CACnB,CAAC;QACD,IAAIF,UAAU,CAACG,OAAO,CAAC,CAAC,EAAE;UAExB,MAAMb,IAAI,CAACc,mBAAmB,CAC5B,yFAAyF,GACvF,2EACJ,CAAC;QACH;QACA,IAAIC,cAAsC,GAAG3C,KAAK,CAAC4C,kBAAkB,CAAC,CAAC;QACvEf,IAAI,CAACQ,SAAS,GAAG,EAAE;QAEnB,IAAI1B,KAAqB;QACzB,IACEyB,IAAI,CAACvB,MAAM,KAAK,CAAC,IACjBZ,WAAC,CAACC,YAAY,CAAEkC,IAAI,CAAC,CAAC,CAAC,CAAqBjC,QAAQ,EAAE;UACpDC,IAAI,EAAE;QACR,CAAC,CAAC,EACF;UACAO,KAAK,GAAG,CAAEyB,IAAI,CAAC,CAAC,CAAC,CAAqBjC,QAAQ,CAAC;QACjD,CAAC,MAAM;UACLQ,KAAK,GAAGO,KAAK,CAACkB,IAAI,EAAEpC,KAAK,EAAE,IAAI,CAACoB,IAAI,CAAC;QACvC;QAEA,MAAMU,KAAK,GAAGnB,KAAK,CAACqB,KAAK,CAAC,CAAC;QAC3B,IAAIrB,KAAK,CAACE,MAAM,EAAE;UAChBgB,IAAI,CAACQ,SAAS,CAACtB,IAAI,CACjBd,WAAC,CAACuB,cAAc,CACdvB,WAAC,CAACgC,gBAAgB,CAACH,KAAK,EAAE7B,WAAC,CAACiC,UAAU,CAAC,QAAQ,CAAC,CAAC,EACjDvB,KACF,CACF,CAAC;QACH,CAAC,MAAM;UACLkB,IAAI,CAACQ,SAAS,CAACtB,IAAI,CAACe,KAAK,CAAC;QAC5B;QAEA,MAAMe,MAAM,GAAGP,UAAU,CAACT,IAA0B;QAEpD,IAAI5B,WAAC,CAAC6C,kBAAkB,CAACD,MAAM,CAAC,EAAE;UAChC,MAAME,IAAI,GAAG/C,KAAK,CAACgD,qBAAqB,CAACH,MAAM,CAACI,MAAM,CAAC;UACvD,IAAIF,IAAI,EAAE;YACRF,MAAM,CAACI,MAAM,GAAGhD,WAAC,CAACiD,oBAAoB,CACpC,GAAG,EACHH,IAAI,EAGJF,MAAM,CAACI,MACT,CAAC;YACDN,cAAc,GAAGI,IAAI;UACvB,CAAC,MAAM;YACLJ,cAAc,GAAG1C,WAAC,CAACkD,SAAS,CAACN,MAAM,CAACI,MAAM,CAAC;UAC7C;QACF;QAGApB,IAAI,CAACgB,MAAM,GAAG5C,WAAC,CAACgC,gBAAgB,CAC9BJ,IAAI,CAACgB,MAAM,EACX5C,WAAC,CAACiC,UAAU,CAAC,OAAO,CACtB,CAAC;QACD,IAAIjC,WAAC,CAACwC,OAAO,CAACE,cAAc,CAAC,EAAE;UAC7BA,cAAc,GAAG1C,WAAC,CAACmD,cAAc,CAAC,CAAC;QACrC;QAEAvB,IAAI,CAACQ,SAAS,CAACgB,OAAO,CAACpD,WAAC,CAACkD,SAAS,CAACR,cAAc,CAAC,CAAC;MACrD,CAAC;MAEDW,aAAaA,CAAC1B,IAAI,EAAQ;QACxB,MAAM;UAAEC,IAAI;UAAE7B;QAAM,CAAC,GAAG4B,IAAI;QAC5B,IAAI,CAAClB,SAAS,CAACmB,IAAI,CAACQ,SAAS,CAAC,EAAE;QAEhC,MAAM1B,KAAK,GAAGO,KAAK,CACjBW,IAAI,CAACQ,SAAS,EACdrC,KAAK,EACL,IAAI,CAACoB,IACP,CAAC;QAED,MAAMU,KAAK,GAAGnB,KAAK,CAACqB,KAAK,CAAC,CAAC;QAE3B,IAAII,IAAkB;QACtB,IAAIzB,KAAK,CAACE,MAAM,EAAE;UAChBuB,IAAI,GAAGnC,WAAC,CAACuB,cAAc,CACrBvB,WAAC,CAACgC,gBAAgB,CAACH,KAAK,EAAE7B,WAAC,CAACiC,UAAU,CAAC,QAAQ,CAAC,CAAC,EACjDvB,KACF,CAAC;QACH,CAAC,MAAM;UACLyB,IAAI,GAAGN,KAAK;QACd;QAEAF,IAAI,CAACG,WAAW,CACd9B,WAAC,CAACuB,cAAc,CAACI,IAAI,CAAC2B,GAAG,CAAC9B,SAAS,CAAC,WAAW,CAAC,EAAE,CAChDI,IAAI,CAACgB,MAAM,EACXT,IAAI,CACL,CACH,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-spread/package.json b/node_modules/@babel/plugin-transform-spread/package.json index ae11eda8..d0522c1e 100644 --- a/node_modules/@babel/plugin-transform-spread/package.json +++ b/node_modules/@babel/plugin-transform-spread/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-spread", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile ES2015 spread to ES5", "repository": { "type": "git", @@ -23,7 +23,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-spread", diff --git a/node_modules/@babel/plugin-transform-sticky-regex/README.md b/node_modules/@babel/plugin-transform-sticky-regex/README.md index d0a46296..16c9fe29 100644 --- a/node_modules/@babel/plugin-transform-sticky-regex/README.md +++ b/node_modules/@babel/plugin-transform-sticky-regex/README.md @@ -2,7 +2,7 @@ > Compile ES2015 sticky regex to an ES5 RegExp constructor -See our website [@babel/plugin-transform-sticky-regex](https://babeljs.io/docs/en/babel-plugin-transform-sticky-regex) for more information. +See our website [@babel/plugin-transform-sticky-regex](https://babeljs.io/docs/babel-plugin-transform-sticky-regex) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-sticky-regex/lib/index.js b/node_modules/@babel/plugin-transform-sticky-regex/lib/index.js index 8ac9d510..c5b72348 100644 --- a/node_modules/@babel/plugin-transform-sticky-regex/lib/index.js +++ b/node_modules/@babel/plugin-transform-sticky-regex/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-sticky-regex", @@ -21,6 +21,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-sticky-regex/lib/index.js.map b/node_modules/@babel/plugin-transform-sticky-regex/lib/index.js.map index e3b2289d..d5c3420e 100644 --- a/node_modules/@babel/plugin-transform-sticky-regex/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-sticky-regex/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","name","visitor","RegExpLiteral","path","node","flags","includes","replaceWith","t","newExpression","identifier","stringLiteral","pattern","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-sticky-regex\",\n\n visitor: {\n RegExpLiteral(path) {\n const { node } = path;\n if (!node.flags.includes(\"y\")) return;\n\n path.replaceWith(\n t.newExpression(t.identifier(\"RegExp\"), [\n t.stringLiteral(node.pattern),\n t.stringLiteral(node.flags),\n ]),\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO;IACLC,IAAI,EAAE,wBAAwB;IAE9BC,OAAO,EAAE;MACPC,aAAaA,CAACC,IAAI,EAAE;QAClB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,IAAI,CAACC,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAE/BH,IAAI,CAACI,WAAW,CACdC,WAAC,CAACC,aAAa,CAACD,WAAC,CAACE,UAAU,CAAC,QAAQ,CAAC,EAAE,CACtCF,WAAC,CAACG,aAAa,CAACP,IAAI,CAACQ,OAAO,CAAC,EAC7BJ,WAAC,CAACG,aAAa,CAACP,IAAI,CAACC,KAAK,CAAC,CAC5B,CACH,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC;AAAAQ,OAAA,CAAAC,OAAA,GAAAlB,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","name","visitor","RegExpLiteral","path","node","flags","includes","replaceWith","t","newExpression","identifier","stringLiteral","pattern"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-sticky-regex\",\n\n visitor: {\n RegExpLiteral(path) {\n const { node } = path;\n if (!node.flags.includes(\"y\")) return;\n\n path.replaceWith(\n t.newExpression(t.identifier(\"RegExp\"), [\n t.stringLiteral(node.pattern),\n t.stringLiteral(node.flags),\n ]),\n );\n },\n },\n };\n});\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAAyC,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE1B,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO;IACLC,IAAI,EAAE,wBAAwB;IAE9BC,OAAO,EAAE;MACPC,aAAaA,CAACC,IAAI,EAAE;QAClB,MAAM;UAAEC;QAAK,CAAC,GAAGD,IAAI;QACrB,IAAI,CAACC,IAAI,CAACC,KAAK,CAACC,QAAQ,CAAC,GAAG,CAAC,EAAE;QAE/BH,IAAI,CAACI,WAAW,CACdC,WAAC,CAACC,aAAa,CAACD,WAAC,CAACE,UAAU,CAAC,QAAQ,CAAC,EAAE,CACtCF,WAAC,CAACG,aAAa,CAACP,IAAI,CAACQ,OAAO,CAAC,EAC7BJ,WAAC,CAACG,aAAa,CAACP,IAAI,CAACC,KAAK,CAAC,CAC5B,CACH,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-sticky-regex/package.json b/node_modules/@babel/plugin-transform-sticky-regex/package.json index 007cb777..102052b4 100644 --- a/node_modules/@babel/plugin-transform-sticky-regex/package.json +++ b/node_modules/@babel/plugin-transform-sticky-regex/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-sticky-regex", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile ES2015 sticky regex to an ES5 RegExp constructor", "repository": { "type": "git", @@ -22,7 +22,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-sticky-regex", diff --git a/node_modules/@babel/plugin-transform-template-literals/README.md b/node_modules/@babel/plugin-transform-template-literals/README.md index f0176f2a..c4441a16 100644 --- a/node_modules/@babel/plugin-transform-template-literals/README.md +++ b/node_modules/@babel/plugin-transform-template-literals/README.md @@ -2,7 +2,7 @@ > Compile ES2015 template literals to ES5 -See our website [@babel/plugin-transform-template-literals](https://babeljs.io/docs/en/babel-plugin-transform-template-literals) for more information. +See our website [@babel/plugin-transform-template-literals](https://babeljs.io/docs/babel-plugin-transform-template-literals) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-template-literals/lib/index.js b/node_modules/@babel/plugin-transform-template-literals/lib/index.js index 23456925..62d05a0d 100644 --- a/node_modules/@babel/plugin-transform-template-literals/lib/index.js +++ b/node_modules/@babel/plugin-transform-template-literals/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { var _api$assumption, _api$assumption2; api.assertVersion(7); const ignoreToPrimitiveHint = (_api$assumption = api.assumption("ignoreToPrimitiveHint")) != null ? _api$assumption : options.loose; @@ -104,6 +104,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-template-literals/lib/index.js.map b/node_modules/@babel/plugin-transform-template-literals/lib/index.js.map index 9c07c7f1..583b6b57 100644 --- a/node_modules/@babel/plugin-transform-template-literals/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-template-literals/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","ignoreToPrimitiveHint","assumption","loose","mutableTemplateObject","helperName","buildConcatCallExpressions","items","avail","reduce","left","right","canBeInserted","t","isLiteral","isCallExpression","arguments","push","callExpression","memberExpression","identifier","name","visitor","TaggedTemplateExpression","path","node","quasi","strings","raws","isStringsRawEqual","elem","quasis","raw","cooked","value","scope","buildUndefinedNode","stringLiteral","helperArgs","arrayExpression","tmp","generateUidIdentifier","getProgramParent","id","cloneNode","replaceWith","tag","template","expression","ast","addHelper","expressions","TemplateLiteral","parent","type","nodes","get","index","length","expr","isStringLiteral","unshift","root","i","binaryExpression","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const ignoreToPrimitiveHint =\n api.assumption(\"ignoreToPrimitiveHint\") ?? options.loose;\n const mutableTemplateObject =\n api.assumption(\"mutableTemplateObject\") ?? options.loose;\n\n let helperName = \"taggedTemplateLiteral\";\n if (mutableTemplateObject) helperName += \"Loose\";\n\n /**\n * This function groups the objects into multiple calls to `.concat()` in\n * order to preserve execution order of the primitive conversion, e.g.\n *\n * \"\".concat(obj.foo, \"foo\", obj2.foo, \"foo2\")\n *\n * would evaluate both member expressions _first_ then, `concat` will\n * convert each one to a primitive, whereas\n *\n * \"\".concat(obj.foo, \"foo\").concat(obj2.foo, \"foo2\")\n *\n * would evaluate the member, then convert it to a primitive, then evaluate\n * the second member and convert that one, which reflects the spec behavior\n * of template literals.\n */\n function buildConcatCallExpressions(items: t.Expression[]): t.CallExpression {\n let avail = true;\n // @ts-expect-error items must not be empty\n return items.reduce(function (left, right) {\n let canBeInserted = t.isLiteral(right);\n\n if (!canBeInserted && avail) {\n canBeInserted = true;\n avail = false;\n }\n if (canBeInserted && t.isCallExpression(left)) {\n left.arguments.push(right);\n return left;\n }\n return t.callExpression(\n t.memberExpression(left, t.identifier(\"concat\")),\n [right],\n );\n });\n }\n\n return {\n name: \"transform-template-literals\",\n\n visitor: {\n TaggedTemplateExpression(path) {\n const { node } = path;\n const { quasi } = node;\n\n const strings = [];\n const raws = [];\n\n // Flag variable to check if contents of strings and raw are equal\n let isStringsRawEqual = true;\n\n for (const elem of quasi.quasis) {\n const { raw, cooked } = elem.value;\n const value =\n cooked == null\n ? path.scope.buildUndefinedNode()\n : t.stringLiteral(cooked);\n\n strings.push(value);\n raws.push(t.stringLiteral(raw));\n\n if (raw !== cooked) {\n // false even if one of raw and cooked are not equal\n isStringsRawEqual = false;\n }\n }\n\n const helperArgs = [t.arrayExpression(strings)];\n // only add raw arrayExpression if there is any difference between raws and strings\n if (!isStringsRawEqual) {\n helperArgs.push(t.arrayExpression(raws));\n }\n\n const tmp = path.scope.generateUidIdentifier(\"templateObject\");\n path.scope.getProgramParent().push({ id: t.cloneNode(tmp) });\n\n path.replaceWith(\n t.callExpression(node.tag, [\n template.expression.ast`\n ${t.cloneNode(tmp)} || (\n ${tmp} = ${this.addHelper(helperName)}(${helperArgs})\n )\n `,\n // @ts-expect-error Fixme: quasi.expressions may contain TSAnyKeyword\n ...quasi.expressions,\n ]),\n );\n },\n\n TemplateLiteral(path) {\n // Skip TemplateLiteral in TSLiteralType\n if (path.parent.type === \"TSLiteralType\") {\n return;\n }\n const nodes: t.Expression[] = [];\n const expressions = path.get(\"expressions\") as NodePath<t.Expression>[];\n\n let index = 0;\n for (const elem of path.node.quasis) {\n if (elem.value.cooked) {\n nodes.push(t.stringLiteral(elem.value.cooked));\n }\n\n if (index < expressions.length) {\n const expr = expressions[index++];\n const node = expr.node;\n if (!t.isStringLiteral(node, { value: \"\" })) {\n nodes.push(node);\n }\n }\n }\n\n // since `+` is left-to-right associative\n // ensure the first node is a string if first/second isn't\n if (\n !t.isStringLiteral(nodes[0]) &&\n !(ignoreToPrimitiveHint && t.isStringLiteral(nodes[1]))\n ) {\n nodes.unshift(t.stringLiteral(\"\"));\n }\n let root = nodes[0];\n\n if (ignoreToPrimitiveHint) {\n for (let i = 1; i < nodes.length; i++) {\n root = t.binaryExpression(\"+\", root, nodes[i]);\n }\n } else if (nodes.length > 1) {\n root = buildConcatCallExpressions(nodes);\n }\n\n path.replaceWith(root);\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","options","_api$assumption","_api$assumption2","assertVersion","ignoreToPrimitiveHint","assumption","loose","mutableTemplateObject","helperName","buildConcatCallExpressions","items","avail","reduce","left","right","canBeInserted","t","isLiteral","isCallExpression","arguments","push","callExpression","memberExpression","identifier","name","visitor","TaggedTemplateExpression","path","node","quasi","strings","raws","isStringsRawEqual","elem","quasis","raw","cooked","value","scope","buildUndefinedNode","stringLiteral","helperArgs","arrayExpression","tmp","generateUidIdentifier","getProgramParent","id","cloneNode","replaceWith","tag","template","expression","ast","addHelper","expressions","TemplateLiteral","parent","type","nodes","get","index","length","expr","isStringLiteral","unshift","root","i","binaryExpression"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const ignoreToPrimitiveHint =\n api.assumption(\"ignoreToPrimitiveHint\") ?? options.loose;\n const mutableTemplateObject =\n api.assumption(\"mutableTemplateObject\") ?? options.loose;\n\n let helperName = \"taggedTemplateLiteral\";\n if (mutableTemplateObject) helperName += \"Loose\";\n\n /**\n * This function groups the objects into multiple calls to `.concat()` in\n * order to preserve execution order of the primitive conversion, e.g.\n *\n * \"\".concat(obj.foo, \"foo\", obj2.foo, \"foo2\")\n *\n * would evaluate both member expressions _first_ then, `concat` will\n * convert each one to a primitive, whereas\n *\n * \"\".concat(obj.foo, \"foo\").concat(obj2.foo, \"foo2\")\n *\n * would evaluate the member, then convert it to a primitive, then evaluate\n * the second member and convert that one, which reflects the spec behavior\n * of template literals.\n */\n function buildConcatCallExpressions(items: t.Expression[]): t.CallExpression {\n let avail = true;\n // @ts-expect-error items must not be empty\n return items.reduce(function (left, right) {\n let canBeInserted = t.isLiteral(right);\n\n if (!canBeInserted && avail) {\n canBeInserted = true;\n avail = false;\n }\n if (canBeInserted && t.isCallExpression(left)) {\n left.arguments.push(right);\n return left;\n }\n return t.callExpression(\n t.memberExpression(left, t.identifier(\"concat\")),\n [right],\n );\n });\n }\n\n return {\n name: \"transform-template-literals\",\n\n visitor: {\n TaggedTemplateExpression(path) {\n const { node } = path;\n const { quasi } = node;\n\n const strings = [];\n const raws = [];\n\n // Flag variable to check if contents of strings and raw are equal\n let isStringsRawEqual = true;\n\n for (const elem of quasi.quasis) {\n const { raw, cooked } = elem.value;\n const value =\n cooked == null\n ? path.scope.buildUndefinedNode()\n : t.stringLiteral(cooked);\n\n strings.push(value);\n raws.push(t.stringLiteral(raw));\n\n if (raw !== cooked) {\n // false even if one of raw and cooked are not equal\n isStringsRawEqual = false;\n }\n }\n\n const helperArgs = [t.arrayExpression(strings)];\n // only add raw arrayExpression if there is any difference between raws and strings\n if (!isStringsRawEqual) {\n helperArgs.push(t.arrayExpression(raws));\n }\n\n const tmp = path.scope.generateUidIdentifier(\"templateObject\");\n path.scope.getProgramParent().push({ id: t.cloneNode(tmp) });\n\n path.replaceWith(\n t.callExpression(node.tag, [\n template.expression.ast`\n ${t.cloneNode(tmp)} || (\n ${tmp} = ${this.addHelper(helperName)}(${helperArgs})\n )\n `,\n // @ts-expect-error Fixme: quasi.expressions may contain TSAnyKeyword\n ...quasi.expressions,\n ]),\n );\n },\n\n TemplateLiteral(path) {\n // Skip TemplateLiteral in TSLiteralType\n if (path.parent.type === \"TSLiteralType\") {\n return;\n }\n const nodes: t.Expression[] = [];\n const expressions = path.get(\"expressions\") as NodePath<t.Expression>[];\n\n let index = 0;\n for (const elem of path.node.quasis) {\n if (elem.value.cooked) {\n nodes.push(t.stringLiteral(elem.value.cooked));\n }\n\n if (index < expressions.length) {\n const expr = expressions[index++];\n const node = expr.node;\n if (!t.isStringLiteral(node, { value: \"\" })) {\n nodes.push(node);\n }\n }\n }\n\n // since `+` is left-to-right associative\n // ensure the first node is a string if first/second isn't\n if (\n !t.isStringLiteral(nodes[0]) &&\n !(ignoreToPrimitiveHint && t.isStringLiteral(nodes[1]))\n ) {\n nodes.unshift(t.stringLiteral(\"\"));\n }\n let root = nodes[0];\n\n if (ignoreToPrimitiveHint) {\n for (let i = 1; i < nodes.length; i++) {\n root = t.binaryExpression(\"+\", root, nodes[i]);\n }\n } else if (nodes.length > 1) {\n root = buildConcatCallExpressions(nodes);\n }\n\n path.replaceWith(root);\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-template-literals/package.json b/node_modules/@babel/plugin-transform-template-literals/package.json index c4b9ad1a..62056f43 100644 --- a/node_modules/@babel/plugin-transform-template-literals/package.json +++ b/node_modules/@babel/plugin-transform-template-literals/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-template-literals", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile ES2015 template literals to ES5", "repository": { "type": "git", @@ -22,7 +22,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-template-literals", diff --git a/node_modules/@babel/plugin-transform-typeof-symbol/README.md b/node_modules/@babel/plugin-transform-typeof-symbol/README.md index 00eb198f..60eb36aa 100644 --- a/node_modules/@babel/plugin-transform-typeof-symbol/README.md +++ b/node_modules/@babel/plugin-transform-typeof-symbol/README.md @@ -2,7 +2,7 @@ > This transformer wraps all typeof expressions with a method that replicates native behaviour. (ie. returning “symbol” for symbols) -See our website [@babel/plugin-transform-typeof-symbol](https://babeljs.io/docs/en/babel-plugin-transform-typeof-symbol) for more information. +See our website [@babel/plugin-transform-typeof-symbol](https://babeljs.io/docs/babel-plugin-transform-typeof-symbol) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-typeof-symbol/lib/index.js b/node_modules/@babel/plugin-transform-typeof-symbol/lib/index.js index 7e377aaf..51ef5e41 100644 --- a/node_modules/@babel/plugin-transform-typeof-symbol/lib/index.js +++ b/node_modules/@babel/plugin-transform-typeof-symbol/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return { name: "transform-typeof-symbol", @@ -57,6 +57,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-typeof-symbol/lib/index.js.map b/node_modules/@babel/plugin-transform-typeof-symbol/lib/index.js.map index 4c18c4d9..9dd578c9 100644 --- a/node_modules/@babel/plugin-transform-typeof-symbol/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-typeof-symbol/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","name","visitor","Scope","scope","getBinding","rename","UnaryExpression","path","node","parent","operator","parentPath","isBinaryExpression","t","EQUALITY_BINARY_OPERATORS","indexOf","opposite","getOpposite","isStringLiteral","value","isUnderHelper","findParent","isFunction","_path$get","get","helper","addHelper","isVariableDeclarator","id","isFunctionDeclaration","call","callExpression","argument","arg","isIdentifier","hasBinding","unary","unaryExpression","cloneNode","replaceWith","conditionalExpression","binaryExpression","stringLiteral","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return {\n name: \"transform-typeof-symbol\",\n\n visitor: {\n Scope({ scope }) {\n if (!scope.getBinding(\"Symbol\")) {\n return;\n }\n\n scope.rename(\"Symbol\");\n },\n\n UnaryExpression(path) {\n const { node, parent } = path;\n if (node.operator !== \"typeof\") return;\n\n if (\n path.parentPath.isBinaryExpression() &&\n t.EQUALITY_BINARY_OPERATORS.indexOf(\n (parent as t.BinaryExpression).operator,\n ) >= 0\n ) {\n // optimise `typeof foo === \"string\"` since we can determine that they'll never\n // need to handle symbols\n const opposite = path.getOpposite();\n if (\n opposite.isStringLiteral() &&\n opposite.node.value !== \"symbol\" &&\n opposite.node.value !== \"object\"\n ) {\n return;\n }\n }\n\n let isUnderHelper = path.findParent(path => {\n if (path.isFunction()) {\n return (\n // @ts-expect-error the access is coupled with the shape of typeof helper\n path.get(\"body.directives.0\")?.node.value.value ===\n \"@babel/helpers - typeof\"\n );\n }\n });\n\n if (isUnderHelper) return;\n\n const helper = this.addHelper(\"typeof\");\n\n // TODO: This is needed for backward compatibility with\n // @babel/helpers <= 7.8.3.\n // Remove in Babel 8\n isUnderHelper = path.findParent(path => {\n return (\n (path.isVariableDeclarator() && path.node.id === helper) ||\n (path.isFunctionDeclaration() &&\n path.node.id &&\n path.node.id.name === helper.name)\n );\n });\n\n if (isUnderHelper) {\n return;\n }\n\n const call = t.callExpression(helper, [node.argument]);\n const arg = path.get(\"argument\");\n if (arg.isIdentifier() && !path.scope.hasBinding(arg.node.name, true)) {\n const unary = t.unaryExpression(\"typeof\", t.cloneNode(node.argument));\n path.replaceWith(\n t.conditionalExpression(\n t.binaryExpression(\"===\", unary, t.stringLiteral(\"undefined\")),\n t.stringLiteral(\"undefined\"),\n call,\n ),\n );\n } else {\n path.replaceWith(call);\n }\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","name","visitor","Scope","scope","getBinding","rename","UnaryExpression","path","node","parent","operator","parentPath","isBinaryExpression","t","EQUALITY_BINARY_OPERATORS","indexOf","opposite","getOpposite","isStringLiteral","value","isUnderHelper","findParent","isFunction","_path$get","get","helper","addHelper","isVariableDeclarator","id","isFunctionDeclaration","call","callExpression","argument","arg","isIdentifier","hasBinding","unary","unaryExpression","cloneNode","replaceWith","conditionalExpression","binaryExpression","stringLiteral"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return {\n name: \"transform-typeof-symbol\",\n\n visitor: {\n Scope({ scope }) {\n if (!scope.getBinding(\"Symbol\")) {\n return;\n }\n\n scope.rename(\"Symbol\");\n },\n\n UnaryExpression(path) {\n const { node, parent } = path;\n if (node.operator !== \"typeof\") return;\n\n if (\n path.parentPath.isBinaryExpression() &&\n t.EQUALITY_BINARY_OPERATORS.indexOf(\n (parent as t.BinaryExpression).operator,\n ) >= 0\n ) {\n // optimise `typeof foo === \"string\"` since we can determine that they'll never\n // need to handle symbols\n const opposite = path.getOpposite();\n if (\n opposite.isStringLiteral() &&\n opposite.node.value !== \"symbol\" &&\n opposite.node.value !== \"object\"\n ) {\n return;\n }\n }\n\n let isUnderHelper = path.findParent(path => {\n if (path.isFunction()) {\n return (\n // @ts-expect-error the access is coupled with the shape of typeof helper\n path.get(\"body.directives.0\")?.node.value.value ===\n \"@babel/helpers - typeof\"\n );\n }\n });\n\n if (isUnderHelper) return;\n\n const helper = this.addHelper(\"typeof\");\n\n // TODO: This is needed for backward compatibility with\n // @babel/helpers <= 7.8.3.\n // Remove in Babel 8\n isUnderHelper = path.findParent(path => {\n return (\n (path.isVariableDeclarator() && path.node.id === helper) ||\n (path.isFunctionDeclaration() &&\n path.node.id &&\n path.node.id.name === helper.name)\n );\n });\n\n if (isUnderHelper) {\n return;\n }\n\n const call = t.callExpression(helper, [node.argument]);\n const arg = path.get(\"argument\");\n if (arg.isIdentifier() && !path.scope.hasBinding(arg.node.name, true)) {\n const unary = t.unaryExpression(\"typeof\", t.cloneNode(node.argument));\n path.replaceWith(\n t.conditionalExpression(\n t.binaryExpression(\"===\", unary, t.stringLiteral(\"undefined\")),\n t.stringLiteral(\"undefined\"),\n call,\n ),\n );\n } else {\n path.replaceWith(call);\n }\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-typeof-symbol/package.json b/node_modules/@babel/plugin-transform-typeof-symbol/package.json index 8385f527..85e78e72 100644 --- a/node_modules/@babel/plugin-transform-typeof-symbol/package.json +++ b/node_modules/@babel/plugin-transform-typeof-symbol/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-typeof-symbol", - "version": "7.22.5", + "version": "7.23.3", "description": "This transformer wraps all typeof expressions with a method that replicates native behaviour. (ie. returning “symbol” for symbols)", "repository": { "type": "git", @@ -22,11 +22,11 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/runtime": "^7.22.5", - "@babel/runtime-corejs2": "^7.22.5", - "@babel/runtime-corejs3": "^7.22.5" + "@babel/runtime": "^7.23.2", + "@babel/runtime-corejs2": "^7.23.2", + "@babel/runtime-corejs3": "^7.23.2" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-typeof-symbol", "engines": { diff --git a/node_modules/@babel/plugin-transform-unicode-escapes/lib/index.js b/node_modules/@babel/plugin-transform-unicode-escapes/lib/index.js index 14feafc1..4e91337f 100644 --- a/node_modules/@babel/plugin-transform-unicode-escapes/lib/index.js +++ b/node_modules/@babel/plugin-transform-unicode-escapes/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperPluginUtils = require("@babel/helper-plugin-utils"); var _core = require("@babel/core"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); const surrogate = /[\ud800-\udfff]/g; const unicodeEscape = /(\\+)u\{([0-9a-fA-F]+)\}/g; @@ -114,6 +114,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }; }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-unicode-escapes/lib/index.js.map b/node_modules/@babel/plugin-transform-unicode-escapes/lib/index.js.map index 38e159d9..a767f0db 100644 --- a/node_modules/@babel/plugin-transform-unicode-escapes/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-unicode-escapes/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperPluginUtils","require","_core","_default","declare","api","assertVersion","surrogate","unicodeEscape","escape","code","str","toString","length","replacer","match","backslashes","char","String","fromCodePoint","parseInt","escaped","slice","charCodeAt","replaceUnicodeEscapes","replace","getUnicodeEscape","exec","lastIndex","name","manipulateOptions","generatorOpts","_generatorOpts$jsescO","_generatorOpts$jsescO2","jsescOption","minimal","visitor","Identifier","path","node","key","replaced","c","t","inherits","stringLiteral","replaceWith","parentPath","scope","isMemberExpression","property","isOptionalMemberExpression","computed","binding","getBinding","rename","generateUid","buildCodeFrameError","StringLiteral|DirectiveLiteral","extra","raw","TemplateElement","value","firstEscape","grandParent","isTaggedTemplateExpression","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n const surrogate = /[\\ud800-\\udfff]/g;\n const unicodeEscape = /(\\\\+)u\\{([0-9a-fA-F]+)\\}/g;\n\n function escape(code: number) {\n if (process.env.BABEL_8_BREAKING) {\n return \"\\\\u\" + code.toString(16).padStart(4, \"0\");\n } else {\n let str = code.toString(16);\n while (str.length < 4) str = \"0\" + str;\n return \"\\\\u\" + str;\n }\n }\n\n function replacer(match: string, backslashes: string, code: string) {\n if (backslashes.length % 2 === 0) {\n return match;\n }\n\n const char = String.fromCodePoint(parseInt(code, 16));\n const escaped = backslashes.slice(0, -1) + escape(char.charCodeAt(0));\n\n return char.length === 1 ? escaped : escaped + escape(char.charCodeAt(1));\n }\n\n function replaceUnicodeEscapes(str: string) {\n return str.replace(unicodeEscape, replacer);\n }\n\n function getUnicodeEscape(str: string) {\n let match;\n while ((match = unicodeEscape.exec(str))) {\n if (match[1].length % 2 === 0) continue;\n unicodeEscape.lastIndex = 0;\n return match[0];\n }\n return null;\n }\n\n return {\n name: \"transform-unicode-escapes\",\n manipulateOptions({ generatorOpts }) {\n // Babel 8 will enable jsesc minimal mode by default, which outputs\n // unescaped unicode string\n if (!generatorOpts.jsescOption) {\n generatorOpts.jsescOption = {};\n }\n generatorOpts.jsescOption.minimal ??= false;\n },\n visitor: {\n Identifier(path) {\n const { node, key } = path;\n const { name } = node;\n const replaced = name.replace(surrogate, c => {\n return `_u${c.charCodeAt(0).toString(16)}`;\n });\n if (name === replaced) return;\n\n const str = t.inherits(t.stringLiteral(name), node);\n\n if (key === \"key\") {\n path.replaceWith(str);\n return;\n }\n\n const { parentPath, scope } = path;\n if (\n parentPath.isMemberExpression({ property: node }) ||\n parentPath.isOptionalMemberExpression({ property: node })\n ) {\n parentPath.node.computed = true;\n path.replaceWith(str);\n return;\n }\n\n const binding = scope.getBinding(name);\n if (binding) {\n scope.rename(name, scope.generateUid(replaced));\n return;\n }\n\n throw path.buildCodeFrameError(\n `Can't reference '${name}' as a bare identifier`,\n );\n },\n\n \"StringLiteral|DirectiveLiteral\"(\n path: NodePath<t.StringLiteral | t.DirectiveLiteral>,\n ) {\n const { node } = path;\n const { extra } = node;\n\n if (extra?.raw) extra.raw = replaceUnicodeEscapes(extra.raw as string);\n },\n\n TemplateElement(path) {\n const { node, parentPath } = path;\n const { value } = node;\n\n const firstEscape = getUnicodeEscape(value.raw);\n if (!firstEscape) return;\n\n const grandParent = parentPath.parentPath;\n if (grandParent.isTaggedTemplateExpression()) {\n throw path.buildCodeFrameError(\n `Can't replace Unicode escape '${firstEscape}' inside tagged template literals. You can enable '@babel/plugin-transform-template-literals' to compile them to classic strings.`,\n );\n }\n\n value.raw = replaceUnicodeEscapes(value.raw);\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_helperPluginUtils","require","_core","_default","exports","default","declare","api","assertVersion","surrogate","unicodeEscape","escape","code","str","toString","length","replacer","match","backslashes","char","String","fromCodePoint","parseInt","escaped","slice","charCodeAt","replaceUnicodeEscapes","replace","getUnicodeEscape","exec","lastIndex","name","manipulateOptions","generatorOpts","_generatorOpts$jsescO","_generatorOpts$jsescO2","jsescOption","minimal","visitor","Identifier","path","node","key","replaced","c","t","inherits","stringLiteral","replaceWith","parentPath","scope","isMemberExpression","property","isOptionalMemberExpression","computed","binding","getBinding","rename","generateUid","buildCodeFrameError","StringLiteral|DirectiveLiteral","extra","raw","TemplateElement","value","firstEscape","grandParent","isTaggedTemplateExpression"],"sources":["../src/index.ts"],"sourcesContent":["import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const surrogate = /[\\ud800-\\udfff]/g;\n const unicodeEscape = /(\\\\+)u\\{([0-9a-fA-F]+)\\}/g;\n\n function escape(code: number) {\n if (process.env.BABEL_8_BREAKING) {\n return \"\\\\u\" + code.toString(16).padStart(4, \"0\");\n } else {\n let str = code.toString(16);\n while (str.length < 4) str = \"0\" + str;\n return \"\\\\u\" + str;\n }\n }\n\n function replacer(match: string, backslashes: string, code: string) {\n if (backslashes.length % 2 === 0) {\n return match;\n }\n\n const char = String.fromCodePoint(parseInt(code, 16));\n const escaped = backslashes.slice(0, -1) + escape(char.charCodeAt(0));\n\n return char.length === 1 ? escaped : escaped + escape(char.charCodeAt(1));\n }\n\n function replaceUnicodeEscapes(str: string) {\n return str.replace(unicodeEscape, replacer);\n }\n\n function getUnicodeEscape(str: string) {\n let match;\n while ((match = unicodeEscape.exec(str))) {\n if (match[1].length % 2 === 0) continue;\n unicodeEscape.lastIndex = 0;\n return match[0];\n }\n return null;\n }\n\n return {\n name: \"transform-unicode-escapes\",\n manipulateOptions({ generatorOpts }) {\n // Babel 8 will enable jsesc minimal mode by default, which outputs\n // unescaped unicode string\n if (!generatorOpts.jsescOption) {\n generatorOpts.jsescOption = {};\n }\n generatorOpts.jsescOption.minimal ??= false;\n },\n visitor: {\n Identifier(path) {\n const { node, key } = path;\n const { name } = node;\n const replaced = name.replace(surrogate, c => {\n return `_u${c.charCodeAt(0).toString(16)}`;\n });\n if (name === replaced) return;\n\n const str = t.inherits(t.stringLiteral(name), node);\n\n if (key === \"key\") {\n path.replaceWith(str);\n return;\n }\n\n const { parentPath, scope } = path;\n if (\n parentPath.isMemberExpression({ property: node }) ||\n parentPath.isOptionalMemberExpression({ property: node })\n ) {\n parentPath.node.computed = true;\n path.replaceWith(str);\n return;\n }\n\n const binding = scope.getBinding(name);\n if (binding) {\n scope.rename(name, scope.generateUid(replaced));\n return;\n }\n\n throw path.buildCodeFrameError(\n `Can't reference '${name}' as a bare identifier`,\n );\n },\n\n \"StringLiteral|DirectiveLiteral\"(\n path: NodePath<t.StringLiteral | t.DirectiveLiteral>,\n ) {\n const { node } = path;\n const { extra } = node;\n\n if (extra?.raw) extra.raw = replaceUnicodeEscapes(extra.raw as string);\n },\n\n TemplateElement(path) {\n const { node, parentPath } = path;\n const { value } = node;\n\n const firstEscape = getUnicodeEscape(value.raw);\n if (!firstEscape) return;\n\n const grandParent = parentPath.parentPath;\n if (grandParent.isTaggedTemplateExpression()) {\n throw path.buildCodeFrameError(\n `Can't replace Unicode escape '${firstEscape}' inside tagged template literals. You can enable '@babel/plugin-transform-template-literals' to compile them to classic strings.`,\n );\n }\n\n value.raw = replaceUnicodeEscapes(value.raw);\n },\n },\n };\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-unicode-escapes/package.json b/node_modules/@babel/plugin-transform-unicode-escapes/package.json index 7593d68f..96c970c4 100644 --- a/node_modules/@babel/plugin-transform-unicode-escapes/package.json +++ b/node_modules/@babel/plugin-transform-unicode-escapes/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-unicode-escapes", - "version": "7.22.10", + "version": "7.23.3", "description": "Compile ES2015 Unicode escapes to ES5", "repository": { "type": "git", @@ -22,7 +22,7 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.10", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-unicode-escapes", diff --git a/node_modules/@babel/plugin-transform-unicode-property-regex/README.md b/node_modules/@babel/plugin-transform-unicode-property-regex/README.md index c7bde26d..5f4b4149 100644 --- a/node_modules/@babel/plugin-transform-unicode-property-regex/README.md +++ b/node_modules/@babel/plugin-transform-unicode-property-regex/README.md @@ -2,7 +2,7 @@ > Compile Unicode property escapes in Unicode regular expressions to ES5. -See our website [@babel/plugin-transform-unicode-property-regex](https://babeljs.io/docs/en/babel-plugin-transform-unicode-property-regex) for more information. +See our website [@babel/plugin-transform-unicode-property-regex](https://babeljs.io/docs/babel-plugin-transform-unicode-property-regex) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-unicode-property-regex/lib/index.js b/node_modules/@babel/plugin-transform-unicode-property-regex/lib/index.js index a9c39b70..4482813d 100644 --- a/node_modules/@babel/plugin-transform-unicode-property-regex/lib/index.js +++ b/node_modules/@babel/plugin-transform-unicode-property-regex/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperCreateRegexpFeaturesPlugin = require("@babel/helper-create-regexp-features-plugin"); var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)((api, options) => { +var _default = exports.default = (0, _helperPluginUtils.declare)((api, options) => { api.assertVersion(7); const { useUnicodeFlag = true @@ -22,6 +22,5 @@ var _default = (0, _helperPluginUtils.declare)((api, options) => { } }); }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-unicode-property-regex/lib/index.js.map b/node_modules/@babel/plugin-transform-unicode-property-regex/lib/index.js.map index a7f4f2e0..b031b905 100644 --- a/node_modules/@babel/plugin-transform-unicode-property-regex/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-unicode-property-regex/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperCreateRegexpFeaturesPlugin","require","_helperPluginUtils","_default","declare","api","options","assertVersion","useUnicodeFlag","Error","createRegExpFeaturePlugin","name","feature","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n useUnicodeFlag?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(7);\n\n const { useUnicodeFlag = true } = options;\n if (typeof useUnicodeFlag !== \"boolean\") {\n throw new Error(\".useUnicodeFlag must be a boolean, or undefined\");\n }\n\n return createRegExpFeaturePlugin({\n name: \"transform-unicode-property-regex\",\n feature: \"unicodePropertyEscape\",\n options: { useUnicodeFlag },\n });\n});\n"],"mappings":";;;;;;AACA,IAAAA,iCAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAAqD,IAAAE,QAAA,GAMtC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAChDD,GAAG,CAACE,aAAa,CAAC,CAAC,CAAC;EAEpB,MAAM;IAAEC,cAAc,GAAG;EAAK,CAAC,GAAGF,OAAO;EACzC,IAAI,OAAOE,cAAc,KAAK,SAAS,EAAE;IACvC,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE;EAEA,OAAO,IAAAC,2DAAyB,EAAC;IAC/BC,IAAI,EAAE,kCAAkC;IACxCC,OAAO,EAAE,uBAAuB;IAChCN,OAAO,EAAE;MAAEE;IAAe;EAC5B,CAAC,CAAC;AACJ,CAAC,CAAC;AAAAK,OAAA,CAAAC,OAAA,GAAAX,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperCreateRegexpFeaturesPlugin","require","_helperPluginUtils","_default","exports","default","declare","api","options","assertVersion","useUnicodeFlag","Error","createRegExpFeaturePlugin","name","feature"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n useUnicodeFlag?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const { useUnicodeFlag = true } = options;\n if (typeof useUnicodeFlag !== \"boolean\") {\n throw new Error(\".useUnicodeFlag must be a boolean, or undefined\");\n }\n\n return createRegExpFeaturePlugin({\n name: \"transform-unicode-property-regex\",\n feature: \"unicodePropertyEscape\",\n options: { useUnicodeFlag },\n });\n});\n"],"mappings":";;;;;;AACA,IAAAA,iCAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAAqD,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAMtC,IAAAC,0BAAO,EAAC,CAACC,GAAG,EAAEC,OAAgB,KAAK;EAChDD,GAAG,CAACE,aAAa,CAGX,CACN,CAAC;EAED,MAAM;IAAEC,cAAc,GAAG;EAAK,CAAC,GAAGF,OAAO;EACzC,IAAI,OAAOE,cAAc,KAAK,SAAS,EAAE;IACvC,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;EACpE;EAEA,OAAO,IAAAC,2DAAyB,EAAC;IAC/BC,IAAI,EAAE,kCAAkC;IACxCC,OAAO,EAAE,uBAAuB;IAChCN,OAAO,EAAE;MAAEE;IAAe;EAC5B,CAAC,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-unicode-property-regex/package.json b/node_modules/@babel/plugin-transform-unicode-property-regex/package.json index 197a6a2d..c981c591 100644 --- a/node_modules/@babel/plugin-transform-unicode-property-regex/package.json +++ b/node_modules/@babel/plugin-transform-unicode-property-regex/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-unicode-property-regex", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile Unicode property escapes in Unicode regular expressions to ES5.", "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-unicode-property-regex", "license": "MIT", @@ -26,14 +26,14 @@ }, "bugs": "https://github.com/babel/babel/issues", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "author": "The Babel Team (https://babel.dev/team)", diff --git a/node_modules/@babel/plugin-transform-unicode-regex/README.md b/node_modules/@babel/plugin-transform-unicode-regex/README.md index 601ab287..606f039b 100644 --- a/node_modules/@babel/plugin-transform-unicode-regex/README.md +++ b/node_modules/@babel/plugin-transform-unicode-regex/README.md @@ -2,7 +2,7 @@ > Compile ES2015 Unicode regex to ES5 -See our website [@babel/plugin-transform-unicode-regex](https://babeljs.io/docs/en/babel-plugin-transform-unicode-regex) for more information. +See our website [@babel/plugin-transform-unicode-regex](https://babeljs.io/docs/babel-plugin-transform-unicode-regex) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-unicode-regex/lib/index.js b/node_modules/@babel/plugin-transform-unicode-regex/lib/index.js index 52ed66c4..9aa97ad7 100644 --- a/node_modules/@babel/plugin-transform-unicode-regex/lib/index.js +++ b/node_modules/@babel/plugin-transform-unicode-regex/lib/index.js @@ -6,13 +6,12 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperCreateRegexpFeaturesPlugin = require("@babel/helper-create-regexp-features-plugin"); var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return (0, _helperCreateRegexpFeaturesPlugin.createRegExpFeaturePlugin)({ name: "transform-unicode-regex", feature: "unicodeFlag" }); }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-unicode-regex/lib/index.js.map b/node_modules/@babel/plugin-transform-unicode-regex/lib/index.js.map index 5daa2ca0..61a7a9c6 100644 --- a/node_modules/@babel/plugin-transform-unicode-regex/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-unicode-regex/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperCreateRegexpFeaturesPlugin","require","_helperPluginUtils","_default","declare","api","assertVersion","createRegExpFeaturePlugin","name","feature","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return createRegExpFeaturePlugin({\n name: \"transform-unicode-regex\",\n feature: \"unicodeFlag\",\n });\n});\n"],"mappings":";;;;;;AACA,IAAAA,iCAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAAqD,IAAAE,QAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO,IAAAC,2DAAyB,EAAC;IAC/BC,IAAI,EAAE,yBAAyB;IAC/BC,OAAO,EAAE;EACX,CAAC,CAAC;AACJ,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAR,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperCreateRegexpFeaturesPlugin","require","_helperPluginUtils","_default","exports","default","declare","api","assertVersion","createRegExpFeaturePlugin","name","feature"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return createRegExpFeaturePlugin({\n name: \"transform-unicode-regex\",\n feature: \"unicodeFlag\",\n });\n});\n"],"mappings":";;;;;;AACA,IAAAA,iCAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAAqD,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO,IAAAC,2DAAyB,EAAC;IAC/BC,IAAI,EAAE,yBAAyB;IAC/BC,OAAO,EAAE;EACX,CAAC,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-unicode-regex/package.json b/node_modules/@babel/plugin-transform-unicode-regex/package.json index ac31a336..fada3724 100644 --- a/node_modules/@babel/plugin-transform-unicode-regex/package.json +++ b/node_modules/@babel/plugin-transform-unicode-regex/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-unicode-regex", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile ES2015 Unicode regex to ES5", "repository": { "type": "git", @@ -16,14 +16,14 @@ "babel-plugin" ], "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "peerDependencies": { "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-unicode-regex", diff --git a/node_modules/@babel/plugin-transform-unicode-sets-regex/README.md b/node_modules/@babel/plugin-transform-unicode-sets-regex/README.md index 60aced0c..67d59dce 100644 --- a/node_modules/@babel/plugin-transform-unicode-sets-regex/README.md +++ b/node_modules/@babel/plugin-transform-unicode-sets-regex/README.md @@ -2,7 +2,7 @@ > Compile regular expressions' unicodeSets (v) flag. -See our website [@babel/plugin-transform-unicode-sets-regex](https://babeljs.io/docs/en/babel-plugin-transform-unicode-sets-regex) for more information. +See our website [@babel/plugin-transform-unicode-sets-regex](https://babeljs.io/docs/babel-plugin-transform-unicode-sets-regex) for more information. ## Install diff --git a/node_modules/@babel/plugin-transform-unicode-sets-regex/lib/index.js b/node_modules/@babel/plugin-transform-unicode-sets-regex/lib/index.js index a9f5fd07..b7f7dffe 100644 --- a/node_modules/@babel/plugin-transform-unicode-sets-regex/lib/index.js +++ b/node_modules/@babel/plugin-transform-unicode-sets-regex/lib/index.js @@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _helperCreateRegexpFeaturesPlugin = require("@babel/helper-create-regexp-features-plugin"); var _helperPluginUtils = require("@babel/helper-plugin-utils"); -var _default = (0, _helperPluginUtils.declare)(api => { +var _default = exports.default = (0, _helperPluginUtils.declare)(api => { api.assertVersion(7); return (0, _helperCreateRegexpFeaturesPlugin.createRegExpFeaturePlugin)({ name: "transform-unicode-sets-regex", @@ -16,6 +16,5 @@ var _default = (0, _helperPluginUtils.declare)(api => { } }); }); -exports.default = _default; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/plugin-transform-unicode-sets-regex/lib/index.js.map b/node_modules/@babel/plugin-transform-unicode-sets-regex/lib/index.js.map index bf0634fd..a2d4aab4 100644 --- a/node_modules/@babel/plugin-transform-unicode-sets-regex/lib/index.js.map +++ b/node_modules/@babel/plugin-transform-unicode-sets-regex/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_helperCreateRegexpFeaturesPlugin","require","_helperPluginUtils","_default","declare","api","assertVersion","createRegExpFeaturePlugin","name","feature","manipulateOptions","opts","parserOpts","plugins","push","exports","default"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(7);\n\n return createRegExpFeaturePlugin({\n name: \"transform-unicode-sets-regex\",\n feature: \"unicodeSetsFlag\",\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"regexpUnicodeSets\");\n },\n });\n});\n"],"mappings":";;;;;;AACA,IAAAA,iCAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAAqD,IAAAE,QAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAAC,CAAC,CAAC;EAEpB,OAAO,IAAAC,2DAAyB,EAAC;IAC/BC,IAAI,EAAE,8BAA8B;IACpCC,OAAO,EAAE,iBAAiB;IAC1BC,iBAAiBA,CAACC,IAAI,EAAEC,UAAU,EAAE;MAClCA,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC,mBAAmB,CAAC;IAC9C;EACF,CAAC,CAAC;AACJ,CAAC,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAb,QAAA"}
\ No newline at end of file +{"version":3,"names":["_helperCreateRegexpFeaturesPlugin","require","_helperPluginUtils","_default","exports","default","declare","api","assertVersion","createRegExpFeaturePlugin","name","feature","manipulateOptions","opts","parserOpts","plugins","push"],"sources":["../src/index.ts"],"sourcesContent":["/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n return createRegExpFeaturePlugin({\n name: \"transform-unicode-sets-regex\",\n feature: \"unicodeSetsFlag\",\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"regexpUnicodeSets\");\n },\n });\n});\n"],"mappings":";;;;;;AACA,IAAAA,iCAAA,GAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAD,OAAA;AAAqD,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEtC,IAAAC,0BAAO,EAACC,GAAG,IAAI;EAC5BA,GAAG,CAACC,aAAa,CAGX,CACN,CAAC;EAED,OAAO,IAAAC,2DAAyB,EAAC;IAC/BC,IAAI,EAAE,8BAA8B;IACpCC,OAAO,EAAE,iBAAiB;IAC1BC,iBAAiBA,CAACC,IAAI,EAAEC,UAAU,EAAE;MAClCA,UAAU,CAACC,OAAO,CAACC,IAAI,CAAC,mBAAmB,CAAC;IAC9C;EACF,CAAC,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/plugin-transform-unicode-sets-regex/package.json b/node_modules/@babel/plugin-transform-unicode-sets-regex/package.json index 5ec32023..a392cf6d 100644 --- a/node_modules/@babel/plugin-transform-unicode-sets-regex/package.json +++ b/node_modules/@babel/plugin-transform-unicode-sets-regex/package.json @@ -1,6 +1,6 @@ { "name": "@babel/plugin-transform-unicode-sets-regex", - "version": "7.22.5", + "version": "7.23.3", "description": "Compile regular expressions' unicodeSets (v) flag.", "homepage": "https://babel.dev/docs/en/next/babel-plugin-transform-unicode-sets-regex", "license": "MIT", @@ -27,14 +27,14 @@ }, "bugs": "https://github.com/babel/babel/issues", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.22.5", + "@babel/helper-create-regexp-features-plugin": "^7.22.15", "@babel/helper-plugin-utils": "^7.22.5" }, "peerDependencies": { "@babel/core": "^7.0.0" }, "devDependencies": { - "@babel/core": "^7.22.5", + "@babel/core": "^7.23.3", "@babel/helper-plugin-test-runner": "^7.22.5" }, "author": "The Babel Team (https://babel.dev/team)", diff --git a/node_modules/@babel/preset-env/lib/available-plugins.js b/node_modules/@babel/preset-env/lib/available-plugins.js index 513c66a8..21332df0 100644 --- a/node_modules/@babel/preset-env/lib/available-plugins.js +++ b/node_modules/@babel/preset-env/lib/available-plugins.js @@ -62,7 +62,8 @@ var _index5 = require("@babel/preset-modules/lib/plugins/transform-safari-block- var _index6 = require("@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js"); var _pluginBugfixSafariIdDestructuringCollisionInFunctionExpression = require("@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression"); var _pluginBugfixV8SpreadParametersInOptionalChaining = require("@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining"); -const availablePlugins = { +var _pluginBugfixV8StaticClassFieldsRedefineReadonly = require("@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly"); +const availablePlugins = exports.default = { "bugfix/transform-async-arrows-in-class": () => _index, "bugfix/transform-edge-default-parameters": () => _index2, "bugfix/transform-edge-function-name": () => _index3, @@ -71,6 +72,7 @@ const availablePlugins = { "bugfix/transform-safari-id-destructuring-collision-in-function-expression": () => _pluginBugfixSafariIdDestructuringCollisionInFunctionExpression.default, "bugfix/transform-tagged-template-caching": () => _index4, "bugfix/transform-v8-spread-parameters-in-optional-chaining": () => _pluginBugfixV8SpreadParametersInOptionalChaining.default, + "bugfix/transform-v8-static-class-fields-redefine-readonly": () => _pluginBugfixV8StaticClassFieldsRedefineReadonly.default, "syntax-import-assertions": () => _pluginSyntaxImportAssertions.default, "syntax-import-attributes": () => _pluginSyntaxImportAttributes.default, "transform-arrow-functions": () => _pluginTransformArrowFunctions.default, @@ -122,12 +124,11 @@ const availablePlugins = { "transform-unicode-regex": () => _pluginTransformUnicodeRegex.default, "transform-unicode-sets-regex": () => _pluginTransformUnicodeSetsRegex.default }; -exports.default = availablePlugins; -const minVersions = {}; -exports.minVersions = minVersions; +const minVersions = exports.minVersions = {}; { Object.assign(minVersions, { "bugfix/transform-safari-id-destructuring-collision-in-function-expression": "7.16.0", + "bugfix/transform-v8-static-class-fields-redefine-readonly": "7.12.0", "syntax-import-attributes": "7.22.0", "transform-class-static-block": "7.12.0", "transform-private-property-in-object": "7.10.0" diff --git a/node_modules/@babel/preset-env/lib/available-plugins.js.map b/node_modules/@babel/preset-env/lib/available-plugins.js.map index 28e9a5d8..9e0eb87e 100644 --- a/node_modules/@babel/preset-env/lib/available-plugins.js.map +++ b/node_modules/@babel/preset-env/lib/available-plugins.js.map @@ -1 +1 @@ -{"version":3,"names":["_pluginSyntaxImportAssertions","require","_pluginSyntaxImportAttributes","_pluginTransformAsyncGeneratorFunctions","_pluginTransformClassProperties","_pluginTransformClassStaticBlock","_pluginTransformDynamicImport","_pluginTransformExportNamespaceFrom","_pluginTransformJsonStrings","_pluginTransformLogicalAssignmentOperators","_pluginTransformNullishCoalescingOperator","_pluginTransformNumericSeparator","_pluginTransformObjectRestSpread","_pluginTransformOptionalCatchBinding","_pluginTransformOptionalChaining","_pluginTransformPrivateMethods","_pluginTransformPrivatePropertyInObject","_pluginTransformUnicodePropertyRegex","_pluginTransformAsyncToGenerator","_pluginTransformArrowFunctions","_pluginTransformBlockScopedFunctions","_pluginTransformBlockScoping","_pluginTransformClasses","_pluginTransformComputedProperties","_pluginTransformDestructuring","_pluginTransformDotallRegex","_pluginTransformDuplicateKeys","_pluginTransformExponentiationOperator","_pluginTransformForOf","_pluginTransformFunctionName","_pluginTransformLiterals","_pluginTransformMemberExpressionLiterals","_pluginTransformModulesAmd","_pluginTransformModulesCommonjs","_pluginTransformModulesSystemjs","_pluginTransformModulesUmd","_pluginTransformNamedCapturingGroupsRegex","_pluginTransformNewTarget","_pluginTransformObjectSuper","_pluginTransformParameters","_pluginTransformPropertyLiterals","_pluginTransformRegenerator","_pluginTransformReservedWords","_pluginTransformShorthandProperties","_pluginTransformSpread","_pluginTransformStickyRegex","_pluginTransformTemplateLiterals","_pluginTransformTypeofSymbol","_pluginTransformUnicodeEscapes","_pluginTransformUnicodeRegex","_pluginTransformUnicodeSetsRegex","_index","_index2","_index3","_index4","_index5","_index6","_pluginBugfixSafariIdDestructuringCollisionInFunctionExpression","_pluginBugfixV8SpreadParametersInOptionalChaining","availablePlugins","bugfix/transform-async-arrows-in-class","bugfixAsyncArrowsInClass","bugfix/transform-edge-default-parameters","bugfixEdgeDefaultParameters","bugfix/transform-edge-function-name","bugfixEdgeFunctionName","bugfix/transform-safari-block-shadowing","bugfixSafariBlockShadowing","bugfix/transform-safari-for-shadowing","bugfixSafariForShadowing","bugfix/transform-safari-id-destructuring-collision-in-function-expression","bugfixSafariIdDestructuringCollisionInFunctionExpression","bugfix/transform-tagged-template-caching","bugfixTaggedTemplateCaching","bugfix/transform-v8-spread-parameters-in-optional-chaining","bugfixV8SpreadParametersInOptionalChaining","syntax-import-assertions","syntaxImportAssertions","syntax-import-attributes","syntaxImportAttributes","transform-arrow-functions","transformArrowFunctions","transform-async-generator-functions","proposalAsyncGeneratorFunctions","transform-async-to-generator","transformAsyncToGenerator","transform-block-scoped-functions","transformBlockScopedFunctions","transform-block-scoping","transformBlockScoping","transform-class-properties","proposalClassProperties","transform-class-static-block","proposalClassStaticBlock","transform-classes","transformClasses","transform-computed-properties","transformComputedProperties","transform-destructuring","transformDestructuring","transform-dotall-regex","transformDotallRegex","transform-duplicate-keys","transformDuplicateKeys","transform-dynamic-import","proposalDynamicImport","transform-exponentiation-operator","transformExponentialOperator","transform-export-namespace-from","proposalExportNamespaceFrom","transform-for-of","transformForOf","transform-function-name","transformFunctionName","transform-json-strings","proposalJsonStrings","transform-literals","transformLiterals","transform-logical-assignment-operators","proposalLogicalAssignmentOperators","transform-member-expression-literals","transformMemberExpressionLiterals","transform-modules-amd","transformModulesAmd","transform-modules-commonjs","transformModulesCommonjs","transform-modules-systemjs","transformModulesSystemjs","transform-modules-umd","transformModulesUmd","transform-named-capturing-groups-regex","transformNamedCapturingGroupsRegex","transform-new-target","transformNewTarget","transform-nullish-coalescing-operator","proposalNullishCoalescingOperator","transform-numeric-separator","proposalNumericSeparator","transform-object-rest-spread","proposalObjectRestSpread","transform-object-super","transformObjectSuper","transform-optional-catch-binding","proposalOptionalCatchBinding","transform-optional-chaining","proposalOptionalChaining","transform-parameters","transformParameters","transform-private-methods","proposalPrivateMethods","transform-private-property-in-object","proposalPrivatePropertyInObject","transform-property-literals","transformPropertyLiterals","transform-regenerator","transformRegenerator","transform-reserved-words","transformReservedWords","transform-shorthand-properties","transformShorthandProperties","transform-spread","transformSpread","transform-sticky-regex","transformStickyRegex","transform-template-literals","transformTemplateLiterals","transform-typeof-symbol","transformTypeofSymbol","transform-unicode-escapes","transformUnicodeEscapes","transform-unicode-property-regex","proposalUnicodePropertyRegex","transform-unicode-regex","transformUnicodeRegex","transform-unicode-sets-regex","transformUnicodeSetsRegex","exports","default","minVersions","Object","assign","e","syntax-async-generators","syntax-class-properties","syntax-class-static-block","syntax-dynamic-import","syntax-export-namespace-from","syntax-import-meta","syntax-json-strings","syntax-logical-assignment-operators","syntax-nullish-coalescing-operator","syntax-numeric-separator","syntax-object-rest-spread","syntax-optional-catch-binding","syntax-optional-chaining","syntax-private-property-in-object","syntax-top-level-await"],"sources":["../src/available-plugins.ts"],"sourcesContent":["/* eslint sort-keys: \"error\" */\n\nimport syntaxImportAssertions from \"@babel/plugin-syntax-import-assertions\";\nimport syntaxImportAttributes from \"@babel/plugin-syntax-import-attributes\";\n\nimport proposalAsyncGeneratorFunctions from \"@babel/plugin-transform-async-generator-functions\";\nimport proposalClassProperties from \"@babel/plugin-transform-class-properties\";\nimport proposalClassStaticBlock from \"@babel/plugin-transform-class-static-block\";\nimport proposalDynamicImport from \"@babel/plugin-transform-dynamic-import\";\nimport proposalExportNamespaceFrom from \"@babel/plugin-transform-export-namespace-from\";\nimport proposalJsonStrings from \"@babel/plugin-transform-json-strings\";\nimport proposalLogicalAssignmentOperators from \"@babel/plugin-transform-logical-assignment-operators\";\nimport proposalNullishCoalescingOperator from \"@babel/plugin-transform-nullish-coalescing-operator\";\nimport proposalNumericSeparator from \"@babel/plugin-transform-numeric-separator\";\nimport proposalObjectRestSpread from \"@babel/plugin-transform-object-rest-spread\";\nimport proposalOptionalCatchBinding from \"@babel/plugin-transform-optional-catch-binding\";\nimport proposalOptionalChaining from \"@babel/plugin-transform-optional-chaining\";\nimport proposalPrivateMethods from \"@babel/plugin-transform-private-methods\";\nimport proposalPrivatePropertyInObject from \"@babel/plugin-transform-private-property-in-object\";\nimport proposalUnicodePropertyRegex from \"@babel/plugin-transform-unicode-property-regex\";\nimport transformAsyncToGenerator from \"@babel/plugin-transform-async-to-generator\";\nimport transformArrowFunctions from \"@babel/plugin-transform-arrow-functions\";\nimport transformBlockScopedFunctions from \"@babel/plugin-transform-block-scoped-functions\";\nimport transformBlockScoping from \"@babel/plugin-transform-block-scoping\";\nimport transformClasses from \"@babel/plugin-transform-classes\";\nimport transformComputedProperties from \"@babel/plugin-transform-computed-properties\";\nimport transformDestructuring from \"@babel/plugin-transform-destructuring\";\nimport transformDotallRegex from \"@babel/plugin-transform-dotall-regex\";\nimport transformDuplicateKeys from \"@babel/plugin-transform-duplicate-keys\";\nimport transformExponentialOperator from \"@babel/plugin-transform-exponentiation-operator\";\nimport transformForOf from \"@babel/plugin-transform-for-of\";\nimport transformFunctionName from \"@babel/plugin-transform-function-name\";\nimport transformLiterals from \"@babel/plugin-transform-literals\";\nimport transformMemberExpressionLiterals from \"@babel/plugin-transform-member-expression-literals\";\nimport transformModulesAmd from \"@babel/plugin-transform-modules-amd\";\nimport transformModulesCommonjs from \"@babel/plugin-transform-modules-commonjs\";\nimport transformModulesSystemjs from \"@babel/plugin-transform-modules-systemjs\";\nimport transformModulesUmd from \"@babel/plugin-transform-modules-umd\";\nimport transformNamedCapturingGroupsRegex from \"@babel/plugin-transform-named-capturing-groups-regex\";\nimport transformNewTarget from \"@babel/plugin-transform-new-target\";\nimport transformObjectSuper from \"@babel/plugin-transform-object-super\";\nimport transformParameters from \"@babel/plugin-transform-parameters\";\nimport transformPropertyLiterals from \"@babel/plugin-transform-property-literals\";\nimport transformRegenerator from \"@babel/plugin-transform-regenerator\";\nimport transformReservedWords from \"@babel/plugin-transform-reserved-words\";\nimport transformShorthandProperties from \"@babel/plugin-transform-shorthand-properties\";\nimport transformSpread from \"@babel/plugin-transform-spread\";\nimport transformStickyRegex from \"@babel/plugin-transform-sticky-regex\";\nimport transformTemplateLiterals from \"@babel/plugin-transform-template-literals\";\nimport transformTypeofSymbol from \"@babel/plugin-transform-typeof-symbol\";\nimport transformUnicodeEscapes from \"@babel/plugin-transform-unicode-escapes\";\nimport transformUnicodeRegex from \"@babel/plugin-transform-unicode-regex\";\nimport transformUnicodeSetsRegex from \"@babel/plugin-transform-unicode-sets-regex\";\n\nimport bugfixAsyncArrowsInClass from \"@babel/preset-modules/lib/plugins/transform-async-arrows-in-class/index.js\";\nimport bugfixEdgeDefaultParameters from \"@babel/preset-modules/lib/plugins/transform-edge-default-parameters/index.js\";\nimport bugfixEdgeFunctionName from \"@babel/preset-modules/lib/plugins/transform-edge-function-name/index.js\";\nimport bugfixTaggedTemplateCaching from \"@babel/preset-modules/lib/plugins/transform-tagged-template-caching/index.js\";\nimport bugfixSafariBlockShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-block-shadowing/index.js\";\nimport bugfixSafariForShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js\";\nimport bugfixSafariIdDestructuringCollisionInFunctionExpression from \"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression\";\nimport bugfixV8SpreadParametersInOptionalChaining from \"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining\";\n\nexport { availablePlugins as default };\nconst availablePlugins = {\n \"bugfix/transform-async-arrows-in-class\": () => bugfixAsyncArrowsInClass,\n \"bugfix/transform-edge-default-parameters\": () => bugfixEdgeDefaultParameters,\n \"bugfix/transform-edge-function-name\": () => bugfixEdgeFunctionName,\n \"bugfix/transform-safari-block-shadowing\": () => bugfixSafariBlockShadowing,\n \"bugfix/transform-safari-for-shadowing\": () => bugfixSafariForShadowing,\n \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n () => bugfixSafariIdDestructuringCollisionInFunctionExpression,\n \"bugfix/transform-tagged-template-caching\": () => bugfixTaggedTemplateCaching,\n \"bugfix/transform-v8-spread-parameters-in-optional-chaining\": () =>\n bugfixV8SpreadParametersInOptionalChaining,\n \"syntax-import-assertions\": () => syntaxImportAssertions,\n \"syntax-import-attributes\": () => syntaxImportAttributes,\n \"transform-arrow-functions\": () => transformArrowFunctions,\n \"transform-async-generator-functions\": () => proposalAsyncGeneratorFunctions,\n \"transform-async-to-generator\": () => transformAsyncToGenerator,\n \"transform-block-scoped-functions\": () => transformBlockScopedFunctions,\n \"transform-block-scoping\": () => transformBlockScoping,\n \"transform-class-properties\": () => proposalClassProperties,\n \"transform-class-static-block\": () => proposalClassStaticBlock,\n \"transform-classes\": () => transformClasses,\n \"transform-computed-properties\": () => transformComputedProperties,\n \"transform-destructuring\": () => transformDestructuring,\n \"transform-dotall-regex\": () => transformDotallRegex,\n \"transform-duplicate-keys\": () => transformDuplicateKeys,\n \"transform-dynamic-import\": () => proposalDynamicImport,\n \"transform-exponentiation-operator\": () => transformExponentialOperator,\n \"transform-export-namespace-from\": () => proposalExportNamespaceFrom,\n \"transform-for-of\": () => transformForOf,\n \"transform-function-name\": () => transformFunctionName,\n \"transform-json-strings\": () => proposalJsonStrings,\n \"transform-literals\": () => transformLiterals,\n \"transform-logical-assignment-operators\": () =>\n proposalLogicalAssignmentOperators,\n \"transform-member-expression-literals\": () =>\n transformMemberExpressionLiterals,\n \"transform-modules-amd\": () => transformModulesAmd,\n \"transform-modules-commonjs\": () => transformModulesCommonjs,\n \"transform-modules-systemjs\": () => transformModulesSystemjs,\n \"transform-modules-umd\": () => transformModulesUmd,\n \"transform-named-capturing-groups-regex\": () =>\n transformNamedCapturingGroupsRegex,\n \"transform-new-target\": () => transformNewTarget,\n \"transform-nullish-coalescing-operator\": () =>\n proposalNullishCoalescingOperator,\n \"transform-numeric-separator\": () => proposalNumericSeparator,\n \"transform-object-rest-spread\": () => proposalObjectRestSpread,\n \"transform-object-super\": () => transformObjectSuper,\n \"transform-optional-catch-binding\": () => proposalOptionalCatchBinding,\n \"transform-optional-chaining\": () => proposalOptionalChaining,\n \"transform-parameters\": () => transformParameters,\n \"transform-private-methods\": () => proposalPrivateMethods,\n \"transform-private-property-in-object\": () => proposalPrivatePropertyInObject,\n \"transform-property-literals\": () => transformPropertyLiterals,\n \"transform-regenerator\": () => transformRegenerator,\n \"transform-reserved-words\": () => transformReservedWords,\n \"transform-shorthand-properties\": () => transformShorthandProperties,\n \"transform-spread\": () => transformSpread,\n \"transform-sticky-regex\": () => transformStickyRegex,\n \"transform-template-literals\": () => transformTemplateLiterals,\n \"transform-typeof-symbol\": () => transformTypeofSymbol,\n \"transform-unicode-escapes\": () => transformUnicodeEscapes,\n \"transform-unicode-property-regex\": () => proposalUnicodePropertyRegex,\n \"transform-unicode-regex\": () => transformUnicodeRegex,\n \"transform-unicode-sets-regex\": () => transformUnicodeSetsRegex,\n};\n\nexport const minVersions = {};\n\nif (!process.env.BABEL_8_BREAKING) {\n /* eslint-disable no-restricted-globals */\n\n Object.assign(minVersions, {\n \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n \"7.16.0\",\n \"syntax-import-attributes\": \"7.22.0\",\n \"transform-class-static-block\": \"7.12.0\",\n \"transform-private-property-in-object\": \"7.10.0\",\n });\n\n // We cannot use the require call in ESM and when bundling.\n // Babel standalone uses a modern parser, so just include a noop plugin.\n // Use `bind` so that it's not detected as a duplicate plugin when using it.\n\n // This is a factory to create a function that returns a no-op plugn\n const e = () => () => () => ({});\n\n Object.assign(availablePlugins, {\n \"syntax-async-generators\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-async-generators\"),\n \"syntax-class-properties\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-class-properties\"),\n \"syntax-class-static-block\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-class-static-block\"),\n \"syntax-dynamic-import\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-dynamic-import\"),\n \"syntax-export-namespace-from\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-export-namespace-from\"),\n \"syntax-import-meta\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-import-meta\"),\n \"syntax-json-strings\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-json-strings\"),\n \"syntax-logical-assignment-operators\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-logical-assignment-operators\"),\n \"syntax-nullish-coalescing-operator\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-nullish-coalescing-operator\"),\n \"syntax-numeric-separator\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-numeric-separator\"),\n \"syntax-object-rest-spread\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-object-rest-spread\"),\n \"syntax-optional-catch-binding\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-optional-catch-binding\"),\n \"syntax-optional-chaining\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-optional-chaining\"),\n \"syntax-private-property-in-object\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-private-property-in-object\"),\n \"syntax-top-level-await\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-top-level-await\"),\n });\n\n // This is a CJS plugin that depends on a package from the monorepo, so it\n // breaks using ESM. Given that ESM builds are new enough to have this\n // syntax enabled by default, we can safely skip enabling it.\n if (!USE_ESM) {\n // @ts-expect-error unknown key\n availablePlugins[\"unicode-sets-regex\"] = IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-unicode-sets-regex\");\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_pluginSyntaxImportAssertions","require","_pluginSyntaxImportAttributes","_pluginTransformAsyncGeneratorFunctions","_pluginTransformClassProperties","_pluginTransformClassStaticBlock","_pluginTransformDynamicImport","_pluginTransformExportNamespaceFrom","_pluginTransformJsonStrings","_pluginTransformLogicalAssignmentOperators","_pluginTransformNullishCoalescingOperator","_pluginTransformNumericSeparator","_pluginTransformObjectRestSpread","_pluginTransformOptionalCatchBinding","_pluginTransformOptionalChaining","_pluginTransformPrivateMethods","_pluginTransformPrivatePropertyInObject","_pluginTransformUnicodePropertyRegex","_pluginTransformAsyncToGenerator","_pluginTransformArrowFunctions","_pluginTransformBlockScopedFunctions","_pluginTransformBlockScoping","_pluginTransformClasses","_pluginTransformComputedProperties","_pluginTransformDestructuring","_pluginTransformDotallRegex","_pluginTransformDuplicateKeys","_pluginTransformExponentiationOperator","_pluginTransformForOf","_pluginTransformFunctionName","_pluginTransformLiterals","_pluginTransformMemberExpressionLiterals","_pluginTransformModulesAmd","_pluginTransformModulesCommonjs","_pluginTransformModulesSystemjs","_pluginTransformModulesUmd","_pluginTransformNamedCapturingGroupsRegex","_pluginTransformNewTarget","_pluginTransformObjectSuper","_pluginTransformParameters","_pluginTransformPropertyLiterals","_pluginTransformRegenerator","_pluginTransformReservedWords","_pluginTransformShorthandProperties","_pluginTransformSpread","_pluginTransformStickyRegex","_pluginTransformTemplateLiterals","_pluginTransformTypeofSymbol","_pluginTransformUnicodeEscapes","_pluginTransformUnicodeRegex","_pluginTransformUnicodeSetsRegex","_index","_index2","_index3","_index4","_index5","_index6","_pluginBugfixSafariIdDestructuringCollisionInFunctionExpression","_pluginBugfixV8SpreadParametersInOptionalChaining","_pluginBugfixV8StaticClassFieldsRedefineReadonly","availablePlugins","exports","default","bugfix/transform-async-arrows-in-class","bugfixAsyncArrowsInClass","bugfix/transform-edge-default-parameters","bugfixEdgeDefaultParameters","bugfix/transform-edge-function-name","bugfixEdgeFunctionName","bugfix/transform-safari-block-shadowing","bugfixSafariBlockShadowing","bugfix/transform-safari-for-shadowing","bugfixSafariForShadowing","bugfix/transform-safari-id-destructuring-collision-in-function-expression","bugfixSafariIdDestructuringCollisionInFunctionExpression","bugfix/transform-tagged-template-caching","bugfixTaggedTemplateCaching","bugfix/transform-v8-spread-parameters-in-optional-chaining","bugfixV8SpreadParametersInOptionalChaining","bugfix/transform-v8-static-class-fields-redefine-readonly","bugfixV8StaticClassFieldsRedefineReadonly","syntax-import-assertions","syntaxImportAssertions","syntax-import-attributes","syntaxImportAttributes","transform-arrow-functions","transformArrowFunctions","transform-async-generator-functions","proposalAsyncGeneratorFunctions","transform-async-to-generator","transformAsyncToGenerator","transform-block-scoped-functions","transformBlockScopedFunctions","transform-block-scoping","transformBlockScoping","transform-class-properties","proposalClassProperties","transform-class-static-block","proposalClassStaticBlock","transform-classes","transformClasses","transform-computed-properties","transformComputedProperties","transform-destructuring","transformDestructuring","transform-dotall-regex","transformDotallRegex","transform-duplicate-keys","transformDuplicateKeys","transform-dynamic-import","proposalDynamicImport","transform-exponentiation-operator","transformExponentialOperator","transform-export-namespace-from","proposalExportNamespaceFrom","transform-for-of","transformForOf","transform-function-name","transformFunctionName","transform-json-strings","proposalJsonStrings","transform-literals","transformLiterals","transform-logical-assignment-operators","proposalLogicalAssignmentOperators","transform-member-expression-literals","transformMemberExpressionLiterals","transform-modules-amd","transformModulesAmd","transform-modules-commonjs","transformModulesCommonjs","transform-modules-systemjs","transformModulesSystemjs","transform-modules-umd","transformModulesUmd","transform-named-capturing-groups-regex","transformNamedCapturingGroupsRegex","transform-new-target","transformNewTarget","transform-nullish-coalescing-operator","proposalNullishCoalescingOperator","transform-numeric-separator","proposalNumericSeparator","transform-object-rest-spread","proposalObjectRestSpread","transform-object-super","transformObjectSuper","transform-optional-catch-binding","proposalOptionalCatchBinding","transform-optional-chaining","proposalOptionalChaining","transform-parameters","transformParameters","transform-private-methods","proposalPrivateMethods","transform-private-property-in-object","proposalPrivatePropertyInObject","transform-property-literals","transformPropertyLiterals","transform-regenerator","transformRegenerator","transform-reserved-words","transformReservedWords","transform-shorthand-properties","transformShorthandProperties","transform-spread","transformSpread","transform-sticky-regex","transformStickyRegex","transform-template-literals","transformTemplateLiterals","transform-typeof-symbol","transformTypeofSymbol","transform-unicode-escapes","transformUnicodeEscapes","transform-unicode-property-regex","proposalUnicodePropertyRegex","transform-unicode-regex","transformUnicodeRegex","transform-unicode-sets-regex","transformUnicodeSetsRegex","minVersions","Object","assign","e","syntax-async-generators","syntax-class-properties","syntax-class-static-block","syntax-dynamic-import","syntax-export-namespace-from","syntax-import-meta","syntax-json-strings","syntax-logical-assignment-operators","syntax-nullish-coalescing-operator","syntax-numeric-separator","syntax-object-rest-spread","syntax-optional-catch-binding","syntax-optional-chaining","syntax-private-property-in-object","syntax-top-level-await"],"sources":["../src/available-plugins.ts"],"sourcesContent":["/* eslint sort-keys: \"error\" */\n\nimport syntaxImportAssertions from \"@babel/plugin-syntax-import-assertions\";\nimport syntaxImportAttributes from \"@babel/plugin-syntax-import-attributes\";\n\nimport proposalAsyncGeneratorFunctions from \"@babel/plugin-transform-async-generator-functions\";\nimport proposalClassProperties from \"@babel/plugin-transform-class-properties\";\nimport proposalClassStaticBlock from \"@babel/plugin-transform-class-static-block\";\nimport proposalDynamicImport from \"@babel/plugin-transform-dynamic-import\";\nimport proposalExportNamespaceFrom from \"@babel/plugin-transform-export-namespace-from\";\nimport proposalJsonStrings from \"@babel/plugin-transform-json-strings\";\nimport proposalLogicalAssignmentOperators from \"@babel/plugin-transform-logical-assignment-operators\";\nimport proposalNullishCoalescingOperator from \"@babel/plugin-transform-nullish-coalescing-operator\";\nimport proposalNumericSeparator from \"@babel/plugin-transform-numeric-separator\";\nimport proposalObjectRestSpread from \"@babel/plugin-transform-object-rest-spread\";\nimport proposalOptionalCatchBinding from \"@babel/plugin-transform-optional-catch-binding\";\nimport proposalOptionalChaining from \"@babel/plugin-transform-optional-chaining\";\nimport proposalPrivateMethods from \"@babel/plugin-transform-private-methods\";\nimport proposalPrivatePropertyInObject from \"@babel/plugin-transform-private-property-in-object\";\nimport proposalUnicodePropertyRegex from \"@babel/plugin-transform-unicode-property-regex\";\nimport transformAsyncToGenerator from \"@babel/plugin-transform-async-to-generator\";\nimport transformArrowFunctions from \"@babel/plugin-transform-arrow-functions\";\nimport transformBlockScopedFunctions from \"@babel/plugin-transform-block-scoped-functions\";\nimport transformBlockScoping from \"@babel/plugin-transform-block-scoping\";\nimport transformClasses from \"@babel/plugin-transform-classes\";\nimport transformComputedProperties from \"@babel/plugin-transform-computed-properties\";\nimport transformDestructuring from \"@babel/plugin-transform-destructuring\";\nimport transformDotallRegex from \"@babel/plugin-transform-dotall-regex\";\nimport transformDuplicateKeys from \"@babel/plugin-transform-duplicate-keys\";\nimport transformExponentialOperator from \"@babel/plugin-transform-exponentiation-operator\";\nimport transformForOf from \"@babel/plugin-transform-for-of\";\nimport transformFunctionName from \"@babel/plugin-transform-function-name\";\nimport transformLiterals from \"@babel/plugin-transform-literals\";\nimport transformMemberExpressionLiterals from \"@babel/plugin-transform-member-expression-literals\";\nimport transformModulesAmd from \"@babel/plugin-transform-modules-amd\";\nimport transformModulesCommonjs from \"@babel/plugin-transform-modules-commonjs\";\nimport transformModulesSystemjs from \"@babel/plugin-transform-modules-systemjs\";\nimport transformModulesUmd from \"@babel/plugin-transform-modules-umd\";\nimport transformNamedCapturingGroupsRegex from \"@babel/plugin-transform-named-capturing-groups-regex\";\nimport transformNewTarget from \"@babel/plugin-transform-new-target\";\nimport transformObjectSuper from \"@babel/plugin-transform-object-super\";\nimport transformParameters from \"@babel/plugin-transform-parameters\";\nimport transformPropertyLiterals from \"@babel/plugin-transform-property-literals\";\nimport transformRegenerator from \"@babel/plugin-transform-regenerator\";\nimport transformReservedWords from \"@babel/plugin-transform-reserved-words\";\nimport transformShorthandProperties from \"@babel/plugin-transform-shorthand-properties\";\nimport transformSpread from \"@babel/plugin-transform-spread\";\nimport transformStickyRegex from \"@babel/plugin-transform-sticky-regex\";\nimport transformTemplateLiterals from \"@babel/plugin-transform-template-literals\";\nimport transformTypeofSymbol from \"@babel/plugin-transform-typeof-symbol\";\nimport transformUnicodeEscapes from \"@babel/plugin-transform-unicode-escapes\";\nimport transformUnicodeRegex from \"@babel/plugin-transform-unicode-regex\";\nimport transformUnicodeSetsRegex from \"@babel/plugin-transform-unicode-sets-regex\";\n\nimport bugfixAsyncArrowsInClass from \"@babel/preset-modules/lib/plugins/transform-async-arrows-in-class/index.js\";\nimport bugfixEdgeDefaultParameters from \"@babel/preset-modules/lib/plugins/transform-edge-default-parameters/index.js\";\nimport bugfixEdgeFunctionName from \"@babel/preset-modules/lib/plugins/transform-edge-function-name/index.js\";\nimport bugfixTaggedTemplateCaching from \"@babel/preset-modules/lib/plugins/transform-tagged-template-caching/index.js\";\nimport bugfixSafariBlockShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-block-shadowing/index.js\";\nimport bugfixSafariForShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js\";\nimport bugfixSafariIdDestructuringCollisionInFunctionExpression from \"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression\";\nimport bugfixV8SpreadParametersInOptionalChaining from \"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining\";\nimport bugfixV8StaticClassFieldsRedefineReadonly from \"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly\";\n\nexport { availablePlugins as default };\nconst availablePlugins = {\n \"bugfix/transform-async-arrows-in-class\": () => bugfixAsyncArrowsInClass,\n \"bugfix/transform-edge-default-parameters\": () => bugfixEdgeDefaultParameters,\n \"bugfix/transform-edge-function-name\": () => bugfixEdgeFunctionName,\n \"bugfix/transform-safari-block-shadowing\": () => bugfixSafariBlockShadowing,\n \"bugfix/transform-safari-for-shadowing\": () => bugfixSafariForShadowing,\n \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n () => bugfixSafariIdDestructuringCollisionInFunctionExpression,\n \"bugfix/transform-tagged-template-caching\": () => bugfixTaggedTemplateCaching,\n \"bugfix/transform-v8-spread-parameters-in-optional-chaining\": () =>\n bugfixV8SpreadParametersInOptionalChaining,\n \"bugfix/transform-v8-static-class-fields-redefine-readonly\": () =>\n bugfixV8StaticClassFieldsRedefineReadonly,\n \"syntax-import-assertions\": () => syntaxImportAssertions,\n \"syntax-import-attributes\": () => syntaxImportAttributes,\n \"transform-arrow-functions\": () => transformArrowFunctions,\n \"transform-async-generator-functions\": () => proposalAsyncGeneratorFunctions,\n \"transform-async-to-generator\": () => transformAsyncToGenerator,\n \"transform-block-scoped-functions\": () => transformBlockScopedFunctions,\n \"transform-block-scoping\": () => transformBlockScoping,\n \"transform-class-properties\": () => proposalClassProperties,\n \"transform-class-static-block\": () => proposalClassStaticBlock,\n \"transform-classes\": () => transformClasses,\n \"transform-computed-properties\": () => transformComputedProperties,\n \"transform-destructuring\": () => transformDestructuring,\n \"transform-dotall-regex\": () => transformDotallRegex,\n \"transform-duplicate-keys\": () => transformDuplicateKeys,\n \"transform-dynamic-import\": () => proposalDynamicImport,\n \"transform-exponentiation-operator\": () => transformExponentialOperator,\n \"transform-export-namespace-from\": () => proposalExportNamespaceFrom,\n \"transform-for-of\": () => transformForOf,\n \"transform-function-name\": () => transformFunctionName,\n \"transform-json-strings\": () => proposalJsonStrings,\n \"transform-literals\": () => transformLiterals,\n \"transform-logical-assignment-operators\": () =>\n proposalLogicalAssignmentOperators,\n \"transform-member-expression-literals\": () =>\n transformMemberExpressionLiterals,\n \"transform-modules-amd\": () => transformModulesAmd,\n \"transform-modules-commonjs\": () => transformModulesCommonjs,\n \"transform-modules-systemjs\": () => transformModulesSystemjs,\n \"transform-modules-umd\": () => transformModulesUmd,\n \"transform-named-capturing-groups-regex\": () =>\n transformNamedCapturingGroupsRegex,\n \"transform-new-target\": () => transformNewTarget,\n \"transform-nullish-coalescing-operator\": () =>\n proposalNullishCoalescingOperator,\n \"transform-numeric-separator\": () => proposalNumericSeparator,\n \"transform-object-rest-spread\": () => proposalObjectRestSpread,\n \"transform-object-super\": () => transformObjectSuper,\n \"transform-optional-catch-binding\": () => proposalOptionalCatchBinding,\n \"transform-optional-chaining\": () => proposalOptionalChaining,\n \"transform-parameters\": () => transformParameters,\n \"transform-private-methods\": () => proposalPrivateMethods,\n \"transform-private-property-in-object\": () => proposalPrivatePropertyInObject,\n \"transform-property-literals\": () => transformPropertyLiterals,\n \"transform-regenerator\": () => transformRegenerator,\n \"transform-reserved-words\": () => transformReservedWords,\n \"transform-shorthand-properties\": () => transformShorthandProperties,\n \"transform-spread\": () => transformSpread,\n \"transform-sticky-regex\": () => transformStickyRegex,\n \"transform-template-literals\": () => transformTemplateLiterals,\n \"transform-typeof-symbol\": () => transformTypeofSymbol,\n \"transform-unicode-escapes\": () => transformUnicodeEscapes,\n \"transform-unicode-property-regex\": () => proposalUnicodePropertyRegex,\n \"transform-unicode-regex\": () => transformUnicodeRegex,\n \"transform-unicode-sets-regex\": () => transformUnicodeSetsRegex,\n};\n\nexport const minVersions = {};\n\nif (!process.env.BABEL_8_BREAKING) {\n /* eslint-disable no-restricted-globals */\n\n Object.assign(minVersions, {\n \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n \"7.16.0\",\n \"bugfix/transform-v8-static-class-fields-redefine-readonly\": \"7.12.0\",\n \"syntax-import-attributes\": \"7.22.0\",\n \"transform-class-static-block\": \"7.12.0\",\n \"transform-private-property-in-object\": \"7.10.0\",\n });\n\n // We cannot use the require call in ESM and when bundling.\n // Babel standalone uses a modern parser, so just include a noop plugin.\n // Use `bind` so that it's not detected as a duplicate plugin when using it.\n\n // This is a factory to create a function that returns a no-op plugn\n const e = () => () => () => ({});\n\n Object.assign(availablePlugins, {\n \"syntax-async-generators\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-async-generators\"),\n \"syntax-class-properties\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-class-properties\"),\n \"syntax-class-static-block\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-class-static-block\"),\n \"syntax-dynamic-import\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-dynamic-import\"),\n \"syntax-export-namespace-from\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-export-namespace-from\"),\n \"syntax-import-meta\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-import-meta\"),\n \"syntax-json-strings\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-json-strings\"),\n \"syntax-logical-assignment-operators\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-logical-assignment-operators\"),\n \"syntax-nullish-coalescing-operator\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-nullish-coalescing-operator\"),\n \"syntax-numeric-separator\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-numeric-separator\"),\n \"syntax-object-rest-spread\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-object-rest-spread\"),\n \"syntax-optional-catch-binding\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-optional-catch-binding\"),\n \"syntax-optional-chaining\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-optional-chaining\"),\n \"syntax-private-property-in-object\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-private-property-in-object\"),\n \"syntax-top-level-await\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-top-level-await\"),\n });\n\n // This is a CJS plugin that depends on a package from the monorepo, so it\n // breaks using ESM. Given that ESM builds are new enough to have this\n // syntax enabled by default, we can safely skip enabling it.\n if (!USE_ESM) {\n // @ts-expect-error unknown key\n availablePlugins[\"unicode-sets-regex\"] = IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-unicode-sets-regex\");\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/filter-items.js b/node_modules/@babel/preset-env/lib/filter-items.js index ebb0da95..d0926686 100644 --- a/node_modules/@babel/preset-env/lib/filter-items.js +++ b/node_modules/@babel/preset-env/lib/filter-items.js @@ -17,7 +17,7 @@ function addProposalSyntaxPlugins(items, proposalSyntaxPlugins) { function removeUnnecessaryItems(items, overlapping) { items.forEach(item => { var _overlapping$item; - (_overlapping$item = overlapping[item]) == null ? void 0 : _overlapping$item.forEach(name => items.delete(name)); + (_overlapping$item = overlapping[item]) == null || _overlapping$item.forEach(name => items.delete(name)); }); } function removeUnsupportedItems(items, babelVersion) { diff --git a/node_modules/@babel/preset-env/lib/filter-items.js.map b/node_modules/@babel/preset-env/lib/filter-items.js.map index a72cf80f..11c6700a 100644 --- a/node_modules/@babel/preset-env/lib/filter-items.js.map +++ b/node_modules/@babel/preset-env/lib/filter-items.js.map @@ -1 +1 @@ -{"version":3,"names":["_semver","require","_availablePlugins","has","Function","call","bind","Object","hasOwnProperty","addProposalSyntaxPlugins","items","proposalSyntaxPlugins","forEach","plugin","add","removeUnnecessaryItems","overlapping","item","_overlapping$item","name","delete","removeUnsupportedItems","babelVersion","minVersions","semver","lt"],"sources":["../src/filter-items.ts"],"sourcesContent":["import semver from \"semver\";\nimport { minVersions } from \"./available-plugins.ts\";\n\nconst has = Function.call.bind(Object.hasOwnProperty);\n\nexport function addProposalSyntaxPlugins(\n items: Set<string>,\n proposalSyntaxPlugins: readonly string[],\n) {\n proposalSyntaxPlugins.forEach(plugin => {\n items.add(plugin);\n });\n}\nexport function removeUnnecessaryItems(\n items: Set<string>,\n overlapping: { [name: string]: string[] },\n) {\n items.forEach(item => {\n overlapping[item]?.forEach(name => items.delete(name));\n });\n}\nexport function removeUnsupportedItems(\n items: Set<string>,\n babelVersion: string,\n) {\n items.forEach(item => {\n if (\n has(minVersions, item) &&\n semver.lt(\n babelVersion,\n // @ts-expect-error we have checked minVersions[item] in has call\n minVersions[item],\n )\n ) {\n items.delete(item);\n }\n });\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,MAAME,GAAG,GAAGC,QAAQ,CAACC,IAAI,CAACC,IAAI,CAACC,MAAM,CAACC,cAAc,CAAC;AAE9C,SAASC,wBAAwBA,CACtCC,KAAkB,EAClBC,qBAAwC,EACxC;EACAA,qBAAqB,CAACC,OAAO,CAACC,MAAM,IAAI;IACtCH,KAAK,CAACI,GAAG,CAACD,MAAM,CAAC;EACnB,CAAC,CAAC;AACJ;AACO,SAASE,sBAAsBA,CACpCL,KAAkB,EAClBM,WAAyC,EACzC;EACAN,KAAK,CAACE,OAAO,CAACK,IAAI,IAAI;IAAA,IAAAC,iBAAA;IACpB,CAAAA,iBAAA,GAAAF,WAAW,CAACC,IAAI,CAAC,qBAAjBC,iBAAA,CAAmBN,OAAO,CAACO,IAAI,IAAIT,KAAK,CAACU,MAAM,CAACD,IAAI,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ;AACO,SAASE,sBAAsBA,CACpCX,KAAkB,EAClBY,YAAoB,EACpB;EACAZ,KAAK,CAACE,OAAO,CAACK,IAAI,IAAI;IACpB,IACEd,GAAG,CAACoB,6BAAW,EAAEN,IAAI,CAAC,IACtBO,OAAM,CAACC,EAAE,CACPH,YAAY,EAEZC,6BAAW,CAACN,IAAI,CAClB,CAAC,EACD;MACAP,KAAK,CAACU,MAAM,CAACH,IAAI,CAAC;IACpB;EACF,CAAC,CAAC;AACJ"}
\ No newline at end of file +{"version":3,"names":["_semver","require","_availablePlugins","has","Function","call","bind","Object","hasOwnProperty","addProposalSyntaxPlugins","items","proposalSyntaxPlugins","forEach","plugin","add","removeUnnecessaryItems","overlapping","item","_overlapping$item","name","delete","removeUnsupportedItems","babelVersion","minVersions","semver","lt"],"sources":["../src/filter-items.ts"],"sourcesContent":["import semver from \"semver\";\nimport { minVersions } from \"./available-plugins.ts\";\n\nconst has = Function.call.bind(Object.hasOwnProperty);\n\nexport function addProposalSyntaxPlugins(\n items: Set<string>,\n proposalSyntaxPlugins: readonly string[],\n) {\n proposalSyntaxPlugins.forEach(plugin => {\n items.add(plugin);\n });\n}\nexport function removeUnnecessaryItems(\n items: Set<string>,\n overlapping: { [name: string]: string[] },\n) {\n items.forEach(item => {\n overlapping[item]?.forEach(name => items.delete(name));\n });\n}\nexport function removeUnsupportedItems(\n items: Set<string>,\n babelVersion: string,\n) {\n items.forEach(item => {\n if (\n has(minVersions, item) &&\n semver.lt(\n babelVersion,\n // @ts-expect-error we have checked minVersions[item] in has call\n minVersions[item],\n )\n ) {\n items.delete(item);\n }\n });\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AAEA,MAAME,GAAG,GAAGC,QAAQ,CAACC,IAAI,CAACC,IAAI,CAACC,MAAM,CAACC,cAAc,CAAC;AAE9C,SAASC,wBAAwBA,CACtCC,KAAkB,EAClBC,qBAAwC,EACxC;EACAA,qBAAqB,CAACC,OAAO,CAACC,MAAM,IAAI;IACtCH,KAAK,CAACI,GAAG,CAACD,MAAM,CAAC;EACnB,CAAC,CAAC;AACJ;AACO,SAASE,sBAAsBA,CACpCL,KAAkB,EAClBM,WAAyC,EACzC;EACAN,KAAK,CAACE,OAAO,CAACK,IAAI,IAAI;IAAA,IAAAC,iBAAA;IACpB,CAAAA,iBAAA,GAAAF,WAAW,CAACC,IAAI,CAAC,aAAjBC,iBAAA,CAAmBN,OAAO,CAACO,IAAI,IAAIT,KAAK,CAACU,MAAM,CAACD,IAAI,CAAC,CAAC;EACxD,CAAC,CAAC;AACJ;AACO,SAASE,sBAAsBA,CACpCX,KAAkB,EAClBY,YAAoB,EACpB;EACAZ,KAAK,CAACE,OAAO,CAACK,IAAI,IAAI;IACpB,IACEd,GAAG,CAACoB,6BAAW,EAAEN,IAAI,CAAC,IACtBO,OAAM,CAACC,EAAE,CACPH,YAAY,EAEZC,6BAAW,CAACN,IAAI,CAClB,CAAC,EACD;MACAP,KAAK,CAACU,MAAM,CAACH,IAAI,CAAC;IACpB;EACF,CAAC,CAAC;AACJ"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/get-option-specific-excludes.js b/node_modules/@babel/preset-env/lib/get-option-specific-excludes.js deleted file mode 100644 index f969d650..00000000 --- a/node_modules/@babel/preset-env/lib/get-option-specific-excludes.js +++ /dev/null @@ -1,14 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; -const defaultExcludesForLooseMode = ["transform-typeof-symbol"]; -function _default({ - loose -}) { - return loose ? defaultExcludesForLooseMode : null; -} - -//# sourceMappingURL=get-option-specific-excludes.js.map diff --git a/node_modules/@babel/preset-env/lib/get-option-specific-excludes.js.map b/node_modules/@babel/preset-env/lib/get-option-specific-excludes.js.map deleted file mode 100644 index b397cd4f..00000000 --- a/node_modules/@babel/preset-env/lib/get-option-specific-excludes.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["defaultExcludesForLooseMode","_default","loose"],"sources":["../src/get-option-specific-excludes.ts"],"sourcesContent":["const defaultExcludesForLooseMode = [\"transform-typeof-symbol\"];\n\nexport default function ({ loose }: { loose: boolean }): null | string[] {\n return loose ? defaultExcludesForLooseMode : null;\n}\n"],"mappings":";;;;;;AAAA,MAAMA,2BAA2B,GAAG,CAAC,yBAAyB,CAAC;AAEhD,SAAAC,SAAU;EAAEC;AAA0B,CAAC,EAAmB;EACvE,OAAOA,KAAK,GAAGF,2BAA2B,GAAG,IAAI;AACnD"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/index.js b/node_modules/@babel/preset-env/lib/index.js index 527da15e..4738175f 100644 --- a/node_modules/@babel/preset-env/lib/index.js +++ b/node_modules/@babel/preset-env/lib/index.js @@ -3,28 +3,22 @@ Object.defineProperty(exports, "__esModule", { value: true }); -exports.getPolyfillPlugins = exports.getModulesPluginNames = exports.default = void 0; +exports.default = void 0; exports.isPluginRequired = isPluginRequired; exports.transformIncludesAndExcludes = void 0; var _semver = require("semver"); var _debug = require("./debug.js"); -var _getOptionSpecificExcludes = require("./get-option-specific-excludes.js"); var _filterItems = require("./filter-items.js"); var _moduleTransformations = require("./module-transformations.js"); var _normalizeOptions = require("./normalize-options.js"); var _shippedProposals = require("./shipped-proposals.js"); var _pluginsCompatData = require("./plugins-compat-data.js"); -var _regenerator = require("./polyfills/regenerator.js"); -var _babelPolyfill = require("./polyfills/babel-polyfill.js"); -var _babelPluginPolyfillCorejs = require("babel-plugin-polyfill-corejs2"); -var _babelPluginPolyfillCorejs2 = require("babel-plugin-polyfill-corejs3"); -var _babelPluginPolyfillRegenerator = require("babel-plugin-polyfill-regenerator"); +var _babelPluginPolyfillCorejs = require("babel-plugin-polyfill-corejs3"); +var _babel7Plugins = require("./polyfills/babel-7-plugins.cjs"); var _helperCompilationTargets = require("@babel/helper-compilation-targets"); var _availablePlugins = require("./available-plugins.js"); var _helperPluginUtils = require("@babel/helper-plugin-utils"); -const pluginCoreJS2 = _babelPluginPolyfillCorejs.default || _babelPluginPolyfillCorejs; -const pluginCoreJS3 = _babelPluginPolyfillCorejs2.default || _babelPluginPolyfillCorejs2; -const pluginRegenerator = _babelPluginPolyfillRegenerator.default || _babelPluginPolyfillRegenerator; +const pluginCoreJS3 = _babelPluginPolyfillCorejs.default || _babelPluginPolyfillCorejs; function isPluginRequired(targets, support) { return (0, _helperCompilationTargets.isRequired)("fake-name", targets, { compatData: { @@ -76,43 +70,28 @@ const transformIncludesAndExcludes = opts => { }); }; exports.transformIncludesAndExcludes = transformIncludesAndExcludes; -const getModulesPluginNames = ({ - modules, - transformations, - shouldTransformESM, - shouldTransformDynamicImport, - shouldTransformExportNamespaceFrom -}) => { +function getSpecialModulesPluginNames(modules, shouldTransformDynamicImport) { const modulesPluginNames = []; - if (modules !== false && transformations[modules]) { - if (shouldTransformESM) { - modulesPluginNames.push(transformations[modules]); - } - if (shouldTransformDynamicImport) { - if (shouldTransformESM && modules !== "umd") { - modulesPluginNames.push("transform-dynamic-import"); - } else { - console.warn("Dynamic import can only be transformed when transforming ES" + " modules to AMD, CommonJS or SystemJS."); - } - } + if (modules) { + modulesPluginNames.push(_moduleTransformations.default[modules]); } - if (shouldTransformExportNamespaceFrom) { - modulesPluginNames.push("transform-export-namespace-from"); + if (shouldTransformDynamicImport) { + if (modules && modules !== "umd") { + modulesPluginNames.push("transform-dynamic-import"); + } else { + console.warn("Dynamic import can only be transformed when transforming ES" + " modules to AMD, CommonJS or SystemJS."); + } } { if (!shouldTransformDynamicImport) { modulesPluginNames.push("syntax-dynamic-import"); } - if (!shouldTransformExportNamespaceFrom) { - modulesPluginNames.push("syntax-export-namespace-from"); - } modulesPluginNames.push("syntax-top-level-await"); modulesPluginNames.push("syntax-import-meta"); } return modulesPluginNames; -}; -exports.getModulesPluginNames = getModulesPluginNames; -const getPolyfillPlugins = ({ +} +const getCoreJSOptions = ({ useBuiltIns, corejs, polyfillTargets, @@ -120,61 +99,86 @@ const getPolyfillPlugins = ({ exclude, proposals, shippedProposals, - regenerator, debug -}) => { - const polyfillPlugins = []; - if (useBuiltIns === "usage" || useBuiltIns === "entry") { - const pluginOptions = { - method: `${useBuiltIns}-global`, - version: corejs ? corejs.toString() : undefined, - targets: polyfillTargets, - include, - exclude, - proposals, - shippedProposals, - debug, - "#__secret_key__@babel/preset-env__compatibility": { - noRuntimeName: true - } - }; - if (corejs) { - if (useBuiltIns === "usage") { - if (corejs.major === 2) { - polyfillPlugins.push([pluginCoreJS2, pluginOptions], [_babelPolyfill.default, { - usage: true - }]); - } else { - polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babelPolyfill.default, { - usage: true, - deprecated: true - }]); - } - if (regenerator) { - polyfillPlugins.push([pluginRegenerator, { - method: "usage-global", - debug - }]); - } - } else { - if (corejs.major === 2) { - polyfillPlugins.push([_babelPolyfill.default, { - regenerator - }], [pluginCoreJS2, pluginOptions]); - } else { - polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babelPolyfill.default, { - deprecated: true - }]); - if (!regenerator) { - polyfillPlugins.push([_regenerator.default, pluginOptions]); +}) => ({ + method: `${useBuiltIns}-global`, + version: corejs ? corejs.toString() : undefined, + targets: polyfillTargets, + include, + exclude, + proposals, + shippedProposals, + debug, + "#__secret_key__@babel/preset-env__compatibility": { + noRuntimeName: true + } +}); +{ + var getPolyfillPlugins = ({ + useBuiltIns, + corejs, + polyfillTargets, + include, + exclude, + proposals, + shippedProposals, + regenerator, + debug + }) => { + const polyfillPlugins = []; + if (useBuiltIns === "usage" || useBuiltIns === "entry") { + const pluginOptions = getCoreJSOptions({ + useBuiltIns, + corejs, + polyfillTargets, + include, + exclude, + proposals, + shippedProposals, + debug + }); + if (corejs) { + { + if (useBuiltIns === "usage") { + if (corejs.major === 2) { + polyfillPlugins.push([_babel7Plugins.pluginCoreJS2, pluginOptions], [_babel7Plugins.legacyBabelPolyfillPlugin, { + usage: true + }]); + } else { + polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babel7Plugins.legacyBabelPolyfillPlugin, { + usage: true, + deprecated: true + }]); + } + if (regenerator) { + polyfillPlugins.push([_babel7Plugins.pluginRegenerator, { + method: "usage-global", + debug + }]); + } + } else { + if (corejs.major === 2) { + polyfillPlugins.push([_babel7Plugins.legacyBabelPolyfillPlugin, { + regenerator + }], [_babel7Plugins.pluginCoreJS2, pluginOptions]); + } else { + polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babel7Plugins.legacyBabelPolyfillPlugin, { + deprecated: true + }]); + if (!regenerator) { + polyfillPlugins.push([_babel7Plugins.removeRegeneratorEntryPlugin, pluginOptions]); + } + } } } } } + return polyfillPlugins; + }; + { + exports.getPolyfillPlugins = getPolyfillPlugins; } - return polyfillPlugins; -}; -exports.getPolyfillPlugins = getPolyfillPlugins; +} function getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv) { if (optionsTargets != null && optionsTargets.esmodules && optionsTargets.browsers) { console.warn(` @@ -197,9 +201,10 @@ function supportsDynamicImport(caller) { function supportsExportNamespaceFrom(caller) { return !!(caller != null && caller.supportsExportNamespaceFrom); } -var _default = (0, _helperPluginUtils.declarePreset)((api, opts) => { +var _default = exports.default = (0, _helperPluginUtils.declarePreset)((api, opts) => { api.assertVersion(7); const babelTargets = api.targets(); + ; const { bugfixes, configPath, @@ -208,10 +213,8 @@ var _default = (0, _helperPluginUtils.declarePreset)((api, opts) => { forceAllTransforms, ignoreBrowserslistConfig, include: optionsInclude, - loose, - modules, + modules: optionsModules, shippedProposals, - spec, targets: optionsTargets, useBuiltIns, corejs: { @@ -220,6 +223,12 @@ var _default = (0, _helperPluginUtils.declarePreset)((api, opts) => { }, browserslistEnv } = (0, _normalizeOptions.default)(opts); + { + var { + loose, + spec = false + } = opts; + } let targets = babelTargets; if (_semver.lt(api.version, "7.13.0") || opts.targets || opts.configPath || opts.browserslistEnv || opts.ignoreBrowserslistConfig) { { @@ -239,21 +248,12 @@ option \`forceAllTransforms: true\` instead. const include = transformIncludesAndExcludes(optionsInclude); const exclude = transformIncludesAndExcludes(optionsExclude); const compatData = getPluginList(shippedProposals, bugfixes); - const shouldSkipExportNamespaceFrom = modules === "auto" && (api.caller == null ? void 0 : api.caller(supportsExportNamespaceFrom)) || modules === false && !(0, _helperCompilationTargets.isRequired)("transform-export-namespace-from", transformTargets, { - compatData, - includes: include.plugins, - excludes: exclude.plugins - }); - const modulesPluginNames = getModulesPluginNames({ - modules, - transformations: _moduleTransformations.default, - shouldTransformESM: modules !== "auto" || !(api.caller != null && api.caller(supportsStaticESM)), - shouldTransformDynamicImport: modules !== "auto" || !(api.caller != null && api.caller(supportsDynamicImport)), - shouldTransformExportNamespaceFrom: !shouldSkipExportNamespaceFrom - }); - const pluginNames = (0, _helperCompilationTargets.filterItems)(compatData, include.plugins, exclude.plugins, transformTargets, modulesPluginNames, (0, _getOptionSpecificExcludes.default)({ - loose - }), _shippedProposals.pluginSyntaxMap); + const modules = optionsModules === "auto" ? api.caller(supportsStaticESM) ? false : "commonjs" : optionsModules; + const shouldTransformDynamicImport = optionsModules === "auto" ? !api.caller(supportsDynamicImport) : !!modules; + if (optionsModules === "auto" && !api.caller(supportsExportNamespaceFrom) && !exclude.plugins.has("transform-export-namespace-from")) { + include.plugins.add("transform-export-namespace-from"); + } + const pluginNames = (0, _helperCompilationTargets.filterItems)(compatData, include.plugins, exclude.plugins, transformTargets, getSpecialModulesPluginNames(modules, shouldTransformDynamicImport), !loose ? undefined : ["transform-typeof-symbol"], _shippedProposals.pluginSyntaxMap); if (shippedProposals) { (0, _filterItems.addProposalSyntaxPlugins)(pluginNames, _shippedProposals.proposalSyntaxPlugins); } @@ -292,7 +292,7 @@ option \`forceAllTransforms: true\` instead. console.log("@babel/preset-env: `DEBUG` option"); console.log("\nUsing targets:"); console.log(JSON.stringify((0, _helperCompilationTargets.prettifyTargets)(targets), null, 2)); - console.log(`\nUsing modules transform: ${modules.toString()}`); + console.log(`\nUsing modules transform: ${optionsModules.toString()}`); console.log("\nUsing plugins:"); pluginNames.forEach(pluginName => { (0, _debug.logPlugin)(pluginName, targets, compatData); @@ -305,6 +305,40 @@ option \`forceAllTransforms: true\` instead. plugins }; }); -exports.default = _default; +{ + exports.getModulesPluginNames = ({ + modules, + transformations, + shouldTransformESM, + shouldTransformDynamicImport, + shouldTransformExportNamespaceFrom + }) => { + const modulesPluginNames = []; + if (modules !== false && transformations[modules]) { + if (shouldTransformESM) { + modulesPluginNames.push(transformations[modules]); + } + if (shouldTransformDynamicImport) { + if (shouldTransformESM && modules !== "umd") { + modulesPluginNames.push("transform-dynamic-import"); + } else { + console.warn("Dynamic import can only be transformed when transforming ES" + " modules to AMD, CommonJS or SystemJS."); + } + } + } + if (shouldTransformExportNamespaceFrom) { + modulesPluginNames.push("transform-export-namespace-from"); + } + if (!shouldTransformDynamicImport) { + modulesPluginNames.push("syntax-dynamic-import"); + } + if (!shouldTransformExportNamespaceFrom) { + modulesPluginNames.push("syntax-export-namespace-from"); + } + modulesPluginNames.push("syntax-top-level-await"); + modulesPluginNames.push("syntax-import-meta"); + return modulesPluginNames; + }; +} //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/preset-env/lib/index.js.map b/node_modules/@babel/preset-env/lib/index.js.map index 903b92b9..88ca5461 100644 --- a/node_modules/@babel/preset-env/lib/index.js.map +++ b/node_modules/@babel/preset-env/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_semver","require","_debug","_getOptionSpecificExcludes","_filterItems","_moduleTransformations","_normalizeOptions","_shippedProposals","_pluginsCompatData","_regenerator","_babelPolyfill","_babelPluginPolyfillCorejs","_babelPluginPolyfillCorejs2","_babelPluginPolyfillRegenerator","_helperCompilationTargets","_availablePlugins","_helperPluginUtils","pluginCoreJS2","_pluginCoreJS2","default","pluginCoreJS3","_pluginCoreJS3","pluginRegenerator","_pluginRegenerator","isPluginRequired","targets","support","isRequired","compatData","filterStageFromList","list","stageList","Object","keys","reduce","result","item","has","pluginLists","withProposals","withoutBugfixes","pluginsList","withBugfixes","assign","pluginsBugfixesList","withoutProposals","proposalPlugins","getPluginList","proposals","bugfixes","getPlugin","pluginName","plugin","availablePlugins","Error","transformIncludesAndExcludes","opts","opt","target","match","add","all","plugins","Set","builtIns","exports","getModulesPluginNames","modules","transformations","shouldTransformESM","shouldTransformDynamicImport","shouldTransformExportNamespaceFrom","modulesPluginNames","push","console","warn","getPolyfillPlugins","useBuiltIns","corejs","polyfillTargets","include","exclude","shippedProposals","regenerator","debug","polyfillPlugins","pluginOptions","method","version","toString","undefined","noRuntimeName","major","legacyBabelPolyfillPlugin","usage","deprecated","removeRegeneratorEntryPlugin","getLocalTargets","optionsTargets","ignoreBrowserslistConfig","configPath","browserslistEnv","esmodules","browsers","getTargets","supportsStaticESM","caller","supportsDynamicImport","supportsExportNamespaceFrom","_default","declarePreset","api","assertVersion","babelTargets","optionsExclude","forceAllTransforms","optionsInclude","loose","spec","normalizeOptions","semver","lt","hasUglifyTarget","uglify","transformTargets","shouldSkipExportNamespaceFrom","includes","excludes","moduleTransformations","pluginNames","filterItems","getOptionSpecificExcludesFor","pluginSyntaxMap","addProposalSyntaxPlugins","proposalSyntaxPlugins","removeUnsupportedItems","removeUnnecessaryItems","overlappingPlugins","pluginUseBuiltIns","Array","from","map","deprecatedAssertSyntax","concat","log","JSON","stringify","prettifyTargets","forEach","logPlugin"],"sources":["../src/index.ts"],"sourcesContent":["import semver, { type SemVer } from \"semver\";\nimport { logPlugin } from \"./debug.ts\";\nimport getOptionSpecificExcludesFor from \"./get-option-specific-excludes.ts\";\nimport {\n addProposalSyntaxPlugins,\n removeUnnecessaryItems,\n removeUnsupportedItems,\n} from \"./filter-items.ts\";\nimport moduleTransformations from \"./module-transformations.ts\";\nimport normalizeOptions from \"./normalize-options.ts\";\nimport {\n pluginSyntaxMap,\n proposalPlugins,\n proposalSyntaxPlugins,\n} from \"./shipped-proposals.ts\";\nimport {\n plugins as pluginsList,\n pluginsBugfixes as pluginsBugfixesList,\n overlappingPlugins,\n} from \"./plugins-compat-data.ts\";\n\nimport removeRegeneratorEntryPlugin from \"./polyfills/regenerator.ts\";\nimport legacyBabelPolyfillPlugin from \"./polyfills/babel-polyfill.ts\";\n\nimport type { CallerMetadata } from \"@babel/core\";\n\nimport _pluginCoreJS2 from \"babel-plugin-polyfill-corejs2\";\nimport _pluginCoreJS3 from \"babel-plugin-polyfill-corejs3\";\nimport _pluginRegenerator from \"babel-plugin-polyfill-regenerator\";\nconst pluginCoreJS2 = _pluginCoreJS2.default || _pluginCoreJS2;\nconst pluginCoreJS3 = _pluginCoreJS3.default || _pluginCoreJS3;\nconst pluginRegenerator = _pluginRegenerator.default || _pluginRegenerator;\n\nimport getTargets, {\n prettifyTargets,\n filterItems,\n isRequired,\n} from \"@babel/helper-compilation-targets\";\nimport type { Targets, InputTargets } from \"@babel/helper-compilation-targets\";\nimport availablePlugins from \"./available-plugins.ts\";\nimport { declarePreset } from \"@babel/helper-plugin-utils\";\n\ntype ModuleTransformationsType =\n typeof import(\"./module-transformations\").default;\nimport type { BuiltInsOption, ModuleOption, Options } from \"./types.ts\";\n\n// TODO: Remove in Babel 8\nexport function isPluginRequired(targets: Targets, support: Targets) {\n return isRequired(\"fake-name\", targets, {\n compatData: { \"fake-name\": support },\n });\n}\n\nfunction filterStageFromList(\n list: { [feature: string]: Targets },\n stageList: Set<string>,\n) {\n return Object.keys(list).reduce((result, item) => {\n if (!stageList.has(item)) {\n // @ts-expect-error todo: refine result types\n result[item] = list[item];\n }\n\n return result;\n }, {});\n}\n\nconst pluginLists = {\n withProposals: {\n withoutBugfixes: pluginsList,\n withBugfixes: Object.assign({}, pluginsList, pluginsBugfixesList),\n },\n withoutProposals: {\n withoutBugfixes: filterStageFromList(pluginsList, proposalPlugins),\n withBugfixes: filterStageFromList(\n Object.assign({}, pluginsList, pluginsBugfixesList),\n proposalPlugins,\n ),\n },\n};\n\nfunction getPluginList(proposals: boolean, bugfixes: boolean) {\n if (proposals) {\n if (bugfixes) return pluginLists.withProposals.withBugfixes;\n else return pluginLists.withProposals.withoutBugfixes;\n } else {\n if (bugfixes) return pluginLists.withoutProposals.withBugfixes;\n else return pluginLists.withoutProposals.withoutBugfixes;\n }\n}\n\nconst getPlugin = (pluginName: string) => {\n const plugin =\n // @ts-expect-error plugin name is constructed from available plugin list\n availablePlugins[pluginName]();\n\n if (!plugin) {\n throw new Error(\n `Could not find plugin \"${pluginName}\". Ensure there is an entry in ./available-plugins.js for it.`,\n );\n }\n\n return plugin;\n};\n\nexport const transformIncludesAndExcludes = (opts: Array<string>): any => {\n return opts.reduce(\n (result, opt) => {\n const target = opt.match(/^(es|es6|es7|esnext|web)\\./)\n ? \"builtIns\"\n : \"plugins\";\n result[target].add(opt);\n return result;\n },\n {\n all: opts,\n plugins: new Set(),\n builtIns: new Set(),\n },\n );\n};\n\nexport const getModulesPluginNames = ({\n modules,\n transformations,\n shouldTransformESM,\n shouldTransformDynamicImport,\n shouldTransformExportNamespaceFrom,\n}: {\n modules: ModuleOption;\n transformations: ModuleTransformationsType;\n shouldTransformESM: boolean;\n shouldTransformDynamicImport: boolean;\n shouldTransformExportNamespaceFrom: boolean;\n}) => {\n const modulesPluginNames = [];\n if (modules !== false && transformations[modules]) {\n if (shouldTransformESM) {\n modulesPluginNames.push(transformations[modules]);\n }\n\n if (shouldTransformDynamicImport) {\n if (shouldTransformESM && modules !== \"umd\") {\n modulesPluginNames.push(\"transform-dynamic-import\");\n } else {\n console.warn(\n \"Dynamic import can only be transformed when transforming ES\" +\n \" modules to AMD, CommonJS or SystemJS.\",\n );\n }\n }\n }\n\n if (shouldTransformExportNamespaceFrom) {\n modulesPluginNames.push(\"transform-export-namespace-from\");\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // Enable module-related syntax plugins for older Babel versions\n if (!shouldTransformDynamicImport) {\n modulesPluginNames.push(\"syntax-dynamic-import\");\n }\n if (!shouldTransformExportNamespaceFrom) {\n modulesPluginNames.push(\"syntax-export-namespace-from\");\n }\n modulesPluginNames.push(\"syntax-top-level-await\");\n modulesPluginNames.push(\"syntax-import-meta\");\n }\n\n return modulesPluginNames;\n};\n\nexport const getPolyfillPlugins = ({\n useBuiltIns,\n corejs,\n polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n regenerator,\n debug,\n}: {\n useBuiltIns: BuiltInsOption;\n corejs: SemVer | null | false;\n polyfillTargets: Targets;\n include: Set<string>;\n exclude: Set<string>;\n proposals: boolean;\n shippedProposals: boolean;\n regenerator: boolean;\n debug: boolean;\n}) => {\n const polyfillPlugins = [];\n if (useBuiltIns === \"usage\" || useBuiltIns === \"entry\") {\n const pluginOptions = {\n method: `${useBuiltIns}-global`,\n version: corejs ? corejs.toString() : undefined,\n targets: polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n debug,\n \"#__secret_key__@babel/preset-env__compatibility\": {\n noRuntimeName: true,\n },\n };\n\n if (corejs) {\n if (useBuiltIns === \"usage\") {\n if (corejs.major === 2) {\n polyfillPlugins.push(\n [pluginCoreJS2, pluginOptions],\n [legacyBabelPolyfillPlugin, { usage: true }],\n );\n } else {\n polyfillPlugins.push(\n [pluginCoreJS3, pluginOptions],\n [legacyBabelPolyfillPlugin, { usage: true, deprecated: true }],\n );\n }\n if (regenerator) {\n polyfillPlugins.push([\n pluginRegenerator,\n { method: \"usage-global\", debug },\n ]);\n }\n } else {\n if (corejs.major === 2) {\n polyfillPlugins.push(\n [legacyBabelPolyfillPlugin, { regenerator }],\n [pluginCoreJS2, pluginOptions],\n );\n } else {\n polyfillPlugins.push(\n [pluginCoreJS3, pluginOptions],\n [legacyBabelPolyfillPlugin, { deprecated: true }],\n );\n if (!regenerator) {\n polyfillPlugins.push([removeRegeneratorEntryPlugin, pluginOptions]);\n }\n }\n }\n }\n }\n return polyfillPlugins;\n};\n\nfunction getLocalTargets(\n optionsTargets: Options[\"targets\"],\n ignoreBrowserslistConfig: boolean,\n configPath: string,\n browserslistEnv: string,\n) {\n if (optionsTargets?.esmodules && optionsTargets.browsers) {\n console.warn(`\n@babel/preset-env: esmodules and browsers targets have been specified together.\n\\`browsers\\` target, \\`${optionsTargets.browsers.toString()}\\` will be ignored.\n`);\n }\n\n return getTargets(optionsTargets as InputTargets, {\n ignoreBrowserslistConfig,\n configPath,\n browserslistEnv,\n });\n}\n\nfunction supportsStaticESM(caller: CallerMetadata | undefined) {\n // @ts-expect-error supportsStaticESM is not defined in CallerMetadata\n return !!caller?.supportsStaticESM;\n}\n\nfunction supportsDynamicImport(caller: CallerMetadata | undefined) {\n // @ts-expect-error supportsDynamicImport is not defined in CallerMetadata\n return !!caller?.supportsDynamicImport;\n}\n\nfunction supportsExportNamespaceFrom(caller: CallerMetadata | undefined) {\n // @ts-expect-error supportsExportNamespaceFrom is not defined in CallerMetadata\n return !!caller?.supportsExportNamespaceFrom;\n}\n\nexport default declarePreset((api, opts: Options) => {\n api.assertVersion(7);\n\n const babelTargets = api.targets();\n\n const {\n bugfixes,\n configPath,\n debug,\n exclude: optionsExclude,\n forceAllTransforms,\n ignoreBrowserslistConfig,\n include: optionsInclude,\n loose,\n modules,\n shippedProposals,\n spec,\n targets: optionsTargets,\n useBuiltIns,\n corejs: { version: corejs, proposals },\n browserslistEnv,\n } = normalizeOptions(opts);\n\n let targets = babelTargets;\n\n if (\n // @babel/core < 7.13.0 doesn't load targets (api.targets() always\n // returns {} thanks to @babel/helper-plugin-utils), so we always want\n // to fallback to the old targets behavior in this case.\n semver.lt(api.version, \"7.13.0\") ||\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n opts.targets ||\n opts.configPath ||\n opts.browserslistEnv ||\n opts.ignoreBrowserslistConfig\n ) {\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var hasUglifyTarget = false;\n\n if (optionsTargets?.uglify) {\n hasUglifyTarget = true;\n delete optionsTargets.uglify;\n\n console.warn(`\nThe uglify target has been deprecated. Set the top level\noption \\`forceAllTransforms: true\\` instead.\n`);\n }\n }\n\n targets = getLocalTargets(\n optionsTargets,\n ignoreBrowserslistConfig,\n configPath,\n browserslistEnv,\n );\n }\n\n const transformTargets = (\n process.env.BABEL_8_BREAKING\n ? forceAllTransforms\n : forceAllTransforms || hasUglifyTarget\n )\n ? ({} as Targets)\n : targets;\n\n const include = transformIncludesAndExcludes(optionsInclude);\n const exclude = transformIncludesAndExcludes(optionsExclude);\n\n const compatData = getPluginList(shippedProposals, bugfixes);\n const shouldSkipExportNamespaceFrom =\n (modules === \"auto\" && api.caller?.(supportsExportNamespaceFrom)) ||\n (modules === false &&\n !isRequired(\"transform-export-namespace-from\", transformTargets, {\n compatData,\n includes: include.plugins,\n excludes: exclude.plugins,\n }));\n const modulesPluginNames = getModulesPluginNames({\n modules,\n transformations: moduleTransformations,\n // TODO: Remove the 'api.caller' check eventually. Just here to prevent\n // unnecessary breakage in the short term for users on older betas/RCs.\n shouldTransformESM: modules !== \"auto\" || !api.caller?.(supportsStaticESM),\n shouldTransformDynamicImport:\n modules !== \"auto\" || !api.caller?.(supportsDynamicImport),\n shouldTransformExportNamespaceFrom: !shouldSkipExportNamespaceFrom,\n });\n\n const pluginNames = filterItems(\n compatData,\n include.plugins,\n exclude.plugins,\n transformTargets,\n modulesPluginNames,\n getOptionSpecificExcludesFor({ loose }),\n pluginSyntaxMap,\n );\n if (shippedProposals) {\n addProposalSyntaxPlugins(pluginNames, proposalSyntaxPlugins);\n }\n removeUnsupportedItems(pluginNames, api.version);\n removeUnnecessaryItems(pluginNames, overlappingPlugins);\n\n const polyfillPlugins = getPolyfillPlugins({\n useBuiltIns,\n corejs,\n polyfillTargets: targets,\n include: include.builtIns,\n exclude: exclude.builtIns,\n proposals,\n shippedProposals,\n regenerator: pluginNames.has(\"transform-regenerator\"),\n debug,\n });\n\n const pluginUseBuiltIns = useBuiltIns !== false;\n const plugins = Array.from(pluginNames)\n .map(pluginName => {\n if (\n pluginName === \"transform-class-properties\" ||\n pluginName === \"transform-private-methods\" ||\n pluginName === \"transform-private-property-in-object\"\n ) {\n return [\n getPlugin(pluginName),\n {\n loose: loose\n ? \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n : \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\",\n },\n ];\n }\n if (pluginName === \"syntax-import-attributes\") {\n // For backward compatibility with the import-assertions plugin, we\n // allow the deprecated `assert` keyword.\n // TODO(Babel 8): Revisit this.\n return [getPlugin(pluginName), { deprecatedAssertSyntax: true }];\n }\n return [\n getPlugin(pluginName),\n { spec, loose, useBuiltIns: pluginUseBuiltIns },\n ];\n })\n .concat(polyfillPlugins);\n\n if (debug) {\n console.log(\"@babel/preset-env: `DEBUG` option\");\n console.log(\"\\nUsing targets:\");\n console.log(JSON.stringify(prettifyTargets(targets), null, 2));\n console.log(`\\nUsing modules transform: ${modules.toString()}`);\n console.log(\"\\nUsing plugins:\");\n pluginNames.forEach(pluginName => {\n logPlugin(pluginName, targets, compatData);\n });\n\n if (!useBuiltIns) {\n console.log(\n \"\\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.\",\n );\n }\n }\n\n return { plugins };\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_semver","require","_debug","_filterItems","_moduleTransformations","_normalizeOptions","_shippedProposals","_pluginsCompatData","_babelPluginPolyfillCorejs","_babel7Plugins","_helperCompilationTargets","_availablePlugins","_helperPluginUtils","pluginCoreJS3","_pluginCoreJS3","default","isPluginRequired","targets","support","isRequired","compatData","filterStageFromList","list","stageList","Object","keys","reduce","result","item","has","pluginLists","withProposals","withoutBugfixes","pluginsList","withBugfixes","assign","pluginsBugfixesList","withoutProposals","proposalPlugins","getPluginList","proposals","bugfixes","getPlugin","pluginName","plugin","availablePlugins","Error","transformIncludesAndExcludes","opts","opt","target","match","add","all","plugins","Set","builtIns","exports","getSpecialModulesPluginNames","modules","shouldTransformDynamicImport","modulesPluginNames","push","moduleTransformations","console","warn","getCoreJSOptions","useBuiltIns","corejs","polyfillTargets","include","exclude","shippedProposals","debug","method","version","toString","undefined","noRuntimeName","getPolyfillPlugins","regenerator","polyfillPlugins","pluginOptions","major","babel7","pluginCoreJS2","legacyBabelPolyfillPlugin","usage","deprecated","pluginRegenerator","removeRegeneratorEntryPlugin","getLocalTargets","optionsTargets","ignoreBrowserslistConfig","configPath","browserslistEnv","esmodules","browsers","getTargets","supportsStaticESM","caller","supportsDynamicImport","supportsExportNamespaceFrom","_default","declarePreset","api","assertVersion","babelTargets","optionsExclude","forceAllTransforms","optionsInclude","optionsModules","normalizeOptions","loose","spec","semver","lt","hasUglifyTarget","uglify","transformTargets","pluginNames","filterItems","pluginSyntaxMap","addProposalSyntaxPlugins","proposalSyntaxPlugins","removeUnsupportedItems","removeUnnecessaryItems","overlappingPlugins","pluginUseBuiltIns","Array","from","map","deprecatedAssertSyntax","concat","log","JSON","stringify","prettifyTargets","forEach","logPlugin","getModulesPluginNames","transformations","shouldTransformESM","shouldTransformExportNamespaceFrom"],"sources":["../src/index.ts"],"sourcesContent":["import semver, { type SemVer } from \"semver\";\nimport { logPlugin } from \"./debug.ts\";\nimport {\n addProposalSyntaxPlugins,\n removeUnnecessaryItems,\n removeUnsupportedItems,\n} from \"./filter-items.ts\";\nimport moduleTransformations from \"./module-transformations.ts\";\nimport normalizeOptions from \"./normalize-options.ts\";\nimport {\n pluginSyntaxMap,\n proposalPlugins,\n proposalSyntaxPlugins,\n} from \"./shipped-proposals.ts\";\nimport {\n plugins as pluginsList,\n pluginsBugfixes as pluginsBugfixesList,\n overlappingPlugins,\n} from \"./plugins-compat-data.ts\";\n\nimport type { CallerMetadata } from \"@babel/core\";\n\nimport _pluginCoreJS3 from \"babel-plugin-polyfill-corejs3\";\n// TODO(Babel 8): Just use the default import\nconst pluginCoreJS3 = _pluginCoreJS3.default || _pluginCoreJS3;\n\n// TODO(Babel 8): Remove this\nimport babel7 from \"./polyfills/babel-7-plugins.cjs\";\n\nimport getTargets, {\n prettifyTargets,\n filterItems,\n isRequired,\n} from \"@babel/helper-compilation-targets\";\nimport type { Targets, InputTargets } from \"@babel/helper-compilation-targets\";\nimport availablePlugins from \"./available-plugins.ts\";\nimport { declarePreset } from \"@babel/helper-plugin-utils\";\n\nimport type { BuiltInsOption, ModuleOption, Options } from \"./types.ts\";\n\n// TODO: Remove in Babel 8\nexport function isPluginRequired(targets: Targets, support: Targets) {\n return isRequired(\"fake-name\", targets, {\n compatData: { \"fake-name\": support },\n });\n}\n\nfunction filterStageFromList(\n list: { [feature: string]: Targets },\n stageList: Set<string>,\n) {\n return Object.keys(list).reduce((result, item) => {\n if (!stageList.has(item)) {\n // @ts-expect-error todo: refine result types\n result[item] = list[item];\n }\n\n return result;\n }, {});\n}\n\nconst pluginLists = {\n withProposals: {\n withoutBugfixes: pluginsList,\n withBugfixes: Object.assign({}, pluginsList, pluginsBugfixesList),\n },\n withoutProposals: {\n withoutBugfixes: filterStageFromList(pluginsList, proposalPlugins),\n withBugfixes: filterStageFromList(\n Object.assign({}, pluginsList, pluginsBugfixesList),\n proposalPlugins,\n ),\n },\n};\n\nfunction getPluginList(proposals: boolean, bugfixes: boolean) {\n if (proposals) {\n if (bugfixes) return pluginLists.withProposals.withBugfixes;\n else return pluginLists.withProposals.withoutBugfixes;\n } else {\n if (bugfixes) return pluginLists.withoutProposals.withBugfixes;\n else return pluginLists.withoutProposals.withoutBugfixes;\n }\n}\n\nconst getPlugin = (pluginName: string) => {\n const plugin =\n // @ts-expect-error plugin name is constructed from available plugin list\n availablePlugins[pluginName]();\n\n if (!plugin) {\n throw new Error(\n `Could not find plugin \"${pluginName}\". Ensure there is an entry in ./available-plugins.js for it.`,\n );\n }\n\n return plugin;\n};\n\nexport const transformIncludesAndExcludes = (opts: Array<string>): any => {\n return opts.reduce(\n (result, opt) => {\n const target = opt.match(/^(es|es6|es7|esnext|web)\\./)\n ? \"builtIns\"\n : \"plugins\";\n result[target].add(opt);\n return result;\n },\n {\n all: opts,\n plugins: new Set(),\n builtIns: new Set(),\n },\n );\n};\n\nfunction getSpecialModulesPluginNames(\n modules: Exclude<ModuleOption, \"auto\">,\n shouldTransformDynamicImport: boolean,\n) {\n const modulesPluginNames = [];\n if (modules) {\n modulesPluginNames.push(moduleTransformations[modules]);\n }\n\n if (shouldTransformDynamicImport) {\n if (modules && modules !== \"umd\") {\n modulesPluginNames.push(\"transform-dynamic-import\");\n } else {\n console.warn(\n \"Dynamic import can only be transformed when transforming ES\" +\n \" modules to AMD, CommonJS or SystemJS.\",\n );\n }\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // Enable module-related syntax plugins for older Babel versions\n if (!shouldTransformDynamicImport) {\n modulesPluginNames.push(\"syntax-dynamic-import\");\n }\n modulesPluginNames.push(\"syntax-top-level-await\");\n modulesPluginNames.push(\"syntax-import-meta\");\n }\n\n return modulesPluginNames;\n}\n\nconst getCoreJSOptions = ({\n useBuiltIns,\n corejs,\n polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n debug,\n}: {\n useBuiltIns: BuiltInsOption;\n corejs: SemVer | null | false;\n polyfillTargets: Targets;\n include: Set<string>;\n exclude: Set<string>;\n proposals: boolean;\n shippedProposals: boolean;\n debug: boolean;\n}) => ({\n method: `${useBuiltIns}-global`,\n version: corejs ? corejs.toString() : undefined,\n targets: polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n debug,\n \"#__secret_key__@babel/preset-env__compatibility\": {\n noRuntimeName: true,\n },\n});\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var getPolyfillPlugins = ({\n useBuiltIns,\n corejs,\n polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n regenerator,\n debug,\n }: {\n useBuiltIns: BuiltInsOption;\n corejs: SemVer | null | false;\n polyfillTargets: Targets;\n include: Set<string>;\n exclude: Set<string>;\n proposals: boolean;\n shippedProposals: boolean;\n regenerator: boolean;\n debug: boolean;\n }) => {\n const polyfillPlugins = [];\n if (useBuiltIns === \"usage\" || useBuiltIns === \"entry\") {\n const pluginOptions = getCoreJSOptions({\n useBuiltIns,\n corejs,\n polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n debug,\n });\n\n if (corejs) {\n if (process.env.BABEL_8_BREAKING) {\n polyfillPlugins.push([pluginCoreJS3, pluginOptions]);\n } else {\n if (useBuiltIns === \"usage\") {\n if (corejs.major === 2) {\n polyfillPlugins.push(\n [babel7.pluginCoreJS2, pluginOptions],\n [babel7.legacyBabelPolyfillPlugin, { usage: true }],\n );\n } else {\n polyfillPlugins.push(\n [pluginCoreJS3, pluginOptions],\n [\n babel7.legacyBabelPolyfillPlugin,\n { usage: true, deprecated: true },\n ],\n );\n }\n if (regenerator) {\n polyfillPlugins.push([\n babel7.pluginRegenerator,\n { method: \"usage-global\", debug },\n ]);\n }\n } else {\n if (corejs.major === 2) {\n polyfillPlugins.push(\n [babel7.legacyBabelPolyfillPlugin, { regenerator }],\n [babel7.pluginCoreJS2, pluginOptions],\n );\n } else {\n polyfillPlugins.push(\n [pluginCoreJS3, pluginOptions],\n [babel7.legacyBabelPolyfillPlugin, { deprecated: true }],\n );\n if (!regenerator) {\n polyfillPlugins.push([\n babel7.removeRegeneratorEntryPlugin,\n pluginOptions,\n ]);\n }\n }\n }\n }\n }\n }\n return polyfillPlugins;\n };\n\n if (!USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.getPolyfillPlugins = getPolyfillPlugins;\n }\n}\n\nfunction getLocalTargets(\n optionsTargets: Options[\"targets\"],\n ignoreBrowserslistConfig: boolean,\n configPath: string,\n browserslistEnv: string,\n) {\n if (optionsTargets?.esmodules && optionsTargets.browsers) {\n console.warn(`\n@babel/preset-env: esmodules and browsers targets have been specified together.\n\\`browsers\\` target, \\`${optionsTargets.browsers.toString()}\\` will be ignored.\n`);\n }\n\n return getTargets(optionsTargets as InputTargets, {\n ignoreBrowserslistConfig,\n configPath,\n browserslistEnv,\n });\n}\n\nfunction supportsStaticESM(caller: CallerMetadata | undefined) {\n // TODO(Babel 8): Fallback to true\n // @ts-expect-error supportsStaticESM is not defined in CallerMetadata\n return !!caller?.supportsStaticESM;\n}\n\nfunction supportsDynamicImport(caller: CallerMetadata | undefined) {\n // TODO(Babel 8): Fallback to true\n // @ts-expect-error supportsDynamicImport is not defined in CallerMetadata\n return !!caller?.supportsDynamicImport;\n}\n\nfunction supportsExportNamespaceFrom(caller: CallerMetadata | undefined) {\n // TODO(Babel 8): Fallback to null\n // @ts-expect-error supportsExportNamespaceFrom is not defined in CallerMetadata\n return !!caller?.supportsExportNamespaceFrom;\n}\n\nexport default declarePreset((api, opts: Options) => {\n api.assertVersion(\n process.env.BABEL_8_BREAKING && process.env.IS_PUBLISH\n ? PACKAGE_JSON.version\n : 7,\n );\n\n const babelTargets = api.targets();\n\n if (process.env.BABEL_8_BREAKING && (\"loose\" in opts || \"spec\" in opts)) {\n throw new Error(\n \"@babel/preset-env: The 'loose' and 'spec' options have been removed, \" +\n \"and you should configure granular compiler assumptions instead. See \" +\n \"https://babeljs.io/assumptions for more information.\",\n );\n }\n\n const {\n bugfixes,\n configPath,\n debug,\n exclude: optionsExclude,\n forceAllTransforms,\n ignoreBrowserslistConfig,\n include: optionsInclude,\n modules: optionsModules,\n shippedProposals,\n targets: optionsTargets,\n useBuiltIns,\n corejs: { version: corejs, proposals },\n browserslistEnv,\n } = normalizeOptions(opts);\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var { loose, spec = false } = opts;\n }\n\n let targets = babelTargets;\n\n if (\n // @babel/core < 7.13.0 doesn't load targets (api.targets() always\n // returns {} thanks to @babel/helper-plugin-utils), so we always want\n // to fallback to the old targets behavior in this case.\n semver.lt(api.version, \"7.13.0\") ||\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n opts.targets ||\n opts.configPath ||\n opts.browserslistEnv ||\n opts.ignoreBrowserslistConfig\n ) {\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var hasUglifyTarget = false;\n\n if (optionsTargets?.uglify) {\n hasUglifyTarget = true;\n delete optionsTargets.uglify;\n\n console.warn(`\nThe uglify target has been deprecated. Set the top level\noption \\`forceAllTransforms: true\\` instead.\n`);\n }\n }\n\n targets = getLocalTargets(\n optionsTargets,\n ignoreBrowserslistConfig,\n configPath,\n browserslistEnv,\n );\n }\n\n const transformTargets = (\n process.env.BABEL_8_BREAKING\n ? forceAllTransforms\n : forceAllTransforms || hasUglifyTarget\n )\n ? ({} as Targets)\n : targets;\n\n const include = transformIncludesAndExcludes(optionsInclude);\n const exclude = transformIncludesAndExcludes(optionsExclude);\n\n const compatData = getPluginList(shippedProposals, bugfixes);\n const modules =\n optionsModules === \"auto\"\n ? api.caller(supportsStaticESM)\n ? false\n : \"commonjs\"\n : optionsModules;\n const shouldTransformDynamicImport =\n optionsModules === \"auto\" ? !api.caller(supportsDynamicImport) : !!modules;\n\n // If the caller does not support export-namespace-from, we forcefully add\n // the plugin to `includes`.\n // TODO(Babel 8): stop doing this, similarly to how we don't do this for any\n // other plugin. We can consider adding bundlers as targets in the future,\n // but we should not have a one-off special case for this plugin.\n if (\n optionsModules === \"auto\" &&\n !api.caller(supportsExportNamespaceFrom) &&\n !exclude.plugins.has(\"transform-export-namespace-from\")\n ) {\n include.plugins.add(\"transform-export-namespace-from\");\n }\n\n const pluginNames = filterItems(\n compatData,\n include.plugins,\n exclude.plugins,\n transformTargets,\n getSpecialModulesPluginNames(modules, shouldTransformDynamicImport),\n process.env.BABEL_8_BREAKING || !loose\n ? undefined\n : [\"transform-typeof-symbol\"],\n pluginSyntaxMap,\n );\n if (shippedProposals) {\n addProposalSyntaxPlugins(pluginNames, proposalSyntaxPlugins);\n }\n removeUnsupportedItems(pluginNames, api.version);\n removeUnnecessaryItems(pluginNames, overlappingPlugins);\n\n const polyfillPlugins = process.env.BABEL_8_BREAKING\n ? useBuiltIns\n ? [\n [\n pluginCoreJS3,\n getCoreJSOptions({\n useBuiltIns,\n corejs,\n polyfillTargets: targets,\n include: include.builtIns,\n exclude: exclude.builtIns,\n proposals,\n shippedProposals,\n debug,\n }),\n ],\n ]\n : []\n : getPolyfillPlugins({\n useBuiltIns,\n corejs,\n polyfillTargets: targets,\n include: include.builtIns,\n exclude: exclude.builtIns,\n proposals,\n shippedProposals,\n regenerator: pluginNames.has(\"transform-regenerator\"),\n debug,\n });\n\n const pluginUseBuiltIns = useBuiltIns !== false;\n const plugins = Array.from(pluginNames)\n .map(pluginName => {\n if (\n !process.env.BABEL_8_BREAKING &&\n (pluginName === \"transform-class-properties\" ||\n pluginName === \"transform-private-methods\" ||\n pluginName === \"transform-private-property-in-object\")\n ) {\n return [\n getPlugin(pluginName),\n {\n loose: loose\n ? \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n : \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\",\n },\n ];\n }\n if (pluginName === \"syntax-import-attributes\") {\n // For backward compatibility with the import-assertions plugin, we\n // allow the deprecated `assert` keyword.\n // TODO(Babel 8): Revisit this.\n return [getPlugin(pluginName), { deprecatedAssertSyntax: true }];\n }\n return [\n getPlugin(pluginName),\n process.env.BABEL_8_BREAKING\n ? { useBuiltIns: pluginUseBuiltIns }\n : { spec, loose, useBuiltIns: pluginUseBuiltIns },\n ];\n })\n .concat(polyfillPlugins);\n\n if (debug) {\n console.log(\"@babel/preset-env: `DEBUG` option\");\n console.log(\"\\nUsing targets:\");\n console.log(JSON.stringify(prettifyTargets(targets), null, 2));\n console.log(`\\nUsing modules transform: ${optionsModules.toString()}`);\n console.log(\"\\nUsing plugins:\");\n pluginNames.forEach(pluginName => {\n logPlugin(pluginName, targets, compatData);\n });\n\n if (!useBuiltIns) {\n console.log(\n \"\\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.\",\n );\n }\n }\n\n return { plugins };\n});\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.getModulesPluginNames = ({\n modules,\n transformations,\n shouldTransformESM,\n shouldTransformDynamicImport,\n shouldTransformExportNamespaceFrom,\n }: {\n modules: ModuleOption;\n transformations: typeof import(\"./module-transformations\").default;\n shouldTransformESM: boolean;\n shouldTransformDynamicImport: boolean;\n shouldTransformExportNamespaceFrom: boolean;\n }) => {\n const modulesPluginNames = [];\n if (modules !== false && transformations[modules]) {\n if (shouldTransformESM) {\n modulesPluginNames.push(transformations[modules]);\n }\n\n if (shouldTransformDynamicImport) {\n if (shouldTransformESM && modules !== \"umd\") {\n modulesPluginNames.push(\"transform-dynamic-import\");\n } else {\n console.warn(\n \"Dynamic import can only be transformed when transforming ES\" +\n \" modules to AMD, CommonJS or SystemJS.\",\n );\n }\n }\n }\n\n if (shouldTransformExportNamespaceFrom) {\n modulesPluginNames.push(\"transform-export-namespace-from\");\n }\n if (!shouldTransformDynamicImport) {\n modulesPluginNames.push(\"syntax-dynamic-import\");\n }\n if (!shouldTransformExportNamespaceFrom) {\n modulesPluginNames.push(\"syntax-export-namespace-from\");\n }\n modulesPluginNames.push(\"syntax-top-level-await\");\n modulesPluginNames.push(\"syntax-import-meta\");\n\n return modulesPluginNames;\n };\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/module-transformations.js b/node_modules/@babel/preset-env/lib/module-transformations.js index 2be09486..fef58ec1 100644 --- a/node_modules/@babel/preset-env/lib/module-transformations.js +++ b/node_modules/@babel/preset-env/lib/module-transformations.js @@ -4,14 +4,12 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; -var _default = { - auto: "transform-modules-commonjs", +var _default = exports.default = { amd: "transform-modules-amd", commonjs: "transform-modules-commonjs", cjs: "transform-modules-commonjs", systemjs: "transform-modules-systemjs", umd: "transform-modules-umd" }; -exports.default = _default; //# sourceMappingURL=module-transformations.js.map diff --git a/node_modules/@babel/preset-env/lib/module-transformations.js.map b/node_modules/@babel/preset-env/lib/module-transformations.js.map index e53579f1..bb483033 100644 --- a/node_modules/@babel/preset-env/lib/module-transformations.js.map +++ b/node_modules/@babel/preset-env/lib/module-transformations.js.map @@ -1 +1 @@ -{"version":3,"names":["auto","amd","commonjs","cjs","systemjs","umd","exports","default","_default"],"sources":["../src/module-transformations.ts"],"sourcesContent":["type AvailablePlugins = typeof import(\"./available-plugins\").default;\n\nexport default {\n auto: \"transform-modules-commonjs\",\n amd: \"transform-modules-amd\",\n commonjs: \"transform-modules-commonjs\",\n cjs: \"transform-modules-commonjs\",\n systemjs: \"transform-modules-systemjs\",\n umd: \"transform-modules-umd\",\n} as { [transform: string]: keyof AvailablePlugins };\n"],"mappings":";;;;;;eAEe;EACbA,IAAI,EAAE,4BAA4B;EAClCC,GAAG,EAAE,uBAAuB;EAC5BC,QAAQ,EAAE,4BAA4B;EACtCC,GAAG,EAAE,4BAA4B;EACjCC,QAAQ,EAAE,4BAA4B;EACtCC,GAAG,EAAE;AACP,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAC,QAAA"}
\ No newline at end of file +{"version":3,"names":["amd","commonjs","cjs","systemjs","umd"],"sources":["../src/module-transformations.ts"],"sourcesContent":["type AvailablePlugins = typeof import(\"./available-plugins\").default;\n\nexport default {\n amd: \"transform-modules-amd\",\n commonjs: \"transform-modules-commonjs\",\n cjs: \"transform-modules-commonjs\",\n systemjs: \"transform-modules-systemjs\",\n umd: \"transform-modules-umd\",\n} as { [transform: string]: keyof AvailablePlugins };\n"],"mappings":";;;;;;iCAEe;EACbA,GAAG,EAAE,uBAAuB;EAC5BC,QAAQ,EAAE,4BAA4B;EACtCC,GAAG,EAAE,4BAA4B;EACjCC,QAAQ,EAAE,4BAA4B;EACtCC,GAAG,EAAE;AACP,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/normalize-options.js b/node_modules/@babel/preset-env/lib/normalize-options.js index 47088876..f54846d6 100644 --- a/node_modules/@babel/preset-env/lib/normalize-options.js +++ b/node_modules/@babel/preset-env/lib/normalize-options.js @@ -18,7 +18,21 @@ const corejs2DefaultWebIncludes = ["web.timers", "web.immediate", "web.dom.itera const v = new _helperValidatorOption.OptionValidator("@babel/preset-env"); const allPluginsList = Object.keys(_pluginsCompatData.plugins); const modulePlugins = ["transform-dynamic-import", ...Object.keys(_moduleTransformations.default).map(m => _moduleTransformations.default[m])]; -const getValidIncludesAndExcludes = (type, corejs) => Array.from(new Set([...allPluginsList, ...(type === "exclude" ? modulePlugins : []), ...(corejs ? corejs == 2 ? [...Object.keys(_corejs2BuiltIns), ...corejs2DefaultWebIncludes] : Object.keys(_coreJsCompat) : [])])); +const getValidIncludesAndExcludes = (type, corejs) => { + const set = new Set(allPluginsList); + if (type === "exclude") modulePlugins.map(set.add, set); + if (corejs) { + { + if (corejs === 2) { + Object.keys(_corejs2BuiltIns).map(set.add, set); + corejs2DefaultWebIncludes.map(set.add, set); + } else { + Object.keys(_coreJsCompat).map(set.add, set); + } + } + } + return Array.from(set); +}; function flatMap(array, fn) { return Array.prototype.concat.apply([], array.map(fn)); } @@ -81,8 +95,10 @@ function normalizeCoreJSOption(corejs, useBuiltIns) { let proposals = false; let rawVersion; if (useBuiltIns && corejs === undefined) { - rawVersion = 2; - console.warn("\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a " + "core-js version. Currently, we assume version 2.x when no version " + "is passed. Since this default version will likely change in future " + "versions of Babel, we recommend explicitly setting the core-js version " + "you are using via the `corejs` option.\n" + "\nYou should also be sure that the version you pass to the `corejs` " + "option matches the version specified in your `package.json`'s " + "`dependencies` section. If it doesn't, you need to run one of the " + "following commands:\n\n" + " npm install --save core-js@2 npm install --save core-js@3\n" + " yarn add core-js@2 yarn add core-js@3\n\n" + "More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\n" + "More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs"); + { + rawVersion = 2; + console.warn("\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a " + `core-js version. Currently, we assume version 2.x when no version ` + "is passed. Since this default version will likely change in future " + "versions of Babel, we recommend explicitly setting the core-js version " + "you are using via the `corejs` option.\n" + "\nYou should also be sure that the version you pass to the `corejs` " + "option matches the version specified in your `package.json`'s " + "`dependencies` section. If it doesn't, you need to run one of the " + "following commands:\n\n" + " npm install --save core-js@2 npm install --save core-js@3\n" + " yarn add core-js@2 yarn add core-js@3\n\n" + "More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\n" + "More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs"); + } } else if (typeof corejs === "object" && corejs !== null) { rawVersion = corejs.version; proposals = Boolean(corejs.proposals); @@ -90,11 +106,16 @@ function normalizeCoreJSOption(corejs, useBuiltIns) { rawVersion = corejs; } const version = rawVersion ? _semver.coerce(String(rawVersion)) : false; - if (!useBuiltIns && version) { - console.warn("\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\n"); - } - if (useBuiltIns && (!version || version.major < 2 || version.major > 3)) { - throw new RangeError("Invalid Option: The version passed to `corejs` is invalid. Currently, " + "only core-js@2 and core-js@3 are supported."); + if (version) { + if (useBuiltIns) { + { + if (version.major < 2 || version.major > 3) { + throw new RangeError("Invalid Option: The version passed to `corejs` is invalid. Currently, " + "only core-js@2 and core-js@3 are supported."); + } + } + } else { + console.warn("\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\n"); + } } return { version, @@ -108,6 +129,10 @@ function normalizeOptions(opts) { const include = expandIncludesAndExcludes(opts.include, _options.TopLevelOptions.include, !!corejs.version && corejs.version.major); const exclude = expandIncludesAndExcludes(opts.exclude, _options.TopLevelOptions.exclude, !!corejs.version && corejs.version.major); checkDuplicateIncludeExcludes(include, exclude); + { + v.validateBooleanOption("loose", opts.loose); + v.validateBooleanOption("spec", opts.spec); + } return { bugfixes: v.validateBooleanOption(_options.TopLevelOptions.bugfixes, opts.bugfixes, false), configPath: v.validateStringOption(_options.TopLevelOptions.configPath, opts.configPath, process.cwd()), @@ -117,10 +142,8 @@ function normalizeOptions(opts) { exclude, forceAllTransforms: v.validateBooleanOption(_options.TopLevelOptions.forceAllTransforms, opts.forceAllTransforms, false), ignoreBrowserslistConfig: v.validateBooleanOption(_options.TopLevelOptions.ignoreBrowserslistConfig, opts.ignoreBrowserslistConfig, false), - loose: v.validateBooleanOption(_options.TopLevelOptions.loose, opts.loose), modules: validateModulesOption(opts.modules), shippedProposals: v.validateBooleanOption(_options.TopLevelOptions.shippedProposals, opts.shippedProposals, false), - spec: v.validateBooleanOption(_options.TopLevelOptions.spec, opts.spec, false), targets: normalizeTargets(opts.targets), useBuiltIns: useBuiltIns, browserslistEnv: v.validateStringOption(_options.TopLevelOptions.browserslistEnv, opts.browserslistEnv) diff --git a/node_modules/@babel/preset-env/lib/normalize-options.js.map b/node_modules/@babel/preset-env/lib/normalize-options.js.map index e4afcaf5..8ce673dd 100644 --- a/node_modules/@babel/preset-env/lib/normalize-options.js.map +++ b/node_modules/@babel/preset-env/lib/normalize-options.js.map @@ -1 +1 @@ -{"version":3,"names":["_semver","require","_corejs2BuiltIns","_coreJsCompat","_pluginsCompatData","_moduleTransformations","_options","_helperValidatorOption","corejs2DefaultWebIncludes","v","OptionValidator","allPluginsList","Object","keys","pluginsList","modulePlugins","moduleTransformations","map","m","getValidIncludesAndExcludes","type","corejs","Array","from","Set","corejs2Polyfills","corejs3Polyfills","flatMap","array","fn","prototype","concat","apply","normalizePluginName","plugin","replace","exports","expandIncludesAndExcludes","filterList","length","filterableItems","invalidFilters","selectedPlugins","filter","re","RegExp","e","push","items","item","test","invariant","join","checkDuplicateIncludeExcludes","include","exclude","duplicates","opt","indexOf","normalizeTargets","targets","isArray","browsers","assign","validateModulesOption","modulesOpt","ModulesOption","auto","toString","false","validateUseBuiltInsOption","builtInsOpt","UseBuiltInsOption","normalizeCoreJSOption","useBuiltIns","proposals","rawVersion","undefined","console","warn","version","Boolean","semver","coerce","String","major","RangeError","normalizeOptions","opts","validateTopLevelOptions","TopLevelOptions","bugfixes","validateBooleanOption","configPath","validateStringOption","process","cwd","debug","forceAllTransforms","ignoreBrowserslistConfig","loose","modules","shippedProposals","spec","browserslistEnv"],"sources":["../src/normalize-options.ts"],"sourcesContent":["import semver, { type SemVer } from \"semver\";\nimport corejs2Polyfills from \"@babel/compat-data/corejs2-built-ins\";\n// @ts-expect-error Fixme: TS can not infer types from ../data/core-js-compat.js\n// but we can't import core-js-compat/data.json because JSON imports do\n// not work on Node 14\nimport corejs3Polyfills from \"../data/core-js-compat.js\";\nimport { plugins as pluginsList } from \"./plugins-compat-data.ts\";\nimport moduleTransformations from \"./module-transformations.ts\";\nimport {\n TopLevelOptions,\n ModulesOption,\n UseBuiltInsOption,\n} from \"./options.ts\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\n\nconst corejs2DefaultWebIncludes = [\n \"web.timers\",\n \"web.immediate\",\n \"web.dom.iterable\",\n];\n\nimport type {\n BuiltInsOption,\n CorejsOption,\n ModuleOption,\n Options,\n PluginListOption,\n} from \"./types.ts\";\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nconst allPluginsList = Object.keys(pluginsList);\n\n// NOTE: Since module plugins are handled separately compared to other plugins (via the \"modules\" option) it\n// should only be possible to exclude and not include module plugins, otherwise it's possible that preset-env\n// will add a module plugin twice.\nconst modulePlugins = [\n \"transform-dynamic-import\",\n ...Object.keys(moduleTransformations).map(m => moduleTransformations[m]),\n];\n\nconst getValidIncludesAndExcludes = (\n type: \"include\" | \"exclude\",\n corejs: number | false,\n) =>\n Array.from(\n new Set([\n ...allPluginsList,\n ...(type === \"exclude\" ? modulePlugins : []),\n ...(corejs\n ? corejs == 2\n ? [...Object.keys(corejs2Polyfills), ...corejs2DefaultWebIncludes]\n : Object.keys(corejs3Polyfills)\n : []),\n ]),\n );\n\nfunction flatMap<T, U>(array: Array<T>, fn: (item: T) => Array<U>): Array<U> {\n return Array.prototype.concat.apply([], array.map(fn));\n}\n\nexport const normalizePluginName = (plugin: string) =>\n plugin.replace(/^(@babel\\/|babel-)(plugin-)?/, \"\");\n\nconst expandIncludesAndExcludes = (\n filterList: PluginListOption = [],\n type: \"include\" | \"exclude\",\n corejs: number | false,\n) => {\n if (filterList.length === 0) return [];\n\n const filterableItems = getValidIncludesAndExcludes(type, corejs);\n\n const invalidFilters: PluginListOption = [];\n const selectedPlugins = flatMap(filterList, filter => {\n let re: RegExp;\n if (typeof filter === \"string\") {\n try {\n re = new RegExp(`^${normalizePluginName(filter)}$`);\n } catch (e) {\n invalidFilters.push(filter);\n return [];\n }\n } else {\n re = filter;\n }\n const items = filterableItems.filter(item => {\n return process.env.BABEL_8_BREAKING\n ? re.test(item)\n : re.test(item) ||\n // For backwards compatibility, we also support matching against the\n // proposal- name.\n re.test(item.replace(/^transform-/, \"proposal-\"));\n });\n if (items.length === 0) invalidFilters.push(filter);\n return items;\n });\n\n v.invariant(\n invalidFilters.length === 0,\n `The plugins/built-ins '${invalidFilters.join(\n \", \",\n )}' passed to the '${type}' option are not\n valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`,\n );\n\n return selectedPlugins;\n};\n\nexport const checkDuplicateIncludeExcludes = (\n include: Array<string> = [],\n exclude: Array<string> = [],\n) => {\n const duplicates = include.filter(opt => exclude.indexOf(opt) >= 0);\n\n v.invariant(\n duplicates.length === 0,\n `The plugins/built-ins '${duplicates.join(\n \", \",\n )}' were found in both the \"include\" and\n \"exclude\" options.`,\n );\n};\n\nconst normalizeTargets = (\n targets: string | string[] | Options[\"targets\"],\n): Options[\"targets\"] => {\n // TODO: Allow to use only query or strings as a targets from next breaking change.\n if (typeof targets === \"string\" || Array.isArray(targets)) {\n return { browsers: targets };\n }\n return { ...targets };\n};\n\nexport const validateModulesOption = (\n modulesOpt: ModuleOption = ModulesOption.auto,\n) => {\n v.invariant(\n // @ts-expect-error we have provided fallback for undefined keys\n ModulesOption[modulesOpt.toString()] || modulesOpt === ModulesOption.false,\n `The 'modules' option must be one of \\n` +\n ` - 'false' to indicate no module processing\\n` +\n ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` +\n ` - 'auto' (default) which will automatically select 'false' if the current\\n` +\n ` process is known to support ES module syntax, or \"commonjs\" otherwise\\n`,\n );\n\n return modulesOpt;\n};\n\nexport const validateUseBuiltInsOption = (\n builtInsOpt: BuiltInsOption = false,\n) => {\n v.invariant(\n // @ts-expect-error we have provided fallback for undefined keys\n UseBuiltInsOption[builtInsOpt.toString()] ||\n builtInsOpt === UseBuiltInsOption.false,\n `The 'useBuiltIns' option must be either\n 'false' (default) to indicate no polyfill,\n '\"entry\"' to indicate replacing the entry polyfill, or\n '\"usage\"' to import only used polyfills per file`,\n );\n\n return builtInsOpt;\n};\n\nexport type NormalizedCorejsOption = {\n proposals: boolean;\n version: SemVer | null | false;\n};\n\nexport function normalizeCoreJSOption(\n corejs: CorejsOption | undefined | null,\n useBuiltIns: BuiltInsOption,\n): NormalizedCorejsOption {\n let proposals = false;\n let rawVersion;\n\n if (useBuiltIns && corejs === undefined) {\n rawVersion = 2;\n console.warn(\n \"\\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a \" +\n \"core-js version. Currently, we assume version 2.x when no version \" +\n \"is passed. Since this default version will likely change in future \" +\n \"versions of Babel, we recommend explicitly setting the core-js version \" +\n \"you are using via the `corejs` option.\\n\" +\n \"\\nYou should also be sure that the version you pass to the `corejs` \" +\n \"option matches the version specified in your `package.json`'s \" +\n \"`dependencies` section. If it doesn't, you need to run one of the \" +\n \"following commands:\\n\\n\" +\n \" npm install --save core-js@2 npm install --save core-js@3\\n\" +\n \" yarn add core-js@2 yarn add core-js@3\\n\\n\" +\n \"More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\\n\" +\n \"More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs\",\n );\n } else if (typeof corejs === \"object\" && corejs !== null) {\n rawVersion = corejs.version;\n proposals = Boolean(corejs.proposals);\n } else {\n rawVersion = corejs;\n }\n\n const version = rawVersion ? semver.coerce(String(rawVersion)) : false;\n\n if (!useBuiltIns && version) {\n console.warn(\n \"\\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\\n\",\n );\n }\n\n if (useBuiltIns && (!version || version.major < 2 || version.major > 3)) {\n throw new RangeError(\n \"Invalid Option: The version passed to `corejs` is invalid. Currently, \" +\n \"only core-js@2 and core-js@3 are supported.\",\n );\n }\n\n return { version, proposals };\n}\n\nexport default function normalizeOptions(opts: Options) {\n v.validateTopLevelOptions(opts, TopLevelOptions);\n\n const useBuiltIns = validateUseBuiltInsOption(opts.useBuiltIns);\n\n const corejs = normalizeCoreJSOption(opts.corejs, useBuiltIns);\n\n const include = expandIncludesAndExcludes(\n opts.include,\n TopLevelOptions.include,\n !!corejs.version && corejs.version.major,\n );\n\n const exclude = expandIncludesAndExcludes(\n opts.exclude,\n TopLevelOptions.exclude,\n !!corejs.version && corejs.version.major,\n );\n\n checkDuplicateIncludeExcludes(include, exclude);\n\n return {\n bugfixes: v.validateBooleanOption(\n TopLevelOptions.bugfixes,\n opts.bugfixes,\n process.env.BABEL_8_BREAKING ? true : false,\n ),\n configPath: v.validateStringOption(\n TopLevelOptions.configPath,\n opts.configPath,\n process.cwd(),\n ),\n corejs,\n debug: v.validateBooleanOption(TopLevelOptions.debug, opts.debug, false),\n include,\n exclude,\n forceAllTransforms: v.validateBooleanOption(\n TopLevelOptions.forceAllTransforms,\n opts.forceAllTransforms,\n false,\n ),\n ignoreBrowserslistConfig: v.validateBooleanOption(\n TopLevelOptions.ignoreBrowserslistConfig,\n opts.ignoreBrowserslistConfig,\n false,\n ),\n loose: v.validateBooleanOption<boolean>(TopLevelOptions.loose, opts.loose),\n modules: validateModulesOption(opts.modules),\n shippedProposals: v.validateBooleanOption(\n TopLevelOptions.shippedProposals,\n opts.shippedProposals,\n false,\n ),\n spec: v.validateBooleanOption(TopLevelOptions.spec, opts.spec, false),\n targets: normalizeTargets(opts.targets),\n useBuiltIns: useBuiltIns,\n browserslistEnv: v.validateStringOption<string>(\n TopLevelOptions.browserslistEnv,\n opts.browserslistEnv,\n ),\n };\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_semver","require","_corejs2BuiltIns","_coreJsCompat","_pluginsCompatData","_moduleTransformations","_options","_helperValidatorOption","corejs2DefaultWebIncludes","v","OptionValidator","allPluginsList","Object","keys","pluginsList","modulePlugins","moduleTransformations","map","m","getValidIncludesAndExcludes","type","corejs","set","Set","add","corejs2Polyfills","corejs3Polyfills","Array","from","flatMap","array","fn","prototype","concat","apply","normalizePluginName","plugin","replace","exports","expandIncludesAndExcludes","filterList","length","filterableItems","invalidFilters","selectedPlugins","filter","re","RegExp","e","push","items","item","test","invariant","join","checkDuplicateIncludeExcludes","include","exclude","duplicates","opt","indexOf","normalizeTargets","targets","isArray","browsers","assign","validateModulesOption","modulesOpt","ModulesOption","auto","toString","false","validateUseBuiltInsOption","builtInsOpt","UseBuiltInsOption","normalizeCoreJSOption","useBuiltIns","proposals","rawVersion","undefined","console","warn","version","Boolean","semver","coerce","String","major","RangeError","normalizeOptions","opts","validateTopLevelOptions","TopLevelOptions","validateBooleanOption","loose","spec","bugfixes","configPath","validateStringOption","process","cwd","debug","forceAllTransforms","ignoreBrowserslistConfig","modules","shippedProposals","browserslistEnv"],"sources":["../src/normalize-options.ts"],"sourcesContent":["import semver, { type SemVer } from \"semver\";\nimport corejs2Polyfills from \"@babel/compat-data/corejs2-built-ins\";\n// @ts-expect-error Fixme: TS can not infer types from ../data/core-js-compat.js\n// but we can't import core-js-compat/data.json because JSON imports do\n// not work on Node 14\nimport corejs3Polyfills from \"../data/core-js-compat.js\";\nimport { plugins as pluginsList } from \"./plugins-compat-data.ts\";\nimport moduleTransformations from \"./module-transformations.ts\";\nimport {\n TopLevelOptions,\n ModulesOption,\n UseBuiltInsOption,\n} from \"./options.ts\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\n\nconst corejs2DefaultWebIncludes = [\n \"web.timers\",\n \"web.immediate\",\n \"web.dom.iterable\",\n];\n\nimport type {\n BuiltInsOption,\n CorejsOption,\n ModuleOption,\n Options,\n PluginListOption,\n} from \"./types.ts\";\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nconst allPluginsList = Object.keys(pluginsList);\n\n// NOTE: Since module plugins are handled separately compared to other plugins (via the \"modules\" option) it\n// should only be possible to exclude and not include module plugins, otherwise it's possible that preset-env\n// will add a module plugin twice.\nconst modulePlugins = [\n \"transform-dynamic-import\",\n ...Object.keys(moduleTransformations).map(m => moduleTransformations[m]),\n];\n\nconst getValidIncludesAndExcludes = (\n type: \"include\" | \"exclude\",\n corejs: number | false,\n) => {\n const set = new Set(allPluginsList);\n if (type === \"exclude\") modulePlugins.map(set.add, set);\n if (corejs) {\n if (process.env.BABEL_8_BREAKING) {\n Object.keys(corejs3Polyfills).map(set.add, set);\n } else {\n if (corejs === 2) {\n Object.keys(corejs2Polyfills).map(set.add, set);\n corejs2DefaultWebIncludes.map(set.add, set);\n } else {\n Object.keys(corejs3Polyfills).map(set.add, set);\n }\n }\n }\n return Array.from(set);\n};\n\nfunction flatMap<T, U>(array: Array<T>, fn: (item: T) => Array<U>): Array<U> {\n return Array.prototype.concat.apply([], array.map(fn));\n}\n\nexport const normalizePluginName = (plugin: string) =>\n plugin.replace(/^(@babel\\/|babel-)(plugin-)?/, \"\");\n\nconst expandIncludesAndExcludes = (\n filterList: PluginListOption = [],\n type: \"include\" | \"exclude\",\n corejs: number | false,\n) => {\n if (filterList.length === 0) return [];\n\n const filterableItems = getValidIncludesAndExcludes(type, corejs);\n\n const invalidFilters: PluginListOption = [];\n const selectedPlugins = flatMap(filterList, filter => {\n let re: RegExp;\n if (typeof filter === \"string\") {\n try {\n re = new RegExp(`^${normalizePluginName(filter)}$`);\n } catch (e) {\n invalidFilters.push(filter);\n return [];\n }\n } else {\n re = filter;\n }\n const items = filterableItems.filter(item => {\n return process.env.BABEL_8_BREAKING\n ? re.test(item)\n : re.test(item) ||\n // For backwards compatibility, we also support matching against the\n // proposal- name.\n re.test(item.replace(/^transform-/, \"proposal-\"));\n });\n if (items.length === 0) invalidFilters.push(filter);\n return items;\n });\n\n v.invariant(\n invalidFilters.length === 0,\n `The plugins/built-ins '${invalidFilters.join(\n \", \",\n )}' passed to the '${type}' option are not\n valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`,\n );\n\n return selectedPlugins;\n};\n\nexport const checkDuplicateIncludeExcludes = (\n include: Array<string> = [],\n exclude: Array<string> = [],\n) => {\n const duplicates = include.filter(opt => exclude.indexOf(opt) >= 0);\n\n v.invariant(\n duplicates.length === 0,\n `The plugins/built-ins '${duplicates.join(\n \", \",\n )}' were found in both the \"include\" and\n \"exclude\" options.`,\n );\n};\n\nconst normalizeTargets = (\n targets: string | string[] | Options[\"targets\"],\n): Options[\"targets\"] => {\n // TODO: Allow to use only query or strings as a targets from next breaking change.\n if (typeof targets === \"string\" || Array.isArray(targets)) {\n return { browsers: targets };\n }\n return { ...targets };\n};\n\nexport const validateModulesOption = (\n modulesOpt: ModuleOption = ModulesOption.auto,\n) => {\n v.invariant(\n // @ts-expect-error we have provided fallback for undefined keys\n ModulesOption[modulesOpt.toString()] || modulesOpt === ModulesOption.false,\n `The 'modules' option must be one of \\n` +\n ` - 'false' to indicate no module processing\\n` +\n ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` +\n ` - 'auto' (default) which will automatically select 'false' if the current\\n` +\n ` process is known to support ES module syntax, or \"commonjs\" otherwise\\n`,\n );\n\n return modulesOpt;\n};\n\nexport const validateUseBuiltInsOption = (\n builtInsOpt: BuiltInsOption = false,\n) => {\n v.invariant(\n // @ts-expect-error we have provided fallback for undefined keys\n UseBuiltInsOption[builtInsOpt.toString()] ||\n builtInsOpt === UseBuiltInsOption.false,\n `The 'useBuiltIns' option must be either\n 'false' (default) to indicate no polyfill,\n '\"entry\"' to indicate replacing the entry polyfill, or\n '\"usage\"' to import only used polyfills per file`,\n );\n\n return builtInsOpt;\n};\n\nexport type NormalizedCorejsOption = {\n proposals: boolean;\n version: SemVer | null | false;\n};\n\nexport function normalizeCoreJSOption(\n corejs: CorejsOption | undefined | null,\n useBuiltIns: BuiltInsOption,\n): NormalizedCorejsOption {\n let proposals = false;\n let rawVersion: false | string | number | undefined | null;\n\n if (useBuiltIns && corejs === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"When using the `useBuiltIns` option you must specify\" +\n ' the code-js version you are using, such as `\"corejs\": \"3.32.0\"`.',\n );\n } else {\n rawVersion = 2;\n console.warn(\n \"\\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a \" +\n `core-js version. Currently, we assume version 2.x when no version ` +\n \"is passed. Since this default version will likely change in future \" +\n \"versions of Babel, we recommend explicitly setting the core-js version \" +\n \"you are using via the `corejs` option.\\n\" +\n \"\\nYou should also be sure that the version you pass to the `corejs` \" +\n \"option matches the version specified in your `package.json`'s \" +\n \"`dependencies` section. If it doesn't, you need to run one of the \" +\n \"following commands:\\n\\n\" +\n \" npm install --save core-js@2 npm install --save core-js@3\\n\" +\n \" yarn add core-js@2 yarn add core-js@3\\n\\n\" +\n \"More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\\n\" +\n \"More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs\",\n );\n }\n } else if (typeof corejs === \"object\" && corejs !== null) {\n rawVersion = corejs.version;\n proposals = Boolean(corejs.proposals);\n } else {\n rawVersion = corejs as false | string | number | undefined | null;\n }\n\n const version = rawVersion ? semver.coerce(String(rawVersion)) : false;\n\n if (version) {\n if (useBuiltIns) {\n if (process.env.BABEL_8_BREAKING) {\n if (version.major !== 3) {\n throw new RangeError(\n \"Invalid Option: The version passed to `corejs` is invalid. Currently, \" +\n \"only core-js@3 is supported.\",\n );\n }\n\n if (\n typeof rawVersion !== \"string\" ||\n !String(rawVersion).includes(\".\")\n ) {\n throw new Error(\n 'Invalid Option: The version passed to `corejs` is invalid. Please use string and specify the minor version, such as `\"3.33\"`.',\n );\n }\n } else {\n if (version.major < 2 || version.major > 3) {\n throw new RangeError(\n \"Invalid Option: The version passed to `corejs` is invalid. Currently, \" +\n \"only core-js@2 and core-js@3 are supported.\",\n );\n }\n }\n } else {\n console.warn(\n \"\\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\\n\",\n );\n }\n }\n\n return { version, proposals };\n}\n\nexport default function normalizeOptions(opts: Options) {\n v.validateTopLevelOptions(opts, TopLevelOptions);\n\n const useBuiltIns = validateUseBuiltInsOption(opts.useBuiltIns);\n\n const corejs = normalizeCoreJSOption(opts.corejs, useBuiltIns);\n\n const include = expandIncludesAndExcludes(\n opts.include,\n TopLevelOptions.include,\n !!corejs.version && corejs.version.major,\n );\n\n const exclude = expandIncludesAndExcludes(\n opts.exclude,\n TopLevelOptions.exclude,\n !!corejs.version && corejs.version.major,\n );\n\n checkDuplicateIncludeExcludes(include, exclude);\n\n if (!process.env.BABEL_8_BREAKING) {\n v.validateBooleanOption(\"loose\", opts.loose);\n v.validateBooleanOption(\"spec\", opts.spec);\n }\n\n return {\n bugfixes: v.validateBooleanOption(\n TopLevelOptions.bugfixes,\n opts.bugfixes,\n process.env.BABEL_8_BREAKING ? true : false,\n ),\n configPath: v.validateStringOption(\n TopLevelOptions.configPath,\n opts.configPath,\n process.cwd(),\n ),\n corejs,\n debug: v.validateBooleanOption(TopLevelOptions.debug, opts.debug, false),\n include,\n exclude,\n forceAllTransforms: v.validateBooleanOption(\n TopLevelOptions.forceAllTransforms,\n opts.forceAllTransforms,\n false,\n ),\n ignoreBrowserslistConfig: v.validateBooleanOption(\n TopLevelOptions.ignoreBrowserslistConfig,\n opts.ignoreBrowserslistConfig,\n false,\n ),\n modules: validateModulesOption(opts.modules),\n shippedProposals: v.validateBooleanOption(\n TopLevelOptions.shippedProposals,\n opts.shippedProposals,\n false,\n ),\n targets: normalizeTargets(opts.targets),\n useBuiltIns: useBuiltIns,\n browserslistEnv: v.validateStringOption(\n TopLevelOptions.browserslistEnv,\n opts.browserslistEnv,\n ),\n };\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/options.js b/node_modules/@babel/preset-env/lib/options.js index 8d874796..f85c0bde 100644 --- a/node_modules/@babel/preset-env/lib/options.js +++ b/node_modules/@babel/preset-env/lib/options.js @@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.UseBuiltInsOption = exports.TopLevelOptions = exports.ModulesOption = void 0; -const TopLevelOptions = { +const TopLevelOptions = exports.TopLevelOptions = { bugfixes: "bugfixes", configPath: "configPath", corejs: "corejs", @@ -13,16 +13,19 @@ const TopLevelOptions = { forceAllTransforms: "forceAllTransforms", ignoreBrowserslistConfig: "ignoreBrowserslistConfig", include: "include", - loose: "loose", modules: "modules", shippedProposals: "shippedProposals", - spec: "spec", targets: "targets", useBuiltIns: "useBuiltIns", browserslistEnv: "browserslistEnv" }; -exports.TopLevelOptions = TopLevelOptions; -const ModulesOption = { +{ + Object.assign(TopLevelOptions, { + loose: "loose", + spec: "spec" + }); +} +const ModulesOption = exports.ModulesOption = { false: false, auto: "auto", amd: "amd", @@ -31,12 +34,10 @@ const ModulesOption = { systemjs: "systemjs", umd: "umd" }; -exports.ModulesOption = ModulesOption; -const UseBuiltInsOption = { +const UseBuiltInsOption = exports.UseBuiltInsOption = { false: false, entry: "entry", usage: "usage" }; -exports.UseBuiltInsOption = UseBuiltInsOption; //# sourceMappingURL=options.js.map diff --git a/node_modules/@babel/preset-env/lib/options.js.map b/node_modules/@babel/preset-env/lib/options.js.map index 28d6e4cc..980d52fb 100644 --- a/node_modules/@babel/preset-env/lib/options.js.map +++ b/node_modules/@babel/preset-env/lib/options.js.map @@ -1 +1 @@ -{"version":3,"names":["TopLevelOptions","bugfixes","configPath","corejs","debug","exclude","forceAllTransforms","ignoreBrowserslistConfig","include","loose","modules","shippedProposals","spec","targets","useBuiltIns","browserslistEnv","exports","ModulesOption","false","auto","amd","commonjs","cjs","systemjs","umd","UseBuiltInsOption","entry","usage"],"sources":["../src/options.ts"],"sourcesContent":["export const TopLevelOptions = {\n bugfixes: \"bugfixes\",\n configPath: \"configPath\",\n corejs: \"corejs\",\n debug: \"debug\",\n exclude: \"exclude\",\n forceAllTransforms: \"forceAllTransforms\",\n ignoreBrowserslistConfig: \"ignoreBrowserslistConfig\",\n include: \"include\",\n loose: \"loose\",\n modules: \"modules\",\n shippedProposals: \"shippedProposals\",\n spec: \"spec\",\n targets: \"targets\",\n useBuiltIns: \"useBuiltIns\",\n browserslistEnv: \"browserslistEnv\",\n} as const;\n\nexport const ModulesOption = {\n false: false,\n auto: \"auto\",\n amd: \"amd\",\n commonjs: \"commonjs\",\n cjs: \"cjs\",\n systemjs: \"systemjs\",\n umd: \"umd\",\n} as const;\n\nexport const UseBuiltInsOption = {\n false: false,\n entry: \"entry\",\n usage: \"usage\",\n} as const;\n"],"mappings":";;;;;;AAAO,MAAMA,eAAe,GAAG;EAC7BC,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,YAAY;EACxBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,kBAAkB,EAAE,oBAAoB;EACxCC,wBAAwB,EAAE,0BAA0B;EACpDC,OAAO,EAAE,SAAS;EAClBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,gBAAgB,EAAE,kBAAkB;EACpCC,IAAI,EAAE,MAAM;EACZC,OAAO,EAAE,SAAS;EAClBC,WAAW,EAAE,aAAa;EAC1BC,eAAe,EAAE;AACnB,CAAU;AAACC,OAAA,CAAAhB,eAAA,GAAAA,eAAA;AAEJ,MAAMiB,aAAa,GAAG;EAC3BC,KAAK,EAAE,KAAK;EACZC,IAAI,EAAE,MAAM;EACZC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE;AACP,CAAU;AAACR,OAAA,CAAAC,aAAA,GAAAA,aAAA;AAEJ,MAAMQ,iBAAiB,GAAG;EAC/BP,KAAK,EAAE,KAAK;EACZQ,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;AACT,CAAU;AAACX,OAAA,CAAAS,iBAAA,GAAAA,iBAAA"}
\ No newline at end of file +{"version":3,"names":["TopLevelOptions","exports","bugfixes","configPath","corejs","debug","exclude","forceAllTransforms","ignoreBrowserslistConfig","include","modules","shippedProposals","targets","useBuiltIns","browserslistEnv","Object","assign","loose","spec","ModulesOption","false","auto","amd","commonjs","cjs","systemjs","umd","UseBuiltInsOption","entry","usage"],"sources":["../src/options.ts"],"sourcesContent":["export const TopLevelOptions = {\n bugfixes: \"bugfixes\",\n configPath: \"configPath\",\n corejs: \"corejs\",\n debug: \"debug\",\n exclude: \"exclude\",\n forceAllTransforms: \"forceAllTransforms\",\n ignoreBrowserslistConfig: \"ignoreBrowserslistConfig\",\n include: \"include\",\n modules: \"modules\",\n shippedProposals: \"shippedProposals\",\n targets: \"targets\",\n useBuiltIns: \"useBuiltIns\",\n browserslistEnv: \"browserslistEnv\",\n} as const;\n\nif (!process.env.BABEL_8_BREAKING) {\n Object.assign(TopLevelOptions, {\n loose: \"loose\",\n spec: \"spec\",\n });\n}\n\nexport const ModulesOption = {\n false: false,\n auto: \"auto\",\n amd: \"amd\",\n commonjs: \"commonjs\",\n cjs: \"cjs\",\n systemjs: \"systemjs\",\n umd: \"umd\",\n} as const;\n\nexport const UseBuiltInsOption = {\n false: false,\n entry: \"entry\",\n usage: \"usage\",\n} as const;\n"],"mappings":";;;;;;AAAO,MAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG;EAC7BE,QAAQ,EAAE,UAAU;EACpBC,UAAU,EAAE,YAAY;EACxBC,MAAM,EAAE,QAAQ;EAChBC,KAAK,EAAE,OAAO;EACdC,OAAO,EAAE,SAAS;EAClBC,kBAAkB,EAAE,oBAAoB;EACxCC,wBAAwB,EAAE,0BAA0B;EACpDC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,gBAAgB,EAAE,kBAAkB;EACpCC,OAAO,EAAE,SAAS;EAClBC,WAAW,EAAE,aAAa;EAC1BC,eAAe,EAAE;AACnB,CAAU;AAEyB;EACjCC,MAAM,CAACC,MAAM,CAAChB,eAAe,EAAE;IAC7BiB,KAAK,EAAE,OAAO;IACdC,IAAI,EAAE;EACR,CAAC,CAAC;AACJ;AAEO,MAAMC,aAAa,GAAAlB,OAAA,CAAAkB,aAAA,GAAG;EAC3BC,KAAK,EAAE,KAAK;EACZC,IAAI,EAAE,MAAM;EACZC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE,KAAK;EACVC,QAAQ,EAAE,UAAU;EACpBC,GAAG,EAAE;AACP,CAAU;AAEH,MAAMC,iBAAiB,GAAA1B,OAAA,CAAA0B,iBAAA,GAAG;EAC/BP,KAAK,EAAE,KAAK;EACZQ,KAAK,EAAE,OAAO;EACdC,KAAK,EAAE;AACT,CAAU"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/plugins-compat-data.js b/node_modules/@babel/preset-env/lib/plugins-compat-data.js index 0b22afb1..fadd3895 100644 --- a/node_modules/@babel/preset-env/lib/plugins-compat-data.js +++ b/node_modules/@babel/preset-env/lib/plugins-compat-data.js @@ -9,12 +9,9 @@ var _pluginBugfixes = require("@babel/compat-data/plugin-bugfixes"); var _overlappingPlugins = require("@babel/compat-data/overlapping-plugins"); var _availablePlugins = require("./available-plugins.js"); const keys = Object.keys; -const plugins = filterAvailable(_plugins); -exports.plugins = plugins; -const pluginsBugfixes = filterAvailable(_pluginBugfixes); -exports.pluginsBugfixes = pluginsBugfixes; -const overlappingPlugins = filterAvailable(_overlappingPlugins); -exports.overlappingPlugins = overlappingPlugins; +const plugins = exports.plugins = filterAvailable(_plugins); +const pluginsBugfixes = exports.pluginsBugfixes = filterAvailable(_pluginBugfixes); +const overlappingPlugins = exports.overlappingPlugins = filterAvailable(_overlappingPlugins); overlappingPlugins["syntax-import-attributes"] = ["syntax-import-assertions"]; function filterAvailable(data) { const result = {}; diff --git a/node_modules/@babel/preset-env/lib/plugins-compat-data.js.map b/node_modules/@babel/preset-env/lib/plugins-compat-data.js.map index 98819dcd..8f76e7cd 100644 --- a/node_modules/@babel/preset-env/lib/plugins-compat-data.js.map +++ b/node_modules/@babel/preset-env/lib/plugins-compat-data.js.map @@ -1 +1 @@ -{"version":3,"names":["_plugins","require","_pluginBugfixes","_overlappingPlugins","_availablePlugins","keys","Object","plugins","filterAvailable","originalPlugins","exports","pluginsBugfixes","originalPluginsBugfixes","overlappingPlugins","originalOverlappingPlugins","data","result","plugin","hasOwnProperty","call","availablePlugins"],"sources":["../src/plugins-compat-data.ts"],"sourcesContent":["import originalPlugins from \"@babel/compat-data/plugins\";\nimport originalPluginsBugfixes from \"@babel/compat-data/plugin-bugfixes\";\nimport originalOverlappingPlugins from \"@babel/compat-data/overlapping-plugins\";\nimport availablePlugins from \"./available-plugins.ts\";\n\nconst keys: <O extends object>(o: O) => (keyof O)[] = Object.keys;\n\nexport const plugins = filterAvailable(originalPlugins);\nexport const pluginsBugfixes = filterAvailable(originalPluginsBugfixes);\nexport const overlappingPlugins = filterAvailable(originalOverlappingPlugins);\n\n// @ts-expect-error: we extend this here, since it's a syntax plugin and thus\n// doesn't make sense to store it in a compat-data package.\noverlappingPlugins[\"syntax-import-attributes\"] = [\"syntax-import-assertions\"];\n\nfunction filterAvailable<Data extends { [name: string]: unknown }>(\n data: Data,\n): { [Name in keyof Data & keyof typeof availablePlugins]: Data[Name] } {\n const result = {} as any;\n for (const plugin of keys(data)) {\n if (Object.hasOwnProperty.call(availablePlugins, plugin)) {\n result[plugin] = data[plugin];\n }\n }\n return result;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAEA,MAAMI,IAA6C,GAAGC,MAAM,CAACD,IAAI;AAE1D,MAAME,OAAO,GAAGC,eAAe,CAACC,QAAe,CAAC;AAACC,OAAA,CAAAH,OAAA,GAAAA,OAAA;AACjD,MAAMI,eAAe,GAAGH,eAAe,CAACI,eAAuB,CAAC;AAACF,OAAA,CAAAC,eAAA,GAAAA,eAAA;AACjE,MAAME,kBAAkB,GAAGL,eAAe,CAACM,mBAA0B,CAAC;AAACJ,OAAA,CAAAG,kBAAA,GAAAA,kBAAA;AAI9EA,kBAAkB,CAAC,0BAA0B,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAE7E,SAASL,eAAeA,CACtBO,IAAU,EAC4D;EACtE,MAAMC,MAAM,GAAG,CAAC,CAAQ;EACxB,KAAK,MAAMC,MAAM,IAAIZ,IAAI,CAACU,IAAI,CAAC,EAAE;IAC/B,IAAIT,MAAM,CAACY,cAAc,CAACC,IAAI,CAACC,yBAAgB,EAAEH,MAAM,CAAC,EAAE;MACxDD,MAAM,CAACC,MAAM,CAAC,GAAGF,IAAI,CAACE,MAAM,CAAC;IAC/B;EACF;EACA,OAAOD,MAAM;AACf"}
\ No newline at end of file +{"version":3,"names":["_plugins","require","_pluginBugfixes","_overlappingPlugins","_availablePlugins","keys","Object","plugins","exports","filterAvailable","originalPlugins","pluginsBugfixes","originalPluginsBugfixes","overlappingPlugins","originalOverlappingPlugins","data","result","plugin","hasOwnProperty","call","availablePlugins"],"sources":["../src/plugins-compat-data.ts"],"sourcesContent":["import originalPlugins from \"@babel/compat-data/plugins\";\nimport originalPluginsBugfixes from \"@babel/compat-data/plugin-bugfixes\";\nimport originalOverlappingPlugins from \"@babel/compat-data/overlapping-plugins\";\nimport availablePlugins from \"./available-plugins.ts\";\n\nconst keys: <O extends object>(o: O) => (keyof O)[] = Object.keys;\n\nexport const plugins = filterAvailable(originalPlugins);\nexport const pluginsBugfixes = filterAvailable(originalPluginsBugfixes);\nexport const overlappingPlugins = filterAvailable(originalOverlappingPlugins);\n\n// @ts-expect-error: we extend this here, since it's a syntax plugin and thus\n// doesn't make sense to store it in a compat-data package.\noverlappingPlugins[\"syntax-import-attributes\"] = [\"syntax-import-assertions\"];\n\nfunction filterAvailable<Data extends { [name: string]: unknown }>(\n data: Data,\n): { [Name in keyof Data & keyof typeof availablePlugins]: Data[Name] } {\n const result = {} as any;\n for (const plugin of keys(data)) {\n if (Object.hasOwnProperty.call(availablePlugins, plugin)) {\n result[plugin] = data[plugin];\n }\n }\n return result;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,mBAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAEA,MAAMI,IAA6C,GAAGC,MAAM,CAACD,IAAI;AAE1D,MAAME,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAGE,eAAe,CAACC,QAAe,CAAC;AAChD,MAAMC,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAGF,eAAe,CAACG,eAAuB,CAAC;AAChE,MAAMC,kBAAkB,GAAAL,OAAA,CAAAK,kBAAA,GAAGJ,eAAe,CAACK,mBAA0B,CAAC;AAI7ED,kBAAkB,CAAC,0BAA0B,CAAC,GAAG,CAAC,0BAA0B,CAAC;AAE7E,SAASJ,eAAeA,CACtBM,IAAU,EAC4D;EACtE,MAAMC,MAAM,GAAG,CAAC,CAAQ;EACxB,KAAK,MAAMC,MAAM,IAAIZ,IAAI,CAACU,IAAI,CAAC,EAAE;IAC/B,IAAIT,MAAM,CAACY,cAAc,CAACC,IAAI,CAACC,yBAAgB,EAAEH,MAAM,CAAC,EAAE;MACxDD,MAAM,CAACC,MAAM,CAAC,GAAGF,IAAI,CAACE,MAAM,CAAC;IAC/B;EACF;EACA,OAAOD,MAAM;AACf"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs b/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs new file mode 100644 index 00000000..4dae4eb7 --- /dev/null +++ b/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs @@ -0,0 +1,18 @@ +{ + Object.defineProperties(exports, { + pluginCoreJS2: { + get: () => require("babel-plugin-polyfill-corejs2").default + }, + pluginRegenerator: { + get: () => require("babel-plugin-polyfill-regenerator").default + }, + legacyBabelPolyfillPlugin: { + get: () => require("./babel-polyfill.cjs") + }, + removeRegeneratorEntryPlugin: { + get: () => require("./regenerator.cjs") + } + }); +} + +//# sourceMappingURL=babel-7-plugins.cjs.map diff --git a/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs.map b/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs.map new file mode 100644 index 00000000..eaaf9e2d --- /dev/null +++ b/node_modules/@babel/preset-env/lib/polyfills/babel-7-plugins.cjs.map @@ -0,0 +1 @@ +{"version":3,"names":["Object","defineProperties","exports","pluginCoreJS2","get","require","default","pluginRegenerator","legacyBabelPolyfillPlugin","removeRegeneratorEntryPlugin"],"sources":["../../src/polyfills/babel-7-plugins.cjs"],"sourcesContent":["// TODO(Babel 8): Remove this file\n\nif (!process.env.BABEL_8_BREAKING) {\n Object.defineProperties(exports, {\n pluginCoreJS2: {\n get: () => require(\"babel-plugin-polyfill-corejs2\").default,\n },\n pluginRegenerator: {\n get: () => require(\"babel-plugin-polyfill-regenerator\").default,\n },\n legacyBabelPolyfillPlugin: { get: () => require(\"./babel-polyfill.cjs\") },\n removeRegeneratorEntryPlugin: { get: () => require(\"./regenerator.cjs\") },\n });\n}\n"],"mappings":"AAEmC;EACjCA,MAAM,CAACC,gBAAgB,CAACC,OAAO,EAAE;IAC/BC,aAAa,EAAE;MACbC,GAAG,EAAEA,CAAA,KAAMC,OAAO,CAAC,+BAA+B,CAAC,CAACC;IACtD,CAAC;IACDC,iBAAiB,EAAE;MACjBH,GAAG,EAAEA,CAAA,KAAMC,OAAO,CAAC,mCAAmC,CAAC,CAACC;IAC1D,CAAC;IACDE,yBAAyB,EAAE;MAAEJ,GAAG,EAAEA,CAAA,KAAMC,OAAO,CAAC,sBAAsB;IAAE,CAAC;IACzEI,4BAA4B,EAAE;MAAEL,GAAG,EAAEA,CAAA,KAAMC,OAAO,CAAC,mBAAmB;IAAE;EAC1E,CAAC,CAAC;AACJ"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.js b/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs index bc9f0082..2e578b1e 100644 --- a/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.js +++ b/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs @@ -1,17 +1,16 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; -var _utils = require("./utils.js"); +; +const { + getImportSource, + getRequireSource, + isPolyfillSource +} = require("./utils.cjs"); const BABEL_POLYFILL_DEPRECATION = ` \`@babel/polyfill\` is deprecated. Please, use required parts of \`core-js\` and \`regenerator-runtime/runtime\` separately`; const NO_DIRECT_POLYFILL_IMPORT = ` When setting \`useBuiltIns: 'usage'\`, polyfills are automatically imported when needed. Please remove the direct import of \`SPECIFIER\` or use \`useBuiltIns: 'entry'\` instead.`; -function _default({ +module.exports = function ({ template }, { regenerator, @@ -22,8 +21,8 @@ function _default({ name: "preset-env/replace-babel-polyfill", visitor: { ImportDeclaration(path) { - const src = (0, _utils.getImportSource)(path); - if (usage && (0, _utils.isPolyfillSource)(src)) { + const src = getImportSource(path); + if (usage && isPolyfillSource(src)) { console.warn(NO_DIRECT_POLYFILL_IMPORT.replace("SPECIFIER", src)); if (!deprecated) path.remove(); } else if (src === "@babel/polyfill") { @@ -43,8 +42,8 @@ function _default({ }, Program(path) { path.get("body").forEach(bodyPath => { - const src = (0, _utils.getRequireSource)(bodyPath); - if (usage && (0, _utils.isPolyfillSource)(src)) { + const src = getRequireSource(bodyPath); + if (usage && isPolyfillSource(src)) { console.warn(NO_DIRECT_POLYFILL_IMPORT.replace("SPECIFIER", src)); if (!deprecated) bodyPath.remove(); } else if (src === "@babel/polyfill") { @@ -65,6 +64,6 @@ function _default({ } } }; -} +}; -//# sourceMappingURL=babel-polyfill.js.map +//# sourceMappingURL=babel-polyfill.cjs.map diff --git a/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs.map b/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs.map new file mode 100644 index 00000000..f46034e1 --- /dev/null +++ b/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.cjs.map @@ -0,0 +1 @@ +{"version":3,"names":["getImportSource","getRequireSource","isPolyfillSource","require","BABEL_POLYFILL_DEPRECATION","NO_DIRECT_POLYFILL_IMPORT","module","exports","template","regenerator","deprecated","usage","name","visitor","ImportDeclaration","path","src","console","warn","replace","remove","replaceWithMultiple","ast","replaceWith","Program","get","forEach","bodyPath"],"sources":["../../src/polyfills/babel-polyfill.cjs"],"sourcesContent":["// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nconst {\n getImportSource,\n getRequireSource,\n isPolyfillSource,\n} = require(\"./utils.cjs\");\n\nconst BABEL_POLYFILL_DEPRECATION = `\n \\`@babel/polyfill\\` is deprecated. Please, use required parts of \\`core-js\\`\n and \\`regenerator-runtime/runtime\\` separately`;\n\nconst NO_DIRECT_POLYFILL_IMPORT = `\n When setting \\`useBuiltIns: 'usage'\\`, polyfills are automatically imported when needed.\n Please remove the direct import of \\`SPECIFIER\\` or use \\`useBuiltIns: 'entry'\\` instead.`;\n\nmodule.exports = function ({ template }, { regenerator, deprecated, usage }) {\n return {\n name: \"preset-env/replace-babel-polyfill\",\n visitor: {\n ImportDeclaration(path) {\n const src = getImportSource(path);\n if (usage && isPolyfillSource(src)) {\n console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n if (!deprecated) path.remove();\n } else if (src === \"@babel/polyfill\") {\n if (deprecated) {\n console.warn(BABEL_POLYFILL_DEPRECATION);\n } else if (regenerator) {\n path.replaceWithMultiple(template.ast`\n import \"core-js\";\n import \"regenerator-runtime/runtime.js\";\n `);\n } else {\n path.replaceWith(template.ast`\n import \"core-js\";\n `);\n }\n }\n },\n Program(path) {\n path.get(\"body\").forEach(bodyPath => {\n const src = getRequireSource(bodyPath);\n if (usage && isPolyfillSource(src)) {\n console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n if (!deprecated) bodyPath.remove();\n } else if (src === \"@babel/polyfill\") {\n if (deprecated) {\n console.warn(BABEL_POLYFILL_DEPRECATION);\n } else if (regenerator) {\n bodyPath.replaceWithMultiple(template.ast`\n require(\"core-js\");\n require(\"regenerator-runtime/runtime.js\");\n `);\n } else {\n bodyPath.replaceWith(template.ast`\n require(\"core-js\");\n `);\n }\n }\n });\n },\n },\n };\n};\n"],"mappings":";AAOA,MAAM;EACJA,eAAe;EACfC,gBAAgB;EAChBC;AACF,CAAC,GAAGC,OAAO,CAAC,aAAa,CAAC;AAE1B,MAAMC,0BAA0B,GAAI;AACpC;AACA,iDAAiD;AAEjD,MAAMC,yBAAyB,GAAI;AACnC;AACA,4FAA4F;AAE5FC,MAAM,CAACC,OAAO,GAAG,UAAU;EAAEC;AAAS,CAAC,EAAE;EAAEC,WAAW;EAAEC,UAAU;EAAEC;AAAM,CAAC,EAAE;EAC3E,OAAO;IACLC,IAAI,EAAE,mCAAmC;IACzCC,OAAO,EAAE;MACPC,iBAAiBA,CAACC,IAAI,EAAE;QACtB,MAAMC,GAAG,GAAGhB,eAAe,CAACe,IAAI,CAAC;QACjC,IAAIJ,KAAK,IAAIT,gBAAgB,CAACc,GAAG,CAAC,EAAE;UAClCC,OAAO,CAACC,IAAI,CAACb,yBAAyB,CAACc,OAAO,CAAC,WAAW,EAAEH,GAAG,CAAC,CAAC;UACjE,IAAI,CAACN,UAAU,EAAEK,IAAI,CAACK,MAAM,CAAC,CAAC;QAChC,CAAC,MAAM,IAAIJ,GAAG,KAAK,iBAAiB,EAAE;UACpC,IAAIN,UAAU,EAAE;YACdO,OAAO,CAACC,IAAI,CAACd,0BAA0B,CAAC;UAC1C,CAAC,MAAM,IAAIK,WAAW,EAAE;YACtBM,IAAI,CAACM,mBAAmB,CAACb,QAAQ,CAACc,GAAI;AAClD;AACA;AACA,aAAa,CAAC;UACJ,CAAC,MAAM;YACLP,IAAI,CAACQ,WAAW,CAACf,QAAQ,CAACc,GAAI;AAC1C;AACA,aAAa,CAAC;UACJ;QACF;MACF,CAAC;MACDE,OAAOA,CAACT,IAAI,EAAE;QACZA,IAAI,CAACU,GAAG,CAAC,MAAM,CAAC,CAACC,OAAO,CAACC,QAAQ,IAAI;UACnC,MAAMX,GAAG,GAAGf,gBAAgB,CAAC0B,QAAQ,CAAC;UACtC,IAAIhB,KAAK,IAAIT,gBAAgB,CAACc,GAAG,CAAC,EAAE;YAClCC,OAAO,CAACC,IAAI,CAACb,yBAAyB,CAACc,OAAO,CAAC,WAAW,EAAEH,GAAG,CAAC,CAAC;YACjE,IAAI,CAACN,UAAU,EAAEiB,QAAQ,CAACP,MAAM,CAAC,CAAC;UACpC,CAAC,MAAM,IAAIJ,GAAG,KAAK,iBAAiB,EAAE;YACpC,IAAIN,UAAU,EAAE;cACdO,OAAO,CAACC,IAAI,CAACd,0BAA0B,CAAC;YAC1C,CAAC,MAAM,IAAIK,WAAW,EAAE;cACtBkB,QAAQ,CAACN,mBAAmB,CAACb,QAAQ,CAACc,GAAI;AACxD;AACA;AACA,eAAe,CAAC;YACJ,CAAC,MAAM;cACLK,QAAQ,CAACJ,WAAW,CAACf,QAAQ,CAACc,GAAI;AAChD;AACA,eAAe,CAAC;YACJ;UACF;QACF,CAAC,CAAC;MACJ;IACF;EACF,CAAC;AACH,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.js.map b/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.js.map deleted file mode 100644 index b4029aec..00000000 --- a/node_modules/@babel/preset-env/lib/polyfills/babel-polyfill.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["_utils","require","BABEL_POLYFILL_DEPRECATION","NO_DIRECT_POLYFILL_IMPORT","_default","template","regenerator","deprecated","usage","name","visitor","ImportDeclaration","path","src","getImportSource","isPolyfillSource","console","warn","replace","remove","replaceWithMultiple","ast","replaceWith","Program","get","forEach","bodyPath","getRequireSource"],"sources":["../../src/polyfills/babel-polyfill.ts"],"sourcesContent":["import {\n getImportSource,\n getRequireSource,\n isPolyfillSource,\n} from \"./utils.ts\";\n\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nconst BABEL_POLYFILL_DEPRECATION = `\n \\`@babel/polyfill\\` is deprecated. Please, use required parts of \\`core-js\\`\n and \\`regenerator-runtime/runtime\\` separately`;\n\nconst NO_DIRECT_POLYFILL_IMPORT = `\n When setting \\`useBuiltIns: 'usage'\\`, polyfills are automatically imported when needed.\n Please remove the direct import of \\`SPECIFIER\\` or use \\`useBuiltIns: 'entry'\\` instead.`;\n\nexport default function (\n { template }: any,\n { regenerator, deprecated, usage }: any,\n) {\n return {\n name: \"preset-env/replace-babel-polyfill\",\n visitor: {\n ImportDeclaration(path: NodePath<t.ImportDeclaration>) {\n const src = getImportSource(path);\n if (usage && isPolyfillSource(src)) {\n console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n if (!deprecated) path.remove();\n } else if (src === \"@babel/polyfill\") {\n if (deprecated) {\n console.warn(BABEL_POLYFILL_DEPRECATION);\n } else if (regenerator) {\n path.replaceWithMultiple(template.ast`\n import \"core-js\";\n import \"regenerator-runtime/runtime.js\";\n `);\n } else {\n path.replaceWith(template.ast`\n import \"core-js\";\n `);\n }\n }\n },\n Program(path: NodePath<t.Program>) {\n path.get(\"body\").forEach(bodyPath => {\n const src = getRequireSource(bodyPath);\n if (usage && isPolyfillSource(src)) {\n console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n if (!deprecated) bodyPath.remove();\n } else if (src === \"@babel/polyfill\") {\n if (deprecated) {\n console.warn(BABEL_POLYFILL_DEPRECATION);\n } else if (regenerator) {\n bodyPath.replaceWithMultiple(template.ast`\n require(\"core-js\");\n require(\"regenerator-runtime/runtime.js\");\n `);\n } else {\n bodyPath.replaceWith(template.ast`\n require(\"core-js\");\n `);\n }\n }\n });\n },\n },\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA,MAAMC,0BAA0B,GAAI;AACpC;AACA,iDAAiD;AAEjD,MAAMC,yBAAyB,GAAI;AACnC;AACA,4FAA4F;AAE7E,SAAAC,SACb;EAAEC;AAAc,CAAC,EACjB;EAAEC,WAAW;EAAEC,UAAU;EAAEC;AAAW,CAAC,EACvC;EACA,OAAO;IACLC,IAAI,EAAE,mCAAmC;IACzCC,OAAO,EAAE;MACPC,iBAAiBA,CAACC,IAAmC,EAAE;QACrD,MAAMC,GAAG,GAAG,IAAAC,sBAAe,EAACF,IAAI,CAAC;QACjC,IAAIJ,KAAK,IAAI,IAAAO,uBAAgB,EAACF,GAAG,CAAC,EAAE;UAClCG,OAAO,CAACC,IAAI,CAACd,yBAAyB,CAACe,OAAO,CAAC,WAAW,EAAEL,GAAG,CAAC,CAAC;UACjE,IAAI,CAACN,UAAU,EAAEK,IAAI,CAACO,MAAM,CAAC,CAAC;QAChC,CAAC,MAAM,IAAIN,GAAG,KAAK,iBAAiB,EAAE;UACpC,IAAIN,UAAU,EAAE;YACdS,OAAO,CAACC,IAAI,CAACf,0BAA0B,CAAC;UAC1C,CAAC,MAAM,IAAII,WAAW,EAAE;YACtBM,IAAI,CAACQ,mBAAmB,CAACf,QAAQ,CAACgB,GAAI;AAClD;AACA;AACA,aAAa,CAAC;UACJ,CAAC,MAAM;YACLT,IAAI,CAACU,WAAW,CAACjB,QAAQ,CAACgB,GAAI;AAC1C;AACA,aAAa,CAAC;UACJ;QACF;MACF,CAAC;MACDE,OAAOA,CAACX,IAAyB,EAAE;QACjCA,IAAI,CAACY,GAAG,CAAC,MAAM,CAAC,CAACC,OAAO,CAACC,QAAQ,IAAI;UACnC,MAAMb,GAAG,GAAG,IAAAc,uBAAgB,EAACD,QAAQ,CAAC;UACtC,IAAIlB,KAAK,IAAI,IAAAO,uBAAgB,EAACF,GAAG,CAAC,EAAE;YAClCG,OAAO,CAACC,IAAI,CAACd,yBAAyB,CAACe,OAAO,CAAC,WAAW,EAAEL,GAAG,CAAC,CAAC;YACjE,IAAI,CAACN,UAAU,EAAEmB,QAAQ,CAACP,MAAM,CAAC,CAAC;UACpC,CAAC,MAAM,IAAIN,GAAG,KAAK,iBAAiB,EAAE;YACpC,IAAIN,UAAU,EAAE;cACdS,OAAO,CAACC,IAAI,CAACf,0BAA0B,CAAC;YAC1C,CAAC,MAAM,IAAII,WAAW,EAAE;cACtBoB,QAAQ,CAACN,mBAAmB,CAACf,QAAQ,CAACgB,GAAI;AACxD;AACA;AACA,eAAe,CAAC;YACJ,CAAC,MAAM;cACLK,QAAQ,CAACJ,WAAW,CAACjB,QAAQ,CAACgB,GAAI;AAChD;AACA,eAAe,CAAC;YACJ;UACF;QACF,CAAC,CAAC;MACJ;IACF;EACF,CAAC;AACH"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/polyfills/regenerator.js b/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs index c02846fa..de6d42dc 100644 --- a/node_modules/@babel/preset-env/lib/polyfills/regenerator.js +++ b/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs @@ -1,24 +1,22 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; -var _utils = require("./utils.js"); +; +const { + getImportSource, + getRequireSource +} = require("./utils.cjs"); function isRegeneratorSource(source) { return source === "regenerator-runtime/runtime" || source === "regenerator-runtime/runtime.js"; } -function _default() { +module.exports = function () { const visitor = { ImportDeclaration(path) { - if (isRegeneratorSource((0, _utils.getImportSource)(path))) { + if (isRegeneratorSource(getImportSource(path))) { this.regeneratorImportExcluded = true; path.remove(); } }, Program(path) { path.get("body").forEach(bodyPath => { - if (isRegeneratorSource((0, _utils.getRequireSource)(bodyPath))) { + if (isRegeneratorSource(getRequireSource(bodyPath))) { this.regeneratorImportExcluded = true; bodyPath.remove(); } @@ -41,6 +39,6 @@ function _default() { } } }; -} +}; -//# sourceMappingURL=regenerator.js.map +//# sourceMappingURL=regenerator.cjs.map diff --git a/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs.map b/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs.map new file mode 100644 index 00000000..74fa18c1 --- /dev/null +++ b/node_modules/@babel/preset-env/lib/polyfills/regenerator.cjs.map @@ -0,0 +1 @@ +{"version":3,"names":["getImportSource","getRequireSource","require","isRegeneratorSource","source","module","exports","visitor","ImportDeclaration","path","regeneratorImportExcluded","remove","Program","get","forEach","bodyPath","name","pre","post","opts","debug","filename","file","process","env","BABEL_ENV","replace","console","log"],"sources":["../../src/polyfills/regenerator.cjs"],"sourcesContent":["// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nconst { getImportSource, getRequireSource } = require(\"./utils.cjs\");\n\nfunction isRegeneratorSource(source) {\n return (\n source === \"regenerator-runtime/runtime\" ||\n source === \"regenerator-runtime/runtime.js\"\n );\n}\n\nmodule.exports = function () {\n const visitor = {\n ImportDeclaration(path) {\n if (isRegeneratorSource(getImportSource(path))) {\n this.regeneratorImportExcluded = true;\n path.remove();\n }\n },\n Program(path) {\n path.get(\"body\").forEach(bodyPath => {\n if (isRegeneratorSource(getRequireSource(bodyPath))) {\n this.regeneratorImportExcluded = true;\n bodyPath.remove();\n }\n });\n },\n };\n\n return {\n name: \"preset-env/remove-regenerator\",\n visitor,\n pre() {\n this.regeneratorImportExcluded = false;\n },\n post() {\n if (this.opts.debug && this.regeneratorImportExcluded) {\n let filename = this.file.opts.filename;\n // normalize filename to generate consistent preset-env test fixtures\n if (process.env.BABEL_ENV === \"test\") {\n filename = filename.replace(/\\\\/g, \"/\");\n }\n console.log(\n `\\n[${filename}] Based on your targets, regenerator-runtime import excluded.`,\n );\n }\n },\n };\n};\n"],"mappings":";AAOA,MAAM;EAAEA,eAAe;EAAEC;AAAiB,CAAC,GAAGC,OAAO,CAAC,aAAa,CAAC;AAEpE,SAASC,mBAAmBA,CAACC,MAAM,EAAE;EACnC,OACEA,MAAM,KAAK,6BAA6B,IACxCA,MAAM,KAAK,gCAAgC;AAE/C;AAEAC,MAAM,CAACC,OAAO,GAAG,YAAY;EAC3B,MAAMC,OAAO,GAAG;IACdC,iBAAiBA,CAACC,IAAI,EAAE;MACtB,IAAIN,mBAAmB,CAACH,eAAe,CAACS,IAAI,CAAC,CAAC,EAAE;QAC9C,IAAI,CAACC,yBAAyB,GAAG,IAAI;QACrCD,IAAI,CAACE,MAAM,CAAC,CAAC;MACf;IACF,CAAC;IACDC,OAAOA,CAACH,IAAI,EAAE;MACZA,IAAI,CAACI,GAAG,CAAC,MAAM,CAAC,CAACC,OAAO,CAACC,QAAQ,IAAI;QACnC,IAAIZ,mBAAmB,CAACF,gBAAgB,CAACc,QAAQ,CAAC,CAAC,EAAE;UACnD,IAAI,CAACL,yBAAyB,GAAG,IAAI;UACrCK,QAAQ,CAACJ,MAAM,CAAC,CAAC;QACnB;MACF,CAAC,CAAC;IACJ;EACF,CAAC;EAED,OAAO;IACLK,IAAI,EAAE,+BAA+B;IACrCT,OAAO;IACPU,GAAGA,CAAA,EAAG;MACJ,IAAI,CAACP,yBAAyB,GAAG,KAAK;IACxC,CAAC;IACDQ,IAAIA,CAAA,EAAG;MACL,IAAI,IAAI,CAACC,IAAI,CAACC,KAAK,IAAI,IAAI,CAACV,yBAAyB,EAAE;QACrD,IAAIW,QAAQ,GAAG,IAAI,CAACC,IAAI,CAACH,IAAI,CAACE,QAAQ;QAEtC,IAAIE,OAAO,CAACC,GAAG,CAACC,SAAS,KAAK,MAAM,EAAE;UACpCJ,QAAQ,GAAGA,QAAQ,CAACK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACzC;QACAC,OAAO,CAACC,GAAG,CACR,MAAKP,QAAS,+DACjB,CAAC;MACH;IACF;EACF,CAAC;AACH,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/polyfills/regenerator.js.map b/node_modules/@babel/preset-env/lib/polyfills/regenerator.js.map deleted file mode 100644 index 680dd912..00000000 --- a/node_modules/@babel/preset-env/lib/polyfills/regenerator.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["_utils","require","isRegeneratorSource","source","_default","visitor","ImportDeclaration","path","getImportSource","regeneratorImportExcluded","remove","Program","get","forEach","bodyPath","getRequireSource","name","pre","post","opts","debug","filename","file","process","env","BABEL_ENV","replace","console","log"],"sources":["../../src/polyfills/regenerator.ts"],"sourcesContent":["import { getImportSource, getRequireSource } from \"./utils.ts\";\nimport type { Visitor } from \"@babel/traverse\";\nimport type { PluginObject, PluginPass } from \"@babel/core\";\nimport type { Options } from \"../types.ts\";\n\nfunction isRegeneratorSource(source: string) {\n return (\n source === \"regenerator-runtime/runtime\" ||\n source === \"regenerator-runtime/runtime.js\"\n );\n}\n\ntype State = {\n regeneratorImportExcluded: boolean;\n};\n\nexport default function (): PluginObject<State & PluginPass<Options>> {\n const visitor: Visitor<State & PluginPass> = {\n ImportDeclaration(path) {\n if (isRegeneratorSource(getImportSource(path))) {\n this.regeneratorImportExcluded = true;\n path.remove();\n }\n },\n Program(path) {\n path.get(\"body\").forEach(bodyPath => {\n if (isRegeneratorSource(getRequireSource(bodyPath))) {\n this.regeneratorImportExcluded = true;\n bodyPath.remove();\n }\n });\n },\n };\n\n return {\n name: \"preset-env/remove-regenerator\",\n visitor,\n pre() {\n this.regeneratorImportExcluded = false;\n },\n post() {\n if (this.opts.debug && this.regeneratorImportExcluded) {\n let filename = this.file.opts.filename;\n // normalize filename to generate consistent preset-env test fixtures\n if (process.env.BABEL_ENV === \"test\") {\n filename = filename.replace(/\\\\/g, \"/\");\n }\n console.log(\n `\\n[${filename}] Based on your targets, regenerator-runtime import excluded.`,\n );\n }\n },\n };\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAKA,SAASC,mBAAmBA,CAACC,MAAc,EAAE;EAC3C,OACEA,MAAM,KAAK,6BAA6B,IACxCA,MAAM,KAAK,gCAAgC;AAE/C;AAMe,SAAAC,SAAA,EAAuD;EACpE,MAAMC,OAAoC,GAAG;IAC3CC,iBAAiBA,CAACC,IAAI,EAAE;MACtB,IAAIL,mBAAmB,CAAC,IAAAM,sBAAe,EAACD,IAAI,CAAC,CAAC,EAAE;QAC9C,IAAI,CAACE,yBAAyB,GAAG,IAAI;QACrCF,IAAI,CAACG,MAAM,CAAC,CAAC;MACf;IACF,CAAC;IACDC,OAAOA,CAACJ,IAAI,EAAE;MACZA,IAAI,CAACK,GAAG,CAAC,MAAM,CAAC,CAACC,OAAO,CAACC,QAAQ,IAAI;QACnC,IAAIZ,mBAAmB,CAAC,IAAAa,uBAAgB,EAACD,QAAQ,CAAC,CAAC,EAAE;UACnD,IAAI,CAACL,yBAAyB,GAAG,IAAI;UACrCK,QAAQ,CAACJ,MAAM,CAAC,CAAC;QACnB;MACF,CAAC,CAAC;IACJ;EACF,CAAC;EAED,OAAO;IACLM,IAAI,EAAE,+BAA+B;IACrCX,OAAO;IACPY,GAAGA,CAAA,EAAG;MACJ,IAAI,CAACR,yBAAyB,GAAG,KAAK;IACxC,CAAC;IACDS,IAAIA,CAAA,EAAG;MACL,IAAI,IAAI,CAACC,IAAI,CAACC,KAAK,IAAI,IAAI,CAACX,yBAAyB,EAAE;QACrD,IAAIY,QAAQ,GAAG,IAAI,CAACC,IAAI,CAACH,IAAI,CAACE,QAAQ;QAEtC,IAAIE,OAAO,CAACC,GAAG,CAACC,SAAS,KAAK,MAAM,EAAE;UACpCJ,QAAQ,GAAGA,QAAQ,CAACK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;QACzC;QACAC,OAAO,CAACC,GAAG,CACR,MAAKP,QAAS,+DACjB,CAAC;MACH;IACF;EACF,CAAC;AACH"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/polyfills/utils.cjs b/node_modules/@babel/preset-env/lib/polyfills/utils.cjs new file mode 100644 index 00000000..4450db27 --- /dev/null +++ b/node_modules/@babel/preset-env/lib/polyfills/utils.cjs @@ -0,0 +1,22 @@ +; +exports.getImportSource = function ({ + node +}) { + if (node.specifiers.length === 0) return node.source.value; +}; +exports.getRequireSource = function ({ + node +}) { + if (node.type !== "ExpressionStatement") return; + const { + expression + } = node; + if (expression.type === "CallExpression" && expression.callee.type === "Identifier" && expression.callee.name === "require" && expression.arguments.length === 1 && expression.arguments[0].type === "StringLiteral") { + return expression.arguments[0].value; + } +}; +exports.isPolyfillSource = function (source) { + return source === "@babel/polyfill" || source === "core-js"; +}; + +//# sourceMappingURL=utils.cjs.map diff --git a/node_modules/@babel/preset-env/lib/polyfills/utils.cjs.map b/node_modules/@babel/preset-env/lib/polyfills/utils.cjs.map new file mode 100644 index 00000000..e21480dd --- /dev/null +++ b/node_modules/@babel/preset-env/lib/polyfills/utils.cjs.map @@ -0,0 +1 @@ +{"version":3,"names":["exports","getImportSource","node","specifiers","length","source","value","getRequireSource","type","expression","callee","name","arguments","isPolyfillSource"],"sources":["../../src/polyfills/utils.cjs"],"sourcesContent":["// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nexports.getImportSource = function ({ node }) {\n if (node.specifiers.length === 0) return node.source.value;\n};\n\nexports.getRequireSource = function ({ node }) {\n if (node.type !== \"ExpressionStatement\") return;\n const { expression } = node;\n if (\n expression.type === \"CallExpression\" &&\n expression.callee.type === \"Identifier\" &&\n expression.callee.name === \"require\" &&\n expression.arguments.length === 1 &&\n expression.arguments[0].type === \"StringLiteral\"\n ) {\n return expression.arguments[0].value;\n }\n};\n\nexports.isPolyfillSource = function (source) {\n return source === \"@babel/polyfill\" || source === \"core-js\";\n};\n"],"mappings":";AAOAA,OAAO,CAACC,eAAe,GAAG,UAAU;EAAEC;AAAK,CAAC,EAAE;EAC5C,IAAIA,IAAI,CAACC,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE,OAAOF,IAAI,CAACG,MAAM,CAACC,KAAK;AAC5D,CAAC;AAEDN,OAAO,CAACO,gBAAgB,GAAG,UAAU;EAAEL;AAAK,CAAC,EAAE;EAC7C,IAAIA,IAAI,CAACM,IAAI,KAAK,qBAAqB,EAAE;EACzC,MAAM;IAAEC;EAAW,CAAC,GAAGP,IAAI;EAC3B,IACEO,UAAU,CAACD,IAAI,KAAK,gBAAgB,IACpCC,UAAU,CAACC,MAAM,CAACF,IAAI,KAAK,YAAY,IACvCC,UAAU,CAACC,MAAM,CAACC,IAAI,KAAK,SAAS,IACpCF,UAAU,CAACG,SAAS,CAACR,MAAM,KAAK,CAAC,IACjCK,UAAU,CAACG,SAAS,CAAC,CAAC,CAAC,CAACJ,IAAI,KAAK,eAAe,EAChD;IACA,OAAOC,UAAU,CAACG,SAAS,CAAC,CAAC,CAAC,CAACN,KAAK;EACtC;AACF,CAAC;AAEDN,OAAO,CAACa,gBAAgB,GAAG,UAAUR,MAAM,EAAE;EAC3C,OAAOA,MAAM,KAAK,iBAAiB,IAAIA,MAAM,KAAK,SAAS;AAC7D,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/polyfills/utils.js b/node_modules/@babel/preset-env/lib/polyfills/utils.js deleted file mode 100644 index 338e8860..00000000 --- a/node_modules/@babel/preset-env/lib/polyfills/utils.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getImportSource = getImportSource; -exports.getRequireSource = getRequireSource; -exports.isPolyfillSource = isPolyfillSource; -var _t = require("@babel/types"); -const { - isCallExpression, - isExpressionStatement, - isIdentifier, - isStringLiteral -} = _t; -function getImportSource({ - node -}) { - if (node.specifiers.length === 0) return node.source.value; -} -function getRequireSource({ - node -}) { - if (!isExpressionStatement(node)) return; - const { - expression - } = node; - if (isCallExpression(expression) && isIdentifier(expression.callee) && expression.callee.name === "require" && expression.arguments.length === 1 && isStringLiteral(expression.arguments[0])) { - return expression.arguments[0].value; - } -} -function isPolyfillSource(source) { - return source === "@babel/polyfill" || source === "core-js"; -} - -//# sourceMappingURL=utils.js.map diff --git a/node_modules/@babel/preset-env/lib/polyfills/utils.js.map b/node_modules/@babel/preset-env/lib/polyfills/utils.js.map deleted file mode 100644 index 92f693e8..00000000 --- a/node_modules/@babel/preset-env/lib/polyfills/utils.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"names":["_t","require","isCallExpression","isExpressionStatement","isIdentifier","isStringLiteral","getImportSource","node","specifiers","length","source","value","getRequireSource","expression","callee","name","arguments","isPolyfillSource"],"sources":["../../src/polyfills/utils.ts"],"sourcesContent":["import {\n isCallExpression,\n isExpressionStatement,\n isIdentifier,\n isStringLiteral,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport function getImportSource({ node }: NodePath<t.ImportDeclaration>) {\n if (node.specifiers.length === 0) return node.source.value;\n}\n\nexport function getRequireSource({ node }: NodePath) {\n if (!isExpressionStatement(node)) return;\n const { expression } = node;\n if (\n isCallExpression(expression) &&\n isIdentifier(expression.callee) &&\n expression.callee.name === \"require\" &&\n expression.arguments.length === 1 &&\n isStringLiteral(expression.arguments[0])\n ) {\n return expression.arguments[0].value;\n }\n}\n\nexport function isPolyfillSource(source?: string | null): boolean {\n return source === \"@babel/polyfill\" || source === \"core-js\";\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,EAAA,GAAAC,OAAA;AAKsB;EAJpBC,gBAAgB;EAChBC,qBAAqB;EACrBC,YAAY;EACZC;AAAe,IAAAL,EAAA;AAKV,SAASM,eAAeA,CAAC;EAAEC;AAAoC,CAAC,EAAE;EACvE,IAAIA,IAAI,CAACC,UAAU,CAACC,MAAM,KAAK,CAAC,EAAE,OAAOF,IAAI,CAACG,MAAM,CAACC,KAAK;AAC5D;AAEO,SAASC,gBAAgBA,CAAC;EAAEL;AAAe,CAAC,EAAE;EACnD,IAAI,CAACJ,qBAAqB,CAACI,IAAI,CAAC,EAAE;EAClC,MAAM;IAAEM;EAAW,CAAC,GAAGN,IAAI;EAC3B,IACEL,gBAAgB,CAACW,UAAU,CAAC,IAC5BT,YAAY,CAACS,UAAU,CAACC,MAAM,CAAC,IAC/BD,UAAU,CAACC,MAAM,CAACC,IAAI,KAAK,SAAS,IACpCF,UAAU,CAACG,SAAS,CAACP,MAAM,KAAK,CAAC,IACjCJ,eAAe,CAACQ,UAAU,CAACG,SAAS,CAAC,CAAC,CAAC,CAAC,EACxC;IACA,OAAOH,UAAU,CAACG,SAAS,CAAC,CAAC,CAAC,CAACL,KAAK;EACtC;AACF;AAEO,SAASM,gBAAgBA,CAACP,MAAsB,EAAW;EAChE,OAAOA,MAAM,KAAK,iBAAiB,IAAIA,MAAM,KAAK,SAAS;AAC7D"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/lib/shipped-proposals.js b/node_modules/@babel/preset-env/lib/shipped-proposals.js index a6738475..08052873 100644 --- a/node_modules/@babel/preset-env/lib/shipped-proposals.js +++ b/node_modules/@babel/preset-env/lib/shipped-proposals.js @@ -4,14 +4,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.proposalSyntaxPlugins = exports.proposalPlugins = exports.pluginSyntaxMap = void 0; -const proposalPlugins = new Set(); -exports.proposalPlugins = proposalPlugins; -const proposalSyntaxPlugins = ["syntax-import-assertions", "syntax-import-attributes"]; -exports.proposalSyntaxPlugins = proposalSyntaxPlugins; +const proposalPlugins = exports.proposalPlugins = new Set(); +const proposalSyntaxPlugins = exports.proposalSyntaxPlugins = ["syntax-import-assertions", "syntax-import-attributes"]; const pluginSyntaxObject = { "transform-async-generator-functions": "syntax-async-generators", "transform-class-properties": "syntax-class-properties", "transform-class-static-block": "syntax-class-static-block", + "transform-export-namespace-from": "syntax-export-namespace-from", "transform-json-strings": "syntax-json-strings", "transform-nullish-coalescing-operator": "syntax-nullish-coalescing-operator", "transform-numeric-separator": "syntax-numeric-separator", @@ -25,7 +24,6 @@ const pluginSyntaxObject = { const pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map(function (key) { return [key, pluginSyntaxObject[key]]; }); -const pluginSyntaxMap = new Map(pluginSyntaxEntries); -exports.pluginSyntaxMap = pluginSyntaxMap; +const pluginSyntaxMap = exports.pluginSyntaxMap = new Map(pluginSyntaxEntries); //# sourceMappingURL=shipped-proposals.js.map diff --git a/node_modules/@babel/preset-env/lib/shipped-proposals.js.map b/node_modules/@babel/preset-env/lib/shipped-proposals.js.map index 22a7c874..30414ba3 100644 --- a/node_modules/@babel/preset-env/lib/shipped-proposals.js.map +++ b/node_modules/@babel/preset-env/lib/shipped-proposals.js.map @@ -1 +1 @@ -{"version":3,"names":["proposalPlugins","Set","exports","proposalSyntaxPlugins","pluginSyntaxObject","pluginSyntaxEntries","Object","keys","map","key","pluginSyntaxMap","Map"],"sources":["../src/shipped-proposals.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n/* eslint sort-keys: \"error\" */\n// These mappings represent the transform plugins that have been\n// shipped by browsers, and are enabled by the `shippedProposals` option.\n\nconst proposalPlugins = new Set<string>();\n\n// proposal syntax plugins enabled by the `shippedProposals` option.\n// Unlike proposalPlugins above, they are independent of compiler targets.\nconst proposalSyntaxPlugins = [\n \"syntax-import-assertions\",\n \"syntax-import-attributes\",\n] as const;\n\n// use intermediary object to enforce alphabetical key order\nconst pluginSyntaxObject = process.env.BABEL_8_BREAKING\n ? {}\n : ({\n \"transform-async-generator-functions\": \"syntax-async-generators\",\n \"transform-class-properties\": \"syntax-class-properties\",\n \"transform-class-static-block\": \"syntax-class-static-block\",\n \"transform-json-strings\": \"syntax-json-strings\",\n \"transform-nullish-coalescing-operator\":\n \"syntax-nullish-coalescing-operator\",\n \"transform-numeric-separator\": \"syntax-numeric-separator\",\n \"transform-object-rest-spread\": \"syntax-object-rest-spread\",\n \"transform-optional-catch-binding\": \"syntax-optional-catch-binding\",\n \"transform-optional-chaining\": \"syntax-optional-chaining\",\n // note: we don't have syntax-private-methods\n \"transform-private-methods\": \"syntax-class-properties\",\n \"transform-private-property-in-object\":\n \"syntax-private-property-in-object\",\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n \"transform-unicode-property-regex\": null as null,\n } as const);\n\ntype PluginSyntaxObjectKeys = keyof typeof pluginSyntaxObject;\n\nconst pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map<\n [PluginSyntaxObjectKeys, string | null]\n>(function (key: PluginSyntaxObjectKeys) {\n return [key, pluginSyntaxObject[key]];\n});\n\nconst pluginSyntaxMap = new Map(pluginSyntaxEntries);\n\nexport { proposalPlugins, proposalSyntaxPlugins, pluginSyntaxMap };\n"],"mappings":";;;;;;AAKA,MAAMA,eAAe,GAAG,IAAIC,GAAG,CAAS,CAAC;AAACC,OAAA,CAAAF,eAAA,GAAAA,eAAA;AAI1C,MAAMG,qBAAqB,GAAG,CAC5B,0BAA0B,EAC1B,0BAA0B,CAClB;AAACD,OAAA,CAAAC,qBAAA,GAAAA,qBAAA;AAGX,MAAMC,kBAAkB,GAEnB;EACC,qCAAqC,EAAE,yBAAyB;EAChE,4BAA4B,EAAE,yBAAyB;EACvD,8BAA8B,EAAE,2BAA2B;EAC3D,wBAAwB,EAAE,qBAAqB;EAC/C,uCAAuC,EACrC,oCAAoC;EACtC,6BAA6B,EAAE,0BAA0B;EACzD,8BAA8B,EAAE,2BAA2B;EAC3D,kCAAkC,EAAE,+BAA+B;EACnE,6BAA6B,EAAE,0BAA0B;EAEzD,2BAA2B,EAAE,yBAAyB;EACtD,sCAAsC,EACpC,mCAAmC;EAErC,kCAAkC,EAAE;AACtC,CAAW;AAIf,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAI,CAACH,kBAAkB,CAAC,CAACI,GAAG,CAE7D,UAAUC,GAA2B,EAAE;EACvC,OAAO,CAACA,GAAG,EAAEL,kBAAkB,CAACK,GAAG,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAG,IAAIC,GAAG,CAACN,mBAAmB,CAAC;AAACH,OAAA,CAAAQ,eAAA,GAAAA,eAAA"}
\ No newline at end of file +{"version":3,"names":["proposalPlugins","exports","Set","proposalSyntaxPlugins","pluginSyntaxObject","pluginSyntaxEntries","Object","keys","map","key","pluginSyntaxMap","Map"],"sources":["../src/shipped-proposals.ts"],"sourcesContent":["// TODO(Babel 8): Remove this file\n/* eslint sort-keys: \"error\" */\n// These mappings represent the transform plugins that have been\n// shipped by browsers, and are enabled by the `shippedProposals` option.\n\nconst proposalPlugins = new Set<string>();\n\n// proposal syntax plugins enabled by the `shippedProposals` option.\n// Unlike proposalPlugins above, they are independent of compiler targets.\nconst proposalSyntaxPlugins = [\n \"syntax-import-assertions\",\n \"syntax-import-attributes\",\n] as const;\n\n// use intermediary object to enforce alphabetical key order\nconst pluginSyntaxObject = process.env.BABEL_8_BREAKING\n ? {}\n : ({\n \"transform-async-generator-functions\": \"syntax-async-generators\",\n \"transform-class-properties\": \"syntax-class-properties\",\n \"transform-class-static-block\": \"syntax-class-static-block\",\n \"transform-export-namespace-from\": \"syntax-export-namespace-from\",\n \"transform-json-strings\": \"syntax-json-strings\",\n \"transform-nullish-coalescing-operator\":\n \"syntax-nullish-coalescing-operator\",\n \"transform-numeric-separator\": \"syntax-numeric-separator\",\n \"transform-object-rest-spread\": \"syntax-object-rest-spread\",\n \"transform-optional-catch-binding\": \"syntax-optional-catch-binding\",\n \"transform-optional-chaining\": \"syntax-optional-chaining\",\n // note: we don't have syntax-private-methods\n \"transform-private-methods\": \"syntax-class-properties\",\n \"transform-private-property-in-object\":\n \"syntax-private-property-in-object\",\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n \"transform-unicode-property-regex\": null as null,\n } as const);\n\ntype PluginSyntaxObjectKeys = keyof typeof pluginSyntaxObject;\n\nconst pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map<\n [PluginSyntaxObjectKeys, string | null]\n>(function (key: PluginSyntaxObjectKeys) {\n return [key, pluginSyntaxObject[key]];\n});\n\nconst pluginSyntaxMap = new Map(pluginSyntaxEntries);\n\nexport { proposalPlugins, proposalSyntaxPlugins, pluginSyntaxMap };\n"],"mappings":";;;;;;AAKA,MAAMA,eAAe,GAAAC,OAAA,CAAAD,eAAA,GAAG,IAAIE,GAAG,CAAS,CAAC;AAIzC,MAAMC,qBAAqB,GAAAF,OAAA,CAAAE,qBAAA,GAAG,CAC5B,0BAA0B,EAC1B,0BAA0B,CAClB;AAGV,MAAMC,kBAAkB,GAEnB;EACC,qCAAqC,EAAE,yBAAyB;EAChE,4BAA4B,EAAE,yBAAyB;EACvD,8BAA8B,EAAE,2BAA2B;EAC3D,iCAAiC,EAAE,8BAA8B;EACjE,wBAAwB,EAAE,qBAAqB;EAC/C,uCAAuC,EACrC,oCAAoC;EACtC,6BAA6B,EAAE,0BAA0B;EACzD,8BAA8B,EAAE,2BAA2B;EAC3D,kCAAkC,EAAE,+BAA+B;EACnE,6BAA6B,EAAE,0BAA0B;EAEzD,2BAA2B,EAAE,yBAAyB;EACtD,sCAAsC,EACpC,mCAAmC;EAErC,kCAAkC,EAAE;AACtC,CAAW;AAIf,MAAMC,mBAAmB,GAAGC,MAAM,CAACC,IAAI,CAACH,kBAAkB,CAAC,CAACI,GAAG,CAE7D,UAAUC,GAA2B,EAAE;EACvC,OAAO,CAACA,GAAG,EAAEL,kBAAkB,CAACK,GAAG,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,MAAMC,eAAe,GAAAT,OAAA,CAAAS,eAAA,GAAG,IAAIC,GAAG,CAACN,mBAAmB,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/preset-env/package.json b/node_modules/@babel/preset-env/package.json index 3ed681fe..7c31190a 100644 --- a/node_modules/@babel/preset-env/package.json +++ b/node_modules/@babel/preset-env/package.json @@ -1,6 +1,6 @@ { "name": "@babel/preset-env", - "version": "7.23.2", + "version": "7.23.6", "description": "A Babel preset for each environment.", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-preset-env", @@ -16,20 +16,21 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/compat-data": "^7.23.2", - "@babel/helper-compilation-targets": "^7.22.15", + "@babel/compat-data": "^7.23.5", + "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-plugin-utils": "^7.22.5", - "@babel/helper-validator-option": "^7.22.15", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.22.15", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.22.15", + "@babel/helper-validator-option": "^7.23.5", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.23.3", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.23.3", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.23.3", "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-class-properties": "^7.12.13", "@babel/plugin-syntax-class-static-block": "^7.14.5", "@babel/plugin-syntax-dynamic-import": "^7.8.3", "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.22.5", - "@babel/plugin-syntax-import-attributes": "^7.22.5", + "@babel/plugin-syntax-import-assertions": "^7.23.3", + "@babel/plugin-syntax-import-attributes": "^7.23.3", "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", @@ -41,56 +42,55 @@ "@babel/plugin-syntax-private-property-in-object": "^7.14.5", "@babel/plugin-syntax-top-level-await": "^7.14.5", "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", - "@babel/plugin-transform-arrow-functions": "^7.22.5", - "@babel/plugin-transform-async-generator-functions": "^7.23.2", - "@babel/plugin-transform-async-to-generator": "^7.22.5", - "@babel/plugin-transform-block-scoped-functions": "^7.22.5", - "@babel/plugin-transform-block-scoping": "^7.23.0", - "@babel/plugin-transform-class-properties": "^7.22.5", - "@babel/plugin-transform-class-static-block": "^7.22.11", - "@babel/plugin-transform-classes": "^7.22.15", - "@babel/plugin-transform-computed-properties": "^7.22.5", - "@babel/plugin-transform-destructuring": "^7.23.0", - "@babel/plugin-transform-dotall-regex": "^7.22.5", - "@babel/plugin-transform-duplicate-keys": "^7.22.5", - "@babel/plugin-transform-dynamic-import": "^7.22.11", - "@babel/plugin-transform-exponentiation-operator": "^7.22.5", - "@babel/plugin-transform-export-namespace-from": "^7.22.11", - "@babel/plugin-transform-for-of": "^7.22.15", - "@babel/plugin-transform-function-name": "^7.22.5", - "@babel/plugin-transform-json-strings": "^7.22.11", - "@babel/plugin-transform-literals": "^7.22.5", - "@babel/plugin-transform-logical-assignment-operators": "^7.22.11", - "@babel/plugin-transform-member-expression-literals": "^7.22.5", - "@babel/plugin-transform-modules-amd": "^7.23.0", - "@babel/plugin-transform-modules-commonjs": "^7.23.0", - "@babel/plugin-transform-modules-systemjs": "^7.23.0", - "@babel/plugin-transform-modules-umd": "^7.22.5", + "@babel/plugin-transform-arrow-functions": "^7.23.3", + "@babel/plugin-transform-async-generator-functions": "^7.23.4", + "@babel/plugin-transform-async-to-generator": "^7.23.3", + "@babel/plugin-transform-block-scoped-functions": "^7.23.3", + "@babel/plugin-transform-block-scoping": "^7.23.4", + "@babel/plugin-transform-class-properties": "^7.23.3", + "@babel/plugin-transform-class-static-block": "^7.23.4", + "@babel/plugin-transform-classes": "^7.23.5", + "@babel/plugin-transform-computed-properties": "^7.23.3", + "@babel/plugin-transform-destructuring": "^7.23.3", + "@babel/plugin-transform-dotall-regex": "^7.23.3", + "@babel/plugin-transform-duplicate-keys": "^7.23.3", + "@babel/plugin-transform-dynamic-import": "^7.23.4", + "@babel/plugin-transform-exponentiation-operator": "^7.23.3", + "@babel/plugin-transform-export-namespace-from": "^7.23.4", + "@babel/plugin-transform-for-of": "^7.23.6", + "@babel/plugin-transform-function-name": "^7.23.3", + "@babel/plugin-transform-json-strings": "^7.23.4", + "@babel/plugin-transform-literals": "^7.23.3", + "@babel/plugin-transform-logical-assignment-operators": "^7.23.4", + "@babel/plugin-transform-member-expression-literals": "^7.23.3", + "@babel/plugin-transform-modules-amd": "^7.23.3", + "@babel/plugin-transform-modules-commonjs": "^7.23.3", + "@babel/plugin-transform-modules-systemjs": "^7.23.3", + "@babel/plugin-transform-modules-umd": "^7.23.3", "@babel/plugin-transform-named-capturing-groups-regex": "^7.22.5", - "@babel/plugin-transform-new-target": "^7.22.5", - "@babel/plugin-transform-nullish-coalescing-operator": "^7.22.11", - "@babel/plugin-transform-numeric-separator": "^7.22.11", - "@babel/plugin-transform-object-rest-spread": "^7.22.15", - "@babel/plugin-transform-object-super": "^7.22.5", - "@babel/plugin-transform-optional-catch-binding": "^7.22.11", - "@babel/plugin-transform-optional-chaining": "^7.23.0", - "@babel/plugin-transform-parameters": "^7.22.15", - "@babel/plugin-transform-private-methods": "^7.22.5", - "@babel/plugin-transform-private-property-in-object": "^7.22.11", - "@babel/plugin-transform-property-literals": "^7.22.5", - "@babel/plugin-transform-regenerator": "^7.22.10", - "@babel/plugin-transform-reserved-words": "^7.22.5", - "@babel/plugin-transform-shorthand-properties": "^7.22.5", - "@babel/plugin-transform-spread": "^7.22.5", - "@babel/plugin-transform-sticky-regex": "^7.22.5", - "@babel/plugin-transform-template-literals": "^7.22.5", - "@babel/plugin-transform-typeof-symbol": "^7.22.5", - "@babel/plugin-transform-unicode-escapes": "^7.22.10", - "@babel/plugin-transform-unicode-property-regex": "^7.22.5", - "@babel/plugin-transform-unicode-regex": "^7.22.5", - "@babel/plugin-transform-unicode-sets-regex": "^7.22.5", + "@babel/plugin-transform-new-target": "^7.23.3", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.23.4", + "@babel/plugin-transform-numeric-separator": "^7.23.4", + "@babel/plugin-transform-object-rest-spread": "^7.23.4", + "@babel/plugin-transform-object-super": "^7.23.3", + "@babel/plugin-transform-optional-catch-binding": "^7.23.4", + "@babel/plugin-transform-optional-chaining": "^7.23.4", + "@babel/plugin-transform-parameters": "^7.23.3", + "@babel/plugin-transform-private-methods": "^7.23.3", + "@babel/plugin-transform-private-property-in-object": "^7.23.4", + "@babel/plugin-transform-property-literals": "^7.23.3", + "@babel/plugin-transform-regenerator": "^7.23.3", + "@babel/plugin-transform-reserved-words": "^7.23.3", + "@babel/plugin-transform-shorthand-properties": "^7.23.3", + "@babel/plugin-transform-spread": "^7.23.3", + "@babel/plugin-transform-sticky-regex": "^7.23.3", + "@babel/plugin-transform-template-literals": "^7.23.3", + "@babel/plugin-transform-typeof-symbol": "^7.23.3", + "@babel/plugin-transform-unicode-escapes": "^7.23.3", + "@babel/plugin-transform-unicode-property-regex": "^7.23.3", + "@babel/plugin-transform-unicode-regex": "^7.23.3", + "@babel/plugin-transform-unicode-sets-regex": "^7.23.3", "@babel/preset-modules": "0.1.6-no-external-plugins", - "@babel/types": "^7.23.0", "babel-plugin-polyfill-corejs2": "^0.4.6", "babel-plugin-polyfill-corejs3": "^0.8.5", "babel-plugin-polyfill-regenerator": "^0.5.3", @@ -101,10 +101,10 @@ "@babel/core": "^7.0.0-0" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.6", "@babel/core-7.12": "npm:@babel/core@7.12.9", "@babel/helper-plugin-test-runner": "^7.22.5", - "@babel/traverse": "^7.23.2" + "@babel/traverse": "^7.23.6" }, "engines": { "node": ">=6.9.0" diff --git a/node_modules/@babel/runtime/helpers/applyDecs.js b/node_modules/@babel/runtime/helpers/applyDecs.js index e5b81c1d..73cbf9c6 100644 --- a/node_modules/@babel/runtime/helpers/applyDecs.js +++ b/node_modules/@babel/runtime/helpers/applyDecs.js @@ -1,4 +1,6 @@ var _typeof = require("./typeof.js")["default"]; +var setFunctionName = require("./setFunctionName.js"); +var toPropertyKey = require("./toPropertyKey.js"); function old_createMetadataMethodsForProperty(e, t, a, r) { return { getMetadata: function getMetadata(o) { @@ -74,7 +76,7 @@ function old_memberDec(e, t, a, r, o, i, n, l, s) { u, f = { kind: c, - name: l ? "#" + t : t, + name: l ? "#" + t : toPropertyKey(t), isStatic: n, isPrivate: l }, @@ -112,10 +114,7 @@ function old_assertValidReturnValue(e, t) { if (1 === e) { if ("object" !== a || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); void 0 !== t.get && old_assertCallable(t.get, "accessor.get"), void 0 !== t.set && old_assertCallable(t.set, "accessor.set"), void 0 !== t.init && old_assertCallable(t.init, "accessor.init"), void 0 !== t.initializer && old_assertCallable(t.initializer, "accessor.initializer"); - } else if ("function" !== a) { - var r; - throw r = 0 === e ? "field" : 10 === e ? "class" : "method", new TypeError(r + " decorators must return a function or void 0"); - } + } else if ("function" !== a) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0"); } function old_getInit(e) { var t; @@ -128,28 +127,29 @@ function old_applyMemberDec(e, t, a, r, o, i, n, l, s) { f, p, v, + y, h = a[0]; - if (n ? c = 0 === o || 1 === o ? { + if (n ? (0 === o || 1 === o ? (c = { get: a[3], set: a[4] - } : 3 === o ? { + }, u = "get") : 3 === o ? (c = { get: a[3] - } : 4 === o ? { + }, u = "get") : 4 === o ? (c = { set: a[3] - } : { + }, u = "set") : c = { value: a[3] - } : 0 !== o && (c = Object.getOwnPropertyDescriptor(t, r)), 1 === o ? u = { + }, 0 !== o && (1 === o && setFunctionName(a[4], "#" + r, "set"), setFunctionName(a[3], "#" + r, u))) : 0 !== o && (c = Object.getOwnPropertyDescriptor(t, r)), 1 === o ? f = { get: c.get, set: c.set - } : 2 === o ? u = c.value : 3 === o ? u = c.get : 4 === o && (u = c.set), "function" == typeof h) void 0 !== (f = old_memberDec(h, r, c, l, s, o, i, n, u)) && (old_assertValidReturnValue(o, f), 0 === o ? d = f : 1 === o ? (d = old_getInit(f), p = f.get || u.get, v = f.set || u.set, u = { - get: p, - set: v - }) : u = f);else for (var y = h.length - 1; y >= 0; y--) { + } : 2 === o ? f = c.value : 3 === o ? f = c.get : 4 === o && (f = c.set), "function" == typeof h) void 0 !== (p = old_memberDec(h, r, c, l, s, o, i, n, f)) && (old_assertValidReturnValue(o, p), 0 === o ? d = p : 1 === o ? (d = old_getInit(p), v = p.get || f.get, y = p.set || f.set, f = { + get: v, + set: y + }) : f = p);else for (var m = h.length - 1; m >= 0; m--) { var b; - if (void 0 !== (f = old_memberDec(h[y], r, c, l, s, o, i, n, u))) old_assertValidReturnValue(o, f), 0 === o ? b = f : 1 === o ? (b = old_getInit(f), p = f.get || u.get, v = f.set || u.set, u = { - get: p, - set: v - }) : u = f, void 0 !== b && (void 0 === d ? d = b : "function" == typeof d ? d = [d, b] : d.push(b)); + void 0 !== (p = old_memberDec(h[m], r, c, l, s, o, i, n, f)) && (old_assertValidReturnValue(o, p), 0 === o ? b = p : 1 === o ? (b = old_getInit(p), v = p.get || f.get, y = p.set || f.set, f = { + get: v, + set: y + }) : f = p, void 0 !== b && (void 0 === d ? d = b : "function" == typeof d ? d = [d, b] : d.push(b))); } if (0 === o || 1 === o) { if (void 0 === d) d = function d(e, t) { @@ -161,19 +161,19 @@ function old_applyMemberDec(e, t, a, r, o, i, n, l, s) { return a; }; } else { - var m = d; + var _ = d; d = function d(e, t) { - return m.call(e, t); + return _.call(e, t); }; } e.push(d); } - 0 !== o && (1 === o ? (c.get = u.get, c.set = u.set) : 2 === o ? c.value = u : 3 === o ? c.get = u : 4 === o && (c.set = u), n ? 1 === o ? (e.push(function (e, t) { - return u.get.call(e, t); + 0 !== o && (1 === o ? (c.get = f.get, c.set = f.set) : 2 === o ? c.value = f : 3 === o ? c.get = f : 4 === o && (c.set = f), n ? 1 === o ? (e.push(function (e, t) { + return f.get.call(e, t); }), e.push(function (e, t) { - return u.set.call(e, t); - })) : 2 === o ? e.push(u) : e.push(function (e, t) { - return u.call(e, t); + return f.set.call(e, t); + })) : 2 === o ? e.push(f) : e.push(function (e, t) { + return f.call(e, t); }) : Object.defineProperty(t, r, c)); } function old_applyMemberDecs(e, t, a, r, o) { @@ -184,16 +184,16 @@ function old_applyMemberDecs(e, t, a, r, o) { f, p, v = d[1], - h = d[2], - y = d.length > 3, - b = v >= 5; - if (b ? (u = t, f = r, 0 !== (v -= 5) && (p = n = n || [])) : (u = t.prototype, f = a, 0 !== v && (p = i = i || [])), 0 !== v && !y) { - var g = b ? s : l, - m = g.get(h) || 0; - if (!0 === m || 3 === m && 4 !== v || 4 === m && 3 !== v) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); - !m && v > 2 ? g.set(h, v) : g.set(h, !0); + y = d[2], + h = d.length > 3, + m = v >= 5; + if (m ? (u = t, f = r, 0 != (v -= 5) && (p = n = n || [])) : (u = t.prototype, f = a, 0 !== v && (p = i = i || [])), 0 !== v && !h) { + var b = m ? s : l, + g = b.get(y) || 0; + if (!0 === g || 3 === g && 4 !== v || 4 === g && 3 !== v) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + y); + !g && v > 2 ? b.set(y, v) : b.set(y, !0); } - old_applyMemberDec(e, u, d, h, v, b, y, f, p); + old_applyMemberDec(e, u, d, y, v, m, h, f, p); } } old_pushInitializers(e, i), old_pushInitializers(e, n); diff --git a/node_modules/@babel/runtime/helpers/applyDecs2203.js b/node_modules/@babel/runtime/helpers/applyDecs2203.js index 7688bf79..75437ddd 100644 --- a/node_modules/@babel/runtime/helpers/applyDecs2203.js +++ b/node_modules/@babel/runtime/helpers/applyDecs2203.js @@ -3,8 +3,8 @@ function applyDecs2203Factory() { function createAddInitializerMethod(e, t) { return function (r) { !function (e, t) { - if (e.v) throw new Error("attempted to call " + t + " after decoration was finished"); - }(t, "addInitializer"), assertCallable(r, "An initializer"), e.push(r); + if (e.v) throw new Error("attempted to call addInitializer after decoration was finished"); + }(t), assertCallable(r, "An initializer"), e.push(r); }; } function memberDec(e, t, r, a, n, i, s, o) { @@ -68,10 +68,7 @@ function applyDecs2203Factory() { if (1 === e) { if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init"); - } else if ("function" !== r) { - var a; - throw a = 0 === e ? "field" : 10 === e ? "class" : "method", new TypeError(a + " decorators must return a function or void 0"); - } + } else if ("function" !== r) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0"); } function applyMemberDec(e, t, r, a, n, i, s, o) { var c, @@ -98,10 +95,10 @@ function applyDecs2203Factory() { set: d }) : u = f);else for (var v = h.length - 1; v >= 0; v--) { var g; - if (void 0 !== (f = memberDec(h[v], a, c, o, n, i, s, u))) assertValidReturnValue(n, f), 0 === n ? g = f : 1 === n ? (g = f.init, p = f.get || u.get, d = f.set || u.set, u = { + void 0 !== (f = memberDec(h[v], a, c, o, n, i, s, u)) && (assertValidReturnValue(n, f), 0 === n ? g = f : 1 === n ? (g = f.init, p = f.get || u.get, d = f.set || u.set, u = { get: p, set: d - }) : u = f, void 0 !== g && (void 0 === l ? l = g : "function" == typeof l ? l = [l, g] : l.push(g)); + }) : u = f, void 0 !== g && (void 0 === l ? l = g : "function" == typeof l ? l = [l, g] : l.push(g))); } if (0 === n || 1 === n) { if (void 0 === l) l = function l(e, t) { diff --git a/node_modules/@babel/runtime/helpers/applyDecs2203R.js b/node_modules/@babel/runtime/helpers/applyDecs2203R.js index 180c13ad..182038ed 100644 --- a/node_modules/@babel/runtime/helpers/applyDecs2203R.js +++ b/node_modules/@babel/runtime/helpers/applyDecs2203R.js @@ -1,13 +1,15 @@ var _typeof = require("./typeof.js")["default"]; +var setFunctionName = require("./setFunctionName.js"); +var toPropertyKey = require("./toPropertyKey.js"); function applyDecs2203RFactory() { function createAddInitializerMethod(e, t) { return function (r) { !function (e, t) { - if (e.v) throw new Error("attempted to call " + t + " after decoration was finished"); - }(t, "addInitializer"), assertCallable(r, "An initializer"), e.push(r); + if (e.v) throw new Error("attempted to call addInitializer after decoration was finished"); + }(t), assertCallable(r, "An initializer"), e.push(r); }; } - function memberDec(e, t, r, n, a, i, s, o) { + function memberDec(e, t, r, n, a, i, o, s) { var c; switch (a) { case 1: @@ -29,14 +31,14 @@ function applyDecs2203RFactory() { u, f = { kind: c, - name: s ? "#" + t : t, + name: o ? "#" + t : toPropertyKey(t), "static": i, - "private": s + "private": o }, p = { v: !1 }; - 0 !== a && (f.addInitializer = createAddInitializerMethod(n, p)), 0 === a ? s ? (l = r.get, u = r.set) : (l = function l() { + 0 !== a && (f.addInitializer = createAddInitializerMethod(n, p)), 0 === a ? o ? (l = r.get, u = r.set) : (l = function l() { return this[t]; }, u = function u(e) { this[t] = e; @@ -55,7 +57,7 @@ function applyDecs2203RFactory() { set: u }; try { - return e(o, f); + return e(s, f); } finally { p.v = !0; } @@ -68,69 +70,67 @@ function applyDecs2203RFactory() { if (1 === e) { if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init"); - } else if ("function" !== r) { - var n; - throw n = 0 === e ? "field" : 10 === e ? "class" : "method", new TypeError(n + " decorators must return a function or void 0"); - } + } else if ("function" !== r) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0"); } - function applyMemberDec(e, t, r, n, a, i, s, o) { + function applyMemberDec(e, t, r, n, a, i, o, s) { var c, l, u, f, p, d, - h = r[0]; - if (s ? c = 0 === a || 1 === a ? { + h, + v = r[0]; + if (o ? (0 === a || 1 === a ? (c = { get: r[3], set: r[4] - } : 3 === a ? { + }, u = "get") : 3 === a ? (c = { get: r[3] - } : 4 === a ? { + }, u = "get") : 4 === a ? (c = { set: r[3] - } : { + }, u = "set") : c = { value: r[3] - } : 0 !== a && (c = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? u = { + }, 0 !== a && (1 === a && setFunctionName(r[4], "#" + n, "set"), setFunctionName(r[3], "#" + n, u))) : 0 !== a && (c = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? f = { get: c.get, set: c.set - } : 2 === a ? u = c.value : 3 === a ? u = c.get : 4 === a && (u = c.set), "function" == typeof h) void 0 !== (f = memberDec(h, n, c, o, a, i, s, u)) && (assertValidReturnValue(a, f), 0 === a ? l = f : 1 === a ? (l = f.init, p = f.get || u.get, d = f.set || u.set, u = { - get: p, - set: d - }) : u = f);else for (var v = h.length - 1; v >= 0; v--) { - var g; - if (void 0 !== (f = memberDec(h[v], n, c, o, a, i, s, u))) assertValidReturnValue(a, f), 0 === a ? g = f : 1 === a ? (g = f.init, p = f.get || u.get, d = f.set || u.set, u = { - get: p, - set: d - }) : u = f, void 0 !== g && (void 0 === l ? l = g : "function" == typeof l ? l = [l, g] : l.push(g)); + } : 2 === a ? f = c.value : 3 === a ? f = c.get : 4 === a && (f = c.set), "function" == typeof v) void 0 !== (p = memberDec(v, n, c, s, a, i, o, f)) && (assertValidReturnValue(a, p), 0 === a ? l = p : 1 === a ? (l = p.init, d = p.get || f.get, h = p.set || f.set, f = { + get: d, + set: h + }) : f = p);else for (var g = v.length - 1; g >= 0; g--) { + var y; + void 0 !== (p = memberDec(v[g], n, c, s, a, i, o, f)) && (assertValidReturnValue(a, p), 0 === a ? y = p : 1 === a ? (y = p.init, d = p.get || f.get, h = p.set || f.set, f = { + get: d, + set: h + }) : f = p, void 0 !== y && (void 0 === l ? l = y : "function" == typeof l ? l = [l, y] : l.push(y))); } if (0 === a || 1 === a) { if (void 0 === l) l = function l(e, t) { return t; };else if ("function" != typeof l) { - var y = l; + var m = l; l = function l(e, t) { - for (var r = t, n = 0; n < y.length; n++) r = y[n].call(e, r); + for (var r = t, n = 0; n < m.length; n++) r = m[n].call(e, r); return r; }; } else { - var m = l; + var b = l; l = function l(e, t) { - return m.call(e, t); + return b.call(e, t); }; } e.push(l); } - 0 !== a && (1 === a ? (c.get = u.get, c.set = u.set) : 2 === a ? c.value = u : 3 === a ? c.get = u : 4 === a && (c.set = u), s ? 1 === a ? (e.push(function (e, t) { - return u.get.call(e, t); + 0 !== a && (1 === a ? (c.get = f.get, c.set = f.set) : 2 === a ? c.value = f : 3 === a ? c.get = f : 4 === a && (c.set = f), o ? 1 === a ? (e.push(function (e, t) { + return f.get.call(e, t); }), e.push(function (e, t) { - return u.set.call(e, t); - })) : 2 === a ? e.push(u) : e.push(function (e, t) { - return u.call(e, t); + return f.set.call(e, t); + })) : 2 === a ? e.push(f) : e.push(function (e, t) { + return f.call(e, t); }) : Object.defineProperty(t, n, c)); } function applyMemberDecs(e, t) { - for (var r, n, a = [], i = new Map(), s = new Map(), o = 0; o < t.length; o++) { - var c = t[o]; + for (var r, n, a = [], i = new Map(), o = new Map(), s = 0; s < t.length; s++) { + var c = t[s]; if (Array.isArray(c)) { var l, u, @@ -138,8 +138,8 @@ function applyDecs2203RFactory() { p = c[2], d = c.length > 3, h = f >= 5; - if (h ? (l = e, 0 !== (f -= 5) && (u = n = n || [])) : (l = e.prototype, 0 !== f && (u = r = r || [])), 0 !== f && !d) { - var v = h ? s : i, + if (h ? (l = e, 0 != (f -= 5) && (u = n = n || [])) : (l = e.prototype, 0 !== f && (u = r = r || [])), 0 !== f && !d) { + var v = h ? o : i, g = v.get(p) || 0; if (!0 === g || 3 === g && 4 !== f || 4 === g && 3 !== f) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + p); !g && f > 2 ? v.set(p, f) : v.set(p, !0); @@ -162,19 +162,19 @@ function applyDecs2203RFactory() { return function (e, t) { if (t.length > 0) { for (var r = [], n = e, a = e.name, i = t.length - 1; i >= 0; i--) { - var s = { + var o = { v: !1 }; try { - var o = t[i](n, { + var s = t[i](n, { kind: "class", name: a, - addInitializer: createAddInitializerMethod(r, s) + addInitializer: createAddInitializerMethod(r, o) }); } finally { - s.v = !0; + o.v = !0; } - void 0 !== o && (assertValidReturnValue(10, o), n = o); + void 0 !== s && (assertValidReturnValue(10, s), n = s); } return [n, function () { for (var e = 0; e < r.length; e++) r[e].call(n); diff --git a/node_modules/@babel/runtime/helpers/applyDecs2301.js b/node_modules/@babel/runtime/helpers/applyDecs2301.js index 651fec56..85e1e3e3 100644 --- a/node_modules/@babel/runtime/helpers/applyDecs2301.js +++ b/node_modules/@babel/runtime/helpers/applyDecs2301.js @@ -1,11 +1,13 @@ var _typeof = require("./typeof.js")["default"]; var checkInRHS = require("./checkInRHS.js"); +var setFunctionName = require("./setFunctionName.js"); +var toPropertyKey = require("./toPropertyKey.js"); function applyDecs2301Factory() { function createAddInitializerMethod(e, t) { return function (r) { !function (e, t) { - if (e.v) throw new Error("attempted to call " + t + " after decoration was finished"); - }(t, "addInitializer"), assertCallable(r, "An initializer"), e.push(r); + if (e.v) throw new Error("attempted to call addInitializer after decoration was finished"); + }(t), assertCallable(r, "An initializer"), e.push(r); }; } function assertInstanceIfPrivate(e, t) { @@ -33,7 +35,7 @@ function applyDecs2301Factory() { f, p = { kind: u, - name: s ? "#" + t : t, + name: s ? "#" + t : toPropertyKey(t), "static": i, "private": s }, @@ -88,10 +90,7 @@ function applyDecs2301Factory() { if (1 === e) { if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init"); - } else if ("function" !== r) { - var n; - throw n = 0 === e ? "field" : 10 === e ? "class" : "method", new TypeError(n + " decorators must return a function or void 0"); - } + } else if ("function" !== r) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0"); } function curryThis2(e) { return function (t) { @@ -106,54 +105,55 @@ function applyDecs2301Factory() { d, h, v, + y, g = r[0]; - if (s ? u = 0 === a || 1 === a ? { - get: (p = r[3], function () { - return p(this); + if (s ? (0 === a || 1 === a ? (u = { + get: (d = r[3], function () { + return d(this); }), set: curryThis2(r[4]) - } : 3 === a ? { + }, f = "get") : 3 === a ? (u = { get: r[3] - } : 4 === a ? { + }, f = "get") : 4 === a ? (u = { set: r[3] - } : { + }, f = "set") : u = { value: r[3] - } : 0 !== a && (u = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? f = { + }, 0 !== a && (1 === a && setFunctionName(u.set, "#" + n, "set"), setFunctionName(u[f || "value"], "#" + n, f))) : 0 !== a && (u = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? p = { get: u.get, set: u.set - } : 2 === a ? f = u.value : 3 === a ? f = u.get : 4 === a && (f = u.set), "function" == typeof g) void 0 !== (d = memberDec(g, n, u, o, a, i, s, f, c)) && (assertValidReturnValue(a, d), 0 === a ? l = d : 1 === a ? (l = d.init, h = d.get || f.get, v = d.set || f.set, f = { - get: h, - set: v - }) : f = d);else for (var y = g.length - 1; y >= 0; y--) { - var m; - if (void 0 !== (d = memberDec(g[y], n, u, o, a, i, s, f, c))) assertValidReturnValue(a, d), 0 === a ? m = d : 1 === a ? (m = d.init, h = d.get || f.get, v = d.set || f.set, f = { - get: h, - set: v - }) : f = d, void 0 !== m && (void 0 === l ? l = m : "function" == typeof l ? l = [l, m] : l.push(m)); + } : 2 === a ? p = u.value : 3 === a ? p = u.get : 4 === a && (p = u.set), "function" == typeof g) void 0 !== (h = memberDec(g, n, u, o, a, i, s, p, c)) && (assertValidReturnValue(a, h), 0 === a ? l = h : 1 === a ? (l = h.init, v = h.get || p.get, y = h.set || p.set, p = { + get: v, + set: y + }) : p = h);else for (var m = g.length - 1; m >= 0; m--) { + var b; + void 0 !== (h = memberDec(g[m], n, u, o, a, i, s, p, c)) && (assertValidReturnValue(a, h), 0 === a ? b = h : 1 === a ? (b = h.init, v = h.get || p.get, y = h.set || p.set, p = { + get: v, + set: y + }) : p = h, void 0 !== b && (void 0 === l ? l = b : "function" == typeof l ? l = [l, b] : l.push(b))); } if (0 === a || 1 === a) { if (void 0 === l) l = function l(e, t) { return t; };else if ("function" != typeof l) { - var b = l; + var I = l; l = function l(e, t) { - for (var r = t, n = 0; n < b.length; n++) r = b[n].call(e, r); + for (var r = t, n = 0; n < I.length; n++) r = I[n].call(e, r); return r; }; } else { - var I = l; + var w = l; l = function l(e, t) { - return I.call(e, t); + return w.call(e, t); }; } e.push(l); } - 0 !== a && (1 === a ? (u.get = f.get, u.set = f.set) : 2 === a ? u.value = f : 3 === a ? u.get = f : 4 === a && (u.set = f), s ? 1 === a ? (e.push(function (e, t) { - return f.get.call(e, t); + 0 !== a && (1 === a ? (u.get = p.get, u.set = p.set) : 2 === a ? u.value = p : 3 === a ? u.get = p : 4 === a && (u.set = p), s ? 1 === a ? (e.push(function (e, t) { + return p.get.call(e, t); }), e.push(function (e, t) { - return f.set.call(e, t); - })) : 2 === a ? e.push(f) : e.push(function (e, t) { - return f.call(e, t); + return p.set.call(e, t); + })) : 2 === a ? e.push(p) : e.push(function (e, t) { + return p.call(e, t); }) : Object.defineProperty(t, n, u)); } function applyMemberDecs(e, t, r) { @@ -165,17 +165,17 @@ function applyDecs2301Factory() { d = l[1], h = l[2], v = l.length > 3, - g = d >= 5, - y = r; - if (g ? (f = e, 0 !== (d -= 5) && (p = a = a || []), v && !i && (i = function i(t) { + y = d >= 5, + g = r; + if (y ? (f = e, 0 != (d -= 5) && (p = a = a || []), v && !i && (i = function i(t) { return checkInRHS(t) === e; - }), y = i) : (f = e.prototype, 0 !== d && (p = n = n || [])), 0 !== d && !v) { - var m = g ? c : o, + }), g = i) : (f = e.prototype, 0 !== d && (p = n = n || [])), 0 !== d && !v) { + var m = y ? c : o, b = m.get(h) || 0; if (!0 === b || 3 === b && 4 !== d || 4 === b && 3 !== d) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); !b && d > 2 ? m.set(h, d) : m.set(h, !0); } - applyMemberDec(s, f, l, h, d, g, v, p, y); + applyMemberDec(s, f, l, h, d, y, v, p, g); } } return pushInitializers(s, n), pushInitializers(s, a), s; diff --git a/node_modules/@babel/runtime/helpers/applyDecs2305.js b/node_modules/@babel/runtime/helpers/applyDecs2305.js index ee2dcc38..90206f3b 100644 --- a/node_modules/@babel/runtime/helpers/applyDecs2305.js +++ b/node_modules/@babel/runtime/helpers/applyDecs2305.js @@ -1,231 +1,133 @@ var _typeof = require("./typeof.js")["default"]; var checkInRHS = require("./checkInRHS.js"); -function createAddInitializerMethod(e, t) { - return function (r) { - assertNotFinished(t, "addInitializer"), assertCallable(r, "An initializer"), e.push(r); - }; -} -function assertInstanceIfPrivate(e, t) { - if (!e(t)) throw new TypeError("Attempted to access private element on non-instance"); -} -function memberDec(e, t, r, a, n, i, s, o, c, l, u) { - var f; - switch (i) { - case 1: - f = "accessor"; - break; - case 2: - f = "method"; - break; - case 3: - f = "getter"; - break; - case 4: - f = "setter"; - break; - default: - f = "field"; - } - var d, - p, - h = { - kind: f, - name: o ? "#" + r : r, - "static": s, - "private": o, - metadata: u - }, - v = { - v: !1 +var setFunctionName = require("./setFunctionName.js"); +var toPropertyKey = require("./toPropertyKey.js"); +function applyDecs2305(e, t, r, n, o, a) { + function i(e, t, r) { + return function (n, o) { + return r && r(n), e[t].call(n, o); }; - if (0 !== i && (h.addInitializer = createAddInitializerMethod(n, v)), o || 0 !== i && 2 !== i) { - if (2 === i) d = function d(e) { - return assertInstanceIfPrivate(l, e), a.value; - };else { - var y = 0 === i || 1 === i; - (y || 3 === i) && (d = o ? function (e) { - return assertInstanceIfPrivate(l, e), a.get.call(e); - } : function (e) { - return a.get.call(e); - }), (y || 4 === i) && (p = o ? function (e, t) { - assertInstanceIfPrivate(l, e), a.set.call(e, t); - } : function (e, t) { - a.set.call(e, t); - }); - } - } else d = function d(e) { - return e[r]; - }, 0 === i && (p = function p(e, t) { - e[r] = t; - }); - var m = o ? l.bind() : function (e) { - return r in e; - }; - h.access = d && p ? { - get: d, - set: p, - has: m - } : d ? { - get: d, - has: m - } : { - set: p, - has: m - }; - try { - return e.call(t, c, h); - } finally { - v.v = !0; } -} -function assertNotFinished(e, t) { - if (e.v) throw new Error("attempted to call " + t + " after decoration was finished"); -} -function assertCallable(e, t) { - if ("function" != typeof e) throw new TypeError(t + " must be a function"); -} -function assertValidReturnValue(e, t) { - var r = _typeof(t); - if (1 === e) { - if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); - void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init"); - } else if ("function" !== r) { - var a; - throw a = 0 === e ? "field" : 5 === e ? "class" : "method", new TypeError(a + " decorators must return a function or void 0"); + function c(e, t) { + for (var r = 0; r < e.length; r++) e[r].call(t); + return t; } -} -function curryThis1(e) { - return function () { - return e(this); - }; -} -function curryThis2(e) { - return function (t) { - e(this, t); - }; -} -function applyMemberDec(e, t, r, a, n, i, s, o, c, l, u) { - var f, - d, - p, - h, - v, - y, - m = r[0]; - a || Array.isArray(m) || (m = [m]), o ? f = 0 === i || 1 === i ? { - get: curryThis1(r[3]), - set: curryThis2(r[4]) - } : 3 === i ? { - get: r[3] - } : 4 === i ? { - set: r[3] - } : { - value: r[3] - } : 0 !== i && (f = Object.getOwnPropertyDescriptor(t, n)), 1 === i ? p = { - get: f.get, - set: f.set - } : 2 === i ? p = f.value : 3 === i ? p = f.get : 4 === i && (p = f.set); - for (var g = a ? 2 : 1, b = m.length - 1; b >= 0; b -= g) { - var I; - if (void 0 !== (h = memberDec(m[b], a ? m[b - 1] : void 0, n, f, c, i, s, o, p, l, u))) assertValidReturnValue(i, h), 0 === i ? I = h : 1 === i ? (I = h.init, v = h.get || p.get, y = h.set || p.set, p = { - get: v, - set: y - }) : p = h, void 0 !== I && (void 0 === d ? d = I : "function" == typeof d ? d = [d, I] : d.push(I)); + function s(e, t, r, n) { + if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); + return e; } - if (0 === i || 1 === i) { - if (void 0 === d) d = function d(e, t) { - return t; - };else if ("function" != typeof d) { - var w = d; - d = function d(e, t) { - for (var r = t, a = w.length - 1; a >= 0; a--) r = w[a].call(e, r); - return r; - }; - } else { - var M = d; - d = function d(e, t) { - return M.call(e, t); - }; + function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { + function m(e) { + if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } - e.push(d); - } - 0 !== i && (1 === i ? (f.get = p.get, f.set = p.set) : 2 === i ? f.value = p : 3 === i ? f.get = p : 4 === i && (f.set = p), o ? 1 === i ? (e.push(function (e, t) { - return p.get.call(e, t); - }), e.push(function (e, t) { - return p.set.call(e, t); - })) : 2 === i ? e.push(p) : e.push(function (e, t) { - return p.call(e, t); - }) : Object.defineProperty(t, n, f)); -} -function applyMemberDecs(e, t, r, a) { - for (var n, i, s, o = [], c = new Map(), l = new Map(), u = 0; u < t.length; u++) { - var f = t[u]; - if (Array.isArray(f)) { - var d, - p, - h = f[1], - v = f[2], - y = f.length > 3, - m = 16 & h, - g = !!(8 & h), - b = r; - if (h &= 7, g ? (d = e, 0 !== h && (p = i = i || []), y && !s && (s = function s(t) { - return checkInRHS(t) === e; - }), b = s) : (d = e.prototype, 0 !== h && (p = n = n || [])), 0 !== h && !y) { - var I = g ? l : c, - w = I.get(v) || 0; - if (!0 === w || 3 === w && 4 !== h || 4 === w && 3 !== h) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v); - I.set(v, !(!w && h > 2) || h); - } - applyMemberDec(o, d, f, m, v, h, g, y, p, b, a); + var y, + v, + g = t[0], + b = t[3], + w = !u; + if (!w) { + r || Array.isArray(g) || (g = [g]); + var S = {}, + A = [], + P = 3 === o ? "get" : 4 === o || d ? "set" : "value"; + f ? (p || d ? S = { + get: setFunctionName(function () { + return b(this); + }, n, "get"), + set: function set(e) { + t[4](this, e); + } + } : S[P] = b, p || setFunctionName(S[P], n, 2 === o ? "" : P)) : p || (S = Object.getOwnPropertyDescriptor(e, n)); } - } - return pushInitializers(o, n), pushInitializers(o, i), o; -} -function pushInitializers(e, t) { - t && e.push(function (e) { - for (var r = 0; r < t.length; r++) t[r].call(e); - return e; - }); -} -function applyClassDecs(e, t, r, a) { - if (t.length) { - for (var n = [], i = e, s = e.name, o = r ? 2 : 1, c = t.length - 1; c >= 0; c -= o) { - var l = { - v: !1 - }; + for (var j = g.length - 1; j >= 0; j -= r ? 2 : 1) { + var D = g[j], + E = r ? g[j - 1] : void 0, + I = {}, + O = { + kind: ["field", "accessor", "method", "getter", "setter", "field", "class"][o], + name: n, + metadata: a, + addInitializer: function (e, t) { + if (e.v) throw new Error("attempted to call addInitializer after decoration was finished"); + s(t, "An initializer", "be", !0), c.push(t); + }.bind(null, I) + }; try { - var u = t[c].call(r ? t[c - 1] : void 0, i, { - kind: "class", - name: s, - addInitializer: createAddInitializerMethod(n, l), - metadata: a - }); + if (w) v = D.call(E, e, O);else { + var k, F; + O["static"] = l, O["private"] = f, f || !p && 2 !== o ? 2 === o ? k = function k(e) { + return m(e), S.value; + } : ((o < 2 || 3 === o) && (k = i(S, "get", f && m)), (o < 2 || 4 === o) && (F = i(S, "set", f && m))) : (k = function k(e) { + return e[n]; + }, p && (F = function F(e, t) { + e[n] = t; + })); + var N = O.access = { + has: f ? h.bind() : function (e) { + return n in e; + } + }; + if (k && (N.get = k), F && (N.set = F), v = D.call(E, d ? { + get: S.get, + set: S.set + } : S[P], O), d) { + if ("object" == _typeof(v) && v) (y = s(v.get, "accessor.get")) && (S.get = y), (y = s(v.set, "accessor.set")) && (S.set = y), (y = s(v.init, "accessor.init")) && A.push(y);else if (void 0 !== v) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); + } else s(v, (p ? "field" : "method") + " decorators", "return") && (p ? A.push(v) : S[P] = v); + } } finally { - l.v = !0; + I.v = !0; } - void 0 !== u && (assertValidReturnValue(5, u), i = u); } - return [defineMetadata(i, a), function () { - for (var e = 0; e < n.length; e++) n[e].call(i); - }]; + return (p || d) && u.push(function (e, t) { + for (var r = A.length - 1; r >= 0; r--) t = A[r].call(e, t); + return t; + }), p || w || (f ? d ? u.push(i(S, "get"), i(S, "set")) : u.push(2 === o ? S[P] : i.call.bind(S[P])) : Object.defineProperty(e, n, S)), v; } -} -function defineMetadata(e, t) { - return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { - configurable: !0, - enumerable: !0, - value: t - }); -} -function applyDecs2305(e, t, r, a, n, i) { - if (arguments.length >= 6) var s = i[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; - var o = Object.create(void 0 === s ? null : s), - c = applyMemberDecs(e, t, n, o); - return r.length || defineMetadata(e, o), { - e: c, + function u(e, t) { + return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { + configurable: !0, + enumerable: !0, + value: t + }); + } + if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; + var f = Object.create(null == l ? null : l), + p = function (e, t, r, n) { + var o, + a, + i = [], + s = function s(t) { + return checkInRHS(t) === e; + }, + u = new Map(); + function l(e) { + e && i.push(c.bind(null, e)); + } + for (var f = 0; f < t.length; f++) { + var p = t[f]; + if (Array.isArray(p)) { + var d = p[1], + h = p[2], + m = p.length > 3, + y = 16 & d, + v = !!(8 & d), + g = 0 == (d &= 7), + b = h + "/" + v; + if (!g && !m) { + var w = u.get(b); + if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); + u.set(b, !(d > 2) || d); + } + applyDec(v ? e : e.prototype, p, y, m ? "#" + h : toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); + } + } + return l(o), l(a), i; + }(e, t, o, f); + return r.length || u(e, f), { + e: p, get c() { - return applyClassDecs(e, r, a, o); + var t = []; + return r.length && [u(s(applyDec(e, [r], n, e.name, 5, f, t), "class decorators", "return") || e, f), c.bind(null, t, e)]; } }; } diff --git a/node_modules/@babel/runtime/helpers/esm/applyDecs.js b/node_modules/@babel/runtime/helpers/esm/applyDecs.js index 1b0c8602..ea771ab2 100644 --- a/node_modules/@babel/runtime/helpers/esm/applyDecs.js +++ b/node_modules/@babel/runtime/helpers/esm/applyDecs.js @@ -1,4 +1,6 @@ import _typeof from "./typeof.js"; +import setFunctionName from "./setFunctionName.js"; +import toPropertyKey from "./toPropertyKey.js"; function old_createMetadataMethodsForProperty(e, t, a, r) { return { getMetadata: function getMetadata(o) { @@ -74,7 +76,7 @@ function old_memberDec(e, t, a, r, o, i, n, l, s) { u, f = { kind: c, - name: l ? "#" + t : t, + name: l ? "#" + t : toPropertyKey(t), isStatic: n, isPrivate: l }, @@ -112,10 +114,7 @@ function old_assertValidReturnValue(e, t) { if (1 === e) { if ("object" !== a || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); void 0 !== t.get && old_assertCallable(t.get, "accessor.get"), void 0 !== t.set && old_assertCallable(t.set, "accessor.set"), void 0 !== t.init && old_assertCallable(t.init, "accessor.init"), void 0 !== t.initializer && old_assertCallable(t.initializer, "accessor.initializer"); - } else if ("function" !== a) { - var r; - throw r = 0 === e ? "field" : 10 === e ? "class" : "method", new TypeError(r + " decorators must return a function or void 0"); - } + } else if ("function" !== a) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0"); } function old_getInit(e) { var t; @@ -128,28 +127,29 @@ function old_applyMemberDec(e, t, a, r, o, i, n, l, s) { f, p, v, + y, h = a[0]; - if (n ? c = 0 === o || 1 === o ? { + if (n ? (0 === o || 1 === o ? (c = { get: a[3], set: a[4] - } : 3 === o ? { + }, u = "get") : 3 === o ? (c = { get: a[3] - } : 4 === o ? { + }, u = "get") : 4 === o ? (c = { set: a[3] - } : { + }, u = "set") : c = { value: a[3] - } : 0 !== o && (c = Object.getOwnPropertyDescriptor(t, r)), 1 === o ? u = { + }, 0 !== o && (1 === o && setFunctionName(a[4], "#" + r, "set"), setFunctionName(a[3], "#" + r, u))) : 0 !== o && (c = Object.getOwnPropertyDescriptor(t, r)), 1 === o ? f = { get: c.get, set: c.set - } : 2 === o ? u = c.value : 3 === o ? u = c.get : 4 === o && (u = c.set), "function" == typeof h) void 0 !== (f = old_memberDec(h, r, c, l, s, o, i, n, u)) && (old_assertValidReturnValue(o, f), 0 === o ? d = f : 1 === o ? (d = old_getInit(f), p = f.get || u.get, v = f.set || u.set, u = { - get: p, - set: v - }) : u = f);else for (var y = h.length - 1; y >= 0; y--) { + } : 2 === o ? f = c.value : 3 === o ? f = c.get : 4 === o && (f = c.set), "function" == typeof h) void 0 !== (p = old_memberDec(h, r, c, l, s, o, i, n, f)) && (old_assertValidReturnValue(o, p), 0 === o ? d = p : 1 === o ? (d = old_getInit(p), v = p.get || f.get, y = p.set || f.set, f = { + get: v, + set: y + }) : f = p);else for (var m = h.length - 1; m >= 0; m--) { var b; - if (void 0 !== (f = old_memberDec(h[y], r, c, l, s, o, i, n, u))) old_assertValidReturnValue(o, f), 0 === o ? b = f : 1 === o ? (b = old_getInit(f), p = f.get || u.get, v = f.set || u.set, u = { - get: p, - set: v - }) : u = f, void 0 !== b && (void 0 === d ? d = b : "function" == typeof d ? d = [d, b] : d.push(b)); + void 0 !== (p = old_memberDec(h[m], r, c, l, s, o, i, n, f)) && (old_assertValidReturnValue(o, p), 0 === o ? b = p : 1 === o ? (b = old_getInit(p), v = p.get || f.get, y = p.set || f.set, f = { + get: v, + set: y + }) : f = p, void 0 !== b && (void 0 === d ? d = b : "function" == typeof d ? d = [d, b] : d.push(b))); } if (0 === o || 1 === o) { if (void 0 === d) d = function d(e, t) { @@ -161,19 +161,19 @@ function old_applyMemberDec(e, t, a, r, o, i, n, l, s) { return a; }; } else { - var m = d; + var _ = d; d = function d(e, t) { - return m.call(e, t); + return _.call(e, t); }; } e.push(d); } - 0 !== o && (1 === o ? (c.get = u.get, c.set = u.set) : 2 === o ? c.value = u : 3 === o ? c.get = u : 4 === o && (c.set = u), n ? 1 === o ? (e.push(function (e, t) { - return u.get.call(e, t); + 0 !== o && (1 === o ? (c.get = f.get, c.set = f.set) : 2 === o ? c.value = f : 3 === o ? c.get = f : 4 === o && (c.set = f), n ? 1 === o ? (e.push(function (e, t) { + return f.get.call(e, t); }), e.push(function (e, t) { - return u.set.call(e, t); - })) : 2 === o ? e.push(u) : e.push(function (e, t) { - return u.call(e, t); + return f.set.call(e, t); + })) : 2 === o ? e.push(f) : e.push(function (e, t) { + return f.call(e, t); }) : Object.defineProperty(t, r, c)); } function old_applyMemberDecs(e, t, a, r, o) { @@ -184,16 +184,16 @@ function old_applyMemberDecs(e, t, a, r, o) { f, p, v = d[1], - h = d[2], - y = d.length > 3, - b = v >= 5; - if (b ? (u = t, f = r, 0 !== (v -= 5) && (p = n = n || [])) : (u = t.prototype, f = a, 0 !== v && (p = i = i || [])), 0 !== v && !y) { - var g = b ? s : l, - m = g.get(h) || 0; - if (!0 === m || 3 === m && 4 !== v || 4 === m && 3 !== v) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); - !m && v > 2 ? g.set(h, v) : g.set(h, !0); + y = d[2], + h = d.length > 3, + m = v >= 5; + if (m ? (u = t, f = r, 0 != (v -= 5) && (p = n = n || [])) : (u = t.prototype, f = a, 0 !== v && (p = i = i || [])), 0 !== v && !h) { + var b = m ? s : l, + g = b.get(y) || 0; + if (!0 === g || 3 === g && 4 !== v || 4 === g && 3 !== v) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + y); + !g && v > 2 ? b.set(y, v) : b.set(y, !0); } - old_applyMemberDec(e, u, d, h, v, b, y, f, p); + old_applyMemberDec(e, u, d, y, v, m, h, f, p); } } old_pushInitializers(e, i), old_pushInitializers(e, n); diff --git a/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js b/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js index df7c9834..9aa12bdb 100644 --- a/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js +++ b/node_modules/@babel/runtime/helpers/esm/applyDecs2203.js @@ -3,8 +3,8 @@ function applyDecs2203Factory() { function createAddInitializerMethod(e, t) { return function (r) { !function (e, t) { - if (e.v) throw new Error("attempted to call " + t + " after decoration was finished"); - }(t, "addInitializer"), assertCallable(r, "An initializer"), e.push(r); + if (e.v) throw new Error("attempted to call addInitializer after decoration was finished"); + }(t), assertCallable(r, "An initializer"), e.push(r); }; } function memberDec(e, t, r, a, n, i, s, o) { @@ -68,10 +68,7 @@ function applyDecs2203Factory() { if (1 === e) { if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init"); - } else if ("function" !== r) { - var a; - throw a = 0 === e ? "field" : 10 === e ? "class" : "method", new TypeError(a + " decorators must return a function or void 0"); - } + } else if ("function" !== r) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0"); } function applyMemberDec(e, t, r, a, n, i, s, o) { var c, @@ -98,10 +95,10 @@ function applyDecs2203Factory() { set: d }) : u = f);else for (var v = h.length - 1; v >= 0; v--) { var g; - if (void 0 !== (f = memberDec(h[v], a, c, o, n, i, s, u))) assertValidReturnValue(n, f), 0 === n ? g = f : 1 === n ? (g = f.init, p = f.get || u.get, d = f.set || u.set, u = { + void 0 !== (f = memberDec(h[v], a, c, o, n, i, s, u)) && (assertValidReturnValue(n, f), 0 === n ? g = f : 1 === n ? (g = f.init, p = f.get || u.get, d = f.set || u.set, u = { get: p, set: d - }) : u = f, void 0 !== g && (void 0 === l ? l = g : "function" == typeof l ? l = [l, g] : l.push(g)); + }) : u = f, void 0 !== g && (void 0 === l ? l = g : "function" == typeof l ? l = [l, g] : l.push(g))); } if (0 === n || 1 === n) { if (void 0 === l) l = function l(e, t) { diff --git a/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js b/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js index d4bb5c43..fd974d1e 100644 --- a/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js +++ b/node_modules/@babel/runtime/helpers/esm/applyDecs2203R.js @@ -1,13 +1,15 @@ import _typeof from "./typeof.js"; +import setFunctionName from "./setFunctionName.js"; +import toPropertyKey from "./toPropertyKey.js"; function applyDecs2203RFactory() { function createAddInitializerMethod(e, t) { return function (r) { !function (e, t) { - if (e.v) throw new Error("attempted to call " + t + " after decoration was finished"); - }(t, "addInitializer"), assertCallable(r, "An initializer"), e.push(r); + if (e.v) throw new Error("attempted to call addInitializer after decoration was finished"); + }(t), assertCallable(r, "An initializer"), e.push(r); }; } - function memberDec(e, t, r, n, a, i, s, o) { + function memberDec(e, t, r, n, a, i, o, s) { var c; switch (a) { case 1: @@ -29,14 +31,14 @@ function applyDecs2203RFactory() { u, f = { kind: c, - name: s ? "#" + t : t, + name: o ? "#" + t : toPropertyKey(t), "static": i, - "private": s + "private": o }, p = { v: !1 }; - 0 !== a && (f.addInitializer = createAddInitializerMethod(n, p)), 0 === a ? s ? (l = r.get, u = r.set) : (l = function l() { + 0 !== a && (f.addInitializer = createAddInitializerMethod(n, p)), 0 === a ? o ? (l = r.get, u = r.set) : (l = function l() { return this[t]; }, u = function u(e) { this[t] = e; @@ -55,7 +57,7 @@ function applyDecs2203RFactory() { set: u }; try { - return e(o, f); + return e(s, f); } finally { p.v = !0; } @@ -68,69 +70,67 @@ function applyDecs2203RFactory() { if (1 === e) { if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init"); - } else if ("function" !== r) { - var n; - throw n = 0 === e ? "field" : 10 === e ? "class" : "method", new TypeError(n + " decorators must return a function or void 0"); - } + } else if ("function" !== r) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0"); } - function applyMemberDec(e, t, r, n, a, i, s, o) { + function applyMemberDec(e, t, r, n, a, i, o, s) { var c, l, u, f, p, d, - h = r[0]; - if (s ? c = 0 === a || 1 === a ? { + h, + v = r[0]; + if (o ? (0 === a || 1 === a ? (c = { get: r[3], set: r[4] - } : 3 === a ? { + }, u = "get") : 3 === a ? (c = { get: r[3] - } : 4 === a ? { + }, u = "get") : 4 === a ? (c = { set: r[3] - } : { + }, u = "set") : c = { value: r[3] - } : 0 !== a && (c = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? u = { + }, 0 !== a && (1 === a && setFunctionName(r[4], "#" + n, "set"), setFunctionName(r[3], "#" + n, u))) : 0 !== a && (c = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? f = { get: c.get, set: c.set - } : 2 === a ? u = c.value : 3 === a ? u = c.get : 4 === a && (u = c.set), "function" == typeof h) void 0 !== (f = memberDec(h, n, c, o, a, i, s, u)) && (assertValidReturnValue(a, f), 0 === a ? l = f : 1 === a ? (l = f.init, p = f.get || u.get, d = f.set || u.set, u = { - get: p, - set: d - }) : u = f);else for (var v = h.length - 1; v >= 0; v--) { - var g; - if (void 0 !== (f = memberDec(h[v], n, c, o, a, i, s, u))) assertValidReturnValue(a, f), 0 === a ? g = f : 1 === a ? (g = f.init, p = f.get || u.get, d = f.set || u.set, u = { - get: p, - set: d - }) : u = f, void 0 !== g && (void 0 === l ? l = g : "function" == typeof l ? l = [l, g] : l.push(g)); + } : 2 === a ? f = c.value : 3 === a ? f = c.get : 4 === a && (f = c.set), "function" == typeof v) void 0 !== (p = memberDec(v, n, c, s, a, i, o, f)) && (assertValidReturnValue(a, p), 0 === a ? l = p : 1 === a ? (l = p.init, d = p.get || f.get, h = p.set || f.set, f = { + get: d, + set: h + }) : f = p);else for (var g = v.length - 1; g >= 0; g--) { + var y; + void 0 !== (p = memberDec(v[g], n, c, s, a, i, o, f)) && (assertValidReturnValue(a, p), 0 === a ? y = p : 1 === a ? (y = p.init, d = p.get || f.get, h = p.set || f.set, f = { + get: d, + set: h + }) : f = p, void 0 !== y && (void 0 === l ? l = y : "function" == typeof l ? l = [l, y] : l.push(y))); } if (0 === a || 1 === a) { if (void 0 === l) l = function l(e, t) { return t; };else if ("function" != typeof l) { - var y = l; + var m = l; l = function l(e, t) { - for (var r = t, n = 0; n < y.length; n++) r = y[n].call(e, r); + for (var r = t, n = 0; n < m.length; n++) r = m[n].call(e, r); return r; }; } else { - var m = l; + var b = l; l = function l(e, t) { - return m.call(e, t); + return b.call(e, t); }; } e.push(l); } - 0 !== a && (1 === a ? (c.get = u.get, c.set = u.set) : 2 === a ? c.value = u : 3 === a ? c.get = u : 4 === a && (c.set = u), s ? 1 === a ? (e.push(function (e, t) { - return u.get.call(e, t); + 0 !== a && (1 === a ? (c.get = f.get, c.set = f.set) : 2 === a ? c.value = f : 3 === a ? c.get = f : 4 === a && (c.set = f), o ? 1 === a ? (e.push(function (e, t) { + return f.get.call(e, t); }), e.push(function (e, t) { - return u.set.call(e, t); - })) : 2 === a ? e.push(u) : e.push(function (e, t) { - return u.call(e, t); + return f.set.call(e, t); + })) : 2 === a ? e.push(f) : e.push(function (e, t) { + return f.call(e, t); }) : Object.defineProperty(t, n, c)); } function applyMemberDecs(e, t) { - for (var r, n, a = [], i = new Map(), s = new Map(), o = 0; o < t.length; o++) { - var c = t[o]; + for (var r, n, a = [], i = new Map(), o = new Map(), s = 0; s < t.length; s++) { + var c = t[s]; if (Array.isArray(c)) { var l, u, @@ -138,8 +138,8 @@ function applyDecs2203RFactory() { p = c[2], d = c.length > 3, h = f >= 5; - if (h ? (l = e, 0 !== (f -= 5) && (u = n = n || [])) : (l = e.prototype, 0 !== f && (u = r = r || [])), 0 !== f && !d) { - var v = h ? s : i, + if (h ? (l = e, 0 != (f -= 5) && (u = n = n || [])) : (l = e.prototype, 0 !== f && (u = r = r || [])), 0 !== f && !d) { + var v = h ? o : i, g = v.get(p) || 0; if (!0 === g || 3 === g && 4 !== f || 4 === g && 3 !== f) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + p); !g && f > 2 ? v.set(p, f) : v.set(p, !0); @@ -162,19 +162,19 @@ function applyDecs2203RFactory() { return function (e, t) { if (t.length > 0) { for (var r = [], n = e, a = e.name, i = t.length - 1; i >= 0; i--) { - var s = { + var o = { v: !1 }; try { - var o = t[i](n, { + var s = t[i](n, { kind: "class", name: a, - addInitializer: createAddInitializerMethod(r, s) + addInitializer: createAddInitializerMethod(r, o) }); } finally { - s.v = !0; + o.v = !0; } - void 0 !== o && (assertValidReturnValue(10, o), n = o); + void 0 !== s && (assertValidReturnValue(10, s), n = s); } return [n, function () { for (var e = 0; e < r.length; e++) r[e].call(n); diff --git a/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js b/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js index 69200d14..e131b005 100644 --- a/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js +++ b/node_modules/@babel/runtime/helpers/esm/applyDecs2301.js @@ -1,11 +1,13 @@ import _typeof from "./typeof.js"; import checkInRHS from "./checkInRHS.js"; +import setFunctionName from "./setFunctionName.js"; +import toPropertyKey from "./toPropertyKey.js"; function applyDecs2301Factory() { function createAddInitializerMethod(e, t) { return function (r) { !function (e, t) { - if (e.v) throw new Error("attempted to call " + t + " after decoration was finished"); - }(t, "addInitializer"), assertCallable(r, "An initializer"), e.push(r); + if (e.v) throw new Error("attempted to call addInitializer after decoration was finished"); + }(t), assertCallable(r, "An initializer"), e.push(r); }; } function assertInstanceIfPrivate(e, t) { @@ -33,7 +35,7 @@ function applyDecs2301Factory() { f, p = { kind: u, - name: s ? "#" + t : t, + name: s ? "#" + t : toPropertyKey(t), "static": i, "private": s }, @@ -88,10 +90,7 @@ function applyDecs2301Factory() { if (1 === e) { if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init"); - } else if ("function" !== r) { - var n; - throw n = 0 === e ? "field" : 10 === e ? "class" : "method", new TypeError(n + " decorators must return a function or void 0"); - } + } else if ("function" !== r) throw new TypeError((0 === e ? "field" : 10 === e ? "class" : "method") + " decorators must return a function or void 0"); } function curryThis2(e) { return function (t) { @@ -106,54 +105,55 @@ function applyDecs2301Factory() { d, h, v, + y, g = r[0]; - if (s ? u = 0 === a || 1 === a ? { - get: (p = r[3], function () { - return p(this); + if (s ? (0 === a || 1 === a ? (u = { + get: (d = r[3], function () { + return d(this); }), set: curryThis2(r[4]) - } : 3 === a ? { + }, f = "get") : 3 === a ? (u = { get: r[3] - } : 4 === a ? { + }, f = "get") : 4 === a ? (u = { set: r[3] - } : { + }, f = "set") : u = { value: r[3] - } : 0 !== a && (u = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? f = { + }, 0 !== a && (1 === a && setFunctionName(u.set, "#" + n, "set"), setFunctionName(u[f || "value"], "#" + n, f))) : 0 !== a && (u = Object.getOwnPropertyDescriptor(t, n)), 1 === a ? p = { get: u.get, set: u.set - } : 2 === a ? f = u.value : 3 === a ? f = u.get : 4 === a && (f = u.set), "function" == typeof g) void 0 !== (d = memberDec(g, n, u, o, a, i, s, f, c)) && (assertValidReturnValue(a, d), 0 === a ? l = d : 1 === a ? (l = d.init, h = d.get || f.get, v = d.set || f.set, f = { - get: h, - set: v - }) : f = d);else for (var y = g.length - 1; y >= 0; y--) { - var m; - if (void 0 !== (d = memberDec(g[y], n, u, o, a, i, s, f, c))) assertValidReturnValue(a, d), 0 === a ? m = d : 1 === a ? (m = d.init, h = d.get || f.get, v = d.set || f.set, f = { - get: h, - set: v - }) : f = d, void 0 !== m && (void 0 === l ? l = m : "function" == typeof l ? l = [l, m] : l.push(m)); + } : 2 === a ? p = u.value : 3 === a ? p = u.get : 4 === a && (p = u.set), "function" == typeof g) void 0 !== (h = memberDec(g, n, u, o, a, i, s, p, c)) && (assertValidReturnValue(a, h), 0 === a ? l = h : 1 === a ? (l = h.init, v = h.get || p.get, y = h.set || p.set, p = { + get: v, + set: y + }) : p = h);else for (var m = g.length - 1; m >= 0; m--) { + var b; + void 0 !== (h = memberDec(g[m], n, u, o, a, i, s, p, c)) && (assertValidReturnValue(a, h), 0 === a ? b = h : 1 === a ? (b = h.init, v = h.get || p.get, y = h.set || p.set, p = { + get: v, + set: y + }) : p = h, void 0 !== b && (void 0 === l ? l = b : "function" == typeof l ? l = [l, b] : l.push(b))); } if (0 === a || 1 === a) { if (void 0 === l) l = function l(e, t) { return t; };else if ("function" != typeof l) { - var b = l; + var I = l; l = function l(e, t) { - for (var r = t, n = 0; n < b.length; n++) r = b[n].call(e, r); + for (var r = t, n = 0; n < I.length; n++) r = I[n].call(e, r); return r; }; } else { - var I = l; + var w = l; l = function l(e, t) { - return I.call(e, t); + return w.call(e, t); }; } e.push(l); } - 0 !== a && (1 === a ? (u.get = f.get, u.set = f.set) : 2 === a ? u.value = f : 3 === a ? u.get = f : 4 === a && (u.set = f), s ? 1 === a ? (e.push(function (e, t) { - return f.get.call(e, t); + 0 !== a && (1 === a ? (u.get = p.get, u.set = p.set) : 2 === a ? u.value = p : 3 === a ? u.get = p : 4 === a && (u.set = p), s ? 1 === a ? (e.push(function (e, t) { + return p.get.call(e, t); }), e.push(function (e, t) { - return f.set.call(e, t); - })) : 2 === a ? e.push(f) : e.push(function (e, t) { - return f.call(e, t); + return p.set.call(e, t); + })) : 2 === a ? e.push(p) : e.push(function (e, t) { + return p.call(e, t); }) : Object.defineProperty(t, n, u)); } function applyMemberDecs(e, t, r) { @@ -165,17 +165,17 @@ function applyDecs2301Factory() { d = l[1], h = l[2], v = l.length > 3, - g = d >= 5, - y = r; - if (g ? (f = e, 0 !== (d -= 5) && (p = a = a || []), v && !i && (i = function i(t) { + y = d >= 5, + g = r; + if (y ? (f = e, 0 != (d -= 5) && (p = a = a || []), v && !i && (i = function i(t) { return checkInRHS(t) === e; - }), y = i) : (f = e.prototype, 0 !== d && (p = n = n || [])), 0 !== d && !v) { - var m = g ? c : o, + }), g = i) : (f = e.prototype, 0 !== d && (p = n = n || [])), 0 !== d && !v) { + var m = y ? c : o, b = m.get(h) || 0; if (!0 === b || 3 === b && 4 !== d || 4 === b && 3 !== d) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); !b && d > 2 ? m.set(h, d) : m.set(h, !0); } - applyMemberDec(s, f, l, h, d, g, v, p, y); + applyMemberDec(s, f, l, h, d, y, v, p, g); } } return pushInitializers(s, n), pushInitializers(s, a), s; diff --git a/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js b/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js index 4c6beb3b..6cfb2583 100644 --- a/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js +++ b/node_modules/@babel/runtime/helpers/esm/applyDecs2305.js @@ -1,231 +1,133 @@ import _typeof from "./typeof.js"; import checkInRHS from "./checkInRHS.js"; -function createAddInitializerMethod(e, t) { - return function (r) { - assertNotFinished(t, "addInitializer"), assertCallable(r, "An initializer"), e.push(r); - }; -} -function assertInstanceIfPrivate(e, t) { - if (!e(t)) throw new TypeError("Attempted to access private element on non-instance"); -} -function memberDec(e, t, r, a, n, i, s, o, c, l, u) { - var f; - switch (i) { - case 1: - f = "accessor"; - break; - case 2: - f = "method"; - break; - case 3: - f = "getter"; - break; - case 4: - f = "setter"; - break; - default: - f = "field"; - } - var d, - p, - h = { - kind: f, - name: o ? "#" + r : r, - "static": s, - "private": o, - metadata: u - }, - v = { - v: !1 +import setFunctionName from "./setFunctionName.js"; +import toPropertyKey from "./toPropertyKey.js"; +export default function applyDecs2305(e, t, r, n, o, a) { + function i(e, t, r) { + return function (n, o) { + return r && r(n), e[t].call(n, o); }; - if (0 !== i && (h.addInitializer = createAddInitializerMethod(n, v)), o || 0 !== i && 2 !== i) { - if (2 === i) d = function d(e) { - return assertInstanceIfPrivate(l, e), a.value; - };else { - var y = 0 === i || 1 === i; - (y || 3 === i) && (d = o ? function (e) { - return assertInstanceIfPrivate(l, e), a.get.call(e); - } : function (e) { - return a.get.call(e); - }), (y || 4 === i) && (p = o ? function (e, t) { - assertInstanceIfPrivate(l, e), a.set.call(e, t); - } : function (e, t) { - a.set.call(e, t); - }); - } - } else d = function d(e) { - return e[r]; - }, 0 === i && (p = function p(e, t) { - e[r] = t; - }); - var m = o ? l.bind() : function (e) { - return r in e; - }; - h.access = d && p ? { - get: d, - set: p, - has: m - } : d ? { - get: d, - has: m - } : { - set: p, - has: m - }; - try { - return e.call(t, c, h); - } finally { - v.v = !0; } -} -function assertNotFinished(e, t) { - if (e.v) throw new Error("attempted to call " + t + " after decoration was finished"); -} -function assertCallable(e, t) { - if ("function" != typeof e) throw new TypeError(t + " must be a function"); -} -function assertValidReturnValue(e, t) { - var r = _typeof(t); - if (1 === e) { - if ("object" !== r || null === t) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); - void 0 !== t.get && assertCallable(t.get, "accessor.get"), void 0 !== t.set && assertCallable(t.set, "accessor.set"), void 0 !== t.init && assertCallable(t.init, "accessor.init"); - } else if ("function" !== r) { - var a; - throw a = 0 === e ? "field" : 5 === e ? "class" : "method", new TypeError(a + " decorators must return a function or void 0"); + function c(e, t) { + for (var r = 0; r < e.length; r++) e[r].call(t); + return t; } -} -function curryThis1(e) { - return function () { - return e(this); - }; -} -function curryThis2(e) { - return function (t) { - e(this, t); - }; -} -function applyMemberDec(e, t, r, a, n, i, s, o, c, l, u) { - var f, - d, - p, - h, - v, - y, - m = r[0]; - a || Array.isArray(m) || (m = [m]), o ? f = 0 === i || 1 === i ? { - get: curryThis1(r[3]), - set: curryThis2(r[4]) - } : 3 === i ? { - get: r[3] - } : 4 === i ? { - set: r[3] - } : { - value: r[3] - } : 0 !== i && (f = Object.getOwnPropertyDescriptor(t, n)), 1 === i ? p = { - get: f.get, - set: f.set - } : 2 === i ? p = f.value : 3 === i ? p = f.get : 4 === i && (p = f.set); - for (var g = a ? 2 : 1, b = m.length - 1; b >= 0; b -= g) { - var I; - if (void 0 !== (h = memberDec(m[b], a ? m[b - 1] : void 0, n, f, c, i, s, o, p, l, u))) assertValidReturnValue(i, h), 0 === i ? I = h : 1 === i ? (I = h.init, v = h.get || p.get, y = h.set || p.set, p = { - get: v, - set: y - }) : p = h, void 0 !== I && (void 0 === d ? d = I : "function" == typeof d ? d = [d, I] : d.push(I)); + function s(e, t, r, n) { + if ("function" != typeof e && (n || void 0 !== e)) throw new TypeError(t + " must " + (r || "be") + " a function" + (n ? "" : " or undefined")); + return e; } - if (0 === i || 1 === i) { - if (void 0 === d) d = function d(e, t) { - return t; - };else if ("function" != typeof d) { - var w = d; - d = function d(e, t) { - for (var r = t, a = w.length - 1; a >= 0; a--) r = w[a].call(e, r); - return r; - }; - } else { - var M = d; - d = function d(e, t) { - return M.call(e, t); - }; + function applyDec(e, t, r, n, o, a, c, u, l, f, p, d, h) { + function m(e) { + if (!h(e)) throw new TypeError("Attempted to access private element on non-instance"); } - e.push(d); - } - 0 !== i && (1 === i ? (f.get = p.get, f.set = p.set) : 2 === i ? f.value = p : 3 === i ? f.get = p : 4 === i && (f.set = p), o ? 1 === i ? (e.push(function (e, t) { - return p.get.call(e, t); - }), e.push(function (e, t) { - return p.set.call(e, t); - })) : 2 === i ? e.push(p) : e.push(function (e, t) { - return p.call(e, t); - }) : Object.defineProperty(t, n, f)); -} -function applyMemberDecs(e, t, r, a) { - for (var n, i, s, o = [], c = new Map(), l = new Map(), u = 0; u < t.length; u++) { - var f = t[u]; - if (Array.isArray(f)) { - var d, - p, - h = f[1], - v = f[2], - y = f.length > 3, - m = 16 & h, - g = !!(8 & h), - b = r; - if (h &= 7, g ? (d = e, 0 !== h && (p = i = i || []), y && !s && (s = function s(t) { - return checkInRHS(t) === e; - }), b = s) : (d = e.prototype, 0 !== h && (p = n = n || [])), 0 !== h && !y) { - var I = g ? l : c, - w = I.get(v) || 0; - if (!0 === w || 3 === w && 4 !== h || 4 === w && 3 !== h) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + v); - I.set(v, !(!w && h > 2) || h); - } - applyMemberDec(o, d, f, m, v, h, g, y, p, b, a); + var y, + v, + g = t[0], + b = t[3], + w = !u; + if (!w) { + r || Array.isArray(g) || (g = [g]); + var S = {}, + A = [], + P = 3 === o ? "get" : 4 === o || d ? "set" : "value"; + f ? (p || d ? S = { + get: setFunctionName(function () { + return b(this); + }, n, "get"), + set: function set(e) { + t[4](this, e); + } + } : S[P] = b, p || setFunctionName(S[P], n, 2 === o ? "" : P)) : p || (S = Object.getOwnPropertyDescriptor(e, n)); } - } - return pushInitializers(o, n), pushInitializers(o, i), o; -} -function pushInitializers(e, t) { - t && e.push(function (e) { - for (var r = 0; r < t.length; r++) t[r].call(e); - return e; - }); -} -function applyClassDecs(e, t, r, a) { - if (t.length) { - for (var n = [], i = e, s = e.name, o = r ? 2 : 1, c = t.length - 1; c >= 0; c -= o) { - var l = { - v: !1 - }; + for (var j = g.length - 1; j >= 0; j -= r ? 2 : 1) { + var D = g[j], + E = r ? g[j - 1] : void 0, + I = {}, + O = { + kind: ["field", "accessor", "method", "getter", "setter", "field", "class"][o], + name: n, + metadata: a, + addInitializer: function (e, t) { + if (e.v) throw new Error("attempted to call addInitializer after decoration was finished"); + s(t, "An initializer", "be", !0), c.push(t); + }.bind(null, I) + }; try { - var u = t[c].call(r ? t[c - 1] : void 0, i, { - kind: "class", - name: s, - addInitializer: createAddInitializerMethod(n, l), - metadata: a - }); + if (w) v = D.call(E, e, O);else { + var k, F; + O["static"] = l, O["private"] = f, f || !p && 2 !== o ? 2 === o ? k = function k(e) { + return m(e), S.value; + } : ((o < 2 || 3 === o) && (k = i(S, "get", f && m)), (o < 2 || 4 === o) && (F = i(S, "set", f && m))) : (k = function k(e) { + return e[n]; + }, p && (F = function F(e, t) { + e[n] = t; + })); + var N = O.access = { + has: f ? h.bind() : function (e) { + return n in e; + } + }; + if (k && (N.get = k), F && (N.set = F), v = D.call(E, d ? { + get: S.get, + set: S.set + } : S[P], O), d) { + if ("object" == _typeof(v) && v) (y = s(v.get, "accessor.get")) && (S.get = y), (y = s(v.set, "accessor.set")) && (S.set = y), (y = s(v.init, "accessor.init")) && A.push(y);else if (void 0 !== v) throw new TypeError("accessor decorators must return an object with get, set, or init properties or void 0"); + } else s(v, (p ? "field" : "method") + " decorators", "return") && (p ? A.push(v) : S[P] = v); + } } finally { - l.v = !0; + I.v = !0; } - void 0 !== u && (assertValidReturnValue(5, u), i = u); } - return [defineMetadata(i, a), function () { - for (var e = 0; e < n.length; e++) n[e].call(i); - }]; + return (p || d) && u.push(function (e, t) { + for (var r = A.length - 1; r >= 0; r--) t = A[r].call(e, t); + return t; + }), p || w || (f ? d ? u.push(i(S, "get"), i(S, "set")) : u.push(2 === o ? S[P] : i.call.bind(S[P])) : Object.defineProperty(e, n, S)), v; + } + function u(e, t) { + return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { + configurable: !0, + enumerable: !0, + value: t + }); } -} -function defineMetadata(e, t) { - return Object.defineProperty(e, Symbol.metadata || Symbol["for"]("Symbol.metadata"), { - configurable: !0, - enumerable: !0, - value: t - }); -} -export default function applyDecs2305(e, t, r, a, n, i) { - if (arguments.length >= 6) var s = i[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; - var o = Object.create(void 0 === s ? null : s), - c = applyMemberDecs(e, t, n, o); - return r.length || defineMetadata(e, o), { - e: c, + if (arguments.length >= 6) var l = a[Symbol.metadata || Symbol["for"]("Symbol.metadata")]; + var f = Object.create(null == l ? null : l), + p = function (e, t, r, n) { + var o, + a, + i = [], + s = function s(t) { + return checkInRHS(t) === e; + }, + u = new Map(); + function l(e) { + e && i.push(c.bind(null, e)); + } + for (var f = 0; f < t.length; f++) { + var p = t[f]; + if (Array.isArray(p)) { + var d = p[1], + h = p[2], + m = p.length > 3, + y = 16 & d, + v = !!(8 & d), + g = 0 == (d &= 7), + b = h + "/" + v; + if (!g && !m) { + var w = u.get(b); + if (!0 === w || 3 === w && 4 !== d || 4 === w && 3 !== d) throw new Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h); + u.set(b, !(d > 2) || d); + } + applyDec(v ? e : e.prototype, p, y, m ? "#" + h : toPropertyKey(h), d, n, v ? a = a || [] : o = o || [], i, v, m, g, 1 === d, v && m ? s : r); + } + } + return l(o), l(a), i; + }(e, t, o, f); + return r.length || u(e, f), { + e: p, get c() { - return applyClassDecs(e, r, a, o); + var t = []; + return r.length && [u(s(applyDec(e, [r], n, e.name, 5, f, t), "class decorators", "return") || e, f), c.bind(null, t, e)]; } }; }
\ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/setFunctionName.js b/node_modules/@babel/runtime/helpers/esm/setFunctionName.js new file mode 100644 index 00000000..dc8ae48d --- /dev/null +++ b/node_modules/@babel/runtime/helpers/esm/setFunctionName.js @@ -0,0 +1,11 @@ +import _typeof from "./typeof.js"; +export default function setFunctionName(e, t, n) { + "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); + try { + Object.defineProperty(e, "name", { + configurable: !0, + value: n ? n + " " + t : t + }); + } catch (e) {} + return e; +}
\ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toPrimitive.js b/node_modules/@babel/runtime/helpers/esm/toPrimitive.js index cbfabb7f..56b19f5a 100644 --- a/node_modules/@babel/runtime/helpers/esm/toPrimitive.js +++ b/node_modules/@babel/runtime/helpers/esm/toPrimitive.js @@ -1,11 +1,11 @@ import _typeof from "./typeof.js"; -export default function _toPrimitive(input, hint) { - if (_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (_typeof(res) !== "object") return res; +export default function toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } - return (hint === "string" ? String : Number)(input); + return ("string" === r ? String : Number)(t); }
\ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js b/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js index 0fcc93b3..dbbe92bd 100644 --- a/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js +++ b/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js @@ -1,6 +1,6 @@ import _typeof from "./typeof.js"; import toPrimitive from "./toPrimitive.js"; -export default function _toPropertyKey(arg) { - var key = toPrimitive(arg, "string"); - return _typeof(key) === "symbol" ? key : String(key); +export default function toPropertyKey(t) { + var i = toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : String(i); }
\ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/esm/using.js b/node_modules/@babel/runtime/helpers/esm/using.js index f5593c85..6918b2d3 100644 --- a/node_modules/@babel/runtime/helpers/esm/using.js +++ b/node_modules/@babel/runtime/helpers/esm/using.js @@ -1,12 +1,11 @@ -import _typeof from "./typeof.js"; -export default function _using(o, e, n) { - if (null == e) return e; - if ("object" != _typeof(e)) throw new TypeError("using declarations can only be used with objects, null, or undefined."); - if (n) var r = e[Symbol.asyncDispose || Symbol["for"]("Symbol.asyncDispose")]; - if (null == r && (r = e[Symbol.dispose || Symbol["for"]("Symbol.dispose")]), "function" != typeof r) throw new TypeError("Property [Symbol.dispose] is not a function."); +export default function _using(o, n, e) { + if (null == n) return n; + if (Object(n) !== n) throw new TypeError("using declarations can only be used with objects, functions, null, or undefined."); + if (e) var r = n[Symbol.asyncDispose || Symbol["for"]("Symbol.asyncDispose")]; + if (null == r && (r = n[Symbol.dispose || Symbol["for"]("Symbol.dispose")]), "function" != typeof r) throw new TypeError("Property [Symbol.dispose] is not a function."); return o.push({ - v: e, + v: n, d: r, - a: n - }), e; + a: e + }), n; }
\ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/setFunctionName.js b/node_modules/@babel/runtime/helpers/setFunctionName.js new file mode 100644 index 00000000..9664076a --- /dev/null +++ b/node_modules/@babel/runtime/helpers/setFunctionName.js @@ -0,0 +1,12 @@ +var _typeof = require("./typeof.js")["default"]; +function setFunctionName(e, t, n) { + "symbol" == _typeof(t) && (t = (t = t.description) ? "[" + t + "]" : ""); + try { + Object.defineProperty(e, "name", { + configurable: !0, + value: n ? n + " " + t : t + }); + } catch (e) {} + return e; +} +module.exports = setFunctionName, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toPrimitive.js b/node_modules/@babel/runtime/helpers/toPrimitive.js index adf63bb5..ef9d249b 100644 --- a/node_modules/@babel/runtime/helpers/toPrimitive.js +++ b/node_modules/@babel/runtime/helpers/toPrimitive.js @@ -1,12 +1,12 @@ var _typeof = require("./typeof.js")["default"]; -function _toPrimitive(input, hint) { - if (_typeof(input) !== "object" || input === null) return input; - var prim = input[Symbol.toPrimitive]; - if (prim !== undefined) { - var res = prim.call(input, hint || "default"); - if (_typeof(res) !== "object") return res; +function toPrimitive(t, r) { + if ("object" != _typeof(t) || !t) return t; + var e = t[Symbol.toPrimitive]; + if (void 0 !== e) { + var i = e.call(t, r || "default"); + if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } - return (hint === "string" ? String : Number)(input); + return ("string" === r ? String : Number)(t); } -module.exports = _toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file +module.exports = toPrimitive, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/toPropertyKey.js b/node_modules/@babel/runtime/helpers/toPropertyKey.js index 320bb2b9..ff3983e8 100644 --- a/node_modules/@babel/runtime/helpers/toPropertyKey.js +++ b/node_modules/@babel/runtime/helpers/toPropertyKey.js @@ -1,7 +1,7 @@ var _typeof = require("./typeof.js")["default"]; var toPrimitive = require("./toPrimitive.js"); -function _toPropertyKey(arg) { - var key = toPrimitive(arg, "string"); - return _typeof(key) === "symbol" ? key : String(key); +function toPropertyKey(t) { + var i = toPrimitive(t, "string"); + return "symbol" == _typeof(i) ? i : String(i); } -module.exports = _toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file +module.exports = toPropertyKey, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file diff --git a/node_modules/@babel/runtime/helpers/using.js b/node_modules/@babel/runtime/helpers/using.js index 26225aee..37c79e2c 100644 --- a/node_modules/@babel/runtime/helpers/using.js +++ b/node_modules/@babel/runtime/helpers/using.js @@ -1,13 +1,12 @@ -var _typeof = require("./typeof.js")["default"]; -function _using(o, e, n) { - if (null == e) return e; - if ("object" != _typeof(e)) throw new TypeError("using declarations can only be used with objects, null, or undefined."); - if (n) var r = e[Symbol.asyncDispose || Symbol["for"]("Symbol.asyncDispose")]; - if (null == r && (r = e[Symbol.dispose || Symbol["for"]("Symbol.dispose")]), "function" != typeof r) throw new TypeError("Property [Symbol.dispose] is not a function."); +function _using(o, n, e) { + if (null == n) return n; + if (Object(n) !== n) throw new TypeError("using declarations can only be used with objects, functions, null, or undefined."); + if (e) var r = n[Symbol.asyncDispose || Symbol["for"]("Symbol.asyncDispose")]; + if (null == r && (r = n[Symbol.dispose || Symbol["for"]("Symbol.dispose")]), "function" != typeof r) throw new TypeError("Property [Symbol.dispose] is not a function."); return o.push({ - v: e, + v: n, d: r, - a: n - }), e; + a: e + }), n; } module.exports = _using, module.exports.__esModule = true, module.exports["default"] = module.exports;
\ No newline at end of file diff --git a/node_modules/@babel/runtime/package.json b/node_modules/@babel/runtime/package.json index fd719789..1cd93ae8 100644 --- a/node_modules/@babel/runtime/package.json +++ b/node_modules/@babel/runtime/package.json @@ -1,6 +1,6 @@ { "name": "@babel/runtime", - "version": "7.23.2", + "version": "7.23.6", "description": "babel's modular runtime helpers", "license": "MIT", "publishConfig": { @@ -197,6 +197,33 @@ "./helpers/regeneratorRuntime.js" ], "./helpers/esm/regeneratorRuntime": "./helpers/esm/regeneratorRuntime.js", + "./helpers/setFunctionName": [ + { + "node": "./helpers/setFunctionName.js", + "import": "./helpers/esm/setFunctionName.js", + "default": "./helpers/setFunctionName.js" + }, + "./helpers/setFunctionName.js" + ], + "./helpers/esm/setFunctionName": "./helpers/esm/setFunctionName.js", + "./helpers/toPrimitive": [ + { + "node": "./helpers/toPrimitive.js", + "import": "./helpers/esm/toPrimitive.js", + "default": "./helpers/toPrimitive.js" + }, + "./helpers/toPrimitive.js" + ], + "./helpers/esm/toPrimitive": "./helpers/esm/toPrimitive.js", + "./helpers/toPropertyKey": [ + { + "node": "./helpers/toPropertyKey.js", + "import": "./helpers/esm/toPropertyKey.js", + "default": "./helpers/toPropertyKey.js" + }, + "./helpers/toPropertyKey.js" + ], + "./helpers/esm/toPropertyKey": "./helpers/esm/toPropertyKey.js", "./helpers/typeof": [ { "node": "./helpers/typeof.js", @@ -701,24 +728,6 @@ "./helpers/skipFirstGeneratorNext.js" ], "./helpers/esm/skipFirstGeneratorNext": "./helpers/esm/skipFirstGeneratorNext.js", - "./helpers/toPrimitive": [ - { - "node": "./helpers/toPrimitive.js", - "import": "./helpers/esm/toPrimitive.js", - "default": "./helpers/toPrimitive.js" - }, - "./helpers/toPrimitive.js" - ], - "./helpers/esm/toPrimitive": "./helpers/esm/toPrimitive.js", - "./helpers/toPropertyKey": [ - { - "node": "./helpers/toPropertyKey.js", - "import": "./helpers/esm/toPropertyKey.js", - "default": "./helpers/toPropertyKey.js" - }, - "./helpers/toPropertyKey.js" - ], - "./helpers/esm/toPropertyKey": "./helpers/esm/toPropertyKey.js", "./helpers/initializerWarningHelper": [ { "node": "./helpers/initializerWarningHelper.js", diff --git a/node_modules/@babel/traverse/lib/cache.js b/node_modules/@babel/traverse/lib/cache.js index 0455cfa0..79a41b9c 100644 --- a/node_modules/@babel/traverse/lib/cache.js +++ b/node_modules/@babel/traverse/lib/cache.js @@ -9,10 +9,8 @@ exports.clearScope = clearScope; exports.getCachedPaths = getCachedPaths; exports.getOrCreateCachedPaths = getOrCreateCachedPaths; exports.scope = exports.path = void 0; -let pathsCache = new WeakMap(); -exports.path = pathsCache; -let scope = new WeakMap(); -exports.scope = scope; +let pathsCache = exports.path = new WeakMap(); +let scope = exports.scope = new WeakMap(); function clear() { clearPath(); clearScope(); diff --git a/node_modules/@babel/traverse/lib/cache.js.map b/node_modules/@babel/traverse/lib/cache.js.map index a6fb3e8a..a1af464d 100644 --- a/node_modules/@babel/traverse/lib/cache.js.map +++ b/node_modules/@babel/traverse/lib/cache.js.map @@ -1 +1 @@ -{"version":3,"names":["pathsCache","WeakMap","exports","path","scope","clear","clearPath","clearScope","nullHub","Object","freeze","getCachedPaths","hub","parent","_pathsCache$get","_hub","get","getOrCreateCachedPaths","_hub2","_hub3","parents","set","paths","Map"],"sources":["../src/cache.ts"],"sourcesContent":["import type { Node } from \"@babel/types\";\nimport type NodePath from \"./path/index.ts\";\nimport type Scope from \"./scope/index.ts\";\nimport type { HubInterface } from \"./hub.ts\";\n\nlet pathsCache: WeakMap<\n HubInterface | typeof nullHub,\n WeakMap<Node, Map<Node, NodePath>>\n> = new WeakMap();\nexport { pathsCache as path };\nexport let scope: WeakMap<Node, Scope> = new WeakMap();\n\nexport function clear() {\n clearPath();\n clearScope();\n}\n\nexport function clearPath() {\n pathsCache = new WeakMap();\n}\n\nexport function clearScope() {\n scope = new WeakMap();\n}\n\n// NodePath#hub can be null, but it's not a valid weakmap key because it\n// cannot be collected by GC. Use an object, knowing tht it will not be\n// collected anyway. It's not a memory leak because pathsCache.get(nullHub)\n// is itself a weakmap, so its entries can still be collected.\nconst nullHub = Object.freeze({} as const);\n\nexport function getCachedPaths(hub: HubInterface | null, parent: Node) {\n if (!process.env.BABEL_8_BREAKING) {\n // Only use Hub as part of the cache key in Babel 8, because it is a\n // breaking change (it causes incompatibilities with older `@babel/core`\n // versions: see https://github.com/babel/babel/pull/15759)\n hub = null;\n }\n return pathsCache.get(hub ?? nullHub)?.get(parent);\n}\n\nexport function getOrCreateCachedPaths(hub: HubInterface | null, parent: Node) {\n if (!process.env.BABEL_8_BREAKING) {\n hub = null;\n }\n\n let parents = pathsCache.get(hub ?? nullHub);\n if (!parents) pathsCache.set(hub ?? nullHub, (parents = new WeakMap()));\n\n let paths = parents.get(parent);\n if (!paths) parents.set(parent, (paths = new Map()));\n\n return paths;\n}\n"],"mappings":";;;;;;;;;;;AAKA,IAAIA,UAGH,GAAG,IAAIC,OAAO,CAAC,CAAC;AAACC,OAAA,CAAAC,IAAA,GAAAH,UAAA;AAEX,IAAII,KAA2B,GAAG,IAAIH,OAAO,CAAC,CAAC;AAACC,OAAA,CAAAE,KAAA,GAAAA,KAAA;AAEhD,SAASC,KAAKA,CAAA,EAAG;EACtBC,SAAS,CAAC,CAAC;EACXC,UAAU,CAAC,CAAC;AACd;AAEO,SAASD,SAASA,CAAA,EAAG;EAC1BJ,OAAA,CAAAC,IAAA,GAAAH,UAAU,GAAG,IAAIC,OAAO,CAAC,CAAC;AAC5B;AAEO,SAASM,UAAUA,CAAA,EAAG;EAC3BL,OAAA,CAAAE,KAAA,GAAAA,KAAK,GAAG,IAAIH,OAAO,CAAC,CAAC;AACvB;AAMA,MAAMO,OAAO,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAU,CAAC;AAEnC,SAASC,cAAcA,CAACC,GAAwB,EAAEC,MAAY,EAAE;EAAA,IAAAC,eAAA,EAAAC,IAAA;EAClC;IAIjCH,GAAG,GAAG,IAAI;EACZ;EACA,QAAAE,eAAA,GAAOd,UAAU,CAACgB,GAAG,EAAAD,IAAA,GAACH,GAAG,YAAAG,IAAA,GAAIP,OAAO,CAAC,qBAA9BM,eAAA,CAAgCE,GAAG,CAACH,MAAM,CAAC;AACpD;AAEO,SAASI,sBAAsBA,CAACL,GAAwB,EAAEC,MAAY,EAAE;EAAA,IAAAK,KAAA,EAAAC,KAAA;EAC1C;IACjCP,GAAG,GAAG,IAAI;EACZ;EAEA,IAAIQ,OAAO,GAAGpB,UAAU,CAACgB,GAAG,EAAAE,KAAA,GAACN,GAAG,YAAAM,KAAA,GAAIV,OAAO,CAAC;EAC5C,IAAI,CAACY,OAAO,EAAEpB,UAAU,CAACqB,GAAG,EAAAF,KAAA,GAACP,GAAG,YAAAO,KAAA,GAAIX,OAAO,EAAGY,OAAO,GAAG,IAAInB,OAAO,CAAC,CAAE,CAAC;EAEvE,IAAIqB,KAAK,GAAGF,OAAO,CAACJ,GAAG,CAACH,MAAM,CAAC;EAC/B,IAAI,CAACS,KAAK,EAAEF,OAAO,CAACC,GAAG,CAACR,MAAM,EAAGS,KAAK,GAAG,IAAIC,GAAG,CAAC,CAAE,CAAC;EAEpD,OAAOD,KAAK;AACd"}
\ No newline at end of file +{"version":3,"names":["pathsCache","exports","path","WeakMap","scope","clear","clearPath","clearScope","nullHub","Object","freeze","getCachedPaths","hub","parent","_pathsCache$get","_hub","get","getOrCreateCachedPaths","_hub2","_hub3","parents","set","paths","Map"],"sources":["../src/cache.ts"],"sourcesContent":["import type { Node } from \"@babel/types\";\nimport type NodePath from \"./path/index.ts\";\nimport type Scope from \"./scope/index.ts\";\nimport type { HubInterface } from \"./hub.ts\";\n\nlet pathsCache: WeakMap<\n HubInterface | typeof nullHub,\n WeakMap<Node, Map<Node, NodePath>>\n> = new WeakMap();\nexport { pathsCache as path };\nexport let scope: WeakMap<Node, Scope> = new WeakMap();\n\nexport function clear() {\n clearPath();\n clearScope();\n}\n\nexport function clearPath() {\n pathsCache = new WeakMap();\n}\n\nexport function clearScope() {\n scope = new WeakMap();\n}\n\n// NodePath#hub can be null, but it's not a valid weakmap key because it\n// cannot be collected by GC. Use an object, knowing tht it will not be\n// collected anyway. It's not a memory leak because pathsCache.get(nullHub)\n// is itself a weakmap, so its entries can still be collected.\nconst nullHub = Object.freeze({} as const);\n\nexport function getCachedPaths(hub: HubInterface | null, parent: Node) {\n if (!process.env.BABEL_8_BREAKING) {\n // Only use Hub as part of the cache key in Babel 8, because it is a\n // breaking change (it causes incompatibilities with older `@babel/core`\n // versions: see https://github.com/babel/babel/pull/15759)\n hub = null;\n }\n return pathsCache.get(hub ?? nullHub)?.get(parent);\n}\n\nexport function getOrCreateCachedPaths(hub: HubInterface | null, parent: Node) {\n if (!process.env.BABEL_8_BREAKING) {\n hub = null;\n }\n\n let parents = pathsCache.get(hub ?? nullHub);\n if (!parents) pathsCache.set(hub ?? nullHub, (parents = new WeakMap()));\n\n let paths = parents.get(parent);\n if (!paths) parents.set(parent, (paths = new Map()));\n\n return paths;\n}\n"],"mappings":";;;;;;;;;;;AAKA,IAAIA,UAGH,GAAAC,OAAA,CAAAC,IAAA,GAAG,IAAIC,OAAO,CAAC,CAAC;AAEV,IAAIC,KAA2B,GAAAH,OAAA,CAAAG,KAAA,GAAG,IAAID,OAAO,CAAC,CAAC;AAE/C,SAASE,KAAKA,CAAA,EAAG;EACtBC,SAAS,CAAC,CAAC;EACXC,UAAU,CAAC,CAAC;AACd;AAEO,SAASD,SAASA,CAAA,EAAG;EAC1BL,OAAA,CAAAC,IAAA,GAAAF,UAAU,GAAG,IAAIG,OAAO,CAAC,CAAC;AAC5B;AAEO,SAASI,UAAUA,CAAA,EAAG;EAC3BN,OAAA,CAAAG,KAAA,GAAAA,KAAK,GAAG,IAAID,OAAO,CAAC,CAAC;AACvB;AAMA,MAAMK,OAAO,GAAGC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAU,CAAC;AAEnC,SAASC,cAAcA,CAACC,GAAwB,EAAEC,MAAY,EAAE;EAAA,IAAAC,eAAA,EAAAC,IAAA;EAClC;IAIjCH,GAAG,GAAG,IAAI;EACZ;EACA,QAAAE,eAAA,GAAOd,UAAU,CAACgB,GAAG,EAAAD,IAAA,GAACH,GAAG,YAAAG,IAAA,GAAIP,OAAO,CAAC,qBAA9BM,eAAA,CAAgCE,GAAG,CAACH,MAAM,CAAC;AACpD;AAEO,SAASI,sBAAsBA,CAACL,GAAwB,EAAEC,MAAY,EAAE;EAAA,IAAAK,KAAA,EAAAC,KAAA;EAC1C;IACjCP,GAAG,GAAG,IAAI;EACZ;EAEA,IAAIQ,OAAO,GAAGpB,UAAU,CAACgB,GAAG,EAAAE,KAAA,GAACN,GAAG,YAAAM,KAAA,GAAIV,OAAO,CAAC;EAC5C,IAAI,CAACY,OAAO,EAAEpB,UAAU,CAACqB,GAAG,EAAAF,KAAA,GAACP,GAAG,YAAAO,KAAA,GAAIX,OAAO,EAAGY,OAAO,GAAG,IAAIjB,OAAO,CAAC,CAAE,CAAC;EAEvE,IAAImB,KAAK,GAAGF,OAAO,CAACJ,GAAG,CAACH,MAAM,CAAC;EAC/B,IAAI,CAACS,KAAK,EAAEF,OAAO,CAACC,GAAG,CAACR,MAAM,EAAGS,KAAK,GAAG,IAAIC,GAAG,CAAC,CAAE,CAAC;EAEpD,OAAOD,KAAK;AACd"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/index.js b/node_modules/@babel/traverse/lib/index.js index 38255007..566296c0 100644 --- a/node_modules/@babel/traverse/lib/index.js +++ b/node_modules/@babel/traverse/lib/index.js @@ -51,8 +51,7 @@ function traverse(parent, opts = {}, scope, state, parentPath, visitSelf) { visitors.explode(opts); (0, _traverseNode.traverseNode)(parent, opts, scope, state, parentPath, null, visitSelf); } -var _default = traverse; -exports.default = _default; +var _default = exports.default = traverse; traverse.visitors = visitors; traverse.verify = visitors.verify; traverse.explode = visitors.explode; diff --git a/node_modules/@babel/traverse/lib/index.js.map b/node_modules/@babel/traverse/lib/index.js.map index 7817a535..230a8348 100644 --- a/node_modules/@babel/traverse/lib/index.js.map +++ b/node_modules/@babel/traverse/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["visitors","require","exports","_t","cache","_traverseNode","_index","_index2","_hub","VISITOR_KEYS","removeProperties","traverseFast","traverse","parent","opts","scope","state","parentPath","visitSelf","noScope","type","Error","explode","traverseNode","_default","default","verify","cheap","node","enter","path","skipKeys","clearNode","tree","hasDenylistedType","has","stop","hasType","denylistTypes","includes","denylist"],"sources":["../src/index.ts"],"sourcesContent":["import * as visitors from \"./visitors.ts\";\nimport {\n VISITOR_KEYS,\n removeProperties,\n type RemovePropertiesOptions,\n traverseFast,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as cache from \"./cache.ts\";\nimport type NodePath from \"./path/index.ts\";\nimport type { default as Scope, Binding } from \"./scope/index.ts\";\nimport type { ExplodedVisitor, Visitor } from \"./types.ts\";\nimport { traverseNode } from \"./traverse-node.ts\";\n\nexport type { ExplodedVisitor, Visitor, Binding };\nexport { default as NodePath } from \"./path/index.ts\";\nexport { default as Scope } from \"./scope/index.ts\";\nexport { default as Hub } from \"./hub.ts\";\nexport type { HubInterface } from \"./hub.ts\";\n\nexport { visitors };\n\nexport type TraverseOptions<S = t.Node> = {\n scope?: Scope;\n noScope?: boolean;\n denylist?: string[];\n shouldSkip?: (node: NodePath) => boolean;\n} & Visitor<S>;\n\nexport type ExplodedTraverseOptions<S = t.Node> = TraverseOptions<S> &\n ExplodedVisitor<S>;\n\nfunction traverse<S>(\n parent: t.Node,\n opts: TraverseOptions<S>,\n scope: Scope | undefined,\n state: S,\n parentPath?: NodePath,\n visitSelf?: boolean,\n): void;\n\nfunction traverse(\n parent: t.Node,\n opts: TraverseOptions,\n scope?: Scope,\n state?: any,\n parentPath?: NodePath,\n visitSelf?: boolean,\n): void;\n\nfunction traverse<Options extends TraverseOptions>(\n parent: t.Node,\n // @ts-expect-error provide {} as default value for Options\n opts: Options = {},\n scope?: Scope,\n state?: any,\n parentPath?: NodePath,\n visitSelf?: boolean,\n) {\n if (!parent) return;\n\n if (!opts.noScope && !scope) {\n if (parent.type !== \"Program\" && parent.type !== \"File\") {\n throw new Error(\n \"You must pass a scope and parentPath unless traversing a Program/File. \" +\n `Instead of that you tried to traverse a ${parent.type} node without ` +\n \"passing scope and parentPath.\",\n );\n }\n }\n\n if (!parentPath && visitSelf) {\n throw new Error(\"visitSelf can only be used when providing a NodePath.\");\n }\n\n if (!VISITOR_KEYS[parent.type]) {\n return;\n }\n\n visitors.explode(opts as Visitor);\n\n traverseNode(\n parent,\n opts as ExplodedVisitor,\n scope,\n state,\n parentPath,\n /* skipKeys */ null,\n visitSelf,\n );\n}\n\nexport default traverse;\n\ntraverse.visitors = visitors;\ntraverse.verify = visitors.verify;\ntraverse.explode = visitors.explode;\n\ntraverse.cheap = function (node: t.Node, enter: (node: t.Node) => void) {\n traverseFast(node, enter);\n return;\n};\n\ntraverse.node = function (\n node: t.Node,\n opts: ExplodedTraverseOptions,\n scope?: Scope,\n state?: any,\n path?: NodePath,\n skipKeys?: Record<string, boolean>,\n) {\n traverseNode(node, opts, scope, state, path, skipKeys);\n // traverse.node always returns undefined\n};\n\ntraverse.clearNode = function (node: t.Node, opts?: RemovePropertiesOptions) {\n removeProperties(node, opts);\n};\n\ntraverse.removeProperties = function (\n tree: t.Node,\n opts?: RemovePropertiesOptions,\n) {\n traverseFast(tree, traverse.clearNode, opts);\n return tree;\n};\n\ntype HasDenylistedTypeState = {\n has: boolean;\n type: t.Node[\"type\"];\n};\nfunction hasDenylistedType(path: NodePath, state: HasDenylistedTypeState) {\n if (path.node.type === state.type) {\n state.has = true;\n path.stop();\n }\n}\n\ntraverse.hasType = function (\n tree: t.Node,\n type: t.Node[\"type\"],\n denylistTypes?: Array<string>,\n): boolean {\n // the node we're searching in is denylisted\n if (denylistTypes?.includes(tree.type)) return false;\n\n // the type we're looking for is the same as the passed node\n if (tree.type === type) return true;\n\n const state: HasDenylistedTypeState = {\n has: false,\n type: type,\n };\n\n traverse(\n tree,\n {\n noScope: true,\n denylist: denylistTypes,\n enter: hasDenylistedType,\n },\n null,\n state,\n );\n\n return state.has;\n};\n\ntraverse.cache = cache;\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["visitors","require","exports","_t","cache","_traverseNode","_index","_index2","_hub","VISITOR_KEYS","removeProperties","traverseFast","traverse","parent","opts","scope","state","parentPath","visitSelf","noScope","type","Error","explode","traverseNode","_default","default","verify","cheap","node","enter","path","skipKeys","clearNode","tree","hasDenylistedType","has","stop","hasType","denylistTypes","includes","denylist"],"sources":["../src/index.ts"],"sourcesContent":["import * as visitors from \"./visitors.ts\";\nimport {\n VISITOR_KEYS,\n removeProperties,\n type RemovePropertiesOptions,\n traverseFast,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as cache from \"./cache.ts\";\nimport type NodePath from \"./path/index.ts\";\nimport type { default as Scope, Binding } from \"./scope/index.ts\";\nimport type { ExplodedVisitor, Visitor } from \"./types.ts\";\nimport { traverseNode } from \"./traverse-node.ts\";\n\nexport type { ExplodedVisitor, Visitor, Binding };\nexport { default as NodePath } from \"./path/index.ts\";\nexport { default as Scope } from \"./scope/index.ts\";\nexport { default as Hub } from \"./hub.ts\";\nexport type { HubInterface } from \"./hub.ts\";\n\nexport { visitors };\n\nexport type TraverseOptions<S = t.Node> = {\n scope?: Scope;\n noScope?: boolean;\n denylist?: string[];\n shouldSkip?: (node: NodePath) => boolean;\n} & Visitor<S>;\n\nexport type ExplodedTraverseOptions<S = t.Node> = TraverseOptions<S> &\n ExplodedVisitor<S>;\n\nfunction traverse<S>(\n parent: t.Node,\n opts: TraverseOptions<S>,\n scope: Scope | undefined,\n state: S,\n parentPath?: NodePath,\n visitSelf?: boolean,\n): void;\n\nfunction traverse(\n parent: t.Node,\n opts: TraverseOptions,\n scope?: Scope,\n state?: any,\n parentPath?: NodePath,\n visitSelf?: boolean,\n): void;\n\nfunction traverse<Options extends TraverseOptions>(\n parent: t.Node,\n // @ts-expect-error provide {} as default value for Options\n opts: Options = {},\n scope?: Scope,\n state?: any,\n parentPath?: NodePath,\n visitSelf?: boolean,\n) {\n if (!parent) return;\n\n if (!opts.noScope && !scope) {\n if (parent.type !== \"Program\" && parent.type !== \"File\") {\n throw new Error(\n \"You must pass a scope and parentPath unless traversing a Program/File. \" +\n `Instead of that you tried to traverse a ${parent.type} node without ` +\n \"passing scope and parentPath.\",\n );\n }\n }\n\n if (!parentPath && visitSelf) {\n throw new Error(\"visitSelf can only be used when providing a NodePath.\");\n }\n\n if (!VISITOR_KEYS[parent.type]) {\n return;\n }\n\n visitors.explode(opts as Visitor);\n\n traverseNode(\n parent,\n opts as ExplodedVisitor,\n scope,\n state,\n parentPath,\n /* skipKeys */ null,\n visitSelf,\n );\n}\n\nexport default traverse;\n\ntraverse.visitors = visitors;\ntraverse.verify = visitors.verify;\ntraverse.explode = visitors.explode;\n\ntraverse.cheap = function (node: t.Node, enter: (node: t.Node) => void) {\n traverseFast(node, enter);\n return;\n};\n\ntraverse.node = function (\n node: t.Node,\n opts: ExplodedTraverseOptions,\n scope?: Scope,\n state?: any,\n path?: NodePath,\n skipKeys?: Record<string, boolean>,\n) {\n traverseNode(node, opts, scope, state, path, skipKeys);\n // traverse.node always returns undefined\n};\n\ntraverse.clearNode = function (node: t.Node, opts?: RemovePropertiesOptions) {\n removeProperties(node, opts);\n};\n\ntraverse.removeProperties = function (\n tree: t.Node,\n opts?: RemovePropertiesOptions,\n) {\n traverseFast(tree, traverse.clearNode, opts);\n return tree;\n};\n\ntype HasDenylistedTypeState = {\n has: boolean;\n type: t.Node[\"type\"];\n};\nfunction hasDenylistedType(path: NodePath, state: HasDenylistedTypeState) {\n if (path.node.type === state.type) {\n state.has = true;\n path.stop();\n }\n}\n\ntraverse.hasType = function (\n tree: t.Node,\n type: t.Node[\"type\"],\n denylistTypes?: Array<string>,\n): boolean {\n // the node we're searching in is denylisted\n if (denylistTypes?.includes(tree.type)) return false;\n\n // the type we're looking for is the same as the passed node\n if (tree.type === type) return true;\n\n const state: HasDenylistedTypeState = {\n has: false,\n type: type,\n };\n\n traverse(\n tree,\n {\n noScope: true,\n denylist: denylistTypes,\n enter: hasDenylistedType,\n },\n null,\n state,\n );\n\n return state.has;\n};\n\ntraverse.cache = cache;\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/comments.js b/node_modules/@babel/traverse/lib/path/comments.js index 0a4eed6f..43b3b72a 100644 --- a/node_modules/@babel/traverse/lib/path/comments.js +++ b/node_modules/@babel/traverse/lib/path/comments.js @@ -36,12 +36,10 @@ function shareCommentsWithSiblings() { } } function removeIfExisting(list, toRemove) { - if (!toRemove) return list; - let lastFoundIndex = -1; + if (!(toRemove != null && toRemove.length)) return list; + const set = new Set(toRemove); return list.filter(el => { - const i = toRemove.indexOf(el, lastFoundIndex); - if (i === -1) return true; - lastFoundIndex = i; + return !set.has(el); }); } function addComment(type, content, line) { diff --git a/node_modules/@babel/traverse/lib/path/comments.js.map b/node_modules/@babel/traverse/lib/path/comments.js.map index 30ca9070..3a545bba 100644 --- a/node_modules/@babel/traverse/lib/path/comments.js.map +++ b/node_modules/@babel/traverse/lib/path/comments.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","addComment","_addComment","addComments","_addComments","shareCommentsWithSiblings","key","node","trailing","trailingComments","leading","leadingComments","prev","getSibling","next","hasPrev","Boolean","hasNext","removeIfExisting","list","toRemove","lastFoundIndex","filter","el","i","indexOf","type","content","line","comments"],"sources":["../../src/path/comments.ts"],"sourcesContent":["// This file contains methods responsible for dealing with comments.\nimport type * as t from \"@babel/types\";\nimport type NodePath from \"./index.ts\";\nimport {\n addComment as _addComment,\n addComments as _addComments,\n} from \"@babel/types\";\n\n/**\n * Share comments amongst siblings.\n */\n\nexport function shareCommentsWithSiblings(this: NodePath) {\n // NOTE: this assumes numbered keys\n if (typeof this.key === \"string\") return;\n\n const node = this.node;\n if (!node) return;\n\n const trailing = node.trailingComments;\n const leading = node.leadingComments;\n if (!trailing && !leading) return;\n\n const prev = this.getSibling(this.key - 1);\n const next = this.getSibling(this.key + 1);\n const hasPrev = Boolean(prev.node);\n const hasNext = Boolean(next.node);\n\n if (hasPrev) {\n if (leading) {\n prev.addComments(\n \"trailing\",\n removeIfExisting(leading, prev.node.trailingComments),\n );\n }\n if (trailing && !hasNext) prev.addComments(\"trailing\", trailing);\n }\n if (hasNext) {\n if (trailing) {\n next.addComments(\n \"leading\",\n removeIfExisting(trailing, next.node.leadingComments),\n );\n }\n if (leading && !hasPrev) next.addComments(\"leading\", leading);\n }\n}\n\nfunction removeIfExisting<T>(list: T[], toRemove?: T[]): T[] {\n if (!toRemove) return list;\n let lastFoundIndex = -1;\n return list.filter(el => {\n const i = toRemove.indexOf(el, lastFoundIndex);\n if (i === -1) return true;\n lastFoundIndex = i;\n });\n}\n\nexport function addComment(\n this: NodePath,\n type: t.CommentTypeShorthand,\n content: string,\n line?: boolean,\n) {\n _addComment(this.node, type, content, line);\n}\n\n/**\n * Give node `comments` of the specified `type`.\n */\n\nexport function addComments(\n this: NodePath,\n type: t.CommentTypeShorthand,\n comments: t.Comment[],\n) {\n _addComments(this.node, type, comments);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,EAAA,GAAAC,OAAA;AAGsB;EAFpBC,UAAU,EAAIC,WAAW;EACzBC,WAAW,EAAIC;AAAY,IAAAL,EAAA;AAOtB,SAASM,yBAAyBA,CAAA,EAAiB;EAExD,IAAI,OAAO,IAAI,CAACC,GAAG,KAAK,QAAQ,EAAE;EAElC,MAAMC,IAAI,GAAG,IAAI,CAACA,IAAI;EACtB,IAAI,CAACA,IAAI,EAAE;EAEX,MAAMC,QAAQ,GAAGD,IAAI,CAACE,gBAAgB;EACtC,MAAMC,OAAO,GAAGH,IAAI,CAACI,eAAe;EACpC,IAAI,CAACH,QAAQ,IAAI,CAACE,OAAO,EAAE;EAE3B,MAAME,IAAI,GAAG,IAAI,CAACC,UAAU,CAAC,IAAI,CAACP,GAAG,GAAG,CAAC,CAAC;EAC1C,MAAMQ,IAAI,GAAG,IAAI,CAACD,UAAU,CAAC,IAAI,CAACP,GAAG,GAAG,CAAC,CAAC;EAC1C,MAAMS,OAAO,GAAGC,OAAO,CAACJ,IAAI,CAACL,IAAI,CAAC;EAClC,MAAMU,OAAO,GAAGD,OAAO,CAACF,IAAI,CAACP,IAAI,CAAC;EAElC,IAAIQ,OAAO,EAAE;IACX,IAAIL,OAAO,EAAE;MACXE,IAAI,CAACT,WAAW,CACd,UAAU,EACVe,gBAAgB,CAACR,OAAO,EAAEE,IAAI,CAACL,IAAI,CAACE,gBAAgB,CACtD,CAAC;IACH;IACA,IAAID,QAAQ,IAAI,CAACS,OAAO,EAAEL,IAAI,CAACT,WAAW,CAAC,UAAU,EAAEK,QAAQ,CAAC;EAClE;EACA,IAAIS,OAAO,EAAE;IACX,IAAIT,QAAQ,EAAE;MACZM,IAAI,CAACX,WAAW,CACd,SAAS,EACTe,gBAAgB,CAACV,QAAQ,EAAEM,IAAI,CAACP,IAAI,CAACI,eAAe,CACtD,CAAC;IACH;IACA,IAAID,OAAO,IAAI,CAACK,OAAO,EAAED,IAAI,CAACX,WAAW,CAAC,SAAS,EAAEO,OAAO,CAAC;EAC/D;AACF;AAEA,SAASQ,gBAAgBA,CAAIC,IAAS,EAAEC,QAAc,EAAO;EAC3D,IAAI,CAACA,QAAQ,EAAE,OAAOD,IAAI;EAC1B,IAAIE,cAAc,GAAG,CAAC,CAAC;EACvB,OAAOF,IAAI,CAACG,MAAM,CAACC,EAAE,IAAI;IACvB,MAAMC,CAAC,GAAGJ,QAAQ,CAACK,OAAO,CAACF,EAAE,EAAEF,cAAc,CAAC;IAC9C,IAAIG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI;IACzBH,cAAc,GAAGG,CAAC;EACpB,CAAC,CAAC;AACJ;AAEO,SAASvB,UAAUA,CAExByB,IAA4B,EAC5BC,OAAe,EACfC,IAAc,EACd;EACA1B,WAAW,CAAC,IAAI,CAACK,IAAI,EAAEmB,IAAI,EAAEC,OAAO,EAAEC,IAAI,CAAC;AAC7C;AAMO,SAASzB,WAAWA,CAEzBuB,IAA4B,EAC5BG,QAAqB,EACrB;EACAzB,YAAY,CAAC,IAAI,CAACG,IAAI,EAAEmB,IAAI,EAAEG,QAAQ,CAAC;AACzC"}
\ No newline at end of file +{"version":3,"names":["_t","require","addComment","_addComment","addComments","_addComments","shareCommentsWithSiblings","key","node","trailing","trailingComments","leading","leadingComments","prev","getSibling","next","hasPrev","Boolean","hasNext","removeIfExisting","list","toRemove","length","set","Set","filter","el","has","type","content","line","comments"],"sources":["../../src/path/comments.ts"],"sourcesContent":["// This file contains methods responsible for dealing with comments.\nimport type * as t from \"@babel/types\";\nimport type NodePath from \"./index.ts\";\nimport {\n addComment as _addComment,\n addComments as _addComments,\n} from \"@babel/types\";\n\n/**\n * Share comments amongst siblings.\n */\n\nexport function shareCommentsWithSiblings(this: NodePath) {\n // NOTE: this assumes numbered keys\n if (typeof this.key === \"string\") return;\n\n const node = this.node;\n if (!node) return;\n\n const trailing = node.trailingComments;\n const leading = node.leadingComments;\n if (!trailing && !leading) return;\n\n const prev = this.getSibling(this.key - 1);\n const next = this.getSibling(this.key + 1);\n const hasPrev = Boolean(prev.node);\n const hasNext = Boolean(next.node);\n\n if (hasPrev) {\n if (leading) {\n prev.addComments(\n \"trailing\",\n removeIfExisting(leading, prev.node.trailingComments),\n );\n }\n if (trailing && !hasNext) prev.addComments(\"trailing\", trailing);\n }\n if (hasNext) {\n if (trailing) {\n next.addComments(\n \"leading\",\n removeIfExisting(trailing, next.node.leadingComments),\n );\n }\n if (leading && !hasPrev) next.addComments(\"leading\", leading);\n }\n}\n\nfunction removeIfExisting<T>(list: T[], toRemove?: T[]): T[] {\n if (!toRemove?.length) return list;\n const set = new Set(toRemove);\n return list.filter(el => {\n return !set.has(el);\n });\n}\n\nexport function addComment(\n this: NodePath,\n type: t.CommentTypeShorthand,\n content: string,\n line?: boolean,\n) {\n _addComment(this.node, type, content, line);\n}\n\n/**\n * Give node `comments` of the specified `type`.\n */\n\nexport function addComments(\n this: NodePath,\n type: t.CommentTypeShorthand,\n comments: t.Comment[],\n) {\n _addComments(this.node, type, comments);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,EAAA,GAAAC,OAAA;AAGsB;EAFpBC,UAAU,EAAIC,WAAW;EACzBC,WAAW,EAAIC;AAAY,IAAAL,EAAA;AAOtB,SAASM,yBAAyBA,CAAA,EAAiB;EAExD,IAAI,OAAO,IAAI,CAACC,GAAG,KAAK,QAAQ,EAAE;EAElC,MAAMC,IAAI,GAAG,IAAI,CAACA,IAAI;EACtB,IAAI,CAACA,IAAI,EAAE;EAEX,MAAMC,QAAQ,GAAGD,IAAI,CAACE,gBAAgB;EACtC,MAAMC,OAAO,GAAGH,IAAI,CAACI,eAAe;EACpC,IAAI,CAACH,QAAQ,IAAI,CAACE,OAAO,EAAE;EAE3B,MAAME,IAAI,GAAG,IAAI,CAACC,UAAU,CAAC,IAAI,CAACP,GAAG,GAAG,CAAC,CAAC;EAC1C,MAAMQ,IAAI,GAAG,IAAI,CAACD,UAAU,CAAC,IAAI,CAACP,GAAG,GAAG,CAAC,CAAC;EAC1C,MAAMS,OAAO,GAAGC,OAAO,CAACJ,IAAI,CAACL,IAAI,CAAC;EAClC,MAAMU,OAAO,GAAGD,OAAO,CAACF,IAAI,CAACP,IAAI,CAAC;EAElC,IAAIQ,OAAO,EAAE;IACX,IAAIL,OAAO,EAAE;MACXE,IAAI,CAACT,WAAW,CACd,UAAU,EACVe,gBAAgB,CAACR,OAAO,EAAEE,IAAI,CAACL,IAAI,CAACE,gBAAgB,CACtD,CAAC;IACH;IACA,IAAID,QAAQ,IAAI,CAACS,OAAO,EAAEL,IAAI,CAACT,WAAW,CAAC,UAAU,EAAEK,QAAQ,CAAC;EAClE;EACA,IAAIS,OAAO,EAAE;IACX,IAAIT,QAAQ,EAAE;MACZM,IAAI,CAACX,WAAW,CACd,SAAS,EACTe,gBAAgB,CAACV,QAAQ,EAAEM,IAAI,CAACP,IAAI,CAACI,eAAe,CACtD,CAAC;IACH;IACA,IAAID,OAAO,IAAI,CAACK,OAAO,EAAED,IAAI,CAACX,WAAW,CAAC,SAAS,EAAEO,OAAO,CAAC;EAC/D;AACF;AAEA,SAASQ,gBAAgBA,CAAIC,IAAS,EAAEC,QAAc,EAAO;EAC3D,IAAI,EAACA,QAAQ,YAARA,QAAQ,CAAEC,MAAM,GAAE,OAAOF,IAAI;EAClC,MAAMG,GAAG,GAAG,IAAIC,GAAG,CAACH,QAAQ,CAAC;EAC7B,OAAOD,IAAI,CAACK,MAAM,CAACC,EAAE,IAAI;IACvB,OAAO,CAACH,GAAG,CAACI,GAAG,CAACD,EAAE,CAAC;EACrB,CAAC,CAAC;AACJ;AAEO,SAASxB,UAAUA,CAExB0B,IAA4B,EAC5BC,OAAe,EACfC,IAAc,EACd;EACA3B,WAAW,CAAC,IAAI,CAACK,IAAI,EAAEoB,IAAI,EAAEC,OAAO,EAAEC,IAAI,CAAC;AAC7C;AAMO,SAAS1B,WAAWA,CAEzBwB,IAA4B,EAC5BG,QAAqB,EACrB;EACA1B,YAAY,CAAC,IAAI,CAACG,IAAI,EAAEoB,IAAI,EAAEG,QAAQ,CAAC;AACzC"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/context.js b/node_modules/@babel/traverse/lib/path/context.js index e197836c..7b52a658 100644 --- a/node_modules/@babel/traverse/lib/path/context.js +++ b/node_modules/@babel/traverse/lib/path/context.js @@ -117,7 +117,7 @@ function setScope() { path = path.parentPath; } this.scope = this.getScope(target); - (_this$scope = this.scope) == null ? void 0 : _this$scope.init(); + (_this$scope = this.scope) == null || _this$scope.init(); } function setContext(context) { if (this.skipKeys != null) { diff --git a/node_modules/@babel/traverse/lib/path/context.js.map b/node_modules/@babel/traverse/lib/path/context.js.map index db932755..b9edf5f0 100644 --- a/node_modules/@babel/traverse/lib/path/context.js.map +++ b/node_modules/@babel/traverse/lib/path/context.js.map @@ -1 +1 @@ -{"version":3,"names":["_traverseNode","require","_index","call","key","opts","debug","node","_call","_opts$this$node$type","type","fns","fn","ret","state","then","Error","_traverseFlags","isDenylisted","_this$opts$denylist","denylist","blacklist","indexOf","restoreContext","path","context","visit","_this$opts$shouldSkip","_this$opts","shouldSkip","currentContext","shouldStop","traverseNode","scope","skipKeys","skip","skipKey","stop","SHOULD_SKIP","SHOULD_STOP","setScope","_this$opts2","_this$scope","noScope","parentPath","listKey","isMethod","isSwitchStatement","target","_path$opts","getScope","init","setContext","resync","removed","_resyncParent","_resyncList","_resyncKey","parent","container","Array","isArray","i","length","setKey","Object","keys","inList","newContainer","_resyncRemoved","_markRemoved","popContext","contexts","pop","undefined","pushContext","push","setup","_this$node","requeue","pathToQueue","maybeQueue","_getQueueContexts"],"sources":["../../src/path/context.ts"],"sourcesContent":["// This file contains methods responsible for maintaining a TraversalContext.\n\nimport { traverseNode } from \"../traverse-node.ts\";\nimport { SHOULD_SKIP, SHOULD_STOP } from \"./index.ts\";\nimport type TraversalContext from \"../context.ts\";\nimport type { VisitPhase } from \"../types.ts\";\nimport type NodePath from \"./index.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function call(this: NodePath, key: VisitPhase): boolean {\n const opts = this.opts;\n\n this.debug(key);\n\n if (this.node) {\n if (this._call(opts[key])) return true;\n }\n\n if (this.node) {\n return this._call(opts[this.node.type]?.[key]);\n }\n\n return false;\n}\n\nexport function _call(this: NodePath, fns?: Array<Function>): boolean {\n if (!fns) return false;\n\n for (const fn of fns) {\n if (!fn) continue;\n\n const node = this.node;\n if (!node) return true;\n\n const ret = fn.call(this.state, this, this.state);\n if (ret && typeof ret === \"object\" && typeof ret.then === \"function\") {\n throw new Error(\n `You appear to be using a plugin with an async traversal visitor, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n if (ret) {\n throw new Error(`Unexpected return value from visitor method ${fn}`);\n }\n\n // node has been replaced, it will have been requeued\n if (this.node !== node) return true;\n\n // this.shouldSkip || this.shouldStop || this.removed\n if (this._traverseFlags > 0) return true;\n }\n\n return false;\n}\n\nexport function isDenylisted(this: NodePath): boolean {\n // @ts-expect-error TODO(Babel 8): Remove blacklist\n const denylist = this.opts.denylist ?? this.opts.blacklist;\n return denylist && denylist.indexOf(this.node.type) > -1;\n}\n\n// TODO: Remove in Babel 8\nexport { isDenylisted as isBlacklisted };\n\nfunction restoreContext(path: NodePath, context: TraversalContext) {\n if (path.context !== context) {\n path.context = context;\n path.state = context.state;\n path.opts = context.opts;\n }\n}\n\nexport function visit(this: NodePath): boolean {\n if (!this.node) {\n return false;\n }\n\n if (this.isDenylisted()) {\n return false;\n }\n\n if (this.opts.shouldSkip?.(this)) {\n return false;\n }\n\n const currentContext = this.context;\n // Note: We need to check \"this.shouldSkip\" first because\n // another visitor can set it to true. Usually .shouldSkip is false\n // before calling the enter visitor, but it can be true in case of\n // a requeued node (e.g. by .replaceWith()) that is then marked\n // with .skip().\n if (this.shouldSkip || this.call(\"enter\")) {\n this.debug(\"Skip...\");\n return this.shouldStop;\n }\n restoreContext(this, currentContext);\n\n this.debug(\"Recursing into...\");\n this.shouldStop = traverseNode(\n this.node,\n this.opts,\n this.scope,\n this.state,\n this,\n this.skipKeys,\n );\n\n restoreContext(this, currentContext);\n\n this.call(\"exit\");\n\n return this.shouldStop;\n}\n\nexport function skip(this: NodePath) {\n this.shouldSkip = true;\n}\n\nexport function skipKey(this: NodePath, key: string) {\n if (this.skipKeys == null) {\n this.skipKeys = {};\n }\n this.skipKeys[key] = true;\n}\n\nexport function stop(this: NodePath) {\n // this.shouldSkip = true; this.shouldStop = true;\n this._traverseFlags |= SHOULD_SKIP | SHOULD_STOP;\n}\n\nexport function setScope(this: NodePath) {\n if (this.opts?.noScope) return;\n\n let path = this.parentPath;\n\n if (\n // Skip method scope if is computed method key or decorator expression\n ((this.key === \"key\" || this.listKey === \"decorators\") &&\n path.isMethod()) ||\n // Skip switch scope if for discriminant (`x` in `switch (x) {}`).\n (this.key === \"discriminant\" && path.isSwitchStatement())\n ) {\n path = path.parentPath;\n }\n\n let target;\n while (path && !target) {\n if (path.opts?.noScope) return;\n\n target = path.scope;\n path = path.parentPath;\n }\n\n this.scope = this.getScope(target);\n this.scope?.init();\n}\n\nexport function setContext<S = unknown>(\n this: NodePath,\n context?: TraversalContext<S>,\n) {\n if (this.skipKeys != null) {\n this.skipKeys = {};\n }\n // this.shouldSkip = false; this.shouldStop = false; this.removed = false;\n this._traverseFlags = 0;\n\n if (context) {\n this.context = context;\n this.state = context.state;\n // Discard the S type parameter from context.opts\n this.opts = context.opts as typeof this.opts;\n }\n\n this.setScope();\n\n return this;\n}\n\n/**\n * Here we resync the node paths `key` and `container`. If they've changed according\n * to what we have stored internally then we attempt to resync by crawling and looking\n * for the new values.\n */\n\nexport function resync(this: NodePath) {\n if (this.removed) return;\n\n this._resyncParent();\n this._resyncList();\n this._resyncKey();\n //this._resyncRemoved();\n}\n\nexport function _resyncParent(this: NodePath) {\n if (this.parentPath) {\n this.parent = this.parentPath.node;\n }\n}\n\nexport function _resyncKey(this: NodePath) {\n if (!this.container) return;\n\n if (\n this.node ===\n // @ts-expect-error this.key should present in this.container\n this.container[this.key]\n ) {\n return;\n }\n\n // grrr, path key is out of sync. this is likely due to a modification to the AST\n // not done through our path APIs\n\n if (Array.isArray(this.container)) {\n for (let i = 0; i < this.container.length; i++) {\n if (this.container[i] === this.node) {\n this.setKey(i);\n return;\n }\n }\n } else {\n for (const key of Object.keys(this.container)) {\n // @ts-expect-error this.key should present in this.container\n if (this.container[key] === this.node) {\n this.setKey(key);\n return;\n }\n }\n }\n\n // ¯\\_(ツ)_/¯ who knows where it's gone lol\n this.key = null;\n}\n\nexport function _resyncList(this: NodePath) {\n if (!this.parent || !this.inList) return;\n\n const newContainer =\n // @ts-expect-error this.listKey should present in this.parent\n this.parent[this.listKey];\n if (this.container === newContainer) return;\n\n // container is out of sync. this is likely the result of it being reassigned\n this.container = newContainer || null;\n}\n\nexport function _resyncRemoved(this: NodePath) {\n if (\n this.key == null ||\n !this.container ||\n // @ts-expect-error this.key should present in this.container\n this.container[this.key] !== this.node\n ) {\n this._markRemoved();\n }\n}\n\nexport function popContext(this: NodePath) {\n this.contexts.pop();\n if (this.contexts.length > 0) {\n this.setContext(this.contexts[this.contexts.length - 1]);\n } else {\n this.setContext(undefined);\n }\n}\n\nexport function pushContext(this: NodePath, context: TraversalContext) {\n this.contexts.push(context);\n this.setContext(context);\n}\n\nexport function setup(\n this: NodePath,\n parentPath: NodePath | undefined,\n container: t.Node | t.Node[],\n listKey: string,\n key: string | number,\n) {\n this.listKey = listKey;\n this.container = container;\n\n this.parentPath = parentPath || this.parentPath;\n this.setKey(key);\n}\n\nexport function setKey(this: NodePath, key: string | number) {\n this.key = key;\n this.node =\n // @ts-expect-error this.key must present in this.container\n this.container[this.key];\n this.type = this.node?.type;\n}\n\nexport function requeue(this: NodePath, pathToQueue = this) {\n if (pathToQueue.removed) return;\n\n // If a path is skipped, and then replaced with a\n // new one, the new one shouldn't probably be skipped.\n if (process.env.BABEL_8_BREAKING) {\n pathToQueue.shouldSkip = false;\n }\n\n // TODO(loganfsmyth): This should be switched back to queue in parent contexts\n // automatically once #2892 and #4135 have been resolved. See #4140.\n // let contexts = this._getQueueContexts();\n const contexts = this.contexts;\n\n for (const context of contexts) {\n context.maybeQueue(pathToQueue);\n }\n}\n\nexport function _getQueueContexts(this: NodePath) {\n let path = this;\n let contexts = this.contexts;\n while (!contexts.length) {\n path = path.parentPath;\n if (!path) break;\n contexts = path.contexts;\n }\n return contexts;\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_traverseNode","require","_index","call","key","opts","debug","node","_call","_opts$this$node$type","type","fns","fn","ret","state","then","Error","_traverseFlags","isDenylisted","_this$opts$denylist","denylist","blacklist","indexOf","restoreContext","path","context","visit","_this$opts$shouldSkip","_this$opts","shouldSkip","currentContext","shouldStop","traverseNode","scope","skipKeys","skip","skipKey","stop","SHOULD_SKIP","SHOULD_STOP","setScope","_this$opts2","_this$scope","noScope","parentPath","listKey","isMethod","isSwitchStatement","target","_path$opts","getScope","init","setContext","resync","removed","_resyncParent","_resyncList","_resyncKey","parent","container","Array","isArray","i","length","setKey","Object","keys","inList","newContainer","_resyncRemoved","_markRemoved","popContext","contexts","pop","undefined","pushContext","push","setup","_this$node","requeue","pathToQueue","maybeQueue","_getQueueContexts"],"sources":["../../src/path/context.ts"],"sourcesContent":["// This file contains methods responsible for maintaining a TraversalContext.\n\nimport { traverseNode } from \"../traverse-node.ts\";\nimport { SHOULD_SKIP, SHOULD_STOP } from \"./index.ts\";\nimport type TraversalContext from \"../context.ts\";\nimport type { VisitPhase } from \"../types.ts\";\nimport type NodePath from \"./index.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function call(this: NodePath, key: VisitPhase): boolean {\n const opts = this.opts;\n\n this.debug(key);\n\n if (this.node) {\n if (this._call(opts[key])) return true;\n }\n\n if (this.node) {\n return this._call(opts[this.node.type]?.[key]);\n }\n\n return false;\n}\n\nexport function _call(this: NodePath, fns?: Array<Function>): boolean {\n if (!fns) return false;\n\n for (const fn of fns) {\n if (!fn) continue;\n\n const node = this.node;\n if (!node) return true;\n\n const ret = fn.call(this.state, this, this.state);\n if (ret && typeof ret === \"object\" && typeof ret.then === \"function\") {\n throw new Error(\n `You appear to be using a plugin with an async traversal visitor, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n if (ret) {\n throw new Error(`Unexpected return value from visitor method ${fn}`);\n }\n\n // node has been replaced, it will have been requeued\n if (this.node !== node) return true;\n\n // this.shouldSkip || this.shouldStop || this.removed\n if (this._traverseFlags > 0) return true;\n }\n\n return false;\n}\n\nexport function isDenylisted(this: NodePath): boolean {\n // @ts-expect-error TODO(Babel 8): Remove blacklist\n const denylist = this.opts.denylist ?? this.opts.blacklist;\n return denylist && denylist.indexOf(this.node.type) > -1;\n}\n\n// TODO: Remove in Babel 8\nexport { isDenylisted as isBlacklisted };\n\nfunction restoreContext(path: NodePath, context: TraversalContext) {\n if (path.context !== context) {\n path.context = context;\n path.state = context.state;\n path.opts = context.opts;\n }\n}\n\nexport function visit(this: NodePath): boolean {\n if (!this.node) {\n return false;\n }\n\n if (this.isDenylisted()) {\n return false;\n }\n\n if (this.opts.shouldSkip?.(this)) {\n return false;\n }\n\n const currentContext = this.context;\n // Note: We need to check \"this.shouldSkip\" first because\n // another visitor can set it to true. Usually .shouldSkip is false\n // before calling the enter visitor, but it can be true in case of\n // a requeued node (e.g. by .replaceWith()) that is then marked\n // with .skip().\n if (this.shouldSkip || this.call(\"enter\")) {\n this.debug(\"Skip...\");\n return this.shouldStop;\n }\n restoreContext(this, currentContext);\n\n this.debug(\"Recursing into...\");\n this.shouldStop = traverseNode(\n this.node,\n this.opts,\n this.scope,\n this.state,\n this,\n this.skipKeys,\n );\n\n restoreContext(this, currentContext);\n\n this.call(\"exit\");\n\n return this.shouldStop;\n}\n\nexport function skip(this: NodePath) {\n this.shouldSkip = true;\n}\n\nexport function skipKey(this: NodePath, key: string) {\n if (this.skipKeys == null) {\n this.skipKeys = {};\n }\n this.skipKeys[key] = true;\n}\n\nexport function stop(this: NodePath) {\n // this.shouldSkip = true; this.shouldStop = true;\n this._traverseFlags |= SHOULD_SKIP | SHOULD_STOP;\n}\n\nexport function setScope(this: NodePath) {\n if (this.opts?.noScope) return;\n\n let path = this.parentPath;\n\n if (\n // Skip method scope if is computed method key or decorator expression\n ((this.key === \"key\" || this.listKey === \"decorators\") &&\n path.isMethod()) ||\n // Skip switch scope if for discriminant (`x` in `switch (x) {}`).\n (this.key === \"discriminant\" && path.isSwitchStatement())\n ) {\n path = path.parentPath;\n }\n\n let target;\n while (path && !target) {\n if (path.opts?.noScope) return;\n\n target = path.scope;\n path = path.parentPath;\n }\n\n this.scope = this.getScope(target);\n this.scope?.init();\n}\n\nexport function setContext<S = unknown>(\n this: NodePath,\n context?: TraversalContext<S>,\n) {\n if (this.skipKeys != null) {\n this.skipKeys = {};\n }\n // this.shouldSkip = false; this.shouldStop = false; this.removed = false;\n this._traverseFlags = 0;\n\n if (context) {\n this.context = context;\n this.state = context.state;\n // Discard the S type parameter from context.opts\n this.opts = context.opts as typeof this.opts;\n }\n\n this.setScope();\n\n return this;\n}\n\n/**\n * Here we resync the node paths `key` and `container`. If they've changed according\n * to what we have stored internally then we attempt to resync by crawling and looking\n * for the new values.\n */\n\nexport function resync(this: NodePath) {\n if (this.removed) return;\n\n this._resyncParent();\n this._resyncList();\n this._resyncKey();\n //this._resyncRemoved();\n}\n\nexport function _resyncParent(this: NodePath) {\n if (this.parentPath) {\n this.parent = this.parentPath.node;\n }\n}\n\nexport function _resyncKey(this: NodePath) {\n if (!this.container) return;\n\n if (\n this.node ===\n // @ts-expect-error this.key should present in this.container\n this.container[this.key]\n ) {\n return;\n }\n\n // grrr, path key is out of sync. this is likely due to a modification to the AST\n // not done through our path APIs\n\n if (Array.isArray(this.container)) {\n for (let i = 0; i < this.container.length; i++) {\n if (this.container[i] === this.node) {\n this.setKey(i);\n return;\n }\n }\n } else {\n for (const key of Object.keys(this.container)) {\n // @ts-expect-error this.key should present in this.container\n if (this.container[key] === this.node) {\n this.setKey(key);\n return;\n }\n }\n }\n\n // ¯\\_(ツ)_/¯ who knows where it's gone lol\n this.key = null;\n}\n\nexport function _resyncList(this: NodePath) {\n if (!this.parent || !this.inList) return;\n\n const newContainer =\n // @ts-expect-error this.listKey should present in this.parent\n this.parent[this.listKey];\n if (this.container === newContainer) return;\n\n // container is out of sync. this is likely the result of it being reassigned\n this.container = newContainer || null;\n}\n\nexport function _resyncRemoved(this: NodePath) {\n if (\n this.key == null ||\n !this.container ||\n // @ts-expect-error this.key should present in this.container\n this.container[this.key] !== this.node\n ) {\n this._markRemoved();\n }\n}\n\nexport function popContext(this: NodePath) {\n this.contexts.pop();\n if (this.contexts.length > 0) {\n this.setContext(this.contexts[this.contexts.length - 1]);\n } else {\n this.setContext(undefined);\n }\n}\n\nexport function pushContext(this: NodePath, context: TraversalContext) {\n this.contexts.push(context);\n this.setContext(context);\n}\n\nexport function setup(\n this: NodePath,\n parentPath: NodePath | undefined,\n container: t.Node | t.Node[],\n listKey: string,\n key: string | number,\n) {\n this.listKey = listKey;\n this.container = container;\n\n this.parentPath = parentPath || this.parentPath;\n this.setKey(key);\n}\n\nexport function setKey(this: NodePath, key: string | number) {\n this.key = key;\n this.node =\n // @ts-expect-error this.key must present in this.container\n this.container[this.key];\n this.type = this.node?.type;\n}\n\nexport function requeue(this: NodePath, pathToQueue = this) {\n if (pathToQueue.removed) return;\n\n // If a path is skipped, and then replaced with a\n // new one, the new one shouldn't probably be skipped.\n if (process.env.BABEL_8_BREAKING) {\n pathToQueue.shouldSkip = false;\n }\n\n // TODO(loganfsmyth): This should be switched back to queue in parent contexts\n // automatically once #2892 and #4135 have been resolved. See #4140.\n // let contexts = this._getQueueContexts();\n const contexts = this.contexts;\n\n for (const context of contexts) {\n context.maybeQueue(pathToQueue);\n }\n}\n\nexport function _getQueueContexts(this: NodePath) {\n let path = this;\n let contexts = this.contexts;\n while (!contexts.length) {\n path = path.parentPath;\n if (!path) break;\n contexts = path.contexts;\n }\n return contexts;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/family.js.map b/node_modules/@babel/traverse/lib/path/family.js.map index a35bce51..a85c5793 100644 --- a/node_modules/@babel/traverse/lib/path/family.js.map +++ b/node_modules/@babel/traverse/lib/path/family.js.map @@ -1 +1 @@ -{"version":3,"names":["_index","require","_t","getBindingIdentifiers","_getBindingIdentifiers","getOuterBindingIdentifiers","_getOuterBindingIdentifiers","isDeclaration","numericLiteral","unaryExpression","NORMAL_COMPLETION","BREAK_COMPLETION","NormalCompletion","path","type","BreakCompletion","getOpposite","key","getSibling","addCompletionRecords","records","context","push","_getCompletionRecords","completionRecordForSwitch","cases","lastNormalCompletions","i","length","casePath","caseCompletions","normalCompletions","breakCompletions","c","normalCompletionToBreak","completions","forEach","replaceBreakStatementInBreakCompletion","reachable","isBreakStatement","label","replaceWith","remove","getStatementListCompletion","paths","canHaveBreak","newContext","Object","assign","inCaseClause","isBlockStatement","shouldPopulateBreak","statementCompletions","every","some","pathCompletions","isVariableDeclaration","isIfStatement","get","isDoExpression","isFor","isWhile","isLabeledStatement","isProgram","isFunction","isTryStatement","isCatchClause","isSwitchStatement","isSwitchCase","getCompletionRecords","map","r","NodePath","parentPath","parent","container","listKey","setContext","getPrevSibling","getNextSibling","getAllNextSiblings","_key","sibling","siblings","node","getAllPrevSiblings","parts","split","_getKey","_getPattern","Array","isArray","_","part","duplicates","getBindingIdentifierPaths","outerOnly","search","ids","create","id","shift","keys","isIdentifier","_ids","name","isExportDeclaration","declaration","isFunctionDeclaration","isFunctionExpression","child","getOuterBindingIdentifierPaths"],"sources":["../../src/path/family.ts"],"sourcesContent":["// This file contains methods responsible for dealing with/retrieving children or siblings.\n\nimport type TraversalContext from \"../context.ts\";\nimport NodePath from \"./index.ts\";\nimport {\n getBindingIdentifiers as _getBindingIdentifiers,\n getOuterBindingIdentifiers as _getOuterBindingIdentifiers,\n isDeclaration,\n numericLiteral,\n unaryExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nconst NORMAL_COMPLETION = 0 as const;\nconst BREAK_COMPLETION = 1 as const;\n\ntype Completion = {\n path: NodePath;\n type: 0 | 1;\n};\n\ntype CompletionContext = {\n // whether the current context allows `break` statement. When it allows, we have\n // to search all the statements for potential `break`\n canHaveBreak: boolean;\n // whether the statement is an immediate descendant of a switch case clause\n inCaseClause: boolean;\n // whether the `break` statement record should be populated to upper level\n // when a `break` statement is an immediate descendant of a block statement, e.g.\n // `{ break }`, it can influence the control flow in the upper levels.\n shouldPopulateBreak: boolean;\n};\n\nfunction NormalCompletion(path: NodePath) {\n return { type: NORMAL_COMPLETION, path };\n}\n\nfunction BreakCompletion(path: NodePath) {\n return { type: BREAK_COMPLETION, path };\n}\n\nexport function getOpposite(this: NodePath): NodePath | null {\n if (this.key === \"left\") {\n return this.getSibling(\"right\");\n } else if (this.key === \"right\") {\n return this.getSibling(\"left\");\n }\n return null;\n}\n\nfunction addCompletionRecords(\n path: NodePath | null | undefined,\n records: Completion[],\n context: CompletionContext,\n): Completion[] {\n if (path) {\n records.push(..._getCompletionRecords(path, context));\n }\n return records;\n}\n\nfunction completionRecordForSwitch(\n cases: NodePath<t.SwitchCase>[],\n records: Completion[],\n context: CompletionContext,\n): Completion[] {\n // https://tc39.es/ecma262/#sec-runtime-semantics-caseblockevaluation\n let lastNormalCompletions: Completion[] = [];\n for (let i = 0; i < cases.length; i++) {\n const casePath = cases[i];\n const caseCompletions = _getCompletionRecords(casePath, context);\n const normalCompletions = [];\n const breakCompletions = [];\n for (const c of caseCompletions) {\n if (c.type === NORMAL_COMPLETION) {\n normalCompletions.push(c);\n }\n if (c.type === BREAK_COMPLETION) {\n breakCompletions.push(c);\n }\n }\n if (normalCompletions.length) {\n lastNormalCompletions = normalCompletions;\n }\n records.push(...breakCompletions);\n }\n records.push(...lastNormalCompletions);\n return records;\n}\n\nfunction normalCompletionToBreak(completions: Completion[]) {\n completions.forEach(c => {\n c.type = BREAK_COMPLETION;\n });\n}\n\n/**\n * Determine how we should handle the break statement for break completions\n *\n * @param {Completion[]} completions\n * @param {boolean} reachable Whether the break statement is reachable after\n we mark the normal completions _before_ the given break completions as the final\n completions. For example,\n `{ 0 }; break;` is transformed to `{ return 0 }; break;`, the `break` here is unreachable\n and thus can be removed without consequences. We may in the future reserve them instead since\n we do not consistently remove unreachable statements _after_ break\n `{ var x = 0 }; break;` is transformed to `{ var x = 0 }; return void 0;`, the `break` is reachable\n because we can not wrap variable declaration under a return statement\n */\nfunction replaceBreakStatementInBreakCompletion(\n completions: Completion[],\n reachable: boolean,\n) {\n completions.forEach(c => {\n if (c.path.isBreakStatement({ label: null })) {\n if (reachable) {\n c.path.replaceWith(unaryExpression(\"void\", numericLiteral(0)));\n } else {\n c.path.remove();\n }\n }\n });\n}\n\nfunction getStatementListCompletion(\n paths: NodePath[],\n context: CompletionContext,\n): Completion[] {\n const completions = [];\n if (context.canHaveBreak) {\n let lastNormalCompletions = [];\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i];\n const newContext = { ...context, inCaseClause: false };\n if (\n path.isBlockStatement() &&\n (context.inCaseClause || // case test: { break }\n context.shouldPopulateBreak) // case test: { { break } }\n ) {\n newContext.shouldPopulateBreak = true;\n } else {\n newContext.shouldPopulateBreak = false;\n }\n const statementCompletions = _getCompletionRecords(path, newContext);\n if (\n statementCompletions.length > 0 &&\n // we can stop search `paths` when we have seen a `path` that is\n // effectively a `break` statement. Examples are\n // - `break`\n // - `if (true) { 1; break } else { 2; break }`\n // - `{ break }```\n // In other words, the paths after this `path` are unreachable\n statementCompletions.every(c => c.type === BREAK_COMPLETION)\n ) {\n if (\n lastNormalCompletions.length > 0 &&\n statementCompletions.every(c =>\n c.path.isBreakStatement({ label: null }),\n )\n ) {\n // when a break completion has a path as BreakStatement, it must be `{ break }`\n // whose completion value we can not determine, otherwise it would have been\n // replaced by `replaceBreakStatementInBreakCompletion`\n // When we have seen normal completions from the last statement\n // it is safe to stop populating break and mark normal completions as break\n normalCompletionToBreak(lastNormalCompletions);\n completions.push(...lastNormalCompletions);\n // Declarations have empty completion record, however they can not be nested\n // directly in return statement, i.e. `return (var a = 1)` is invalid.\n if (lastNormalCompletions.some(c => c.path.isDeclaration())) {\n completions.push(...statementCompletions);\n replaceBreakStatementInBreakCompletion(\n statementCompletions,\n /* reachable */ true,\n );\n }\n replaceBreakStatementInBreakCompletion(\n statementCompletions,\n /* reachable */ false,\n );\n } else {\n completions.push(...statementCompletions);\n if (!context.shouldPopulateBreak) {\n replaceBreakStatementInBreakCompletion(\n statementCompletions,\n /* reachable */ true,\n );\n }\n }\n break;\n }\n if (i === paths.length - 1) {\n completions.push(...statementCompletions);\n } else {\n lastNormalCompletions = [];\n for (let i = 0; i < statementCompletions.length; i++) {\n const c = statementCompletions[i];\n if (c.type === BREAK_COMPLETION) {\n completions.push(c);\n }\n if (c.type === NORMAL_COMPLETION) {\n lastNormalCompletions.push(c);\n }\n }\n }\n }\n } else if (paths.length) {\n // When we are in a context where `break` must not exist, we can skip linear\n // search on statement lists and assume that the last\n // non-variable-declaration statement determines the completion.\n for (let i = paths.length - 1; i >= 0; i--) {\n const pathCompletions = _getCompletionRecords(paths[i], context);\n if (\n pathCompletions.length > 1 ||\n (pathCompletions.length === 1 &&\n !pathCompletions[0].path.isVariableDeclaration())\n ) {\n completions.push(...pathCompletions);\n break;\n }\n }\n }\n return completions;\n}\n\nfunction _getCompletionRecords(\n path: NodePath,\n context: CompletionContext,\n): Completion[] {\n let records: Completion[] = [];\n if (path.isIfStatement()) {\n records = addCompletionRecords(path.get(\"consequent\"), records, context);\n records = addCompletionRecords(path.get(\"alternate\"), records, context);\n } else if (\n path.isDoExpression() ||\n path.isFor() ||\n path.isWhile() ||\n path.isLabeledStatement()\n ) {\n // @ts-expect-error(flow->ts): todo\n return addCompletionRecords(path.get(\"body\"), records, context);\n } else if (path.isProgram() || path.isBlockStatement()) {\n // @ts-expect-error(flow->ts): todo\n return getStatementListCompletion(path.get(\"body\"), context);\n } else if (path.isFunction()) {\n return _getCompletionRecords(path.get(\"body\"), context);\n } else if (path.isTryStatement()) {\n records = addCompletionRecords(path.get(\"block\"), records, context);\n records = addCompletionRecords(path.get(\"handler\"), records, context);\n } else if (path.isCatchClause()) {\n return addCompletionRecords(path.get(\"body\"), records, context);\n } else if (path.isSwitchStatement()) {\n return completionRecordForSwitch(path.get(\"cases\"), records, context);\n } else if (path.isSwitchCase()) {\n return getStatementListCompletion(path.get(\"consequent\"), {\n canHaveBreak: true,\n shouldPopulateBreak: false,\n inCaseClause: true,\n });\n } else if (path.isBreakStatement()) {\n records.push(BreakCompletion(path));\n } else {\n records.push(NormalCompletion(path));\n }\n\n return records;\n}\n\n/**\n * Retrieve the completion records of a given path.\n * Note: to ensure proper support on `break` statement, this method\n * will manipulate the AST around the break statement. Do not call the method\n * twice for the same path.\n *\n * @export\n * @param {NodePath} this\n * @returns {NodePath[]} Completion records\n */\nexport function getCompletionRecords(this: NodePath): NodePath[] {\n const records = _getCompletionRecords(this, {\n canHaveBreak: false,\n shouldPopulateBreak: false,\n inCaseClause: false,\n });\n return records.map(r => r.path);\n}\n\nexport function getSibling(this: NodePath, key: string | number): NodePath {\n return NodePath.get({\n parentPath: this.parentPath,\n parent: this.parent,\n container: this.container,\n listKey: this.listKey,\n key: key,\n }).setContext(this.context);\n}\n\nexport function getPrevSibling(this: NodePath): NodePath {\n // @ts-expect-error todo(flow->ts) this.key could be a string\n return this.getSibling(this.key - 1);\n}\n\nexport function getNextSibling(this: NodePath): NodePath {\n // @ts-expect-error todo(flow->ts) this.key could be a string\n return this.getSibling(this.key + 1);\n}\n\nexport function getAllNextSiblings(this: NodePath): NodePath[] {\n // @ts-expect-error todo(flow->ts) this.key could be a string\n let _key: number = this.key;\n let sibling = this.getSibling(++_key);\n const siblings = [];\n while (sibling.node) {\n siblings.push(sibling);\n sibling = this.getSibling(++_key);\n }\n return siblings;\n}\n\nexport function getAllPrevSiblings(this: NodePath): NodePath[] {\n // @ts-expect-error todo(flow->ts) this.key could be a string\n let _key: number = this.key;\n let sibling = this.getSibling(--_key);\n const siblings = [];\n while (sibling.node) {\n siblings.push(sibling);\n sibling = this.getSibling(--_key);\n }\n return siblings;\n}\n\n// convert \"1\" to 1 (string index to number index)\ntype MaybeToIndex<T extends string> = T extends `${bigint}` ? number : T;\n\ntype Pattern<Obj extends string, Prop extends string> = `${Obj}.${Prop}`;\n\n// split \"body.body.1\" to [\"body\", \"body\", 1]\ntype Split<P extends string> = P extends Pattern<infer O, infer U>\n ? [MaybeToIndex<O>, ...Split<U>]\n : [MaybeToIndex<P>];\n\n// get all K with Node[K] is t.Node | t.Node[]\ntype NodeKeyOf<Node extends t.Node | t.Node[]> = keyof Pick<\n Node,\n {\n [Key in keyof Node]-?: Node[Key] extends t.Node | t.Node[] ? Key : never;\n }[keyof Node]\n>;\n\n// traverse the Node with tuple path [\"body\", \"body\", 1]\n// Path should be created with Split\ntype Trav<\n Node extends t.Node | t.Node[],\n Path extends unknown[],\n> = Path extends [infer K, ...infer R]\n ? K extends NodeKeyOf<Node>\n ? R extends []\n ? Node[K]\n : // @ts-expect-error ignore since TS is not smart enough\n Trav<Node[K], R>\n : never\n : never;\n\ntype ToNodePath<T> = T extends Array<t.Node | null | undefined>\n ? Array<NodePath<T[number]>>\n : T extends t.Node | null | undefined\n ? NodePath<T>\n : never;\n\nfunction get<T extends t.Node, K extends keyof T>(\n this: NodePath<T>,\n key: K,\n context?: boolean | TraversalContext,\n): T[K] extends Array<t.Node | null | undefined>\n ? Array<NodePath<T[K][number]>>\n : T[K] extends t.Node | null | undefined\n ? NodePath<T[K]>\n : never;\n\nfunction get<T extends t.Node, K extends string>(\n this: NodePath<T>,\n key: K,\n context?: boolean | TraversalContext,\n): ToNodePath<Trav<T, Split<K>>>;\n\nfunction get<T extends t.Node>(\n this: NodePath<T>,\n key: string,\n context?: true | TraversalContext,\n): NodePath | NodePath[];\n\nfunction get<T extends t.Node>(\n this: NodePath<T>,\n key: string,\n context: true | TraversalContext = true,\n): NodePath | NodePath[] {\n if (context === true) context = this.context;\n const parts = key.split(\".\");\n if (parts.length === 1) {\n // \"foo\"\n // @ts-expect-error key may not index T\n return this._getKey(key, context);\n } else {\n // \"foo.bar\"\n return this._getPattern(parts, context);\n }\n}\n\nexport { get };\n\nexport function _getKey<T extends t.Node>(\n this: NodePath<T>,\n key: keyof T & string,\n context?: TraversalContext,\n): NodePath | NodePath[] {\n const node = this.node;\n const container = node[key];\n\n if (Array.isArray(container)) {\n // requested a container so give them all the paths\n return container.map((_, i) => {\n return NodePath.get({\n listKey: key,\n parentPath: this,\n parent: node,\n container: container,\n key: i,\n }).setContext(context);\n });\n } else {\n return NodePath.get({\n parentPath: this,\n parent: node,\n container: node,\n key: key,\n }).setContext(context);\n }\n}\n\nexport function _getPattern(\n this: NodePath,\n parts: string[],\n context?: TraversalContext,\n): NodePath | NodePath[] {\n let path: NodePath | NodePath[] = this;\n for (const part of parts) {\n if (part === \".\") {\n // @ts-expect-error todo(flow-ts): Can path be an array here?\n path = path.parentPath;\n } else {\n if (Array.isArray(path)) {\n // @ts-expect-error part may not index path\n path = path[part];\n } else {\n path = path.get(part, context);\n }\n }\n }\n return path;\n}\n\nfunction getBindingIdentifiers(\n duplicates: true,\n): Record<string, t.Identifier[]>;\nfunction getBindingIdentifiers(\n duplicates?: false,\n): Record<string, t.Identifier>;\nfunction getBindingIdentifiers(\n duplicates: boolean,\n): Record<string, t.Identifier[] | t.Identifier>;\n\nfunction getBindingIdentifiers(\n this: NodePath,\n duplicates?: boolean,\n): Record<string, t.Identifier[] | t.Identifier> {\n return _getBindingIdentifiers(this.node, duplicates);\n}\n\nexport { getBindingIdentifiers };\n\nfunction getOuterBindingIdentifiers(\n duplicates: true,\n): Record<string, t.Identifier[]>;\nfunction getOuterBindingIdentifiers(\n duplicates?: false,\n): Record<string, t.Identifier>;\nfunction getOuterBindingIdentifiers(\n duplicates: boolean,\n): Record<string, t.Identifier[] | t.Identifier>;\n\nfunction getOuterBindingIdentifiers(\n this: NodePath,\n duplicates?: boolean,\n): Record<string, t.Identifier[] | t.Identifier> {\n return _getOuterBindingIdentifiers(this.node, duplicates);\n}\n\nexport { getOuterBindingIdentifiers };\n\nfunction getBindingIdentifierPaths(\n duplicates: true,\n outerOnly?: boolean,\n): Record<string, NodePath<t.Identifier>[]>;\nfunction getBindingIdentifierPaths(\n duplicates: false,\n outerOnly?: boolean,\n): Record<string, NodePath<t.Identifier>>;\nfunction getBindingIdentifierPaths(\n duplicates?: boolean,\n outerOnly?: boolean,\n): Record<string, NodePath<t.Identifier> | NodePath<t.Identifier>[]>;\n\n// original source - https://github.com/babel/babel/blob/main/packages/babel-types/src/retrievers/getBindingIdentifiers.js\n// path.getBindingIdentifiers returns nodes where the following re-implementation returns paths\nfunction getBindingIdentifierPaths(\n this: NodePath,\n duplicates: boolean = false,\n outerOnly: boolean = false,\n): Record<string, NodePath<t.Identifier> | NodePath<t.Identifier>[]> {\n const path = this;\n const search = [path];\n const ids = Object.create(null);\n\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n if (!id.node) continue;\n\n const keys =\n // @ts-expect-error _getBindingIdentifiers.keys do not cover all node types\n _getBindingIdentifiers.keys[id.node.type];\n\n if (id.isIdentifier()) {\n if (duplicates) {\n const _ids = (ids[id.node.name] = ids[id.node.name] || []);\n _ids.push(id);\n } else {\n ids[id.node.name] = id;\n }\n continue;\n }\n\n if (id.isExportDeclaration()) {\n const declaration = id.get(\"declaration\");\n if (isDeclaration(declaration)) {\n search.push(declaration);\n }\n continue;\n }\n\n if (outerOnly) {\n if (id.isFunctionDeclaration()) {\n search.push(id.get(\"id\"));\n continue;\n }\n if (id.isFunctionExpression()) {\n continue;\n }\n }\n\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const child = id.get(key);\n if (Array.isArray(child)) {\n search.push(...child);\n } else if (child.node) {\n search.push(child);\n }\n }\n }\n }\n\n return ids;\n}\n\nexport { getBindingIdentifierPaths };\n\nfunction getOuterBindingIdentifierPaths(\n duplicates: true,\n): Record<string, NodePath<t.Identifier>[]>;\nfunction getOuterBindingIdentifierPaths(\n duplicates?: false,\n): Record<string, NodePath<t.Identifier>>;\nfunction getOuterBindingIdentifierPaths(\n duplicates?: boolean,\n): Record<string, NodePath<t.Identifier> | NodePath<t.Identifier>[]>;\n\nfunction getOuterBindingIdentifierPaths(\n this: NodePath,\n duplicates: boolean = false,\n) {\n return this.getBindingIdentifierPaths(duplicates, true);\n}\n\nexport { getOuterBindingIdentifierPaths };\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,EAAA,GAAAD,OAAA;AAMsB;EALpBE,qBAAqB,EAAIC,sBAAsB;EAC/CC,0BAA0B,EAAIC,2BAA2B;EACzDC,aAAa;EACbC,cAAc;EACdC;AAAe,IAAAP,EAAA;AAIjB,MAAMQ,iBAAiB,GAAG,CAAU;AACpC,MAAMC,gBAAgB,GAAG,CAAU;AAmBnC,SAASC,gBAAgBA,CAACC,IAAc,EAAE;EACxC,OAAO;IAAEC,IAAI,EAAEJ,iBAAiB;IAAEG;EAAK,CAAC;AAC1C;AAEA,SAASE,eAAeA,CAACF,IAAc,EAAE;EACvC,OAAO;IAAEC,IAAI,EAAEH,gBAAgB;IAAEE;EAAK,CAAC;AACzC;AAEO,SAASG,WAAWA,CAAA,EAAkC;EAC3D,IAAI,IAAI,CAACC,GAAG,KAAK,MAAM,EAAE;IACvB,OAAO,IAAI,CAACC,UAAU,CAAC,OAAO,CAAC;EACjC,CAAC,MAAM,IAAI,IAAI,CAACD,GAAG,KAAK,OAAO,EAAE;IAC/B,OAAO,IAAI,CAACC,UAAU,CAAC,MAAM,CAAC;EAChC;EACA,OAAO,IAAI;AACb;AAEA,SAASC,oBAAoBA,CAC3BN,IAAiC,EACjCO,OAAqB,EACrBC,OAA0B,EACZ;EACd,IAAIR,IAAI,EAAE;IACRO,OAAO,CAACE,IAAI,CAAC,GAAGC,qBAAqB,CAACV,IAAI,EAAEQ,OAAO,CAAC,CAAC;EACvD;EACA,OAAOD,OAAO;AAChB;AAEA,SAASI,yBAAyBA,CAChCC,KAA+B,EAC/BL,OAAqB,EACrBC,OAA0B,EACZ;EAEd,IAAIK,qBAAmC,GAAG,EAAE;EAC5C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,KAAK,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACrC,MAAME,QAAQ,GAAGJ,KAAK,CAACE,CAAC,CAAC;IACzB,MAAMG,eAAe,GAAGP,qBAAqB,CAACM,QAAQ,EAAER,OAAO,CAAC;IAChE,MAAMU,iBAAiB,GAAG,EAAE;IAC5B,MAAMC,gBAAgB,GAAG,EAAE;IAC3B,KAAK,MAAMC,CAAC,IAAIH,eAAe,EAAE;MAC/B,IAAIG,CAAC,CAACnB,IAAI,KAAKJ,iBAAiB,EAAE;QAChCqB,iBAAiB,CAACT,IAAI,CAACW,CAAC,CAAC;MAC3B;MACA,IAAIA,CAAC,CAACnB,IAAI,KAAKH,gBAAgB,EAAE;QAC/BqB,gBAAgB,CAACV,IAAI,CAACW,CAAC,CAAC;MAC1B;IACF;IACA,IAAIF,iBAAiB,CAACH,MAAM,EAAE;MAC5BF,qBAAqB,GAAGK,iBAAiB;IAC3C;IACAX,OAAO,CAACE,IAAI,CAAC,GAAGU,gBAAgB,CAAC;EACnC;EACAZ,OAAO,CAACE,IAAI,CAAC,GAAGI,qBAAqB,CAAC;EACtC,OAAON,OAAO;AAChB;AAEA,SAASc,uBAAuBA,CAACC,WAAyB,EAAE;EAC1DA,WAAW,CAACC,OAAO,CAACH,CAAC,IAAI;IACvBA,CAAC,CAACnB,IAAI,GAAGH,gBAAgB;EAC3B,CAAC,CAAC;AACJ;AAeA,SAAS0B,sCAAsCA,CAC7CF,WAAyB,EACzBG,SAAkB,EAClB;EACAH,WAAW,CAACC,OAAO,CAACH,CAAC,IAAI;IACvB,IAAIA,CAAC,CAACpB,IAAI,CAAC0B,gBAAgB,CAAC;MAAEC,KAAK,EAAE;IAAK,CAAC,CAAC,EAAE;MAC5C,IAAIF,SAAS,EAAE;QACbL,CAAC,CAACpB,IAAI,CAAC4B,WAAW,CAAChC,eAAe,CAAC,MAAM,EAAED,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;MAChE,CAAC,MAAM;QACLyB,CAAC,CAACpB,IAAI,CAAC6B,MAAM,CAAC,CAAC;MACjB;IACF;EACF,CAAC,CAAC;AACJ;AAEA,SAASC,0BAA0BA,CACjCC,KAAiB,EACjBvB,OAA0B,EACZ;EACd,MAAMc,WAAW,GAAG,EAAE;EACtB,IAAId,OAAO,CAACwB,YAAY,EAAE;IACxB,IAAInB,qBAAqB,GAAG,EAAE;IAC9B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiB,KAAK,CAAChB,MAAM,EAAED,CAAC,EAAE,EAAE;MACrC,MAAMd,IAAI,GAAG+B,KAAK,CAACjB,CAAC,CAAC;MACrB,MAAMmB,UAAU,GAAAC,MAAA,CAAAC,MAAA,KAAQ3B,OAAO;QAAE4B,YAAY,EAAE;MAAK,EAAE;MACtD,IACEpC,IAAI,CAACqC,gBAAgB,CAAC,CAAC,KACtB7B,OAAO,CAAC4B,YAAY,IACnB5B,OAAO,CAAC8B,mBAAmB,CAAC,EAC9B;QACAL,UAAU,CAACK,mBAAmB,GAAG,IAAI;MACvC,CAAC,MAAM;QACLL,UAAU,CAACK,mBAAmB,GAAG,KAAK;MACxC;MACA,MAAMC,oBAAoB,GAAG7B,qBAAqB,CAACV,IAAI,EAAEiC,UAAU,CAAC;MACpE,IACEM,oBAAoB,CAACxB,MAAM,GAAG,CAAC,IAO/BwB,oBAAoB,CAACC,KAAK,CAACpB,CAAC,IAAIA,CAAC,CAACnB,IAAI,KAAKH,gBAAgB,CAAC,EAC5D;QACA,IACEe,qBAAqB,CAACE,MAAM,GAAG,CAAC,IAChCwB,oBAAoB,CAACC,KAAK,CAACpB,CAAC,IAC1BA,CAAC,CAACpB,IAAI,CAAC0B,gBAAgB,CAAC;UAAEC,KAAK,EAAE;QAAK,CAAC,CACzC,CAAC,EACD;UAMAN,uBAAuB,CAACR,qBAAqB,CAAC;UAC9CS,WAAW,CAACb,IAAI,CAAC,GAAGI,qBAAqB,CAAC;UAG1C,IAAIA,qBAAqB,CAAC4B,IAAI,CAACrB,CAAC,IAAIA,CAAC,CAACpB,IAAI,CAACN,aAAa,CAAC,CAAC,CAAC,EAAE;YAC3D4B,WAAW,CAACb,IAAI,CAAC,GAAG8B,oBAAoB,CAAC;YACzCf,sCAAsC,CACpCe,oBAAoB,EACJ,IAClB,CAAC;UACH;UACAf,sCAAsC,CACpCe,oBAAoB,EACJ,KAClB,CAAC;QACH,CAAC,MAAM;UACLjB,WAAW,CAACb,IAAI,CAAC,GAAG8B,oBAAoB,CAAC;UACzC,IAAI,CAAC/B,OAAO,CAAC8B,mBAAmB,EAAE;YAChCd,sCAAsC,CACpCe,oBAAoB,EACJ,IAClB,CAAC;UACH;QACF;QACA;MACF;MACA,IAAIzB,CAAC,KAAKiB,KAAK,CAAChB,MAAM,GAAG,CAAC,EAAE;QAC1BO,WAAW,CAACb,IAAI,CAAC,GAAG8B,oBAAoB,CAAC;MAC3C,CAAC,MAAM;QACL1B,qBAAqB,GAAG,EAAE;QAC1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyB,oBAAoB,CAACxB,MAAM,EAAED,CAAC,EAAE,EAAE;UACpD,MAAMM,CAAC,GAAGmB,oBAAoB,CAACzB,CAAC,CAAC;UACjC,IAAIM,CAAC,CAACnB,IAAI,KAAKH,gBAAgB,EAAE;YAC/BwB,WAAW,CAACb,IAAI,CAACW,CAAC,CAAC;UACrB;UACA,IAAIA,CAAC,CAACnB,IAAI,KAAKJ,iBAAiB,EAAE;YAChCgB,qBAAqB,CAACJ,IAAI,CAACW,CAAC,CAAC;UAC/B;QACF;MACF;IACF;EACF,CAAC,MAAM,IAAIW,KAAK,CAAChB,MAAM,EAAE;IAIvB,KAAK,IAAID,CAAC,GAAGiB,KAAK,CAAChB,MAAM,GAAG,CAAC,EAAED,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;MAC1C,MAAM4B,eAAe,GAAGhC,qBAAqB,CAACqB,KAAK,CAACjB,CAAC,CAAC,EAAEN,OAAO,CAAC;MAChE,IACEkC,eAAe,CAAC3B,MAAM,GAAG,CAAC,IACzB2B,eAAe,CAAC3B,MAAM,KAAK,CAAC,IAC3B,CAAC2B,eAAe,CAAC,CAAC,CAAC,CAAC1C,IAAI,CAAC2C,qBAAqB,CAAC,CAAE,EACnD;QACArB,WAAW,CAACb,IAAI,CAAC,GAAGiC,eAAe,CAAC;QACpC;MACF;IACF;EACF;EACA,OAAOpB,WAAW;AACpB;AAEA,SAASZ,qBAAqBA,CAC5BV,IAAc,EACdQ,OAA0B,EACZ;EACd,IAAID,OAAqB,GAAG,EAAE;EAC9B,IAAIP,IAAI,CAAC4C,aAAa,CAAC,CAAC,EAAE;IACxBrC,OAAO,GAAGD,oBAAoB,CAACN,IAAI,CAAC6C,GAAG,CAAC,YAAY,CAAC,EAAEtC,OAAO,EAAEC,OAAO,CAAC;IACxED,OAAO,GAAGD,oBAAoB,CAACN,IAAI,CAAC6C,GAAG,CAAC,WAAW,CAAC,EAAEtC,OAAO,EAAEC,OAAO,CAAC;EACzE,CAAC,MAAM,IACLR,IAAI,CAAC8C,cAAc,CAAC,CAAC,IACrB9C,IAAI,CAAC+C,KAAK,CAAC,CAAC,IACZ/C,IAAI,CAACgD,OAAO,CAAC,CAAC,IACdhD,IAAI,CAACiD,kBAAkB,CAAC,CAAC,EACzB;IAEA,OAAO3C,oBAAoB,CAACN,IAAI,CAAC6C,GAAG,CAAC,MAAM,CAAC,EAAEtC,OAAO,EAAEC,OAAO,CAAC;EACjE,CAAC,MAAM,IAAIR,IAAI,CAACkD,SAAS,CAAC,CAAC,IAAIlD,IAAI,CAACqC,gBAAgB,CAAC,CAAC,EAAE;IAEtD,OAAOP,0BAA0B,CAAC9B,IAAI,CAAC6C,GAAG,CAAC,MAAM,CAAC,EAAErC,OAAO,CAAC;EAC9D,CAAC,MAAM,IAAIR,IAAI,CAACmD,UAAU,CAAC,CAAC,EAAE;IAC5B,OAAOzC,qBAAqB,CAACV,IAAI,CAAC6C,GAAG,CAAC,MAAM,CAAC,EAAErC,OAAO,CAAC;EACzD,CAAC,MAAM,IAAIR,IAAI,CAACoD,cAAc,CAAC,CAAC,EAAE;IAChC7C,OAAO,GAAGD,oBAAoB,CAACN,IAAI,CAAC6C,GAAG,CAAC,OAAO,CAAC,EAAEtC,OAAO,EAAEC,OAAO,CAAC;IACnED,OAAO,GAAGD,oBAAoB,CAACN,IAAI,CAAC6C,GAAG,CAAC,SAAS,CAAC,EAAEtC,OAAO,EAAEC,OAAO,CAAC;EACvE,CAAC,MAAM,IAAIR,IAAI,CAACqD,aAAa,CAAC,CAAC,EAAE;IAC/B,OAAO/C,oBAAoB,CAACN,IAAI,CAAC6C,GAAG,CAAC,MAAM,CAAC,EAAEtC,OAAO,EAAEC,OAAO,CAAC;EACjE,CAAC,MAAM,IAAIR,IAAI,CAACsD,iBAAiB,CAAC,CAAC,EAAE;IACnC,OAAO3C,yBAAyB,CAACX,IAAI,CAAC6C,GAAG,CAAC,OAAO,CAAC,EAAEtC,OAAO,EAAEC,OAAO,CAAC;EACvE,CAAC,MAAM,IAAIR,IAAI,CAACuD,YAAY,CAAC,CAAC,EAAE;IAC9B,OAAOzB,0BAA0B,CAAC9B,IAAI,CAAC6C,GAAG,CAAC,YAAY,CAAC,EAAE;MACxDb,YAAY,EAAE,IAAI;MAClBM,mBAAmB,EAAE,KAAK;MAC1BF,YAAY,EAAE;IAChB,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIpC,IAAI,CAAC0B,gBAAgB,CAAC,CAAC,EAAE;IAClCnB,OAAO,CAACE,IAAI,CAACP,eAAe,CAACF,IAAI,CAAC,CAAC;EACrC,CAAC,MAAM;IACLO,OAAO,CAACE,IAAI,CAACV,gBAAgB,CAACC,IAAI,CAAC,CAAC;EACtC;EAEA,OAAOO,OAAO;AAChB;AAYO,SAASiD,oBAAoBA,CAAA,EAA6B;EAC/D,MAAMjD,OAAO,GAAGG,qBAAqB,CAAC,IAAI,EAAE;IAC1CsB,YAAY,EAAE,KAAK;IACnBM,mBAAmB,EAAE,KAAK;IAC1BF,YAAY,EAAE;EAChB,CAAC,CAAC;EACF,OAAO7B,OAAO,CAACkD,GAAG,CAACC,CAAC,IAAIA,CAAC,CAAC1D,IAAI,CAAC;AACjC;AAEO,SAASK,UAAUA,CAAiBD,GAAoB,EAAY;EACzE,OAAOuD,cAAQ,CAACd,GAAG,CAAC;IAClBe,UAAU,EAAE,IAAI,CAACA,UAAU;IAC3BC,MAAM,EAAE,IAAI,CAACA,MAAM;IACnBC,SAAS,EAAE,IAAI,CAACA,SAAS;IACzBC,OAAO,EAAE,IAAI,CAACA,OAAO;IACrB3D,GAAG,EAAEA;EACP,CAAC,CAAC,CAAC4D,UAAU,CAAC,IAAI,CAACxD,OAAO,CAAC;AAC7B;AAEO,SAASyD,cAAcA,CAAA,EAA2B;EAEvD,OAAO,IAAI,CAAC5D,UAAU,CAAC,IAAI,CAACD,GAAG,GAAG,CAAC,CAAC;AACtC;AAEO,SAAS8D,cAAcA,CAAA,EAA2B;EAEvD,OAAO,IAAI,CAAC7D,UAAU,CAAC,IAAI,CAACD,GAAG,GAAG,CAAC,CAAC;AACtC;AAEO,SAAS+D,kBAAkBA,CAAA,EAA6B;EAE7D,IAAIC,IAAY,GAAG,IAAI,CAAChE,GAAG;EAC3B,IAAIiE,OAAO,GAAG,IAAI,CAAChE,UAAU,CAAC,EAAE+D,IAAI,CAAC;EACrC,MAAME,QAAQ,GAAG,EAAE;EACnB,OAAOD,OAAO,CAACE,IAAI,EAAE;IACnBD,QAAQ,CAAC7D,IAAI,CAAC4D,OAAO,CAAC;IACtBA,OAAO,GAAG,IAAI,CAAChE,UAAU,CAAC,EAAE+D,IAAI,CAAC;EACnC;EACA,OAAOE,QAAQ;AACjB;AAEO,SAASE,kBAAkBA,CAAA,EAA6B;EAE7D,IAAIJ,IAAY,GAAG,IAAI,CAAChE,GAAG;EAC3B,IAAIiE,OAAO,GAAG,IAAI,CAAChE,UAAU,CAAC,EAAE+D,IAAI,CAAC;EACrC,MAAME,QAAQ,GAAG,EAAE;EACnB,OAAOD,OAAO,CAACE,IAAI,EAAE;IACnBD,QAAQ,CAAC7D,IAAI,CAAC4D,OAAO,CAAC;IACtBA,OAAO,GAAG,IAAI,CAAChE,UAAU,CAAC,EAAE+D,IAAI,CAAC;EACnC;EACA,OAAOE,QAAQ;AACjB;AA8DA,SAASzB,GAAGA,CAEVzC,GAAW,EACXI,OAAgC,GAAG,IAAI,EAChB;EACvB,IAAIA,OAAO,KAAK,IAAI,EAAEA,OAAO,GAAG,IAAI,CAACA,OAAO;EAC5C,MAAMiE,KAAK,GAAGrE,GAAG,CAACsE,KAAK,CAAC,GAAG,CAAC;EAC5B,IAAID,KAAK,CAAC1D,MAAM,KAAK,CAAC,EAAE;IAGtB,OAAO,IAAI,CAAC4D,OAAO,CAACvE,GAAG,EAAEI,OAAO,CAAC;EACnC,CAAC,MAAM;IAEL,OAAO,IAAI,CAACoE,WAAW,CAACH,KAAK,EAAEjE,OAAO,CAAC;EACzC;AACF;AAIO,SAASmE,OAAOA,CAErBvE,GAAqB,EACrBI,OAA0B,EACH;EACvB,MAAM+D,IAAI,GAAG,IAAI,CAACA,IAAI;EACtB,MAAMT,SAAS,GAAGS,IAAI,CAACnE,GAAG,CAAC;EAE3B,IAAIyE,KAAK,CAACC,OAAO,CAAChB,SAAS,CAAC,EAAE;IAE5B,OAAOA,SAAS,CAACL,GAAG,CAAC,CAACsB,CAAC,EAAEjE,CAAC,KAAK;MAC7B,OAAO6C,cAAQ,CAACd,GAAG,CAAC;QAClBkB,OAAO,EAAE3D,GAAG;QACZwD,UAAU,EAAE,IAAI;QAChBC,MAAM,EAAEU,IAAI;QACZT,SAAS,EAAEA,SAAS;QACpB1D,GAAG,EAAEU;MACP,CAAC,CAAC,CAACkD,UAAU,CAACxD,OAAO,CAAC;IACxB,CAAC,CAAC;EACJ,CAAC,MAAM;IACL,OAAOmD,cAAQ,CAACd,GAAG,CAAC;MAClBe,UAAU,EAAE,IAAI;MAChBC,MAAM,EAAEU,IAAI;MACZT,SAAS,EAAES,IAAI;MACfnE,GAAG,EAAEA;IACP,CAAC,CAAC,CAAC4D,UAAU,CAACxD,OAAO,CAAC;EACxB;AACF;AAEO,SAASoE,WAAWA,CAEzBH,KAAe,EACfjE,OAA0B,EACH;EACvB,IAAIR,IAA2B,GAAG,IAAI;EACtC,KAAK,MAAMgF,IAAI,IAAIP,KAAK,EAAE;IACxB,IAAIO,IAAI,KAAK,GAAG,EAAE;MAEhBhF,IAAI,GAAGA,IAAI,CAAC4D,UAAU;IACxB,CAAC,MAAM;MACL,IAAIiB,KAAK,CAACC,OAAO,CAAC9E,IAAI,CAAC,EAAE;QAEvBA,IAAI,GAAGA,IAAI,CAACgF,IAAI,CAAC;MACnB,CAAC,MAAM;QACLhF,IAAI,GAAGA,IAAI,CAAC6C,GAAG,CAACmC,IAAI,EAAExE,OAAO,CAAC;MAChC;IACF;EACF;EACA,OAAOR,IAAI;AACb;AAYA,SAASV,qBAAqBA,CAE5B2F,UAAoB,EAC2B;EAC/C,OAAO1F,sBAAsB,CAAC,IAAI,CAACgF,IAAI,EAAEU,UAAU,CAAC;AACtD;AAcA,SAASzF,0BAA0BA,CAEjCyF,UAAoB,EAC2B;EAC/C,OAAOxF,2BAA2B,CAAC,IAAI,CAAC8E,IAAI,EAAEU,UAAU,CAAC;AAC3D;AAmBA,SAASC,yBAAyBA,CAEhCD,UAAmB,GAAG,KAAK,EAC3BE,SAAkB,GAAG,KAAK,EACyC;EACnE,MAAMnF,IAAI,GAAG,IAAI;EACjB,MAAMoF,MAAM,GAAG,CAACpF,IAAI,CAAC;EACrB,MAAMqF,GAAG,GAAGnD,MAAM,CAACoD,MAAM,CAAC,IAAI,CAAC;EAE/B,OAAOF,MAAM,CAACrE,MAAM,EAAE;IACpB,MAAMwE,EAAE,GAAGH,MAAM,CAACI,KAAK,CAAC,CAAC;IACzB,IAAI,CAACD,EAAE,EAAE;IACT,IAAI,CAACA,EAAE,CAAChB,IAAI,EAAE;IAEd,MAAMkB,IAAI,GAERlG,sBAAsB,CAACkG,IAAI,CAACF,EAAE,CAAChB,IAAI,CAACtE,IAAI,CAAC;IAE3C,IAAIsF,EAAE,CAACG,YAAY,CAAC,CAAC,EAAE;MACrB,IAAIT,UAAU,EAAE;QACd,MAAMU,IAAI,GAAIN,GAAG,CAACE,EAAE,CAAChB,IAAI,CAACqB,IAAI,CAAC,GAAGP,GAAG,CAACE,EAAE,CAAChB,IAAI,CAACqB,IAAI,CAAC,IAAI,EAAG;QAC1DD,IAAI,CAAClF,IAAI,CAAC8E,EAAE,CAAC;MACf,CAAC,MAAM;QACLF,GAAG,CAACE,EAAE,CAAChB,IAAI,CAACqB,IAAI,CAAC,GAAGL,EAAE;MACxB;MACA;IACF;IAEA,IAAIA,EAAE,CAACM,mBAAmB,CAAC,CAAC,EAAE;MAC5B,MAAMC,WAAW,GAAGP,EAAE,CAAC1C,GAAG,CAAC,aAAa,CAAC;MACzC,IAAInD,aAAa,CAACoG,WAAW,CAAC,EAAE;QAC9BV,MAAM,CAAC3E,IAAI,CAACqF,WAAW,CAAC;MAC1B;MACA;IACF;IAEA,IAAIX,SAAS,EAAE;MACb,IAAII,EAAE,CAACQ,qBAAqB,CAAC,CAAC,EAAE;QAC9BX,MAAM,CAAC3E,IAAI,CAAC8E,EAAE,CAAC1C,GAAG,CAAC,IAAI,CAAC,CAAC;QACzB;MACF;MACA,IAAI0C,EAAE,CAACS,oBAAoB,CAAC,CAAC,EAAE;QAC7B;MACF;IACF;IAEA,IAAIP,IAAI,EAAE;MACR,KAAK,IAAI3E,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG2E,IAAI,CAAC1E,MAAM,EAAED,CAAC,EAAE,EAAE;QACpC,MAAMV,GAAG,GAAGqF,IAAI,CAAC3E,CAAC,CAAC;QACnB,MAAMmF,KAAK,GAAGV,EAAE,CAAC1C,GAAG,CAACzC,GAAG,CAAC;QACzB,IAAIyE,KAAK,CAACC,OAAO,CAACmB,KAAK,CAAC,EAAE;UACxBb,MAAM,CAAC3E,IAAI,CAAC,GAAGwF,KAAK,CAAC;QACvB,CAAC,MAAM,IAAIA,KAAK,CAAC1B,IAAI,EAAE;UACrBa,MAAM,CAAC3E,IAAI,CAACwF,KAAK,CAAC;QACpB;MACF;IACF;EACF;EAEA,OAAOZ,GAAG;AACZ;AAcA,SAASa,8BAA8BA,CAErCjB,UAAmB,GAAG,KAAK,EAC3B;EACA,OAAO,IAAI,CAACC,yBAAyB,CAACD,UAAU,EAAE,IAAI,CAAC;AACzD"}
\ No newline at end of file +{"version":3,"names":["_index","require","_t","getBindingIdentifiers","_getBindingIdentifiers","getOuterBindingIdentifiers","_getOuterBindingIdentifiers","isDeclaration","numericLiteral","unaryExpression","NORMAL_COMPLETION","BREAK_COMPLETION","NormalCompletion","path","type","BreakCompletion","getOpposite","key","getSibling","addCompletionRecords","records","context","push","_getCompletionRecords","completionRecordForSwitch","cases","lastNormalCompletions","i","length","casePath","caseCompletions","normalCompletions","breakCompletions","c","normalCompletionToBreak","completions","forEach","replaceBreakStatementInBreakCompletion","reachable","isBreakStatement","label","replaceWith","remove","getStatementListCompletion","paths","canHaveBreak","newContext","Object","assign","inCaseClause","isBlockStatement","shouldPopulateBreak","statementCompletions","every","some","pathCompletions","isVariableDeclaration","isIfStatement","get","isDoExpression","isFor","isWhile","isLabeledStatement","isProgram","isFunction","isTryStatement","isCatchClause","isSwitchStatement","isSwitchCase","getCompletionRecords","map","r","NodePath","parentPath","parent","container","listKey","setContext","getPrevSibling","getNextSibling","getAllNextSiblings","_key","sibling","siblings","node","getAllPrevSiblings","parts","split","_getKey","_getPattern","Array","isArray","_","part","duplicates","getBindingIdentifierPaths","outerOnly","search","ids","create","id","shift","keys","isIdentifier","_ids","name","isExportDeclaration","declaration","isFunctionDeclaration","isFunctionExpression","child","getOuterBindingIdentifierPaths"],"sources":["../../src/path/family.ts"],"sourcesContent":["// This file contains methods responsible for dealing with/retrieving children or siblings.\n\nimport type TraversalContext from \"../context.ts\";\nimport NodePath from \"./index.ts\";\nimport {\n getBindingIdentifiers as _getBindingIdentifiers,\n getOuterBindingIdentifiers as _getOuterBindingIdentifiers,\n isDeclaration,\n numericLiteral,\n unaryExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nconst NORMAL_COMPLETION = 0 as const;\nconst BREAK_COMPLETION = 1 as const;\n\ntype Completion = {\n path: NodePath;\n type: 0 | 1;\n};\n\ntype CompletionContext = {\n // whether the current context allows `break` statement. When it allows, we have\n // to search all the statements for potential `break`\n canHaveBreak: boolean;\n // whether the statement is an immediate descendant of a switch case clause\n inCaseClause: boolean;\n // whether the `break` statement record should be populated to upper level\n // when a `break` statement is an immediate descendant of a block statement, e.g.\n // `{ break }`, it can influence the control flow in the upper levels.\n shouldPopulateBreak: boolean;\n};\n\nfunction NormalCompletion(path: NodePath) {\n return { type: NORMAL_COMPLETION, path };\n}\n\nfunction BreakCompletion(path: NodePath) {\n return { type: BREAK_COMPLETION, path };\n}\n\nexport function getOpposite(this: NodePath): NodePath | null {\n if (this.key === \"left\") {\n return this.getSibling(\"right\");\n } else if (this.key === \"right\") {\n return this.getSibling(\"left\");\n }\n return null;\n}\n\nfunction addCompletionRecords(\n path: NodePath | null | undefined,\n records: Completion[],\n context: CompletionContext,\n): Completion[] {\n if (path) {\n records.push(..._getCompletionRecords(path, context));\n }\n return records;\n}\n\nfunction completionRecordForSwitch(\n cases: NodePath<t.SwitchCase>[],\n records: Completion[],\n context: CompletionContext,\n): Completion[] {\n // https://tc39.es/ecma262/#sec-runtime-semantics-caseblockevaluation\n let lastNormalCompletions: Completion[] = [];\n for (let i = 0; i < cases.length; i++) {\n const casePath = cases[i];\n const caseCompletions = _getCompletionRecords(casePath, context);\n const normalCompletions = [];\n const breakCompletions = [];\n for (const c of caseCompletions) {\n if (c.type === NORMAL_COMPLETION) {\n normalCompletions.push(c);\n }\n if (c.type === BREAK_COMPLETION) {\n breakCompletions.push(c);\n }\n }\n if (normalCompletions.length) {\n lastNormalCompletions = normalCompletions;\n }\n records.push(...breakCompletions);\n }\n records.push(...lastNormalCompletions);\n return records;\n}\n\nfunction normalCompletionToBreak(completions: Completion[]) {\n completions.forEach(c => {\n c.type = BREAK_COMPLETION;\n });\n}\n\n/**\n * Determine how we should handle the break statement for break completions\n *\n * @param {Completion[]} completions\n * @param {boolean} reachable Whether the break statement is reachable after\n we mark the normal completions _before_ the given break completions as the final\n completions. For example,\n `{ 0 }; break;` is transformed to `{ return 0 }; break;`, the `break` here is unreachable\n and thus can be removed without consequences. We may in the future reserve them instead since\n we do not consistently remove unreachable statements _after_ break\n `{ var x = 0 }; break;` is transformed to `{ var x = 0 }; return void 0;`, the `break` is reachable\n because we can not wrap variable declaration under a return statement\n */\nfunction replaceBreakStatementInBreakCompletion(\n completions: Completion[],\n reachable: boolean,\n) {\n completions.forEach(c => {\n if (c.path.isBreakStatement({ label: null })) {\n if (reachable) {\n c.path.replaceWith(unaryExpression(\"void\", numericLiteral(0)));\n } else {\n c.path.remove();\n }\n }\n });\n}\n\nfunction getStatementListCompletion(\n paths: NodePath[],\n context: CompletionContext,\n): Completion[] {\n const completions = [];\n if (context.canHaveBreak) {\n let lastNormalCompletions = [];\n for (let i = 0; i < paths.length; i++) {\n const path = paths[i];\n const newContext = { ...context, inCaseClause: false };\n if (\n path.isBlockStatement() &&\n (context.inCaseClause || // case test: { break }\n context.shouldPopulateBreak) // case test: { { break } }\n ) {\n newContext.shouldPopulateBreak = true;\n } else {\n newContext.shouldPopulateBreak = false;\n }\n const statementCompletions = _getCompletionRecords(path, newContext);\n if (\n statementCompletions.length > 0 &&\n // we can stop search `paths` when we have seen a `path` that is\n // effectively a `break` statement. Examples are\n // - `break`\n // - `if (true) { 1; break } else { 2; break }`\n // - `{ break }```\n // In other words, the paths after this `path` are unreachable\n statementCompletions.every(c => c.type === BREAK_COMPLETION)\n ) {\n if (\n lastNormalCompletions.length > 0 &&\n statementCompletions.every(c =>\n c.path.isBreakStatement({ label: null }),\n )\n ) {\n // when a break completion has a path as BreakStatement, it must be `{ break }`\n // whose completion value we can not determine, otherwise it would have been\n // replaced by `replaceBreakStatementInBreakCompletion`\n // When we have seen normal completions from the last statement\n // it is safe to stop populating break and mark normal completions as break\n normalCompletionToBreak(lastNormalCompletions);\n completions.push(...lastNormalCompletions);\n // Declarations have empty completion record, however they can not be nested\n // directly in return statement, i.e. `return (var a = 1)` is invalid.\n if (lastNormalCompletions.some(c => c.path.isDeclaration())) {\n completions.push(...statementCompletions);\n replaceBreakStatementInBreakCompletion(\n statementCompletions,\n /* reachable */ true,\n );\n }\n replaceBreakStatementInBreakCompletion(\n statementCompletions,\n /* reachable */ false,\n );\n } else {\n completions.push(...statementCompletions);\n if (!context.shouldPopulateBreak) {\n replaceBreakStatementInBreakCompletion(\n statementCompletions,\n /* reachable */ true,\n );\n }\n }\n break;\n }\n if (i === paths.length - 1) {\n completions.push(...statementCompletions);\n } else {\n lastNormalCompletions = [];\n for (let i = 0; i < statementCompletions.length; i++) {\n const c = statementCompletions[i];\n if (c.type === BREAK_COMPLETION) {\n completions.push(c);\n }\n if (c.type === NORMAL_COMPLETION) {\n lastNormalCompletions.push(c);\n }\n }\n }\n }\n } else if (paths.length) {\n // When we are in a context where `break` must not exist, we can skip linear\n // search on statement lists and assume that the last\n // non-variable-declaration statement determines the completion.\n for (let i = paths.length - 1; i >= 0; i--) {\n const pathCompletions = _getCompletionRecords(paths[i], context);\n if (\n pathCompletions.length > 1 ||\n (pathCompletions.length === 1 &&\n !pathCompletions[0].path.isVariableDeclaration())\n ) {\n completions.push(...pathCompletions);\n break;\n }\n }\n }\n return completions;\n}\n\nfunction _getCompletionRecords(\n path: NodePath,\n context: CompletionContext,\n): Completion[] {\n let records: Completion[] = [];\n if (path.isIfStatement()) {\n records = addCompletionRecords(path.get(\"consequent\"), records, context);\n records = addCompletionRecords(path.get(\"alternate\"), records, context);\n } else if (\n path.isDoExpression() ||\n path.isFor() ||\n path.isWhile() ||\n path.isLabeledStatement()\n ) {\n // @ts-expect-error(flow->ts): todo\n return addCompletionRecords(path.get(\"body\"), records, context);\n } else if (path.isProgram() || path.isBlockStatement()) {\n // @ts-expect-error(flow->ts): todo\n return getStatementListCompletion(path.get(\"body\"), context);\n } else if (path.isFunction()) {\n return _getCompletionRecords(path.get(\"body\"), context);\n } else if (path.isTryStatement()) {\n records = addCompletionRecords(path.get(\"block\"), records, context);\n records = addCompletionRecords(path.get(\"handler\"), records, context);\n } else if (path.isCatchClause()) {\n return addCompletionRecords(path.get(\"body\"), records, context);\n } else if (path.isSwitchStatement()) {\n return completionRecordForSwitch(path.get(\"cases\"), records, context);\n } else if (path.isSwitchCase()) {\n return getStatementListCompletion(path.get(\"consequent\"), {\n canHaveBreak: true,\n shouldPopulateBreak: false,\n inCaseClause: true,\n });\n } else if (path.isBreakStatement()) {\n records.push(BreakCompletion(path));\n } else {\n records.push(NormalCompletion(path));\n }\n\n return records;\n}\n\n/**\n * Retrieve the completion records of a given path.\n * Note: to ensure proper support on `break` statement, this method\n * will manipulate the AST around the break statement. Do not call the method\n * twice for the same path.\n *\n * @export\n * @param {NodePath} this\n * @returns {NodePath[]} Completion records\n */\nexport function getCompletionRecords(this: NodePath): NodePath[] {\n const records = _getCompletionRecords(this, {\n canHaveBreak: false,\n shouldPopulateBreak: false,\n inCaseClause: false,\n });\n return records.map(r => r.path);\n}\n\nexport function getSibling(this: NodePath, key: string | number): NodePath {\n return NodePath.get({\n parentPath: this.parentPath,\n parent: this.parent,\n container: this.container,\n listKey: this.listKey,\n key: key,\n }).setContext(this.context);\n}\n\nexport function getPrevSibling(this: NodePath): NodePath {\n // @ts-expect-error todo(flow->ts) this.key could be a string\n return this.getSibling(this.key - 1);\n}\n\nexport function getNextSibling(this: NodePath): NodePath {\n // @ts-expect-error todo(flow->ts) this.key could be a string\n return this.getSibling(this.key + 1);\n}\n\nexport function getAllNextSiblings(this: NodePath): NodePath[] {\n // @ts-expect-error todo(flow->ts) this.key could be a string\n let _key: number = this.key;\n let sibling = this.getSibling(++_key);\n const siblings = [];\n while (sibling.node) {\n siblings.push(sibling);\n sibling = this.getSibling(++_key);\n }\n return siblings;\n}\n\nexport function getAllPrevSiblings(this: NodePath): NodePath[] {\n // @ts-expect-error todo(flow->ts) this.key could be a string\n let _key: number = this.key;\n let sibling = this.getSibling(--_key);\n const siblings = [];\n while (sibling.node) {\n siblings.push(sibling);\n sibling = this.getSibling(--_key);\n }\n return siblings;\n}\n\n// convert \"1\" to 1 (string index to number index)\ntype MaybeToIndex<T extends string> = T extends `${bigint}` ? number : T;\n\ntype Pattern<Obj extends string, Prop extends string> = `${Obj}.${Prop}`;\n\n// split \"body.body.1\" to [\"body\", \"body\", 1]\ntype Split<P extends string> = P extends Pattern<infer O, infer U>\n ? [MaybeToIndex<O>, ...Split<U>]\n : [MaybeToIndex<P>];\n\n// get all K with Node[K] is t.Node | t.Node[]\ntype NodeKeyOf<Node extends t.Node | t.Node[]> = keyof Pick<\n Node,\n {\n [Key in keyof Node]-?: Node[Key] extends t.Node | t.Node[] ? Key : never;\n }[keyof Node]\n>;\n\n// traverse the Node with tuple path [\"body\", \"body\", 1]\n// Path should be created with Split\ntype Trav<\n Node extends t.Node | t.Node[],\n Path extends unknown[],\n> = Path extends [infer K, ...infer R]\n ? K extends NodeKeyOf<Node>\n ? R extends []\n ? Node[K]\n : // @ts-expect-error ignore since TS is not smart enough\n Trav<Node[K], R>\n : never\n : never;\n\ntype ToNodePath<T> = T extends Array<t.Node | null | undefined>\n ? Array<NodePath<T[number]>>\n : T extends t.Node | null | undefined\n ? NodePath<T>\n : never;\n\nfunction get<T extends t.Node, K extends keyof T>(\n this: NodePath<T>,\n key: K,\n context?: boolean | TraversalContext,\n): T[K] extends Array<t.Node | null | undefined>\n ? Array<NodePath<T[K][number]>>\n : T[K] extends t.Node | null | undefined\n ? NodePath<T[K]>\n : never;\n\nfunction get<T extends t.Node, K extends string>(\n this: NodePath<T>,\n key: K,\n context?: boolean | TraversalContext,\n): ToNodePath<Trav<T, Split<K>>>;\n\nfunction get<T extends t.Node>(\n this: NodePath<T>,\n key: string,\n context?: true | TraversalContext,\n): NodePath | NodePath[];\n\nfunction get<T extends t.Node>(\n this: NodePath<T>,\n key: string,\n context: true | TraversalContext = true,\n): NodePath | NodePath[] {\n if (context === true) context = this.context;\n const parts = key.split(\".\");\n if (parts.length === 1) {\n // \"foo\"\n // @ts-expect-error key may not index T\n return this._getKey(key, context);\n } else {\n // \"foo.bar\"\n return this._getPattern(parts, context);\n }\n}\n\nexport { get };\n\nexport function _getKey<T extends t.Node>(\n this: NodePath<T>,\n key: keyof T & string,\n context?: TraversalContext,\n): NodePath | NodePath[] {\n const node = this.node;\n const container = node[key];\n\n if (Array.isArray(container)) {\n // requested a container so give them all the paths\n return container.map((_, i) => {\n return NodePath.get({\n listKey: key,\n parentPath: this,\n parent: node,\n container: container,\n key: i,\n }).setContext(context);\n });\n } else {\n return NodePath.get({\n parentPath: this,\n parent: node,\n container: node,\n key: key,\n }).setContext(context);\n }\n}\n\nexport function _getPattern(\n this: NodePath,\n parts: string[],\n context?: TraversalContext,\n): NodePath | NodePath[] {\n let path: NodePath | NodePath[] = this;\n for (const part of parts) {\n if (part === \".\") {\n // @ts-expect-error todo(flow-ts): Can path be an array here?\n path = path.parentPath;\n } else {\n if (Array.isArray(path)) {\n // @ts-expect-error part may not index path\n path = path[part];\n } else {\n path = path.get(part, context);\n }\n }\n }\n return path;\n}\n\nfunction getBindingIdentifiers(\n duplicates: true,\n): Record<string, t.Identifier[]>;\nfunction getBindingIdentifiers(\n duplicates?: false,\n): Record<string, t.Identifier>;\nfunction getBindingIdentifiers(\n duplicates: boolean,\n): Record<string, t.Identifier[] | t.Identifier>;\n\nfunction getBindingIdentifiers(\n this: NodePath,\n duplicates?: boolean,\n): Record<string, t.Identifier[] | t.Identifier> {\n return _getBindingIdentifiers(this.node, duplicates);\n}\n\nexport { getBindingIdentifiers };\n\nfunction getOuterBindingIdentifiers(\n duplicates: true,\n): Record<string, t.Identifier[]>;\nfunction getOuterBindingIdentifiers(\n duplicates?: false,\n): Record<string, t.Identifier>;\nfunction getOuterBindingIdentifiers(\n duplicates: boolean,\n): Record<string, t.Identifier[] | t.Identifier>;\n\nfunction getOuterBindingIdentifiers(\n this: NodePath,\n duplicates?: boolean,\n): Record<string, t.Identifier[] | t.Identifier> {\n return _getOuterBindingIdentifiers(this.node, duplicates);\n}\n\nexport { getOuterBindingIdentifiers };\n\nfunction getBindingIdentifierPaths(\n duplicates: true,\n outerOnly?: boolean,\n): Record<string, NodePath<t.Identifier>[]>;\nfunction getBindingIdentifierPaths(\n duplicates: false,\n outerOnly?: boolean,\n): Record<string, NodePath<t.Identifier>>;\nfunction getBindingIdentifierPaths(\n duplicates?: boolean,\n outerOnly?: boolean,\n): Record<string, NodePath<t.Identifier> | NodePath<t.Identifier>[]>;\n\n// original source - https://github.com/babel/babel/blob/main/packages/babel-types/src/retrievers/getBindingIdentifiers.js\n// path.getBindingIdentifiers returns nodes where the following re-implementation returns paths\nfunction getBindingIdentifierPaths(\n this: NodePath,\n duplicates: boolean = false,\n outerOnly: boolean = false,\n): Record<string, NodePath<t.Identifier> | NodePath<t.Identifier>[]> {\n const path = this;\n const search = [path];\n const ids = Object.create(null);\n\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n if (!id.node) continue;\n\n const keys =\n // @ts-expect-error _getBindingIdentifiers.keys do not cover all node types\n _getBindingIdentifiers.keys[id.node.type];\n\n if (id.isIdentifier()) {\n if (duplicates) {\n const _ids = (ids[id.node.name] = ids[id.node.name] || []);\n _ids.push(id);\n } else {\n ids[id.node.name] = id;\n }\n continue;\n }\n\n if (id.isExportDeclaration()) {\n const declaration = id.get(\"declaration\");\n if (isDeclaration(declaration)) {\n search.push(declaration);\n }\n continue;\n }\n\n if (outerOnly) {\n if (id.isFunctionDeclaration()) {\n search.push(id.get(\"id\"));\n continue;\n }\n if (id.isFunctionExpression()) {\n continue;\n }\n }\n\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const child = id.get(key);\n if (Array.isArray(child)) {\n search.push(...child);\n } else if (child.node) {\n search.push(child);\n }\n }\n }\n }\n\n return ids;\n}\n\nexport { getBindingIdentifierPaths };\n\nfunction getOuterBindingIdentifierPaths(\n duplicates: true,\n): Record<string, NodePath<t.Identifier>[]>;\nfunction getOuterBindingIdentifierPaths(\n duplicates?: false,\n): Record<string, NodePath<t.Identifier>>;\nfunction getOuterBindingIdentifierPaths(\n duplicates?: boolean,\n): Record<string, NodePath<t.Identifier> | NodePath<t.Identifier>[]>;\n\nfunction getOuterBindingIdentifierPaths(\n this: NodePath,\n duplicates: boolean = false,\n) {\n return this.getBindingIdentifierPaths(duplicates, true);\n}\n\nexport { getOuterBindingIdentifierPaths };\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/index.js b/node_modules/@babel/traverse/lib/path/index.js index 640d758e..c835fdc0 100644 --- a/node_modules/@babel/traverse/lib/path/index.js +++ b/node_modules/@babel/traverse/lib/path/index.js @@ -28,12 +28,9 @@ const { validate } = _t; const debug = _debug("babel"); -const REMOVED = 1 << 0; -exports.REMOVED = REMOVED; -const SHOULD_STOP = 1 << 1; -exports.SHOULD_STOP = SHOULD_STOP; -const SHOULD_SKIP = 1 << 2; -exports.SHOULD_SKIP = SHOULD_SKIP; +const REMOVED = exports.REMOVED = 1 << 0; +const SHOULD_STOP = exports.SHOULD_STOP = 1 << 1; +const SHOULD_SKIP = exports.SHOULD_SKIP = 1 << 2; class NodePath { constructor(hub, parent) { this.contexts = []; @@ -187,7 +184,6 @@ for (const type of Object.keys(virtualTypes)) { if (type[0] === "_") continue; if (!t.TYPES.includes(type)) t.TYPES.push(type); } -var _default = NodePath; -exports.default = _default; +var _default = exports.default = NodePath; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/traverse/lib/path/index.js.map b/node_modules/@babel/traverse/lib/path/index.js.map index f9b0cd98..003dcea8 100644 --- a/node_modules/@babel/traverse/lib/path/index.js.map +++ b/node_modules/@babel/traverse/lib/path/index.js.map @@ -1 +1 @@ -{"version":3,"names":["virtualTypes","require","_debug","_index","_index2","_t","t","cache","_generator","NodePath_ancestry","NodePath_inference","NodePath_replacement","NodePath_evaluation","NodePath_conversion","NodePath_introspection","NodePath_context","NodePath_removal","NodePath_modification","NodePath_family","NodePath_comments","NodePath_virtual_types_validator","validate","debug","buildDebug","REMOVED","exports","SHOULD_STOP","SHOULD_SKIP","NodePath","constructor","hub","parent","contexts","state","opts","_traverseFlags","skipKeys","parentPath","container","listKey","key","node","type","data","context","scope","get","Error","targetNode","paths","getOrCreateCachedPaths","path","set","setup","getScope","isScope","Scope","setData","val","Object","create","getData","def","undefined","hasNode","buildCodeFrameError","msg","SyntaxError","buildError","traverse","visitor","getPathLocation","parts","inList","unshift","join","message","enabled","toString","generator","code","parentKey","shouldSkip","v","shouldStop","removed","assign","prototype","_guessExecutionStatusRelativeToDifferentFunctions","_guessExecutionStatusRelativeTo","TYPES","typeKey","fn","TypeError","keys","includes","push","_default","default"],"sources":["../../src/path/index.ts"],"sourcesContent":["import type { HubInterface } from \"../hub.ts\";\nimport type TraversalContext from \"../context.ts\";\nimport type { ExplodedTraverseOptions } from \"../index.ts\";\nimport * as virtualTypes from \"./lib/virtual-types.ts\";\nimport buildDebug from \"debug\";\nimport traverse from \"../index.ts\";\nimport type { Visitor } from \"../types.ts\";\nimport Scope from \"../scope/index.ts\";\nimport { validate } from \"@babel/types\";\nimport * as t from \"@babel/types\";\nimport * as cache from \"../cache.ts\";\nimport generator from \"@babel/generator\";\n\n// NodePath is split across many files.\nimport * as NodePath_ancestry from \"./ancestry.ts\";\nimport * as NodePath_inference from \"./inference/index.ts\";\nimport * as NodePath_replacement from \"./replacement.ts\";\nimport * as NodePath_evaluation from \"./evaluation.ts\";\nimport * as NodePath_conversion from \"./conversion.ts\";\nimport * as NodePath_introspection from \"./introspection.ts\";\nimport * as NodePath_context from \"./context.ts\";\nimport * as NodePath_removal from \"./removal.ts\";\nimport * as NodePath_modification from \"./modification.ts\";\nimport * as NodePath_family from \"./family.ts\";\nimport * as NodePath_comments from \"./comments.ts\";\nimport * as NodePath_virtual_types_validator from \"./lib/virtual-types-validator.ts\";\nimport type { NodePathAssertions } from \"./generated/asserts.ts\";\nimport type { NodePathValidators } from \"./generated/validators.ts\";\n\nconst debug = buildDebug(\"babel\");\n\nexport const REMOVED = 1 << 0;\nexport const SHOULD_STOP = 1 << 1;\nexport const SHOULD_SKIP = 1 << 2;\n\nclass NodePath<T extends t.Node = t.Node> {\n constructor(hub: HubInterface, parent: t.ParentMaps[T[\"type\"]]) {\n this.parent = parent;\n this.hub = hub;\n this.data = null;\n\n this.context = null;\n this.scope = null;\n }\n\n declare parent: t.ParentMaps[T[\"type\"]];\n declare hub: HubInterface;\n declare data: Record<string | symbol, unknown>;\n // TraversalContext is configured by setContext\n declare context: TraversalContext;\n declare scope: Scope;\n\n contexts: Array<TraversalContext> = [];\n state: any = null;\n opts: ExplodedTraverseOptions | null = null;\n // this.shouldSkip = false; this.shouldStop = false; this.removed = false;\n _traverseFlags: number = 0;\n skipKeys: Record<string, boolean> | null = null;\n parentPath: t.ParentMaps[T[\"type\"]] extends null\n ? null\n : NodePath<t.ParentMaps[T[\"type\"]]> | null = null;\n container: t.Node | Array<t.Node> | null = null;\n listKey: string | null = null;\n key: string | number | null = null;\n node: T = null;\n type: T[\"type\"] | null = null;\n\n static get({\n hub,\n parentPath,\n parent,\n container,\n listKey,\n key,\n }: {\n hub?: HubInterface;\n parentPath: NodePath | null;\n parent: t.Node;\n container: t.Node | t.Node[];\n listKey?: string;\n key: string | number;\n }): NodePath {\n if (!hub && parentPath) {\n hub = parentPath.hub;\n }\n\n if (!parent) {\n throw new Error(\"To get a node path the parent needs to exist\");\n }\n\n const targetNode =\n // @ts-expect-error key must present in container\n container[key];\n\n const paths = cache.getOrCreateCachedPaths(hub, parent);\n\n let path = paths.get(targetNode);\n if (!path) {\n path = new NodePath(hub, parent);\n if (targetNode) paths.set(targetNode, path);\n }\n\n path.setup(parentPath, container, listKey, key);\n\n return path;\n }\n\n getScope(scope: Scope): Scope {\n return this.isScope() ? new Scope(this) : scope;\n }\n\n setData(key: string | symbol, val: any): any {\n if (this.data == null) {\n this.data = Object.create(null);\n }\n return (this.data[key] = val);\n }\n\n getData(key: string | symbol, def?: any): any {\n if (this.data == null) {\n this.data = Object.create(null);\n }\n let val = this.data[key];\n if (val === undefined && def !== undefined) val = this.data[key] = def;\n return val;\n }\n\n hasNode(): this is NodePath<NonNullable<this[\"node\"]>> {\n return this.node != null;\n }\n\n buildCodeFrameError(\n msg: string,\n Error: new () => Error = SyntaxError,\n ): Error {\n return this.hub.buildError(this.node, msg, Error);\n }\n\n traverse<T>(visitor: Visitor<T>, state: T): void;\n traverse(visitor: Visitor): void;\n traverse(visitor: any, state?: any) {\n traverse(this.node, visitor, this.scope, state, this);\n }\n\n set(key: string, node: any) {\n validate(this.node, key, node);\n // @ts-expect-error key must present in this.node\n this.node[key] = node;\n }\n\n getPathLocation(): string {\n const parts = [];\n let path: NodePath = this;\n do {\n let key = path.key;\n if (path.inList) key = `${path.listKey}[${key}]`;\n parts.unshift(key);\n } while ((path = path.parentPath));\n return parts.join(\".\");\n }\n\n debug(message: string) {\n if (!debug.enabled) return;\n debug(`${this.getPathLocation()} ${this.type}: ${message}`);\n }\n\n toString() {\n return generator(this.node).code;\n }\n\n get inList() {\n return !!this.listKey;\n }\n\n set inList(inList) {\n if (!inList) {\n this.listKey = null;\n }\n // ignore inList = true as it should depend on `listKey`\n }\n\n get parentKey(): string {\n return (this.listKey || this.key) as string;\n }\n\n get shouldSkip() {\n return !!(this._traverseFlags & SHOULD_SKIP);\n }\n\n set shouldSkip(v) {\n if (v) {\n this._traverseFlags |= SHOULD_SKIP;\n } else {\n this._traverseFlags &= ~SHOULD_SKIP;\n }\n }\n\n get shouldStop() {\n return !!(this._traverseFlags & SHOULD_STOP);\n }\n\n set shouldStop(v) {\n if (v) {\n this._traverseFlags |= SHOULD_STOP;\n } else {\n this._traverseFlags &= ~SHOULD_STOP;\n }\n }\n\n get removed() {\n return !!(this._traverseFlags & REMOVED);\n }\n set removed(v) {\n if (v) {\n this._traverseFlags |= REMOVED;\n } else {\n this._traverseFlags &= ~REMOVED;\n }\n }\n}\n\nObject.assign(\n NodePath.prototype,\n NodePath_ancestry,\n NodePath_inference,\n NodePath_replacement,\n NodePath_evaluation,\n NodePath_conversion,\n NodePath_introspection,\n NodePath_context,\n NodePath_removal,\n NodePath_modification,\n NodePath_family,\n NodePath_comments,\n);\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-expect-error The original _guessExecutionStatusRelativeToDifferentFunctions only worked for paths in\n // different functions, but _guessExecutionStatusRelativeTo works as a replacement in those cases.\n NodePath.prototype._guessExecutionStatusRelativeToDifferentFunctions =\n NodePath_introspection._guessExecutionStatusRelativeTo;\n}\n\n// we can not use `import { TYPES } from \"@babel/types\"` here\n// because the transformNamedBabelTypesImportToDestructuring plugin in babel.config.js\n// does not offer live bindings for `TYPES`\n// we can change to `import { TYPES }` when we are publishing ES modules only\nfor (const type of t.TYPES) {\n const typeKey = `is${type}`;\n // @ts-expect-error typeKey must present in t\n const fn = t[typeKey];\n // @ts-expect-error augmenting NodePath prototype\n NodePath.prototype[typeKey] = function (opts: any) {\n return fn(this.node, opts);\n };\n\n // @ts-expect-error augmenting NodePath prototype\n NodePath.prototype[`assert${type}`] = function (opts: any) {\n if (!fn(this.node, opts)) {\n throw new TypeError(`Expected node path of type ${type}`);\n }\n };\n}\n\n// Register virtual types validators after base types validators\nObject.assign(NodePath.prototype, NodePath_virtual_types_validator);\n\nfor (const type of Object.keys(virtualTypes) as (keyof typeof virtualTypes)[]) {\n if (type[0] === \"_\") continue;\n if (!t.TYPES.includes(type)) t.TYPES.push(type);\n}\n\ntype NodePathMixins = typeof NodePath_ancestry &\n typeof NodePath_inference &\n typeof NodePath_replacement &\n typeof NodePath_evaluation &\n typeof NodePath_conversion &\n typeof NodePath_introspection &\n typeof NodePath_context &\n typeof NodePath_removal &\n typeof NodePath_modification &\n typeof NodePath_family &\n typeof NodePath_comments;\n\n// @ts-expect-error TS throws because ensureBlock returns the body node path\n// however, we don't use the return value and treat it as a transform and\n// assertion utilities. For better type inference we annotate it as an\n// assertion method\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ninterface NodePath<T>\n extends NodePathAssertions,\n NodePathValidators,\n NodePathMixins {\n /**\n * @see ./conversion.ts for implementation\n */\n ensureBlock<\n T extends\n | t.Loop\n | t.WithStatement\n | t.Function\n | t.LabeledStatement\n | t.CatchClause,\n >(\n this: NodePath<T>,\n ): asserts this is NodePath<T & { body: t.BlockStatement }>;\n}\n\nexport default NodePath;\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["virtualTypes","require","_debug","_index","_index2","_t","t","cache","_generator","NodePath_ancestry","NodePath_inference","NodePath_replacement","NodePath_evaluation","NodePath_conversion","NodePath_introspection","NodePath_context","NodePath_removal","NodePath_modification","NodePath_family","NodePath_comments","NodePath_virtual_types_validator","validate","debug","buildDebug","REMOVED","exports","SHOULD_STOP","SHOULD_SKIP","NodePath","constructor","hub","parent","contexts","state","opts","_traverseFlags","skipKeys","parentPath","container","listKey","key","node","type","data","context","scope","get","Error","targetNode","paths","getOrCreateCachedPaths","path","set","setup","getScope","isScope","Scope","setData","val","Object","create","getData","def","undefined","hasNode","buildCodeFrameError","msg","SyntaxError","buildError","traverse","visitor","getPathLocation","parts","inList","unshift","join","message","enabled","toString","generator","code","parentKey","shouldSkip","v","shouldStop","removed","assign","prototype","_guessExecutionStatusRelativeToDifferentFunctions","_guessExecutionStatusRelativeTo","TYPES","typeKey","fn","TypeError","keys","includes","push","_default","default"],"sources":["../../src/path/index.ts"],"sourcesContent":["import type { HubInterface } from \"../hub.ts\";\nimport type TraversalContext from \"../context.ts\";\nimport type { ExplodedTraverseOptions } from \"../index.ts\";\nimport * as virtualTypes from \"./lib/virtual-types.ts\";\nimport buildDebug from \"debug\";\nimport traverse from \"../index.ts\";\nimport type { Visitor } from \"../types.ts\";\nimport Scope from \"../scope/index.ts\";\nimport { validate } from \"@babel/types\";\nimport * as t from \"@babel/types\";\nimport * as cache from \"../cache.ts\";\nimport generator from \"@babel/generator\";\n\n// NodePath is split across many files.\nimport * as NodePath_ancestry from \"./ancestry.ts\";\nimport * as NodePath_inference from \"./inference/index.ts\";\nimport * as NodePath_replacement from \"./replacement.ts\";\nimport * as NodePath_evaluation from \"./evaluation.ts\";\nimport * as NodePath_conversion from \"./conversion.ts\";\nimport * as NodePath_introspection from \"./introspection.ts\";\nimport * as NodePath_context from \"./context.ts\";\nimport * as NodePath_removal from \"./removal.ts\";\nimport * as NodePath_modification from \"./modification.ts\";\nimport * as NodePath_family from \"./family.ts\";\nimport * as NodePath_comments from \"./comments.ts\";\nimport * as NodePath_virtual_types_validator from \"./lib/virtual-types-validator.ts\";\nimport type { NodePathAssertions } from \"./generated/asserts.ts\";\nimport type { NodePathValidators } from \"./generated/validators.ts\";\n\nconst debug = buildDebug(\"babel\");\n\nexport const REMOVED = 1 << 0;\nexport const SHOULD_STOP = 1 << 1;\nexport const SHOULD_SKIP = 1 << 2;\n\nclass NodePath<T extends t.Node = t.Node> {\n constructor(hub: HubInterface, parent: t.ParentMaps[T[\"type\"]]) {\n this.parent = parent;\n this.hub = hub;\n this.data = null;\n\n this.context = null;\n this.scope = null;\n }\n\n declare parent: t.ParentMaps[T[\"type\"]];\n declare hub: HubInterface;\n declare data: Record<string | symbol, unknown>;\n // TraversalContext is configured by setContext\n declare context: TraversalContext;\n declare scope: Scope;\n\n contexts: Array<TraversalContext> = [];\n state: any = null;\n opts: ExplodedTraverseOptions | null = null;\n // this.shouldSkip = false; this.shouldStop = false; this.removed = false;\n _traverseFlags: number = 0;\n skipKeys: Record<string, boolean> | null = null;\n parentPath: t.ParentMaps[T[\"type\"]] extends null\n ? null\n : NodePath<t.ParentMaps[T[\"type\"]]> | null = null;\n container: t.Node | Array<t.Node> | null = null;\n listKey: string | null = null;\n key: string | number | null = null;\n node: T = null;\n type: T[\"type\"] | null = null;\n\n static get({\n hub,\n parentPath,\n parent,\n container,\n listKey,\n key,\n }: {\n hub?: HubInterface;\n parentPath: NodePath | null;\n parent: t.Node;\n container: t.Node | t.Node[];\n listKey?: string;\n key: string | number;\n }): NodePath {\n if (!hub && parentPath) {\n hub = parentPath.hub;\n }\n\n if (!parent) {\n throw new Error(\"To get a node path the parent needs to exist\");\n }\n\n const targetNode =\n // @ts-expect-error key must present in container\n container[key];\n\n const paths = cache.getOrCreateCachedPaths(hub, parent);\n\n let path = paths.get(targetNode);\n if (!path) {\n path = new NodePath(hub, parent);\n if (targetNode) paths.set(targetNode, path);\n }\n\n path.setup(parentPath, container, listKey, key);\n\n return path;\n }\n\n getScope(scope: Scope): Scope {\n return this.isScope() ? new Scope(this) : scope;\n }\n\n setData(key: string | symbol, val: any): any {\n if (this.data == null) {\n this.data = Object.create(null);\n }\n return (this.data[key] = val);\n }\n\n getData(key: string | symbol, def?: any): any {\n if (this.data == null) {\n this.data = Object.create(null);\n }\n let val = this.data[key];\n if (val === undefined && def !== undefined) val = this.data[key] = def;\n return val;\n }\n\n hasNode(): this is NodePath<NonNullable<this[\"node\"]>> {\n return this.node != null;\n }\n\n buildCodeFrameError(\n msg: string,\n Error: new () => Error = SyntaxError,\n ): Error {\n return this.hub.buildError(this.node, msg, Error);\n }\n\n traverse<T>(visitor: Visitor<T>, state: T): void;\n traverse(visitor: Visitor): void;\n traverse(visitor: any, state?: any) {\n traverse(this.node, visitor, this.scope, state, this);\n }\n\n set(key: string, node: any) {\n validate(this.node, key, node);\n // @ts-expect-error key must present in this.node\n this.node[key] = node;\n }\n\n getPathLocation(): string {\n const parts = [];\n let path: NodePath = this;\n do {\n let key = path.key;\n if (path.inList) key = `${path.listKey}[${key}]`;\n parts.unshift(key);\n } while ((path = path.parentPath));\n return parts.join(\".\");\n }\n\n debug(message: string) {\n if (!debug.enabled) return;\n debug(`${this.getPathLocation()} ${this.type}: ${message}`);\n }\n\n toString() {\n return generator(this.node).code;\n }\n\n get inList() {\n return !!this.listKey;\n }\n\n set inList(inList) {\n if (!inList) {\n this.listKey = null;\n }\n // ignore inList = true as it should depend on `listKey`\n }\n\n get parentKey(): string {\n return (this.listKey || this.key) as string;\n }\n\n get shouldSkip() {\n return !!(this._traverseFlags & SHOULD_SKIP);\n }\n\n set shouldSkip(v) {\n if (v) {\n this._traverseFlags |= SHOULD_SKIP;\n } else {\n this._traverseFlags &= ~SHOULD_SKIP;\n }\n }\n\n get shouldStop() {\n return !!(this._traverseFlags & SHOULD_STOP);\n }\n\n set shouldStop(v) {\n if (v) {\n this._traverseFlags |= SHOULD_STOP;\n } else {\n this._traverseFlags &= ~SHOULD_STOP;\n }\n }\n\n get removed() {\n return !!(this._traverseFlags & REMOVED);\n }\n set removed(v) {\n if (v) {\n this._traverseFlags |= REMOVED;\n } else {\n this._traverseFlags &= ~REMOVED;\n }\n }\n}\n\nObject.assign(\n NodePath.prototype,\n NodePath_ancestry,\n NodePath_inference,\n NodePath_replacement,\n NodePath_evaluation,\n NodePath_conversion,\n NodePath_introspection,\n NodePath_context,\n NodePath_removal,\n NodePath_modification,\n NodePath_family,\n NodePath_comments,\n);\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-expect-error The original _guessExecutionStatusRelativeToDifferentFunctions only worked for paths in\n // different functions, but _guessExecutionStatusRelativeTo works as a replacement in those cases.\n NodePath.prototype._guessExecutionStatusRelativeToDifferentFunctions =\n NodePath_introspection._guessExecutionStatusRelativeTo;\n}\n\n// we can not use `import { TYPES } from \"@babel/types\"` here\n// because the transformNamedBabelTypesImportToDestructuring plugin in babel.config.js\n// does not offer live bindings for `TYPES`\n// we can change to `import { TYPES }` when we are publishing ES modules only\nfor (const type of t.TYPES) {\n const typeKey = `is${type}`;\n // @ts-expect-error typeKey must present in t\n const fn = t[typeKey];\n // @ts-expect-error augmenting NodePath prototype\n NodePath.prototype[typeKey] = function (opts: any) {\n return fn(this.node, opts);\n };\n\n // @ts-expect-error augmenting NodePath prototype\n NodePath.prototype[`assert${type}`] = function (opts: any) {\n if (!fn(this.node, opts)) {\n throw new TypeError(`Expected node path of type ${type}`);\n }\n };\n}\n\n// Register virtual types validators after base types validators\nObject.assign(NodePath.prototype, NodePath_virtual_types_validator);\n\nfor (const type of Object.keys(virtualTypes) as (keyof typeof virtualTypes)[]) {\n if (type[0] === \"_\") continue;\n if (!t.TYPES.includes(type)) t.TYPES.push(type);\n}\n\ntype NodePathMixins = typeof NodePath_ancestry &\n typeof NodePath_inference &\n typeof NodePath_replacement &\n typeof NodePath_evaluation &\n typeof NodePath_conversion &\n typeof NodePath_introspection &\n typeof NodePath_context &\n typeof NodePath_removal &\n typeof NodePath_modification &\n typeof NodePath_family &\n typeof NodePath_comments;\n\n// @ts-expect-error TS throws because ensureBlock returns the body node path\n// however, we don't use the return value and treat it as a transform and\n// assertion utilities. For better type inference we annotate it as an\n// assertion method\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\ninterface NodePath<T>\n extends NodePathAssertions,\n NodePathValidators,\n NodePathMixins {\n /**\n * @see ./conversion.ts for implementation\n */\n ensureBlock<\n T extends\n | t.Loop\n | t.WithStatement\n | t.Function\n | t.LabeledStatement\n | t.CatchClause,\n >(\n this: NodePath<T>,\n ): asserts this is NodePath<T & { body: t.BlockStatement }>;\n}\n\nexport default NodePath;\n"],"mappings":";;;;;;AAGA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,EAAA,GAAAJ,OAAA;AAAwC,IAAAK,CAAA,GAAAD,EAAA;AAExC,IAAAE,KAAA,GAAAN,OAAA;AACA,IAAAO,UAAA,GAAAP,OAAA;AAGA,IAAAQ,iBAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,oBAAA,GAAAV,OAAA;AACA,IAAAW,mBAAA,GAAAX,OAAA;AACA,IAAAY,mBAAA,GAAAZ,OAAA;AACA,IAAAa,sBAAA,GAAAb,OAAA;AACA,IAAAc,gBAAA,GAAAd,OAAA;AACA,IAAAe,gBAAA,GAAAf,OAAA;AACA,IAAAgB,qBAAA,GAAAhB,OAAA;AACA,IAAAiB,eAAA,GAAAjB,OAAA;AACA,IAAAkB,iBAAA,GAAAlB,OAAA;AACA,IAAAmB,gCAAA,GAAAnB,OAAA;AAAqF;EAjB5EoB;AAAQ,IAAAhB,EAAA;AAqBjB,MAAMiB,KAAK,GAAGC,MAAU,CAAC,OAAO,CAAC;AAE1B,MAAMC,OAAO,GAAAC,OAAA,CAAAD,OAAA,GAAG,CAAC,IAAI,CAAC;AACtB,MAAME,WAAW,GAAAD,OAAA,CAAAC,WAAA,GAAG,CAAC,IAAI,CAAC;AAC1B,MAAMC,WAAW,GAAAF,OAAA,CAAAE,WAAA,GAAG,CAAC,IAAI,CAAC;AAEjC,MAAMC,QAAQ,CAA4B;EACxCC,WAAWA,CAACC,GAAiB,EAAEC,MAA+B,EAAE;IAAA,KAgBhEC,QAAQ,GAA4B,EAAE;IAAA,KACtCC,KAAK,GAAQ,IAAI;IAAA,KACjBC,IAAI,GAAmC,IAAI;IAAA,KAE3CC,cAAc,GAAW,CAAC;IAAA,KAC1BC,QAAQ,GAAmC,IAAI;IAAA,KAC/CC,UAAU,GAEqC,IAAI;IAAA,KACnDC,SAAS,GAAkC,IAAI;IAAA,KAC/CC,OAAO,GAAkB,IAAI;IAAA,KAC7BC,GAAG,GAA2B,IAAI;IAAA,KAClCC,IAAI,GAAM,IAAI;IAAA,KACdC,IAAI,GAAqB,IAAI;IA5B3B,IAAI,CAACX,MAAM,GAAGA,MAAM;IACpB,IAAI,CAACD,GAAG,GAAGA,GAAG;IACd,IAAI,CAACa,IAAI,GAAG,IAAI;IAEhB,IAAI,CAACC,OAAO,GAAG,IAAI;IACnB,IAAI,CAACC,KAAK,GAAG,IAAI;EACnB;EAwBA,OAAOC,GAAGA,CAAC;IACThB,GAAG;IACHO,UAAU;IACVN,MAAM;IACNO,SAAS;IACTC,OAAO;IACPC;EAQF,CAAC,EAAY;IACX,IAAI,CAACV,GAAG,IAAIO,UAAU,EAAE;MACtBP,GAAG,GAAGO,UAAU,CAACP,GAAG;IACtB;IAEA,IAAI,CAACC,MAAM,EAAE;MACX,MAAM,IAAIgB,KAAK,CAAC,8CAA8C,CAAC;IACjE;IAEA,MAAMC,UAAU,GAEdV,SAAS,CAACE,GAAG,CAAC;IAEhB,MAAMS,KAAK,GAAG1C,KAAK,CAAC2C,sBAAsB,CAACpB,GAAG,EAAEC,MAAM,CAAC;IAEvD,IAAIoB,IAAI,GAAGF,KAAK,CAACH,GAAG,CAACE,UAAU,CAAC;IAChC,IAAI,CAACG,IAAI,EAAE;MACTA,IAAI,GAAG,IAAIvB,QAAQ,CAACE,GAAG,EAAEC,MAAM,CAAC;MAChC,IAAIiB,UAAU,EAAEC,KAAK,CAACG,GAAG,CAACJ,UAAU,EAAEG,IAAI,CAAC;IAC7C;IAEAA,IAAI,CAACE,KAAK,CAAChB,UAAU,EAAEC,SAAS,EAAEC,OAAO,EAAEC,GAAG,CAAC;IAE/C,OAAOW,IAAI;EACb;EAEAG,QAAQA,CAACT,KAAY,EAAS;IAC5B,OAAO,IAAI,CAACU,OAAO,CAAC,CAAC,GAAG,IAAIC,eAAK,CAAC,IAAI,CAAC,GAAGX,KAAK;EACjD;EAEAY,OAAOA,CAACjB,GAAoB,EAAEkB,GAAQ,EAAO;IAC3C,IAAI,IAAI,CAACf,IAAI,IAAI,IAAI,EAAE;MACrB,IAAI,CAACA,IAAI,GAAGgB,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC;IACjC;IACA,OAAQ,IAAI,CAACjB,IAAI,CAACH,GAAG,CAAC,GAAGkB,GAAG;EAC9B;EAEAG,OAAOA,CAACrB,GAAoB,EAAEsB,GAAS,EAAO;IAC5C,IAAI,IAAI,CAACnB,IAAI,IAAI,IAAI,EAAE;MACrB,IAAI,CAACA,IAAI,GAAGgB,MAAM,CAACC,MAAM,CAAC,IAAI,CAAC;IACjC;IACA,IAAIF,GAAG,GAAG,IAAI,CAACf,IAAI,CAACH,GAAG,CAAC;IACxB,IAAIkB,GAAG,KAAKK,SAAS,IAAID,GAAG,KAAKC,SAAS,EAAEL,GAAG,GAAG,IAAI,CAACf,IAAI,CAACH,GAAG,CAAC,GAAGsB,GAAG;IACtE,OAAOJ,GAAG;EACZ;EAEAM,OAAOA,CAAA,EAAgD;IACrD,OAAO,IAAI,CAACvB,IAAI,IAAI,IAAI;EAC1B;EAEAwB,mBAAmBA,CACjBC,GAAW,EACXnB,KAAsB,GAAGoB,WAAW,EAC7B;IACP,OAAO,IAAI,CAACrC,GAAG,CAACsC,UAAU,CAAC,IAAI,CAAC3B,IAAI,EAAEyB,GAAG,EAAEnB,KAAK,CAAC;EACnD;EAIAsB,QAAQA,CAACC,OAAY,EAAErC,KAAW,EAAE;IAClC,IAAAoC,cAAQ,EAAC,IAAI,CAAC5B,IAAI,EAAE6B,OAAO,EAAE,IAAI,CAACzB,KAAK,EAAEZ,KAAK,EAAE,IAAI,CAAC;EACvD;EAEAmB,GAAGA,CAACZ,GAAW,EAAEC,IAAS,EAAE;IAC1BpB,QAAQ,CAAC,IAAI,CAACoB,IAAI,EAAED,GAAG,EAAEC,IAAI,CAAC;IAE9B,IAAI,CAACA,IAAI,CAACD,GAAG,CAAC,GAAGC,IAAI;EACvB;EAEA8B,eAAeA,CAAA,EAAW;IACxB,MAAMC,KAAK,GAAG,EAAE;IAChB,IAAIrB,IAAc,GAAG,IAAI;IACzB,GAAG;MACD,IAAIX,GAAG,GAAGW,IAAI,CAACX,GAAG;MAClB,IAAIW,IAAI,CAACsB,MAAM,EAAEjC,GAAG,GAAI,GAAEW,IAAI,CAACZ,OAAQ,IAAGC,GAAI,GAAE;MAChDgC,KAAK,CAACE,OAAO,CAAClC,GAAG,CAAC;IACpB,CAAC,QAASW,IAAI,GAAGA,IAAI,CAACd,UAAU;IAChC,OAAOmC,KAAK,CAACG,IAAI,CAAC,GAAG,CAAC;EACxB;EAEArD,KAAKA,CAACsD,OAAe,EAAE;IACrB,IAAI,CAACtD,KAAK,CAACuD,OAAO,EAAE;IACpBvD,KAAK,CAAE,GAAE,IAAI,CAACiD,eAAe,CAAC,CAAE,IAAG,IAAI,CAAC7B,IAAK,KAAIkC,OAAQ,EAAC,CAAC;EAC7D;EAEAE,QAAQA,CAAA,EAAG;IACT,OAAO,IAAAC,kBAAS,EAAC,IAAI,CAACtC,IAAI,CAAC,CAACuC,IAAI;EAClC;EAEA,IAAIP,MAAMA,CAAA,EAAG;IACX,OAAO,CAAC,CAAC,IAAI,CAAClC,OAAO;EACvB;EAEA,IAAIkC,MAAMA,CAACA,MAAM,EAAE;IACjB,IAAI,CAACA,MAAM,EAAE;MACX,IAAI,CAAClC,OAAO,GAAG,IAAI;IACrB;EAEF;EAEA,IAAI0C,SAASA,CAAA,EAAW;IACtB,OAAQ,IAAI,CAAC1C,OAAO,IAAI,IAAI,CAACC,GAAG;EAClC;EAEA,IAAI0C,UAAUA,CAAA,EAAG;IACf,OAAO,CAAC,EAAE,IAAI,CAAC/C,cAAc,GAAGR,WAAW,CAAC;EAC9C;EAEA,IAAIuD,UAAUA,CAACC,CAAC,EAAE;IAChB,IAAIA,CAAC,EAAE;MACL,IAAI,CAAChD,cAAc,IAAIR,WAAW;IACpC,CAAC,MAAM;MACL,IAAI,CAACQ,cAAc,IAAI,CAACR,WAAW;IACrC;EACF;EAEA,IAAIyD,UAAUA,CAAA,EAAG;IACf,OAAO,CAAC,EAAE,IAAI,CAACjD,cAAc,GAAGT,WAAW,CAAC;EAC9C;EAEA,IAAI0D,UAAUA,CAACD,CAAC,EAAE;IAChB,IAAIA,CAAC,EAAE;MACL,IAAI,CAAChD,cAAc,IAAIT,WAAW;IACpC,CAAC,MAAM;MACL,IAAI,CAACS,cAAc,IAAI,CAACT,WAAW;IACrC;EACF;EAEA,IAAI2D,OAAOA,CAAA,EAAG;IACZ,OAAO,CAAC,EAAE,IAAI,CAAClD,cAAc,GAAGX,OAAO,CAAC;EAC1C;EACA,IAAI6D,OAAOA,CAACF,CAAC,EAAE;IACb,IAAIA,CAAC,EAAE;MACL,IAAI,CAAChD,cAAc,IAAIX,OAAO;IAChC,CAAC,MAAM;MACL,IAAI,CAACW,cAAc,IAAI,CAACX,OAAO;IACjC;EACF;AACF;AAEAmC,MAAM,CAAC2B,MAAM,CACX1D,QAAQ,CAAC2D,SAAS,EAClB9E,iBAAiB,EACjBC,kBAAkB,EAClBC,oBAAoB,EACpBC,mBAAmB,EACnBC,mBAAmB,EACnBC,sBAAsB,EACtBC,gBAAgB,EAChBC,gBAAgB,EAChBC,qBAAqB,EACrBC,eAAe,EACfC,iBACF,CAAC;AAEkC;EAGjCS,QAAQ,CAAC2D,SAAS,CAACC,iDAAiD,GAClE1E,sBAAsB,CAAC2E,+BAA+B;AAC1D;AAMA,KAAK,MAAM/C,IAAI,IAAIpC,CAAC,CAACoF,KAAK,EAAE;EAC1B,MAAMC,OAAO,GAAI,KAAIjD,IAAK,EAAC;EAE3B,MAAMkD,EAAE,GAAGtF,CAAC,CAACqF,OAAO,CAAC;EAErB/D,QAAQ,CAAC2D,SAAS,CAACI,OAAO,CAAC,GAAG,UAAUzD,IAAS,EAAE;IACjD,OAAO0D,EAAE,CAAC,IAAI,CAACnD,IAAI,EAAEP,IAAI,CAAC;EAC5B,CAAC;EAGDN,QAAQ,CAAC2D,SAAS,CAAE,SAAQ7C,IAAK,EAAC,CAAC,GAAG,UAAUR,IAAS,EAAE;IACzD,IAAI,CAAC0D,EAAE,CAAC,IAAI,CAACnD,IAAI,EAAEP,IAAI,CAAC,EAAE;MACxB,MAAM,IAAI2D,SAAS,CAAE,8BAA6BnD,IAAK,EAAC,CAAC;IAC3D;EACF,CAAC;AACH;AAGAiB,MAAM,CAAC2B,MAAM,CAAC1D,QAAQ,CAAC2D,SAAS,EAAEnE,gCAAgC,CAAC;AAEnE,KAAK,MAAMsB,IAAI,IAAIiB,MAAM,CAACmC,IAAI,CAAC9F,YAAY,CAAC,EAAmC;EAC7E,IAAI0C,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;EACrB,IAAI,CAACpC,CAAC,CAACoF,KAAK,CAACK,QAAQ,CAACrD,IAAI,CAAC,EAAEpC,CAAC,CAACoF,KAAK,CAACM,IAAI,CAACtD,IAAI,CAAC;AACjD;AAAC,IAAAuD,QAAA,GAAAxE,OAAA,CAAAyE,OAAA,GAsCctE,QAAQ"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/introspection.js b/node_modules/@babel/traverse/lib/path/introspection.js index 52470222..b83b717d 100644 --- a/node_modules/@babel/traverse/lib/path/introspection.js +++ b/node_modules/@babel/traverse/lib/path/introspection.js @@ -48,8 +48,7 @@ function has(key) { function isStatic() { return this.scope.isStatic(this.node); } -const is = has; -exports.is = is; +const is = exports.is = has; function isnt(key) { return !this.has(key); } diff --git a/node_modules/@babel/traverse/lib/path/introspection.js.map b/node_modules/@babel/traverse/lib/path/introspection.js.map index 607991ff..a94f23c3 100644 --- a/node_modules/@babel/traverse/lib/path/introspection.js.map +++ b/node_modules/@babel/traverse/lib/path/introspection.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","STATEMENT_OR_BLOCK_KEYS","VISITOR_KEYS","isBlockStatement","isExpression","isIdentifier","isLiteral","isStringLiteral","isType","matchesPattern","_matchesPattern","pattern","allowPartial","node","has","key","val","Array","isArray","length","isStatic","scope","is","exports","isnt","equals","value","isNodeType","type","canHaveVariableDeclarationOrExpression","parentPath","isFor","canSwapBetweenExpressionAndStatement","replacement","isArrowFunctionExpression","isCompletionRecord","allowInsideFunction","path","first","container","isFunction","isProgram","isDoExpression","isStatementOrBlock","isLabeledStatement","includes","referencesImport","moduleSource","importName","isReferencedIdentifier","isJSXMemberExpression","property","name","isMemberExpression","isOptionalMemberExpression","computed","object","get","binding","getBinding","kind","parent","isImportDeclaration","source","isImportDefaultSpecifier","isImportNamespaceSpecifier","isImportSpecifier","imported","getSource","end","code","hub","getCode","slice","start","willIMaybeExecuteBefore","target","_guessExecutionStatusRelativeTo","getOuterFunction","getFunctionParent","getProgramParent","isExecutionUncertain","isExecutionUncertainInList","paths","maxIndex","i","parentKey","SYMBOL_CHECKING","Symbol","_guessExecutionStatusRelativeToCached","Map","base","cache","funcParent","this","_guessExecutionStatusRelativeToDifferentFunctionsCached","getAncestry","indexOf","commonPath","commonIndex","Error","divergence","listKey","keys","keyPosition","_guessExecutionStatusRelativeToDifferentFunctionsInternal","isFunctionDeclaration","isExportDeclaration","id","references","referencePaths","allStatus","childOfFunction","find","isCallExpression","status","nodeMap","cached","set","result","resolve","dangerous","resolved","_resolve","push","isVariableDeclarator","constant","ret","isTypeCastExpression","targetKey","toComputedKey","targetName","isObjectExpression","props","prop","isProperty","match","isArrayExpression","isNaN","elems","elem","isConstantExpression","isRegExpLiteral","isTemplateLiteral","every","expression","isUnaryExpression","operator","isBinaryExpression","isInStrictMode","strictParent","sourceType","isClass","body","directive","directives"],"sources":["../../src/path/introspection.ts"],"sourcesContent":["// This file contains methods responsible for introspecting the current path for certain values.\n\nimport type NodePath from \"./index.ts\";\nimport {\n STATEMENT_OR_BLOCK_KEYS,\n VISITOR_KEYS,\n isBlockStatement,\n isExpression,\n isIdentifier,\n isLiteral,\n isStringLiteral,\n isType,\n matchesPattern as _matchesPattern,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n/**\n * Match the current node if it matches the provided `pattern`.\n *\n * For example, given the match `React.createClass` it would match the\n * parsed nodes of `React.createClass` and `React[\"createClass\"]`.\n */\n\nexport function matchesPattern(\n this: NodePath,\n pattern: string,\n allowPartial?: boolean,\n): boolean {\n return _matchesPattern(this.node, pattern, allowPartial);\n}\n\n/**\n * Check whether we have the input `key`. If the `key` references an array then we check\n * if the array has any items, otherwise we just check if it's falsy.\n */\n\nexport function has<N extends t.Node>(\n this: NodePath<N>,\n key: keyof N,\n): boolean {\n const val = this.node && this.node[key];\n if (val && Array.isArray(val)) {\n return !!val.length;\n } else {\n return !!val;\n }\n}\n\n/**\n * Description\n */\n\nexport function isStatic(this: NodePath): boolean {\n return this.scope.isStatic(this.node);\n}\n\n/**\n * Alias of `has`.\n */\n\nexport const is = has;\n\n/**\n * Opposite of `has`.\n */\n\nexport function isnt<N extends t.Node>(\n this: NodePath<N>,\n key: keyof N,\n): boolean {\n return !this.has(key);\n}\n\n/**\n * Check whether the path node `key` strict equals `value`.\n */\n\nexport function equals<N extends t.Node>(\n this: NodePath<N>,\n key: keyof N,\n value: any,\n): boolean {\n return this.node[key] === value;\n}\n\n/**\n * Check the type against our stored internal type of the node. This is handy when a node has\n * been removed yet we still internally know the type and need it to calculate node replacement.\n */\n\nexport function isNodeType(this: NodePath, type: string): boolean {\n return isType(this.type, type);\n}\n\n/**\n * This checks whether or not we're in one of the following positions:\n *\n * for (KEY in right);\n * for (KEY;;);\n *\n * This is because these spots allow VariableDeclarations AND normal expressions so we need\n * to tell the path replacement that it's ok to replace this with an expression.\n */\n\nexport function canHaveVariableDeclarationOrExpression(this: NodePath) {\n return (\n (this.key === \"init\" || this.key === \"left\") && this.parentPath.isFor()\n );\n}\n\n/**\n * This checks whether we are swapping an arrow function's body between an\n * expression and a block statement (or vice versa).\n *\n * This is because arrow functions may implicitly return an expression, which\n * is the same as containing a block statement.\n */\n\nexport function canSwapBetweenExpressionAndStatement(\n this: NodePath,\n replacement: t.Node,\n): boolean {\n if (this.key !== \"body\" || !this.parentPath.isArrowFunctionExpression()) {\n return false;\n }\n\n if (this.isExpression()) {\n return isBlockStatement(replacement);\n } else if (this.isBlockStatement()) {\n return isExpression(replacement);\n }\n\n return false;\n}\n\n/**\n * Check whether the current path references a completion record\n */\n\nexport function isCompletionRecord(\n this: NodePath,\n allowInsideFunction?: boolean,\n): boolean {\n let path = this;\n let first = true;\n\n do {\n const { type, container } = path;\n\n // we're in a function so can't be a completion record\n if (!first && (path.isFunction() || type === \"StaticBlock\")) {\n return !!allowInsideFunction;\n }\n\n first = false;\n\n // check to see if we're the last item in the container and if we are\n // we're a completion record!\n if (Array.isArray(container) && path.key !== container.length - 1) {\n return false;\n }\n } while (\n (path = path.parentPath) &&\n !path.isProgram() &&\n !path.isDoExpression()\n );\n\n return true;\n}\n\n/**\n * Check whether or not the current `key` allows either a single statement or block statement\n * so we can explode it if necessary.\n */\n\nexport function isStatementOrBlock(this: NodePath): boolean {\n if (\n this.parentPath.isLabeledStatement() ||\n isBlockStatement(this.container as t.Node)\n ) {\n return false;\n } else {\n return STATEMENT_OR_BLOCK_KEYS.includes(this.key as string);\n }\n}\n\n/**\n * Check if the currently assigned path references the `importName` of `moduleSource`.\n */\n\nexport function referencesImport(\n this: NodePath,\n moduleSource: string,\n importName: string,\n): boolean {\n if (!this.isReferencedIdentifier()) {\n if (\n (this.isJSXMemberExpression() &&\n this.node.property.name === importName) ||\n ((this.isMemberExpression() || this.isOptionalMemberExpression()) &&\n (this.node.computed\n ? isStringLiteral(this.node.property, { value: importName })\n : (this.node.property as t.Identifier).name === importName))\n ) {\n const object = (\n this as NodePath<t.MemberExpression | t.OptionalMemberExpression>\n ).get(\"object\");\n return (\n object.isReferencedIdentifier() &&\n object.referencesImport(moduleSource, \"*\")\n );\n }\n\n return false;\n }\n\n const binding = this.scope.getBinding((this.node as t.Identifier).name);\n if (!binding || binding.kind !== \"module\") return false;\n\n const path = binding.path;\n const parent = path.parentPath;\n if (!parent.isImportDeclaration()) return false;\n\n // check moduleSource\n if (parent.node.source.value === moduleSource) {\n if (!importName) return true;\n } else {\n return false;\n }\n\n if (path.isImportDefaultSpecifier() && importName === \"default\") {\n return true;\n }\n\n if (path.isImportNamespaceSpecifier() && importName === \"*\") {\n return true;\n }\n\n if (\n path.isImportSpecifier() &&\n isIdentifier(path.node.imported, { name: importName })\n ) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Get the source code associated with this node.\n */\n\nexport function getSource(this: NodePath): string {\n const node = this.node;\n if (node.end) {\n const code = this.hub.getCode();\n if (code) return code.slice(node.start, node.end);\n }\n return \"\";\n}\n\nexport function willIMaybeExecuteBefore(\n this: NodePath,\n target: NodePath,\n): boolean {\n return this._guessExecutionStatusRelativeTo(target) !== \"after\";\n}\n\nfunction getOuterFunction(path: NodePath) {\n return path.isProgram()\n ? path\n : (\n path.parentPath.scope.getFunctionParent() ||\n path.parentPath.scope.getProgramParent()\n ).path;\n}\n\nfunction isExecutionUncertain(type: t.Node[\"type\"], key: string) {\n switch (type) {\n // a && FOO\n // a || FOO\n case \"LogicalExpression\":\n return key === \"right\";\n\n // a ? FOO : FOO\n // if (a) FOO; else FOO;\n case \"ConditionalExpression\":\n case \"IfStatement\":\n return key === \"consequent\" || key === \"alternate\";\n\n // while (a) FOO;\n case \"WhileStatement\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForOfStatement\":\n return key === \"body\";\n\n // for (a; b; FOO) FOO;\n case \"ForStatement\":\n return key === \"body\" || key === \"update\";\n\n // switch (a) { FOO }\n case \"SwitchStatement\":\n return key === \"cases\";\n\n // try { a } catch FOO finally { b }\n case \"TryStatement\":\n return key === \"handler\";\n\n // var [ x = FOO ]\n case \"AssignmentPattern\":\n return key === \"right\";\n\n // a?.[FOO]\n case \"OptionalMemberExpression\":\n return key === \"property\";\n\n // a?.(FOO)\n case \"OptionalCallExpression\":\n return key === \"arguments\";\n\n default:\n return false;\n }\n}\n\nfunction isExecutionUncertainInList(paths: NodePath[], maxIndex: number) {\n for (let i = 0; i < maxIndex; i++) {\n const path = paths[i];\n if (isExecutionUncertain(path.parent.type, path.parentKey)) {\n return true;\n }\n }\n return false;\n}\n\n// TODO(Babel 8)\n// This can be { before: boolean, after: boolean, unknown: boolean }.\n// This allows transforms like the tdz one to treat cases when the status\n// is both before and unknown/after like if it were before.\ntype RelativeExecutionStatus = \"before\" | \"after\" | \"unknown\";\n\n// Used to avoid infinite recursion in cases like\n// function f() { if (false) f(); }\n// f();\n// It also works with indirect recursion.\nconst SYMBOL_CHECKING = Symbol();\n\ntype ExecutionStatusCache = Map<\n t.Node,\n Map<t.Node, RelativeExecutionStatus | typeof SYMBOL_CHECKING>\n>;\n\n/**\n * Given a `target` check the execution status of it relative to the current path.\n *\n * \"Execution status\" simply refers to where or not we **think** this will execute\n * before or after the input `target` element.\n */\n\nexport function _guessExecutionStatusRelativeTo(\n this: NodePath,\n target: NodePath,\n): RelativeExecutionStatus {\n return _guessExecutionStatusRelativeToCached(this, target, new Map());\n}\n\nfunction _guessExecutionStatusRelativeToCached(\n base: NodePath,\n target: NodePath,\n cache: ExecutionStatusCache,\n): RelativeExecutionStatus {\n // check if the two paths are in different functions, we can't track execution of these\n const funcParent = {\n this: getOuterFunction(base),\n target: getOuterFunction(target),\n };\n\n // here we check the `node` equality as sometimes we may have different paths for the\n // same node due to path thrashing\n if (funcParent.target.node !== funcParent.this.node) {\n return _guessExecutionStatusRelativeToDifferentFunctionsCached(\n base,\n funcParent.target,\n cache,\n );\n }\n\n const paths = {\n target: target.getAncestry(),\n this: base.getAncestry(),\n };\n\n // If this is an ancestor of the target path,\n // e.g. f(g); where this is f and target is g.\n if (paths.target.indexOf(base) >= 0) return \"after\";\n if (paths.this.indexOf(target) >= 0) return \"before\";\n\n // get ancestor where the branches intersect\n let commonPath;\n const commonIndex = { target: 0, this: 0 };\n\n while (!commonPath && commonIndex.this < paths.this.length) {\n const path = paths.this[commonIndex.this];\n commonIndex.target = paths.target.indexOf(path);\n if (commonIndex.target >= 0) {\n commonPath = path;\n } else {\n commonIndex.this++;\n }\n }\n\n if (!commonPath) {\n throw new Error(\n \"Internal Babel error - The two compared nodes\" +\n \" don't appear to belong to the same program.\",\n );\n }\n\n if (\n isExecutionUncertainInList(paths.this, commonIndex.this - 1) ||\n isExecutionUncertainInList(paths.target, commonIndex.target - 1)\n ) {\n return \"unknown\";\n }\n\n const divergence = {\n this: paths.this[commonIndex.this - 1],\n target: paths.target[commonIndex.target - 1],\n };\n\n // container list so let's see which one is after the other\n // e.g. [ THIS, TARGET ]\n if (\n divergence.target.listKey &&\n divergence.this.listKey &&\n divergence.target.container === divergence.this.container\n ) {\n return divergence.target.key > divergence.this.key ? \"before\" : \"after\";\n }\n\n // otherwise we're associated by a parent node, check which key comes before the other\n const keys = VISITOR_KEYS[commonPath.type];\n const keyPosition = {\n this: keys.indexOf(divergence.this.parentKey),\n target: keys.indexOf(divergence.target.parentKey),\n };\n return keyPosition.target > keyPosition.this ? \"before\" : \"after\";\n}\n\nfunction _guessExecutionStatusRelativeToDifferentFunctionsInternal(\n base: NodePath,\n target: NodePath,\n cache: ExecutionStatusCache,\n): RelativeExecutionStatus {\n if (!target.isFunctionDeclaration()) {\n if (\n _guessExecutionStatusRelativeToCached(base, target, cache) === \"before\"\n ) {\n return \"before\";\n }\n return \"unknown\";\n } else if (target.parentPath.isExportDeclaration()) {\n return \"unknown\";\n }\n\n // so we're in a completely different function, if this is a function declaration\n // then we can be a bit smarter and handle cases where the function is either\n // a. not called at all (part of an export)\n // b. called directly\n const binding = target.scope.getBinding(target.node.id.name);\n\n // no references!\n if (!binding.references) return \"before\";\n\n const referencePaths: Array<NodePath> = binding.referencePaths;\n\n let allStatus;\n\n // verify that all the calls have the same execution status\n for (const path of referencePaths) {\n // if a reference is a child of the function we're checking against then we can\n // safely ignore it\n const childOfFunction = !!path.find(path => path.node === target.node);\n if (childOfFunction) continue;\n\n if (path.key !== \"callee\" || !path.parentPath.isCallExpression()) {\n // This function is passed as a reference, so we don't\n // know when it will be called.\n return \"unknown\";\n }\n\n const status = _guessExecutionStatusRelativeToCached(base, path, cache);\n\n if (allStatus && allStatus !== status) {\n return \"unknown\";\n } else {\n allStatus = status;\n }\n }\n\n return allStatus;\n}\n\nfunction _guessExecutionStatusRelativeToDifferentFunctionsCached(\n base: NodePath,\n target: NodePath,\n cache: ExecutionStatusCache,\n): RelativeExecutionStatus {\n let nodeMap = cache.get(base.node);\n let cached;\n\n if (!nodeMap) {\n cache.set(base.node, (nodeMap = new Map()));\n } else if ((cached = nodeMap.get(target.node))) {\n if (cached === SYMBOL_CHECKING) {\n return \"unknown\";\n }\n return cached;\n }\n\n nodeMap.set(target.node, SYMBOL_CHECKING);\n\n const result = _guessExecutionStatusRelativeToDifferentFunctionsInternal(\n base,\n target,\n cache,\n );\n\n nodeMap.set(target.node, result);\n return result;\n}\n\n/**\n * Resolve a \"pointer\" `NodePath` to it's absolute path.\n */\nexport function resolve(\n this: NodePath,\n dangerous?: boolean,\n resolved?: NodePath[],\n) {\n return this._resolve(dangerous, resolved) || this;\n}\n\nexport function _resolve(\n this: NodePath,\n dangerous?: boolean,\n resolved?: NodePath[],\n): NodePath | undefined | null {\n // detect infinite recursion\n // todo: possibly have a max length on this just to be safe\n if (resolved && resolved.indexOf(this) >= 0) return;\n\n // we store all the paths we've \"resolved\" in this array to prevent infinite recursion\n resolved = resolved || [];\n resolved.push(this);\n\n if (this.isVariableDeclarator()) {\n if (this.get(\"id\").isIdentifier()) {\n return this.get(\"init\").resolve(dangerous, resolved);\n } else {\n // otherwise it's a request for a pattern and that's a bit more tricky\n }\n } else if (this.isReferencedIdentifier()) {\n const binding = this.scope.getBinding(this.node.name);\n if (!binding) return;\n\n // reassigned so we can't really resolve it\n if (!binding.constant) return;\n\n // todo - lookup module in dependency graph\n if (binding.kind === \"module\") return;\n\n if (binding.path !== this) {\n const ret = binding.path.resolve(dangerous, resolved);\n // If the identifier resolves to parent node then we can't really resolve it.\n if (this.find(parent => parent.node === ret.node)) return;\n return ret;\n }\n } else if (this.isTypeCastExpression()) {\n // @ ts-ignore todo: babel-types\n return this.get(\"expression\").resolve(dangerous, resolved);\n } else if (dangerous && this.isMemberExpression()) {\n // this is dangerous, as non-direct target assignments will mutate it's state\n // making this resolution inaccurate\n\n const targetKey = this.toComputedKey();\n if (!isLiteral(targetKey)) return;\n\n // @ts-expect-error todo(flow->ts): NullLiteral\n const targetName = targetKey.value;\n\n const target = this.get(\"object\").resolve(dangerous, resolved);\n\n if (target.isObjectExpression()) {\n const props = target.get(\"properties\");\n for (const prop of props as any[]) {\n if (!prop.isProperty()) continue;\n\n const key = prop.get(\"key\");\n\n // { foo: obj }\n let match =\n prop.isnt(\"computed\") && key.isIdentifier({ name: targetName });\n\n // { \"foo\": \"obj\" } or { [\"foo\"]: \"obj\" }\n match = match || key.isLiteral({ value: targetName });\n\n if (match) return prop.get(\"value\").resolve(dangerous, resolved);\n }\n } else if (target.isArrayExpression() && !isNaN(+targetName)) {\n const elems = target.get(\"elements\");\n const elem = elems[targetName];\n if (elem) return elem.resolve(dangerous, resolved);\n }\n }\n}\n\nexport function isConstantExpression(this: NodePath): boolean {\n if (this.isIdentifier()) {\n const binding = this.scope.getBinding(this.node.name);\n if (!binding) return false;\n return binding.constant;\n }\n\n if (this.isLiteral()) {\n if (this.isRegExpLiteral()) {\n return false;\n }\n\n if (this.isTemplateLiteral()) {\n return this.get(\"expressions\").every(expression =>\n expression.isConstantExpression(),\n );\n }\n\n return true;\n }\n\n if (this.isUnaryExpression()) {\n if (this.node.operator !== \"void\") {\n return false;\n }\n\n return this.get(\"argument\").isConstantExpression();\n }\n\n if (this.isBinaryExpression()) {\n const { operator } = this.node;\n return (\n operator !== \"in\" &&\n operator !== \"instanceof\" &&\n this.get(\"left\").isConstantExpression() &&\n this.get(\"right\").isConstantExpression()\n );\n }\n\n return false;\n}\n\nexport function isInStrictMode(this: NodePath) {\n const start = this.isProgram() ? this : this.parentPath;\n\n const strictParent = start.find(path => {\n if (path.isProgram({ sourceType: \"module\" })) return true;\n\n if (path.isClass()) return true;\n\n if (\n path.isArrowFunctionExpression() &&\n !path.get(\"body\").isBlockStatement()\n ) {\n return false;\n }\n\n let body: t.BlockStatement | t.Program;\n if (path.isFunction()) {\n body = path.node.body as t.BlockStatement;\n } else if (path.isProgram()) {\n body = path.node;\n } else {\n return false;\n }\n\n for (const directive of body.directives) {\n if (directive.value.value === \"use strict\") {\n return true;\n }\n }\n });\n\n return !!strictParent;\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_t","require","STATEMENT_OR_BLOCK_KEYS","VISITOR_KEYS","isBlockStatement","isExpression","isIdentifier","isLiteral","isStringLiteral","isType","matchesPattern","_matchesPattern","pattern","allowPartial","node","has","key","val","Array","isArray","length","isStatic","scope","is","exports","isnt","equals","value","isNodeType","type","canHaveVariableDeclarationOrExpression","parentPath","isFor","canSwapBetweenExpressionAndStatement","replacement","isArrowFunctionExpression","isCompletionRecord","allowInsideFunction","path","first","container","isFunction","isProgram","isDoExpression","isStatementOrBlock","isLabeledStatement","includes","referencesImport","moduleSource","importName","isReferencedIdentifier","isJSXMemberExpression","property","name","isMemberExpression","isOptionalMemberExpression","computed","object","get","binding","getBinding","kind","parent","isImportDeclaration","source","isImportDefaultSpecifier","isImportNamespaceSpecifier","isImportSpecifier","imported","getSource","end","code","hub","getCode","slice","start","willIMaybeExecuteBefore","target","_guessExecutionStatusRelativeTo","getOuterFunction","getFunctionParent","getProgramParent","isExecutionUncertain","isExecutionUncertainInList","paths","maxIndex","i","parentKey","SYMBOL_CHECKING","Symbol","_guessExecutionStatusRelativeToCached","Map","base","cache","funcParent","this","_guessExecutionStatusRelativeToDifferentFunctionsCached","getAncestry","indexOf","commonPath","commonIndex","Error","divergence","listKey","keys","keyPosition","_guessExecutionStatusRelativeToDifferentFunctionsInternal","isFunctionDeclaration","isExportDeclaration","id","references","referencePaths","allStatus","childOfFunction","find","isCallExpression","status","nodeMap","cached","set","result","resolve","dangerous","resolved","_resolve","push","isVariableDeclarator","constant","ret","isTypeCastExpression","targetKey","toComputedKey","targetName","isObjectExpression","props","prop","isProperty","match","isArrayExpression","isNaN","elems","elem","isConstantExpression","isRegExpLiteral","isTemplateLiteral","every","expression","isUnaryExpression","operator","isBinaryExpression","isInStrictMode","strictParent","sourceType","isClass","body","directive","directives"],"sources":["../../src/path/introspection.ts"],"sourcesContent":["// This file contains methods responsible for introspecting the current path for certain values.\n\nimport type NodePath from \"./index.ts\";\nimport {\n STATEMENT_OR_BLOCK_KEYS,\n VISITOR_KEYS,\n isBlockStatement,\n isExpression,\n isIdentifier,\n isLiteral,\n isStringLiteral,\n isType,\n matchesPattern as _matchesPattern,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\n/**\n * Match the current node if it matches the provided `pattern`.\n *\n * For example, given the match `React.createClass` it would match the\n * parsed nodes of `React.createClass` and `React[\"createClass\"]`.\n */\n\nexport function matchesPattern(\n this: NodePath,\n pattern: string,\n allowPartial?: boolean,\n): boolean {\n return _matchesPattern(this.node, pattern, allowPartial);\n}\n\n/**\n * Check whether we have the input `key`. If the `key` references an array then we check\n * if the array has any items, otherwise we just check if it's falsy.\n */\n\nexport function has<N extends t.Node>(\n this: NodePath<N>,\n key: keyof N,\n): boolean {\n const val = this.node && this.node[key];\n if (val && Array.isArray(val)) {\n return !!val.length;\n } else {\n return !!val;\n }\n}\n\n/**\n * Description\n */\n\nexport function isStatic(this: NodePath): boolean {\n return this.scope.isStatic(this.node);\n}\n\n/**\n * Alias of `has`.\n */\n\nexport const is = has;\n\n/**\n * Opposite of `has`.\n */\n\nexport function isnt<N extends t.Node>(\n this: NodePath<N>,\n key: keyof N,\n): boolean {\n return !this.has(key);\n}\n\n/**\n * Check whether the path node `key` strict equals `value`.\n */\n\nexport function equals<N extends t.Node>(\n this: NodePath<N>,\n key: keyof N,\n value: any,\n): boolean {\n return this.node[key] === value;\n}\n\n/**\n * Check the type against our stored internal type of the node. This is handy when a node has\n * been removed yet we still internally know the type and need it to calculate node replacement.\n */\n\nexport function isNodeType(this: NodePath, type: string): boolean {\n return isType(this.type, type);\n}\n\n/**\n * This checks whether or not we're in one of the following positions:\n *\n * for (KEY in right);\n * for (KEY;;);\n *\n * This is because these spots allow VariableDeclarations AND normal expressions so we need\n * to tell the path replacement that it's ok to replace this with an expression.\n */\n\nexport function canHaveVariableDeclarationOrExpression(this: NodePath) {\n return (\n (this.key === \"init\" || this.key === \"left\") && this.parentPath.isFor()\n );\n}\n\n/**\n * This checks whether we are swapping an arrow function's body between an\n * expression and a block statement (or vice versa).\n *\n * This is because arrow functions may implicitly return an expression, which\n * is the same as containing a block statement.\n */\n\nexport function canSwapBetweenExpressionAndStatement(\n this: NodePath,\n replacement: t.Node,\n): boolean {\n if (this.key !== \"body\" || !this.parentPath.isArrowFunctionExpression()) {\n return false;\n }\n\n if (this.isExpression()) {\n return isBlockStatement(replacement);\n } else if (this.isBlockStatement()) {\n return isExpression(replacement);\n }\n\n return false;\n}\n\n/**\n * Check whether the current path references a completion record\n */\n\nexport function isCompletionRecord(\n this: NodePath,\n allowInsideFunction?: boolean,\n): boolean {\n let path = this;\n let first = true;\n\n do {\n const { type, container } = path;\n\n // we're in a function so can't be a completion record\n if (!first && (path.isFunction() || type === \"StaticBlock\")) {\n return !!allowInsideFunction;\n }\n\n first = false;\n\n // check to see if we're the last item in the container and if we are\n // we're a completion record!\n if (Array.isArray(container) && path.key !== container.length - 1) {\n return false;\n }\n } while (\n (path = path.parentPath) &&\n !path.isProgram() &&\n !path.isDoExpression()\n );\n\n return true;\n}\n\n/**\n * Check whether or not the current `key` allows either a single statement or block statement\n * so we can explode it if necessary.\n */\n\nexport function isStatementOrBlock(this: NodePath): boolean {\n if (\n this.parentPath.isLabeledStatement() ||\n isBlockStatement(this.container as t.Node)\n ) {\n return false;\n } else {\n return STATEMENT_OR_BLOCK_KEYS.includes(this.key as string);\n }\n}\n\n/**\n * Check if the currently assigned path references the `importName` of `moduleSource`.\n */\n\nexport function referencesImport(\n this: NodePath,\n moduleSource: string,\n importName: string,\n): boolean {\n if (!this.isReferencedIdentifier()) {\n if (\n (this.isJSXMemberExpression() &&\n this.node.property.name === importName) ||\n ((this.isMemberExpression() || this.isOptionalMemberExpression()) &&\n (this.node.computed\n ? isStringLiteral(this.node.property, { value: importName })\n : (this.node.property as t.Identifier).name === importName))\n ) {\n const object = (\n this as NodePath<t.MemberExpression | t.OptionalMemberExpression>\n ).get(\"object\");\n return (\n object.isReferencedIdentifier() &&\n object.referencesImport(moduleSource, \"*\")\n );\n }\n\n return false;\n }\n\n const binding = this.scope.getBinding((this.node as t.Identifier).name);\n if (!binding || binding.kind !== \"module\") return false;\n\n const path = binding.path;\n const parent = path.parentPath;\n if (!parent.isImportDeclaration()) return false;\n\n // check moduleSource\n if (parent.node.source.value === moduleSource) {\n if (!importName) return true;\n } else {\n return false;\n }\n\n if (path.isImportDefaultSpecifier() && importName === \"default\") {\n return true;\n }\n\n if (path.isImportNamespaceSpecifier() && importName === \"*\") {\n return true;\n }\n\n if (\n path.isImportSpecifier() &&\n isIdentifier(path.node.imported, { name: importName })\n ) {\n return true;\n }\n\n return false;\n}\n\n/**\n * Get the source code associated with this node.\n */\n\nexport function getSource(this: NodePath): string {\n const node = this.node;\n if (node.end) {\n const code = this.hub.getCode();\n if (code) return code.slice(node.start, node.end);\n }\n return \"\";\n}\n\nexport function willIMaybeExecuteBefore(\n this: NodePath,\n target: NodePath,\n): boolean {\n return this._guessExecutionStatusRelativeTo(target) !== \"after\";\n}\n\nfunction getOuterFunction(path: NodePath) {\n return path.isProgram()\n ? path\n : (\n path.parentPath.scope.getFunctionParent() ||\n path.parentPath.scope.getProgramParent()\n ).path;\n}\n\nfunction isExecutionUncertain(type: t.Node[\"type\"], key: string) {\n switch (type) {\n // a && FOO\n // a || FOO\n case \"LogicalExpression\":\n return key === \"right\";\n\n // a ? FOO : FOO\n // if (a) FOO; else FOO;\n case \"ConditionalExpression\":\n case \"IfStatement\":\n return key === \"consequent\" || key === \"alternate\";\n\n // while (a) FOO;\n case \"WhileStatement\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForOfStatement\":\n return key === \"body\";\n\n // for (a; b; FOO) FOO;\n case \"ForStatement\":\n return key === \"body\" || key === \"update\";\n\n // switch (a) { FOO }\n case \"SwitchStatement\":\n return key === \"cases\";\n\n // try { a } catch FOO finally { b }\n case \"TryStatement\":\n return key === \"handler\";\n\n // var [ x = FOO ]\n case \"AssignmentPattern\":\n return key === \"right\";\n\n // a?.[FOO]\n case \"OptionalMemberExpression\":\n return key === \"property\";\n\n // a?.(FOO)\n case \"OptionalCallExpression\":\n return key === \"arguments\";\n\n default:\n return false;\n }\n}\n\nfunction isExecutionUncertainInList(paths: NodePath[], maxIndex: number) {\n for (let i = 0; i < maxIndex; i++) {\n const path = paths[i];\n if (isExecutionUncertain(path.parent.type, path.parentKey)) {\n return true;\n }\n }\n return false;\n}\n\n// TODO(Babel 8)\n// This can be { before: boolean, after: boolean, unknown: boolean }.\n// This allows transforms like the tdz one to treat cases when the status\n// is both before and unknown/after like if it were before.\ntype RelativeExecutionStatus = \"before\" | \"after\" | \"unknown\";\n\n// Used to avoid infinite recursion in cases like\n// function f() { if (false) f(); }\n// f();\n// It also works with indirect recursion.\nconst SYMBOL_CHECKING = Symbol();\n\ntype ExecutionStatusCache = Map<\n t.Node,\n Map<t.Node, RelativeExecutionStatus | typeof SYMBOL_CHECKING>\n>;\n\n/**\n * Given a `target` check the execution status of it relative to the current path.\n *\n * \"Execution status\" simply refers to where or not we **think** this will execute\n * before or after the input `target` element.\n */\n\nexport function _guessExecutionStatusRelativeTo(\n this: NodePath,\n target: NodePath,\n): RelativeExecutionStatus {\n return _guessExecutionStatusRelativeToCached(this, target, new Map());\n}\n\nfunction _guessExecutionStatusRelativeToCached(\n base: NodePath,\n target: NodePath,\n cache: ExecutionStatusCache,\n): RelativeExecutionStatus {\n // check if the two paths are in different functions, we can't track execution of these\n const funcParent = {\n this: getOuterFunction(base),\n target: getOuterFunction(target),\n };\n\n // here we check the `node` equality as sometimes we may have different paths for the\n // same node due to path thrashing\n if (funcParent.target.node !== funcParent.this.node) {\n return _guessExecutionStatusRelativeToDifferentFunctionsCached(\n base,\n funcParent.target,\n cache,\n );\n }\n\n const paths = {\n target: target.getAncestry(),\n this: base.getAncestry(),\n };\n\n // If this is an ancestor of the target path,\n // e.g. f(g); where this is f and target is g.\n if (paths.target.indexOf(base) >= 0) return \"after\";\n if (paths.this.indexOf(target) >= 0) return \"before\";\n\n // get ancestor where the branches intersect\n let commonPath;\n const commonIndex = { target: 0, this: 0 };\n\n while (!commonPath && commonIndex.this < paths.this.length) {\n const path = paths.this[commonIndex.this];\n commonIndex.target = paths.target.indexOf(path);\n if (commonIndex.target >= 0) {\n commonPath = path;\n } else {\n commonIndex.this++;\n }\n }\n\n if (!commonPath) {\n throw new Error(\n \"Internal Babel error - The two compared nodes\" +\n \" don't appear to belong to the same program.\",\n );\n }\n\n if (\n isExecutionUncertainInList(paths.this, commonIndex.this - 1) ||\n isExecutionUncertainInList(paths.target, commonIndex.target - 1)\n ) {\n return \"unknown\";\n }\n\n const divergence = {\n this: paths.this[commonIndex.this - 1],\n target: paths.target[commonIndex.target - 1],\n };\n\n // container list so let's see which one is after the other\n // e.g. [ THIS, TARGET ]\n if (\n divergence.target.listKey &&\n divergence.this.listKey &&\n divergence.target.container === divergence.this.container\n ) {\n return divergence.target.key > divergence.this.key ? \"before\" : \"after\";\n }\n\n // otherwise we're associated by a parent node, check which key comes before the other\n const keys = VISITOR_KEYS[commonPath.type];\n const keyPosition = {\n this: keys.indexOf(divergence.this.parentKey),\n target: keys.indexOf(divergence.target.parentKey),\n };\n return keyPosition.target > keyPosition.this ? \"before\" : \"after\";\n}\n\nfunction _guessExecutionStatusRelativeToDifferentFunctionsInternal(\n base: NodePath,\n target: NodePath,\n cache: ExecutionStatusCache,\n): RelativeExecutionStatus {\n if (!target.isFunctionDeclaration()) {\n if (\n _guessExecutionStatusRelativeToCached(base, target, cache) === \"before\"\n ) {\n return \"before\";\n }\n return \"unknown\";\n } else if (target.parentPath.isExportDeclaration()) {\n return \"unknown\";\n }\n\n // so we're in a completely different function, if this is a function declaration\n // then we can be a bit smarter and handle cases where the function is either\n // a. not called at all (part of an export)\n // b. called directly\n const binding = target.scope.getBinding(target.node.id.name);\n\n // no references!\n if (!binding.references) return \"before\";\n\n const referencePaths: Array<NodePath> = binding.referencePaths;\n\n let allStatus;\n\n // verify that all the calls have the same execution status\n for (const path of referencePaths) {\n // if a reference is a child of the function we're checking against then we can\n // safely ignore it\n const childOfFunction = !!path.find(path => path.node === target.node);\n if (childOfFunction) continue;\n\n if (path.key !== \"callee\" || !path.parentPath.isCallExpression()) {\n // This function is passed as a reference, so we don't\n // know when it will be called.\n return \"unknown\";\n }\n\n const status = _guessExecutionStatusRelativeToCached(base, path, cache);\n\n if (allStatus && allStatus !== status) {\n return \"unknown\";\n } else {\n allStatus = status;\n }\n }\n\n return allStatus;\n}\n\nfunction _guessExecutionStatusRelativeToDifferentFunctionsCached(\n base: NodePath,\n target: NodePath,\n cache: ExecutionStatusCache,\n): RelativeExecutionStatus {\n let nodeMap = cache.get(base.node);\n let cached;\n\n if (!nodeMap) {\n cache.set(base.node, (nodeMap = new Map()));\n } else if ((cached = nodeMap.get(target.node))) {\n if (cached === SYMBOL_CHECKING) {\n return \"unknown\";\n }\n return cached;\n }\n\n nodeMap.set(target.node, SYMBOL_CHECKING);\n\n const result = _guessExecutionStatusRelativeToDifferentFunctionsInternal(\n base,\n target,\n cache,\n );\n\n nodeMap.set(target.node, result);\n return result;\n}\n\n/**\n * Resolve a \"pointer\" `NodePath` to it's absolute path.\n */\nexport function resolve(\n this: NodePath,\n dangerous?: boolean,\n resolved?: NodePath[],\n) {\n return this._resolve(dangerous, resolved) || this;\n}\n\nexport function _resolve(\n this: NodePath,\n dangerous?: boolean,\n resolved?: NodePath[],\n): NodePath | undefined | null {\n // detect infinite recursion\n // todo: possibly have a max length on this just to be safe\n if (resolved && resolved.indexOf(this) >= 0) return;\n\n // we store all the paths we've \"resolved\" in this array to prevent infinite recursion\n resolved = resolved || [];\n resolved.push(this);\n\n if (this.isVariableDeclarator()) {\n if (this.get(\"id\").isIdentifier()) {\n return this.get(\"init\").resolve(dangerous, resolved);\n } else {\n // otherwise it's a request for a pattern and that's a bit more tricky\n }\n } else if (this.isReferencedIdentifier()) {\n const binding = this.scope.getBinding(this.node.name);\n if (!binding) return;\n\n // reassigned so we can't really resolve it\n if (!binding.constant) return;\n\n // todo - lookup module in dependency graph\n if (binding.kind === \"module\") return;\n\n if (binding.path !== this) {\n const ret = binding.path.resolve(dangerous, resolved);\n // If the identifier resolves to parent node then we can't really resolve it.\n if (this.find(parent => parent.node === ret.node)) return;\n return ret;\n }\n } else if (this.isTypeCastExpression()) {\n // @ ts-ignore todo: babel-types\n return this.get(\"expression\").resolve(dangerous, resolved);\n } else if (dangerous && this.isMemberExpression()) {\n // this is dangerous, as non-direct target assignments will mutate it's state\n // making this resolution inaccurate\n\n const targetKey = this.toComputedKey();\n if (!isLiteral(targetKey)) return;\n\n // @ts-expect-error todo(flow->ts): NullLiteral\n const targetName = targetKey.value;\n\n const target = this.get(\"object\").resolve(dangerous, resolved);\n\n if (target.isObjectExpression()) {\n const props = target.get(\"properties\");\n for (const prop of props as any[]) {\n if (!prop.isProperty()) continue;\n\n const key = prop.get(\"key\");\n\n // { foo: obj }\n let match =\n prop.isnt(\"computed\") && key.isIdentifier({ name: targetName });\n\n // { \"foo\": \"obj\" } or { [\"foo\"]: \"obj\" }\n match = match || key.isLiteral({ value: targetName });\n\n if (match) return prop.get(\"value\").resolve(dangerous, resolved);\n }\n } else if (target.isArrayExpression() && !isNaN(+targetName)) {\n const elems = target.get(\"elements\");\n const elem = elems[targetName];\n if (elem) return elem.resolve(dangerous, resolved);\n }\n }\n}\n\nexport function isConstantExpression(this: NodePath): boolean {\n if (this.isIdentifier()) {\n const binding = this.scope.getBinding(this.node.name);\n if (!binding) return false;\n return binding.constant;\n }\n\n if (this.isLiteral()) {\n if (this.isRegExpLiteral()) {\n return false;\n }\n\n if (this.isTemplateLiteral()) {\n return this.get(\"expressions\").every(expression =>\n expression.isConstantExpression(),\n );\n }\n\n return true;\n }\n\n if (this.isUnaryExpression()) {\n if (this.node.operator !== \"void\") {\n return false;\n }\n\n return this.get(\"argument\").isConstantExpression();\n }\n\n if (this.isBinaryExpression()) {\n const { operator } = this.node;\n return (\n operator !== \"in\" &&\n operator !== \"instanceof\" &&\n this.get(\"left\").isConstantExpression() &&\n this.get(\"right\").isConstantExpression()\n );\n }\n\n return false;\n}\n\nexport function isInStrictMode(this: NodePath) {\n const start = this.isProgram() ? this : this.parentPath;\n\n const strictParent = start.find(path => {\n if (path.isProgram({ sourceType: \"module\" })) return true;\n\n if (path.isClass()) return true;\n\n if (\n path.isArrowFunctionExpression() &&\n !path.get(\"body\").isBlockStatement()\n ) {\n return false;\n }\n\n let body: t.BlockStatement | t.Program;\n if (path.isFunction()) {\n body = path.node.body as t.BlockStatement;\n } else if (path.isProgram()) {\n body = path.node;\n } else {\n return false;\n }\n\n for (const directive of body.directives) {\n if (directive.value.value === \"use strict\") {\n return true;\n }\n }\n });\n\n return !!strictParent;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js b/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js index f2e3173e..2d425367 100644 --- a/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js +++ b/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js @@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.hooks = void 0; -const hooks = [function (self, parent) { +const hooks = exports.hooks = [function (self, parent) { const removeParent = self.key === "test" && (parent.isWhile() || parent.isSwitchCase()) || self.key === "declaration" && parent.isExportDeclaration() || self.key === "body" && parent.isLabeledStatement() || self.listKey === "declarations" && parent.isVariableDeclaration() && parent.node.declarations.length === 1 || self.key === "expression" && parent.isExpressionStatement(); if (removeParent) { parent.remove(); @@ -33,6 +33,5 @@ const hooks = [function (self, parent) { return true; } }]; -exports.hooks = hooks; //# sourceMappingURL=removal-hooks.js.map diff --git a/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js.map b/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js.map index 15645f28..11d324a4 100644 --- a/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js.map +++ b/node_modules/@babel/traverse/lib/path/lib/removal-hooks.js.map @@ -1 +1 @@ -{"version":3,"names":["hooks","self","parent","removeParent","key","isWhile","isSwitchCase","isExportDeclaration","isLabeledStatement","listKey","isVariableDeclaration","node","declarations","length","isExpressionStatement","remove","isSequenceExpression","expressions","replaceWith","isBinary","right","left","isIfStatement","isLoop","isArrowFunctionExpression","type","body","exports"],"sources":["../../../src/path/lib/removal-hooks.ts"],"sourcesContent":["// this file contains hooks that handle ancestry cleanup of parent nodes when removing children\n\nimport type NodePath from \"../index.ts\";\nimport type * as t from \"@babel/types\";\n/**\n * Pre hooks should be used for either rejecting removal or delegating removal\n */\n\nexport const hooks = [\n function (self: NodePath, parent: NodePath) {\n const removeParent =\n // while (NODE);\n // removing the test of a while/switch, we can either just remove it entirely *or* turn the\n // `test` into `true` unlikely that the latter will ever be what's wanted so we just remove\n // the loop to avoid infinite recursion\n (self.key === \"test\" && (parent.isWhile() || parent.isSwitchCase())) ||\n // export NODE;\n // just remove a declaration for an export as this is no longer valid\n (self.key === \"declaration\" && parent.isExportDeclaration()) ||\n // label: NODE\n // stray labeled statement with no body\n (self.key === \"body\" && parent.isLabeledStatement()) ||\n // let NODE;\n // remove an entire declaration if there are no declarators left\n (self.listKey === \"declarations\" &&\n parent.isVariableDeclaration() &&\n parent.node.declarations.length === 1) ||\n // NODE;\n // remove the entire expression statement if there's no expression\n (self.key === \"expression\" && parent.isExpressionStatement());\n\n if (removeParent) {\n parent.remove();\n return true;\n }\n },\n\n function (self: NodePath, parent: NodePath) {\n if (parent.isSequenceExpression() && parent.node.expressions.length === 1) {\n // (node, NODE);\n // we've just removed the second element of a sequence expression so let's turn that sequence\n // expression into a regular expression\n parent.replaceWith(parent.node.expressions[0]);\n return true;\n }\n },\n\n function (self: NodePath, parent: NodePath) {\n if (parent.isBinary()) {\n // left + NODE;\n // NODE + right;\n // we're in a binary expression, better remove it and replace it with the last expression\n if (self.key === \"left\") {\n parent.replaceWith(parent.node.right);\n } else {\n // key === \"right\"\n parent.replaceWith(parent.node.left);\n }\n return true;\n }\n },\n\n function (self: NodePath, parent: NodePath) {\n if (\n (parent.isIfStatement() && self.key === \"consequent\") ||\n (self.key === \"body\" &&\n (parent.isLoop() || parent.isArrowFunctionExpression()))\n ) {\n self.replaceWith({\n type: \"BlockStatement\",\n body: [],\n } as t.BlockStatement);\n return true;\n }\n },\n];\n"],"mappings":";;;;;;AAQO,MAAMA,KAAK,GAAG,CACnB,UAAUC,IAAc,EAAEC,MAAgB,EAAE;EAC1C,MAAMC,YAAY,GAKfF,IAAI,CAACG,GAAG,KAAK,MAAM,KAAKF,MAAM,CAACG,OAAO,CAAC,CAAC,IAAIH,MAAM,CAACI,YAAY,CAAC,CAAC,CAAC,IAGlEL,IAAI,CAACG,GAAG,KAAK,aAAa,IAAIF,MAAM,CAACK,mBAAmB,CAAC,CAAE,IAG3DN,IAAI,CAACG,GAAG,KAAK,MAAM,IAAIF,MAAM,CAACM,kBAAkB,CAAC,CAAE,IAGnDP,IAAI,CAACQ,OAAO,KAAK,cAAc,IAC9BP,MAAM,CAACQ,qBAAqB,CAAC,CAAC,IAC9BR,MAAM,CAACS,IAAI,CAACC,YAAY,CAACC,MAAM,KAAK,CAAE,IAGvCZ,IAAI,CAACG,GAAG,KAAK,YAAY,IAAIF,MAAM,CAACY,qBAAqB,CAAC,CAAE;EAE/D,IAAIX,YAAY,EAAE;IAChBD,MAAM,CAACa,MAAM,CAAC,CAAC;IACf,OAAO,IAAI;EACb;AACF,CAAC,EAED,UAAUd,IAAc,EAAEC,MAAgB,EAAE;EAC1C,IAAIA,MAAM,CAACc,oBAAoB,CAAC,CAAC,IAAId,MAAM,CAACS,IAAI,CAACM,WAAW,CAACJ,MAAM,KAAK,CAAC,EAAE;IAIzEX,MAAM,CAACgB,WAAW,CAAChB,MAAM,CAACS,IAAI,CAACM,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,IAAI;EACb;AACF,CAAC,EAED,UAAUhB,IAAc,EAAEC,MAAgB,EAAE;EAC1C,IAAIA,MAAM,CAACiB,QAAQ,CAAC,CAAC,EAAE;IAIrB,IAAIlB,IAAI,CAACG,GAAG,KAAK,MAAM,EAAE;MACvBF,MAAM,CAACgB,WAAW,CAAChB,MAAM,CAACS,IAAI,CAACS,KAAK,CAAC;IACvC,CAAC,MAAM;MAELlB,MAAM,CAACgB,WAAW,CAAChB,MAAM,CAACS,IAAI,CAACU,IAAI,CAAC;IACtC;IACA,OAAO,IAAI;EACb;AACF,CAAC,EAED,UAAUpB,IAAc,EAAEC,MAAgB,EAAE;EAC1C,IACGA,MAAM,CAACoB,aAAa,CAAC,CAAC,IAAIrB,IAAI,CAACG,GAAG,KAAK,YAAY,IACnDH,IAAI,CAACG,GAAG,KAAK,MAAM,KACjBF,MAAM,CAACqB,MAAM,CAAC,CAAC,IAAIrB,MAAM,CAACsB,yBAAyB,CAAC,CAAC,CAAE,EAC1D;IACAvB,IAAI,CAACiB,WAAW,CAAC;MACfO,IAAI,EAAE,gBAAgB;MACtBC,IAAI,EAAE;IACR,CAAqB,CAAC;IACtB,OAAO,IAAI;EACb;AACF,CAAC,CACF;AAACC,OAAA,CAAA3B,KAAA,GAAAA,KAAA"}
\ No newline at end of file +{"version":3,"names":["hooks","exports","self","parent","removeParent","key","isWhile","isSwitchCase","isExportDeclaration","isLabeledStatement","listKey","isVariableDeclaration","node","declarations","length","isExpressionStatement","remove","isSequenceExpression","expressions","replaceWith","isBinary","right","left","isIfStatement","isLoop","isArrowFunctionExpression","type","body"],"sources":["../../../src/path/lib/removal-hooks.ts"],"sourcesContent":["// this file contains hooks that handle ancestry cleanup of parent nodes when removing children\n\nimport type NodePath from \"../index.ts\";\nimport type * as t from \"@babel/types\";\n/**\n * Pre hooks should be used for either rejecting removal or delegating removal\n */\n\nexport const hooks = [\n function (self: NodePath, parent: NodePath) {\n const removeParent =\n // while (NODE);\n // removing the test of a while/switch, we can either just remove it entirely *or* turn the\n // `test` into `true` unlikely that the latter will ever be what's wanted so we just remove\n // the loop to avoid infinite recursion\n (self.key === \"test\" && (parent.isWhile() || parent.isSwitchCase())) ||\n // export NODE;\n // just remove a declaration for an export as this is no longer valid\n (self.key === \"declaration\" && parent.isExportDeclaration()) ||\n // label: NODE\n // stray labeled statement with no body\n (self.key === \"body\" && parent.isLabeledStatement()) ||\n // let NODE;\n // remove an entire declaration if there are no declarators left\n (self.listKey === \"declarations\" &&\n parent.isVariableDeclaration() &&\n parent.node.declarations.length === 1) ||\n // NODE;\n // remove the entire expression statement if there's no expression\n (self.key === \"expression\" && parent.isExpressionStatement());\n\n if (removeParent) {\n parent.remove();\n return true;\n }\n },\n\n function (self: NodePath, parent: NodePath) {\n if (parent.isSequenceExpression() && parent.node.expressions.length === 1) {\n // (node, NODE);\n // we've just removed the second element of a sequence expression so let's turn that sequence\n // expression into a regular expression\n parent.replaceWith(parent.node.expressions[0]);\n return true;\n }\n },\n\n function (self: NodePath, parent: NodePath) {\n if (parent.isBinary()) {\n // left + NODE;\n // NODE + right;\n // we're in a binary expression, better remove it and replace it with the last expression\n if (self.key === \"left\") {\n parent.replaceWith(parent.node.right);\n } else {\n // key === \"right\"\n parent.replaceWith(parent.node.left);\n }\n return true;\n }\n },\n\n function (self: NodePath, parent: NodePath) {\n if (\n (parent.isIfStatement() && self.key === \"consequent\") ||\n (self.key === \"body\" &&\n (parent.isLoop() || parent.isArrowFunctionExpression()))\n ) {\n self.replaceWith({\n type: \"BlockStatement\",\n body: [],\n } as t.BlockStatement);\n return true;\n }\n },\n];\n"],"mappings":";;;;;;AAQO,MAAMA,KAAK,GAAAC,OAAA,CAAAD,KAAA,GAAG,CACnB,UAAUE,IAAc,EAAEC,MAAgB,EAAE;EAC1C,MAAMC,YAAY,GAKfF,IAAI,CAACG,GAAG,KAAK,MAAM,KAAKF,MAAM,CAACG,OAAO,CAAC,CAAC,IAAIH,MAAM,CAACI,YAAY,CAAC,CAAC,CAAC,IAGlEL,IAAI,CAACG,GAAG,KAAK,aAAa,IAAIF,MAAM,CAACK,mBAAmB,CAAC,CAAE,IAG3DN,IAAI,CAACG,GAAG,KAAK,MAAM,IAAIF,MAAM,CAACM,kBAAkB,CAAC,CAAE,IAGnDP,IAAI,CAACQ,OAAO,KAAK,cAAc,IAC9BP,MAAM,CAACQ,qBAAqB,CAAC,CAAC,IAC9BR,MAAM,CAACS,IAAI,CAACC,YAAY,CAACC,MAAM,KAAK,CAAE,IAGvCZ,IAAI,CAACG,GAAG,KAAK,YAAY,IAAIF,MAAM,CAACY,qBAAqB,CAAC,CAAE;EAE/D,IAAIX,YAAY,EAAE;IAChBD,MAAM,CAACa,MAAM,CAAC,CAAC;IACf,OAAO,IAAI;EACb;AACF,CAAC,EAED,UAAUd,IAAc,EAAEC,MAAgB,EAAE;EAC1C,IAAIA,MAAM,CAACc,oBAAoB,CAAC,CAAC,IAAId,MAAM,CAACS,IAAI,CAACM,WAAW,CAACJ,MAAM,KAAK,CAAC,EAAE;IAIzEX,MAAM,CAACgB,WAAW,CAAChB,MAAM,CAACS,IAAI,CAACM,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9C,OAAO,IAAI;EACb;AACF,CAAC,EAED,UAAUhB,IAAc,EAAEC,MAAgB,EAAE;EAC1C,IAAIA,MAAM,CAACiB,QAAQ,CAAC,CAAC,EAAE;IAIrB,IAAIlB,IAAI,CAACG,GAAG,KAAK,MAAM,EAAE;MACvBF,MAAM,CAACgB,WAAW,CAAChB,MAAM,CAACS,IAAI,CAACS,KAAK,CAAC;IACvC,CAAC,MAAM;MAELlB,MAAM,CAACgB,WAAW,CAAChB,MAAM,CAACS,IAAI,CAACU,IAAI,CAAC;IACtC;IACA,OAAO,IAAI;EACb;AACF,CAAC,EAED,UAAUpB,IAAc,EAAEC,MAAgB,EAAE;EAC1C,IACGA,MAAM,CAACoB,aAAa,CAAC,CAAC,IAAIrB,IAAI,CAACG,GAAG,KAAK,YAAY,IACnDH,IAAI,CAACG,GAAG,KAAK,MAAM,KACjBF,MAAM,CAACqB,MAAM,CAAC,CAAC,IAAIrB,MAAM,CAACsB,yBAAyB,CAAC,CAAC,CAAE,EAC1D;IACAvB,IAAI,CAACiB,WAAW,CAAC;MACfO,IAAI,EAAE,gBAAgB;MACtBC,IAAI,EAAE;IACR,CAAqB,CAAC;IACtB,OAAO,IAAI;EACb;AACF,CAAC,CACF"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js.map b/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js.map index 1c899959..3c8fa757 100644 --- a/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js.map +++ b/node_modules/@babel/traverse/lib/path/lib/virtual-types-validator.js.map @@ -1 +1 @@ -{"version":3,"names":["_t","require","isBinding","isBlockScoped","nodeIsBlockScoped","isExportDeclaration","isExpression","nodeIsExpression","isFlow","nodeIsFlow","isForStatement","isForXStatement","isIdentifier","isImportDeclaration","isImportSpecifier","isJSXIdentifier","isJSXMemberExpression","isMemberExpression","isRestElement","nodeIsRestElement","isReferenced","nodeIsReferenced","isScope","nodeIsScope","isStatement","nodeIsStatement","isVar","nodeIsVar","isVariableDeclaration","react","isForOfStatement","isCompatTag","isReferencedIdentifier","opts","node","parent","name","parentPath","isReferencedMemberExpression","isBindingIdentifier","grandparent","left","init","isUser","loc","isGenerated","isPure","constantsOnly","scope","importKind","exportKind","isRestProperty","isObjectPattern","isSpreadProperty","isObjectExpression","isForAwaitStatement","await","exports","isExistentialTypeParam","Error","isNumericLiteralTypeAnnotation"],"sources":["../../../src/path/lib/virtual-types-validator.ts"],"sourcesContent":["import type NodePath from \"../index.ts\";\nimport {\n isBinding,\n isBlockScoped as nodeIsBlockScoped,\n isExportDeclaration,\n isExpression as nodeIsExpression,\n isFlow as nodeIsFlow,\n isForStatement,\n isForXStatement,\n isIdentifier,\n isImportDeclaration,\n isImportSpecifier,\n isJSXIdentifier,\n isJSXMemberExpression,\n isMemberExpression,\n isRestElement as nodeIsRestElement,\n isReferenced as nodeIsReferenced,\n isScope as nodeIsScope,\n isStatement as nodeIsStatement,\n isVar as nodeIsVar,\n isVariableDeclaration,\n react,\n isForOfStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nconst { isCompatTag } = react;\nimport type { VirtualTypeAliases } from \"./virtual-types.ts\";\n\ntype Opts<Obj> = Partial<{\n [Prop in keyof Obj]: Obj[Prop] extends t.Node\n ? t.Node\n : Obj[Prop] extends t.Node[]\n ? t.Node[]\n : Obj[Prop];\n}>;\n\nexport interface VirtualTypeNodePathValidators {\n isBindingIdentifier<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"BindingIdentifier\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"BindingIdentifier\"]>;\n isBlockScoped(opts?: Opts<VirtualTypeAliases[\"BlockScoped\"]>): boolean;\n /**\n * @deprecated\n */\n isExistentialTypeParam<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"ExistentialTypeParam\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"ExistentialTypeParam\"]>;\n isExpression<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Expression\"]>,\n ): this is NodePath<T & t.Expression>;\n isFlow<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Flow\"]>,\n ): this is NodePath<T & t.Flow>;\n isForAwaitStatement<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"ForAwaitStatement\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"ForAwaitStatement\"]>;\n isGenerated(opts?: VirtualTypeAliases[\"Generated\"]): boolean;\n /**\n * @deprecated\n */\n isNumericLiteralTypeAnnotation(\n opts?: VirtualTypeAliases[\"NumericLiteralTypeAnnotation\"],\n ): void;\n isPure(opts?: VirtualTypeAliases[\"Pure\"]): boolean;\n isReferenced(opts?: VirtualTypeAliases[\"Referenced\"]): boolean;\n isReferencedIdentifier<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"ReferencedIdentifier\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"ReferencedIdentifier\"]>;\n isReferencedMemberExpression<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"ReferencedMemberExpression\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"ReferencedMemberExpression\"]>;\n isRestProperty<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"RestProperty\"]>,\n ): this is NodePath<T & t.RestProperty>;\n isScope<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Scope\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"Scope\"]>;\n isSpreadProperty<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"SpreadProperty\"]>,\n ): this is NodePath<T & t.SpreadProperty>;\n isStatement<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Statement\"]>,\n ): this is NodePath<T & t.Statement>;\n isUser(opts?: VirtualTypeAliases[\"User\"]): boolean;\n isVar<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Var\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"Var\"]>;\n}\n\nexport function isReferencedIdentifier(this: NodePath, opts?: any): boolean {\n const { node, parent } = this;\n if (!isIdentifier(node, opts) && !isJSXMemberExpression(parent, opts)) {\n if (isJSXIdentifier(node, opts)) {\n if (isCompatTag(node.name)) return false;\n } else {\n // not a JSXIdentifier or an Identifier\n return false;\n }\n }\n\n // check if node is referenced\n return nodeIsReferenced(node, parent, this.parentPath.parent);\n}\n\nexport function isReferencedMemberExpression(this: NodePath): boolean {\n const { node, parent } = this;\n return isMemberExpression(node) && nodeIsReferenced(node, parent);\n}\n\nexport function isBindingIdentifier(this: NodePath): boolean {\n const { node, parent } = this;\n const grandparent = this.parentPath.parent;\n return isIdentifier(node) && isBinding(node, parent, grandparent);\n}\n\nexport function isStatement(this: NodePath): boolean {\n const { node, parent } = this;\n if (nodeIsStatement(node)) {\n if (isVariableDeclaration(node)) {\n if (isForXStatement(parent, { left: node })) return false;\n if (isForStatement(parent, { init: node })) return false;\n }\n\n return true;\n } else {\n return false;\n }\n}\n\nexport function isExpression(this: NodePath): boolean {\n if (this.isIdentifier()) {\n return this.isReferencedIdentifier();\n } else {\n return nodeIsExpression(this.node);\n }\n}\n\nexport function isScope(this: NodePath): boolean {\n return nodeIsScope(this.node, this.parent);\n}\n\nexport function isReferenced(this: NodePath): boolean {\n return nodeIsReferenced(this.node, this.parent);\n}\n\nexport function isBlockScoped(this: NodePath): boolean {\n return nodeIsBlockScoped(this.node);\n}\n\nexport function isVar(this: NodePath): boolean {\n return nodeIsVar(this.node);\n}\n\nexport function isUser(this: NodePath): boolean {\n return this.node && !!this.node.loc;\n}\n\nexport function isGenerated(this: NodePath): boolean {\n return !this.isUser();\n}\n\nexport function isPure(this: NodePath, constantsOnly?: boolean): boolean {\n return this.scope.isPure(this.node, constantsOnly);\n}\n\nexport function isFlow(this: NodePath): boolean {\n const { node } = this;\n if (nodeIsFlow(node)) {\n return true;\n } else if (isImportDeclaration(node)) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n } else if (isExportDeclaration(node)) {\n return node.exportKind === \"type\";\n } else if (isImportSpecifier(node)) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n } else {\n return false;\n }\n}\n\n// TODO: 7.0 Backwards Compat\nexport function isRestProperty(this: NodePath): boolean {\n return (\n nodeIsRestElement(this.node) &&\n this.parentPath &&\n this.parentPath.isObjectPattern()\n );\n}\n\nexport function isSpreadProperty(this: NodePath): boolean {\n return (\n nodeIsRestElement(this.node) &&\n this.parentPath &&\n this.parentPath.isObjectExpression()\n );\n}\n\nexport function isForAwaitStatement(this: NodePath): boolean {\n return isForOfStatement(this.node, { await: true });\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.isExistentialTypeParam = function isExistentialTypeParam(\n this: NodePath,\n ): void {\n throw new Error(\n \"`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.\",\n );\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.isNumericLiteralTypeAnnotation =\n function isNumericLiteralTypeAnnotation(this: NodePath): void {\n throw new Error(\n \"`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.\",\n );\n };\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_t","require","isBinding","isBlockScoped","nodeIsBlockScoped","isExportDeclaration","isExpression","nodeIsExpression","isFlow","nodeIsFlow","isForStatement","isForXStatement","isIdentifier","isImportDeclaration","isImportSpecifier","isJSXIdentifier","isJSXMemberExpression","isMemberExpression","isRestElement","nodeIsRestElement","isReferenced","nodeIsReferenced","isScope","nodeIsScope","isStatement","nodeIsStatement","isVar","nodeIsVar","isVariableDeclaration","react","isForOfStatement","isCompatTag","isReferencedIdentifier","opts","node","parent","name","parentPath","isReferencedMemberExpression","isBindingIdentifier","grandparent","left","init","isUser","loc","isGenerated","isPure","constantsOnly","scope","importKind","exportKind","isRestProperty","isObjectPattern","isSpreadProperty","isObjectExpression","isForAwaitStatement","await","exports","isExistentialTypeParam","Error","isNumericLiteralTypeAnnotation"],"sources":["../../../src/path/lib/virtual-types-validator.ts"],"sourcesContent":["import type NodePath from \"../index.ts\";\nimport {\n isBinding,\n isBlockScoped as nodeIsBlockScoped,\n isExportDeclaration,\n isExpression as nodeIsExpression,\n isFlow as nodeIsFlow,\n isForStatement,\n isForXStatement,\n isIdentifier,\n isImportDeclaration,\n isImportSpecifier,\n isJSXIdentifier,\n isJSXMemberExpression,\n isMemberExpression,\n isRestElement as nodeIsRestElement,\n isReferenced as nodeIsReferenced,\n isScope as nodeIsScope,\n isStatement as nodeIsStatement,\n isVar as nodeIsVar,\n isVariableDeclaration,\n react,\n isForOfStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nconst { isCompatTag } = react;\nimport type { VirtualTypeAliases } from \"./virtual-types.ts\";\n\ntype Opts<Obj> = Partial<{\n [Prop in keyof Obj]: Obj[Prop] extends t.Node\n ? t.Node\n : Obj[Prop] extends t.Node[]\n ? t.Node[]\n : Obj[Prop];\n}>;\n\nexport interface VirtualTypeNodePathValidators {\n isBindingIdentifier<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"BindingIdentifier\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"BindingIdentifier\"]>;\n isBlockScoped(opts?: Opts<VirtualTypeAliases[\"BlockScoped\"]>): boolean;\n /**\n * @deprecated\n */\n isExistentialTypeParam<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"ExistentialTypeParam\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"ExistentialTypeParam\"]>;\n isExpression<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Expression\"]>,\n ): this is NodePath<T & t.Expression>;\n isFlow<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Flow\"]>,\n ): this is NodePath<T & t.Flow>;\n isForAwaitStatement<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"ForAwaitStatement\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"ForAwaitStatement\"]>;\n isGenerated(opts?: VirtualTypeAliases[\"Generated\"]): boolean;\n /**\n * @deprecated\n */\n isNumericLiteralTypeAnnotation(\n opts?: VirtualTypeAliases[\"NumericLiteralTypeAnnotation\"],\n ): void;\n isPure(opts?: VirtualTypeAliases[\"Pure\"]): boolean;\n isReferenced(opts?: VirtualTypeAliases[\"Referenced\"]): boolean;\n isReferencedIdentifier<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"ReferencedIdentifier\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"ReferencedIdentifier\"]>;\n isReferencedMemberExpression<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"ReferencedMemberExpression\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"ReferencedMemberExpression\"]>;\n isRestProperty<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"RestProperty\"]>,\n ): this is NodePath<T & t.RestProperty>;\n isScope<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Scope\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"Scope\"]>;\n isSpreadProperty<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"SpreadProperty\"]>,\n ): this is NodePath<T & t.SpreadProperty>;\n isStatement<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Statement\"]>,\n ): this is NodePath<T & t.Statement>;\n isUser(opts?: VirtualTypeAliases[\"User\"]): boolean;\n isVar<T extends t.Node>(\n this: NodePath<T>,\n opts?: Opts<VirtualTypeAliases[\"Var\"]>,\n ): this is NodePath<T & VirtualTypeAliases[\"Var\"]>;\n}\n\nexport function isReferencedIdentifier(this: NodePath, opts?: any): boolean {\n const { node, parent } = this;\n if (!isIdentifier(node, opts) && !isJSXMemberExpression(parent, opts)) {\n if (isJSXIdentifier(node, opts)) {\n if (isCompatTag(node.name)) return false;\n } else {\n // not a JSXIdentifier or an Identifier\n return false;\n }\n }\n\n // check if node is referenced\n return nodeIsReferenced(node, parent, this.parentPath.parent);\n}\n\nexport function isReferencedMemberExpression(this: NodePath): boolean {\n const { node, parent } = this;\n return isMemberExpression(node) && nodeIsReferenced(node, parent);\n}\n\nexport function isBindingIdentifier(this: NodePath): boolean {\n const { node, parent } = this;\n const grandparent = this.parentPath.parent;\n return isIdentifier(node) && isBinding(node, parent, grandparent);\n}\n\nexport function isStatement(this: NodePath): boolean {\n const { node, parent } = this;\n if (nodeIsStatement(node)) {\n if (isVariableDeclaration(node)) {\n if (isForXStatement(parent, { left: node })) return false;\n if (isForStatement(parent, { init: node })) return false;\n }\n\n return true;\n } else {\n return false;\n }\n}\n\nexport function isExpression(this: NodePath): boolean {\n if (this.isIdentifier()) {\n return this.isReferencedIdentifier();\n } else {\n return nodeIsExpression(this.node);\n }\n}\n\nexport function isScope(this: NodePath): boolean {\n return nodeIsScope(this.node, this.parent);\n}\n\nexport function isReferenced(this: NodePath): boolean {\n return nodeIsReferenced(this.node, this.parent);\n}\n\nexport function isBlockScoped(this: NodePath): boolean {\n return nodeIsBlockScoped(this.node);\n}\n\nexport function isVar(this: NodePath): boolean {\n return nodeIsVar(this.node);\n}\n\nexport function isUser(this: NodePath): boolean {\n return this.node && !!this.node.loc;\n}\n\nexport function isGenerated(this: NodePath): boolean {\n return !this.isUser();\n}\n\nexport function isPure(this: NodePath, constantsOnly?: boolean): boolean {\n return this.scope.isPure(this.node, constantsOnly);\n}\n\nexport function isFlow(this: NodePath): boolean {\n const { node } = this;\n if (nodeIsFlow(node)) {\n return true;\n } else if (isImportDeclaration(node)) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n } else if (isExportDeclaration(node)) {\n return node.exportKind === \"type\";\n } else if (isImportSpecifier(node)) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n } else {\n return false;\n }\n}\n\n// TODO: 7.0 Backwards Compat\nexport function isRestProperty(this: NodePath): boolean {\n return (\n nodeIsRestElement(this.node) &&\n this.parentPath &&\n this.parentPath.isObjectPattern()\n );\n}\n\nexport function isSpreadProperty(this: NodePath): boolean {\n return (\n nodeIsRestElement(this.node) &&\n this.parentPath &&\n this.parentPath.isObjectExpression()\n );\n}\n\nexport function isForAwaitStatement(this: NodePath): boolean {\n return isForOfStatement(this.node, { await: true });\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.isExistentialTypeParam = function isExistentialTypeParam(\n this: NodePath,\n ): void {\n throw new Error(\n \"`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.\",\n );\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.isNumericLiteralTypeAnnotation =\n function isNumericLiteralTypeAnnotation(this: NodePath): void {\n throw new Error(\n \"`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.\",\n );\n };\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/lib/virtual-types.js b/node_modules/@babel/traverse/lib/path/lib/virtual-types.js index 4b8eaf00..0322f091 100644 --- a/node_modules/@babel/traverse/lib/path/lib/virtual-types.js +++ b/node_modules/@babel/traverse/lib/path/lib/virtual-types.js @@ -4,41 +4,23 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.Var = exports.User = exports.Statement = exports.SpreadProperty = exports.Scope = exports.RestProperty = exports.ReferencedMemberExpression = exports.ReferencedIdentifier = exports.Referenced = exports.Pure = exports.NumericLiteralTypeAnnotation = exports.Generated = exports.ForAwaitStatement = exports.Flow = exports.Expression = exports.ExistentialTypeParam = exports.BlockScoped = exports.BindingIdentifier = void 0; -const ReferencedIdentifier = ["Identifier", "JSXIdentifier"]; -exports.ReferencedIdentifier = ReferencedIdentifier; -const ReferencedMemberExpression = ["MemberExpression"]; -exports.ReferencedMemberExpression = ReferencedMemberExpression; -const BindingIdentifier = ["Identifier"]; -exports.BindingIdentifier = BindingIdentifier; -const Statement = ["Statement"]; -exports.Statement = Statement; -const Expression = ["Expression"]; -exports.Expression = Expression; -const Scope = ["Scopable", "Pattern"]; -exports.Scope = Scope; -const Referenced = null; -exports.Referenced = Referenced; -const BlockScoped = null; -exports.BlockScoped = BlockScoped; -const Var = ["VariableDeclaration"]; -exports.Var = Var; -const User = null; -exports.User = User; -const Generated = null; -exports.Generated = Generated; -const Pure = null; -exports.Pure = Pure; -const Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"]; -exports.Flow = Flow; -const RestProperty = ["RestElement"]; -exports.RestProperty = RestProperty; -const SpreadProperty = ["RestElement"]; -exports.SpreadProperty = SpreadProperty; -const ExistentialTypeParam = ["ExistsTypeAnnotation"]; -exports.ExistentialTypeParam = ExistentialTypeParam; -const NumericLiteralTypeAnnotation = ["NumberLiteralTypeAnnotation"]; -exports.NumericLiteralTypeAnnotation = NumericLiteralTypeAnnotation; -const ForAwaitStatement = ["ForOfStatement"]; -exports.ForAwaitStatement = ForAwaitStatement; +const ReferencedIdentifier = exports.ReferencedIdentifier = ["Identifier", "JSXIdentifier"]; +const ReferencedMemberExpression = exports.ReferencedMemberExpression = ["MemberExpression"]; +const BindingIdentifier = exports.BindingIdentifier = ["Identifier"]; +const Statement = exports.Statement = ["Statement"]; +const Expression = exports.Expression = ["Expression"]; +const Scope = exports.Scope = ["Scopable", "Pattern"]; +const Referenced = exports.Referenced = null; +const BlockScoped = exports.BlockScoped = null; +const Var = exports.Var = ["VariableDeclaration"]; +const User = exports.User = null; +const Generated = exports.Generated = null; +const Pure = exports.Pure = null; +const Flow = exports.Flow = ["Flow", "ImportDeclaration", "ExportDeclaration", "ImportSpecifier"]; +const RestProperty = exports.RestProperty = ["RestElement"]; +const SpreadProperty = exports.SpreadProperty = ["RestElement"]; +const ExistentialTypeParam = exports.ExistentialTypeParam = ["ExistsTypeAnnotation"]; +const NumericLiteralTypeAnnotation = exports.NumericLiteralTypeAnnotation = ["NumberLiteralTypeAnnotation"]; +const ForAwaitStatement = exports.ForAwaitStatement = ["ForOfStatement"]; //# sourceMappingURL=virtual-types.js.map diff --git a/node_modules/@babel/traverse/lib/path/lib/virtual-types.js.map b/node_modules/@babel/traverse/lib/path/lib/virtual-types.js.map index 414bd757..5361a574 100644 --- a/node_modules/@babel/traverse/lib/path/lib/virtual-types.js.map +++ b/node_modules/@babel/traverse/lib/path/lib/virtual-types.js.map @@ -1 +1 @@ -{"version":3,"names":["ReferencedIdentifier","exports","ReferencedMemberExpression","BindingIdentifier","Statement","Expression","Scope","Referenced","BlockScoped","Var","User","Generated","Pure","Flow","RestProperty","SpreadProperty","ExistentialTypeParam","NumericLiteralTypeAnnotation","ForAwaitStatement"],"sources":["../../../src/path/lib/virtual-types.ts"],"sourcesContent":["import type * as t from \"@babel/types\";\n\nexport interface VirtualTypeAliases {\n BindingIdentifier: t.Identifier;\n BlockScoped: t.Node;\n ExistentialTypeParam: t.ExistsTypeAnnotation;\n Expression: t.Expression;\n Flow: t.Flow | t.ImportDeclaration | t.ExportDeclaration | t.ImportSpecifier;\n ForAwaitStatement: t.ForOfStatement;\n Generated: t.Node;\n NumericLiteralTypeAnnotation: t.NumberLiteralTypeAnnotation;\n Pure: t.Node;\n Referenced: t.Node;\n ReferencedIdentifier: t.Identifier | t.JSXIdentifier;\n ReferencedMemberExpression: t.MemberExpression;\n RestProperty: t.RestElement;\n Scope: t.Scopable | t.Pattern;\n SpreadProperty: t.RestElement;\n Statement: t.Statement;\n User: t.Node;\n Var: t.VariableDeclaration;\n}\n\ntype VirtualTypeMapping = readonly (t.Node[\"type\"] | keyof t.Aliases)[] | null;\n\nexport const ReferencedIdentifier: VirtualTypeMapping = [\n \"Identifier\",\n \"JSXIdentifier\",\n] as const;\n\nexport const ReferencedMemberExpression: VirtualTypeMapping = [\n \"MemberExpression\",\n] as const;\n\nexport const BindingIdentifier: VirtualTypeMapping = [\"Identifier\"] as const;\n\nexport const Statement: VirtualTypeMapping = [\"Statement\"] as const;\n\nexport const Expression: VirtualTypeMapping = [\"Expression\"] as const;\n\nexport const Scope: VirtualTypeMapping = [\"Scopable\", \"Pattern\"] as const;\n\nexport const Referenced: VirtualTypeMapping = null;\n\nexport const BlockScoped: VirtualTypeMapping = null;\n\nexport const Var: VirtualTypeMapping = [\"VariableDeclaration\"];\n\nexport const User: VirtualTypeMapping = null;\n\nexport const Generated: VirtualTypeMapping = null;\n\nexport const Pure: VirtualTypeMapping = null;\n\nexport const Flow: VirtualTypeMapping = [\n \"Flow\",\n \"ImportDeclaration\",\n \"ExportDeclaration\",\n \"ImportSpecifier\",\n] as const;\n\n// TODO: 7.0 Backwards Compat\nexport const RestProperty: VirtualTypeMapping = [\"RestElement\"] as const;\n\nexport const SpreadProperty: VirtualTypeMapping = [\"RestElement\"] as const;\n\nexport const ExistentialTypeParam: VirtualTypeMapping = [\n \"ExistsTypeAnnotation\",\n] as const;\n\nexport const NumericLiteralTypeAnnotation: VirtualTypeMapping = [\n \"NumberLiteralTypeAnnotation\",\n] as const;\n\nexport const ForAwaitStatement: VirtualTypeMapping = [\n \"ForOfStatement\",\n] as const;\n"],"mappings":";;;;;;AAyBO,MAAMA,oBAAwC,GAAG,CACtD,YAAY,EACZ,eAAe,CACP;AAACC,OAAA,CAAAD,oBAAA,GAAAA,oBAAA;AAEJ,MAAME,0BAA8C,GAAG,CAC5D,kBAAkB,CACV;AAACD,OAAA,CAAAC,0BAAA,GAAAA,0BAAA;AAEJ,MAAMC,iBAAqC,GAAG,CAAC,YAAY,CAAU;AAACF,OAAA,CAAAE,iBAAA,GAAAA,iBAAA;AAEtE,MAAMC,SAA6B,GAAG,CAAC,WAAW,CAAU;AAACH,OAAA,CAAAG,SAAA,GAAAA,SAAA;AAE7D,MAAMC,UAA8B,GAAG,CAAC,YAAY,CAAU;AAACJ,OAAA,CAAAI,UAAA,GAAAA,UAAA;AAE/D,MAAMC,KAAyB,GAAG,CAAC,UAAU,EAAE,SAAS,CAAU;AAACL,OAAA,CAAAK,KAAA,GAAAA,KAAA;AAEnE,MAAMC,UAA8B,GAAG,IAAI;AAACN,OAAA,CAAAM,UAAA,GAAAA,UAAA;AAE5C,MAAMC,WAA+B,GAAG,IAAI;AAACP,OAAA,CAAAO,WAAA,GAAAA,WAAA;AAE7C,MAAMC,GAAuB,GAAG,CAAC,qBAAqB,CAAC;AAACR,OAAA,CAAAQ,GAAA,GAAAA,GAAA;AAExD,MAAMC,IAAwB,GAAG,IAAI;AAACT,OAAA,CAAAS,IAAA,GAAAA,IAAA;AAEtC,MAAMC,SAA6B,GAAG,IAAI;AAACV,OAAA,CAAAU,SAAA,GAAAA,SAAA;AAE3C,MAAMC,IAAwB,GAAG,IAAI;AAACX,OAAA,CAAAW,IAAA,GAAAA,IAAA;AAEtC,MAAMC,IAAwB,GAAG,CACtC,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,CACT;AAACZ,OAAA,CAAAY,IAAA,GAAAA,IAAA;AAGJ,MAAMC,YAAgC,GAAG,CAAC,aAAa,CAAU;AAACb,OAAA,CAAAa,YAAA,GAAAA,YAAA;AAElE,MAAMC,cAAkC,GAAG,CAAC,aAAa,CAAU;AAACd,OAAA,CAAAc,cAAA,GAAAA,cAAA;AAEpE,MAAMC,oBAAwC,GAAG,CACtD,sBAAsB,CACd;AAACf,OAAA,CAAAe,oBAAA,GAAAA,oBAAA;AAEJ,MAAMC,4BAAgD,GAAG,CAC9D,6BAA6B,CACrB;AAAChB,OAAA,CAAAgB,4BAAA,GAAAA,4BAAA;AAEJ,MAAMC,iBAAqC,GAAG,CACnD,gBAAgB,CACR;AAACjB,OAAA,CAAAiB,iBAAA,GAAAA,iBAAA"}
\ No newline at end of file +{"version":3,"names":["ReferencedIdentifier","exports","ReferencedMemberExpression","BindingIdentifier","Statement","Expression","Scope","Referenced","BlockScoped","Var","User","Generated","Pure","Flow","RestProperty","SpreadProperty","ExistentialTypeParam","NumericLiteralTypeAnnotation","ForAwaitStatement"],"sources":["../../../src/path/lib/virtual-types.ts"],"sourcesContent":["import type * as t from \"@babel/types\";\n\nexport interface VirtualTypeAliases {\n BindingIdentifier: t.Identifier;\n BlockScoped: t.Node;\n ExistentialTypeParam: t.ExistsTypeAnnotation;\n Expression: t.Expression;\n Flow: t.Flow | t.ImportDeclaration | t.ExportDeclaration | t.ImportSpecifier;\n ForAwaitStatement: t.ForOfStatement;\n Generated: t.Node;\n NumericLiteralTypeAnnotation: t.NumberLiteralTypeAnnotation;\n Pure: t.Node;\n Referenced: t.Node;\n ReferencedIdentifier: t.Identifier | t.JSXIdentifier;\n ReferencedMemberExpression: t.MemberExpression;\n RestProperty: t.RestElement;\n Scope: t.Scopable | t.Pattern;\n SpreadProperty: t.RestElement;\n Statement: t.Statement;\n User: t.Node;\n Var: t.VariableDeclaration;\n}\n\ntype VirtualTypeMapping = readonly (t.Node[\"type\"] | keyof t.Aliases)[] | null;\n\nexport const ReferencedIdentifier: VirtualTypeMapping = [\n \"Identifier\",\n \"JSXIdentifier\",\n] as const;\n\nexport const ReferencedMemberExpression: VirtualTypeMapping = [\n \"MemberExpression\",\n] as const;\n\nexport const BindingIdentifier: VirtualTypeMapping = [\"Identifier\"] as const;\n\nexport const Statement: VirtualTypeMapping = [\"Statement\"] as const;\n\nexport const Expression: VirtualTypeMapping = [\"Expression\"] as const;\n\nexport const Scope: VirtualTypeMapping = [\"Scopable\", \"Pattern\"] as const;\n\nexport const Referenced: VirtualTypeMapping = null;\n\nexport const BlockScoped: VirtualTypeMapping = null;\n\nexport const Var: VirtualTypeMapping = [\"VariableDeclaration\"];\n\nexport const User: VirtualTypeMapping = null;\n\nexport const Generated: VirtualTypeMapping = null;\n\nexport const Pure: VirtualTypeMapping = null;\n\nexport const Flow: VirtualTypeMapping = [\n \"Flow\",\n \"ImportDeclaration\",\n \"ExportDeclaration\",\n \"ImportSpecifier\",\n] as const;\n\n// TODO: 7.0 Backwards Compat\nexport const RestProperty: VirtualTypeMapping = [\"RestElement\"] as const;\n\nexport const SpreadProperty: VirtualTypeMapping = [\"RestElement\"] as const;\n\nexport const ExistentialTypeParam: VirtualTypeMapping = [\n \"ExistsTypeAnnotation\",\n] as const;\n\nexport const NumericLiteralTypeAnnotation: VirtualTypeMapping = [\n \"NumberLiteralTypeAnnotation\",\n] as const;\n\nexport const ForAwaitStatement: VirtualTypeMapping = [\n \"ForOfStatement\",\n] as const;\n"],"mappings":";;;;;;AAyBO,MAAMA,oBAAwC,GAAAC,OAAA,CAAAD,oBAAA,GAAG,CACtD,YAAY,EACZ,eAAe,CACP;AAEH,MAAME,0BAA8C,GAAAD,OAAA,CAAAC,0BAAA,GAAG,CAC5D,kBAAkB,CACV;AAEH,MAAMC,iBAAqC,GAAAF,OAAA,CAAAE,iBAAA,GAAG,CAAC,YAAY,CAAU;AAErE,MAAMC,SAA6B,GAAAH,OAAA,CAAAG,SAAA,GAAG,CAAC,WAAW,CAAU;AAE5D,MAAMC,UAA8B,GAAAJ,OAAA,CAAAI,UAAA,GAAG,CAAC,YAAY,CAAU;AAE9D,MAAMC,KAAyB,GAAAL,OAAA,CAAAK,KAAA,GAAG,CAAC,UAAU,EAAE,SAAS,CAAU;AAElE,MAAMC,UAA8B,GAAAN,OAAA,CAAAM,UAAA,GAAG,IAAI;AAE3C,MAAMC,WAA+B,GAAAP,OAAA,CAAAO,WAAA,GAAG,IAAI;AAE5C,MAAMC,GAAuB,GAAAR,OAAA,CAAAQ,GAAA,GAAG,CAAC,qBAAqB,CAAC;AAEvD,MAAMC,IAAwB,GAAAT,OAAA,CAAAS,IAAA,GAAG,IAAI;AAErC,MAAMC,SAA6B,GAAAV,OAAA,CAAAU,SAAA,GAAG,IAAI;AAE1C,MAAMC,IAAwB,GAAAX,OAAA,CAAAW,IAAA,GAAG,IAAI;AAErC,MAAMC,IAAwB,GAAAZ,OAAA,CAAAY,IAAA,GAAG,CACtC,MAAM,EACN,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,CACT;AAGH,MAAMC,YAAgC,GAAAb,OAAA,CAAAa,YAAA,GAAG,CAAC,aAAa,CAAU;AAEjE,MAAMC,cAAkC,GAAAd,OAAA,CAAAc,cAAA,GAAG,CAAC,aAAa,CAAU;AAEnE,MAAMC,oBAAwC,GAAAf,OAAA,CAAAe,oBAAA,GAAG,CACtD,sBAAsB,CACd;AAEH,MAAMC,4BAAgD,GAAAhB,OAAA,CAAAgB,4BAAA,GAAG,CAC9D,6BAA6B,CACrB;AAEH,MAAMC,iBAAqC,GAAAjB,OAAA,CAAAiB,iBAAA,GAAG,CACnD,gBAAgB,CACR"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/removal.js b/node_modules/@babel/traverse/lib/path/removal.js index 220cdc94..7b1ce871 100644 --- a/node_modules/@babel/traverse/lib/path/removal.js +++ b/node_modules/@babel/traverse/lib/path/removal.js @@ -12,6 +12,10 @@ exports.remove = remove; var _removalHooks = require("./lib/removal-hooks.js"); var _cache = require("../cache.js"); var _index = require("./index.js"); +var _t = require("@babel/types"); +const { + getBindingIdentifiers +} = _t; function remove() { var _this$opts; this._assertUnremoved(); @@ -28,7 +32,7 @@ function remove() { this._markRemoved(); } function _removeFromScope() { - const bindings = this.getBindingIdentifiers(); + const bindings = getBindingIdentifiers(this.node, false, false, true); Object.keys(bindings).forEach(name => this.scope.removeBinding(name)); } function _callRemovalHooks() { diff --git a/node_modules/@babel/traverse/lib/path/removal.js.map b/node_modules/@babel/traverse/lib/path/removal.js.map index 6d0bec1b..92464540 100644 --- a/node_modules/@babel/traverse/lib/path/removal.js.map +++ b/node_modules/@babel/traverse/lib/path/removal.js.map @@ -1 +1 @@ -{"version":3,"names":["_removalHooks","require","_cache","_index","remove","_this$opts","_assertUnremoved","resync","opts","noScope","_removeFromScope","_callRemovalHooks","_markRemoved","shareCommentsWithSiblings","_remove","bindings","getBindingIdentifiers","Object","keys","forEach","name","scope","removeBinding","fn","hooks","parentPath","Array","isArray","container","splice","key","updateSiblingKeys","_replaceWith","_traverseFlags","SHOULD_SKIP","REMOVED","parent","getCachedPaths","hub","delete","node","removed","buildCodeFrameError"],"sources":["../../src/path/removal.ts"],"sourcesContent":["// This file contains methods responsible for removing a node.\n\nimport { hooks } from \"./lib/removal-hooks.ts\";\nimport { getCachedPaths } from \"../cache.ts\";\nimport type NodePath from \"./index.ts\";\nimport { REMOVED, SHOULD_SKIP } from \"./index.ts\";\n\nexport function remove(this: NodePath) {\n this._assertUnremoved();\n\n this.resync();\n if (!this.opts?.noScope) {\n this._removeFromScope();\n }\n\n if (this._callRemovalHooks()) {\n this._markRemoved();\n return;\n }\n\n this.shareCommentsWithSiblings();\n this._remove();\n this._markRemoved();\n}\n\nexport function _removeFromScope(this: NodePath) {\n const bindings = this.getBindingIdentifiers();\n Object.keys(bindings).forEach(name => this.scope.removeBinding(name));\n}\n\nexport function _callRemovalHooks(this: NodePath) {\n for (const fn of hooks) {\n if (fn(this, this.parentPath)) return true;\n }\n}\n\nexport function _remove(this: NodePath) {\n if (Array.isArray(this.container)) {\n this.container.splice(this.key as number, 1);\n this.updateSiblingKeys(this.key as number, -1);\n } else {\n this._replaceWith(null);\n }\n}\n\nexport function _markRemoved(this: NodePath) {\n // this.shouldSkip = true; this.removed = true;\n this._traverseFlags |= SHOULD_SKIP | REMOVED;\n if (this.parent) {\n getCachedPaths(this.hub, this.parent).delete(this.node);\n }\n this.node = null;\n}\n\nexport function _assertUnremoved(this: NodePath) {\n if (this.removed) {\n throw this.buildCodeFrameError(\n \"NodePath has been removed so is read-only.\",\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAEO,SAASG,MAAMA,CAAA,EAAiB;EAAA,IAAAC,UAAA;EACrC,IAAI,CAACC,gBAAgB,CAAC,CAAC;EAEvB,IAAI,CAACC,MAAM,CAAC,CAAC;EACb,IAAI,GAAAF,UAAA,GAAC,IAAI,CAACG,IAAI,aAATH,UAAA,CAAWI,OAAO,GAAE;IACvB,IAAI,CAACC,gBAAgB,CAAC,CAAC;EACzB;EAEA,IAAI,IAAI,CAACC,iBAAiB,CAAC,CAAC,EAAE;IAC5B,IAAI,CAACC,YAAY,CAAC,CAAC;IACnB;EACF;EAEA,IAAI,CAACC,yBAAyB,CAAC,CAAC;EAChC,IAAI,CAACC,OAAO,CAAC,CAAC;EACd,IAAI,CAACF,YAAY,CAAC,CAAC;AACrB;AAEO,SAASF,gBAAgBA,CAAA,EAAiB;EAC/C,MAAMK,QAAQ,GAAG,IAAI,CAACC,qBAAqB,CAAC,CAAC;EAC7CC,MAAM,CAACC,IAAI,CAACH,QAAQ,CAAC,CAACI,OAAO,CAACC,IAAI,IAAI,IAAI,CAACC,KAAK,CAACC,aAAa,CAACF,IAAI,CAAC,CAAC;AACvE;AAEO,SAAST,iBAAiBA,CAAA,EAAiB;EAChD,KAAK,MAAMY,EAAE,IAAIC,mBAAK,EAAE;IACtB,IAAID,EAAE,CAAC,IAAI,EAAE,IAAI,CAACE,UAAU,CAAC,EAAE,OAAO,IAAI;EAC5C;AACF;AAEO,SAASX,OAAOA,CAAA,EAAiB;EACtC,IAAIY,KAAK,CAACC,OAAO,CAAC,IAAI,CAACC,SAAS,CAAC,EAAE;IACjC,IAAI,CAACA,SAAS,CAACC,MAAM,CAAC,IAAI,CAACC,GAAG,EAAY,CAAC,CAAC;IAC5C,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACD,GAAG,EAAY,CAAC,CAAC,CAAC;EAChD,CAAC,MAAM;IACL,IAAI,CAACE,YAAY,CAAC,IAAI,CAAC;EACzB;AACF;AAEO,SAASpB,YAAYA,CAAA,EAAiB;EAE3C,IAAI,CAACqB,cAAc,IAAIC,kBAAW,GAAGC,cAAO;EAC5C,IAAI,IAAI,CAACC,MAAM,EAAE;IACf,IAAAC,qBAAc,EAAC,IAAI,CAACC,GAAG,EAAE,IAAI,CAACF,MAAM,CAAC,CAACG,MAAM,CAAC,IAAI,CAACC,IAAI,CAAC;EACzD;EACA,IAAI,CAACA,IAAI,GAAG,IAAI;AAClB;AAEO,SAASlC,gBAAgBA,CAAA,EAAiB;EAC/C,IAAI,IAAI,CAACmC,OAAO,EAAE;IAChB,MAAM,IAAI,CAACC,mBAAmB,CAC5B,4CACF,CAAC;EACH;AACF"}
\ No newline at end of file +{"version":3,"names":["_removalHooks","require","_cache","_index","_t","getBindingIdentifiers","remove","_this$opts","_assertUnremoved","resync","opts","noScope","_removeFromScope","_callRemovalHooks","_markRemoved","shareCommentsWithSiblings","_remove","bindings","node","Object","keys","forEach","name","scope","removeBinding","fn","hooks","parentPath","Array","isArray","container","splice","key","updateSiblingKeys","_replaceWith","_traverseFlags","SHOULD_SKIP","REMOVED","parent","getCachedPaths","hub","delete","removed","buildCodeFrameError"],"sources":["../../src/path/removal.ts"],"sourcesContent":["// This file contains methods responsible for removing a node.\n\nimport { hooks } from \"./lib/removal-hooks.ts\";\nimport { getCachedPaths } from \"../cache.ts\";\nimport type NodePath from \"./index.ts\";\nimport { REMOVED, SHOULD_SKIP } from \"./index.ts\";\nimport { getBindingIdentifiers } from \"@babel/types\";\n\nexport function remove(this: NodePath) {\n this._assertUnremoved();\n\n this.resync();\n if (!this.opts?.noScope) {\n this._removeFromScope();\n }\n\n if (this._callRemovalHooks()) {\n this._markRemoved();\n return;\n }\n\n this.shareCommentsWithSiblings();\n this._remove();\n this._markRemoved();\n}\n\nexport function _removeFromScope(this: NodePath) {\n const bindings = getBindingIdentifiers(this.node, false, false, true);\n Object.keys(bindings).forEach(name => this.scope.removeBinding(name));\n}\n\nexport function _callRemovalHooks(this: NodePath) {\n for (const fn of hooks) {\n if (fn(this, this.parentPath)) return true;\n }\n}\n\nexport function _remove(this: NodePath) {\n if (Array.isArray(this.container)) {\n this.container.splice(this.key as number, 1);\n this.updateSiblingKeys(this.key as number, -1);\n } else {\n this._replaceWith(null);\n }\n}\n\nexport function _markRemoved(this: NodePath) {\n // this.shouldSkip = true; this.removed = true;\n this._traverseFlags |= SHOULD_SKIP | REMOVED;\n if (this.parent) {\n getCachedPaths(this.hub, this.parent).delete(this.node);\n }\n this.node = null;\n}\n\nexport function _assertUnremoved(this: NodePath) {\n if (this.removed) {\n throw this.buildCodeFrameError(\n \"NodePath has been removed so is read-only.\",\n );\n }\n}\n"],"mappings":";;;;;;;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,EAAA,GAAAH,OAAA;AAAqD;EAA5CI;AAAqB,IAAAD,EAAA;AAEvB,SAASE,MAAMA,CAAA,EAAiB;EAAA,IAAAC,UAAA;EACrC,IAAI,CAACC,gBAAgB,CAAC,CAAC;EAEvB,IAAI,CAACC,MAAM,CAAC,CAAC;EACb,IAAI,GAAAF,UAAA,GAAC,IAAI,CAACG,IAAI,aAATH,UAAA,CAAWI,OAAO,GAAE;IACvB,IAAI,CAACC,gBAAgB,CAAC,CAAC;EACzB;EAEA,IAAI,IAAI,CAACC,iBAAiB,CAAC,CAAC,EAAE;IAC5B,IAAI,CAACC,YAAY,CAAC,CAAC;IACnB;EACF;EAEA,IAAI,CAACC,yBAAyB,CAAC,CAAC;EAChC,IAAI,CAACC,OAAO,CAAC,CAAC;EACd,IAAI,CAACF,YAAY,CAAC,CAAC;AACrB;AAEO,SAASF,gBAAgBA,CAAA,EAAiB;EAC/C,MAAMK,QAAQ,GAAGZ,qBAAqB,CAAC,IAAI,CAACa,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC;EACrEC,MAAM,CAACC,IAAI,CAACH,QAAQ,CAAC,CAACI,OAAO,CAACC,IAAI,IAAI,IAAI,CAACC,KAAK,CAACC,aAAa,CAACF,IAAI,CAAC,CAAC;AACvE;AAEO,SAAST,iBAAiBA,CAAA,EAAiB;EAChD,KAAK,MAAMY,EAAE,IAAIC,mBAAK,EAAE;IACtB,IAAID,EAAE,CAAC,IAAI,EAAE,IAAI,CAACE,UAAU,CAAC,EAAE,OAAO,IAAI;EAC5C;AACF;AAEO,SAASX,OAAOA,CAAA,EAAiB;EACtC,IAAIY,KAAK,CAACC,OAAO,CAAC,IAAI,CAACC,SAAS,CAAC,EAAE;IACjC,IAAI,CAACA,SAAS,CAACC,MAAM,CAAC,IAAI,CAACC,GAAG,EAAY,CAAC,CAAC;IAC5C,IAAI,CAACC,iBAAiB,CAAC,IAAI,CAACD,GAAG,EAAY,CAAC,CAAC,CAAC;EAChD,CAAC,MAAM;IACL,IAAI,CAACE,YAAY,CAAC,IAAI,CAAC;EACzB;AACF;AAEO,SAASpB,YAAYA,CAAA,EAAiB;EAE3C,IAAI,CAACqB,cAAc,IAAIC,kBAAW,GAAGC,cAAO;EAC5C,IAAI,IAAI,CAACC,MAAM,EAAE;IACf,IAAAC,qBAAc,EAAC,IAAI,CAACC,GAAG,EAAE,IAAI,CAACF,MAAM,CAAC,CAACG,MAAM,CAAC,IAAI,CAACvB,IAAI,CAAC;EACzD;EACA,IAAI,CAACA,IAAI,GAAG,IAAI;AAClB;AAEO,SAASV,gBAAgBA,CAAA,EAAiB;EAC/C,IAAI,IAAI,CAACkC,OAAO,EAAE;IAChB,MAAM,IAAI,CAACC,mBAAmB,CAC5B,4CACF,CAAC;EACH;AACF"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/path/replacement.js b/node_modules/@babel/traverse/lib/path/replacement.js index dd3df51a..cca66d0f 100644 --- a/node_modules/@babel/traverse/lib/path/replacement.js +++ b/node_modules/@babel/traverse/lib/path/replacement.js @@ -22,19 +22,27 @@ const { assignmentExpression, awaitExpression, blockStatement, + buildUndefinedNode, callExpression, cloneNode, + conditionalExpression, expressionStatement, + getBindingIdentifiers, identifier, inheritLeadingComments, inheritTrailingComments, inheritsComments, + isBlockStatement, + isEmptyStatement, isExpression, + isExpressionStatement, + isIfStatement, isProgram, isStatement, + isVariableDeclaration, removeComments, returnStatement, - toSequenceExpression, + sequenceExpression, validate, yieldExpression } = _t; @@ -44,7 +52,7 @@ function replaceWithMultiple(nodes) { nodes = this._verifyNodeList(nodes); inheritLeadingComments(nodes[0], this.node); inheritTrailingComments(nodes[nodes.length - 1], this.node); - (_getCachedPaths = (0, _cache.getCachedPaths)(this.hub, this.parent)) == null ? void 0 : _getCachedPaths.delete(this.node); + (_getCachedPaths = (0, _cache.getCachedPaths)(this.hub, this.parent)) == null || _getCachedPaths.delete(this.node); this.node = this.container[this.key] = null; const paths = this.insertAfter(nodes); if (this.node) { @@ -132,14 +140,18 @@ function _replaceWith(node) { validate(this.parent, this.key, node); } this.debug(`Replace with ${node == null ? void 0 : node.type}`); - (_getCachedPaths2 = (0, _cache.getCachedPaths)(this.hub, this.parent)) == null ? void 0 : _getCachedPaths2.set(node, this).delete(this.node); + (_getCachedPaths2 = (0, _cache.getCachedPaths)(this.hub, this.parent)) == null || _getCachedPaths2.set(node, this).delete(this.node); this.node = this.container[this.key] = node; } function replaceExpressionWithStatements(nodes) { this.resync(); - const nodesAsSequenceExpression = toSequenceExpression(nodes, this.scope); - if (nodesAsSequenceExpression) { - return this.replaceWith(nodesAsSequenceExpression)[0].get("expressions"); + const declars = []; + const nodesAsSingleExpression = gatherSequenceExpressions(nodes, declars); + if (nodesAsSingleExpression) { + for (const id of declars) this.scope.push({ + id + }); + return this.replaceWith(nodesAsSingleExpression)[0].get("expressions"); } const functionParent = this.getFunctionParent(); const isParentAsync = functionParent == null ? void 0 : functionParent.is("async"); @@ -186,6 +198,53 @@ function replaceExpressionWithStatements(nodes) { } return newCallee.get("body.body"); } +function gatherSequenceExpressions(nodes, declars) { + const exprs = []; + let ensureLastUndefined = true; + for (const node of nodes) { + if (!isEmptyStatement(node)) { + ensureLastUndefined = false; + } + if (isExpression(node)) { + exprs.push(node); + } else if (isExpressionStatement(node)) { + exprs.push(node.expression); + } else if (isVariableDeclaration(node)) { + if (node.kind !== "var") return; + for (const declar of node.declarations) { + const bindings = getBindingIdentifiers(declar); + for (const key of Object.keys(bindings)) { + declars.push(cloneNode(bindings[key])); + } + if (declar.init) { + exprs.push(assignmentExpression("=", declar.id, declar.init)); + } + } + ensureLastUndefined = true; + } else if (isIfStatement(node)) { + const consequent = node.consequent ? gatherSequenceExpressions([node.consequent], declars) : buildUndefinedNode(); + const alternate = node.alternate ? gatherSequenceExpressions([node.alternate], declars) : buildUndefinedNode(); + if (!consequent || !alternate) return; + exprs.push(conditionalExpression(node.test, consequent, alternate)); + } else if (isBlockStatement(node)) { + const body = gatherSequenceExpressions(node.body, declars); + if (!body) return; + exprs.push(body); + } else if (isEmptyStatement(node)) { + if (nodes.indexOf(node) === 0) { + ensureLastUndefined = true; + } + } else { + return; + } + } + if (ensureLastUndefined) exprs.push(buildUndefinedNode()); + if (exprs.length === 1) { + return exprs[0]; + } else { + return sequenceExpression(exprs); + } +} function replaceInline(nodes) { this.resync(); if (Array.isArray(nodes)) { diff --git a/node_modules/@babel/traverse/lib/path/replacement.js.map b/node_modules/@babel/traverse/lib/path/replacement.js.map index 70ee4fd0..8d0f76b3 100644 --- a/node_modules/@babel/traverse/lib/path/replacement.js.map +++ b/node_modules/@babel/traverse/lib/path/replacement.js.map @@ -1 +1 @@ -{"version":3,"names":["_codeFrame","require","_index","_index2","_cache","_parser","_t","_helperHoistVariables","FUNCTION_TYPES","arrowFunctionExpression","assignmentExpression","awaitExpression","blockStatement","callExpression","cloneNode","expressionStatement","identifier","inheritLeadingComments","inheritTrailingComments","inheritsComments","isExpression","isProgram","isStatement","removeComments","returnStatement","toSequenceExpression","validate","yieldExpression","replaceWithMultiple","nodes","_getCachedPaths","resync","_verifyNodeList","node","length","getCachedPaths","hub","parent","delete","container","key","paths","insertAfter","requeue","remove","replaceWithSourceString","replacement","ast","parse","err","loc","message","codeFrameColumns","start","line","column","code","expressionAST","program","body","expression","traverse","removeProperties","replaceWith","replacementPath","removed","Error","NodePath","Array","isArray","nodePath","isNodeType","canHaveVariableDeclarationOrExpression","canSwapBetweenExpressionAndStatement","parentPath","isExportDefaultDeclaration","replaceExpressionWithStatements","oldNode","_replaceWith","type","setScope","get","_getCachedPaths2","ReferenceError","inList","debug","set","nodesAsSequenceExpression","scope","functionParent","getFunctionParent","isParentAsync","is","isParentGenerator","callee","hoistVariables","id","push","completionRecords","getCompletionRecords","path","isExpressionStatement","loop","findParent","isLoop","uid","getData","generateDeclaredUidIdentifier","pushContainer","setData","name","arrowFunctionToExpression","newCallee","needToAwaitFunction","hasType","needToYieldFunction","replaceInline","_containerInsertAfter"],"sources":["../../src/path/replacement.ts"],"sourcesContent":["// This file contains methods responsible for replacing a node with another.\n\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport traverse from \"../index.ts\";\nimport NodePath from \"./index.ts\";\nimport { getCachedPaths } from \"../cache.ts\";\nimport { parse } from \"@babel/parser\";\nimport {\n FUNCTION_TYPES,\n arrowFunctionExpression,\n assignmentExpression,\n awaitExpression,\n blockStatement,\n callExpression,\n cloneNode,\n expressionStatement,\n identifier,\n inheritLeadingComments,\n inheritTrailingComments,\n inheritsComments,\n isExpression,\n isProgram,\n isStatement,\n removeComments,\n returnStatement,\n toSequenceExpression,\n validate,\n yieldExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport hoistVariables from \"@babel/helper-hoist-variables\";\n\n/**\n * Replace a node with an array of multiple. This method performs the following steps:\n *\n * - Inherit the comments of first provided node with that of the current node.\n * - Insert the provided nodes after the current node.\n * - Remove the current node.\n */\n\nexport function replaceWithMultiple(\n this: NodePath,\n nodes: t.Node | t.Node[],\n): NodePath[] {\n this.resync();\n\n nodes = this._verifyNodeList(nodes);\n inheritLeadingComments(nodes[0], this.node);\n inheritTrailingComments(nodes[nodes.length - 1], this.node);\n getCachedPaths(this.hub, this.parent)?.delete(this.node);\n this.node =\n // @ts-expect-error this.key must present in this.container\n this.container[this.key] = null;\n const paths = this.insertAfter(nodes);\n\n if (this.node) {\n this.requeue();\n } else {\n this.remove();\n }\n return paths;\n}\n\n/**\n * Parse a string as an expression and replace the current node with the result.\n *\n * NOTE: This is typically not a good idea to use. Building source strings when\n * transforming ASTs is an antipattern and SHOULD NOT be encouraged. Even if it's\n * easier to use, your transforms will be extremely brittle.\n */\n\nexport function replaceWithSourceString(this: NodePath, replacement: string) {\n this.resync();\n let ast: t.File;\n\n try {\n replacement = `(${replacement})`;\n // @ts-expect-error todo: use babel-types ast typings in Babel parser\n ast = parse(replacement);\n } catch (err) {\n const loc = err.loc;\n if (loc) {\n err.message +=\n \" - make sure this is an expression.\\n\" +\n codeFrameColumns(replacement, {\n start: {\n line: loc.line,\n column: loc.column + 1,\n },\n });\n err.code = \"BABEL_REPLACE_SOURCE_ERROR\";\n }\n throw err;\n }\n\n const expressionAST = (ast.program.body[0] as t.ExpressionStatement)\n .expression;\n traverse.removeProperties(expressionAST);\n return this.replaceWith(expressionAST);\n}\n\n/**\n * Replace the current node with another.\n */\n\nexport function replaceWith<R extends t.Node>(\n this: NodePath,\n replacementPath: R | NodePath<R>,\n): [NodePath<R>] {\n this.resync();\n\n if (this.removed) {\n throw new Error(\"You can't replace this node, we've already removed it\");\n }\n\n let replacement: t.Node =\n replacementPath instanceof NodePath\n ? replacementPath.node\n : replacementPath;\n\n if (!replacement) {\n throw new Error(\n \"You passed `path.replaceWith()` a falsy node, use `path.remove()` instead\",\n );\n }\n\n if (this.node === replacement) {\n return [this as NodePath<R>];\n }\n\n if (this.isProgram() && !isProgram(replacement)) {\n throw new Error(\n \"You can only replace a Program root node with another Program node\",\n );\n }\n\n if (Array.isArray(replacement)) {\n throw new Error(\n \"Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`\",\n );\n }\n\n if (typeof replacement === \"string\") {\n throw new Error(\n \"Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`\",\n );\n }\n\n let nodePath = \"\";\n\n if (this.isNodeType(\"Statement\") && isExpression(replacement)) {\n if (\n !this.canHaveVariableDeclarationOrExpression() &&\n !this.canSwapBetweenExpressionAndStatement(replacement) &&\n !this.parentPath.isExportDefaultDeclaration()\n ) {\n // replacing a statement with an expression so wrap it in an expression statement\n replacement = expressionStatement(replacement);\n nodePath = \"expression\";\n }\n }\n\n if (this.isNodeType(\"Expression\") && isStatement(replacement)) {\n if (\n !this.canHaveVariableDeclarationOrExpression() &&\n !this.canSwapBetweenExpressionAndStatement(replacement)\n ) {\n // replacing an expression with a statement so let's explode it\n return this.replaceExpressionWithStatements([replacement]) as [\n NodePath<R>,\n ];\n }\n }\n\n const oldNode = this.node;\n if (oldNode) {\n inheritsComments(replacement, oldNode);\n removeComments(oldNode);\n }\n\n // replace the node\n this._replaceWith(replacement);\n this.type = replacement.type;\n\n // potentially create new scope\n this.setScope();\n\n // requeue for visiting\n this.requeue();\n\n return [\n nodePath ? (this.get(nodePath) as NodePath<R>) : (this as NodePath<R>),\n ];\n}\n\n/**\n * Description\n */\n\nexport function _replaceWith(this: NodePath, node: t.Node) {\n if (!this.container) {\n throw new ReferenceError(\"Container is falsy\");\n }\n\n if (this.inList) {\n // @ts-expect-error todo(flow->ts): check if validate accepts a numeric key\n validate(this.parent, this.key, [node]);\n } else {\n validate(this.parent, this.key as string, node);\n }\n\n this.debug(`Replace with ${node?.type}`);\n getCachedPaths(this.hub, this.parent)?.set(node, this).delete(this.node);\n\n this.node =\n // @ts-expect-error this.key must present in this.container\n this.container[this.key] = node;\n}\n\n/**\n * This method takes an array of statements nodes and then explodes it\n * into expressions. This method retains completion records which is\n * extremely important to retain original semantics.\n */\n\nexport function replaceExpressionWithStatements(\n this: NodePath,\n nodes: Array<t.Statement>,\n) {\n this.resync();\n\n const nodesAsSequenceExpression = toSequenceExpression(nodes, this.scope);\n\n if (nodesAsSequenceExpression) {\n return this.replaceWith(nodesAsSequenceExpression)[0].get(\"expressions\");\n }\n\n const functionParent = this.getFunctionParent();\n const isParentAsync = functionParent?.is(\"async\");\n const isParentGenerator = functionParent?.is(\"generator\");\n\n const container = arrowFunctionExpression([], blockStatement(nodes));\n\n this.replaceWith(callExpression(container, []));\n // replaceWith changes the type of \"this\", but it isn't trackable by TS\n type ThisType = NodePath<\n t.CallExpression & {\n callee: t.ArrowFunctionExpression & { body: t.BlockStatement };\n }\n >;\n\n // hoist variable declaration in do block\n // `(do { var x = 1; x;})` -> `var x; (() => { x = 1; return x; })()`\n const callee = (this as ThisType).get(\"callee\");\n hoistVariables(\n callee.get(\"body\"),\n (id: t.Identifier) => {\n this.scope.push({ id });\n },\n \"var\",\n );\n\n // add implicit returns to all ending expression statements\n const completionRecords: Array<NodePath> = (this as ThisType)\n .get(\"callee\")\n .getCompletionRecords();\n for (const path of completionRecords) {\n if (!path.isExpressionStatement()) continue;\n\n const loop = path.findParent(path => path.isLoop());\n if (loop) {\n let uid = loop.getData(\"expressionReplacementReturnUid\");\n\n if (!uid) {\n uid = callee.scope.generateDeclaredUidIdentifier(\"ret\");\n callee\n .get(\"body\")\n .pushContainer(\"body\", returnStatement(cloneNode(uid)));\n loop.setData(\"expressionReplacementReturnUid\", uid);\n } else {\n uid = identifier(uid.name);\n }\n\n path\n .get(\"expression\")\n .replaceWith(\n assignmentExpression(\"=\", cloneNode(uid), path.node.expression),\n );\n } else {\n path.replaceWith(returnStatement(path.node.expression));\n }\n }\n\n // This is an IIFE, so we don't need to worry about the noNewArrows assumption\n callee.arrowFunctionToExpression();\n // Fixme: we can not `assert this is NodePath<t.FunctionExpression>` in `arrowFunctionToExpression`\n // because it is not a class method known at compile time.\n const newCallee = callee as unknown as NodePath<t.FunctionExpression>;\n\n // (() => await xxx)() -> await (async () => await xxx)();\n const needToAwaitFunction =\n isParentAsync &&\n traverse.hasType(\n (this.get(\"callee.body\") as NodePath<t.BlockStatement>).node,\n \"AwaitExpression\",\n FUNCTION_TYPES,\n );\n const needToYieldFunction =\n isParentGenerator &&\n traverse.hasType(\n (this.get(\"callee.body\") as NodePath<t.BlockStatement>).node,\n \"YieldExpression\",\n FUNCTION_TYPES,\n );\n if (needToAwaitFunction) {\n newCallee.set(\"async\", true);\n // yield* will await the generator return result\n if (!needToYieldFunction) {\n this.replaceWith(awaitExpression((this as ThisType).node));\n }\n }\n if (needToYieldFunction) {\n newCallee.set(\"generator\", true);\n this.replaceWith(yieldExpression((this as ThisType).node, true));\n }\n\n return newCallee.get(\"body.body\");\n}\n\nexport function replaceInline(this: NodePath, nodes: t.Node | Array<t.Node>) {\n this.resync();\n\n if (Array.isArray(nodes)) {\n if (Array.isArray(this.container)) {\n nodes = this._verifyNodeList(nodes);\n const paths = this._containerInsertAfter(nodes);\n this.remove();\n return paths;\n } else {\n return this.replaceWithMultiple(nodes);\n }\n } else {\n return this.replaceWith(nodes);\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_codeFrame","require","_index","_index2","_cache","_parser","_t","_helperHoistVariables","FUNCTION_TYPES","arrowFunctionExpression","assignmentExpression","awaitExpression","blockStatement","buildUndefinedNode","callExpression","cloneNode","conditionalExpression","expressionStatement","getBindingIdentifiers","identifier","inheritLeadingComments","inheritTrailingComments","inheritsComments","isBlockStatement","isEmptyStatement","isExpression","isExpressionStatement","isIfStatement","isProgram","isStatement","isVariableDeclaration","removeComments","returnStatement","sequenceExpression","validate","yieldExpression","replaceWithMultiple","nodes","_getCachedPaths","resync","_verifyNodeList","node","length","getCachedPaths","hub","parent","delete","container","key","paths","insertAfter","requeue","remove","replaceWithSourceString","replacement","ast","parse","err","loc","message","codeFrameColumns","start","line","column","code","expressionAST","program","body","expression","traverse","removeProperties","replaceWith","replacementPath","removed","Error","NodePath","Array","isArray","nodePath","isNodeType","canHaveVariableDeclarationOrExpression","canSwapBetweenExpressionAndStatement","parentPath","isExportDefaultDeclaration","replaceExpressionWithStatements","oldNode","_replaceWith","type","setScope","get","_getCachedPaths2","ReferenceError","inList","debug","set","declars","nodesAsSingleExpression","gatherSequenceExpressions","id","scope","push","functionParent","getFunctionParent","isParentAsync","is","isParentGenerator","callee","hoistVariables","completionRecords","getCompletionRecords","path","loop","findParent","isLoop","uid","getData","generateDeclaredUidIdentifier","pushContainer","setData","name","arrowFunctionToExpression","newCallee","needToAwaitFunction","hasType","needToYieldFunction","exprs","ensureLastUndefined","kind","declar","declarations","bindings","Object","keys","init","consequent","alternate","test","indexOf","replaceInline","_containerInsertAfter"],"sources":["../../src/path/replacement.ts"],"sourcesContent":["// This file contains methods responsible for replacing a node with another.\n\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport traverse from \"../index.ts\";\nimport NodePath from \"./index.ts\";\nimport { getCachedPaths } from \"../cache.ts\";\nimport { parse } from \"@babel/parser\";\nimport {\n FUNCTION_TYPES,\n arrowFunctionExpression,\n assignmentExpression,\n awaitExpression,\n blockStatement,\n buildUndefinedNode,\n callExpression,\n cloneNode,\n conditionalExpression,\n expressionStatement,\n getBindingIdentifiers,\n identifier,\n inheritLeadingComments,\n inheritTrailingComments,\n inheritsComments,\n isBlockStatement,\n isEmptyStatement,\n isExpression,\n isExpressionStatement,\n isIfStatement,\n isProgram,\n isStatement,\n isVariableDeclaration,\n removeComments,\n returnStatement,\n sequenceExpression,\n validate,\n yieldExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport hoistVariables from \"@babel/helper-hoist-variables\";\n\n/**\n * Replace a node with an array of multiple. This method performs the following steps:\n *\n * - Inherit the comments of first provided node with that of the current node.\n * - Insert the provided nodes after the current node.\n * - Remove the current node.\n */\n\nexport function replaceWithMultiple(\n this: NodePath,\n nodes: t.Node | t.Node[],\n): NodePath[] {\n this.resync();\n\n nodes = this._verifyNodeList(nodes);\n inheritLeadingComments(nodes[0], this.node);\n inheritTrailingComments(nodes[nodes.length - 1], this.node);\n getCachedPaths(this.hub, this.parent)?.delete(this.node);\n this.node =\n // @ts-expect-error this.key must present in this.container\n this.container[this.key] = null;\n const paths = this.insertAfter(nodes);\n\n if (this.node) {\n this.requeue();\n } else {\n this.remove();\n }\n return paths;\n}\n\n/**\n * Parse a string as an expression and replace the current node with the result.\n *\n * NOTE: This is typically not a good idea to use. Building source strings when\n * transforming ASTs is an antipattern and SHOULD NOT be encouraged. Even if it's\n * easier to use, your transforms will be extremely brittle.\n */\n\nexport function replaceWithSourceString(this: NodePath, replacement: string) {\n this.resync();\n let ast: t.File;\n\n try {\n replacement = `(${replacement})`;\n // @ts-expect-error todo: use babel-types ast typings in Babel parser\n ast = parse(replacement);\n } catch (err) {\n const loc = err.loc;\n if (loc) {\n err.message +=\n \" - make sure this is an expression.\\n\" +\n codeFrameColumns(replacement, {\n start: {\n line: loc.line,\n column: loc.column + 1,\n },\n });\n err.code = \"BABEL_REPLACE_SOURCE_ERROR\";\n }\n throw err;\n }\n\n const expressionAST = (ast.program.body[0] as t.ExpressionStatement)\n .expression;\n traverse.removeProperties(expressionAST);\n return this.replaceWith(expressionAST);\n}\n\n/**\n * Replace the current node with another.\n */\n\nexport function replaceWith<R extends t.Node>(\n this: NodePath,\n replacementPath: R | NodePath<R>,\n): [NodePath<R>] {\n this.resync();\n\n if (this.removed) {\n throw new Error(\"You can't replace this node, we've already removed it\");\n }\n\n let replacement: t.Node =\n replacementPath instanceof NodePath\n ? replacementPath.node\n : replacementPath;\n\n if (!replacement) {\n throw new Error(\n \"You passed `path.replaceWith()` a falsy node, use `path.remove()` instead\",\n );\n }\n\n if (this.node === replacement) {\n return [this as NodePath<R>];\n }\n\n if (this.isProgram() && !isProgram(replacement)) {\n throw new Error(\n \"You can only replace a Program root node with another Program node\",\n );\n }\n\n if (Array.isArray(replacement)) {\n throw new Error(\n \"Don't use `path.replaceWith()` with an array of nodes, use `path.replaceWithMultiple()`\",\n );\n }\n\n if (typeof replacement === \"string\") {\n throw new Error(\n \"Don't use `path.replaceWith()` with a source string, use `path.replaceWithSourceString()`\",\n );\n }\n\n let nodePath = \"\";\n\n if (this.isNodeType(\"Statement\") && isExpression(replacement)) {\n if (\n !this.canHaveVariableDeclarationOrExpression() &&\n !this.canSwapBetweenExpressionAndStatement(replacement) &&\n !this.parentPath.isExportDefaultDeclaration()\n ) {\n // replacing a statement with an expression so wrap it in an expression statement\n replacement = expressionStatement(replacement);\n nodePath = \"expression\";\n }\n }\n\n if (this.isNodeType(\"Expression\") && isStatement(replacement)) {\n if (\n !this.canHaveVariableDeclarationOrExpression() &&\n !this.canSwapBetweenExpressionAndStatement(replacement)\n ) {\n // replacing an expression with a statement so let's explode it\n return this.replaceExpressionWithStatements([replacement]) as [\n NodePath<R>,\n ];\n }\n }\n\n const oldNode = this.node;\n if (oldNode) {\n inheritsComments(replacement, oldNode);\n removeComments(oldNode);\n }\n\n // replace the node\n this._replaceWith(replacement);\n this.type = replacement.type;\n\n // potentially create new scope\n this.setScope();\n\n // requeue for visiting\n this.requeue();\n\n return [\n nodePath ? (this.get(nodePath) as NodePath<R>) : (this as NodePath<R>),\n ];\n}\n\n/**\n * Description\n */\n\nexport function _replaceWith(this: NodePath, node: t.Node) {\n if (!this.container) {\n throw new ReferenceError(\"Container is falsy\");\n }\n\n if (this.inList) {\n // @ts-expect-error todo(flow->ts): check if validate accepts a numeric key\n validate(this.parent, this.key, [node]);\n } else {\n validate(this.parent, this.key as string, node);\n }\n\n this.debug(`Replace with ${node?.type}`);\n getCachedPaths(this.hub, this.parent)?.set(node, this).delete(this.node);\n\n this.node =\n // @ts-expect-error this.key must present in this.container\n this.container[this.key] = node;\n}\n\n/**\n * This method takes an array of statements nodes and then explodes it\n * into expressions. This method retains completion records which is\n * extremely important to retain original semantics.\n */\n\nexport function replaceExpressionWithStatements(\n this: NodePath,\n nodes: Array<t.Statement>,\n) {\n this.resync();\n\n const declars: t.Identifier[] = [];\n const nodesAsSingleExpression = gatherSequenceExpressions(nodes, declars);\n if (nodesAsSingleExpression) {\n for (const id of declars) this.scope.push({ id });\n return this.replaceWith(nodesAsSingleExpression)[0].get(\"expressions\");\n }\n\n const functionParent = this.getFunctionParent();\n const isParentAsync = functionParent?.is(\"async\");\n const isParentGenerator = functionParent?.is(\"generator\");\n\n const container = arrowFunctionExpression([], blockStatement(nodes));\n\n this.replaceWith(callExpression(container, []));\n // replaceWith changes the type of \"this\", but it isn't trackable by TS\n type ThisType = NodePath<\n t.CallExpression & {\n callee: t.ArrowFunctionExpression & { body: t.BlockStatement };\n }\n >;\n\n // hoist variable declaration in do block\n // `(do { var x = 1; x;})` -> `var x; (() => { x = 1; return x; })()`\n const callee = (this as ThisType).get(\"callee\");\n hoistVariables(\n callee.get(\"body\"),\n (id: t.Identifier) => {\n this.scope.push({ id });\n },\n \"var\",\n );\n\n // add implicit returns to all ending expression statements\n const completionRecords: Array<NodePath> = (this as ThisType)\n .get(\"callee\")\n .getCompletionRecords();\n for (const path of completionRecords) {\n if (!path.isExpressionStatement()) continue;\n\n const loop = path.findParent(path => path.isLoop());\n if (loop) {\n let uid = loop.getData(\"expressionReplacementReturnUid\");\n\n if (!uid) {\n uid = callee.scope.generateDeclaredUidIdentifier(\"ret\");\n callee\n .get(\"body\")\n .pushContainer(\"body\", returnStatement(cloneNode(uid)));\n loop.setData(\"expressionReplacementReturnUid\", uid);\n } else {\n uid = identifier(uid.name);\n }\n\n path\n .get(\"expression\")\n .replaceWith(\n assignmentExpression(\"=\", cloneNode(uid), path.node.expression),\n );\n } else {\n path.replaceWith(returnStatement(path.node.expression));\n }\n }\n\n // This is an IIFE, so we don't need to worry about the noNewArrows assumption\n callee.arrowFunctionToExpression();\n // Fixme: we can not `assert this is NodePath<t.FunctionExpression>` in `arrowFunctionToExpression`\n // because it is not a class method known at compile time.\n const newCallee = callee as unknown as NodePath<t.FunctionExpression>;\n\n // (() => await xxx)() -> await (async () => await xxx)();\n const needToAwaitFunction =\n isParentAsync &&\n traverse.hasType(\n (this.get(\"callee.body\") as NodePath<t.BlockStatement>).node,\n \"AwaitExpression\",\n FUNCTION_TYPES,\n );\n const needToYieldFunction =\n isParentGenerator &&\n traverse.hasType(\n (this.get(\"callee.body\") as NodePath<t.BlockStatement>).node,\n \"YieldExpression\",\n FUNCTION_TYPES,\n );\n if (needToAwaitFunction) {\n newCallee.set(\"async\", true);\n // yield* will await the generator return result\n if (!needToYieldFunction) {\n this.replaceWith(awaitExpression((this as ThisType).node));\n }\n }\n if (needToYieldFunction) {\n newCallee.set(\"generator\", true);\n this.replaceWith(yieldExpression((this as ThisType).node, true));\n }\n\n return newCallee.get(\"body.body\");\n}\n\nfunction gatherSequenceExpressions(\n nodes: ReadonlyArray<t.Node>,\n declars: Array<t.Identifier>,\n) {\n const exprs: t.Expression[] = [];\n let ensureLastUndefined = true;\n\n for (const node of nodes) {\n // if we encounter emptyStatement before a non-emptyStatement\n // we want to disregard that\n if (!isEmptyStatement(node)) {\n ensureLastUndefined = false;\n }\n\n if (isExpression(node)) {\n exprs.push(node);\n } else if (isExpressionStatement(node)) {\n exprs.push(node.expression);\n } else if (isVariableDeclaration(node)) {\n if (node.kind !== \"var\") return; // bailed\n\n for (const declar of node.declarations) {\n const bindings = getBindingIdentifiers(declar);\n for (const key of Object.keys(bindings)) {\n declars.push(cloneNode(bindings[key]));\n }\n\n if (declar.init) {\n exprs.push(assignmentExpression(\"=\", declar.id, declar.init));\n }\n }\n\n ensureLastUndefined = true;\n } else if (isIfStatement(node)) {\n const consequent = node.consequent\n ? gatherSequenceExpressions([node.consequent], declars)\n : buildUndefinedNode();\n const alternate = node.alternate\n ? gatherSequenceExpressions([node.alternate], declars)\n : buildUndefinedNode();\n if (!consequent || !alternate) return; // bailed\n\n exprs.push(conditionalExpression(node.test, consequent, alternate));\n } else if (isBlockStatement(node)) {\n const body = gatherSequenceExpressions(node.body, declars);\n if (!body) return; // bailed\n\n exprs.push(body);\n } else if (isEmptyStatement(node)) {\n // empty statement so ensure the last item is undefined if we're last\n // checks if emptyStatement is first\n if (nodes.indexOf(node) === 0) {\n ensureLastUndefined = true;\n }\n } else {\n // bailed, we can't turn this statement into an expression\n return;\n }\n }\n\n if (ensureLastUndefined) exprs.push(buildUndefinedNode());\n\n if (exprs.length === 1) {\n return exprs[0];\n } else {\n return sequenceExpression(exprs);\n }\n}\n\nexport function replaceInline(this: NodePath, nodes: t.Node | Array<t.Node>) {\n this.resync();\n\n if (Array.isArray(nodes)) {\n if (Array.isArray(this.container)) {\n nodes = this._verifyNodeList(nodes);\n const paths = this._containerInsertAfter(nodes);\n this.remove();\n return paths;\n } else {\n return this.replaceWithMultiple(nodes);\n }\n } else {\n return this.replaceWith(nodes);\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/scope/index.js b/node_modules/@babel/traverse/lib/scope/index.js index 0f087c6a..ed90029f 100644 --- a/node_modules/@babel/traverse/lib/scope/index.js +++ b/node_modules/@babel/traverse/lib/scope/index.js @@ -222,12 +222,12 @@ const collectorVisitor = { const id = declar.id; if (!id) return; const binding = scope.getBinding(id.name); - binding == null ? void 0 : binding.reference(path); + binding == null || binding.reference(path); } else if (isVariableDeclaration(declar)) { for (const decl of declar.declarations) { for (const name of Object.keys(getBindingIdentifiers(decl))) { const binding = scope.getBinding(name); - binding == null ? void 0 : binding.reference(path); + binding == null || binding.reference(path); } } } @@ -512,7 +512,7 @@ class Scope { const ids = path.getBindingIdentifiers(); for (const name of Object.keys(ids)) { var _this$getBinding; - (_this$getBinding = this.getBinding(name)) == null ? void 0 : _this$getBinding.reassign(path); + (_this$getBinding = this.getBinding(name)) == null || _this$getBinding.reassign(path); } } registerBinding(kind, path, bindingPath = path) { @@ -872,7 +872,7 @@ class Scope { } removeBinding(name) { var _this$getBinding3; - (_this$getBinding3 = this.getBinding(name)) == null ? void 0 : _this$getBinding3.scope.removeOwnBinding(name); + (_this$getBinding3 = this.getBinding(name)) == null || _this$getBinding3.scope.removeOwnBinding(name); let scope = this; do { if (scope.uids[name]) { diff --git a/node_modules/@babel/traverse/lib/scope/index.js.map b/node_modules/@babel/traverse/lib/scope/index.js.map index d1f5feea..36e5a078 100644 --- a/node_modules/@babel/traverse/lib/scope/index.js.map +++ b/node_modules/@babel/traverse/lib/scope/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_renamer","require","_index","_binding","_globals","_t","t","_cache","_visitors","NOT_LOCAL_BINDING","callExpression","cloneNode","getBindingIdentifiers","identifier","isArrayExpression","isBinary","isClass","isClassBody","isClassDeclaration","isExportAllDeclaration","isExportDefaultDeclaration","isExportNamedDeclaration","isFunctionDeclaration","isIdentifier","isImportDeclaration","isLiteral","isMethod","isModuleSpecifier","isNullLiteral","isObjectExpression","isProperty","isPureish","isRegExpLiteral","isSuper","isTaggedTemplateExpression","isTemplateLiteral","isThisExpression","isUnaryExpression","isVariableDeclaration","matchesPattern","memberExpression","numericLiteral","toIdentifier","variableDeclaration","variableDeclarator","isRecordExpression","isTupleExpression","isObjectProperty","isTopicReference","isMetaProperty","isPrivateName","isExportDeclaration","buildUndefinedNode","gatherNodeParts","node","parts","type","_node$specifiers","source","specifiers","length","e","declaration","local","push","value","object","property","name","callee","properties","argument","key","left","id","expression","meta","openingElement","openingFragment","namespace","collectorVisitor","ForStatement","path","declar","get","isVar","scope","parentScope","getFunctionParent","getProgramParent","registerBinding","Declaration","isBlockScoped","parent","registerDeclaration","ImportDeclaration","getBlockParent","ReferencedIdentifier","state","references","ForXStatement","isPattern","constantViolations","ExportDeclaration","exit","binding","getBinding","reference","decl","declarations","Object","keys","LabeledStatement","AssignmentExpression","assignments","UpdateExpression","UnaryExpression","operator","BlockScoped","bindings","CatchClause","Function","params","param","isFunctionExpression","has","ClassExpression","uid","Scope","constructor","block","labels","inited","globals","uids","data","crawling","cached","scopeCache","set","Map","_parent","shouldSkip","listKey","parentPath","isScope","parentBlock","hub","traverse","opts","generateDeclaredUidIdentifier","generateUidIdentifier","generateUid","replace","i","_generateUid","hasLabel","hasBinding","hasGlobal","hasReference","program","generateUidBasedOnNode","defaultName","join","slice","generateUidIdentifierBasedOnNode","isStatic","constant","maybeGenerateMemoised","dontPush","checkBlockScopedCollisions","kind","duplicate","buildError","TypeError","rename","oldName","newName","renamer","Renamer","arguments","_renameFromMap","map","dump","sep","repeat","console","log","violations","toArray","arrayLikeIsIterable","isGenericType","helperName","args","unshift","addHelper","getLabel","registerLabel","label","isLabeledStatement","declare","isTypeDeclaration","importKind","specifier","isTypeSpecifier","isImportSpecifier","registerConstantViolation","ids","_this$getBinding","reassign","bindingPath","ReferenceError","declarators","getOuterBindingIdentifiers","getOwnBinding","Binding","addGlobal","hasUid","isPure","constantsOnly","_node$decorators","superClass","decorators","body","method","right","elem","elements","prop","_node$decorators2","computed","_node$decorators3","static","tag","quasi","expressions","setData","val","getData","removeData","init","crawl","create","programParent","isExplodedVisitor","visit","enter","call","typeVisitors","ref","getPatternParent","isBlockStatement","isProgram","isSwitchStatement","unique","isFunction","isCallExpression","pushContainer","isLoop","isCatchClause","ensureBlock","blockHoist","_blockHoist","dataKey","declarPath","unshiftContainer","declarator","len","Error","isFunctionParent","isBlockParent","getAllBindings","getAllBindingsOfKind","kinds","bindingIdentifierEquals","getBindingIdentifier","previousPath","_previousPath","isArrowFunctionExpression","_this$getBinding2","getOwnBindingIdentifier","hasOwnBinding","_opts","_opts2","_opts3","noGlobals","parentHasBinding","noUids","includes","contextVariables","_this$parent","moveBindingTo","info","removeOwnBinding","removeBinding","_this$getBinding3","exports","default","builtin"],"sources":["../../src/scope/index.ts"],"sourcesContent":["import Renamer from \"./lib/renamer.ts\";\nimport type NodePath from \"../path/index.ts\";\nimport traverse from \"../index.ts\";\nimport type { TraverseOptions } from \"../index.ts\";\nimport Binding from \"./binding.ts\";\nimport type { BindingKind } from \"./binding.ts\";\nimport globals from \"globals\";\nimport {\n NOT_LOCAL_BINDING,\n callExpression,\n cloneNode,\n getBindingIdentifiers,\n identifier,\n isArrayExpression,\n isBinary,\n isClass,\n isClassBody,\n isClassDeclaration,\n isExportAllDeclaration,\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n isFunctionDeclaration,\n isIdentifier,\n isImportDeclaration,\n isLiteral,\n isMethod,\n isModuleSpecifier,\n isNullLiteral,\n isObjectExpression,\n isProperty,\n isPureish,\n isRegExpLiteral,\n isSuper,\n isTaggedTemplateExpression,\n isTemplateLiteral,\n isThisExpression,\n isUnaryExpression,\n isVariableDeclaration,\n matchesPattern,\n memberExpression,\n numericLiteral,\n toIdentifier,\n variableDeclaration,\n variableDeclarator,\n isRecordExpression,\n isTupleExpression,\n isObjectProperty,\n isTopicReference,\n isMetaProperty,\n isPrivateName,\n isExportDeclaration,\n buildUndefinedNode,\n} from \"@babel/types\";\nimport * as t from \"@babel/types\";\nimport { scope as scopeCache } from \"../cache.ts\";\nimport type { Visitor } from \"../types.ts\";\nimport { isExplodedVisitor } from \"../visitors.ts\";\n\ntype NodePart = string | number | boolean;\n// Recursively gathers the identifying names of a node.\nfunction gatherNodeParts(node: t.Node, parts: NodePart[]) {\n switch (node?.type) {\n default:\n if (isImportDeclaration(node) || isExportDeclaration(node)) {\n if (\n (isExportAllDeclaration(node) ||\n isExportNamedDeclaration(node) ||\n isImportDeclaration(node)) &&\n node.source\n ) {\n gatherNodeParts(node.source, parts);\n } else if (\n (isExportNamedDeclaration(node) || isImportDeclaration(node)) &&\n node.specifiers?.length\n ) {\n for (const e of node.specifiers) gatherNodeParts(e, parts);\n } else if (\n (isExportDefaultDeclaration(node) ||\n isExportNamedDeclaration(node)) &&\n node.declaration\n ) {\n gatherNodeParts(node.declaration, parts);\n }\n } else if (isModuleSpecifier(node)) {\n // todo(flow->ts): should condition instead be:\n // ```\n // t.isExportSpecifier(node) ||\n // t.isImportDefaultSpecifier(node) ||\n // t.isImportNamespaceSpecifier(node) ||\n // t.isImportSpecifier(node)\n // ```\n // allowing only nodes with `.local`?\n // @ts-expect-error todo(flow->ts)\n gatherNodeParts(node.local, parts);\n } else if (\n isLiteral(node) &&\n !isNullLiteral(node) &&\n !isRegExpLiteral(node) &&\n !isTemplateLiteral(node)\n ) {\n parts.push(node.value);\n }\n break;\n\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n case \"JSXMemberExpression\":\n gatherNodeParts(node.object, parts);\n gatherNodeParts(node.property, parts);\n break;\n\n case \"Identifier\":\n case \"JSXIdentifier\":\n parts.push(node.name);\n break;\n\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n case \"NewExpression\":\n gatherNodeParts(node.callee, parts);\n break;\n\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n for (const e of node.properties) {\n gatherNodeParts(e, parts);\n }\n break;\n\n case \"SpreadElement\":\n case \"RestElement\":\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"ObjectProperty\":\n case \"ObjectMethod\":\n case \"ClassProperty\":\n case \"ClassMethod\":\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n gatherNodeParts(node.key, parts);\n break;\n\n case \"ThisExpression\":\n parts.push(\"this\");\n break;\n\n case \"Super\":\n parts.push(\"super\");\n break;\n\n case \"Import\":\n parts.push(\"import\");\n break;\n\n case \"DoExpression\":\n parts.push(\"do\");\n break;\n\n case \"YieldExpression\":\n parts.push(\"yield\");\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"AwaitExpression\":\n parts.push(\"await\");\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"AssignmentExpression\":\n gatherNodeParts(node.left, parts);\n break;\n\n case \"VariableDeclarator\":\n gatherNodeParts(node.id, parts);\n break;\n\n case \"FunctionExpression\":\n case \"FunctionDeclaration\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n gatherNodeParts(node.id, parts);\n break;\n\n case \"PrivateName\":\n gatherNodeParts(node.id, parts);\n break;\n\n case \"ParenthesizedExpression\":\n gatherNodeParts(node.expression, parts);\n break;\n\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"MetaProperty\":\n gatherNodeParts(node.meta, parts);\n gatherNodeParts(node.property, parts);\n break;\n\n case \"JSXElement\":\n gatherNodeParts(node.openingElement, parts);\n break;\n\n case \"JSXOpeningElement\":\n gatherNodeParts(node.name, parts);\n break;\n\n case \"JSXFragment\":\n gatherNodeParts(node.openingFragment, parts);\n break;\n\n case \"JSXOpeningFragment\":\n parts.push(\"Fragment\");\n break;\n\n case \"JSXNamespacedName\":\n gatherNodeParts(node.namespace, parts);\n gatherNodeParts(node.name, parts);\n break;\n }\n}\n\n//\ninterface CollectVisitorState {\n assignments: NodePath<t.AssignmentExpression>[];\n references: NodePath<t.Identifier | t.JSXIdentifier>[];\n constantViolations: NodePath[];\n}\n\nconst collectorVisitor: Visitor<CollectVisitorState> = {\n ForStatement(path) {\n const declar = path.get(\"init\");\n // delegate block scope handling to the `BlockScoped` method\n if (declar.isVar()) {\n const { scope } = path;\n const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n parentScope.registerBinding(\"var\", declar);\n }\n },\n\n Declaration(path) {\n // delegate block scope handling to the `BlockScoped` method\n if (path.isBlockScoped()) return;\n\n // delegate import handing to the `ImportDeclaration` method\n if (path.isImportDeclaration()) return;\n\n // this will be hit again once we traverse into it after this iteration\n if (path.isExportDeclaration()) return;\n\n // we've ran into a declaration!\n const parent =\n path.scope.getFunctionParent() || path.scope.getProgramParent();\n parent.registerDeclaration(path);\n },\n\n ImportDeclaration(path) {\n // import may only appear in the top level or inside a module/namespace (for TS/flow)\n const parent = path.scope.getBlockParent();\n\n parent.registerDeclaration(path);\n },\n\n ReferencedIdentifier(path, state) {\n state.references.push(path);\n },\n\n ForXStatement(path, state) {\n const left = path.get(\"left\");\n if (left.isPattern() || left.isIdentifier()) {\n state.constantViolations.push(path);\n }\n // delegate block scope handling to the `BlockScoped` method\n else if (left.isVar()) {\n const { scope } = path;\n const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n parentScope.registerBinding(\"var\", left);\n }\n },\n\n ExportDeclaration: {\n exit(path) {\n const { node, scope } = path;\n // ExportAllDeclaration does not have `declaration`\n if (isExportAllDeclaration(node)) return;\n const declar = node.declaration;\n if (isClassDeclaration(declar) || isFunctionDeclaration(declar)) {\n const id = declar.id;\n if (!id) return;\n\n const binding = scope.getBinding(id.name);\n binding?.reference(path);\n } else if (isVariableDeclaration(declar)) {\n for (const decl of declar.declarations) {\n for (const name of Object.keys(getBindingIdentifiers(decl))) {\n const binding = scope.getBinding(name);\n binding?.reference(path);\n }\n }\n }\n },\n },\n\n LabeledStatement(path) {\n path.scope.getBlockParent().registerDeclaration(path);\n },\n\n AssignmentExpression(path, state) {\n state.assignments.push(path);\n },\n\n UpdateExpression(path, state) {\n state.constantViolations.push(path);\n },\n\n UnaryExpression(path, state) {\n if (path.node.operator === \"delete\") {\n state.constantViolations.push(path);\n }\n },\n\n BlockScoped(path) {\n let scope = path.scope;\n if (scope.path === path) scope = scope.parent;\n\n const parent = scope.getBlockParent();\n parent.registerDeclaration(path);\n\n // Register class identifier in class' scope if this is a class declaration.\n if (path.isClassDeclaration() && path.node.id) {\n const id = path.node.id;\n const name = id.name;\n\n path.scope.bindings[name] = path.scope.parent.getBinding(name);\n }\n },\n\n CatchClause(path) {\n path.scope.registerBinding(\"let\", path);\n },\n\n Function(path) {\n const params: Array<NodePath> = path.get(\"params\");\n for (const param of params) {\n path.scope.registerBinding(\"param\", param);\n }\n\n // Register function expression id after params. When the id\n // collides with a function param, the id effectively can't be\n // referenced: here we registered it as a constantViolation\n if (\n path.isFunctionExpression() &&\n path.has(\"id\") &&\n // @ts-expect-error Fixme: document symbol ast properties\n !path.get(\"id\").node[NOT_LOCAL_BINDING]\n ) {\n path.scope.registerBinding(\"local\", path.get(\"id\"), path);\n }\n },\n\n ClassExpression(path) {\n if (\n path.has(\"id\") &&\n // @ts-expect-error Fixme: document symbol ast properties\n !path.get(\"id\").node[NOT_LOCAL_BINDING]\n ) {\n path.scope.registerBinding(\"local\", path);\n }\n },\n};\n\nlet uid = 0;\n\nexport type { Binding };\n\nexport default class Scope {\n uid;\n\n path: NodePath;\n block: t.Pattern | t.Scopable;\n\n labels;\n inited;\n\n bindings: { [name: string]: Binding };\n references: { [name: string]: true };\n globals: { [name: string]: t.Identifier | t.JSXIdentifier };\n uids: { [name: string]: boolean };\n data: { [key: string | symbol]: unknown };\n crawling: boolean;\n\n /**\n * This searches the current \"scope\" and collects all references/bindings\n * within.\n */\n constructor(path: NodePath<t.Pattern | t.Scopable>) {\n const { node } = path;\n const cached = scopeCache.get(node);\n // Sometimes, a scopable path is placed higher in the AST tree.\n // In these cases, have to create a new Scope.\n if (cached?.path === path) {\n return cached;\n }\n scopeCache.set(node, this);\n\n this.uid = uid++;\n\n this.block = node;\n this.path = path;\n\n this.labels = new Map();\n this.inited = false;\n }\n\n /**\n * Globals.\n */\n\n static globals = Object.keys(globals.builtin);\n\n /**\n * Variables available in current context.\n */\n\n static contextVariables = [\"arguments\", \"undefined\", \"Infinity\", \"NaN\"];\n\n get parent() {\n let parent,\n path = this.path;\n do {\n // Skip method scope if coming from inside computed key or decorator expression\n const shouldSkip = path.key === \"key\" || path.listKey === \"decorators\";\n path = path.parentPath;\n if (shouldSkip && path.isMethod()) path = path.parentPath;\n if (path && path.isScope()) parent = path;\n } while (path && !parent);\n\n return parent?.scope;\n }\n\n get parentBlock() {\n return this.path.parent;\n }\n\n get hub() {\n return this.path.hub;\n }\n\n traverse<S>(\n node: t.Node | t.Node[],\n opts: TraverseOptions<S>,\n state: S,\n ): void;\n traverse(node: t.Node | t.Node[], opts?: TraverseOptions, state?: any): void;\n /**\n * Traverse node with current scope and path.\n *\n * !!! WARNING !!!\n * This method assumes that `this.path` is the NodePath representing `node`.\n * After running the traversal, the `.parentPath` of the NodePaths\n * corresponding to `node`'s children will be set to `this.path`.\n *\n * There is no good reason to use this method, since the only safe way to use\n * it is equivalent to `scope.path.traverse(opts, state)`.\n */\n traverse<S>(node: any, opts: any, state?: S) {\n traverse(node, opts, this, state, this.path);\n }\n\n /**\n * Generate a unique identifier and add it to the current scope.\n */\n\n generateDeclaredUidIdentifier(name?: string) {\n const id = this.generateUidIdentifier(name);\n this.push({ id });\n return cloneNode(id);\n }\n\n /**\n * Generate a unique identifier.\n */\n\n generateUidIdentifier(name?: string) {\n return identifier(this.generateUid(name));\n }\n\n /**\n * Generate a unique `_id1` binding.\n */\n\n generateUid(name: string = \"temp\"): string {\n name = toIdentifier(name)\n .replace(/^_+/, \"\")\n .replace(/[0-9]+$/g, \"\");\n\n let uid;\n let i = 1;\n do {\n uid = this._generateUid(name, i);\n i++;\n } while (\n this.hasLabel(uid) ||\n this.hasBinding(uid) ||\n this.hasGlobal(uid) ||\n this.hasReference(uid)\n );\n\n const program = this.getProgramParent();\n program.references[uid] = true;\n program.uids[uid] = true;\n\n return uid;\n }\n\n /**\n * Generate an `_id1`.\n */\n\n _generateUid(name: string, i: number) {\n let id = name;\n if (i > 1) id += i;\n return `_${id}`;\n }\n\n generateUidBasedOnNode(node: t.Node, defaultName?: string) {\n const parts: NodePart[] = [];\n gatherNodeParts(node, parts);\n\n let id = parts.join(\"$\");\n id = id.replace(/^_/, \"\") || defaultName || \"ref\";\n\n return this.generateUid(id.slice(0, 20));\n }\n\n /**\n * Generate a unique identifier based on a node.\n */\n\n generateUidIdentifierBasedOnNode(node: t.Node, defaultName?: string) {\n return identifier(this.generateUidBasedOnNode(node, defaultName));\n }\n\n /**\n * Determine whether evaluating the specific input `node` is a consequenceless reference. ie.\n * evaluating it won't result in potentially arbitrary code from being ran. The following are\n * allowed and determined not to cause side effects:\n *\n * - `this` expressions\n * - `super` expressions\n * - Bound identifiers\n */\n\n isStatic(node: t.Node): boolean {\n if (isThisExpression(node) || isSuper(node) || isTopicReference(node)) {\n return true;\n }\n\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (binding) {\n return binding.constant;\n } else {\n return this.hasBinding(node.name);\n }\n }\n\n return false;\n }\n\n /**\n * Possibly generate a memoised identifier if it is not static and has consequences.\n */\n\n maybeGenerateMemoised(node: t.Node, dontPush?: boolean) {\n if (this.isStatic(node)) {\n return null;\n } else {\n const id = this.generateUidIdentifierBasedOnNode(node);\n if (!dontPush) {\n this.push({ id });\n return cloneNode(id);\n }\n return id;\n }\n }\n\n checkBlockScopedCollisions(\n local: Binding,\n kind: BindingKind,\n name: string,\n id: any,\n ) {\n // ignore parameters\n if (kind === \"param\") return;\n\n // Ignore existing binding if it's the name of the current function or\n // class expression\n if (local.kind === \"local\") return;\n\n const duplicate =\n // don't allow duplicate bindings to exist alongside\n kind === \"let\" ||\n local.kind === \"let\" ||\n local.kind === \"const\" ||\n local.kind === \"module\" ||\n // don't allow a local of param with a kind of let\n (local.kind === \"param\" && kind === \"const\");\n\n if (duplicate) {\n throw this.hub.buildError(\n id,\n `Duplicate declaration \"${name}\"`,\n TypeError,\n );\n }\n }\n\n rename(\n oldName: string,\n newName?: string,\n // prettier-ignore\n /* Babel 7 - block?: t.Pattern | t.Scopable */\n ) {\n const binding = this.getBinding(oldName);\n if (binding) {\n newName ||= this.generateUidIdentifier(oldName).name;\n const renamer = new Renamer(binding, oldName, newName);\n if (process.env.BABEL_8_BREAKING) {\n renamer.rename();\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) TODO: Delete this\n renamer.rename(arguments[2]);\n }\n }\n }\n\n /** @deprecated Not used in our codebase */\n _renameFromMap(\n map: Record<string | symbol, unknown>,\n oldName: string | symbol,\n newName: string | symbol,\n value: unknown,\n ) {\n if (map[oldName]) {\n map[newName] = value;\n map[oldName] = null;\n }\n }\n\n dump() {\n const sep = \"-\".repeat(60);\n console.log(sep);\n let scope: Scope = this;\n do {\n console.log(\"#\", scope.block.type);\n for (const name of Object.keys(scope.bindings)) {\n const binding = scope.bindings[name];\n console.log(\" -\", name, {\n constant: binding.constant,\n references: binding.references,\n violations: binding.constantViolations.length,\n kind: binding.kind,\n });\n }\n } while ((scope = scope.parent));\n console.log(sep);\n }\n\n // TODO: (Babel 8) Split i in two parameters, and use an object of flags\n toArray(\n node: t.Node,\n i?: number | boolean,\n arrayLikeIsIterable?: boolean | void,\n ) {\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (binding?.constant && binding.path.isGenericType(\"Array\")) {\n return node;\n }\n }\n\n if (isArrayExpression(node)) {\n return node;\n }\n\n if (isIdentifier(node, { name: \"arguments\" })) {\n return callExpression(\n memberExpression(\n memberExpression(\n memberExpression(identifier(\"Array\"), identifier(\"prototype\")),\n identifier(\"slice\"),\n ),\n identifier(\"call\"),\n ),\n [node],\n );\n }\n\n let helperName;\n const args = [node];\n if (i === true) {\n // Used in array-spread to create an array.\n helperName = \"toConsumableArray\";\n } else if (typeof i === \"number\") {\n args.push(numericLiteral(i));\n\n // Used in array-rest to create an array from a subset of an iterable.\n helperName = \"slicedToArray\";\n // TODO if (this.hub.isLoose(\"es6.forOf\")) helperName += \"-loose\";\n } else {\n // Used in array-rest to create an array\n helperName = \"toArray\";\n }\n\n if (arrayLikeIsIterable) {\n args.unshift(this.hub.addHelper(helperName));\n helperName = \"maybeArrayLike\";\n }\n\n // @ts-expect-error todo(flow->ts): t.Node is not valid to use in args, function argument typeneeds to be clarified\n return callExpression(this.hub.addHelper(helperName), args);\n }\n\n hasLabel(name: string) {\n return !!this.getLabel(name);\n }\n\n getLabel(name: string) {\n return this.labels.get(name);\n }\n\n registerLabel(path: NodePath<t.LabeledStatement>) {\n this.labels.set(path.node.label.name, path);\n }\n\n registerDeclaration(path: NodePath) {\n if (path.isLabeledStatement()) {\n this.registerLabel(path);\n } else if (path.isFunctionDeclaration()) {\n this.registerBinding(\"hoisted\", path.get(\"id\"), path);\n } else if (path.isVariableDeclaration()) {\n const declarations = path.get(\"declarations\");\n const { kind } = path.node;\n for (const declar of declarations) {\n this.registerBinding(\n kind === \"using\" || kind === \"await using\" ? \"const\" : kind,\n declar,\n );\n }\n } else if (path.isClassDeclaration()) {\n if (path.node.declare) return;\n this.registerBinding(\"let\", path);\n } else if (path.isImportDeclaration()) {\n const isTypeDeclaration =\n path.node.importKind === \"type\" || path.node.importKind === \"typeof\";\n const specifiers = path.get(\"specifiers\");\n for (const specifier of specifiers) {\n const isTypeSpecifier =\n isTypeDeclaration ||\n (specifier.isImportSpecifier() &&\n (specifier.node.importKind === \"type\" ||\n specifier.node.importKind === \"typeof\"));\n\n this.registerBinding(isTypeSpecifier ? \"unknown\" : \"module\", specifier);\n }\n } else if (path.isExportDeclaration()) {\n // todo: improve babel-types\n const declar = path.get(\"declaration\") as NodePath;\n if (\n declar.isClassDeclaration() ||\n declar.isFunctionDeclaration() ||\n declar.isVariableDeclaration()\n ) {\n this.registerDeclaration(declar);\n }\n } else {\n this.registerBinding(\"unknown\", path);\n }\n }\n\n buildUndefinedNode() {\n return buildUndefinedNode();\n }\n\n registerConstantViolation(path: NodePath) {\n const ids = path.getBindingIdentifiers();\n for (const name of Object.keys(ids)) {\n this.getBinding(name)?.reassign(path);\n }\n }\n\n registerBinding(\n kind: Binding[\"kind\"],\n path: NodePath,\n bindingPath: NodePath = path,\n ) {\n if (!kind) throw new ReferenceError(\"no `kind`\");\n\n if (path.isVariableDeclaration()) {\n const declarators: Array<NodePath> = path.get(\"declarations\");\n for (const declar of declarators) {\n this.registerBinding(kind, declar);\n }\n return;\n }\n\n const parent = this.getProgramParent();\n const ids = path.getOuterBindingIdentifiers(true);\n\n for (const name of Object.keys(ids)) {\n parent.references[name] = true;\n\n for (const id of ids[name]) {\n const local = this.getOwnBinding(name);\n\n if (local) {\n // same identifier so continue safely as we're likely trying to register it\n // multiple times\n if (local.identifier === id) continue;\n\n this.checkBlockScopedCollisions(local, kind, name, id);\n }\n\n // A redeclaration of an existing variable is a modification\n if (local) {\n this.registerConstantViolation(bindingPath);\n } else {\n this.bindings[name] = new Binding({\n identifier: id,\n scope: this,\n path: bindingPath,\n kind: kind,\n });\n }\n }\n }\n }\n\n addGlobal(node: t.Identifier | t.JSXIdentifier) {\n this.globals[node.name] = node;\n }\n\n hasUid(name: string): boolean {\n let scope: Scope = this;\n\n do {\n if (scope.uids[name]) return true;\n } while ((scope = scope.parent));\n\n return false;\n }\n\n hasGlobal(name: string): boolean {\n let scope: Scope = this;\n\n do {\n if (scope.globals[name]) return true;\n } while ((scope = scope.parent));\n\n return false;\n }\n\n hasReference(name: string): boolean {\n return !!this.getProgramParent().references[name];\n }\n\n isPure(node: t.Node, constantsOnly?: boolean): boolean {\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (!binding) return false;\n if (constantsOnly) return binding.constant;\n return true;\n } else if (\n isThisExpression(node) ||\n isMetaProperty(node) ||\n isTopicReference(node) ||\n isPrivateName(node)\n ) {\n return true;\n } else if (isClass(node)) {\n if (node.superClass && !this.isPure(node.superClass, constantsOnly)) {\n return false;\n }\n if (node.decorators?.length > 0) {\n return false;\n }\n return this.isPure(node.body, constantsOnly);\n } else if (isClassBody(node)) {\n for (const method of node.body) {\n if (!this.isPure(method, constantsOnly)) return false;\n }\n return true;\n } else if (isBinary(node)) {\n return (\n this.isPure(node.left, constantsOnly) &&\n this.isPure(node.right, constantsOnly)\n );\n } else if (isArrayExpression(node) || isTupleExpression(node)) {\n for (const elem of node.elements) {\n if (elem !== null && !this.isPure(elem, constantsOnly)) return false;\n }\n return true;\n } else if (isObjectExpression(node) || isRecordExpression(node)) {\n for (const prop of node.properties) {\n if (!this.isPure(prop, constantsOnly)) return false;\n }\n return true;\n } else if (isMethod(node)) {\n if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n if (node.decorators?.length > 0) {\n return false;\n }\n return true;\n } else if (isProperty(node)) {\n // @ts-expect-error todo(flow->ts): computed in not present on private properties\n if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n if (node.decorators?.length > 0) {\n return false;\n }\n if (isObjectProperty(node) || node.static) {\n if (node.value !== null && !this.isPure(node.value, constantsOnly)) {\n return false;\n }\n }\n return true;\n } else if (isUnaryExpression(node)) {\n return this.isPure(node.argument, constantsOnly);\n } else if (isTaggedTemplateExpression(node)) {\n return (\n matchesPattern(node.tag, \"String.raw\") &&\n !this.hasBinding(\"String\", true) &&\n this.isPure(node.quasi, constantsOnly)\n );\n } else if (isTemplateLiteral(node)) {\n for (const expression of node.expressions) {\n if (!this.isPure(expression, constantsOnly)) return false;\n }\n return true;\n } else {\n return isPureish(node);\n }\n }\n\n /**\n * Set some arbitrary data on the current scope.\n */\n\n setData(key: string | symbol, val: any) {\n return (this.data[key] = val);\n }\n\n /**\n * Recursively walk up scope tree looking for the data `key`.\n */\n\n getData(key: string | symbol): any {\n let scope: Scope = this;\n do {\n const data = scope.data[key];\n if (data != null) return data;\n } while ((scope = scope.parent));\n }\n\n /**\n * Recursively walk up scope tree looking for the data `key` and if it exists,\n * remove it.\n */\n\n removeData(key: string) {\n let scope: Scope = this;\n do {\n const data = scope.data[key];\n if (data != null) scope.data[key] = null;\n } while ((scope = scope.parent));\n }\n\n init() {\n if (!this.inited) {\n this.inited = true;\n this.crawl();\n }\n }\n\n crawl() {\n const path = this.path;\n\n this.references = Object.create(null);\n this.bindings = Object.create(null);\n this.globals = Object.create(null);\n this.uids = Object.create(null);\n this.data = Object.create(null);\n\n const programParent = this.getProgramParent();\n if (programParent.crawling) return;\n\n const state: CollectVisitorState = {\n references: [],\n constantViolations: [],\n assignments: [],\n };\n\n this.crawling = true;\n // traverse does not visit the root node, here we explicitly collect\n // root node binding info when the root is not a Program.\n if (path.type !== \"Program\" && isExplodedVisitor(collectorVisitor)) {\n for (const visit of collectorVisitor.enter) {\n visit.call(state, path, state);\n }\n const typeVisitors = collectorVisitor[path.type];\n if (typeVisitors) {\n for (const visit of typeVisitors.enter) {\n visit.call(state, path, state);\n }\n }\n }\n path.traverse(collectorVisitor, state);\n this.crawling = false;\n\n // register assignments\n for (const path of state.assignments) {\n // register undeclared bindings as globals\n const ids = path.getBindingIdentifiers();\n for (const name of Object.keys(ids)) {\n if (path.scope.getBinding(name)) continue;\n programParent.addGlobal(ids[name]);\n }\n\n // register as constant violation\n path.scope.registerConstantViolation(path);\n }\n\n // register references\n for (const ref of state.references) {\n const binding = ref.scope.getBinding(ref.node.name);\n if (binding) {\n binding.reference(ref);\n } else {\n programParent.addGlobal(ref.node);\n }\n }\n\n // register constant violations\n for (const path of state.constantViolations) {\n path.scope.registerConstantViolation(path);\n }\n }\n\n push(opts: {\n id: t.LVal;\n init?: t.Expression;\n unique?: boolean;\n _blockHoist?: number | undefined;\n kind?: \"var\" | \"let\" | \"const\";\n }) {\n let path = this.path;\n\n if (path.isPattern()) {\n path = this.getPatternParent().path;\n } else if (!path.isBlockStatement() && !path.isProgram()) {\n path = this.getBlockParent().path;\n }\n\n if (path.isSwitchStatement()) {\n path = (this.getFunctionParent() || this.getProgramParent()).path;\n }\n\n const { init, unique, kind = \"var\", id } = opts;\n\n // When injecting a non-const non-initialized binding inside\n // an IIFE, if the number of call arguments is less than or\n // equal to the number of function parameters, we can safely\n // inject the binding into the parameter list.\n if (\n !init &&\n !unique &&\n (kind === \"var\" || kind === \"let\") &&\n path.isFunction() &&\n // @ts-expect-error ArrowFunctionExpression never has a name\n !path.node.name &&\n t.isCallExpression(path.parent, { callee: path.node }) &&\n path.parent.arguments.length <= path.node.params.length &&\n t.isIdentifier(id)\n ) {\n path.pushContainer(\"params\", id);\n path.scope.registerBinding(\n \"param\",\n path.get(\"params\")[path.node.params.length - 1],\n );\n return;\n }\n\n if (path.isLoop() || path.isCatchClause() || path.isFunction()) {\n // @ts-expect-error TS can not infer NodePath<Loop> | NodePath<CatchClause> as NodePath<Loop | CatchClause>\n path.ensureBlock();\n // @ts-expect-error todo(flow->ts): improve types\n path = path.get(\"body\");\n }\n\n const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;\n\n const dataKey = `declaration:${kind}:${blockHoist}`;\n let declarPath = !unique && path.getData(dataKey);\n\n if (!declarPath) {\n const declar = variableDeclaration(kind, []);\n // @ts-expect-error todo(flow->ts): avoid modifying nodes\n declar._blockHoist = blockHoist;\n\n [declarPath] = (path as NodePath<t.BlockStatement>).unshiftContainer(\n \"body\",\n [declar],\n );\n if (!unique) path.setData(dataKey, declarPath);\n }\n\n const declarator = variableDeclarator(id, init);\n const len = declarPath.node.declarations.push(declarator);\n path.scope.registerBinding(kind, declarPath.get(\"declarations\")[len - 1]);\n }\n\n /**\n * Walk up to the top of the scope tree and get the `Program`.\n */\n\n getProgramParent() {\n let scope: Scope = this;\n do {\n if (scope.path.isProgram()) {\n return scope;\n }\n } while ((scope = scope.parent));\n throw new Error(\"Couldn't find a Program\");\n }\n\n /**\n * Walk up the scope tree until we hit either a Function or return null.\n */\n\n getFunctionParent(): Scope | null {\n let scope: Scope = this;\n do {\n if (scope.path.isFunctionParent()) {\n return scope;\n }\n } while ((scope = scope.parent));\n return null;\n }\n\n /**\n * Walk up the scope tree until we hit either a BlockStatement/Loop/Program/Function/Switch or reach the\n * very top and hit Program.\n */\n\n getBlockParent() {\n let scope: Scope = this;\n do {\n if (scope.path.isBlockParent()) {\n return scope;\n }\n } while ((scope = scope.parent));\n throw new Error(\n \"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\",\n );\n }\n\n /**\n * Walk up from a pattern scope (function param initializer) until we hit a non-pattern scope,\n * then returns its block parent\n * @returns An ancestry scope whose path is a block parent\n */\n getPatternParent() {\n let scope: Scope = this;\n do {\n if (!scope.path.isPattern()) {\n return scope.getBlockParent();\n }\n } while ((scope = scope.parent.parent));\n throw new Error(\n \"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\",\n );\n }\n\n /**\n * Walks the scope tree and gathers **all** bindings.\n */\n\n getAllBindings(): Record<string, Binding> {\n const ids = Object.create(null);\n\n let scope: Scope = this;\n do {\n for (const key of Object.keys(scope.bindings)) {\n if (key in ids === false) {\n ids[key] = scope.bindings[key];\n }\n }\n scope = scope.parent;\n } while (scope);\n\n return ids;\n }\n\n /**\n * Walks the scope tree and gathers all declarations of `kind`.\n */\n\n getAllBindingsOfKind(...kinds: string[]): Record<string, Binding> {\n const ids = Object.create(null);\n\n for (const kind of kinds) {\n let scope: Scope = this;\n do {\n for (const name of Object.keys(scope.bindings)) {\n const binding = scope.bindings[name];\n if (binding.kind === kind) ids[name] = binding;\n }\n scope = scope.parent;\n } while (scope);\n }\n\n return ids;\n }\n\n bindingIdentifierEquals(name: string, node: t.Node): boolean {\n return this.getBindingIdentifier(name) === node;\n }\n\n getBinding(name: string): Binding | undefined {\n let scope: Scope = this;\n let previousPath;\n\n do {\n const binding = scope.getOwnBinding(name);\n if (binding) {\n // Check if a pattern is a part of parameter expressions.\n // Note: for performance reason we skip checking previousPath.parentPath.isFunction()\n // because `scope.path` is validated as scope in packages/babel-types/src/validators/isScope.js\n // That is, if a scope path is pattern, its parent must be Function/CatchClause\n\n // Spec 9.2.10.28: The closure created by this expression should not have visibility of\n // declarations in the function body. If the binding is not a `param`-kind (as function parameters)\n // or `local`-kind (as id in function expression),\n // then it must be defined inside the function body, thus it should be skipped\n if (\n previousPath?.isPattern() &&\n binding.kind !== \"param\" &&\n binding.kind !== \"local\"\n ) {\n // do nothing\n } else {\n return binding;\n }\n } else if (\n !binding &&\n name === \"arguments\" &&\n scope.path.isFunction() &&\n !scope.path.isArrowFunctionExpression()\n ) {\n break;\n }\n previousPath = scope.path;\n } while ((scope = scope.parent));\n }\n\n getOwnBinding(name: string): Binding | undefined {\n return this.bindings[name];\n }\n\n // todo: return probably can be undefined…\n getBindingIdentifier(name: string): t.Identifier {\n return this.getBinding(name)?.identifier;\n }\n\n // todo: flow->ts return probably can be undefined\n getOwnBindingIdentifier(name: string): t.Identifier {\n const binding = this.bindings[name];\n return binding?.identifier;\n }\n\n hasOwnBinding(name: string) {\n return !!this.getOwnBinding(name);\n }\n\n // By default, we consider generated UIDs as bindings.\n // This is because they are almost always used to declare variables,\n // and since the scope isn't always up-to-date it's better to assume that\n // there is a variable with that name. The `noUids` option can be used to\n // turn off this behavior, for example if you know that the generate UID\n // was used to declare a variable in a different scope.\n hasBinding(\n name: string,\n opts?: boolean | { noGlobals?: boolean; noUids?: boolean },\n ) {\n if (!name) return false;\n if (this.hasOwnBinding(name)) return true;\n {\n // TODO: Only accept the object form.\n if (typeof opts === \"boolean\") opts = { noGlobals: opts };\n }\n if (this.parentHasBinding(name, opts)) return true;\n if (!opts?.noUids && this.hasUid(name)) return true;\n if (!opts?.noGlobals && Scope.globals.includes(name)) return true;\n if (!opts?.noGlobals && Scope.contextVariables.includes(name)) return true;\n return false;\n }\n\n parentHasBinding(\n name: string,\n opts?: { noGlobals?: boolean; noUids?: boolean },\n ) {\n return this.parent?.hasBinding(name, opts);\n }\n\n /**\n * Move a binding of `name` to another `scope`.\n */\n\n moveBindingTo(name: string, scope: Scope) {\n const info = this.getBinding(name);\n if (info) {\n info.scope.removeOwnBinding(name);\n info.scope = scope;\n scope.bindings[name] = info;\n }\n }\n\n removeOwnBinding(name: string) {\n delete this.bindings[name];\n }\n\n removeBinding(name: string) {\n // clear literal binding\n this.getBinding(name)?.scope.removeOwnBinding(name);\n\n // clear uids with this name - https://github.com/babel/babel/issues/2101\n let scope: Scope = this;\n do {\n if (scope.uids[name]) {\n scope.uids[name] = false;\n }\n } while ((scope = scope.parent));\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_renamer","require","_index","_binding","_globals","_t","t","_cache","_visitors","NOT_LOCAL_BINDING","callExpression","cloneNode","getBindingIdentifiers","identifier","isArrayExpression","isBinary","isClass","isClassBody","isClassDeclaration","isExportAllDeclaration","isExportDefaultDeclaration","isExportNamedDeclaration","isFunctionDeclaration","isIdentifier","isImportDeclaration","isLiteral","isMethod","isModuleSpecifier","isNullLiteral","isObjectExpression","isProperty","isPureish","isRegExpLiteral","isSuper","isTaggedTemplateExpression","isTemplateLiteral","isThisExpression","isUnaryExpression","isVariableDeclaration","matchesPattern","memberExpression","numericLiteral","toIdentifier","variableDeclaration","variableDeclarator","isRecordExpression","isTupleExpression","isObjectProperty","isTopicReference","isMetaProperty","isPrivateName","isExportDeclaration","buildUndefinedNode","gatherNodeParts","node","parts","type","_node$specifiers","source","specifiers","length","e","declaration","local","push","value","object","property","name","callee","properties","argument","key","left","id","expression","meta","openingElement","openingFragment","namespace","collectorVisitor","ForStatement","path","declar","get","isVar","scope","parentScope","getFunctionParent","getProgramParent","registerBinding","Declaration","isBlockScoped","parent","registerDeclaration","ImportDeclaration","getBlockParent","ReferencedIdentifier","state","references","ForXStatement","isPattern","constantViolations","ExportDeclaration","exit","binding","getBinding","reference","decl","declarations","Object","keys","LabeledStatement","AssignmentExpression","assignments","UpdateExpression","UnaryExpression","operator","BlockScoped","bindings","CatchClause","Function","params","param","isFunctionExpression","has","ClassExpression","uid","Scope","constructor","block","labels","inited","globals","uids","data","crawling","cached","scopeCache","set","Map","_parent","shouldSkip","listKey","parentPath","isScope","parentBlock","hub","traverse","opts","generateDeclaredUidIdentifier","generateUidIdentifier","generateUid","replace","i","_generateUid","hasLabel","hasBinding","hasGlobal","hasReference","program","generateUidBasedOnNode","defaultName","join","slice","generateUidIdentifierBasedOnNode","isStatic","constant","maybeGenerateMemoised","dontPush","checkBlockScopedCollisions","kind","duplicate","buildError","TypeError","rename","oldName","newName","renamer","Renamer","arguments","_renameFromMap","map","dump","sep","repeat","console","log","violations","toArray","arrayLikeIsIterable","isGenericType","helperName","args","unshift","addHelper","getLabel","registerLabel","label","isLabeledStatement","declare","isTypeDeclaration","importKind","specifier","isTypeSpecifier","isImportSpecifier","registerConstantViolation","ids","_this$getBinding","reassign","bindingPath","ReferenceError","declarators","getOuterBindingIdentifiers","getOwnBinding","Binding","addGlobal","hasUid","isPure","constantsOnly","_node$decorators","superClass","decorators","body","method","right","elem","elements","prop","_node$decorators2","computed","_node$decorators3","static","tag","quasi","expressions","setData","val","getData","removeData","init","crawl","create","programParent","isExplodedVisitor","visit","enter","call","typeVisitors","ref","getPatternParent","isBlockStatement","isProgram","isSwitchStatement","unique","isFunction","isCallExpression","pushContainer","isLoop","isCatchClause","ensureBlock","blockHoist","_blockHoist","dataKey","declarPath","unshiftContainer","declarator","len","Error","isFunctionParent","isBlockParent","getAllBindings","getAllBindingsOfKind","kinds","bindingIdentifierEquals","getBindingIdentifier","previousPath","_previousPath","isArrowFunctionExpression","_this$getBinding2","getOwnBindingIdentifier","hasOwnBinding","_opts","_opts2","_opts3","noGlobals","parentHasBinding","noUids","includes","contextVariables","_this$parent","moveBindingTo","info","removeOwnBinding","removeBinding","_this$getBinding3","exports","default","builtin"],"sources":["../../src/scope/index.ts"],"sourcesContent":["import Renamer from \"./lib/renamer.ts\";\nimport type NodePath from \"../path/index.ts\";\nimport traverse from \"../index.ts\";\nimport type { TraverseOptions } from \"../index.ts\";\nimport Binding from \"./binding.ts\";\nimport type { BindingKind } from \"./binding.ts\";\nimport globals from \"globals\";\nimport {\n NOT_LOCAL_BINDING,\n callExpression,\n cloneNode,\n getBindingIdentifiers,\n identifier,\n isArrayExpression,\n isBinary,\n isClass,\n isClassBody,\n isClassDeclaration,\n isExportAllDeclaration,\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n isFunctionDeclaration,\n isIdentifier,\n isImportDeclaration,\n isLiteral,\n isMethod,\n isModuleSpecifier,\n isNullLiteral,\n isObjectExpression,\n isProperty,\n isPureish,\n isRegExpLiteral,\n isSuper,\n isTaggedTemplateExpression,\n isTemplateLiteral,\n isThisExpression,\n isUnaryExpression,\n isVariableDeclaration,\n matchesPattern,\n memberExpression,\n numericLiteral,\n toIdentifier,\n variableDeclaration,\n variableDeclarator,\n isRecordExpression,\n isTupleExpression,\n isObjectProperty,\n isTopicReference,\n isMetaProperty,\n isPrivateName,\n isExportDeclaration,\n buildUndefinedNode,\n} from \"@babel/types\";\nimport * as t from \"@babel/types\";\nimport { scope as scopeCache } from \"../cache.ts\";\nimport type { Visitor } from \"../types.ts\";\nimport { isExplodedVisitor } from \"../visitors.ts\";\n\ntype NodePart = string | number | boolean;\n// Recursively gathers the identifying names of a node.\nfunction gatherNodeParts(node: t.Node, parts: NodePart[]) {\n switch (node?.type) {\n default:\n if (isImportDeclaration(node) || isExportDeclaration(node)) {\n if (\n (isExportAllDeclaration(node) ||\n isExportNamedDeclaration(node) ||\n isImportDeclaration(node)) &&\n node.source\n ) {\n gatherNodeParts(node.source, parts);\n } else if (\n (isExportNamedDeclaration(node) || isImportDeclaration(node)) &&\n node.specifiers?.length\n ) {\n for (const e of node.specifiers) gatherNodeParts(e, parts);\n } else if (\n (isExportDefaultDeclaration(node) ||\n isExportNamedDeclaration(node)) &&\n node.declaration\n ) {\n gatherNodeParts(node.declaration, parts);\n }\n } else if (isModuleSpecifier(node)) {\n // todo(flow->ts): should condition instead be:\n // ```\n // t.isExportSpecifier(node) ||\n // t.isImportDefaultSpecifier(node) ||\n // t.isImportNamespaceSpecifier(node) ||\n // t.isImportSpecifier(node)\n // ```\n // allowing only nodes with `.local`?\n // @ts-expect-error todo(flow->ts)\n gatherNodeParts(node.local, parts);\n } else if (\n isLiteral(node) &&\n !isNullLiteral(node) &&\n !isRegExpLiteral(node) &&\n !isTemplateLiteral(node)\n ) {\n parts.push(node.value);\n }\n break;\n\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n case \"JSXMemberExpression\":\n gatherNodeParts(node.object, parts);\n gatherNodeParts(node.property, parts);\n break;\n\n case \"Identifier\":\n case \"JSXIdentifier\":\n parts.push(node.name);\n break;\n\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n case \"NewExpression\":\n gatherNodeParts(node.callee, parts);\n break;\n\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n for (const e of node.properties) {\n gatherNodeParts(e, parts);\n }\n break;\n\n case \"SpreadElement\":\n case \"RestElement\":\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"ObjectProperty\":\n case \"ObjectMethod\":\n case \"ClassProperty\":\n case \"ClassMethod\":\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n gatherNodeParts(node.key, parts);\n break;\n\n case \"ThisExpression\":\n parts.push(\"this\");\n break;\n\n case \"Super\":\n parts.push(\"super\");\n break;\n\n case \"Import\":\n parts.push(\"import\");\n break;\n\n case \"DoExpression\":\n parts.push(\"do\");\n break;\n\n case \"YieldExpression\":\n parts.push(\"yield\");\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"AwaitExpression\":\n parts.push(\"await\");\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"AssignmentExpression\":\n gatherNodeParts(node.left, parts);\n break;\n\n case \"VariableDeclarator\":\n gatherNodeParts(node.id, parts);\n break;\n\n case \"FunctionExpression\":\n case \"FunctionDeclaration\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n gatherNodeParts(node.id, parts);\n break;\n\n case \"PrivateName\":\n gatherNodeParts(node.id, parts);\n break;\n\n case \"ParenthesizedExpression\":\n gatherNodeParts(node.expression, parts);\n break;\n\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"MetaProperty\":\n gatherNodeParts(node.meta, parts);\n gatherNodeParts(node.property, parts);\n break;\n\n case \"JSXElement\":\n gatherNodeParts(node.openingElement, parts);\n break;\n\n case \"JSXOpeningElement\":\n gatherNodeParts(node.name, parts);\n break;\n\n case \"JSXFragment\":\n gatherNodeParts(node.openingFragment, parts);\n break;\n\n case \"JSXOpeningFragment\":\n parts.push(\"Fragment\");\n break;\n\n case \"JSXNamespacedName\":\n gatherNodeParts(node.namespace, parts);\n gatherNodeParts(node.name, parts);\n break;\n }\n}\n\n//\ninterface CollectVisitorState {\n assignments: NodePath<t.AssignmentExpression>[];\n references: NodePath<t.Identifier | t.JSXIdentifier>[];\n constantViolations: NodePath[];\n}\n\nconst collectorVisitor: Visitor<CollectVisitorState> = {\n ForStatement(path) {\n const declar = path.get(\"init\");\n // delegate block scope handling to the `BlockScoped` method\n if (declar.isVar()) {\n const { scope } = path;\n const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n parentScope.registerBinding(\"var\", declar);\n }\n },\n\n Declaration(path) {\n // delegate block scope handling to the `BlockScoped` method\n if (path.isBlockScoped()) return;\n\n // delegate import handing to the `ImportDeclaration` method\n if (path.isImportDeclaration()) return;\n\n // this will be hit again once we traverse into it after this iteration\n if (path.isExportDeclaration()) return;\n\n // we've ran into a declaration!\n const parent =\n path.scope.getFunctionParent() || path.scope.getProgramParent();\n parent.registerDeclaration(path);\n },\n\n ImportDeclaration(path) {\n // import may only appear in the top level or inside a module/namespace (for TS/flow)\n const parent = path.scope.getBlockParent();\n\n parent.registerDeclaration(path);\n },\n\n ReferencedIdentifier(path, state) {\n state.references.push(path);\n },\n\n ForXStatement(path, state) {\n const left = path.get(\"left\");\n if (left.isPattern() || left.isIdentifier()) {\n state.constantViolations.push(path);\n }\n // delegate block scope handling to the `BlockScoped` method\n else if (left.isVar()) {\n const { scope } = path;\n const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n parentScope.registerBinding(\"var\", left);\n }\n },\n\n ExportDeclaration: {\n exit(path) {\n const { node, scope } = path;\n // ExportAllDeclaration does not have `declaration`\n if (isExportAllDeclaration(node)) return;\n const declar = node.declaration;\n if (isClassDeclaration(declar) || isFunctionDeclaration(declar)) {\n const id = declar.id;\n if (!id) return;\n\n const binding = scope.getBinding(id.name);\n binding?.reference(path);\n } else if (isVariableDeclaration(declar)) {\n for (const decl of declar.declarations) {\n for (const name of Object.keys(getBindingIdentifiers(decl))) {\n const binding = scope.getBinding(name);\n binding?.reference(path);\n }\n }\n }\n },\n },\n\n LabeledStatement(path) {\n path.scope.getBlockParent().registerDeclaration(path);\n },\n\n AssignmentExpression(path, state) {\n state.assignments.push(path);\n },\n\n UpdateExpression(path, state) {\n state.constantViolations.push(path);\n },\n\n UnaryExpression(path, state) {\n if (path.node.operator === \"delete\") {\n state.constantViolations.push(path);\n }\n },\n\n BlockScoped(path) {\n let scope = path.scope;\n if (scope.path === path) scope = scope.parent;\n\n const parent = scope.getBlockParent();\n parent.registerDeclaration(path);\n\n // Register class identifier in class' scope if this is a class declaration.\n if (path.isClassDeclaration() && path.node.id) {\n const id = path.node.id;\n const name = id.name;\n\n path.scope.bindings[name] = path.scope.parent.getBinding(name);\n }\n },\n\n CatchClause(path) {\n path.scope.registerBinding(\"let\", path);\n },\n\n Function(path) {\n const params: Array<NodePath> = path.get(\"params\");\n for (const param of params) {\n path.scope.registerBinding(\"param\", param);\n }\n\n // Register function expression id after params. When the id\n // collides with a function param, the id effectively can't be\n // referenced: here we registered it as a constantViolation\n if (\n path.isFunctionExpression() &&\n path.has(\"id\") &&\n // @ts-expect-error Fixme: document symbol ast properties\n !path.get(\"id\").node[NOT_LOCAL_BINDING]\n ) {\n path.scope.registerBinding(\"local\", path.get(\"id\"), path);\n }\n },\n\n ClassExpression(path) {\n if (\n path.has(\"id\") &&\n // @ts-expect-error Fixme: document symbol ast properties\n !path.get(\"id\").node[NOT_LOCAL_BINDING]\n ) {\n path.scope.registerBinding(\"local\", path);\n }\n },\n};\n\nlet uid = 0;\n\nexport type { Binding };\n\nexport default class Scope {\n uid;\n\n path: NodePath;\n block: t.Pattern | t.Scopable;\n\n labels;\n inited;\n\n bindings: { [name: string]: Binding };\n references: { [name: string]: true };\n globals: { [name: string]: t.Identifier | t.JSXIdentifier };\n uids: { [name: string]: boolean };\n data: { [key: string | symbol]: unknown };\n crawling: boolean;\n\n /**\n * This searches the current \"scope\" and collects all references/bindings\n * within.\n */\n constructor(path: NodePath<t.Pattern | t.Scopable>) {\n const { node } = path;\n const cached = scopeCache.get(node);\n // Sometimes, a scopable path is placed higher in the AST tree.\n // In these cases, have to create a new Scope.\n if (cached?.path === path) {\n return cached;\n }\n scopeCache.set(node, this);\n\n this.uid = uid++;\n\n this.block = node;\n this.path = path;\n\n this.labels = new Map();\n this.inited = false;\n }\n\n /**\n * Globals.\n */\n\n static globals = Object.keys(globals.builtin);\n\n /**\n * Variables available in current context.\n */\n\n static contextVariables = [\"arguments\", \"undefined\", \"Infinity\", \"NaN\"];\n\n get parent() {\n let parent,\n path = this.path;\n do {\n // Skip method scope if coming from inside computed key or decorator expression\n const shouldSkip = path.key === \"key\" || path.listKey === \"decorators\";\n path = path.parentPath;\n if (shouldSkip && path.isMethod()) path = path.parentPath;\n if (path && path.isScope()) parent = path;\n } while (path && !parent);\n\n return parent?.scope;\n }\n\n get parentBlock() {\n return this.path.parent;\n }\n\n get hub() {\n return this.path.hub;\n }\n\n traverse<S>(\n node: t.Node | t.Node[],\n opts: TraverseOptions<S>,\n state: S,\n ): void;\n traverse(node: t.Node | t.Node[], opts?: TraverseOptions, state?: any): void;\n /**\n * Traverse node with current scope and path.\n *\n * !!! WARNING !!!\n * This method assumes that `this.path` is the NodePath representing `node`.\n * After running the traversal, the `.parentPath` of the NodePaths\n * corresponding to `node`'s children will be set to `this.path`.\n *\n * There is no good reason to use this method, since the only safe way to use\n * it is equivalent to `scope.path.traverse(opts, state)`.\n */\n traverse<S>(node: any, opts: any, state?: S) {\n traverse(node, opts, this, state, this.path);\n }\n\n /**\n * Generate a unique identifier and add it to the current scope.\n */\n\n generateDeclaredUidIdentifier(name?: string) {\n const id = this.generateUidIdentifier(name);\n this.push({ id });\n return cloneNode(id);\n }\n\n /**\n * Generate a unique identifier.\n */\n\n generateUidIdentifier(name?: string) {\n return identifier(this.generateUid(name));\n }\n\n /**\n * Generate a unique `_id1` binding.\n */\n\n generateUid(name: string = \"temp\"): string {\n name = toIdentifier(name)\n .replace(/^_+/, \"\")\n .replace(/[0-9]+$/g, \"\");\n\n let uid;\n let i = 1;\n do {\n uid = this._generateUid(name, i);\n i++;\n } while (\n this.hasLabel(uid) ||\n this.hasBinding(uid) ||\n this.hasGlobal(uid) ||\n this.hasReference(uid)\n );\n\n const program = this.getProgramParent();\n program.references[uid] = true;\n program.uids[uid] = true;\n\n return uid;\n }\n\n /**\n * Generate an `_id1`.\n */\n\n _generateUid(name: string, i: number) {\n let id = name;\n if (i > 1) id += i;\n return `_${id}`;\n }\n\n generateUidBasedOnNode(node: t.Node, defaultName?: string) {\n const parts: NodePart[] = [];\n gatherNodeParts(node, parts);\n\n let id = parts.join(\"$\");\n id = id.replace(/^_/, \"\") || defaultName || \"ref\";\n\n return this.generateUid(id.slice(0, 20));\n }\n\n /**\n * Generate a unique identifier based on a node.\n */\n\n generateUidIdentifierBasedOnNode(node: t.Node, defaultName?: string) {\n return identifier(this.generateUidBasedOnNode(node, defaultName));\n }\n\n /**\n * Determine whether evaluating the specific input `node` is a consequenceless reference. ie.\n * evaluating it won't result in potentially arbitrary code from being ran. The following are\n * allowed and determined not to cause side effects:\n *\n * - `this` expressions\n * - `super` expressions\n * - Bound identifiers\n */\n\n isStatic(node: t.Node): boolean {\n if (isThisExpression(node) || isSuper(node) || isTopicReference(node)) {\n return true;\n }\n\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (binding) {\n return binding.constant;\n } else {\n return this.hasBinding(node.name);\n }\n }\n\n return false;\n }\n\n /**\n * Possibly generate a memoised identifier if it is not static and has consequences.\n */\n\n maybeGenerateMemoised(node: t.Node, dontPush?: boolean) {\n if (this.isStatic(node)) {\n return null;\n } else {\n const id = this.generateUidIdentifierBasedOnNode(node);\n if (!dontPush) {\n this.push({ id });\n return cloneNode(id);\n }\n return id;\n }\n }\n\n checkBlockScopedCollisions(\n local: Binding,\n kind: BindingKind,\n name: string,\n id: any,\n ) {\n // ignore parameters\n if (kind === \"param\") return;\n\n // Ignore existing binding if it's the name of the current function or\n // class expression\n if (local.kind === \"local\") return;\n\n const duplicate =\n // don't allow duplicate bindings to exist alongside\n kind === \"let\" ||\n local.kind === \"let\" ||\n local.kind === \"const\" ||\n local.kind === \"module\" ||\n // don't allow a local of param with a kind of let\n (local.kind === \"param\" && kind === \"const\");\n\n if (duplicate) {\n throw this.hub.buildError(\n id,\n `Duplicate declaration \"${name}\"`,\n TypeError,\n );\n }\n }\n\n rename(\n oldName: string,\n newName?: string,\n // prettier-ignore\n /* Babel 7 - block?: t.Pattern | t.Scopable */\n ) {\n const binding = this.getBinding(oldName);\n if (binding) {\n newName ||= this.generateUidIdentifier(oldName).name;\n const renamer = new Renamer(binding, oldName, newName);\n if (process.env.BABEL_8_BREAKING) {\n renamer.rename();\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) TODO: Delete this\n renamer.rename(arguments[2]);\n }\n }\n }\n\n /** @deprecated Not used in our codebase */\n _renameFromMap(\n map: Record<string | symbol, unknown>,\n oldName: string | symbol,\n newName: string | symbol,\n value: unknown,\n ) {\n if (map[oldName]) {\n map[newName] = value;\n map[oldName] = null;\n }\n }\n\n dump() {\n const sep = \"-\".repeat(60);\n console.log(sep);\n let scope: Scope = this;\n do {\n console.log(\"#\", scope.block.type);\n for (const name of Object.keys(scope.bindings)) {\n const binding = scope.bindings[name];\n console.log(\" -\", name, {\n constant: binding.constant,\n references: binding.references,\n violations: binding.constantViolations.length,\n kind: binding.kind,\n });\n }\n } while ((scope = scope.parent));\n console.log(sep);\n }\n\n // TODO: (Babel 8) Split i in two parameters, and use an object of flags\n toArray(\n node: t.Node,\n i?: number | boolean,\n arrayLikeIsIterable?: boolean | void,\n ) {\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (binding?.constant && binding.path.isGenericType(\"Array\")) {\n return node;\n }\n }\n\n if (isArrayExpression(node)) {\n return node;\n }\n\n if (isIdentifier(node, { name: \"arguments\" })) {\n return callExpression(\n memberExpression(\n memberExpression(\n memberExpression(identifier(\"Array\"), identifier(\"prototype\")),\n identifier(\"slice\"),\n ),\n identifier(\"call\"),\n ),\n [node],\n );\n }\n\n let helperName;\n const args = [node];\n if (i === true) {\n // Used in array-spread to create an array.\n helperName = \"toConsumableArray\";\n } else if (typeof i === \"number\") {\n args.push(numericLiteral(i));\n\n // Used in array-rest to create an array from a subset of an iterable.\n helperName = \"slicedToArray\";\n // TODO if (this.hub.isLoose(\"es6.forOf\")) helperName += \"-loose\";\n } else {\n // Used in array-rest to create an array\n helperName = \"toArray\";\n }\n\n if (arrayLikeIsIterable) {\n args.unshift(this.hub.addHelper(helperName));\n helperName = \"maybeArrayLike\";\n }\n\n // @ts-expect-error todo(flow->ts): t.Node is not valid to use in args, function argument typeneeds to be clarified\n return callExpression(this.hub.addHelper(helperName), args);\n }\n\n hasLabel(name: string) {\n return !!this.getLabel(name);\n }\n\n getLabel(name: string) {\n return this.labels.get(name);\n }\n\n registerLabel(path: NodePath<t.LabeledStatement>) {\n this.labels.set(path.node.label.name, path);\n }\n\n registerDeclaration(path: NodePath) {\n if (path.isLabeledStatement()) {\n this.registerLabel(path);\n } else if (path.isFunctionDeclaration()) {\n this.registerBinding(\"hoisted\", path.get(\"id\"), path);\n } else if (path.isVariableDeclaration()) {\n const declarations = path.get(\"declarations\");\n const { kind } = path.node;\n for (const declar of declarations) {\n this.registerBinding(\n kind === \"using\" || kind === \"await using\" ? \"const\" : kind,\n declar,\n );\n }\n } else if (path.isClassDeclaration()) {\n if (path.node.declare) return;\n this.registerBinding(\"let\", path);\n } else if (path.isImportDeclaration()) {\n const isTypeDeclaration =\n path.node.importKind === \"type\" || path.node.importKind === \"typeof\";\n const specifiers = path.get(\"specifiers\");\n for (const specifier of specifiers) {\n const isTypeSpecifier =\n isTypeDeclaration ||\n (specifier.isImportSpecifier() &&\n (specifier.node.importKind === \"type\" ||\n specifier.node.importKind === \"typeof\"));\n\n this.registerBinding(isTypeSpecifier ? \"unknown\" : \"module\", specifier);\n }\n } else if (path.isExportDeclaration()) {\n // todo: improve babel-types\n const declar = path.get(\"declaration\") as NodePath;\n if (\n declar.isClassDeclaration() ||\n declar.isFunctionDeclaration() ||\n declar.isVariableDeclaration()\n ) {\n this.registerDeclaration(declar);\n }\n } else {\n this.registerBinding(\"unknown\", path);\n }\n }\n\n buildUndefinedNode() {\n return buildUndefinedNode();\n }\n\n registerConstantViolation(path: NodePath) {\n const ids = path.getBindingIdentifiers();\n for (const name of Object.keys(ids)) {\n this.getBinding(name)?.reassign(path);\n }\n }\n\n registerBinding(\n kind: Binding[\"kind\"],\n path: NodePath,\n bindingPath: NodePath = path,\n ) {\n if (!kind) throw new ReferenceError(\"no `kind`\");\n\n if (path.isVariableDeclaration()) {\n const declarators: Array<NodePath> = path.get(\"declarations\");\n for (const declar of declarators) {\n this.registerBinding(kind, declar);\n }\n return;\n }\n\n const parent = this.getProgramParent();\n const ids = path.getOuterBindingIdentifiers(true);\n\n for (const name of Object.keys(ids)) {\n parent.references[name] = true;\n\n for (const id of ids[name]) {\n const local = this.getOwnBinding(name);\n\n if (local) {\n // same identifier so continue safely as we're likely trying to register it\n // multiple times\n if (local.identifier === id) continue;\n\n this.checkBlockScopedCollisions(local, kind, name, id);\n }\n\n // A redeclaration of an existing variable is a modification\n if (local) {\n this.registerConstantViolation(bindingPath);\n } else {\n this.bindings[name] = new Binding({\n identifier: id,\n scope: this,\n path: bindingPath,\n kind: kind,\n });\n }\n }\n }\n }\n\n addGlobal(node: t.Identifier | t.JSXIdentifier) {\n this.globals[node.name] = node;\n }\n\n hasUid(name: string): boolean {\n let scope: Scope = this;\n\n do {\n if (scope.uids[name]) return true;\n } while ((scope = scope.parent));\n\n return false;\n }\n\n hasGlobal(name: string): boolean {\n let scope: Scope = this;\n\n do {\n if (scope.globals[name]) return true;\n } while ((scope = scope.parent));\n\n return false;\n }\n\n hasReference(name: string): boolean {\n return !!this.getProgramParent().references[name];\n }\n\n isPure(node: t.Node, constantsOnly?: boolean): boolean {\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (!binding) return false;\n if (constantsOnly) return binding.constant;\n return true;\n } else if (\n isThisExpression(node) ||\n isMetaProperty(node) ||\n isTopicReference(node) ||\n isPrivateName(node)\n ) {\n return true;\n } else if (isClass(node)) {\n if (node.superClass && !this.isPure(node.superClass, constantsOnly)) {\n return false;\n }\n if (node.decorators?.length > 0) {\n return false;\n }\n return this.isPure(node.body, constantsOnly);\n } else if (isClassBody(node)) {\n for (const method of node.body) {\n if (!this.isPure(method, constantsOnly)) return false;\n }\n return true;\n } else if (isBinary(node)) {\n return (\n this.isPure(node.left, constantsOnly) &&\n this.isPure(node.right, constantsOnly)\n );\n } else if (isArrayExpression(node) || isTupleExpression(node)) {\n for (const elem of node.elements) {\n if (elem !== null && !this.isPure(elem, constantsOnly)) return false;\n }\n return true;\n } else if (isObjectExpression(node) || isRecordExpression(node)) {\n for (const prop of node.properties) {\n if (!this.isPure(prop, constantsOnly)) return false;\n }\n return true;\n } else if (isMethod(node)) {\n if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n if (node.decorators?.length > 0) {\n return false;\n }\n return true;\n } else if (isProperty(node)) {\n // @ts-expect-error todo(flow->ts): computed in not present on private properties\n if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n if (node.decorators?.length > 0) {\n return false;\n }\n if (isObjectProperty(node) || node.static) {\n if (node.value !== null && !this.isPure(node.value, constantsOnly)) {\n return false;\n }\n }\n return true;\n } else if (isUnaryExpression(node)) {\n return this.isPure(node.argument, constantsOnly);\n } else if (isTaggedTemplateExpression(node)) {\n return (\n matchesPattern(node.tag, \"String.raw\") &&\n !this.hasBinding(\"String\", true) &&\n this.isPure(node.quasi, constantsOnly)\n );\n } else if (isTemplateLiteral(node)) {\n for (const expression of node.expressions) {\n if (!this.isPure(expression, constantsOnly)) return false;\n }\n return true;\n } else {\n return isPureish(node);\n }\n }\n\n /**\n * Set some arbitrary data on the current scope.\n */\n\n setData(key: string | symbol, val: any) {\n return (this.data[key] = val);\n }\n\n /**\n * Recursively walk up scope tree looking for the data `key`.\n */\n\n getData(key: string | symbol): any {\n let scope: Scope = this;\n do {\n const data = scope.data[key];\n if (data != null) return data;\n } while ((scope = scope.parent));\n }\n\n /**\n * Recursively walk up scope tree looking for the data `key` and if it exists,\n * remove it.\n */\n\n removeData(key: string) {\n let scope: Scope = this;\n do {\n const data = scope.data[key];\n if (data != null) scope.data[key] = null;\n } while ((scope = scope.parent));\n }\n\n init() {\n if (!this.inited) {\n this.inited = true;\n this.crawl();\n }\n }\n\n crawl() {\n const path = this.path;\n\n this.references = Object.create(null);\n this.bindings = Object.create(null);\n this.globals = Object.create(null);\n this.uids = Object.create(null);\n this.data = Object.create(null);\n\n const programParent = this.getProgramParent();\n if (programParent.crawling) return;\n\n const state: CollectVisitorState = {\n references: [],\n constantViolations: [],\n assignments: [],\n };\n\n this.crawling = true;\n // traverse does not visit the root node, here we explicitly collect\n // root node binding info when the root is not a Program.\n if (path.type !== \"Program\" && isExplodedVisitor(collectorVisitor)) {\n for (const visit of collectorVisitor.enter) {\n visit.call(state, path, state);\n }\n const typeVisitors = collectorVisitor[path.type];\n if (typeVisitors) {\n for (const visit of typeVisitors.enter) {\n visit.call(state, path, state);\n }\n }\n }\n path.traverse(collectorVisitor, state);\n this.crawling = false;\n\n // register assignments\n for (const path of state.assignments) {\n // register undeclared bindings as globals\n const ids = path.getBindingIdentifiers();\n for (const name of Object.keys(ids)) {\n if (path.scope.getBinding(name)) continue;\n programParent.addGlobal(ids[name]);\n }\n\n // register as constant violation\n path.scope.registerConstantViolation(path);\n }\n\n // register references\n for (const ref of state.references) {\n const binding = ref.scope.getBinding(ref.node.name);\n if (binding) {\n binding.reference(ref);\n } else {\n programParent.addGlobal(ref.node);\n }\n }\n\n // register constant violations\n for (const path of state.constantViolations) {\n path.scope.registerConstantViolation(path);\n }\n }\n\n push(opts: {\n id: t.LVal;\n init?: t.Expression;\n unique?: boolean;\n _blockHoist?: number | undefined;\n kind?: \"var\" | \"let\" | \"const\";\n }) {\n let path = this.path;\n\n if (path.isPattern()) {\n path = this.getPatternParent().path;\n } else if (!path.isBlockStatement() && !path.isProgram()) {\n path = this.getBlockParent().path;\n }\n\n if (path.isSwitchStatement()) {\n path = (this.getFunctionParent() || this.getProgramParent()).path;\n }\n\n const { init, unique, kind = \"var\", id } = opts;\n\n // When injecting a non-const non-initialized binding inside\n // an IIFE, if the number of call arguments is less than or\n // equal to the number of function parameters, we can safely\n // inject the binding into the parameter list.\n if (\n !init &&\n !unique &&\n (kind === \"var\" || kind === \"let\") &&\n path.isFunction() &&\n // @ts-expect-error ArrowFunctionExpression never has a name\n !path.node.name &&\n t.isCallExpression(path.parent, { callee: path.node }) &&\n path.parent.arguments.length <= path.node.params.length &&\n t.isIdentifier(id)\n ) {\n path.pushContainer(\"params\", id);\n path.scope.registerBinding(\n \"param\",\n path.get(\"params\")[path.node.params.length - 1],\n );\n return;\n }\n\n if (path.isLoop() || path.isCatchClause() || path.isFunction()) {\n // @ts-expect-error TS can not infer NodePath<Loop> | NodePath<CatchClause> as NodePath<Loop | CatchClause>\n path.ensureBlock();\n // @ts-expect-error todo(flow->ts): improve types\n path = path.get(\"body\");\n }\n\n const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;\n\n const dataKey = `declaration:${kind}:${blockHoist}`;\n let declarPath = !unique && path.getData(dataKey);\n\n if (!declarPath) {\n const declar = variableDeclaration(kind, []);\n // @ts-expect-error todo(flow->ts): avoid modifying nodes\n declar._blockHoist = blockHoist;\n\n [declarPath] = (path as NodePath<t.BlockStatement>).unshiftContainer(\n \"body\",\n [declar],\n );\n if (!unique) path.setData(dataKey, declarPath);\n }\n\n const declarator = variableDeclarator(id, init);\n const len = declarPath.node.declarations.push(declarator);\n path.scope.registerBinding(kind, declarPath.get(\"declarations\")[len - 1]);\n }\n\n /**\n * Walk up to the top of the scope tree and get the `Program`.\n */\n\n getProgramParent() {\n let scope: Scope = this;\n do {\n if (scope.path.isProgram()) {\n return scope;\n }\n } while ((scope = scope.parent));\n throw new Error(\"Couldn't find a Program\");\n }\n\n /**\n * Walk up the scope tree until we hit either a Function or return null.\n */\n\n getFunctionParent(): Scope | null {\n let scope: Scope = this;\n do {\n if (scope.path.isFunctionParent()) {\n return scope;\n }\n } while ((scope = scope.parent));\n return null;\n }\n\n /**\n * Walk up the scope tree until we hit either a BlockStatement/Loop/Program/Function/Switch or reach the\n * very top and hit Program.\n */\n\n getBlockParent() {\n let scope: Scope = this;\n do {\n if (scope.path.isBlockParent()) {\n return scope;\n }\n } while ((scope = scope.parent));\n throw new Error(\n \"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\",\n );\n }\n\n /**\n * Walk up from a pattern scope (function param initializer) until we hit a non-pattern scope,\n * then returns its block parent\n * @returns An ancestry scope whose path is a block parent\n */\n getPatternParent() {\n let scope: Scope = this;\n do {\n if (!scope.path.isPattern()) {\n return scope.getBlockParent();\n }\n } while ((scope = scope.parent.parent));\n throw new Error(\n \"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\",\n );\n }\n\n /**\n * Walks the scope tree and gathers **all** bindings.\n */\n\n getAllBindings(): Record<string, Binding> {\n const ids = Object.create(null);\n\n let scope: Scope = this;\n do {\n for (const key of Object.keys(scope.bindings)) {\n if (key in ids === false) {\n ids[key] = scope.bindings[key];\n }\n }\n scope = scope.parent;\n } while (scope);\n\n return ids;\n }\n\n /**\n * Walks the scope tree and gathers all declarations of `kind`.\n */\n\n getAllBindingsOfKind(...kinds: string[]): Record<string, Binding> {\n const ids = Object.create(null);\n\n for (const kind of kinds) {\n let scope: Scope = this;\n do {\n for (const name of Object.keys(scope.bindings)) {\n const binding = scope.bindings[name];\n if (binding.kind === kind) ids[name] = binding;\n }\n scope = scope.parent;\n } while (scope);\n }\n\n return ids;\n }\n\n bindingIdentifierEquals(name: string, node: t.Node): boolean {\n return this.getBindingIdentifier(name) === node;\n }\n\n getBinding(name: string): Binding | undefined {\n let scope: Scope = this;\n let previousPath;\n\n do {\n const binding = scope.getOwnBinding(name);\n if (binding) {\n // Check if a pattern is a part of parameter expressions.\n // Note: for performance reason we skip checking previousPath.parentPath.isFunction()\n // because `scope.path` is validated as scope in packages/babel-types/src/validators/isScope.js\n // That is, if a scope path is pattern, its parent must be Function/CatchClause\n\n // Spec 9.2.10.28: The closure created by this expression should not have visibility of\n // declarations in the function body. If the binding is not a `param`-kind (as function parameters)\n // or `local`-kind (as id in function expression),\n // then it must be defined inside the function body, thus it should be skipped\n if (\n previousPath?.isPattern() &&\n binding.kind !== \"param\" &&\n binding.kind !== \"local\"\n ) {\n // do nothing\n } else {\n return binding;\n }\n } else if (\n !binding &&\n name === \"arguments\" &&\n scope.path.isFunction() &&\n !scope.path.isArrowFunctionExpression()\n ) {\n break;\n }\n previousPath = scope.path;\n } while ((scope = scope.parent));\n }\n\n getOwnBinding(name: string): Binding | undefined {\n return this.bindings[name];\n }\n\n // todo: return probably can be undefined…\n getBindingIdentifier(name: string): t.Identifier {\n return this.getBinding(name)?.identifier;\n }\n\n // todo: flow->ts return probably can be undefined\n getOwnBindingIdentifier(name: string): t.Identifier {\n const binding = this.bindings[name];\n return binding?.identifier;\n }\n\n hasOwnBinding(name: string) {\n return !!this.getOwnBinding(name);\n }\n\n // By default, we consider generated UIDs as bindings.\n // This is because they are almost always used to declare variables,\n // and since the scope isn't always up-to-date it's better to assume that\n // there is a variable with that name. The `noUids` option can be used to\n // turn off this behavior, for example if you know that the generate UID\n // was used to declare a variable in a different scope.\n hasBinding(\n name: string,\n opts?: boolean | { noGlobals?: boolean; noUids?: boolean },\n ) {\n if (!name) return false;\n if (this.hasOwnBinding(name)) return true;\n {\n // TODO: Only accept the object form.\n if (typeof opts === \"boolean\") opts = { noGlobals: opts };\n }\n if (this.parentHasBinding(name, opts)) return true;\n if (!opts?.noUids && this.hasUid(name)) return true;\n if (!opts?.noGlobals && Scope.globals.includes(name)) return true;\n if (!opts?.noGlobals && Scope.contextVariables.includes(name)) return true;\n return false;\n }\n\n parentHasBinding(\n name: string,\n opts?: { noGlobals?: boolean; noUids?: boolean },\n ) {\n return this.parent?.hasBinding(name, opts);\n }\n\n /**\n * Move a binding of `name` to another `scope`.\n */\n\n moveBindingTo(name: string, scope: Scope) {\n const info = this.getBinding(name);\n if (info) {\n info.scope.removeOwnBinding(name);\n info.scope = scope;\n scope.bindings[name] = info;\n }\n }\n\n removeOwnBinding(name: string) {\n delete this.bindings[name];\n }\n\n removeBinding(name: string) {\n // clear literal binding\n this.getBinding(name)?.scope.removeOwnBinding(name);\n\n // clear uids with this name - https://github.com/babel/babel/issues/2101\n let scope: Scope = this;\n do {\n if (scope.uids[name]) {\n scope.uids[name] = false;\n }\n } while ((scope = scope.parent));\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/lib/visitors.js b/node_modules/@babel/traverse/lib/visitors.js index a2b9d81d..cb06c80c 100644 --- a/node_modules/@babel/traverse/lib/visitors.js +++ b/node_modules/@babel/traverse/lib/visitors.js @@ -8,6 +8,7 @@ exports.isExplodedVisitor = isExplodedVisitor; exports.merge = merge; exports.verify = verify; var virtualTypes = require("./path/lib/virtual-types.js"); +var virtualTypesValidators = require("./path/lib/virtual-types-validator.js"); var _t = require("@babel/types"); const { DEPRECATED_KEYS, @@ -187,8 +188,10 @@ function ensureCallbackArrays(obj) { if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit]; } function wrapCheck(nodeType, fn) { + const fnKey = `is${nodeType}`; + const validator = virtualTypesValidators[fnKey]; const newFn = function (path) { - if (path[`is${nodeType}`]()) { + if (validator.call(path)) { return fn.apply(this, arguments); } }; diff --git a/node_modules/@babel/traverse/lib/visitors.js.map b/node_modules/@babel/traverse/lib/visitors.js.map index 5baf69e2..02983780 100644 --- a/node_modules/@babel/traverse/lib/visitors.js.map +++ b/node_modules/@babel/traverse/lib/visitors.js.map @@ -1 +1 @@ -{"version":3,"names":["virtualTypes","require","_t","DEPRECATED_KEYS","DEPRECATED_ALIASES","FLIPPED_ALIAS_KEYS","TYPES","__internal__deprecationWarning","deprecationWarning","isVirtualType","type","isExplodedVisitor","visitor","_exploded","explode","nodeType","Object","keys","shouldIgnoreKey","parts","split","length","fns","part","verify","__esModule","ensureEntranceObjects","ensureCallbackArrays","wrapCheck","types","mergePair","aliases","deprecatedKey","deprecatedAlias","alias","existing","assign","_verified","Error","validateVisitorMethods","indexOf","visitors","visitorKey","path","val","concat","fn","TypeError","merge","states","wrapper","mergedVisitor","i","state","topVisitor","wrapWithStateOrWrapper","key","typeVisitor","nodeVisitor","oldVisitor","newVisitor","phase","Array","isArray","map","newFn","call","toString","obj","enter","exit","apply","arguments","dest","src"],"sources":["../src/visitors.ts"],"sourcesContent":["import * as virtualTypes from \"./path/lib/virtual-types.ts\";\nimport type { Node } from \"@babel/types\";\nimport {\n DEPRECATED_KEYS,\n DEPRECATED_ALIASES,\n FLIPPED_ALIAS_KEYS,\n TYPES,\n __internal__deprecationWarning as deprecationWarning,\n} from \"@babel/types\";\nimport type { ExplodedVisitor, NodePath, Visitor } from \"./index.ts\";\nimport type { ExplVisitNode, VisitNodeFunction, VisitPhase } from \"./types.ts\";\n\ntype VIRTUAL_TYPES = keyof typeof virtualTypes;\nfunction isVirtualType(type: string): type is VIRTUAL_TYPES {\n return type in virtualTypes;\n}\nexport type VisitWrapper<S = any> = (\n stateName: string | undefined,\n visitorType: VisitPhase,\n callback: VisitNodeFunction<S, Node>,\n) => VisitNodeFunction<S, Node>;\n\nexport function isExplodedVisitor(\n visitor: Visitor,\n): visitor is ExplodedVisitor {\n // @ts-expect-error _exploded is not defined on non-exploded Visitor\n return visitor?._exploded;\n}\n\n/**\n * explode() will take a visitor object with all of the various shorthands\n * that we support, and validates & normalizes it into a common format, ready\n * to be used in traversal\n *\n * The various shorthands are:\n * * `Identifier() { ... }` -> `Identifier: { enter() { ... } }`\n * * `\"Identifier|NumericLiteral\": { ... }` -> `Identifier: { ... }, NumericLiteral: { ... }`\n * * Aliases in `@babel/types`: e.g. `Property: { ... }` -> `ObjectProperty: { ... }, ClassProperty: { ... }`\n * Other normalizations are:\n * * Visitors of virtual types are wrapped, so that they are only visited when\n * their dynamic check passes\n * * `enter` and `exit` functions are wrapped in arrays, to ease merging of\n * visitors\n */\nexport function explode<S>(visitor: Visitor<S>): ExplodedVisitor<S> {\n if (isExplodedVisitor(visitor)) return visitor;\n // @ts-expect-error `visitor` will be cast to ExplodedVisitor by this function\n visitor._exploded = true;\n\n // normalise pipes\n for (const nodeType of Object.keys(visitor) as (keyof Visitor)[]) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n const parts: Array<string> = nodeType.split(\"|\");\n if (parts.length === 1) continue;\n\n const fns = visitor[nodeType];\n delete visitor[nodeType];\n\n for (const part of parts) {\n // @ts-expect-error part will be verified by `verify` later\n visitor[part] = fns;\n }\n }\n\n // verify data structure\n verify(visitor);\n\n // make sure there's no __esModule type since this is because we're using loose mode\n // and it sets __esModule to be enumerable on all modules :(\n // @ts-expect-error ESModule interop\n delete visitor.__esModule;\n\n // ensure visitors are objects\n ensureEntranceObjects(visitor);\n\n // ensure enter/exit callbacks are arrays\n ensureCallbackArrays(visitor);\n\n // add type wrappers\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n if (!isVirtualType(nodeType)) continue;\n\n // wrap all the functions\n const fns = visitor[nodeType];\n for (const type of Object.keys(fns)) {\n // @ts-expect-error normalised as VisitNodeObject\n fns[type] = wrapCheck(nodeType, fns[type]);\n }\n\n // clear it from the visitor\n delete visitor[nodeType];\n\n const types = virtualTypes[nodeType];\n if (types !== null) {\n for (const type of types) {\n // merge the visitor if necessary or just put it back in\n if (visitor[type]) {\n mergePair(visitor[type], fns);\n } else {\n // @ts-expect-error Expression produces too complex union\n visitor[type] = fns;\n }\n }\n } else {\n mergePair(visitor, fns);\n }\n }\n\n // add aliases\n for (const nodeType of Object.keys(visitor) as (keyof Visitor)[]) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n let aliases = FLIPPED_ALIAS_KEYS[nodeType];\n\n if (nodeType in DEPRECATED_KEYS) {\n const deprecatedKey = DEPRECATED_KEYS[nodeType];\n deprecationWarning(nodeType, deprecatedKey, \"Visitor \");\n aliases = [deprecatedKey];\n } else if (nodeType in DEPRECATED_ALIASES) {\n const deprecatedAlias =\n DEPRECATED_ALIASES[nodeType as keyof typeof DEPRECATED_ALIASES];\n deprecationWarning(nodeType, deprecatedAlias, \"Visitor \");\n aliases = FLIPPED_ALIAS_KEYS[deprecatedAlias];\n }\n\n if (!aliases) continue;\n\n const fns = visitor[nodeType];\n // clear it from the visitor\n delete visitor[nodeType];\n\n for (const alias of aliases) {\n const existing = visitor[alias];\n if (existing) {\n mergePair(existing, fns);\n } else {\n // @ts-expect-error Expression produces a union type that is too complex to represent.\n visitor[alias] = { ...fns };\n }\n }\n }\n\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n ensureCallbackArrays(\n // @ts-expect-error nodeType must present in visitor after previous validations\n visitor[nodeType],\n );\n }\n\n // @ts-expect-error explosion has been performed\n return visitor as ExplodedVisitor;\n}\n\nexport function verify(visitor: Visitor) {\n // @ts-expect-error _verified is not defined on non-verified Visitor.\n // TODO: unify _verified and _exploded.\n if (visitor._verified) return;\n\n if (typeof visitor === \"function\") {\n throw new Error(\n \"You passed `traverse()` a function when it expected a visitor object, \" +\n \"are you sure you didn't mean `{ enter: Function }`?\",\n );\n }\n\n for (const nodeType of Object.keys(visitor) as (keyof Visitor)[]) {\n if (nodeType === \"enter\" || nodeType === \"exit\") {\n validateVisitorMethods(nodeType, visitor[nodeType]);\n }\n\n if (shouldIgnoreKey(nodeType)) continue;\n\n if (TYPES.indexOf(nodeType) < 0) {\n throw new Error(\n `You gave us a visitor for the node type ${nodeType} but it's not a valid type`,\n );\n }\n\n const visitors = visitor[nodeType];\n if (typeof visitors === \"object\") {\n for (const visitorKey of Object.keys(visitors)) {\n if (visitorKey === \"enter\" || visitorKey === \"exit\") {\n // verify that it just contains functions\n validateVisitorMethods(\n `${nodeType}.${visitorKey}`,\n visitors[visitorKey],\n );\n } else {\n throw new Error(\n \"You passed `traverse()` a visitor object with the property \" +\n `${nodeType} that has the invalid property ${visitorKey}`,\n );\n }\n }\n }\n }\n\n // @ts-expect-error _verified is not defined on non-verified Visitor.\n // TODO: unify _verified and _exploded.\n visitor._verified = true;\n}\n\nfunction validateVisitorMethods(\n path: string,\n val: any,\n): asserts val is Function | Function[] {\n const fns = [].concat(val);\n for (const fn of fns) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\n `Non-function found defined in ${path} with type ${typeof fn}`,\n );\n }\n }\n}\n\nexport function merge<State>(\n visitors: Visitor<State>[],\n): ExplodedVisitor<State>;\nexport function merge(\n visitors: Visitor<unknown>[],\n states?: any[],\n wrapper?: Function | null,\n): ExplodedVisitor<unknown>;\nexport function merge(\n visitors: any[],\n states: any[] = [],\n wrapper?: VisitWrapper | null,\n): ExplodedVisitor {\n // @ts-expect-error don't bother with internal flags so it can work with earlier @babel/core validations\n const mergedVisitor: ExplodedVisitor = {};\n\n for (let i = 0; i < visitors.length; i++) {\n const visitor = explode(visitors[i]);\n const state = states[i];\n\n let topVisitor: ExplVisitNode<unknown, Node> = visitor;\n if (state || wrapper) {\n topVisitor = wrapWithStateOrWrapper(topVisitor, state, wrapper);\n }\n mergePair(mergedVisitor, topVisitor);\n\n for (const key of Object.keys(visitor) as (keyof ExplodedVisitor)[]) {\n if (shouldIgnoreKey(key)) continue;\n\n let typeVisitor = visitor[key];\n\n // if we have state or wrapper then overload the callbacks to take it\n if (state || wrapper) {\n typeVisitor = wrapWithStateOrWrapper(typeVisitor, state, wrapper);\n }\n\n const nodeVisitor = (mergedVisitor[key] ||= {});\n mergePair(nodeVisitor, typeVisitor);\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return {\n ...mergedVisitor,\n _exploded: true,\n _verified: true,\n };\n }\n\n return mergedVisitor;\n}\n\nfunction wrapWithStateOrWrapper<State>(\n oldVisitor: ExplVisitNode<State, Node>,\n state: State | null,\n wrapper?: VisitWrapper<State> | null,\n): ExplVisitNode<State, Node> {\n const newVisitor: ExplVisitNode<State, Node> = {};\n\n for (const phase of [\"enter\", \"exit\"] as VisitPhase[]) {\n let fns = oldVisitor[phase];\n\n // not an enter/exit array of callbacks\n if (!Array.isArray(fns)) continue;\n\n fns = fns.map(function (fn) {\n let newFn = fn;\n\n if (state) {\n newFn = function (path: NodePath) {\n fn.call(state, path, state);\n };\n }\n\n if (wrapper) {\n // @ts-expect-error Fixme: actually PluginPass.key (aka pluginAlias)?\n newFn = wrapper(state?.key, phase, newFn);\n }\n\n // Override toString in case this function is printed, we want to print the wrapped function, same as we do in `wrapCheck`\n if (newFn !== fn) {\n newFn.toString = () => fn.toString();\n }\n\n return newFn;\n });\n\n newVisitor[phase] = fns;\n }\n\n return newVisitor;\n}\n\nfunction ensureEntranceObjects(obj: Visitor) {\n for (const key of Object.keys(obj) as (keyof Visitor)[]) {\n if (shouldIgnoreKey(key)) continue;\n\n const fns = obj[key];\n if (typeof fns === \"function\") {\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n obj[key] = { enter: fns };\n }\n }\n}\n\nfunction ensureCallbackArrays(obj: Visitor) {\n if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter];\n if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit];\n}\n\nfunction wrapCheck(nodeType: VIRTUAL_TYPES, fn: Function) {\n const newFn = function (this: unknown, path: NodePath) {\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n if (path[`is${nodeType}`]()) {\n return fn.apply(this, arguments);\n }\n };\n newFn.toString = () => fn.toString();\n return newFn;\n}\n\nfunction shouldIgnoreKey(\n key: string,\n): key is\n | `_${string}`\n | \"enter\"\n | \"exit\"\n | \"shouldSkip\"\n | \"denylist\"\n | \"noScope\"\n | \"skipKeys\"\n | \"blacklist\" {\n // internal/hidden key\n if (key[0] === \"_\") return true;\n\n // ignore function keys\n if (key === \"enter\" || key === \"exit\" || key === \"shouldSkip\") return true;\n\n // ignore other options\n if (key === \"denylist\" || key === \"noScope\" || key === \"skipKeys\") {\n return true;\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n if (key === \"blacklist\") {\n return true;\n }\n }\n\n return false;\n}\n\n/*\nfunction mergePair(\n dest: ExplVisitNode<unknown, Node>,\n src: ExplVisitNode<unknown, Node>,\n);\n*/\nfunction mergePair(dest: any, src: any) {\n for (const phase of [\"enter\", \"exit\"] as VisitPhase[]) {\n if (!src[phase]) continue;\n dest[phase] = [].concat(dest[phase] || [], src[phase]);\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["virtualTypes","require","virtualTypesValidators","_t","DEPRECATED_KEYS","DEPRECATED_ALIASES","FLIPPED_ALIAS_KEYS","TYPES","__internal__deprecationWarning","deprecationWarning","isVirtualType","type","isExplodedVisitor","visitor","_exploded","explode","nodeType","Object","keys","shouldIgnoreKey","parts","split","length","fns","part","verify","__esModule","ensureEntranceObjects","ensureCallbackArrays","wrapCheck","types","mergePair","aliases","deprecatedKey","deprecatedAlias","alias","existing","assign","_verified","Error","validateVisitorMethods","indexOf","visitors","visitorKey","path","val","concat","fn","TypeError","merge","states","wrapper","mergedVisitor","i","state","topVisitor","wrapWithStateOrWrapper","key","typeVisitor","nodeVisitor","oldVisitor","newVisitor","phase","Array","isArray","map","newFn","call","toString","obj","enter","exit","fnKey","validator","apply","arguments","dest","src"],"sources":["../src/visitors.ts"],"sourcesContent":["import * as virtualTypes from \"./path/lib/virtual-types.ts\";\nimport * as virtualTypesValidators from \"./path/lib/virtual-types-validator.ts\";\nimport type { Node } from \"@babel/types\";\nimport {\n DEPRECATED_KEYS,\n DEPRECATED_ALIASES,\n FLIPPED_ALIAS_KEYS,\n TYPES,\n __internal__deprecationWarning as deprecationWarning,\n} from \"@babel/types\";\nimport type { ExplodedVisitor, NodePath, Visitor } from \"./index.ts\";\nimport type { ExplVisitNode, VisitNodeFunction, VisitPhase } from \"./types.ts\";\n\ntype VIRTUAL_TYPES = keyof typeof virtualTypes;\nfunction isVirtualType(type: string): type is VIRTUAL_TYPES {\n return type in virtualTypes;\n}\nexport type VisitWrapper<S = any> = (\n stateName: string | undefined,\n visitorType: VisitPhase,\n callback: VisitNodeFunction<S, Node>,\n) => VisitNodeFunction<S, Node>;\n\nexport function isExplodedVisitor(\n visitor: Visitor,\n): visitor is ExplodedVisitor {\n // @ts-expect-error _exploded is not defined on non-exploded Visitor\n return visitor?._exploded;\n}\n\n/**\n * explode() will take a visitor object with all of the various shorthands\n * that we support, and validates & normalizes it into a common format, ready\n * to be used in traversal\n *\n * The various shorthands are:\n * * `Identifier() { ... }` -> `Identifier: { enter() { ... } }`\n * * `\"Identifier|NumericLiteral\": { ... }` -> `Identifier: { ... }, NumericLiteral: { ... }`\n * * Aliases in `@babel/types`: e.g. `Property: { ... }` -> `ObjectProperty: { ... }, ClassProperty: { ... }`\n * Other normalizations are:\n * * Visitors of virtual types are wrapped, so that they are only visited when\n * their dynamic check passes\n * * `enter` and `exit` functions are wrapped in arrays, to ease merging of\n * visitors\n */\nexport function explode<S>(visitor: Visitor<S>): ExplodedVisitor<S> {\n if (isExplodedVisitor(visitor)) return visitor;\n // @ts-expect-error `visitor` will be cast to ExplodedVisitor by this function\n visitor._exploded = true;\n\n // normalise pipes\n for (const nodeType of Object.keys(visitor) as (keyof Visitor)[]) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n const parts: Array<string> = nodeType.split(\"|\");\n if (parts.length === 1) continue;\n\n const fns = visitor[nodeType];\n delete visitor[nodeType];\n\n for (const part of parts) {\n // @ts-expect-error part will be verified by `verify` later\n visitor[part] = fns;\n }\n }\n\n // verify data structure\n verify(visitor);\n\n // make sure there's no __esModule type since this is because we're using loose mode\n // and it sets __esModule to be enumerable on all modules :(\n // @ts-expect-error ESModule interop\n delete visitor.__esModule;\n\n // ensure visitors are objects\n ensureEntranceObjects(visitor);\n\n // ensure enter/exit callbacks are arrays\n ensureCallbackArrays(visitor);\n\n // add type wrappers\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n if (!isVirtualType(nodeType)) continue;\n\n // wrap all the functions\n const fns = visitor[nodeType];\n for (const type of Object.keys(fns)) {\n // @ts-expect-error normalised as VisitNodeObject\n fns[type] = wrapCheck(nodeType, fns[type]);\n }\n\n // clear it from the visitor\n delete visitor[nodeType];\n\n const types = virtualTypes[nodeType];\n if (types !== null) {\n for (const type of types) {\n // merge the visitor if necessary or just put it back in\n if (visitor[type]) {\n mergePair(visitor[type], fns);\n } else {\n // @ts-expect-error Expression produces too complex union\n visitor[type] = fns;\n }\n }\n } else {\n mergePair(visitor, fns);\n }\n }\n\n // add aliases\n for (const nodeType of Object.keys(visitor) as (keyof Visitor)[]) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n let aliases = FLIPPED_ALIAS_KEYS[nodeType];\n\n if (nodeType in DEPRECATED_KEYS) {\n const deprecatedKey = DEPRECATED_KEYS[nodeType];\n deprecationWarning(nodeType, deprecatedKey, \"Visitor \");\n aliases = [deprecatedKey];\n } else if (nodeType in DEPRECATED_ALIASES) {\n const deprecatedAlias =\n DEPRECATED_ALIASES[nodeType as keyof typeof DEPRECATED_ALIASES];\n deprecationWarning(nodeType, deprecatedAlias, \"Visitor \");\n aliases = FLIPPED_ALIAS_KEYS[deprecatedAlias];\n }\n\n if (!aliases) continue;\n\n const fns = visitor[nodeType];\n // clear it from the visitor\n delete visitor[nodeType];\n\n for (const alias of aliases) {\n const existing = visitor[alias];\n if (existing) {\n mergePair(existing, fns);\n } else {\n // @ts-expect-error Expression produces a union type that is too complex to represent.\n visitor[alias] = { ...fns };\n }\n }\n }\n\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n ensureCallbackArrays(\n // @ts-expect-error nodeType must present in visitor after previous validations\n visitor[nodeType],\n );\n }\n\n // @ts-expect-error explosion has been performed\n return visitor as ExplodedVisitor;\n}\n\nexport function verify(visitor: Visitor) {\n // @ts-expect-error _verified is not defined on non-verified Visitor.\n // TODO: unify _verified and _exploded.\n if (visitor._verified) return;\n\n if (typeof visitor === \"function\") {\n throw new Error(\n \"You passed `traverse()` a function when it expected a visitor object, \" +\n \"are you sure you didn't mean `{ enter: Function }`?\",\n );\n }\n\n for (const nodeType of Object.keys(visitor) as (keyof Visitor)[]) {\n if (nodeType === \"enter\" || nodeType === \"exit\") {\n validateVisitorMethods(nodeType, visitor[nodeType]);\n }\n\n if (shouldIgnoreKey(nodeType)) continue;\n\n if (TYPES.indexOf(nodeType) < 0) {\n throw new Error(\n `You gave us a visitor for the node type ${nodeType} but it's not a valid type`,\n );\n }\n\n const visitors = visitor[nodeType];\n if (typeof visitors === \"object\") {\n for (const visitorKey of Object.keys(visitors)) {\n if (visitorKey === \"enter\" || visitorKey === \"exit\") {\n // verify that it just contains functions\n validateVisitorMethods(\n `${nodeType}.${visitorKey}`,\n visitors[visitorKey],\n );\n } else {\n throw new Error(\n \"You passed `traverse()` a visitor object with the property \" +\n `${nodeType} that has the invalid property ${visitorKey}`,\n );\n }\n }\n }\n }\n\n // @ts-expect-error _verified is not defined on non-verified Visitor.\n // TODO: unify _verified and _exploded.\n visitor._verified = true;\n}\n\nfunction validateVisitorMethods(\n path: string,\n val: any,\n): asserts val is Function | Function[] {\n const fns = [].concat(val);\n for (const fn of fns) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\n `Non-function found defined in ${path} with type ${typeof fn}`,\n );\n }\n }\n}\n\nexport function merge<State>(\n visitors: Visitor<State>[],\n): ExplodedVisitor<State>;\nexport function merge(\n visitors: Visitor<unknown>[],\n states?: any[],\n wrapper?: Function | null,\n): ExplodedVisitor<unknown>;\nexport function merge(\n visitors: any[],\n states: any[] = [],\n wrapper?: VisitWrapper | null,\n): ExplodedVisitor {\n // @ts-expect-error don't bother with internal flags so it can work with earlier @babel/core validations\n const mergedVisitor: ExplodedVisitor = {};\n\n for (let i = 0; i < visitors.length; i++) {\n const visitor = explode(visitors[i]);\n const state = states[i];\n\n let topVisitor: ExplVisitNode<unknown, Node> = visitor;\n if (state || wrapper) {\n topVisitor = wrapWithStateOrWrapper(topVisitor, state, wrapper);\n }\n mergePair(mergedVisitor, topVisitor);\n\n for (const key of Object.keys(visitor) as (keyof ExplodedVisitor)[]) {\n if (shouldIgnoreKey(key)) continue;\n\n let typeVisitor = visitor[key];\n\n // if we have state or wrapper then overload the callbacks to take it\n if (state || wrapper) {\n typeVisitor = wrapWithStateOrWrapper(typeVisitor, state, wrapper);\n }\n\n const nodeVisitor = (mergedVisitor[key] ||= {});\n mergePair(nodeVisitor, typeVisitor);\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return {\n ...mergedVisitor,\n _exploded: true,\n _verified: true,\n };\n }\n\n return mergedVisitor;\n}\n\nfunction wrapWithStateOrWrapper<State>(\n oldVisitor: ExplVisitNode<State, Node>,\n state: State | null,\n wrapper?: VisitWrapper<State> | null,\n): ExplVisitNode<State, Node> {\n const newVisitor: ExplVisitNode<State, Node> = {};\n\n for (const phase of [\"enter\", \"exit\"] as VisitPhase[]) {\n let fns = oldVisitor[phase];\n\n // not an enter/exit array of callbacks\n if (!Array.isArray(fns)) continue;\n\n fns = fns.map(function (fn) {\n let newFn = fn;\n\n if (state) {\n newFn = function (path: NodePath) {\n fn.call(state, path, state);\n };\n }\n\n if (wrapper) {\n // @ts-expect-error Fixme: actually PluginPass.key (aka pluginAlias)?\n newFn = wrapper(state?.key, phase, newFn);\n }\n\n // Override toString in case this function is printed, we want to print the wrapped function, same as we do in `wrapCheck`\n if (newFn !== fn) {\n newFn.toString = () => fn.toString();\n }\n\n return newFn;\n });\n\n newVisitor[phase] = fns;\n }\n\n return newVisitor;\n}\n\nfunction ensureEntranceObjects(obj: Visitor) {\n for (const key of Object.keys(obj) as (keyof Visitor)[]) {\n if (shouldIgnoreKey(key)) continue;\n\n const fns = obj[key];\n if (typeof fns === \"function\") {\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n obj[key] = { enter: fns };\n }\n }\n}\n\nfunction ensureCallbackArrays(obj: Visitor) {\n if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter];\n if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit];\n}\n\nfunction wrapCheck(nodeType: VIRTUAL_TYPES, fn: Function) {\n const fnKey = `is${nodeType}`;\n // @ts-expect-error we know virtualTypesValidators will contain `fnKey`, but TS doesn't\n const validator = virtualTypesValidators[fnKey];\n const newFn = function (this: unknown, path: NodePath) {\n if (validator.call(path)) {\n return fn.apply(this, arguments);\n }\n };\n newFn.toString = () => fn.toString();\n return newFn;\n}\n\nfunction shouldIgnoreKey(\n key: string,\n): key is\n | `_${string}`\n | \"enter\"\n | \"exit\"\n | \"shouldSkip\"\n | \"denylist\"\n | \"noScope\"\n | \"skipKeys\"\n | \"blacklist\" {\n // internal/hidden key\n if (key[0] === \"_\") return true;\n\n // ignore function keys\n if (key === \"enter\" || key === \"exit\" || key === \"shouldSkip\") return true;\n\n // ignore other options\n if (key === \"denylist\" || key === \"noScope\" || key === \"skipKeys\") {\n return true;\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n if (key === \"blacklist\") {\n return true;\n }\n }\n\n return false;\n}\n\n/*\nfunction mergePair(\n dest: ExplVisitNode<unknown, Node>,\n src: ExplVisitNode<unknown, Node>,\n);\n*/\nfunction mergePair(dest: any, src: any) {\n for (const phase of [\"enter\", \"exit\"] as VisitPhase[]) {\n if (!src[phase]) continue;\n dest[phase] = [].concat(dest[phase] || [], src[phase]);\n }\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/traverse/package.json b/node_modules/@babel/traverse/package.json index a80ac80f..6067dc81 100644 --- a/node_modules/@babel/traverse/package.json +++ b/node_modules/@babel/traverse/package.json @@ -1,6 +1,6 @@ { "name": "@babel/traverse", - "version": "7.23.2", + "version": "7.23.6", "description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-traverse", @@ -16,19 +16,19 @@ }, "main": "./lib/index.js", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/generator": "^7.23.0", + "@babel/code-frame": "^7.23.5", + "@babel/generator": "^7.23.6", "@babel/helper-environment-visitor": "^7.22.20", "@babel/helper-function-name": "^7.23.0", "@babel/helper-hoist-variables": "^7.22.5", "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.0", - "@babel/types": "^7.23.0", - "debug": "^4.1.0", + "@babel/parser": "^7.23.6", + "@babel/types": "^7.23.6", + "debug": "^4.3.1", "globals": "^11.1.0" }, "devDependencies": { - "@babel/core": "^7.23.0", + "@babel/core": "^7.23.6", "@babel/helper-plugin-test-runner": "^7.22.5" }, "engines": { diff --git a/node_modules/@babel/types/lib/ast-types/generated/index.js.map b/node_modules/@babel/types/lib/ast-types/generated/index.js.map index c34c9020..ba7ec3de 100644 --- a/node_modules/@babel/types/lib/ast-types/generated/index.js.map +++ b/node_modules/@babel/types/lib/ast-types/generated/index.js.map @@ -1 +1 @@ -{"version":3,"names":[],"sources":["../../../src/ast-types/generated/index.ts"],"sourcesContent":["// NOTE: This file is autogenerated. Do not modify.\n// See packages/babel-types/scripts/generators/ast-types.js for script used.\n\ninterface BaseComment {\n value: string;\n start?: number;\n end?: number;\n loc?: SourceLocation;\n // generator will skip the comment if ignore is true\n ignore?: boolean;\n type: \"CommentBlock\" | \"CommentLine\";\n}\n\ninterface Position {\n line: number;\n column: number;\n index: number;\n}\n\nexport interface CommentBlock extends BaseComment {\n type: \"CommentBlock\";\n}\n\nexport interface CommentLine extends BaseComment {\n type: \"CommentLine\";\n}\n\nexport type Comment = CommentBlock | CommentLine;\n\nexport interface SourceLocation {\n start: Position;\n end: Position;\n filename: string;\n identifierName: string | undefined | null;\n}\n\ninterface BaseNode {\n type: Node[\"type\"];\n leadingComments?: Comment[] | null;\n innerComments?: Comment[] | null;\n trailingComments?: Comment[] | null;\n start?: number | null;\n end?: number | null;\n loc?: SourceLocation | null;\n range?: [number, number];\n extra?: Record<string, unknown>;\n}\n\nexport type CommentTypeShorthand = \"leading\" | \"inner\" | \"trailing\";\n\nexport type Node =\n | AnyTypeAnnotation\n | ArgumentPlaceholder\n | ArrayExpression\n | ArrayPattern\n | ArrayTypeAnnotation\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BigIntLiteral\n | BinaryExpression\n | BindExpression\n | BlockStatement\n | BooleanLiteral\n | BooleanLiteralTypeAnnotation\n | BooleanTypeAnnotation\n | BreakStatement\n | CallExpression\n | CatchClause\n | ClassAccessorProperty\n | ClassBody\n | ClassDeclaration\n | ClassExpression\n | ClassImplements\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | ContinueStatement\n | DebuggerStatement\n | DecimalLiteral\n | DeclareClass\n | DeclareExportAllDeclaration\n | DeclareExportDeclaration\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclareVariable\n | DeclaredPredicate\n | Decorator\n | Directive\n | DirectiveLiteral\n | DoExpression\n | DoWhileStatement\n | EmptyStatement\n | EmptyTypeAnnotation\n | EnumBooleanBody\n | EnumBooleanMember\n | EnumDeclaration\n | EnumDefaultedMember\n | EnumNumberBody\n | EnumNumberMember\n | EnumStringBody\n | EnumStringMember\n | EnumSymbolBody\n | ExistsTypeAnnotation\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportDefaultSpecifier\n | ExportNamedDeclaration\n | ExportNamespaceSpecifier\n | ExportSpecifier\n | ExpressionStatement\n | File\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | GenericTypeAnnotation\n | Identifier\n | IfStatement\n | Import\n | ImportAttribute\n | ImportDeclaration\n | ImportDefaultSpecifier\n | ImportExpression\n | ImportNamespaceSpecifier\n | ImportSpecifier\n | IndexedAccessType\n | InferredPredicate\n | InterfaceDeclaration\n | InterfaceExtends\n | InterfaceTypeAnnotation\n | InterpreterDirective\n | IntersectionTypeAnnotation\n | JSXAttribute\n | JSXClosingElement\n | JSXClosingFragment\n | JSXElement\n | JSXEmptyExpression\n | JSXExpressionContainer\n | JSXFragment\n | JSXIdentifier\n | JSXMemberExpression\n | JSXNamespacedName\n | JSXOpeningElement\n | JSXOpeningFragment\n | JSXSpreadAttribute\n | JSXSpreadChild\n | JSXText\n | LabeledStatement\n | LogicalExpression\n | MemberExpression\n | MetaProperty\n | MixedTypeAnnotation\n | ModuleExpression\n | NewExpression\n | Noop\n | NullLiteral\n | NullLiteralTypeAnnotation\n | NullableTypeAnnotation\n | NumberLiteral\n | NumberLiteralTypeAnnotation\n | NumberTypeAnnotation\n | NumericLiteral\n | ObjectExpression\n | ObjectMethod\n | ObjectPattern\n | ObjectProperty\n | ObjectTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalCallExpression\n | OptionalIndexedAccessType\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelinePrimaryTopicReference\n | PipelineTopicExpression\n | Placeholder\n | PrivateName\n | Program\n | QualifiedTypeIdentifier\n | RecordExpression\n | RegExpLiteral\n | RegexLiteral\n | RestElement\n | RestProperty\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SpreadProperty\n | StaticBlock\n | StringLiteral\n | StringLiteralTypeAnnotation\n | StringTypeAnnotation\n | Super\n | SwitchCase\n | SwitchStatement\n | SymbolTypeAnnotation\n | TSAnyKeyword\n | TSArrayType\n | TSAsExpression\n | TSBigIntKeyword\n | TSBooleanKeyword\n | TSCallSignatureDeclaration\n | TSConditionalType\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSExpressionWithTypeArguments\n | TSExternalModuleReference\n | TSFunctionType\n | TSImportEqualsDeclaration\n | TSImportType\n | TSIndexSignature\n | TSIndexedAccessType\n | TSInferType\n | TSInstantiationExpression\n | TSInterfaceBody\n | TSInterfaceDeclaration\n | TSIntersectionType\n | TSIntrinsicKeyword\n | TSLiteralType\n | TSMappedType\n | TSMethodSignature\n | TSModuleBlock\n | TSModuleDeclaration\n | TSNamedTupleMember\n | TSNamespaceExportDeclaration\n | TSNeverKeyword\n | TSNonNullExpression\n | TSNullKeyword\n | TSNumberKeyword\n | TSObjectKeyword\n | TSOptionalType\n | TSParameterProperty\n | TSParenthesizedType\n | TSPropertySignature\n | TSQualifiedName\n | TSRestType\n | TSSatisfiesExpression\n | TSStringKeyword\n | TSSymbolKeyword\n | TSThisType\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeLiteral\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterDeclaration\n | TSTypeParameterInstantiation\n | TSTypePredicate\n | TSTypeQuery\n | TSTypeReference\n | TSUndefinedKeyword\n | TSUnionType\n | TSUnknownKeyword\n | TSVoidKeyword\n | TaggedTemplateExpression\n | TemplateElement\n | TemplateLiteral\n | ThisExpression\n | ThisTypeAnnotation\n | ThrowStatement\n | TopicReference\n | TryStatement\n | TupleExpression\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeCastExpression\n | TypeParameter\n | TypeParameterDeclaration\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnaryExpression\n | UnionTypeAnnotation\n | UpdateExpression\n | V8IntrinsicIdentifier\n | VariableDeclaration\n | VariableDeclarator\n | Variance\n | VoidTypeAnnotation\n | WhileStatement\n | WithStatement\n | YieldExpression;\n\nexport interface ArrayExpression extends BaseNode {\n type: \"ArrayExpression\";\n elements: Array<null | Expression | SpreadElement>;\n}\n\nexport interface AssignmentExpression extends BaseNode {\n type: \"AssignmentExpression\";\n operator: string;\n left: LVal | OptionalMemberExpression;\n right: Expression;\n}\n\nexport interface BinaryExpression extends BaseNode {\n type: \"BinaryExpression\";\n operator:\n | \"+\"\n | \"-\"\n | \"/\"\n | \"%\"\n | \"*\"\n | \"**\"\n | \"&\"\n | \"|\"\n | \">>\"\n | \">>>\"\n | \"<<\"\n | \"^\"\n | \"==\"\n | \"===\"\n | \"!=\"\n | \"!==\"\n | \"in\"\n | \"instanceof\"\n | \">\"\n | \"<\"\n | \">=\"\n | \"<=\"\n | \"|>\";\n left: Expression | PrivateName;\n right: Expression;\n}\n\nexport interface InterpreterDirective extends BaseNode {\n type: \"InterpreterDirective\";\n value: string;\n}\n\nexport interface Directive extends BaseNode {\n type: \"Directive\";\n value: DirectiveLiteral;\n}\n\nexport interface DirectiveLiteral extends BaseNode {\n type: \"DirectiveLiteral\";\n value: string;\n}\n\nexport interface BlockStatement extends BaseNode {\n type: \"BlockStatement\";\n body: Array<Statement>;\n directives: Array<Directive>;\n}\n\nexport interface BreakStatement extends BaseNode {\n type: \"BreakStatement\";\n label?: Identifier | null;\n}\n\nexport interface CallExpression extends BaseNode {\n type: \"CallExpression\";\n callee: Expression | Super | V8IntrinsicIdentifier;\n arguments: Array<\n Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder\n >;\n optional?: true | false | null;\n typeArguments?: TypeParameterInstantiation | null;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface CatchClause extends BaseNode {\n type: \"CatchClause\";\n param?: Identifier | ArrayPattern | ObjectPattern | null;\n body: BlockStatement;\n}\n\nexport interface ConditionalExpression extends BaseNode {\n type: \"ConditionalExpression\";\n test: Expression;\n consequent: Expression;\n alternate: Expression;\n}\n\nexport interface ContinueStatement extends BaseNode {\n type: \"ContinueStatement\";\n label?: Identifier | null;\n}\n\nexport interface DebuggerStatement extends BaseNode {\n type: \"DebuggerStatement\";\n}\n\nexport interface DoWhileStatement extends BaseNode {\n type: \"DoWhileStatement\";\n test: Expression;\n body: Statement;\n}\n\nexport interface EmptyStatement extends BaseNode {\n type: \"EmptyStatement\";\n}\n\nexport interface ExpressionStatement extends BaseNode {\n type: \"ExpressionStatement\";\n expression: Expression;\n}\n\nexport interface File extends BaseNode {\n type: \"File\";\n program: Program;\n comments?: Array<CommentBlock | CommentLine> | null;\n tokens?: Array<any> | null;\n}\n\nexport interface ForInStatement extends BaseNode {\n type: \"ForInStatement\";\n left: VariableDeclaration | LVal;\n right: Expression;\n body: Statement;\n}\n\nexport interface ForStatement extends BaseNode {\n type: \"ForStatement\";\n init?: VariableDeclaration | Expression | null;\n test?: Expression | null;\n update?: Expression | null;\n body: Statement;\n}\n\nexport interface FunctionDeclaration extends BaseNode {\n type: \"FunctionDeclaration\";\n id?: Identifier | null;\n params: Array<Identifier | Pattern | RestElement>;\n body: BlockStatement;\n generator: boolean;\n async: boolean;\n declare?: boolean | null;\n predicate?: DeclaredPredicate | InferredPredicate | null;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface FunctionExpression extends BaseNode {\n type: \"FunctionExpression\";\n id?: Identifier | null;\n params: Array<Identifier | Pattern | RestElement>;\n body: BlockStatement;\n generator: boolean;\n async: boolean;\n predicate?: DeclaredPredicate | InferredPredicate | null;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface Identifier extends BaseNode {\n type: \"Identifier\";\n name: string;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface IfStatement extends BaseNode {\n type: \"IfStatement\";\n test: Expression;\n consequent: Statement;\n alternate?: Statement | null;\n}\n\nexport interface LabeledStatement extends BaseNode {\n type: \"LabeledStatement\";\n label: Identifier;\n body: Statement;\n}\n\nexport interface StringLiteral extends BaseNode {\n type: \"StringLiteral\";\n value: string;\n}\n\nexport interface NumericLiteral extends BaseNode {\n type: \"NumericLiteral\";\n value: number;\n}\n\n/**\n * @deprecated Use `NumericLiteral`\n */\nexport interface NumberLiteral extends BaseNode {\n type: \"NumberLiteral\";\n value: number;\n}\n\nexport interface NullLiteral extends BaseNode {\n type: \"NullLiteral\";\n}\n\nexport interface BooleanLiteral extends BaseNode {\n type: \"BooleanLiteral\";\n value: boolean;\n}\n\nexport interface RegExpLiteral extends BaseNode {\n type: \"RegExpLiteral\";\n pattern: string;\n flags: string;\n}\n\n/**\n * @deprecated Use `RegExpLiteral`\n */\nexport interface RegexLiteral extends BaseNode {\n type: \"RegexLiteral\";\n pattern: string;\n flags: string;\n}\n\nexport interface LogicalExpression extends BaseNode {\n type: \"LogicalExpression\";\n operator: \"||\" | \"&&\" | \"??\";\n left: Expression;\n right: Expression;\n}\n\nexport interface MemberExpression extends BaseNode {\n type: \"MemberExpression\";\n object: Expression | Super;\n property: Expression | Identifier | PrivateName;\n computed: boolean;\n optional?: true | false | null;\n}\n\nexport interface NewExpression extends BaseNode {\n type: \"NewExpression\";\n callee: Expression | Super | V8IntrinsicIdentifier;\n arguments: Array<\n Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder\n >;\n optional?: true | false | null;\n typeArguments?: TypeParameterInstantiation | null;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface Program extends BaseNode {\n type: \"Program\";\n body: Array<Statement>;\n directives: Array<Directive>;\n sourceType: \"script\" | \"module\";\n interpreter?: InterpreterDirective | null;\n sourceFile: string;\n}\n\nexport interface ObjectExpression extends BaseNode {\n type: \"ObjectExpression\";\n properties: Array<ObjectMethod | ObjectProperty | SpreadElement>;\n}\n\nexport interface ObjectMethod extends BaseNode {\n type: \"ObjectMethod\";\n kind: \"method\" | \"get\" | \"set\";\n key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral;\n params: Array<Identifier | Pattern | RestElement>;\n body: BlockStatement;\n computed: boolean;\n generator: boolean;\n async: boolean;\n decorators?: Array<Decorator> | null;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ObjectProperty extends BaseNode {\n type: \"ObjectProperty\";\n key:\n | Expression\n | Identifier\n | StringLiteral\n | NumericLiteral\n | BigIntLiteral\n | DecimalLiteral\n | PrivateName;\n value: Expression | PatternLike;\n computed: boolean;\n shorthand: boolean;\n decorators?: Array<Decorator> | null;\n}\n\nexport interface RestElement extends BaseNode {\n type: \"RestElement\";\n argument: LVal;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\n/**\n * @deprecated Use `RestElement`\n */\nexport interface RestProperty extends BaseNode {\n type: \"RestProperty\";\n argument: LVal;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface ReturnStatement extends BaseNode {\n type: \"ReturnStatement\";\n argument?: Expression | null;\n}\n\nexport interface SequenceExpression extends BaseNode {\n type: \"SequenceExpression\";\n expressions: Array<Expression>;\n}\n\nexport interface ParenthesizedExpression extends BaseNode {\n type: \"ParenthesizedExpression\";\n expression: Expression;\n}\n\nexport interface SwitchCase extends BaseNode {\n type: \"SwitchCase\";\n test?: Expression | null;\n consequent: Array<Statement>;\n}\n\nexport interface SwitchStatement extends BaseNode {\n type: \"SwitchStatement\";\n discriminant: Expression;\n cases: Array<SwitchCase>;\n}\n\nexport interface ThisExpression extends BaseNode {\n type: \"ThisExpression\";\n}\n\nexport interface ThrowStatement extends BaseNode {\n type: \"ThrowStatement\";\n argument: Expression;\n}\n\nexport interface TryStatement extends BaseNode {\n type: \"TryStatement\";\n block: BlockStatement;\n handler?: CatchClause | null;\n finalizer?: BlockStatement | null;\n}\n\nexport interface UnaryExpression extends BaseNode {\n type: \"UnaryExpression\";\n operator: \"void\" | \"throw\" | \"delete\" | \"!\" | \"+\" | \"-\" | \"~\" | \"typeof\";\n argument: Expression;\n prefix: boolean;\n}\n\nexport interface UpdateExpression extends BaseNode {\n type: \"UpdateExpression\";\n operator: \"++\" | \"--\";\n argument: Expression;\n prefix: boolean;\n}\n\nexport interface VariableDeclaration extends BaseNode {\n type: \"VariableDeclaration\";\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\";\n declarations: Array<VariableDeclarator>;\n declare?: boolean | null;\n}\n\nexport interface VariableDeclarator extends BaseNode {\n type: \"VariableDeclarator\";\n id: LVal;\n init?: Expression | null;\n definite?: boolean | null;\n}\n\nexport interface WhileStatement extends BaseNode {\n type: \"WhileStatement\";\n test: Expression;\n body: Statement;\n}\n\nexport interface WithStatement extends BaseNode {\n type: \"WithStatement\";\n object: Expression;\n body: Statement;\n}\n\nexport interface AssignmentPattern extends BaseNode {\n type: \"AssignmentPattern\";\n left:\n | Identifier\n | ObjectPattern\n | ArrayPattern\n | MemberExpression\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSNonNullExpression;\n right: Expression;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface ArrayPattern extends BaseNode {\n type: \"ArrayPattern\";\n elements: Array<null | PatternLike | LVal>;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface ArrowFunctionExpression extends BaseNode {\n type: \"ArrowFunctionExpression\";\n params: Array<Identifier | Pattern | RestElement>;\n body: BlockStatement | Expression;\n async: boolean;\n expression: boolean;\n generator?: boolean;\n predicate?: DeclaredPredicate | InferredPredicate | null;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ClassBody extends BaseNode {\n type: \"ClassBody\";\n body: Array<\n | ClassMethod\n | ClassPrivateMethod\n | ClassProperty\n | ClassPrivateProperty\n | ClassAccessorProperty\n | TSDeclareMethod\n | TSIndexSignature\n | StaticBlock\n >;\n}\n\nexport interface ClassExpression extends BaseNode {\n type: \"ClassExpression\";\n id?: Identifier | null;\n superClass?: Expression | null;\n body: ClassBody;\n decorators?: Array<Decorator> | null;\n implements?: Array<TSExpressionWithTypeArguments | ClassImplements> | null;\n mixins?: InterfaceExtends | null;\n superTypeParameters?:\n | TypeParameterInstantiation\n | TSTypeParameterInstantiation\n | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ClassDeclaration extends BaseNode {\n type: \"ClassDeclaration\";\n id?: Identifier | null;\n superClass?: Expression | null;\n body: ClassBody;\n decorators?: Array<Decorator> | null;\n abstract?: boolean | null;\n declare?: boolean | null;\n implements?: Array<TSExpressionWithTypeArguments | ClassImplements> | null;\n mixins?: InterfaceExtends | null;\n superTypeParameters?:\n | TypeParameterInstantiation\n | TSTypeParameterInstantiation\n | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ExportAllDeclaration extends BaseNode {\n type: \"ExportAllDeclaration\";\n source: StringLiteral;\n assertions?: Array<ImportAttribute> | null;\n attributes?: Array<ImportAttribute> | null;\n exportKind?: \"type\" | \"value\" | null;\n}\n\nexport interface ExportDefaultDeclaration extends BaseNode {\n type: \"ExportDefaultDeclaration\";\n declaration:\n | TSDeclareFunction\n | FunctionDeclaration\n | ClassDeclaration\n | Expression;\n exportKind?: \"value\" | null;\n}\n\nexport interface ExportNamedDeclaration extends BaseNode {\n type: \"ExportNamedDeclaration\";\n declaration?: Declaration | null;\n specifiers: Array<\n ExportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier\n >;\n source?: StringLiteral | null;\n assertions?: Array<ImportAttribute> | null;\n attributes?: Array<ImportAttribute> | null;\n exportKind?: \"type\" | \"value\" | null;\n}\n\nexport interface ExportSpecifier extends BaseNode {\n type: \"ExportSpecifier\";\n local: Identifier;\n exported: Identifier | StringLiteral;\n exportKind?: \"type\" | \"value\" | null;\n}\n\nexport interface ForOfStatement extends BaseNode {\n type: \"ForOfStatement\";\n left: VariableDeclaration | LVal;\n right: Expression;\n body: Statement;\n await: boolean;\n}\n\nexport interface ImportDeclaration extends BaseNode {\n type: \"ImportDeclaration\";\n specifiers: Array<\n ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier\n >;\n source: StringLiteral;\n assertions?: Array<ImportAttribute> | null;\n attributes?: Array<ImportAttribute> | null;\n importKind?: \"type\" | \"typeof\" | \"value\" | null;\n module?: boolean | null;\n phase?: \"source\" | \"defer\" | null;\n}\n\nexport interface ImportDefaultSpecifier extends BaseNode {\n type: \"ImportDefaultSpecifier\";\n local: Identifier;\n}\n\nexport interface ImportNamespaceSpecifier extends BaseNode {\n type: \"ImportNamespaceSpecifier\";\n local: Identifier;\n}\n\nexport interface ImportSpecifier extends BaseNode {\n type: \"ImportSpecifier\";\n local: Identifier;\n imported: Identifier | StringLiteral;\n importKind?: \"type\" | \"typeof\" | \"value\" | null;\n}\n\nexport interface ImportExpression extends BaseNode {\n type: \"ImportExpression\";\n source: Expression;\n options?: Expression | null;\n phase?: \"source\" | \"defer\" | null;\n}\n\nexport interface MetaProperty extends BaseNode {\n type: \"MetaProperty\";\n meta: Identifier;\n property: Identifier;\n}\n\nexport interface ClassMethod extends BaseNode {\n type: \"ClassMethod\";\n kind: \"get\" | \"set\" | \"method\" | \"constructor\";\n key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression;\n params: Array<Identifier | Pattern | RestElement | TSParameterProperty>;\n body: BlockStatement;\n computed: boolean;\n static: boolean;\n generator: boolean;\n async: boolean;\n abstract?: boolean | null;\n access?: \"public\" | \"private\" | \"protected\" | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n override?: boolean;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ObjectPattern extends BaseNode {\n type: \"ObjectPattern\";\n properties: Array<RestElement | ObjectProperty>;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface SpreadElement extends BaseNode {\n type: \"SpreadElement\";\n argument: Expression;\n}\n\n/**\n * @deprecated Use `SpreadElement`\n */\nexport interface SpreadProperty extends BaseNode {\n type: \"SpreadProperty\";\n argument: Expression;\n}\n\nexport interface Super extends BaseNode {\n type: \"Super\";\n}\n\nexport interface TaggedTemplateExpression extends BaseNode {\n type: \"TaggedTemplateExpression\";\n tag: Expression;\n quasi: TemplateLiteral;\n typeParameters?:\n | TypeParameterInstantiation\n | TSTypeParameterInstantiation\n | null;\n}\n\nexport interface TemplateElement extends BaseNode {\n type: \"TemplateElement\";\n value: { raw: string; cooked?: string };\n tail: boolean;\n}\n\nexport interface TemplateLiteral extends BaseNode {\n type: \"TemplateLiteral\";\n quasis: Array<TemplateElement>;\n expressions: Array<Expression | TSType>;\n}\n\nexport interface YieldExpression extends BaseNode {\n type: \"YieldExpression\";\n argument?: Expression | null;\n delegate: boolean;\n}\n\nexport interface AwaitExpression extends BaseNode {\n type: \"AwaitExpression\";\n argument: Expression;\n}\n\nexport interface Import extends BaseNode {\n type: \"Import\";\n}\n\nexport interface BigIntLiteral extends BaseNode {\n type: \"BigIntLiteral\";\n value: string;\n}\n\nexport interface ExportNamespaceSpecifier extends BaseNode {\n type: \"ExportNamespaceSpecifier\";\n exported: Identifier;\n}\n\nexport interface OptionalMemberExpression extends BaseNode {\n type: \"OptionalMemberExpression\";\n object: Expression;\n property: Expression | Identifier;\n computed: boolean;\n optional: boolean;\n}\n\nexport interface OptionalCallExpression extends BaseNode {\n type: \"OptionalCallExpression\";\n callee: Expression;\n arguments: Array<\n Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder\n >;\n optional: boolean;\n typeArguments?: TypeParameterInstantiation | null;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface ClassProperty extends BaseNode {\n type: \"ClassProperty\";\n key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression;\n value?: Expression | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n decorators?: Array<Decorator> | null;\n computed: boolean;\n static: boolean;\n abstract?: boolean | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n declare?: boolean | null;\n definite?: boolean | null;\n optional?: boolean | null;\n override?: boolean;\n readonly?: boolean | null;\n variance?: Variance | null;\n}\n\nexport interface ClassAccessorProperty extends BaseNode {\n type: \"ClassAccessorProperty\";\n key:\n | Identifier\n | StringLiteral\n | NumericLiteral\n | BigIntLiteral\n | Expression\n | PrivateName;\n value?: Expression | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n decorators?: Array<Decorator> | null;\n computed: boolean;\n static: boolean;\n abstract?: boolean | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n declare?: boolean | null;\n definite?: boolean | null;\n optional?: boolean | null;\n override?: boolean;\n readonly?: boolean | null;\n variance?: Variance | null;\n}\n\nexport interface ClassPrivateProperty extends BaseNode {\n type: \"ClassPrivateProperty\";\n key: PrivateName;\n value?: Expression | null;\n decorators?: Array<Decorator> | null;\n static: boolean;\n definite?: boolean | null;\n readonly?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n variance?: Variance | null;\n}\n\nexport interface ClassPrivateMethod extends BaseNode {\n type: \"ClassPrivateMethod\";\n kind: \"get\" | \"set\" | \"method\";\n key: PrivateName;\n params: Array<Identifier | Pattern | RestElement | TSParameterProperty>;\n body: BlockStatement;\n static: boolean;\n abstract?: boolean | null;\n access?: \"public\" | \"private\" | \"protected\" | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n async?: boolean;\n computed?: boolean;\n decorators?: Array<Decorator> | null;\n generator?: boolean;\n optional?: boolean | null;\n override?: boolean;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface PrivateName extends BaseNode {\n type: \"PrivateName\";\n id: Identifier;\n}\n\nexport interface StaticBlock extends BaseNode {\n type: \"StaticBlock\";\n body: Array<Statement>;\n}\n\nexport interface AnyTypeAnnotation extends BaseNode {\n type: \"AnyTypeAnnotation\";\n}\n\nexport interface ArrayTypeAnnotation extends BaseNode {\n type: \"ArrayTypeAnnotation\";\n elementType: FlowType;\n}\n\nexport interface BooleanTypeAnnotation extends BaseNode {\n type: \"BooleanTypeAnnotation\";\n}\n\nexport interface BooleanLiteralTypeAnnotation extends BaseNode {\n type: \"BooleanLiteralTypeAnnotation\";\n value: boolean;\n}\n\nexport interface NullLiteralTypeAnnotation extends BaseNode {\n type: \"NullLiteralTypeAnnotation\";\n}\n\nexport interface ClassImplements extends BaseNode {\n type: \"ClassImplements\";\n id: Identifier;\n typeParameters?: TypeParameterInstantiation | null;\n}\n\nexport interface DeclareClass extends BaseNode {\n type: \"DeclareClass\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n extends?: Array<InterfaceExtends> | null;\n body: ObjectTypeAnnotation;\n implements?: Array<ClassImplements> | null;\n mixins?: Array<InterfaceExtends> | null;\n}\n\nexport interface DeclareFunction extends BaseNode {\n type: \"DeclareFunction\";\n id: Identifier;\n predicate?: DeclaredPredicate | null;\n}\n\nexport interface DeclareInterface extends BaseNode {\n type: \"DeclareInterface\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n extends?: Array<InterfaceExtends> | null;\n body: ObjectTypeAnnotation;\n}\n\nexport interface DeclareModule extends BaseNode {\n type: \"DeclareModule\";\n id: Identifier | StringLiteral;\n body: BlockStatement;\n kind?: \"CommonJS\" | \"ES\" | null;\n}\n\nexport interface DeclareModuleExports extends BaseNode {\n type: \"DeclareModuleExports\";\n typeAnnotation: TypeAnnotation;\n}\n\nexport interface DeclareTypeAlias extends BaseNode {\n type: \"DeclareTypeAlias\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n right: FlowType;\n}\n\nexport interface DeclareOpaqueType extends BaseNode {\n type: \"DeclareOpaqueType\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n supertype?: FlowType | null;\n impltype?: FlowType | null;\n}\n\nexport interface DeclareVariable extends BaseNode {\n type: \"DeclareVariable\";\n id: Identifier;\n}\n\nexport interface DeclareExportDeclaration extends BaseNode {\n type: \"DeclareExportDeclaration\";\n declaration?: Flow | null;\n specifiers?: Array<ExportSpecifier | ExportNamespaceSpecifier> | null;\n source?: StringLiteral | null;\n default?: boolean | null;\n}\n\nexport interface DeclareExportAllDeclaration extends BaseNode {\n type: \"DeclareExportAllDeclaration\";\n source: StringLiteral;\n exportKind?: \"type\" | \"value\" | null;\n}\n\nexport interface DeclaredPredicate extends BaseNode {\n type: \"DeclaredPredicate\";\n value: Flow;\n}\n\nexport interface ExistsTypeAnnotation extends BaseNode {\n type: \"ExistsTypeAnnotation\";\n}\n\nexport interface FunctionTypeAnnotation extends BaseNode {\n type: \"FunctionTypeAnnotation\";\n typeParameters?: TypeParameterDeclaration | null;\n params: Array<FunctionTypeParam>;\n rest?: FunctionTypeParam | null;\n returnType: FlowType;\n this?: FunctionTypeParam | null;\n}\n\nexport interface FunctionTypeParam extends BaseNode {\n type: \"FunctionTypeParam\";\n name?: Identifier | null;\n typeAnnotation: FlowType;\n optional?: boolean | null;\n}\n\nexport interface GenericTypeAnnotation extends BaseNode {\n type: \"GenericTypeAnnotation\";\n id: Identifier | QualifiedTypeIdentifier;\n typeParameters?: TypeParameterInstantiation | null;\n}\n\nexport interface InferredPredicate extends BaseNode {\n type: \"InferredPredicate\";\n}\n\nexport interface InterfaceExtends extends BaseNode {\n type: \"InterfaceExtends\";\n id: Identifier | QualifiedTypeIdentifier;\n typeParameters?: TypeParameterInstantiation | null;\n}\n\nexport interface InterfaceDeclaration extends BaseNode {\n type: \"InterfaceDeclaration\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n extends?: Array<InterfaceExtends> | null;\n body: ObjectTypeAnnotation;\n}\n\nexport interface InterfaceTypeAnnotation extends BaseNode {\n type: \"InterfaceTypeAnnotation\";\n extends?: Array<InterfaceExtends> | null;\n body: ObjectTypeAnnotation;\n}\n\nexport interface IntersectionTypeAnnotation extends BaseNode {\n type: \"IntersectionTypeAnnotation\";\n types: Array<FlowType>;\n}\n\nexport interface MixedTypeAnnotation extends BaseNode {\n type: \"MixedTypeAnnotation\";\n}\n\nexport interface EmptyTypeAnnotation extends BaseNode {\n type: \"EmptyTypeAnnotation\";\n}\n\nexport interface NullableTypeAnnotation extends BaseNode {\n type: \"NullableTypeAnnotation\";\n typeAnnotation: FlowType;\n}\n\nexport interface NumberLiteralTypeAnnotation extends BaseNode {\n type: \"NumberLiteralTypeAnnotation\";\n value: number;\n}\n\nexport interface NumberTypeAnnotation extends BaseNode {\n type: \"NumberTypeAnnotation\";\n}\n\nexport interface ObjectTypeAnnotation extends BaseNode {\n type: \"ObjectTypeAnnotation\";\n properties: Array<ObjectTypeProperty | ObjectTypeSpreadProperty>;\n indexers?: Array<ObjectTypeIndexer>;\n callProperties?: Array<ObjectTypeCallProperty>;\n internalSlots?: Array<ObjectTypeInternalSlot>;\n exact: boolean;\n inexact?: boolean | null;\n}\n\nexport interface ObjectTypeInternalSlot extends BaseNode {\n type: \"ObjectTypeInternalSlot\";\n id: Identifier;\n value: FlowType;\n optional: boolean;\n static: boolean;\n method: boolean;\n}\n\nexport interface ObjectTypeCallProperty extends BaseNode {\n type: \"ObjectTypeCallProperty\";\n value: FlowType;\n static: boolean;\n}\n\nexport interface ObjectTypeIndexer extends BaseNode {\n type: \"ObjectTypeIndexer\";\n id?: Identifier | null;\n key: FlowType;\n value: FlowType;\n variance?: Variance | null;\n static: boolean;\n}\n\nexport interface ObjectTypeProperty extends BaseNode {\n type: \"ObjectTypeProperty\";\n key: Identifier | StringLiteral;\n value: FlowType;\n variance?: Variance | null;\n kind: \"init\" | \"get\" | \"set\";\n method: boolean;\n optional: boolean;\n proto: boolean;\n static: boolean;\n}\n\nexport interface ObjectTypeSpreadProperty extends BaseNode {\n type: \"ObjectTypeSpreadProperty\";\n argument: FlowType;\n}\n\nexport interface OpaqueType extends BaseNode {\n type: \"OpaqueType\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n supertype?: FlowType | null;\n impltype: FlowType;\n}\n\nexport interface QualifiedTypeIdentifier extends BaseNode {\n type: \"QualifiedTypeIdentifier\";\n id: Identifier;\n qualification: Identifier | QualifiedTypeIdentifier;\n}\n\nexport interface StringLiteralTypeAnnotation extends BaseNode {\n type: \"StringLiteralTypeAnnotation\";\n value: string;\n}\n\nexport interface StringTypeAnnotation extends BaseNode {\n type: \"StringTypeAnnotation\";\n}\n\nexport interface SymbolTypeAnnotation extends BaseNode {\n type: \"SymbolTypeAnnotation\";\n}\n\nexport interface ThisTypeAnnotation extends BaseNode {\n type: \"ThisTypeAnnotation\";\n}\n\nexport interface TupleTypeAnnotation extends BaseNode {\n type: \"TupleTypeAnnotation\";\n types: Array<FlowType>;\n}\n\nexport interface TypeofTypeAnnotation extends BaseNode {\n type: \"TypeofTypeAnnotation\";\n argument: FlowType;\n}\n\nexport interface TypeAlias extends BaseNode {\n type: \"TypeAlias\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n right: FlowType;\n}\n\nexport interface TypeAnnotation extends BaseNode {\n type: \"TypeAnnotation\";\n typeAnnotation: FlowType;\n}\n\nexport interface TypeCastExpression extends BaseNode {\n type: \"TypeCastExpression\";\n expression: Expression;\n typeAnnotation: TypeAnnotation;\n}\n\nexport interface TypeParameter extends BaseNode {\n type: \"TypeParameter\";\n bound?: TypeAnnotation | null;\n default?: FlowType | null;\n variance?: Variance | null;\n name: string;\n}\n\nexport interface TypeParameterDeclaration extends BaseNode {\n type: \"TypeParameterDeclaration\";\n params: Array<TypeParameter>;\n}\n\nexport interface TypeParameterInstantiation extends BaseNode {\n type: \"TypeParameterInstantiation\";\n params: Array<FlowType>;\n}\n\nexport interface UnionTypeAnnotation extends BaseNode {\n type: \"UnionTypeAnnotation\";\n types: Array<FlowType>;\n}\n\nexport interface Variance extends BaseNode {\n type: \"Variance\";\n kind: \"minus\" | \"plus\";\n}\n\nexport interface VoidTypeAnnotation extends BaseNode {\n type: \"VoidTypeAnnotation\";\n}\n\nexport interface EnumDeclaration extends BaseNode {\n type: \"EnumDeclaration\";\n id: Identifier;\n body: EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody;\n}\n\nexport interface EnumBooleanBody extends BaseNode {\n type: \"EnumBooleanBody\";\n members: Array<EnumBooleanMember>;\n explicitType: boolean;\n hasUnknownMembers: boolean;\n}\n\nexport interface EnumNumberBody extends BaseNode {\n type: \"EnumNumberBody\";\n members: Array<EnumNumberMember>;\n explicitType: boolean;\n hasUnknownMembers: boolean;\n}\n\nexport interface EnumStringBody extends BaseNode {\n type: \"EnumStringBody\";\n members: Array<EnumStringMember | EnumDefaultedMember>;\n explicitType: boolean;\n hasUnknownMembers: boolean;\n}\n\nexport interface EnumSymbolBody extends BaseNode {\n type: \"EnumSymbolBody\";\n members: Array<EnumDefaultedMember>;\n hasUnknownMembers: boolean;\n}\n\nexport interface EnumBooleanMember extends BaseNode {\n type: \"EnumBooleanMember\";\n id: Identifier;\n init: BooleanLiteral;\n}\n\nexport interface EnumNumberMember extends BaseNode {\n type: \"EnumNumberMember\";\n id: Identifier;\n init: NumericLiteral;\n}\n\nexport interface EnumStringMember extends BaseNode {\n type: \"EnumStringMember\";\n id: Identifier;\n init: StringLiteral;\n}\n\nexport interface EnumDefaultedMember extends BaseNode {\n type: \"EnumDefaultedMember\";\n id: Identifier;\n}\n\nexport interface IndexedAccessType extends BaseNode {\n type: \"IndexedAccessType\";\n objectType: FlowType;\n indexType: FlowType;\n}\n\nexport interface OptionalIndexedAccessType extends BaseNode {\n type: \"OptionalIndexedAccessType\";\n objectType: FlowType;\n indexType: FlowType;\n optional: boolean;\n}\n\nexport interface JSXAttribute extends BaseNode {\n type: \"JSXAttribute\";\n name: JSXIdentifier | JSXNamespacedName;\n value?:\n | JSXElement\n | JSXFragment\n | StringLiteral\n | JSXExpressionContainer\n | null;\n}\n\nexport interface JSXClosingElement extends BaseNode {\n type: \"JSXClosingElement\";\n name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName;\n}\n\nexport interface JSXElement extends BaseNode {\n type: \"JSXElement\";\n openingElement: JSXOpeningElement;\n closingElement?: JSXClosingElement | null;\n children: Array<\n JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment\n >;\n selfClosing?: boolean | null;\n}\n\nexport interface JSXEmptyExpression extends BaseNode {\n type: \"JSXEmptyExpression\";\n}\n\nexport interface JSXExpressionContainer extends BaseNode {\n type: \"JSXExpressionContainer\";\n expression: Expression | JSXEmptyExpression;\n}\n\nexport interface JSXSpreadChild extends BaseNode {\n type: \"JSXSpreadChild\";\n expression: Expression;\n}\n\nexport interface JSXIdentifier extends BaseNode {\n type: \"JSXIdentifier\";\n name: string;\n}\n\nexport interface JSXMemberExpression extends BaseNode {\n type: \"JSXMemberExpression\";\n object: JSXMemberExpression | JSXIdentifier;\n property: JSXIdentifier;\n}\n\nexport interface JSXNamespacedName extends BaseNode {\n type: \"JSXNamespacedName\";\n namespace: JSXIdentifier;\n name: JSXIdentifier;\n}\n\nexport interface JSXOpeningElement extends BaseNode {\n type: \"JSXOpeningElement\";\n name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName;\n attributes: Array<JSXAttribute | JSXSpreadAttribute>;\n selfClosing: boolean;\n typeParameters?:\n | TypeParameterInstantiation\n | TSTypeParameterInstantiation\n | null;\n}\n\nexport interface JSXSpreadAttribute extends BaseNode {\n type: \"JSXSpreadAttribute\";\n argument: Expression;\n}\n\nexport interface JSXText extends BaseNode {\n type: \"JSXText\";\n value: string;\n}\n\nexport interface JSXFragment extends BaseNode {\n type: \"JSXFragment\";\n openingFragment: JSXOpeningFragment;\n closingFragment: JSXClosingFragment;\n children: Array<\n JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment\n >;\n}\n\nexport interface JSXOpeningFragment extends BaseNode {\n type: \"JSXOpeningFragment\";\n}\n\nexport interface JSXClosingFragment extends BaseNode {\n type: \"JSXClosingFragment\";\n}\n\nexport interface Noop extends BaseNode {\n type: \"Noop\";\n}\n\nexport interface Placeholder extends BaseNode {\n type: \"Placeholder\";\n expectedNode:\n | \"Identifier\"\n | \"StringLiteral\"\n | \"Expression\"\n | \"Statement\"\n | \"Declaration\"\n | \"BlockStatement\"\n | \"ClassBody\"\n | \"Pattern\";\n name: Identifier;\n}\n\nexport interface V8IntrinsicIdentifier extends BaseNode {\n type: \"V8IntrinsicIdentifier\";\n name: string;\n}\n\nexport interface ArgumentPlaceholder extends BaseNode {\n type: \"ArgumentPlaceholder\";\n}\n\nexport interface BindExpression extends BaseNode {\n type: \"BindExpression\";\n object: Expression;\n callee: Expression;\n}\n\nexport interface ImportAttribute extends BaseNode {\n type: \"ImportAttribute\";\n key: Identifier | StringLiteral;\n value: StringLiteral;\n}\n\nexport interface Decorator extends BaseNode {\n type: \"Decorator\";\n expression: Expression;\n}\n\nexport interface DoExpression extends BaseNode {\n type: \"DoExpression\";\n body: BlockStatement;\n async: boolean;\n}\n\nexport interface ExportDefaultSpecifier extends BaseNode {\n type: \"ExportDefaultSpecifier\";\n exported: Identifier;\n}\n\nexport interface RecordExpression extends BaseNode {\n type: \"RecordExpression\";\n properties: Array<ObjectProperty | SpreadElement>;\n}\n\nexport interface TupleExpression extends BaseNode {\n type: \"TupleExpression\";\n elements: Array<Expression | SpreadElement>;\n}\n\nexport interface DecimalLiteral extends BaseNode {\n type: \"DecimalLiteral\";\n value: string;\n}\n\nexport interface ModuleExpression extends BaseNode {\n type: \"ModuleExpression\";\n body: Program;\n}\n\nexport interface TopicReference extends BaseNode {\n type: \"TopicReference\";\n}\n\nexport interface PipelineTopicExpression extends BaseNode {\n type: \"PipelineTopicExpression\";\n expression: Expression;\n}\n\nexport interface PipelineBareFunction extends BaseNode {\n type: \"PipelineBareFunction\";\n callee: Expression;\n}\n\nexport interface PipelinePrimaryTopicReference extends BaseNode {\n type: \"PipelinePrimaryTopicReference\";\n}\n\nexport interface TSParameterProperty extends BaseNode {\n type: \"TSParameterProperty\";\n parameter: Identifier | AssignmentPattern;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n decorators?: Array<Decorator> | null;\n override?: boolean | null;\n readonly?: boolean | null;\n}\n\nexport interface TSDeclareFunction extends BaseNode {\n type: \"TSDeclareFunction\";\n id?: Identifier | null;\n typeParameters?: TSTypeParameterDeclaration | Noop | null;\n params: Array<Identifier | Pattern | RestElement>;\n returnType?: TSTypeAnnotation | Noop | null;\n async?: boolean;\n declare?: boolean | null;\n generator?: boolean;\n}\n\nexport interface TSDeclareMethod extends BaseNode {\n type: \"TSDeclareMethod\";\n decorators?: Array<Decorator> | null;\n key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression;\n typeParameters?: TSTypeParameterDeclaration | Noop | null;\n params: Array<Identifier | Pattern | RestElement | TSParameterProperty>;\n returnType?: TSTypeAnnotation | Noop | null;\n abstract?: boolean | null;\n access?: \"public\" | \"private\" | \"protected\" | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n async?: boolean;\n computed?: boolean;\n generator?: boolean;\n kind?: \"get\" | \"set\" | \"method\" | \"constructor\";\n optional?: boolean | null;\n override?: boolean;\n static?: boolean;\n}\n\nexport interface TSQualifiedName extends BaseNode {\n type: \"TSQualifiedName\";\n left: TSEntityName;\n right: Identifier;\n}\n\nexport interface TSCallSignatureDeclaration extends BaseNode {\n type: \"TSCallSignatureDeclaration\";\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n}\n\nexport interface TSConstructSignatureDeclaration extends BaseNode {\n type: \"TSConstructSignatureDeclaration\";\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n}\n\nexport interface TSPropertySignature extends BaseNode {\n type: \"TSPropertySignature\";\n key: Expression;\n typeAnnotation?: TSTypeAnnotation | null;\n initializer?: Expression | null;\n computed?: boolean;\n kind: \"get\" | \"set\";\n optional?: boolean | null;\n readonly?: boolean | null;\n}\n\nexport interface TSMethodSignature extends BaseNode {\n type: \"TSMethodSignature\";\n key: Expression;\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n computed?: boolean;\n kind: \"method\" | \"get\" | \"set\";\n optional?: boolean | null;\n}\n\nexport interface TSIndexSignature extends BaseNode {\n type: \"TSIndexSignature\";\n parameters: Array<Identifier>;\n typeAnnotation?: TSTypeAnnotation | null;\n readonly?: boolean | null;\n static?: boolean | null;\n}\n\nexport interface TSAnyKeyword extends BaseNode {\n type: \"TSAnyKeyword\";\n}\n\nexport interface TSBooleanKeyword extends BaseNode {\n type: \"TSBooleanKeyword\";\n}\n\nexport interface TSBigIntKeyword extends BaseNode {\n type: \"TSBigIntKeyword\";\n}\n\nexport interface TSIntrinsicKeyword extends BaseNode {\n type: \"TSIntrinsicKeyword\";\n}\n\nexport interface TSNeverKeyword extends BaseNode {\n type: \"TSNeverKeyword\";\n}\n\nexport interface TSNullKeyword extends BaseNode {\n type: \"TSNullKeyword\";\n}\n\nexport interface TSNumberKeyword extends BaseNode {\n type: \"TSNumberKeyword\";\n}\n\nexport interface TSObjectKeyword extends BaseNode {\n type: \"TSObjectKeyword\";\n}\n\nexport interface TSStringKeyword extends BaseNode {\n type: \"TSStringKeyword\";\n}\n\nexport interface TSSymbolKeyword extends BaseNode {\n type: \"TSSymbolKeyword\";\n}\n\nexport interface TSUndefinedKeyword extends BaseNode {\n type: \"TSUndefinedKeyword\";\n}\n\nexport interface TSUnknownKeyword extends BaseNode {\n type: \"TSUnknownKeyword\";\n}\n\nexport interface TSVoidKeyword extends BaseNode {\n type: \"TSVoidKeyword\";\n}\n\nexport interface TSThisType extends BaseNode {\n type: \"TSThisType\";\n}\n\nexport interface TSFunctionType extends BaseNode {\n type: \"TSFunctionType\";\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n}\n\nexport interface TSConstructorType extends BaseNode {\n type: \"TSConstructorType\";\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n abstract?: boolean | null;\n}\n\nexport interface TSTypeReference extends BaseNode {\n type: \"TSTypeReference\";\n typeName: TSEntityName;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSTypePredicate extends BaseNode {\n type: \"TSTypePredicate\";\n parameterName: Identifier | TSThisType;\n typeAnnotation?: TSTypeAnnotation | null;\n asserts?: boolean | null;\n}\n\nexport interface TSTypeQuery extends BaseNode {\n type: \"TSTypeQuery\";\n exprName: TSEntityName | TSImportType;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSTypeLiteral extends BaseNode {\n type: \"TSTypeLiteral\";\n members: Array<TSTypeElement>;\n}\n\nexport interface TSArrayType extends BaseNode {\n type: \"TSArrayType\";\n elementType: TSType;\n}\n\nexport interface TSTupleType extends BaseNode {\n type: \"TSTupleType\";\n elementTypes: Array<TSType | TSNamedTupleMember>;\n}\n\nexport interface TSOptionalType extends BaseNode {\n type: \"TSOptionalType\";\n typeAnnotation: TSType;\n}\n\nexport interface TSRestType extends BaseNode {\n type: \"TSRestType\";\n typeAnnotation: TSType;\n}\n\nexport interface TSNamedTupleMember extends BaseNode {\n type: \"TSNamedTupleMember\";\n label: Identifier;\n elementType: TSType;\n optional: boolean;\n}\n\nexport interface TSUnionType extends BaseNode {\n type: \"TSUnionType\";\n types: Array<TSType>;\n}\n\nexport interface TSIntersectionType extends BaseNode {\n type: \"TSIntersectionType\";\n types: Array<TSType>;\n}\n\nexport interface TSConditionalType extends BaseNode {\n type: \"TSConditionalType\";\n checkType: TSType;\n extendsType: TSType;\n trueType: TSType;\n falseType: TSType;\n}\n\nexport interface TSInferType extends BaseNode {\n type: \"TSInferType\";\n typeParameter: TSTypeParameter;\n}\n\nexport interface TSParenthesizedType extends BaseNode {\n type: \"TSParenthesizedType\";\n typeAnnotation: TSType;\n}\n\nexport interface TSTypeOperator extends BaseNode {\n type: \"TSTypeOperator\";\n typeAnnotation: TSType;\n operator: string;\n}\n\nexport interface TSIndexedAccessType extends BaseNode {\n type: \"TSIndexedAccessType\";\n objectType: TSType;\n indexType: TSType;\n}\n\nexport interface TSMappedType extends BaseNode {\n type: \"TSMappedType\";\n typeParameter: TSTypeParameter;\n typeAnnotation?: TSType | null;\n nameType?: TSType | null;\n optional?: true | false | \"+\" | \"-\" | null;\n readonly?: true | false | \"+\" | \"-\" | null;\n}\n\nexport interface TSLiteralType extends BaseNode {\n type: \"TSLiteralType\";\n literal:\n | NumericLiteral\n | StringLiteral\n | BooleanLiteral\n | BigIntLiteral\n | TemplateLiteral\n | UnaryExpression;\n}\n\nexport interface TSExpressionWithTypeArguments extends BaseNode {\n type: \"TSExpressionWithTypeArguments\";\n expression: TSEntityName;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSInterfaceDeclaration extends BaseNode {\n type: \"TSInterfaceDeclaration\";\n id: Identifier;\n typeParameters?: TSTypeParameterDeclaration | null;\n extends?: Array<TSExpressionWithTypeArguments> | null;\n body: TSInterfaceBody;\n declare?: boolean | null;\n}\n\nexport interface TSInterfaceBody extends BaseNode {\n type: \"TSInterfaceBody\";\n body: Array<TSTypeElement>;\n}\n\nexport interface TSTypeAliasDeclaration extends BaseNode {\n type: \"TSTypeAliasDeclaration\";\n id: Identifier;\n typeParameters?: TSTypeParameterDeclaration | null;\n typeAnnotation: TSType;\n declare?: boolean | null;\n}\n\nexport interface TSInstantiationExpression extends BaseNode {\n type: \"TSInstantiationExpression\";\n expression: Expression;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSAsExpression extends BaseNode {\n type: \"TSAsExpression\";\n expression: Expression;\n typeAnnotation: TSType;\n}\n\nexport interface TSSatisfiesExpression extends BaseNode {\n type: \"TSSatisfiesExpression\";\n expression: Expression;\n typeAnnotation: TSType;\n}\n\nexport interface TSTypeAssertion extends BaseNode {\n type: \"TSTypeAssertion\";\n typeAnnotation: TSType;\n expression: Expression;\n}\n\nexport interface TSEnumDeclaration extends BaseNode {\n type: \"TSEnumDeclaration\";\n id: Identifier;\n members: Array<TSEnumMember>;\n const?: boolean | null;\n declare?: boolean | null;\n initializer?: Expression | null;\n}\n\nexport interface TSEnumMember extends BaseNode {\n type: \"TSEnumMember\";\n id: Identifier | StringLiteral;\n initializer?: Expression | null;\n}\n\nexport interface TSModuleDeclaration extends BaseNode {\n type: \"TSModuleDeclaration\";\n id: Identifier | StringLiteral;\n body: TSModuleBlock | TSModuleDeclaration;\n declare?: boolean | null;\n global?: boolean | null;\n}\n\nexport interface TSModuleBlock extends BaseNode {\n type: \"TSModuleBlock\";\n body: Array<Statement>;\n}\n\nexport interface TSImportType extends BaseNode {\n type: \"TSImportType\";\n argument: StringLiteral;\n qualifier?: TSEntityName | null;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSImportEqualsDeclaration extends BaseNode {\n type: \"TSImportEqualsDeclaration\";\n id: Identifier;\n moduleReference: TSEntityName | TSExternalModuleReference;\n importKind?: \"type\" | \"value\" | null;\n isExport: boolean;\n}\n\nexport interface TSExternalModuleReference extends BaseNode {\n type: \"TSExternalModuleReference\";\n expression: StringLiteral;\n}\n\nexport interface TSNonNullExpression extends BaseNode {\n type: \"TSNonNullExpression\";\n expression: Expression;\n}\n\nexport interface TSExportAssignment extends BaseNode {\n type: \"TSExportAssignment\";\n expression: Expression;\n}\n\nexport interface TSNamespaceExportDeclaration extends BaseNode {\n type: \"TSNamespaceExportDeclaration\";\n id: Identifier;\n}\n\nexport interface TSTypeAnnotation extends BaseNode {\n type: \"TSTypeAnnotation\";\n typeAnnotation: TSType;\n}\n\nexport interface TSTypeParameterInstantiation extends BaseNode {\n type: \"TSTypeParameterInstantiation\";\n params: Array<TSType>;\n}\n\nexport interface TSTypeParameterDeclaration extends BaseNode {\n type: \"TSTypeParameterDeclaration\";\n params: Array<TSTypeParameter>;\n}\n\nexport interface TSTypeParameter extends BaseNode {\n type: \"TSTypeParameter\";\n constraint?: TSType | null;\n default?: TSType | null;\n name: string;\n const?: boolean | null;\n in?: boolean | null;\n out?: boolean | null;\n}\n\nexport type Standardized =\n | ArrayExpression\n | AssignmentExpression\n | BinaryExpression\n | InterpreterDirective\n | Directive\n | DirectiveLiteral\n | BlockStatement\n | BreakStatement\n | CallExpression\n | CatchClause\n | ConditionalExpression\n | ContinueStatement\n | DebuggerStatement\n | DoWhileStatement\n | EmptyStatement\n | ExpressionStatement\n | File\n | ForInStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | Identifier\n | IfStatement\n | LabeledStatement\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | RegExpLiteral\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | Program\n | ObjectExpression\n | ObjectMethod\n | ObjectProperty\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | ParenthesizedExpression\n | SwitchCase\n | SwitchStatement\n | ThisExpression\n | ThrowStatement\n | TryStatement\n | UnaryExpression\n | UpdateExpression\n | VariableDeclaration\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | AssignmentPattern\n | ArrayPattern\n | ArrowFunctionExpression\n | ClassBody\n | ClassExpression\n | ClassDeclaration\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ExportSpecifier\n | ForOfStatement\n | ImportDeclaration\n | ImportDefaultSpecifier\n | ImportNamespaceSpecifier\n | ImportSpecifier\n | ImportExpression\n | MetaProperty\n | ClassMethod\n | ObjectPattern\n | SpreadElement\n | Super\n | TaggedTemplateExpression\n | TemplateElement\n | TemplateLiteral\n | YieldExpression\n | AwaitExpression\n | Import\n | BigIntLiteral\n | ExportNamespaceSpecifier\n | OptionalMemberExpression\n | OptionalCallExpression\n | ClassProperty\n | ClassAccessorProperty\n | ClassPrivateProperty\n | ClassPrivateMethod\n | PrivateName\n | StaticBlock;\nexport type Expression =\n | ArrayExpression\n | AssignmentExpression\n | BinaryExpression\n | CallExpression\n | ConditionalExpression\n | FunctionExpression\n | Identifier\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | RegExpLiteral\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectExpression\n | SequenceExpression\n | ParenthesizedExpression\n | ThisExpression\n | UnaryExpression\n | UpdateExpression\n | ArrowFunctionExpression\n | ClassExpression\n | ImportExpression\n | MetaProperty\n | Super\n | TaggedTemplateExpression\n | TemplateLiteral\n | YieldExpression\n | AwaitExpression\n | Import\n | BigIntLiteral\n | OptionalMemberExpression\n | OptionalCallExpression\n | TypeCastExpression\n | JSXElement\n | JSXFragment\n | BindExpression\n | DoExpression\n | RecordExpression\n | TupleExpression\n | DecimalLiteral\n | ModuleExpression\n | TopicReference\n | PipelineTopicExpression\n | PipelineBareFunction\n | PipelinePrimaryTopicReference\n | TSInstantiationExpression\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSNonNullExpression;\nexport type Binary = BinaryExpression | LogicalExpression;\nexport type Scopable =\n | BlockStatement\n | CatchClause\n | DoWhileStatement\n | ForInStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | Program\n | ObjectMethod\n | SwitchStatement\n | WhileStatement\n | ArrowFunctionExpression\n | ClassExpression\n | ClassDeclaration\n | ForOfStatement\n | ClassMethod\n | ClassPrivateMethod\n | StaticBlock\n | TSModuleBlock;\nexport type BlockParent =\n | BlockStatement\n | CatchClause\n | DoWhileStatement\n | ForInStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | Program\n | ObjectMethod\n | SwitchStatement\n | WhileStatement\n | ArrowFunctionExpression\n | ForOfStatement\n | ClassMethod\n | ClassPrivateMethod\n | StaticBlock\n | TSModuleBlock;\nexport type Block = BlockStatement | Program | TSModuleBlock;\nexport type Statement =\n | BlockStatement\n | BreakStatement\n | ContinueStatement\n | DebuggerStatement\n | DoWhileStatement\n | EmptyStatement\n | ExpressionStatement\n | ForInStatement\n | ForStatement\n | FunctionDeclaration\n | IfStatement\n | LabeledStatement\n | ReturnStatement\n | SwitchStatement\n | ThrowStatement\n | TryStatement\n | VariableDeclaration\n | WhileStatement\n | WithStatement\n | ClassDeclaration\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ForOfStatement\n | ImportDeclaration\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareTypeAlias\n | DeclareOpaqueType\n | DeclareVariable\n | DeclareExportDeclaration\n | DeclareExportAllDeclaration\n | InterfaceDeclaration\n | OpaqueType\n | TypeAlias\n | EnumDeclaration\n | TSDeclareFunction\n | TSInterfaceDeclaration\n | TSTypeAliasDeclaration\n | TSEnumDeclaration\n | TSModuleDeclaration\n | TSImportEqualsDeclaration\n | TSExportAssignment\n | TSNamespaceExportDeclaration;\nexport type Terminatorless =\n | BreakStatement\n | ContinueStatement\n | ReturnStatement\n | ThrowStatement\n | YieldExpression\n | AwaitExpression;\nexport type CompletionStatement =\n | BreakStatement\n | ContinueStatement\n | ReturnStatement\n | ThrowStatement;\nexport type Conditional = ConditionalExpression | IfStatement;\nexport type Loop =\n | DoWhileStatement\n | ForInStatement\n | ForStatement\n | WhileStatement\n | ForOfStatement;\nexport type While = DoWhileStatement | WhileStatement;\nexport type ExpressionWrapper =\n | ExpressionStatement\n | ParenthesizedExpression\n | TypeCastExpression;\nexport type For = ForInStatement | ForStatement | ForOfStatement;\nexport type ForXStatement = ForInStatement | ForOfStatement;\nexport type Function =\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ArrowFunctionExpression\n | ClassMethod\n | ClassPrivateMethod;\nexport type FunctionParent =\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ArrowFunctionExpression\n | ClassMethod\n | ClassPrivateMethod\n | StaticBlock\n | TSModuleBlock;\nexport type Pureish =\n | FunctionDeclaration\n | FunctionExpression\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | RegExpLiteral\n | ArrowFunctionExpression\n | BigIntLiteral\n | DecimalLiteral;\nexport type Declaration =\n | FunctionDeclaration\n | VariableDeclaration\n | ClassDeclaration\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ImportDeclaration\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareTypeAlias\n | DeclareOpaqueType\n | DeclareVariable\n | DeclareExportDeclaration\n | DeclareExportAllDeclaration\n | InterfaceDeclaration\n | OpaqueType\n | TypeAlias\n | EnumDeclaration\n | TSDeclareFunction\n | TSInterfaceDeclaration\n | TSTypeAliasDeclaration\n | TSEnumDeclaration\n | TSModuleDeclaration;\nexport type PatternLike =\n | Identifier\n | RestElement\n | AssignmentPattern\n | ArrayPattern\n | ObjectPattern\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSNonNullExpression;\nexport type LVal =\n | Identifier\n | MemberExpression\n | RestElement\n | AssignmentPattern\n | ArrayPattern\n | ObjectPattern\n | TSParameterProperty\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSNonNullExpression;\nexport type TSEntityName = Identifier | TSQualifiedName;\nexport type Literal =\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | RegExpLiteral\n | TemplateLiteral\n | BigIntLiteral\n | DecimalLiteral;\nexport type Immutable =\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | BigIntLiteral\n | JSXAttribute\n | JSXClosingElement\n | JSXElement\n | JSXExpressionContainer\n | JSXSpreadChild\n | JSXOpeningElement\n | JSXText\n | JSXFragment\n | JSXOpeningFragment\n | JSXClosingFragment\n | DecimalLiteral;\nexport type UserWhitespacable =\n | ObjectMethod\n | ObjectProperty\n | ObjectTypeInternalSlot\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty;\nexport type Method = ObjectMethod | ClassMethod | ClassPrivateMethod;\nexport type ObjectMember = ObjectMethod | ObjectProperty;\nexport type Property =\n | ObjectProperty\n | ClassProperty\n | ClassAccessorProperty\n | ClassPrivateProperty;\nexport type UnaryLike = UnaryExpression | SpreadElement;\nexport type Pattern = AssignmentPattern | ArrayPattern | ObjectPattern;\nexport type Class = ClassExpression | ClassDeclaration;\nexport type ImportOrExportDeclaration =\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ImportDeclaration;\nexport type ExportDeclaration =\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration;\nexport type ModuleSpecifier =\n | ExportSpecifier\n | ImportDefaultSpecifier\n | ImportNamespaceSpecifier\n | ImportSpecifier\n | ExportNamespaceSpecifier\n | ExportDefaultSpecifier;\nexport type Accessor = ClassAccessorProperty;\nexport type Private = ClassPrivateProperty | ClassPrivateMethod | PrivateName;\nexport type Flow =\n | AnyTypeAnnotation\n | ArrayTypeAnnotation\n | BooleanTypeAnnotation\n | BooleanLiteralTypeAnnotation\n | NullLiteralTypeAnnotation\n | ClassImplements\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareTypeAlias\n | DeclareOpaqueType\n | DeclareVariable\n | DeclareExportDeclaration\n | DeclareExportAllDeclaration\n | DeclaredPredicate\n | ExistsTypeAnnotation\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | GenericTypeAnnotation\n | InferredPredicate\n | InterfaceExtends\n | InterfaceDeclaration\n | InterfaceTypeAnnotation\n | IntersectionTypeAnnotation\n | MixedTypeAnnotation\n | EmptyTypeAnnotation\n | NullableTypeAnnotation\n | NumberLiteralTypeAnnotation\n | NumberTypeAnnotation\n | ObjectTypeAnnotation\n | ObjectTypeInternalSlot\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | QualifiedTypeIdentifier\n | StringLiteralTypeAnnotation\n | StringTypeAnnotation\n | SymbolTypeAnnotation\n | ThisTypeAnnotation\n | TupleTypeAnnotation\n | TypeofTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeCastExpression\n | TypeParameter\n | TypeParameterDeclaration\n | TypeParameterInstantiation\n | UnionTypeAnnotation\n | Variance\n | VoidTypeAnnotation\n | EnumDeclaration\n | EnumBooleanBody\n | EnumNumberBody\n | EnumStringBody\n | EnumSymbolBody\n | EnumBooleanMember\n | EnumNumberMember\n | EnumStringMember\n | EnumDefaultedMember\n | IndexedAccessType\n | OptionalIndexedAccessType;\nexport type FlowType =\n | AnyTypeAnnotation\n | ArrayTypeAnnotation\n | BooleanTypeAnnotation\n | BooleanLiteralTypeAnnotation\n | NullLiteralTypeAnnotation\n | ExistsTypeAnnotation\n | FunctionTypeAnnotation\n | GenericTypeAnnotation\n | InterfaceTypeAnnotation\n | IntersectionTypeAnnotation\n | MixedTypeAnnotation\n | EmptyTypeAnnotation\n | NullableTypeAnnotation\n | NumberLiteralTypeAnnotation\n | NumberTypeAnnotation\n | ObjectTypeAnnotation\n | StringLiteralTypeAnnotation\n | StringTypeAnnotation\n | SymbolTypeAnnotation\n | ThisTypeAnnotation\n | TupleTypeAnnotation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation\n | VoidTypeAnnotation\n | IndexedAccessType\n | OptionalIndexedAccessType;\nexport type FlowBaseAnnotation =\n | AnyTypeAnnotation\n | BooleanTypeAnnotation\n | NullLiteralTypeAnnotation\n | MixedTypeAnnotation\n | EmptyTypeAnnotation\n | NumberTypeAnnotation\n | StringTypeAnnotation\n | SymbolTypeAnnotation\n | ThisTypeAnnotation\n | VoidTypeAnnotation;\nexport type FlowDeclaration =\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareTypeAlias\n | DeclareOpaqueType\n | DeclareVariable\n | DeclareExportDeclaration\n | DeclareExportAllDeclaration\n | InterfaceDeclaration\n | OpaqueType\n | TypeAlias;\nexport type FlowPredicate = DeclaredPredicate | InferredPredicate;\nexport type EnumBody =\n | EnumBooleanBody\n | EnumNumberBody\n | EnumStringBody\n | EnumSymbolBody;\nexport type EnumMember =\n | EnumBooleanMember\n | EnumNumberMember\n | EnumStringMember\n | EnumDefaultedMember;\nexport type JSX =\n | JSXAttribute\n | JSXClosingElement\n | JSXElement\n | JSXEmptyExpression\n | JSXExpressionContainer\n | JSXSpreadChild\n | JSXIdentifier\n | JSXMemberExpression\n | JSXNamespacedName\n | JSXOpeningElement\n | JSXSpreadAttribute\n | JSXText\n | JSXFragment\n | JSXOpeningFragment\n | JSXClosingFragment;\nexport type Miscellaneous = Noop | Placeholder | V8IntrinsicIdentifier;\nexport type TypeScript =\n | TSParameterProperty\n | TSDeclareFunction\n | TSDeclareMethod\n | TSQualifiedName\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSPropertySignature\n | TSMethodSignature\n | TSIndexSignature\n | TSAnyKeyword\n | TSBooleanKeyword\n | TSBigIntKeyword\n | TSIntrinsicKeyword\n | TSNeverKeyword\n | TSNullKeyword\n | TSNumberKeyword\n | TSObjectKeyword\n | TSStringKeyword\n | TSSymbolKeyword\n | TSUndefinedKeyword\n | TSUnknownKeyword\n | TSVoidKeyword\n | TSThisType\n | TSFunctionType\n | TSConstructorType\n | TSTypeReference\n | TSTypePredicate\n | TSTypeQuery\n | TSTypeLiteral\n | TSArrayType\n | TSTupleType\n | TSOptionalType\n | TSRestType\n | TSNamedTupleMember\n | TSUnionType\n | TSIntersectionType\n | TSConditionalType\n | TSInferType\n | TSParenthesizedType\n | TSTypeOperator\n | TSIndexedAccessType\n | TSMappedType\n | TSLiteralType\n | TSExpressionWithTypeArguments\n | TSInterfaceDeclaration\n | TSInterfaceBody\n | TSTypeAliasDeclaration\n | TSInstantiationExpression\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSEnumDeclaration\n | TSEnumMember\n | TSModuleDeclaration\n | TSModuleBlock\n | TSImportType\n | TSImportEqualsDeclaration\n | TSExternalModuleReference\n | TSNonNullExpression\n | TSExportAssignment\n | TSNamespaceExportDeclaration\n | TSTypeAnnotation\n | TSTypeParameterInstantiation\n | TSTypeParameterDeclaration\n | TSTypeParameter;\nexport type TSTypeElement =\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSPropertySignature\n | TSMethodSignature\n | TSIndexSignature;\nexport type TSType =\n | TSAnyKeyword\n | TSBooleanKeyword\n | TSBigIntKeyword\n | TSIntrinsicKeyword\n | TSNeverKeyword\n | TSNullKeyword\n | TSNumberKeyword\n | TSObjectKeyword\n | TSStringKeyword\n | TSSymbolKeyword\n | TSUndefinedKeyword\n | TSUnknownKeyword\n | TSVoidKeyword\n | TSThisType\n | TSFunctionType\n | TSConstructorType\n | TSTypeReference\n | TSTypePredicate\n | TSTypeQuery\n | TSTypeLiteral\n | TSArrayType\n | TSTupleType\n | TSOptionalType\n | TSRestType\n | TSUnionType\n | TSIntersectionType\n | TSConditionalType\n | TSInferType\n | TSParenthesizedType\n | TSTypeOperator\n | TSIndexedAccessType\n | TSMappedType\n | TSLiteralType\n | TSExpressionWithTypeArguments\n | TSImportType;\nexport type TSBaseType =\n | TSAnyKeyword\n | TSBooleanKeyword\n | TSBigIntKeyword\n | TSIntrinsicKeyword\n | TSNeverKeyword\n | TSNullKeyword\n | TSNumberKeyword\n | TSObjectKeyword\n | TSStringKeyword\n | TSSymbolKeyword\n | TSUndefinedKeyword\n | TSUnknownKeyword\n | TSVoidKeyword\n | TSThisType\n | TSLiteralType;\nexport type ModuleDeclaration =\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ImportDeclaration;\n\nexport interface Aliases {\n Standardized: Standardized;\n Expression: Expression;\n Binary: Binary;\n Scopable: Scopable;\n BlockParent: BlockParent;\n Block: Block;\n Statement: Statement;\n Terminatorless: Terminatorless;\n CompletionStatement: CompletionStatement;\n Conditional: Conditional;\n Loop: Loop;\n While: While;\n ExpressionWrapper: ExpressionWrapper;\n For: For;\n ForXStatement: ForXStatement;\n Function: Function;\n FunctionParent: FunctionParent;\n Pureish: Pureish;\n Declaration: Declaration;\n PatternLike: PatternLike;\n LVal: LVal;\n TSEntityName: TSEntityName;\n Literal: Literal;\n Immutable: Immutable;\n UserWhitespacable: UserWhitespacable;\n Method: Method;\n ObjectMember: ObjectMember;\n Property: Property;\n UnaryLike: UnaryLike;\n Pattern: Pattern;\n Class: Class;\n ImportOrExportDeclaration: ImportOrExportDeclaration;\n ExportDeclaration: ExportDeclaration;\n ModuleSpecifier: ModuleSpecifier;\n Accessor: Accessor;\n Private: Private;\n Flow: Flow;\n FlowType: FlowType;\n FlowBaseAnnotation: FlowBaseAnnotation;\n FlowDeclaration: FlowDeclaration;\n FlowPredicate: FlowPredicate;\n EnumBody: EnumBody;\n EnumMember: EnumMember;\n JSX: JSX;\n Miscellaneous: Miscellaneous;\n TypeScript: TypeScript;\n TSTypeElement: TSTypeElement;\n TSType: TSType;\n TSBaseType: TSBaseType;\n ModuleDeclaration: ModuleDeclaration;\n}\n\nexport type DeprecatedAliases =\n | NumberLiteral\n | RegexLiteral\n | RestProperty\n | SpreadProperty;\n\nexport interface ParentMaps {\n AnyTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ArgumentPlaceholder: CallExpression | NewExpression | OptionalCallExpression;\n ArrayExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ArrayPattern:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | CatchClause\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ObjectProperty\n | RestElement\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSMethodSignature\n | VariableDeclarator;\n ArrayTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ArrowFunctionExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n AssignmentExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n AssignmentPattern:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ObjectProperty\n | RestElement\n | TSDeclareFunction\n | TSDeclareMethod\n | TSParameterProperty\n | VariableDeclarator;\n AwaitExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BigIntLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BinaryExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BindExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BlockStatement:\n | ArrowFunctionExpression\n | BlockStatement\n | CatchClause\n | ClassMethod\n | ClassPrivateMethod\n | DeclareModule\n | DoExpression\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | IfStatement\n | LabeledStatement\n | ObjectMethod\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | TryStatement\n | WhileStatement\n | WithStatement;\n BooleanLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | EnumBooleanMember\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BooleanLiteralTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n BooleanTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n BreakStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n CallExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n CatchClause: TryStatement;\n ClassAccessorProperty: ClassBody;\n ClassBody: ClassDeclaration | ClassExpression;\n ClassDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ClassExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ClassImplements:\n | ClassDeclaration\n | ClassExpression\n | DeclareClass\n | DeclareExportDeclaration\n | DeclaredPredicate;\n ClassMethod: ClassBody;\n ClassPrivateMethod: ClassBody;\n ClassPrivateProperty: ClassBody;\n ClassProperty: ClassBody;\n CommentBlock: File;\n CommentLine: File;\n ConditionalExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ContinueStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DebuggerStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DecimalLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n DeclareClass:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareExportAllDeclaration:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareExportDeclaration:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareFunction:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareInterface:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareModule:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareModuleExports:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareOpaqueType:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareTypeAlias:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareVariable:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclaredPredicate:\n | ArrowFunctionExpression\n | DeclareExportDeclaration\n | DeclareFunction\n | DeclaredPredicate\n | FunctionDeclaration\n | FunctionExpression;\n Decorator:\n | ArrayPattern\n | AssignmentPattern\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | Identifier\n | ObjectMethod\n | ObjectPattern\n | ObjectProperty\n | RestElement\n | TSDeclareMethod\n | TSParameterProperty;\n Directive: BlockStatement | Program;\n DirectiveLiteral: Directive;\n DoExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n DoWhileStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n EmptyStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n EmptyTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n EnumBooleanBody:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumDeclaration;\n EnumBooleanMember:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumBooleanBody;\n EnumDeclaration:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n EnumDefaultedMember:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumStringBody\n | EnumSymbolBody;\n EnumNumberBody:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumDeclaration;\n EnumNumberMember:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumNumberBody;\n EnumStringBody:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumDeclaration;\n EnumStringMember:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumStringBody;\n EnumSymbolBody:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumDeclaration;\n ExistsTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ExportAllDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ExportDefaultDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ExportDefaultSpecifier: ExportNamedDeclaration;\n ExportNamedDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ExportNamespaceSpecifier: DeclareExportDeclaration | ExportNamedDeclaration;\n ExportSpecifier: DeclareExportDeclaration | ExportNamedDeclaration;\n ExpressionStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n File: null;\n ForInStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ForOfStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ForStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n FunctionDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n FunctionExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n FunctionTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n FunctionTypeParam:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | FunctionTypeAnnotation;\n GenericTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n Identifier:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | BreakStatement\n | CallExpression\n | CatchClause\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassImplements\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | ContinueStatement\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclareVariable\n | Decorator\n | DoWhileStatement\n | EnumBooleanMember\n | EnumDeclaration\n | EnumDefaultedMember\n | EnumNumberMember\n | EnumStringMember\n | ExportDefaultDeclaration\n | ExportDefaultSpecifier\n | ExportNamespaceSpecifier\n | ExportSpecifier\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | FunctionTypeParam\n | GenericTypeAnnotation\n | IfStatement\n | ImportAttribute\n | ImportDefaultSpecifier\n | ImportExpression\n | ImportNamespaceSpecifier\n | ImportSpecifier\n | InterfaceDeclaration\n | InterfaceExtends\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LabeledStatement\n | LogicalExpression\n | MemberExpression\n | MetaProperty\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | OpaqueType\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | Placeholder\n | PrivateName\n | QualifiedTypeIdentifier\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSExpressionWithTypeArguments\n | TSFunctionType\n | TSImportEqualsDeclaration\n | TSImportType\n | TSIndexSignature\n | TSInstantiationExpression\n | TSInterfaceDeclaration\n | TSMethodSignature\n | TSModuleDeclaration\n | TSNamedTupleMember\n | TSNamespaceExportDeclaration\n | TSNonNullExpression\n | TSParameterProperty\n | TSPropertySignature\n | TSQualifiedName\n | TSSatisfiesExpression\n | TSTypeAliasDeclaration\n | TSTypeAssertion\n | TSTypePredicate\n | TSTypeQuery\n | TSTypeReference\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeAlias\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n IfStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n Import:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ImportAttribute:\n | ExportAllDeclaration\n | ExportNamedDeclaration\n | ImportDeclaration;\n ImportDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ImportDefaultSpecifier: ImportDeclaration;\n ImportExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ImportNamespaceSpecifier: ImportDeclaration;\n ImportSpecifier: ImportDeclaration;\n IndexedAccessType:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n InferredPredicate:\n | ArrowFunctionExpression\n | DeclareExportDeclaration\n | DeclaredPredicate\n | FunctionDeclaration\n | FunctionExpression;\n InterfaceDeclaration:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n InterfaceExtends:\n | ClassDeclaration\n | ClassExpression\n | DeclareClass\n | DeclareExportDeclaration\n | DeclareInterface\n | DeclaredPredicate\n | InterfaceDeclaration\n | InterfaceTypeAnnotation;\n InterfaceTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n InterpreterDirective: Program;\n IntersectionTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n JSXAttribute: JSXOpeningElement;\n JSXClosingElement: JSXElement;\n JSXClosingFragment: JSXFragment;\n JSXElement:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXAttribute\n | JSXElement\n | JSXExpressionContainer\n | JSXFragment\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n JSXEmptyExpression: JSXExpressionContainer;\n JSXExpressionContainer: JSXAttribute | JSXElement | JSXFragment;\n JSXFragment:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXAttribute\n | JSXElement\n | JSXExpressionContainer\n | JSXFragment\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n JSXIdentifier:\n | JSXAttribute\n | JSXClosingElement\n | JSXMemberExpression\n | JSXNamespacedName\n | JSXOpeningElement;\n JSXMemberExpression:\n | JSXClosingElement\n | JSXMemberExpression\n | JSXOpeningElement;\n JSXNamespacedName:\n | CallExpression\n | JSXAttribute\n | JSXClosingElement\n | JSXOpeningElement\n | NewExpression\n | OptionalCallExpression;\n JSXOpeningElement: JSXElement;\n JSXOpeningFragment: JSXFragment;\n JSXSpreadAttribute: JSXOpeningElement;\n JSXSpreadChild: JSXElement | JSXFragment;\n JSXText: JSXElement | JSXFragment;\n LabeledStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n LogicalExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n MemberExpression:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n MetaProperty:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n MixedTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ModuleExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n NewExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n Noop:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentPattern\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | FunctionDeclaration\n | FunctionExpression\n | Identifier\n | ObjectMethod\n | ObjectPattern\n | RestElement\n | TSDeclareFunction\n | TSDeclareMethod;\n NullLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n NullLiteralTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n NullableTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n NumberLiteral: null;\n NumberLiteralTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n NumberTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n NumericLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | EnumNumberMember\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ObjectExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ObjectMethod: ObjectExpression;\n ObjectPattern:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | CatchClause\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ObjectProperty\n | RestElement\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSMethodSignature\n | VariableDeclarator;\n ObjectProperty: ObjectExpression | ObjectPattern | RecordExpression;\n ObjectTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareClass\n | DeclareExportDeclaration\n | DeclareInterface\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | InterfaceDeclaration\n | InterfaceTypeAnnotation\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ObjectTypeCallProperty:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n ObjectTypeIndexer:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n ObjectTypeInternalSlot:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n ObjectTypeProperty:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n ObjectTypeSpreadProperty:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n OpaqueType:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n OptionalCallExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n OptionalIndexedAccessType:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n OptionalMemberExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ParenthesizedExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n PipelineBareFunction:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n PipelinePrimaryTopicReference:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n PipelineTopicExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n Placeholder: Node;\n PrivateName:\n | BinaryExpression\n | ClassAccessorProperty\n | ClassPrivateMethod\n | ClassPrivateProperty\n | MemberExpression\n | ObjectProperty;\n Program: File | ModuleExpression;\n QualifiedTypeIdentifier:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | GenericTypeAnnotation\n | InterfaceExtends\n | QualifiedTypeIdentifier;\n RecordExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n RegExpLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n RegexLiteral: null;\n RestElement:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ObjectPattern\n | ObjectProperty\n | RestElement\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSMethodSignature\n | VariableDeclarator;\n RestProperty: null;\n ReturnStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n SequenceExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n SpreadElement:\n | ArrayExpression\n | CallExpression\n | NewExpression\n | ObjectExpression\n | OptionalCallExpression\n | RecordExpression\n | TupleExpression;\n SpreadProperty: null;\n StaticBlock: ClassBody;\n StringLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | DeclareExportAllDeclaration\n | DeclareExportDeclaration\n | DeclareModule\n | Decorator\n | DoWhileStatement\n | EnumStringMember\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ExportSpecifier\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportAttribute\n | ImportDeclaration\n | ImportExpression\n | ImportSpecifier\n | JSXAttribute\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | ObjectTypeProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSExternalModuleReference\n | TSImportType\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSModuleDeclaration\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n StringLiteralTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n StringTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n Super:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n SwitchCase: SwitchStatement;\n SwitchStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n SymbolTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n TSAnyKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSArrayType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSAsExpression:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSBigIntKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSBooleanKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSCallSignatureDeclaration: TSInterfaceBody | TSTypeLiteral;\n TSConditionalType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSConstructSignatureDeclaration: TSInterfaceBody | TSTypeLiteral;\n TSConstructorType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSDeclareFunction:\n | BlockStatement\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSDeclareMethod: ClassBody;\n TSEnumDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSEnumMember: TSEnumDeclaration;\n TSExportAssignment:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSExpressionWithTypeArguments:\n | ClassDeclaration\n | ClassExpression\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSInterfaceDeclaration\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSExternalModuleReference: TSImportEqualsDeclaration;\n TSFunctionType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSImportEqualsDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSImportType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSTypeQuery\n | TSUnionType\n | TemplateLiteral;\n TSIndexSignature: ClassBody | TSInterfaceBody | TSTypeLiteral;\n TSIndexedAccessType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSInferType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSInstantiationExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSInterfaceBody: TSInterfaceDeclaration;\n TSInterfaceDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSIntersectionType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSIntrinsicKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSLiteralType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSMappedType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSMethodSignature: TSInterfaceBody | TSTypeLiteral;\n TSModuleBlock: TSModuleDeclaration;\n TSModuleDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | TSModuleDeclaration\n | WhileStatement\n | WithStatement;\n TSNamedTupleMember: TSTupleType;\n TSNamespaceExportDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSNeverKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSNonNullExpression:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSNullKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSNumberKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSObjectKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSOptionalType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSParameterProperty:\n | ArrayPattern\n | AssignmentExpression\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | RestElement\n | TSDeclareMethod\n | VariableDeclarator;\n TSParenthesizedType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSPropertySignature: TSInterfaceBody | TSTypeLiteral;\n TSQualifiedName:\n | TSExpressionWithTypeArguments\n | TSImportEqualsDeclaration\n | TSImportType\n | TSQualifiedName\n | TSTypeQuery\n | TSTypeReference;\n TSRestType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSSatisfiesExpression:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSStringKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSSymbolKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSThisType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSTypePredicate\n | TSUnionType\n | TemplateLiteral;\n TSTupleType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeAliasDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSTypeAnnotation:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentPattern\n | ClassAccessorProperty\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | FunctionDeclaration\n | FunctionExpression\n | Identifier\n | ObjectMethod\n | ObjectPattern\n | RestElement\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSIndexSignature\n | TSMethodSignature\n | TSPropertySignature\n | TSTypePredicate;\n TSTypeAssertion:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSTypeLiteral:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeOperator:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeParameter: TSInferType | TSMappedType | TSTypeParameterDeclaration;\n TSTypeParameterDeclaration:\n | ArrowFunctionExpression\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateMethod\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSInterfaceDeclaration\n | TSMethodSignature\n | TSTypeAliasDeclaration;\n TSTypeParameterInstantiation:\n | CallExpression\n | ClassDeclaration\n | ClassExpression\n | JSXOpeningElement\n | NewExpression\n | OptionalCallExpression\n | TSExpressionWithTypeArguments\n | TSImportType\n | TSInstantiationExpression\n | TSTypeQuery\n | TSTypeReference\n | TaggedTemplateExpression;\n TSTypePredicate:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeQuery:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeReference:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSUndefinedKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSUnionType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSUnknownKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSVoidKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TaggedTemplateExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TemplateElement: TemplateLiteral;\n TemplateLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ThisExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ThisTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ThrowStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TopicReference:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TryStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TupleExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TupleTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n TypeAlias:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TypeAnnotation:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentPattern\n | ClassAccessorProperty\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | DeclareExportDeclaration\n | DeclareModuleExports\n | DeclaredPredicate\n | FunctionDeclaration\n | FunctionExpression\n | Identifier\n | ObjectMethod\n | ObjectPattern\n | RestElement\n | TypeCastExpression\n | TypeParameter;\n TypeCastExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | DeclareExportDeclaration\n | DeclaredPredicate\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TypeParameter:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | TypeParameterDeclaration;\n TypeParameterDeclaration:\n | ArrowFunctionExpression\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateMethod\n | DeclareClass\n | DeclareExportDeclaration\n | DeclareInterface\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionDeclaration\n | FunctionExpression\n | FunctionTypeAnnotation\n | InterfaceDeclaration\n | ObjectMethod\n | OpaqueType\n | TypeAlias;\n TypeParameterInstantiation:\n | CallExpression\n | ClassDeclaration\n | ClassExpression\n | ClassImplements\n | DeclareExportDeclaration\n | DeclaredPredicate\n | GenericTypeAnnotation\n | InterfaceExtends\n | JSXOpeningElement\n | NewExpression\n | OptionalCallExpression\n | TaggedTemplateExpression;\n TypeofTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n UnaryExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n UnionTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n UpdateExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n V8IntrinsicIdentifier: CallExpression | NewExpression;\n VariableDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n VariableDeclarator: VariableDeclaration;\n Variance:\n | ClassAccessorProperty\n | ClassPrivateProperty\n | ClassProperty\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeIndexer\n | ObjectTypeProperty\n | TypeParameter;\n VoidTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n WhileStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n WithStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n YieldExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n}\n"],"mappings":""}
\ No newline at end of file +{"version":3,"names":[],"sources":["../../../src/ast-types/generated/index.ts"],"sourcesContent":["// NOTE: This file is autogenerated. Do not modify.\n// See packages/babel-types/scripts/generators/ast-types.js for script used.\n\ninterface BaseComment {\n value: string;\n start?: number;\n end?: number;\n loc?: SourceLocation;\n // generator will skip the comment if ignore is true\n ignore?: boolean;\n type: \"CommentBlock\" | \"CommentLine\";\n}\n\ninterface Position {\n line: number;\n column: number;\n index: number;\n}\n\nexport interface CommentBlock extends BaseComment {\n type: \"CommentBlock\";\n}\n\nexport interface CommentLine extends BaseComment {\n type: \"CommentLine\";\n}\n\nexport type Comment = CommentBlock | CommentLine;\n\nexport interface SourceLocation {\n start: Position;\n end: Position;\n filename: string;\n identifierName: string | undefined | null;\n}\n\ninterface BaseNode {\n type: Node[\"type\"];\n leadingComments?: Comment[] | null;\n innerComments?: Comment[] | null;\n trailingComments?: Comment[] | null;\n start?: number | null;\n end?: number | null;\n loc?: SourceLocation | null;\n range?: [number, number];\n extra?: Record<string, unknown>;\n}\n\nexport type CommentTypeShorthand = \"leading\" | \"inner\" | \"trailing\";\n\nexport type Node =\n | AnyTypeAnnotation\n | ArgumentPlaceholder\n | ArrayExpression\n | ArrayPattern\n | ArrayTypeAnnotation\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BigIntLiteral\n | BinaryExpression\n | BindExpression\n | BlockStatement\n | BooleanLiteral\n | BooleanLiteralTypeAnnotation\n | BooleanTypeAnnotation\n | BreakStatement\n | CallExpression\n | CatchClause\n | ClassAccessorProperty\n | ClassBody\n | ClassDeclaration\n | ClassExpression\n | ClassImplements\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | ContinueStatement\n | DebuggerStatement\n | DecimalLiteral\n | DeclareClass\n | DeclareExportAllDeclaration\n | DeclareExportDeclaration\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclareVariable\n | DeclaredPredicate\n | Decorator\n | Directive\n | DirectiveLiteral\n | DoExpression\n | DoWhileStatement\n | EmptyStatement\n | EmptyTypeAnnotation\n | EnumBooleanBody\n | EnumBooleanMember\n | EnumDeclaration\n | EnumDefaultedMember\n | EnumNumberBody\n | EnumNumberMember\n | EnumStringBody\n | EnumStringMember\n | EnumSymbolBody\n | ExistsTypeAnnotation\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportDefaultSpecifier\n | ExportNamedDeclaration\n | ExportNamespaceSpecifier\n | ExportSpecifier\n | ExpressionStatement\n | File\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | GenericTypeAnnotation\n | Identifier\n | IfStatement\n | Import\n | ImportAttribute\n | ImportDeclaration\n | ImportDefaultSpecifier\n | ImportExpression\n | ImportNamespaceSpecifier\n | ImportSpecifier\n | IndexedAccessType\n | InferredPredicate\n | InterfaceDeclaration\n | InterfaceExtends\n | InterfaceTypeAnnotation\n | InterpreterDirective\n | IntersectionTypeAnnotation\n | JSXAttribute\n | JSXClosingElement\n | JSXClosingFragment\n | JSXElement\n | JSXEmptyExpression\n | JSXExpressionContainer\n | JSXFragment\n | JSXIdentifier\n | JSXMemberExpression\n | JSXNamespacedName\n | JSXOpeningElement\n | JSXOpeningFragment\n | JSXSpreadAttribute\n | JSXSpreadChild\n | JSXText\n | LabeledStatement\n | LogicalExpression\n | MemberExpression\n | MetaProperty\n | MixedTypeAnnotation\n | ModuleExpression\n | NewExpression\n | Noop\n | NullLiteral\n | NullLiteralTypeAnnotation\n | NullableTypeAnnotation\n | NumberLiteral\n | NumberLiteralTypeAnnotation\n | NumberTypeAnnotation\n | NumericLiteral\n | ObjectExpression\n | ObjectMethod\n | ObjectPattern\n | ObjectProperty\n | ObjectTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalCallExpression\n | OptionalIndexedAccessType\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelinePrimaryTopicReference\n | PipelineTopicExpression\n | Placeholder\n | PrivateName\n | Program\n | QualifiedTypeIdentifier\n | RecordExpression\n | RegExpLiteral\n | RegexLiteral\n | RestElement\n | RestProperty\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SpreadProperty\n | StaticBlock\n | StringLiteral\n | StringLiteralTypeAnnotation\n | StringTypeAnnotation\n | Super\n | SwitchCase\n | SwitchStatement\n | SymbolTypeAnnotation\n | TSAnyKeyword\n | TSArrayType\n | TSAsExpression\n | TSBigIntKeyword\n | TSBooleanKeyword\n | TSCallSignatureDeclaration\n | TSConditionalType\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSExpressionWithTypeArguments\n | TSExternalModuleReference\n | TSFunctionType\n | TSImportEqualsDeclaration\n | TSImportType\n | TSIndexSignature\n | TSIndexedAccessType\n | TSInferType\n | TSInstantiationExpression\n | TSInterfaceBody\n | TSInterfaceDeclaration\n | TSIntersectionType\n | TSIntrinsicKeyword\n | TSLiteralType\n | TSMappedType\n | TSMethodSignature\n | TSModuleBlock\n | TSModuleDeclaration\n | TSNamedTupleMember\n | TSNamespaceExportDeclaration\n | TSNeverKeyword\n | TSNonNullExpression\n | TSNullKeyword\n | TSNumberKeyword\n | TSObjectKeyword\n | TSOptionalType\n | TSParameterProperty\n | TSParenthesizedType\n | TSPropertySignature\n | TSQualifiedName\n | TSRestType\n | TSSatisfiesExpression\n | TSStringKeyword\n | TSSymbolKeyword\n | TSThisType\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeLiteral\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterDeclaration\n | TSTypeParameterInstantiation\n | TSTypePredicate\n | TSTypeQuery\n | TSTypeReference\n | TSUndefinedKeyword\n | TSUnionType\n | TSUnknownKeyword\n | TSVoidKeyword\n | TaggedTemplateExpression\n | TemplateElement\n | TemplateLiteral\n | ThisExpression\n | ThisTypeAnnotation\n | ThrowStatement\n | TopicReference\n | TryStatement\n | TupleExpression\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeCastExpression\n | TypeParameter\n | TypeParameterDeclaration\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnaryExpression\n | UnionTypeAnnotation\n | UpdateExpression\n | V8IntrinsicIdentifier\n | VariableDeclaration\n | VariableDeclarator\n | Variance\n | VoidTypeAnnotation\n | WhileStatement\n | WithStatement\n | YieldExpression;\n\nexport interface ArrayExpression extends BaseNode {\n type: \"ArrayExpression\";\n elements: Array<null | Expression | SpreadElement>;\n}\n\nexport interface AssignmentExpression extends BaseNode {\n type: \"AssignmentExpression\";\n operator: string;\n left: LVal | OptionalMemberExpression;\n right: Expression;\n}\n\nexport interface BinaryExpression extends BaseNode {\n type: \"BinaryExpression\";\n operator:\n | \"+\"\n | \"-\"\n | \"/\"\n | \"%\"\n | \"*\"\n | \"**\"\n | \"&\"\n | \"|\"\n | \">>\"\n | \">>>\"\n | \"<<\"\n | \"^\"\n | \"==\"\n | \"===\"\n | \"!=\"\n | \"!==\"\n | \"in\"\n | \"instanceof\"\n | \">\"\n | \"<\"\n | \">=\"\n | \"<=\"\n | \"|>\";\n left: Expression | PrivateName;\n right: Expression;\n}\n\nexport interface InterpreterDirective extends BaseNode {\n type: \"InterpreterDirective\";\n value: string;\n}\n\nexport interface Directive extends BaseNode {\n type: \"Directive\";\n value: DirectiveLiteral;\n}\n\nexport interface DirectiveLiteral extends BaseNode {\n type: \"DirectiveLiteral\";\n value: string;\n}\n\nexport interface BlockStatement extends BaseNode {\n type: \"BlockStatement\";\n body: Array<Statement>;\n directives: Array<Directive>;\n}\n\nexport interface BreakStatement extends BaseNode {\n type: \"BreakStatement\";\n label?: Identifier | null;\n}\n\nexport interface CallExpression extends BaseNode {\n type: \"CallExpression\";\n callee: Expression | Super | V8IntrinsicIdentifier;\n arguments: Array<\n Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder\n >;\n optional?: true | false | null;\n typeArguments?: TypeParameterInstantiation | null;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface CatchClause extends BaseNode {\n type: \"CatchClause\";\n param?: Identifier | ArrayPattern | ObjectPattern | null;\n body: BlockStatement;\n}\n\nexport interface ConditionalExpression extends BaseNode {\n type: \"ConditionalExpression\";\n test: Expression;\n consequent: Expression;\n alternate: Expression;\n}\n\nexport interface ContinueStatement extends BaseNode {\n type: \"ContinueStatement\";\n label?: Identifier | null;\n}\n\nexport interface DebuggerStatement extends BaseNode {\n type: \"DebuggerStatement\";\n}\n\nexport interface DoWhileStatement extends BaseNode {\n type: \"DoWhileStatement\";\n test: Expression;\n body: Statement;\n}\n\nexport interface EmptyStatement extends BaseNode {\n type: \"EmptyStatement\";\n}\n\nexport interface ExpressionStatement extends BaseNode {\n type: \"ExpressionStatement\";\n expression: Expression;\n}\n\nexport interface File extends BaseNode {\n type: \"File\";\n program: Program;\n comments?: Array<CommentBlock | CommentLine> | null;\n tokens?: Array<any> | null;\n}\n\nexport interface ForInStatement extends BaseNode {\n type: \"ForInStatement\";\n left: VariableDeclaration | LVal;\n right: Expression;\n body: Statement;\n}\n\nexport interface ForStatement extends BaseNode {\n type: \"ForStatement\";\n init?: VariableDeclaration | Expression | null;\n test?: Expression | null;\n update?: Expression | null;\n body: Statement;\n}\n\nexport interface FunctionDeclaration extends BaseNode {\n type: \"FunctionDeclaration\";\n id?: Identifier | null;\n params: Array<Identifier | Pattern | RestElement>;\n body: BlockStatement;\n generator: boolean;\n async: boolean;\n declare?: boolean | null;\n predicate?: DeclaredPredicate | InferredPredicate | null;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface FunctionExpression extends BaseNode {\n type: \"FunctionExpression\";\n id?: Identifier | null;\n params: Array<Identifier | Pattern | RestElement>;\n body: BlockStatement;\n generator: boolean;\n async: boolean;\n predicate?: DeclaredPredicate | InferredPredicate | null;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface Identifier extends BaseNode {\n type: \"Identifier\";\n name: string;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface IfStatement extends BaseNode {\n type: \"IfStatement\";\n test: Expression;\n consequent: Statement;\n alternate?: Statement | null;\n}\n\nexport interface LabeledStatement extends BaseNode {\n type: \"LabeledStatement\";\n label: Identifier;\n body: Statement;\n}\n\nexport interface StringLiteral extends BaseNode {\n type: \"StringLiteral\";\n value: string;\n}\n\nexport interface NumericLiteral extends BaseNode {\n type: \"NumericLiteral\";\n value: number;\n}\n\n/**\n * @deprecated Use `NumericLiteral`\n */\nexport interface NumberLiteral extends BaseNode {\n type: \"NumberLiteral\";\n value: number;\n}\n\nexport interface NullLiteral extends BaseNode {\n type: \"NullLiteral\";\n}\n\nexport interface BooleanLiteral extends BaseNode {\n type: \"BooleanLiteral\";\n value: boolean;\n}\n\nexport interface RegExpLiteral extends BaseNode {\n type: \"RegExpLiteral\";\n pattern: string;\n flags: string;\n}\n\n/**\n * @deprecated Use `RegExpLiteral`\n */\nexport interface RegexLiteral extends BaseNode {\n type: \"RegexLiteral\";\n pattern: string;\n flags: string;\n}\n\nexport interface LogicalExpression extends BaseNode {\n type: \"LogicalExpression\";\n operator: \"||\" | \"&&\" | \"??\";\n left: Expression;\n right: Expression;\n}\n\nexport interface MemberExpression extends BaseNode {\n type: \"MemberExpression\";\n object: Expression | Super;\n property: Expression | Identifier | PrivateName;\n computed: boolean;\n optional?: true | false | null;\n}\n\nexport interface NewExpression extends BaseNode {\n type: \"NewExpression\";\n callee: Expression | Super | V8IntrinsicIdentifier;\n arguments: Array<\n Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder\n >;\n optional?: true | false | null;\n typeArguments?: TypeParameterInstantiation | null;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface Program extends BaseNode {\n type: \"Program\";\n body: Array<Statement>;\n directives: Array<Directive>;\n sourceType: \"script\" | \"module\";\n interpreter?: InterpreterDirective | null;\n sourceFile: string;\n}\n\nexport interface ObjectExpression extends BaseNode {\n type: \"ObjectExpression\";\n properties: Array<ObjectMethod | ObjectProperty | SpreadElement>;\n}\n\nexport interface ObjectMethod extends BaseNode {\n type: \"ObjectMethod\";\n kind: \"method\" | \"get\" | \"set\";\n key: Expression | Identifier | StringLiteral | NumericLiteral | BigIntLiteral;\n params: Array<Identifier | Pattern | RestElement>;\n body: BlockStatement;\n computed: boolean;\n generator: boolean;\n async: boolean;\n decorators?: Array<Decorator> | null;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ObjectProperty extends BaseNode {\n type: \"ObjectProperty\";\n key:\n | Expression\n | Identifier\n | StringLiteral\n | NumericLiteral\n | BigIntLiteral\n | DecimalLiteral\n | PrivateName;\n value: Expression | PatternLike;\n computed: boolean;\n shorthand: boolean;\n decorators?: Array<Decorator> | null;\n}\n\nexport interface RestElement extends BaseNode {\n type: \"RestElement\";\n argument: LVal;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\n/**\n * @deprecated Use `RestElement`\n */\nexport interface RestProperty extends BaseNode {\n type: \"RestProperty\";\n argument: LVal;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface ReturnStatement extends BaseNode {\n type: \"ReturnStatement\";\n argument?: Expression | null;\n}\n\nexport interface SequenceExpression extends BaseNode {\n type: \"SequenceExpression\";\n expressions: Array<Expression>;\n}\n\nexport interface ParenthesizedExpression extends BaseNode {\n type: \"ParenthesizedExpression\";\n expression: Expression;\n}\n\nexport interface SwitchCase extends BaseNode {\n type: \"SwitchCase\";\n test?: Expression | null;\n consequent: Array<Statement>;\n}\n\nexport interface SwitchStatement extends BaseNode {\n type: \"SwitchStatement\";\n discriminant: Expression;\n cases: Array<SwitchCase>;\n}\n\nexport interface ThisExpression extends BaseNode {\n type: \"ThisExpression\";\n}\n\nexport interface ThrowStatement extends BaseNode {\n type: \"ThrowStatement\";\n argument: Expression;\n}\n\nexport interface TryStatement extends BaseNode {\n type: \"TryStatement\";\n block: BlockStatement;\n handler?: CatchClause | null;\n finalizer?: BlockStatement | null;\n}\n\nexport interface UnaryExpression extends BaseNode {\n type: \"UnaryExpression\";\n operator: \"void\" | \"throw\" | \"delete\" | \"!\" | \"+\" | \"-\" | \"~\" | \"typeof\";\n argument: Expression;\n prefix: boolean;\n}\n\nexport interface UpdateExpression extends BaseNode {\n type: \"UpdateExpression\";\n operator: \"++\" | \"--\";\n argument: Expression;\n prefix: boolean;\n}\n\nexport interface VariableDeclaration extends BaseNode {\n type: \"VariableDeclaration\";\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\";\n declarations: Array<VariableDeclarator>;\n declare?: boolean | null;\n}\n\nexport interface VariableDeclarator extends BaseNode {\n type: \"VariableDeclarator\";\n id: LVal;\n init?: Expression | null;\n definite?: boolean | null;\n}\n\nexport interface WhileStatement extends BaseNode {\n type: \"WhileStatement\";\n test: Expression;\n body: Statement;\n}\n\nexport interface WithStatement extends BaseNode {\n type: \"WithStatement\";\n object: Expression;\n body: Statement;\n}\n\nexport interface AssignmentPattern extends BaseNode {\n type: \"AssignmentPattern\";\n left:\n | Identifier\n | ObjectPattern\n | ArrayPattern\n | MemberExpression\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSNonNullExpression;\n right: Expression;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface ArrayPattern extends BaseNode {\n type: \"ArrayPattern\";\n elements: Array<null | PatternLike | LVal>;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface ArrowFunctionExpression extends BaseNode {\n type: \"ArrowFunctionExpression\";\n params: Array<Identifier | Pattern | RestElement>;\n body: BlockStatement | Expression;\n async: boolean;\n expression: boolean;\n generator?: boolean;\n predicate?: DeclaredPredicate | InferredPredicate | null;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ClassBody extends BaseNode {\n type: \"ClassBody\";\n body: Array<\n | ClassMethod\n | ClassPrivateMethod\n | ClassProperty\n | ClassPrivateProperty\n | ClassAccessorProperty\n | TSDeclareMethod\n | TSIndexSignature\n | StaticBlock\n >;\n}\n\nexport interface ClassExpression extends BaseNode {\n type: \"ClassExpression\";\n id?: Identifier | null;\n superClass?: Expression | null;\n body: ClassBody;\n decorators?: Array<Decorator> | null;\n implements?: Array<TSExpressionWithTypeArguments | ClassImplements> | null;\n mixins?: InterfaceExtends | null;\n superTypeParameters?:\n | TypeParameterInstantiation\n | TSTypeParameterInstantiation\n | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ClassDeclaration extends BaseNode {\n type: \"ClassDeclaration\";\n id?: Identifier | null;\n superClass?: Expression | null;\n body: ClassBody;\n decorators?: Array<Decorator> | null;\n abstract?: boolean | null;\n declare?: boolean | null;\n implements?: Array<TSExpressionWithTypeArguments | ClassImplements> | null;\n mixins?: InterfaceExtends | null;\n superTypeParameters?:\n | TypeParameterInstantiation\n | TSTypeParameterInstantiation\n | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ExportAllDeclaration extends BaseNode {\n type: \"ExportAllDeclaration\";\n source: StringLiteral;\n assertions?: Array<ImportAttribute> | null;\n attributes?: Array<ImportAttribute> | null;\n exportKind?: \"type\" | \"value\" | null;\n}\n\nexport interface ExportDefaultDeclaration extends BaseNode {\n type: \"ExportDefaultDeclaration\";\n declaration:\n | TSDeclareFunction\n | FunctionDeclaration\n | ClassDeclaration\n | Expression;\n exportKind?: \"value\" | null;\n}\n\nexport interface ExportNamedDeclaration extends BaseNode {\n type: \"ExportNamedDeclaration\";\n declaration?: Declaration | null;\n specifiers: Array<\n ExportSpecifier | ExportDefaultSpecifier | ExportNamespaceSpecifier\n >;\n source?: StringLiteral | null;\n assertions?: Array<ImportAttribute> | null;\n attributes?: Array<ImportAttribute> | null;\n exportKind?: \"type\" | \"value\" | null;\n}\n\nexport interface ExportSpecifier extends BaseNode {\n type: \"ExportSpecifier\";\n local: Identifier;\n exported: Identifier | StringLiteral;\n exportKind?: \"type\" | \"value\" | null;\n}\n\nexport interface ForOfStatement extends BaseNode {\n type: \"ForOfStatement\";\n left: VariableDeclaration | LVal;\n right: Expression;\n body: Statement;\n await: boolean;\n}\n\nexport interface ImportDeclaration extends BaseNode {\n type: \"ImportDeclaration\";\n specifiers: Array<\n ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier\n >;\n source: StringLiteral;\n assertions?: Array<ImportAttribute> | null;\n attributes?: Array<ImportAttribute> | null;\n importKind?: \"type\" | \"typeof\" | \"value\" | null;\n module?: boolean | null;\n phase?: \"source\" | \"defer\" | null;\n}\n\nexport interface ImportDefaultSpecifier extends BaseNode {\n type: \"ImportDefaultSpecifier\";\n local: Identifier;\n}\n\nexport interface ImportNamespaceSpecifier extends BaseNode {\n type: \"ImportNamespaceSpecifier\";\n local: Identifier;\n}\n\nexport interface ImportSpecifier extends BaseNode {\n type: \"ImportSpecifier\";\n local: Identifier;\n imported: Identifier | StringLiteral;\n importKind?: \"type\" | \"typeof\" | \"value\" | null;\n}\n\nexport interface ImportExpression extends BaseNode {\n type: \"ImportExpression\";\n source: Expression;\n options?: Expression | null;\n phase?: \"source\" | \"defer\" | null;\n}\n\nexport interface MetaProperty extends BaseNode {\n type: \"MetaProperty\";\n meta: Identifier;\n property: Identifier;\n}\n\nexport interface ClassMethod extends BaseNode {\n type: \"ClassMethod\";\n kind: \"get\" | \"set\" | \"method\" | \"constructor\";\n key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression;\n params: Array<Identifier | Pattern | RestElement | TSParameterProperty>;\n body: BlockStatement;\n computed: boolean;\n static: boolean;\n generator: boolean;\n async: boolean;\n abstract?: boolean | null;\n access?: \"public\" | \"private\" | \"protected\" | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n override?: boolean;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface ObjectPattern extends BaseNode {\n type: \"ObjectPattern\";\n properties: Array<RestElement | ObjectProperty>;\n decorators?: Array<Decorator> | null;\n optional?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n}\n\nexport interface SpreadElement extends BaseNode {\n type: \"SpreadElement\";\n argument: Expression;\n}\n\n/**\n * @deprecated Use `SpreadElement`\n */\nexport interface SpreadProperty extends BaseNode {\n type: \"SpreadProperty\";\n argument: Expression;\n}\n\nexport interface Super extends BaseNode {\n type: \"Super\";\n}\n\nexport interface TaggedTemplateExpression extends BaseNode {\n type: \"TaggedTemplateExpression\";\n tag: Expression;\n quasi: TemplateLiteral;\n typeParameters?:\n | TypeParameterInstantiation\n | TSTypeParameterInstantiation\n | null;\n}\n\nexport interface TemplateElement extends BaseNode {\n type: \"TemplateElement\";\n value: { raw: string; cooked?: string };\n tail: boolean;\n}\n\nexport interface TemplateLiteral extends BaseNode {\n type: \"TemplateLiteral\";\n quasis: Array<TemplateElement>;\n expressions: Array<Expression | TSType>;\n}\n\nexport interface YieldExpression extends BaseNode {\n type: \"YieldExpression\";\n argument?: Expression | null;\n delegate: boolean;\n}\n\nexport interface AwaitExpression extends BaseNode {\n type: \"AwaitExpression\";\n argument: Expression;\n}\n\nexport interface Import extends BaseNode {\n type: \"Import\";\n}\n\nexport interface BigIntLiteral extends BaseNode {\n type: \"BigIntLiteral\";\n value: string;\n}\n\nexport interface ExportNamespaceSpecifier extends BaseNode {\n type: \"ExportNamespaceSpecifier\";\n exported: Identifier;\n}\n\nexport interface OptionalMemberExpression extends BaseNode {\n type: \"OptionalMemberExpression\";\n object: Expression;\n property: Expression | Identifier;\n computed: boolean;\n optional: boolean;\n}\n\nexport interface OptionalCallExpression extends BaseNode {\n type: \"OptionalCallExpression\";\n callee: Expression;\n arguments: Array<\n Expression | SpreadElement | JSXNamespacedName | ArgumentPlaceholder\n >;\n optional: boolean;\n typeArguments?: TypeParameterInstantiation | null;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface ClassProperty extends BaseNode {\n type: \"ClassProperty\";\n key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression;\n value?: Expression | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n decorators?: Array<Decorator> | null;\n computed: boolean;\n static: boolean;\n abstract?: boolean | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n declare?: boolean | null;\n definite?: boolean | null;\n optional?: boolean | null;\n override?: boolean;\n readonly?: boolean | null;\n variance?: Variance | null;\n}\n\nexport interface ClassAccessorProperty extends BaseNode {\n type: \"ClassAccessorProperty\";\n key:\n | Identifier\n | StringLiteral\n | NumericLiteral\n | BigIntLiteral\n | Expression\n | PrivateName;\n value?: Expression | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n decorators?: Array<Decorator> | null;\n computed: boolean;\n static: boolean;\n abstract?: boolean | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n declare?: boolean | null;\n definite?: boolean | null;\n optional?: boolean | null;\n override?: boolean;\n readonly?: boolean | null;\n variance?: Variance | null;\n}\n\nexport interface ClassPrivateProperty extends BaseNode {\n type: \"ClassPrivateProperty\";\n key: PrivateName;\n value?: Expression | null;\n decorators?: Array<Decorator> | null;\n static: boolean;\n definite?: boolean | null;\n readonly?: boolean | null;\n typeAnnotation?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n variance?: Variance | null;\n}\n\nexport interface ClassPrivateMethod extends BaseNode {\n type: \"ClassPrivateMethod\";\n kind: \"get\" | \"set\" | \"method\";\n key: PrivateName;\n params: Array<Identifier | Pattern | RestElement | TSParameterProperty>;\n body: BlockStatement;\n static: boolean;\n abstract?: boolean | null;\n access?: \"public\" | \"private\" | \"protected\" | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n async?: boolean;\n computed?: boolean;\n decorators?: Array<Decorator> | null;\n generator?: boolean;\n optional?: boolean | null;\n override?: boolean;\n returnType?: TypeAnnotation | TSTypeAnnotation | Noop | null;\n typeParameters?:\n | TypeParameterDeclaration\n | TSTypeParameterDeclaration\n | Noop\n | null;\n}\n\nexport interface PrivateName extends BaseNode {\n type: \"PrivateName\";\n id: Identifier;\n}\n\nexport interface StaticBlock extends BaseNode {\n type: \"StaticBlock\";\n body: Array<Statement>;\n}\n\nexport interface AnyTypeAnnotation extends BaseNode {\n type: \"AnyTypeAnnotation\";\n}\n\nexport interface ArrayTypeAnnotation extends BaseNode {\n type: \"ArrayTypeAnnotation\";\n elementType: FlowType;\n}\n\nexport interface BooleanTypeAnnotation extends BaseNode {\n type: \"BooleanTypeAnnotation\";\n}\n\nexport interface BooleanLiteralTypeAnnotation extends BaseNode {\n type: \"BooleanLiteralTypeAnnotation\";\n value: boolean;\n}\n\nexport interface NullLiteralTypeAnnotation extends BaseNode {\n type: \"NullLiteralTypeAnnotation\";\n}\n\nexport interface ClassImplements extends BaseNode {\n type: \"ClassImplements\";\n id: Identifier;\n typeParameters?: TypeParameterInstantiation | null;\n}\n\nexport interface DeclareClass extends BaseNode {\n type: \"DeclareClass\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n extends?: Array<InterfaceExtends> | null;\n body: ObjectTypeAnnotation;\n implements?: Array<ClassImplements> | null;\n mixins?: Array<InterfaceExtends> | null;\n}\n\nexport interface DeclareFunction extends BaseNode {\n type: \"DeclareFunction\";\n id: Identifier;\n predicate?: DeclaredPredicate | null;\n}\n\nexport interface DeclareInterface extends BaseNode {\n type: \"DeclareInterface\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n extends?: Array<InterfaceExtends> | null;\n body: ObjectTypeAnnotation;\n}\n\nexport interface DeclareModule extends BaseNode {\n type: \"DeclareModule\";\n id: Identifier | StringLiteral;\n body: BlockStatement;\n kind?: \"CommonJS\" | \"ES\" | null;\n}\n\nexport interface DeclareModuleExports extends BaseNode {\n type: \"DeclareModuleExports\";\n typeAnnotation: TypeAnnotation;\n}\n\nexport interface DeclareTypeAlias extends BaseNode {\n type: \"DeclareTypeAlias\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n right: FlowType;\n}\n\nexport interface DeclareOpaqueType extends BaseNode {\n type: \"DeclareOpaqueType\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n supertype?: FlowType | null;\n impltype?: FlowType | null;\n}\n\nexport interface DeclareVariable extends BaseNode {\n type: \"DeclareVariable\";\n id: Identifier;\n}\n\nexport interface DeclareExportDeclaration extends BaseNode {\n type: \"DeclareExportDeclaration\";\n declaration?: Flow | null;\n specifiers?: Array<ExportSpecifier | ExportNamespaceSpecifier> | null;\n source?: StringLiteral | null;\n default?: boolean | null;\n}\n\nexport interface DeclareExportAllDeclaration extends BaseNode {\n type: \"DeclareExportAllDeclaration\";\n source: StringLiteral;\n exportKind?: \"type\" | \"value\" | null;\n}\n\nexport interface DeclaredPredicate extends BaseNode {\n type: \"DeclaredPredicate\";\n value: Flow;\n}\n\nexport interface ExistsTypeAnnotation extends BaseNode {\n type: \"ExistsTypeAnnotation\";\n}\n\nexport interface FunctionTypeAnnotation extends BaseNode {\n type: \"FunctionTypeAnnotation\";\n typeParameters?: TypeParameterDeclaration | null;\n params: Array<FunctionTypeParam>;\n rest?: FunctionTypeParam | null;\n returnType: FlowType;\n this?: FunctionTypeParam | null;\n}\n\nexport interface FunctionTypeParam extends BaseNode {\n type: \"FunctionTypeParam\";\n name?: Identifier | null;\n typeAnnotation: FlowType;\n optional?: boolean | null;\n}\n\nexport interface GenericTypeAnnotation extends BaseNode {\n type: \"GenericTypeAnnotation\";\n id: Identifier | QualifiedTypeIdentifier;\n typeParameters?: TypeParameterInstantiation | null;\n}\n\nexport interface InferredPredicate extends BaseNode {\n type: \"InferredPredicate\";\n}\n\nexport interface InterfaceExtends extends BaseNode {\n type: \"InterfaceExtends\";\n id: Identifier | QualifiedTypeIdentifier;\n typeParameters?: TypeParameterInstantiation | null;\n}\n\nexport interface InterfaceDeclaration extends BaseNode {\n type: \"InterfaceDeclaration\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n extends?: Array<InterfaceExtends> | null;\n body: ObjectTypeAnnotation;\n}\n\nexport interface InterfaceTypeAnnotation extends BaseNode {\n type: \"InterfaceTypeAnnotation\";\n extends?: Array<InterfaceExtends> | null;\n body: ObjectTypeAnnotation;\n}\n\nexport interface IntersectionTypeAnnotation extends BaseNode {\n type: \"IntersectionTypeAnnotation\";\n types: Array<FlowType>;\n}\n\nexport interface MixedTypeAnnotation extends BaseNode {\n type: \"MixedTypeAnnotation\";\n}\n\nexport interface EmptyTypeAnnotation extends BaseNode {\n type: \"EmptyTypeAnnotation\";\n}\n\nexport interface NullableTypeAnnotation extends BaseNode {\n type: \"NullableTypeAnnotation\";\n typeAnnotation: FlowType;\n}\n\nexport interface NumberLiteralTypeAnnotation extends BaseNode {\n type: \"NumberLiteralTypeAnnotation\";\n value: number;\n}\n\nexport interface NumberTypeAnnotation extends BaseNode {\n type: \"NumberTypeAnnotation\";\n}\n\nexport interface ObjectTypeAnnotation extends BaseNode {\n type: \"ObjectTypeAnnotation\";\n properties: Array<ObjectTypeProperty | ObjectTypeSpreadProperty>;\n indexers?: Array<ObjectTypeIndexer>;\n callProperties?: Array<ObjectTypeCallProperty>;\n internalSlots?: Array<ObjectTypeInternalSlot>;\n exact: boolean;\n inexact?: boolean | null;\n}\n\nexport interface ObjectTypeInternalSlot extends BaseNode {\n type: \"ObjectTypeInternalSlot\";\n id: Identifier;\n value: FlowType;\n optional: boolean;\n static: boolean;\n method: boolean;\n}\n\nexport interface ObjectTypeCallProperty extends BaseNode {\n type: \"ObjectTypeCallProperty\";\n value: FlowType;\n static: boolean;\n}\n\nexport interface ObjectTypeIndexer extends BaseNode {\n type: \"ObjectTypeIndexer\";\n id?: Identifier | null;\n key: FlowType;\n value: FlowType;\n variance?: Variance | null;\n static: boolean;\n}\n\nexport interface ObjectTypeProperty extends BaseNode {\n type: \"ObjectTypeProperty\";\n key: Identifier | StringLiteral;\n value: FlowType;\n variance?: Variance | null;\n kind: \"init\" | \"get\" | \"set\";\n method: boolean;\n optional: boolean;\n proto: boolean;\n static: boolean;\n}\n\nexport interface ObjectTypeSpreadProperty extends BaseNode {\n type: \"ObjectTypeSpreadProperty\";\n argument: FlowType;\n}\n\nexport interface OpaqueType extends BaseNode {\n type: \"OpaqueType\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n supertype?: FlowType | null;\n impltype: FlowType;\n}\n\nexport interface QualifiedTypeIdentifier extends BaseNode {\n type: \"QualifiedTypeIdentifier\";\n id: Identifier;\n qualification: Identifier | QualifiedTypeIdentifier;\n}\n\nexport interface StringLiteralTypeAnnotation extends BaseNode {\n type: \"StringLiteralTypeAnnotation\";\n value: string;\n}\n\nexport interface StringTypeAnnotation extends BaseNode {\n type: \"StringTypeAnnotation\";\n}\n\nexport interface SymbolTypeAnnotation extends BaseNode {\n type: \"SymbolTypeAnnotation\";\n}\n\nexport interface ThisTypeAnnotation extends BaseNode {\n type: \"ThisTypeAnnotation\";\n}\n\nexport interface TupleTypeAnnotation extends BaseNode {\n type: \"TupleTypeAnnotation\";\n types: Array<FlowType>;\n}\n\nexport interface TypeofTypeAnnotation extends BaseNode {\n type: \"TypeofTypeAnnotation\";\n argument: FlowType;\n}\n\nexport interface TypeAlias extends BaseNode {\n type: \"TypeAlias\";\n id: Identifier;\n typeParameters?: TypeParameterDeclaration | null;\n right: FlowType;\n}\n\nexport interface TypeAnnotation extends BaseNode {\n type: \"TypeAnnotation\";\n typeAnnotation: FlowType;\n}\n\nexport interface TypeCastExpression extends BaseNode {\n type: \"TypeCastExpression\";\n expression: Expression;\n typeAnnotation: TypeAnnotation;\n}\n\nexport interface TypeParameter extends BaseNode {\n type: \"TypeParameter\";\n bound?: TypeAnnotation | null;\n default?: FlowType | null;\n variance?: Variance | null;\n name: string;\n}\n\nexport interface TypeParameterDeclaration extends BaseNode {\n type: \"TypeParameterDeclaration\";\n params: Array<TypeParameter>;\n}\n\nexport interface TypeParameterInstantiation extends BaseNode {\n type: \"TypeParameterInstantiation\";\n params: Array<FlowType>;\n}\n\nexport interface UnionTypeAnnotation extends BaseNode {\n type: \"UnionTypeAnnotation\";\n types: Array<FlowType>;\n}\n\nexport interface Variance extends BaseNode {\n type: \"Variance\";\n kind: \"minus\" | \"plus\";\n}\n\nexport interface VoidTypeAnnotation extends BaseNode {\n type: \"VoidTypeAnnotation\";\n}\n\nexport interface EnumDeclaration extends BaseNode {\n type: \"EnumDeclaration\";\n id: Identifier;\n body: EnumBooleanBody | EnumNumberBody | EnumStringBody | EnumSymbolBody;\n}\n\nexport interface EnumBooleanBody extends BaseNode {\n type: \"EnumBooleanBody\";\n members: Array<EnumBooleanMember>;\n explicitType: boolean;\n hasUnknownMembers: boolean;\n}\n\nexport interface EnumNumberBody extends BaseNode {\n type: \"EnumNumberBody\";\n members: Array<EnumNumberMember>;\n explicitType: boolean;\n hasUnknownMembers: boolean;\n}\n\nexport interface EnumStringBody extends BaseNode {\n type: \"EnumStringBody\";\n members: Array<EnumStringMember | EnumDefaultedMember>;\n explicitType: boolean;\n hasUnknownMembers: boolean;\n}\n\nexport interface EnumSymbolBody extends BaseNode {\n type: \"EnumSymbolBody\";\n members: Array<EnumDefaultedMember>;\n hasUnknownMembers: boolean;\n}\n\nexport interface EnumBooleanMember extends BaseNode {\n type: \"EnumBooleanMember\";\n id: Identifier;\n init: BooleanLiteral;\n}\n\nexport interface EnumNumberMember extends BaseNode {\n type: \"EnumNumberMember\";\n id: Identifier;\n init: NumericLiteral;\n}\n\nexport interface EnumStringMember extends BaseNode {\n type: \"EnumStringMember\";\n id: Identifier;\n init: StringLiteral;\n}\n\nexport interface EnumDefaultedMember extends BaseNode {\n type: \"EnumDefaultedMember\";\n id: Identifier;\n}\n\nexport interface IndexedAccessType extends BaseNode {\n type: \"IndexedAccessType\";\n objectType: FlowType;\n indexType: FlowType;\n}\n\nexport interface OptionalIndexedAccessType extends BaseNode {\n type: \"OptionalIndexedAccessType\";\n objectType: FlowType;\n indexType: FlowType;\n optional: boolean;\n}\n\nexport interface JSXAttribute extends BaseNode {\n type: \"JSXAttribute\";\n name: JSXIdentifier | JSXNamespacedName;\n value?:\n | JSXElement\n | JSXFragment\n | StringLiteral\n | JSXExpressionContainer\n | null;\n}\n\nexport interface JSXClosingElement extends BaseNode {\n type: \"JSXClosingElement\";\n name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName;\n}\n\nexport interface JSXElement extends BaseNode {\n type: \"JSXElement\";\n openingElement: JSXOpeningElement;\n closingElement?: JSXClosingElement | null;\n children: Array<\n JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment\n >;\n selfClosing?: boolean | null;\n}\n\nexport interface JSXEmptyExpression extends BaseNode {\n type: \"JSXEmptyExpression\";\n}\n\nexport interface JSXExpressionContainer extends BaseNode {\n type: \"JSXExpressionContainer\";\n expression: Expression | JSXEmptyExpression;\n}\n\nexport interface JSXSpreadChild extends BaseNode {\n type: \"JSXSpreadChild\";\n expression: Expression;\n}\n\nexport interface JSXIdentifier extends BaseNode {\n type: \"JSXIdentifier\";\n name: string;\n}\n\nexport interface JSXMemberExpression extends BaseNode {\n type: \"JSXMemberExpression\";\n object: JSXMemberExpression | JSXIdentifier;\n property: JSXIdentifier;\n}\n\nexport interface JSXNamespacedName extends BaseNode {\n type: \"JSXNamespacedName\";\n namespace: JSXIdentifier;\n name: JSXIdentifier;\n}\n\nexport interface JSXOpeningElement extends BaseNode {\n type: \"JSXOpeningElement\";\n name: JSXIdentifier | JSXMemberExpression | JSXNamespacedName;\n attributes: Array<JSXAttribute | JSXSpreadAttribute>;\n selfClosing: boolean;\n typeParameters?:\n | TypeParameterInstantiation\n | TSTypeParameterInstantiation\n | null;\n}\n\nexport interface JSXSpreadAttribute extends BaseNode {\n type: \"JSXSpreadAttribute\";\n argument: Expression;\n}\n\nexport interface JSXText extends BaseNode {\n type: \"JSXText\";\n value: string;\n}\n\nexport interface JSXFragment extends BaseNode {\n type: \"JSXFragment\";\n openingFragment: JSXOpeningFragment;\n closingFragment: JSXClosingFragment;\n children: Array<\n JSXText | JSXExpressionContainer | JSXSpreadChild | JSXElement | JSXFragment\n >;\n}\n\nexport interface JSXOpeningFragment extends BaseNode {\n type: \"JSXOpeningFragment\";\n}\n\nexport interface JSXClosingFragment extends BaseNode {\n type: \"JSXClosingFragment\";\n}\n\nexport interface Noop extends BaseNode {\n type: \"Noop\";\n}\n\nexport interface Placeholder extends BaseNode {\n type: \"Placeholder\";\n expectedNode:\n | \"Identifier\"\n | \"StringLiteral\"\n | \"Expression\"\n | \"Statement\"\n | \"Declaration\"\n | \"BlockStatement\"\n | \"ClassBody\"\n | \"Pattern\";\n name: Identifier;\n}\n\nexport interface V8IntrinsicIdentifier extends BaseNode {\n type: \"V8IntrinsicIdentifier\";\n name: string;\n}\n\nexport interface ArgumentPlaceholder extends BaseNode {\n type: \"ArgumentPlaceholder\";\n}\n\nexport interface BindExpression extends BaseNode {\n type: \"BindExpression\";\n object: Expression;\n callee: Expression;\n}\n\nexport interface ImportAttribute extends BaseNode {\n type: \"ImportAttribute\";\n key: Identifier | StringLiteral;\n value: StringLiteral;\n}\n\nexport interface Decorator extends BaseNode {\n type: \"Decorator\";\n expression: Expression;\n}\n\nexport interface DoExpression extends BaseNode {\n type: \"DoExpression\";\n body: BlockStatement;\n async: boolean;\n}\n\nexport interface ExportDefaultSpecifier extends BaseNode {\n type: \"ExportDefaultSpecifier\";\n exported: Identifier;\n}\n\nexport interface RecordExpression extends BaseNode {\n type: \"RecordExpression\";\n properties: Array<ObjectProperty | SpreadElement>;\n}\n\nexport interface TupleExpression extends BaseNode {\n type: \"TupleExpression\";\n elements: Array<Expression | SpreadElement>;\n}\n\nexport interface DecimalLiteral extends BaseNode {\n type: \"DecimalLiteral\";\n value: string;\n}\n\nexport interface ModuleExpression extends BaseNode {\n type: \"ModuleExpression\";\n body: Program;\n}\n\nexport interface TopicReference extends BaseNode {\n type: \"TopicReference\";\n}\n\nexport interface PipelineTopicExpression extends BaseNode {\n type: \"PipelineTopicExpression\";\n expression: Expression;\n}\n\nexport interface PipelineBareFunction extends BaseNode {\n type: \"PipelineBareFunction\";\n callee: Expression;\n}\n\nexport interface PipelinePrimaryTopicReference extends BaseNode {\n type: \"PipelinePrimaryTopicReference\";\n}\n\nexport interface TSParameterProperty extends BaseNode {\n type: \"TSParameterProperty\";\n parameter: Identifier | AssignmentPattern;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n decorators?: Array<Decorator> | null;\n override?: boolean | null;\n readonly?: boolean | null;\n}\n\nexport interface TSDeclareFunction extends BaseNode {\n type: \"TSDeclareFunction\";\n id?: Identifier | null;\n typeParameters?: TSTypeParameterDeclaration | Noop | null;\n params: Array<Identifier | Pattern | RestElement>;\n returnType?: TSTypeAnnotation | Noop | null;\n async?: boolean;\n declare?: boolean | null;\n generator?: boolean;\n}\n\nexport interface TSDeclareMethod extends BaseNode {\n type: \"TSDeclareMethod\";\n decorators?: Array<Decorator> | null;\n key: Identifier | StringLiteral | NumericLiteral | BigIntLiteral | Expression;\n typeParameters?: TSTypeParameterDeclaration | Noop | null;\n params: Array<Identifier | Pattern | RestElement | TSParameterProperty>;\n returnType?: TSTypeAnnotation | Noop | null;\n abstract?: boolean | null;\n access?: \"public\" | \"private\" | \"protected\" | null;\n accessibility?: \"public\" | \"private\" | \"protected\" | null;\n async?: boolean;\n computed?: boolean;\n generator?: boolean;\n kind?: \"get\" | \"set\" | \"method\" | \"constructor\";\n optional?: boolean | null;\n override?: boolean;\n static?: boolean;\n}\n\nexport interface TSQualifiedName extends BaseNode {\n type: \"TSQualifiedName\";\n left: TSEntityName;\n right: Identifier;\n}\n\nexport interface TSCallSignatureDeclaration extends BaseNode {\n type: \"TSCallSignatureDeclaration\";\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n}\n\nexport interface TSConstructSignatureDeclaration extends BaseNode {\n type: \"TSConstructSignatureDeclaration\";\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n}\n\nexport interface TSPropertySignature extends BaseNode {\n type: \"TSPropertySignature\";\n key: Expression;\n typeAnnotation?: TSTypeAnnotation | null;\n computed?: boolean;\n kind: \"get\" | \"set\";\n optional?: boolean | null;\n readonly?: boolean | null;\n}\n\nexport interface TSMethodSignature extends BaseNode {\n type: \"TSMethodSignature\";\n key: Expression;\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n computed?: boolean;\n kind: \"method\" | \"get\" | \"set\";\n optional?: boolean | null;\n}\n\nexport interface TSIndexSignature extends BaseNode {\n type: \"TSIndexSignature\";\n parameters: Array<Identifier>;\n typeAnnotation?: TSTypeAnnotation | null;\n readonly?: boolean | null;\n static?: boolean | null;\n}\n\nexport interface TSAnyKeyword extends BaseNode {\n type: \"TSAnyKeyword\";\n}\n\nexport interface TSBooleanKeyword extends BaseNode {\n type: \"TSBooleanKeyword\";\n}\n\nexport interface TSBigIntKeyword extends BaseNode {\n type: \"TSBigIntKeyword\";\n}\n\nexport interface TSIntrinsicKeyword extends BaseNode {\n type: \"TSIntrinsicKeyword\";\n}\n\nexport interface TSNeverKeyword extends BaseNode {\n type: \"TSNeverKeyword\";\n}\n\nexport interface TSNullKeyword extends BaseNode {\n type: \"TSNullKeyword\";\n}\n\nexport interface TSNumberKeyword extends BaseNode {\n type: \"TSNumberKeyword\";\n}\n\nexport interface TSObjectKeyword extends BaseNode {\n type: \"TSObjectKeyword\";\n}\n\nexport interface TSStringKeyword extends BaseNode {\n type: \"TSStringKeyword\";\n}\n\nexport interface TSSymbolKeyword extends BaseNode {\n type: \"TSSymbolKeyword\";\n}\n\nexport interface TSUndefinedKeyword extends BaseNode {\n type: \"TSUndefinedKeyword\";\n}\n\nexport interface TSUnknownKeyword extends BaseNode {\n type: \"TSUnknownKeyword\";\n}\n\nexport interface TSVoidKeyword extends BaseNode {\n type: \"TSVoidKeyword\";\n}\n\nexport interface TSThisType extends BaseNode {\n type: \"TSThisType\";\n}\n\nexport interface TSFunctionType extends BaseNode {\n type: \"TSFunctionType\";\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n}\n\nexport interface TSConstructorType extends BaseNode {\n type: \"TSConstructorType\";\n typeParameters?: TSTypeParameterDeclaration | null;\n parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>;\n typeAnnotation?: TSTypeAnnotation | null;\n abstract?: boolean | null;\n}\n\nexport interface TSTypeReference extends BaseNode {\n type: \"TSTypeReference\";\n typeName: TSEntityName;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSTypePredicate extends BaseNode {\n type: \"TSTypePredicate\";\n parameterName: Identifier | TSThisType;\n typeAnnotation?: TSTypeAnnotation | null;\n asserts?: boolean | null;\n}\n\nexport interface TSTypeQuery extends BaseNode {\n type: \"TSTypeQuery\";\n exprName: TSEntityName | TSImportType;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSTypeLiteral extends BaseNode {\n type: \"TSTypeLiteral\";\n members: Array<TSTypeElement>;\n}\n\nexport interface TSArrayType extends BaseNode {\n type: \"TSArrayType\";\n elementType: TSType;\n}\n\nexport interface TSTupleType extends BaseNode {\n type: \"TSTupleType\";\n elementTypes: Array<TSType | TSNamedTupleMember>;\n}\n\nexport interface TSOptionalType extends BaseNode {\n type: \"TSOptionalType\";\n typeAnnotation: TSType;\n}\n\nexport interface TSRestType extends BaseNode {\n type: \"TSRestType\";\n typeAnnotation: TSType;\n}\n\nexport interface TSNamedTupleMember extends BaseNode {\n type: \"TSNamedTupleMember\";\n label: Identifier;\n elementType: TSType;\n optional: boolean;\n}\n\nexport interface TSUnionType extends BaseNode {\n type: \"TSUnionType\";\n types: Array<TSType>;\n}\n\nexport interface TSIntersectionType extends BaseNode {\n type: \"TSIntersectionType\";\n types: Array<TSType>;\n}\n\nexport interface TSConditionalType extends BaseNode {\n type: \"TSConditionalType\";\n checkType: TSType;\n extendsType: TSType;\n trueType: TSType;\n falseType: TSType;\n}\n\nexport interface TSInferType extends BaseNode {\n type: \"TSInferType\";\n typeParameter: TSTypeParameter;\n}\n\nexport interface TSParenthesizedType extends BaseNode {\n type: \"TSParenthesizedType\";\n typeAnnotation: TSType;\n}\n\nexport interface TSTypeOperator extends BaseNode {\n type: \"TSTypeOperator\";\n typeAnnotation: TSType;\n operator: string;\n}\n\nexport interface TSIndexedAccessType extends BaseNode {\n type: \"TSIndexedAccessType\";\n objectType: TSType;\n indexType: TSType;\n}\n\nexport interface TSMappedType extends BaseNode {\n type: \"TSMappedType\";\n typeParameter: TSTypeParameter;\n typeAnnotation?: TSType | null;\n nameType?: TSType | null;\n optional?: true | false | \"+\" | \"-\" | null;\n readonly?: true | false | \"+\" | \"-\" | null;\n}\n\nexport interface TSLiteralType extends BaseNode {\n type: \"TSLiteralType\";\n literal:\n | NumericLiteral\n | StringLiteral\n | BooleanLiteral\n | BigIntLiteral\n | TemplateLiteral\n | UnaryExpression;\n}\n\nexport interface TSExpressionWithTypeArguments extends BaseNode {\n type: \"TSExpressionWithTypeArguments\";\n expression: TSEntityName;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSInterfaceDeclaration extends BaseNode {\n type: \"TSInterfaceDeclaration\";\n id: Identifier;\n typeParameters?: TSTypeParameterDeclaration | null;\n extends?: Array<TSExpressionWithTypeArguments> | null;\n body: TSInterfaceBody;\n declare?: boolean | null;\n}\n\nexport interface TSInterfaceBody extends BaseNode {\n type: \"TSInterfaceBody\";\n body: Array<TSTypeElement>;\n}\n\nexport interface TSTypeAliasDeclaration extends BaseNode {\n type: \"TSTypeAliasDeclaration\";\n id: Identifier;\n typeParameters?: TSTypeParameterDeclaration | null;\n typeAnnotation: TSType;\n declare?: boolean | null;\n}\n\nexport interface TSInstantiationExpression extends BaseNode {\n type: \"TSInstantiationExpression\";\n expression: Expression;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSAsExpression extends BaseNode {\n type: \"TSAsExpression\";\n expression: Expression;\n typeAnnotation: TSType;\n}\n\nexport interface TSSatisfiesExpression extends BaseNode {\n type: \"TSSatisfiesExpression\";\n expression: Expression;\n typeAnnotation: TSType;\n}\n\nexport interface TSTypeAssertion extends BaseNode {\n type: \"TSTypeAssertion\";\n typeAnnotation: TSType;\n expression: Expression;\n}\n\nexport interface TSEnumDeclaration extends BaseNode {\n type: \"TSEnumDeclaration\";\n id: Identifier;\n members: Array<TSEnumMember>;\n const?: boolean | null;\n declare?: boolean | null;\n initializer?: Expression | null;\n}\n\nexport interface TSEnumMember extends BaseNode {\n type: \"TSEnumMember\";\n id: Identifier | StringLiteral;\n initializer?: Expression | null;\n}\n\nexport interface TSModuleDeclaration extends BaseNode {\n type: \"TSModuleDeclaration\";\n id: Identifier | StringLiteral;\n body: TSModuleBlock | TSModuleDeclaration;\n declare?: boolean | null;\n global?: boolean | null;\n}\n\nexport interface TSModuleBlock extends BaseNode {\n type: \"TSModuleBlock\";\n body: Array<Statement>;\n}\n\nexport interface TSImportType extends BaseNode {\n type: \"TSImportType\";\n argument: StringLiteral;\n qualifier?: TSEntityName | null;\n typeParameters?: TSTypeParameterInstantiation | null;\n}\n\nexport interface TSImportEqualsDeclaration extends BaseNode {\n type: \"TSImportEqualsDeclaration\";\n id: Identifier;\n moduleReference: TSEntityName | TSExternalModuleReference;\n importKind?: \"type\" | \"value\" | null;\n isExport: boolean;\n}\n\nexport interface TSExternalModuleReference extends BaseNode {\n type: \"TSExternalModuleReference\";\n expression: StringLiteral;\n}\n\nexport interface TSNonNullExpression extends BaseNode {\n type: \"TSNonNullExpression\";\n expression: Expression;\n}\n\nexport interface TSExportAssignment extends BaseNode {\n type: \"TSExportAssignment\";\n expression: Expression;\n}\n\nexport interface TSNamespaceExportDeclaration extends BaseNode {\n type: \"TSNamespaceExportDeclaration\";\n id: Identifier;\n}\n\nexport interface TSTypeAnnotation extends BaseNode {\n type: \"TSTypeAnnotation\";\n typeAnnotation: TSType;\n}\n\nexport interface TSTypeParameterInstantiation extends BaseNode {\n type: \"TSTypeParameterInstantiation\";\n params: Array<TSType>;\n}\n\nexport interface TSTypeParameterDeclaration extends BaseNode {\n type: \"TSTypeParameterDeclaration\";\n params: Array<TSTypeParameter>;\n}\n\nexport interface TSTypeParameter extends BaseNode {\n type: \"TSTypeParameter\";\n constraint?: TSType | null;\n default?: TSType | null;\n name: string;\n const?: boolean | null;\n in?: boolean | null;\n out?: boolean | null;\n}\n\nexport type Standardized =\n | ArrayExpression\n | AssignmentExpression\n | BinaryExpression\n | InterpreterDirective\n | Directive\n | DirectiveLiteral\n | BlockStatement\n | BreakStatement\n | CallExpression\n | CatchClause\n | ConditionalExpression\n | ContinueStatement\n | DebuggerStatement\n | DoWhileStatement\n | EmptyStatement\n | ExpressionStatement\n | File\n | ForInStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | Identifier\n | IfStatement\n | LabeledStatement\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | RegExpLiteral\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | Program\n | ObjectExpression\n | ObjectMethod\n | ObjectProperty\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | ParenthesizedExpression\n | SwitchCase\n | SwitchStatement\n | ThisExpression\n | ThrowStatement\n | TryStatement\n | UnaryExpression\n | UpdateExpression\n | VariableDeclaration\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | AssignmentPattern\n | ArrayPattern\n | ArrowFunctionExpression\n | ClassBody\n | ClassExpression\n | ClassDeclaration\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ExportSpecifier\n | ForOfStatement\n | ImportDeclaration\n | ImportDefaultSpecifier\n | ImportNamespaceSpecifier\n | ImportSpecifier\n | ImportExpression\n | MetaProperty\n | ClassMethod\n | ObjectPattern\n | SpreadElement\n | Super\n | TaggedTemplateExpression\n | TemplateElement\n | TemplateLiteral\n | YieldExpression\n | AwaitExpression\n | Import\n | BigIntLiteral\n | ExportNamespaceSpecifier\n | OptionalMemberExpression\n | OptionalCallExpression\n | ClassProperty\n | ClassAccessorProperty\n | ClassPrivateProperty\n | ClassPrivateMethod\n | PrivateName\n | StaticBlock;\nexport type Expression =\n | ArrayExpression\n | AssignmentExpression\n | BinaryExpression\n | CallExpression\n | ConditionalExpression\n | FunctionExpression\n | Identifier\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | RegExpLiteral\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectExpression\n | SequenceExpression\n | ParenthesizedExpression\n | ThisExpression\n | UnaryExpression\n | UpdateExpression\n | ArrowFunctionExpression\n | ClassExpression\n | ImportExpression\n | MetaProperty\n | Super\n | TaggedTemplateExpression\n | TemplateLiteral\n | YieldExpression\n | AwaitExpression\n | Import\n | BigIntLiteral\n | OptionalMemberExpression\n | OptionalCallExpression\n | TypeCastExpression\n | JSXElement\n | JSXFragment\n | BindExpression\n | DoExpression\n | RecordExpression\n | TupleExpression\n | DecimalLiteral\n | ModuleExpression\n | TopicReference\n | PipelineTopicExpression\n | PipelineBareFunction\n | PipelinePrimaryTopicReference\n | TSInstantiationExpression\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSNonNullExpression;\nexport type Binary = BinaryExpression | LogicalExpression;\nexport type Scopable =\n | BlockStatement\n | CatchClause\n | DoWhileStatement\n | ForInStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | Program\n | ObjectMethod\n | SwitchStatement\n | WhileStatement\n | ArrowFunctionExpression\n | ClassExpression\n | ClassDeclaration\n | ForOfStatement\n | ClassMethod\n | ClassPrivateMethod\n | StaticBlock\n | TSModuleBlock;\nexport type BlockParent =\n | BlockStatement\n | CatchClause\n | DoWhileStatement\n | ForInStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | Program\n | ObjectMethod\n | SwitchStatement\n | WhileStatement\n | ArrowFunctionExpression\n | ForOfStatement\n | ClassMethod\n | ClassPrivateMethod\n | StaticBlock\n | TSModuleBlock;\nexport type Block = BlockStatement | Program | TSModuleBlock;\nexport type Statement =\n | BlockStatement\n | BreakStatement\n | ContinueStatement\n | DebuggerStatement\n | DoWhileStatement\n | EmptyStatement\n | ExpressionStatement\n | ForInStatement\n | ForStatement\n | FunctionDeclaration\n | IfStatement\n | LabeledStatement\n | ReturnStatement\n | SwitchStatement\n | ThrowStatement\n | TryStatement\n | VariableDeclaration\n | WhileStatement\n | WithStatement\n | ClassDeclaration\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ForOfStatement\n | ImportDeclaration\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareTypeAlias\n | DeclareOpaqueType\n | DeclareVariable\n | DeclareExportDeclaration\n | DeclareExportAllDeclaration\n | InterfaceDeclaration\n | OpaqueType\n | TypeAlias\n | EnumDeclaration\n | TSDeclareFunction\n | TSInterfaceDeclaration\n | TSTypeAliasDeclaration\n | TSEnumDeclaration\n | TSModuleDeclaration\n | TSImportEqualsDeclaration\n | TSExportAssignment\n | TSNamespaceExportDeclaration;\nexport type Terminatorless =\n | BreakStatement\n | ContinueStatement\n | ReturnStatement\n | ThrowStatement\n | YieldExpression\n | AwaitExpression;\nexport type CompletionStatement =\n | BreakStatement\n | ContinueStatement\n | ReturnStatement\n | ThrowStatement;\nexport type Conditional = ConditionalExpression | IfStatement;\nexport type Loop =\n | DoWhileStatement\n | ForInStatement\n | ForStatement\n | WhileStatement\n | ForOfStatement;\nexport type While = DoWhileStatement | WhileStatement;\nexport type ExpressionWrapper =\n | ExpressionStatement\n | ParenthesizedExpression\n | TypeCastExpression;\nexport type For = ForInStatement | ForStatement | ForOfStatement;\nexport type ForXStatement = ForInStatement | ForOfStatement;\nexport type Function =\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ArrowFunctionExpression\n | ClassMethod\n | ClassPrivateMethod;\nexport type FunctionParent =\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ArrowFunctionExpression\n | ClassMethod\n | ClassPrivateMethod\n | StaticBlock\n | TSModuleBlock;\nexport type Pureish =\n | FunctionDeclaration\n | FunctionExpression\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | RegExpLiteral\n | ArrowFunctionExpression\n | BigIntLiteral\n | DecimalLiteral;\nexport type Declaration =\n | FunctionDeclaration\n | VariableDeclaration\n | ClassDeclaration\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ImportDeclaration\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareTypeAlias\n | DeclareOpaqueType\n | DeclareVariable\n | DeclareExportDeclaration\n | DeclareExportAllDeclaration\n | InterfaceDeclaration\n | OpaqueType\n | TypeAlias\n | EnumDeclaration\n | TSDeclareFunction\n | TSInterfaceDeclaration\n | TSTypeAliasDeclaration\n | TSEnumDeclaration\n | TSModuleDeclaration;\nexport type PatternLike =\n | Identifier\n | RestElement\n | AssignmentPattern\n | ArrayPattern\n | ObjectPattern\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSNonNullExpression;\nexport type LVal =\n | Identifier\n | MemberExpression\n | RestElement\n | AssignmentPattern\n | ArrayPattern\n | ObjectPattern\n | TSParameterProperty\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSNonNullExpression;\nexport type TSEntityName = Identifier | TSQualifiedName;\nexport type Literal =\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | RegExpLiteral\n | TemplateLiteral\n | BigIntLiteral\n | DecimalLiteral;\nexport type Immutable =\n | StringLiteral\n | NumericLiteral\n | NullLiteral\n | BooleanLiteral\n | BigIntLiteral\n | JSXAttribute\n | JSXClosingElement\n | JSXElement\n | JSXExpressionContainer\n | JSXSpreadChild\n | JSXOpeningElement\n | JSXText\n | JSXFragment\n | JSXOpeningFragment\n | JSXClosingFragment\n | DecimalLiteral;\nexport type UserWhitespacable =\n | ObjectMethod\n | ObjectProperty\n | ObjectTypeInternalSlot\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty;\nexport type Method = ObjectMethod | ClassMethod | ClassPrivateMethod;\nexport type ObjectMember = ObjectMethod | ObjectProperty;\nexport type Property =\n | ObjectProperty\n | ClassProperty\n | ClassAccessorProperty\n | ClassPrivateProperty;\nexport type UnaryLike = UnaryExpression | SpreadElement;\nexport type Pattern = AssignmentPattern | ArrayPattern | ObjectPattern;\nexport type Class = ClassExpression | ClassDeclaration;\nexport type ImportOrExportDeclaration =\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ImportDeclaration;\nexport type ExportDeclaration =\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration;\nexport type ModuleSpecifier =\n | ExportSpecifier\n | ImportDefaultSpecifier\n | ImportNamespaceSpecifier\n | ImportSpecifier\n | ExportNamespaceSpecifier\n | ExportDefaultSpecifier;\nexport type Accessor = ClassAccessorProperty;\nexport type Private = ClassPrivateProperty | ClassPrivateMethod | PrivateName;\nexport type Flow =\n | AnyTypeAnnotation\n | ArrayTypeAnnotation\n | BooleanTypeAnnotation\n | BooleanLiteralTypeAnnotation\n | NullLiteralTypeAnnotation\n | ClassImplements\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareTypeAlias\n | DeclareOpaqueType\n | DeclareVariable\n | DeclareExportDeclaration\n | DeclareExportAllDeclaration\n | DeclaredPredicate\n | ExistsTypeAnnotation\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | GenericTypeAnnotation\n | InferredPredicate\n | InterfaceExtends\n | InterfaceDeclaration\n | InterfaceTypeAnnotation\n | IntersectionTypeAnnotation\n | MixedTypeAnnotation\n | EmptyTypeAnnotation\n | NullableTypeAnnotation\n | NumberLiteralTypeAnnotation\n | NumberTypeAnnotation\n | ObjectTypeAnnotation\n | ObjectTypeInternalSlot\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | QualifiedTypeIdentifier\n | StringLiteralTypeAnnotation\n | StringTypeAnnotation\n | SymbolTypeAnnotation\n | ThisTypeAnnotation\n | TupleTypeAnnotation\n | TypeofTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeCastExpression\n | TypeParameter\n | TypeParameterDeclaration\n | TypeParameterInstantiation\n | UnionTypeAnnotation\n | Variance\n | VoidTypeAnnotation\n | EnumDeclaration\n | EnumBooleanBody\n | EnumNumberBody\n | EnumStringBody\n | EnumSymbolBody\n | EnumBooleanMember\n | EnumNumberMember\n | EnumStringMember\n | EnumDefaultedMember\n | IndexedAccessType\n | OptionalIndexedAccessType;\nexport type FlowType =\n | AnyTypeAnnotation\n | ArrayTypeAnnotation\n | BooleanTypeAnnotation\n | BooleanLiteralTypeAnnotation\n | NullLiteralTypeAnnotation\n | ExistsTypeAnnotation\n | FunctionTypeAnnotation\n | GenericTypeAnnotation\n | InterfaceTypeAnnotation\n | IntersectionTypeAnnotation\n | MixedTypeAnnotation\n | EmptyTypeAnnotation\n | NullableTypeAnnotation\n | NumberLiteralTypeAnnotation\n | NumberTypeAnnotation\n | ObjectTypeAnnotation\n | StringLiteralTypeAnnotation\n | StringTypeAnnotation\n | SymbolTypeAnnotation\n | ThisTypeAnnotation\n | TupleTypeAnnotation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation\n | VoidTypeAnnotation\n | IndexedAccessType\n | OptionalIndexedAccessType;\nexport type FlowBaseAnnotation =\n | AnyTypeAnnotation\n | BooleanTypeAnnotation\n | NullLiteralTypeAnnotation\n | MixedTypeAnnotation\n | EmptyTypeAnnotation\n | NumberTypeAnnotation\n | StringTypeAnnotation\n | SymbolTypeAnnotation\n | ThisTypeAnnotation\n | VoidTypeAnnotation;\nexport type FlowDeclaration =\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareModuleExports\n | DeclareTypeAlias\n | DeclareOpaqueType\n | DeclareVariable\n | DeclareExportDeclaration\n | DeclareExportAllDeclaration\n | InterfaceDeclaration\n | OpaqueType\n | TypeAlias;\nexport type FlowPredicate = DeclaredPredicate | InferredPredicate;\nexport type EnumBody =\n | EnumBooleanBody\n | EnumNumberBody\n | EnumStringBody\n | EnumSymbolBody;\nexport type EnumMember =\n | EnumBooleanMember\n | EnumNumberMember\n | EnumStringMember\n | EnumDefaultedMember;\nexport type JSX =\n | JSXAttribute\n | JSXClosingElement\n | JSXElement\n | JSXEmptyExpression\n | JSXExpressionContainer\n | JSXSpreadChild\n | JSXIdentifier\n | JSXMemberExpression\n | JSXNamespacedName\n | JSXOpeningElement\n | JSXSpreadAttribute\n | JSXText\n | JSXFragment\n | JSXOpeningFragment\n | JSXClosingFragment;\nexport type Miscellaneous = Noop | Placeholder | V8IntrinsicIdentifier;\nexport type TypeScript =\n | TSParameterProperty\n | TSDeclareFunction\n | TSDeclareMethod\n | TSQualifiedName\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSPropertySignature\n | TSMethodSignature\n | TSIndexSignature\n | TSAnyKeyword\n | TSBooleanKeyword\n | TSBigIntKeyword\n | TSIntrinsicKeyword\n | TSNeverKeyword\n | TSNullKeyword\n | TSNumberKeyword\n | TSObjectKeyword\n | TSStringKeyword\n | TSSymbolKeyword\n | TSUndefinedKeyword\n | TSUnknownKeyword\n | TSVoidKeyword\n | TSThisType\n | TSFunctionType\n | TSConstructorType\n | TSTypeReference\n | TSTypePredicate\n | TSTypeQuery\n | TSTypeLiteral\n | TSArrayType\n | TSTupleType\n | TSOptionalType\n | TSRestType\n | TSNamedTupleMember\n | TSUnionType\n | TSIntersectionType\n | TSConditionalType\n | TSInferType\n | TSParenthesizedType\n | TSTypeOperator\n | TSIndexedAccessType\n | TSMappedType\n | TSLiteralType\n | TSExpressionWithTypeArguments\n | TSInterfaceDeclaration\n | TSInterfaceBody\n | TSTypeAliasDeclaration\n | TSInstantiationExpression\n | TSAsExpression\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TSEnumDeclaration\n | TSEnumMember\n | TSModuleDeclaration\n | TSModuleBlock\n | TSImportType\n | TSImportEqualsDeclaration\n | TSExternalModuleReference\n | TSNonNullExpression\n | TSExportAssignment\n | TSNamespaceExportDeclaration\n | TSTypeAnnotation\n | TSTypeParameterInstantiation\n | TSTypeParameterDeclaration\n | TSTypeParameter;\nexport type TSTypeElement =\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSPropertySignature\n | TSMethodSignature\n | TSIndexSignature;\nexport type TSType =\n | TSAnyKeyword\n | TSBooleanKeyword\n | TSBigIntKeyword\n | TSIntrinsicKeyword\n | TSNeverKeyword\n | TSNullKeyword\n | TSNumberKeyword\n | TSObjectKeyword\n | TSStringKeyword\n | TSSymbolKeyword\n | TSUndefinedKeyword\n | TSUnknownKeyword\n | TSVoidKeyword\n | TSThisType\n | TSFunctionType\n | TSConstructorType\n | TSTypeReference\n | TSTypePredicate\n | TSTypeQuery\n | TSTypeLiteral\n | TSArrayType\n | TSTupleType\n | TSOptionalType\n | TSRestType\n | TSUnionType\n | TSIntersectionType\n | TSConditionalType\n | TSInferType\n | TSParenthesizedType\n | TSTypeOperator\n | TSIndexedAccessType\n | TSMappedType\n | TSLiteralType\n | TSExpressionWithTypeArguments\n | TSImportType;\nexport type TSBaseType =\n | TSAnyKeyword\n | TSBooleanKeyword\n | TSBigIntKeyword\n | TSIntrinsicKeyword\n | TSNeverKeyword\n | TSNullKeyword\n | TSNumberKeyword\n | TSObjectKeyword\n | TSStringKeyword\n | TSSymbolKeyword\n | TSUndefinedKeyword\n | TSUnknownKeyword\n | TSVoidKeyword\n | TSThisType\n | TSLiteralType;\nexport type ModuleDeclaration =\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ImportDeclaration;\n\nexport interface Aliases {\n Standardized: Standardized;\n Expression: Expression;\n Binary: Binary;\n Scopable: Scopable;\n BlockParent: BlockParent;\n Block: Block;\n Statement: Statement;\n Terminatorless: Terminatorless;\n CompletionStatement: CompletionStatement;\n Conditional: Conditional;\n Loop: Loop;\n While: While;\n ExpressionWrapper: ExpressionWrapper;\n For: For;\n ForXStatement: ForXStatement;\n Function: Function;\n FunctionParent: FunctionParent;\n Pureish: Pureish;\n Declaration: Declaration;\n PatternLike: PatternLike;\n LVal: LVal;\n TSEntityName: TSEntityName;\n Literal: Literal;\n Immutable: Immutable;\n UserWhitespacable: UserWhitespacable;\n Method: Method;\n ObjectMember: ObjectMember;\n Property: Property;\n UnaryLike: UnaryLike;\n Pattern: Pattern;\n Class: Class;\n ImportOrExportDeclaration: ImportOrExportDeclaration;\n ExportDeclaration: ExportDeclaration;\n ModuleSpecifier: ModuleSpecifier;\n Accessor: Accessor;\n Private: Private;\n Flow: Flow;\n FlowType: FlowType;\n FlowBaseAnnotation: FlowBaseAnnotation;\n FlowDeclaration: FlowDeclaration;\n FlowPredicate: FlowPredicate;\n EnumBody: EnumBody;\n EnumMember: EnumMember;\n JSX: JSX;\n Miscellaneous: Miscellaneous;\n TypeScript: TypeScript;\n TSTypeElement: TSTypeElement;\n TSType: TSType;\n TSBaseType: TSBaseType;\n ModuleDeclaration: ModuleDeclaration;\n}\n\nexport type DeprecatedAliases =\n | NumberLiteral\n | RegexLiteral\n | RestProperty\n | SpreadProperty;\n\nexport interface ParentMaps {\n AnyTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ArgumentPlaceholder: CallExpression | NewExpression | OptionalCallExpression;\n ArrayExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ArrayPattern:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | CatchClause\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ObjectProperty\n | RestElement\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSMethodSignature\n | VariableDeclarator;\n ArrayTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ArrowFunctionExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n AssignmentExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n AssignmentPattern:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ObjectProperty\n | RestElement\n | TSDeclareFunction\n | TSDeclareMethod\n | TSParameterProperty\n | VariableDeclarator;\n AwaitExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BigIntLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BinaryExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BindExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BlockStatement:\n | ArrowFunctionExpression\n | BlockStatement\n | CatchClause\n | ClassMethod\n | ClassPrivateMethod\n | DeclareModule\n | DoExpression\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | IfStatement\n | LabeledStatement\n | ObjectMethod\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | TryStatement\n | WhileStatement\n | WithStatement;\n BooleanLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | EnumBooleanMember\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n BooleanLiteralTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n BooleanTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n BreakStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n CallExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n CatchClause: TryStatement;\n ClassAccessorProperty: ClassBody;\n ClassBody: ClassDeclaration | ClassExpression;\n ClassDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ClassExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ClassImplements:\n | ClassDeclaration\n | ClassExpression\n | DeclareClass\n | DeclareExportDeclaration\n | DeclaredPredicate;\n ClassMethod: ClassBody;\n ClassPrivateMethod: ClassBody;\n ClassPrivateProperty: ClassBody;\n ClassProperty: ClassBody;\n CommentBlock: File;\n CommentLine: File;\n ConditionalExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ContinueStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DebuggerStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DecimalLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n DeclareClass:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareExportAllDeclaration:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareExportDeclaration:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareFunction:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareInterface:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareModule:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareModuleExports:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareOpaqueType:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareTypeAlias:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclareVariable:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n DeclaredPredicate:\n | ArrowFunctionExpression\n | DeclareExportDeclaration\n | DeclareFunction\n | DeclaredPredicate\n | FunctionDeclaration\n | FunctionExpression;\n Decorator:\n | ArrayPattern\n | AssignmentPattern\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | Identifier\n | ObjectMethod\n | ObjectPattern\n | ObjectProperty\n | RestElement\n | TSDeclareMethod\n | TSParameterProperty;\n Directive: BlockStatement | Program;\n DirectiveLiteral: Directive;\n DoExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n DoWhileStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n EmptyStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n EmptyTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n EnumBooleanBody:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumDeclaration;\n EnumBooleanMember:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumBooleanBody;\n EnumDeclaration:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n EnumDefaultedMember:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumStringBody\n | EnumSymbolBody;\n EnumNumberBody:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumDeclaration;\n EnumNumberMember:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumNumberBody;\n EnumStringBody:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumDeclaration;\n EnumStringMember:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumStringBody;\n EnumSymbolBody:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | EnumDeclaration;\n ExistsTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ExportAllDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ExportDefaultDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ExportDefaultSpecifier: ExportNamedDeclaration;\n ExportNamedDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ExportNamespaceSpecifier: DeclareExportDeclaration | ExportNamedDeclaration;\n ExportSpecifier: DeclareExportDeclaration | ExportNamedDeclaration;\n ExpressionStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n File: null;\n ForInStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ForOfStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ForStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n FunctionDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n FunctionExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n FunctionTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n FunctionTypeParam:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | FunctionTypeAnnotation;\n GenericTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n Identifier:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | BreakStatement\n | CallExpression\n | CatchClause\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassImplements\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | ContinueStatement\n | DeclareClass\n | DeclareFunction\n | DeclareInterface\n | DeclareModule\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclareVariable\n | Decorator\n | DoWhileStatement\n | EnumBooleanMember\n | EnumDeclaration\n | EnumDefaultedMember\n | EnumNumberMember\n | EnumStringMember\n | ExportDefaultDeclaration\n | ExportDefaultSpecifier\n | ExportNamespaceSpecifier\n | ExportSpecifier\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | FunctionDeclaration\n | FunctionExpression\n | FunctionTypeParam\n | GenericTypeAnnotation\n | IfStatement\n | ImportAttribute\n | ImportDefaultSpecifier\n | ImportExpression\n | ImportNamespaceSpecifier\n | ImportSpecifier\n | InterfaceDeclaration\n | InterfaceExtends\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LabeledStatement\n | LogicalExpression\n | MemberExpression\n | MetaProperty\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | OpaqueType\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | Placeholder\n | PrivateName\n | QualifiedTypeIdentifier\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSExpressionWithTypeArguments\n | TSFunctionType\n | TSImportEqualsDeclaration\n | TSImportType\n | TSIndexSignature\n | TSInstantiationExpression\n | TSInterfaceDeclaration\n | TSMethodSignature\n | TSModuleDeclaration\n | TSNamedTupleMember\n | TSNamespaceExportDeclaration\n | TSNonNullExpression\n | TSParameterProperty\n | TSPropertySignature\n | TSQualifiedName\n | TSSatisfiesExpression\n | TSTypeAliasDeclaration\n | TSTypeAssertion\n | TSTypePredicate\n | TSTypeQuery\n | TSTypeReference\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeAlias\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n IfStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n Import:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ImportAttribute:\n | ExportAllDeclaration\n | ExportNamedDeclaration\n | ImportDeclaration;\n ImportDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n ImportDefaultSpecifier: ImportDeclaration;\n ImportExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ImportNamespaceSpecifier: ImportDeclaration;\n ImportSpecifier: ImportDeclaration;\n IndexedAccessType:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n InferredPredicate:\n | ArrowFunctionExpression\n | DeclareExportDeclaration\n | DeclaredPredicate\n | FunctionDeclaration\n | FunctionExpression;\n InterfaceDeclaration:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n InterfaceExtends:\n | ClassDeclaration\n | ClassExpression\n | DeclareClass\n | DeclareExportDeclaration\n | DeclareInterface\n | DeclaredPredicate\n | InterfaceDeclaration\n | InterfaceTypeAnnotation;\n InterfaceTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n InterpreterDirective: Program;\n IntersectionTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n JSXAttribute: JSXOpeningElement;\n JSXClosingElement: JSXElement;\n JSXClosingFragment: JSXFragment;\n JSXElement:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXAttribute\n | JSXElement\n | JSXExpressionContainer\n | JSXFragment\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n JSXEmptyExpression: JSXExpressionContainer;\n JSXExpressionContainer: JSXAttribute | JSXElement | JSXFragment;\n JSXFragment:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXAttribute\n | JSXElement\n | JSXExpressionContainer\n | JSXFragment\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n JSXIdentifier:\n | JSXAttribute\n | JSXClosingElement\n | JSXMemberExpression\n | JSXNamespacedName\n | JSXOpeningElement;\n JSXMemberExpression:\n | JSXClosingElement\n | JSXMemberExpression\n | JSXOpeningElement;\n JSXNamespacedName:\n | CallExpression\n | JSXAttribute\n | JSXClosingElement\n | JSXOpeningElement\n | NewExpression\n | OptionalCallExpression;\n JSXOpeningElement: JSXElement;\n JSXOpeningFragment: JSXFragment;\n JSXSpreadAttribute: JSXOpeningElement;\n JSXSpreadChild: JSXElement | JSXFragment;\n JSXText: JSXElement | JSXFragment;\n LabeledStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n LogicalExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n MemberExpression:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n MetaProperty:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n MixedTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ModuleExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n NewExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n Noop:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentPattern\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | FunctionDeclaration\n | FunctionExpression\n | Identifier\n | ObjectMethod\n | ObjectPattern\n | RestElement\n | TSDeclareFunction\n | TSDeclareMethod;\n NullLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n NullLiteralTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n NullableTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n NumberLiteral: null;\n NumberLiteralTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n NumberTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n NumericLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | EnumNumberMember\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ObjectExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ObjectMethod: ObjectExpression;\n ObjectPattern:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | CatchClause\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ObjectProperty\n | RestElement\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSMethodSignature\n | VariableDeclarator;\n ObjectProperty: ObjectExpression | ObjectPattern | RecordExpression;\n ObjectTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareClass\n | DeclareExportDeclaration\n | DeclareInterface\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | InterfaceDeclaration\n | InterfaceTypeAnnotation\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ObjectTypeCallProperty:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n ObjectTypeIndexer:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n ObjectTypeInternalSlot:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n ObjectTypeProperty:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n ObjectTypeSpreadProperty:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeAnnotation;\n OpaqueType:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n OptionalCallExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n OptionalIndexedAccessType:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n OptionalMemberExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ParenthesizedExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n PipelineBareFunction:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n PipelinePrimaryTopicReference:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n PipelineTopicExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n Placeholder: Node;\n PrivateName:\n | BinaryExpression\n | ClassAccessorProperty\n | ClassPrivateMethod\n | ClassPrivateProperty\n | MemberExpression\n | ObjectProperty;\n Program: File | ModuleExpression;\n QualifiedTypeIdentifier:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | GenericTypeAnnotation\n | InterfaceExtends\n | QualifiedTypeIdentifier;\n RecordExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n RegExpLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n RegexLiteral: null;\n RestElement:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | ObjectPattern\n | ObjectProperty\n | RestElement\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSMethodSignature\n | VariableDeclarator;\n RestProperty: null;\n ReturnStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n SequenceExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n SpreadElement:\n | ArrayExpression\n | CallExpression\n | NewExpression\n | ObjectExpression\n | OptionalCallExpression\n | RecordExpression\n | TupleExpression;\n SpreadProperty: null;\n StaticBlock: ClassBody;\n StringLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | DeclareExportAllDeclaration\n | DeclareExportDeclaration\n | DeclareModule\n | Decorator\n | DoWhileStatement\n | EnumStringMember\n | ExportAllDeclaration\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ExportSpecifier\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportAttribute\n | ImportDeclaration\n | ImportExpression\n | ImportSpecifier\n | JSXAttribute\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | ObjectTypeProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSExternalModuleReference\n | TSImportType\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSModuleDeclaration\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n StringLiteralTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n StringTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n Super:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n SwitchCase: SwitchStatement;\n SwitchStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n SymbolTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n TSAnyKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSArrayType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSAsExpression:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSBigIntKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSBooleanKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSCallSignatureDeclaration: TSInterfaceBody | TSTypeLiteral;\n TSConditionalType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSConstructSignatureDeclaration: TSInterfaceBody | TSTypeLiteral;\n TSConstructorType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSDeclareFunction:\n | BlockStatement\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSDeclareMethod: ClassBody;\n TSEnumDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSEnumMember: TSEnumDeclaration;\n TSExportAssignment:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSExpressionWithTypeArguments:\n | ClassDeclaration\n | ClassExpression\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSInterfaceDeclaration\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSExternalModuleReference: TSImportEqualsDeclaration;\n TSFunctionType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSImportEqualsDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSImportType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSTypeQuery\n | TSUnionType\n | TemplateLiteral;\n TSIndexSignature: ClassBody | TSInterfaceBody | TSTypeLiteral;\n TSIndexedAccessType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSInferType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSInstantiationExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSInterfaceBody: TSInterfaceDeclaration;\n TSInterfaceDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSIntersectionType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSIntrinsicKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSLiteralType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSMappedType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSMethodSignature: TSInterfaceBody | TSTypeLiteral;\n TSModuleBlock: TSModuleDeclaration;\n TSModuleDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | TSModuleDeclaration\n | WhileStatement\n | WithStatement;\n TSNamedTupleMember: TSTupleType;\n TSNamespaceExportDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSNeverKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSNonNullExpression:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSNullKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSNumberKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSObjectKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSOptionalType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSParameterProperty:\n | ArrayPattern\n | AssignmentExpression\n | ClassMethod\n | ClassPrivateMethod\n | ForInStatement\n | ForOfStatement\n | RestElement\n | TSDeclareMethod\n | VariableDeclarator;\n TSParenthesizedType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSPropertySignature: TSInterfaceBody | TSTypeLiteral;\n TSQualifiedName:\n | TSExpressionWithTypeArguments\n | TSImportEqualsDeclaration\n | TSImportType\n | TSQualifiedName\n | TSTypeQuery\n | TSTypeReference;\n TSRestType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSSatisfiesExpression:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSStringKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSSymbolKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSThisType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSTypePredicate\n | TSUnionType\n | TemplateLiteral;\n TSTupleType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeAliasDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TSTypeAnnotation:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentPattern\n | ClassAccessorProperty\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | FunctionDeclaration\n | FunctionExpression\n | Identifier\n | ObjectMethod\n | ObjectPattern\n | RestElement\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSIndexSignature\n | TSMethodSignature\n | TSPropertySignature\n | TSTypePredicate;\n TSTypeAssertion:\n | ArrayExpression\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | RestElement\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TSTypeLiteral:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeOperator:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeParameter: TSInferType | TSMappedType | TSTypeParameterDeclaration;\n TSTypeParameterDeclaration:\n | ArrowFunctionExpression\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateMethod\n | FunctionDeclaration\n | FunctionExpression\n | ObjectMethod\n | TSCallSignatureDeclaration\n | TSConstructSignatureDeclaration\n | TSConstructorType\n | TSDeclareFunction\n | TSDeclareMethod\n | TSFunctionType\n | TSInterfaceDeclaration\n | TSMethodSignature\n | TSTypeAliasDeclaration;\n TSTypeParameterInstantiation:\n | CallExpression\n | ClassDeclaration\n | ClassExpression\n | JSXOpeningElement\n | NewExpression\n | OptionalCallExpression\n | TSExpressionWithTypeArguments\n | TSImportType\n | TSInstantiationExpression\n | TSTypeQuery\n | TSTypeReference\n | TaggedTemplateExpression;\n TSTypePredicate:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeQuery:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSTypeReference:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSUndefinedKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSUnionType:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSUnknownKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TSVoidKeyword:\n | TSArrayType\n | TSAsExpression\n | TSConditionalType\n | TSIndexedAccessType\n | TSIntersectionType\n | TSMappedType\n | TSNamedTupleMember\n | TSOptionalType\n | TSParenthesizedType\n | TSRestType\n | TSSatisfiesExpression\n | TSTupleType\n | TSTypeAliasDeclaration\n | TSTypeAnnotation\n | TSTypeAssertion\n | TSTypeOperator\n | TSTypeParameter\n | TSTypeParameterInstantiation\n | TSUnionType\n | TemplateLiteral;\n TaggedTemplateExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TemplateElement: TemplateLiteral;\n TemplateLiteral:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ThisExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n ThisTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n ThrowStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TopicReference:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TryStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TupleExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TupleTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n TypeAlias:\n | BlockStatement\n | DeclareExportDeclaration\n | DeclaredPredicate\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n TypeAnnotation:\n | ArrayPattern\n | ArrowFunctionExpression\n | AssignmentPattern\n | ClassAccessorProperty\n | ClassMethod\n | ClassPrivateMethod\n | ClassPrivateProperty\n | ClassProperty\n | DeclareExportDeclaration\n | DeclareModuleExports\n | DeclaredPredicate\n | FunctionDeclaration\n | FunctionExpression\n | Identifier\n | ObjectMethod\n | ObjectPattern\n | RestElement\n | TypeCastExpression\n | TypeParameter;\n TypeCastExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | DeclareExportDeclaration\n | DeclaredPredicate\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n TypeParameter:\n | DeclareExportDeclaration\n | DeclaredPredicate\n | TypeParameterDeclaration;\n TypeParameterDeclaration:\n | ArrowFunctionExpression\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateMethod\n | DeclareClass\n | DeclareExportDeclaration\n | DeclareInterface\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionDeclaration\n | FunctionExpression\n | FunctionTypeAnnotation\n | InterfaceDeclaration\n | ObjectMethod\n | OpaqueType\n | TypeAlias;\n TypeParameterInstantiation:\n | CallExpression\n | ClassDeclaration\n | ClassExpression\n | ClassImplements\n | DeclareExportDeclaration\n | DeclaredPredicate\n | GenericTypeAnnotation\n | InterfaceExtends\n | JSXOpeningElement\n | NewExpression\n | OptionalCallExpression\n | TaggedTemplateExpression;\n TypeofTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n UnaryExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSLiteralType\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n UnionTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n UpdateExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n V8IntrinsicIdentifier: CallExpression | NewExpression;\n VariableDeclaration:\n | BlockStatement\n | DoWhileStatement\n | ExportNamedDeclaration\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n VariableDeclarator: VariableDeclaration;\n Variance:\n | ClassAccessorProperty\n | ClassPrivateProperty\n | ClassProperty\n | DeclareExportDeclaration\n | DeclaredPredicate\n | ObjectTypeIndexer\n | ObjectTypeProperty\n | TypeParameter;\n VoidTypeAnnotation:\n | ArrayTypeAnnotation\n | DeclareExportDeclaration\n | DeclareOpaqueType\n | DeclareTypeAlias\n | DeclaredPredicate\n | FunctionTypeAnnotation\n | FunctionTypeParam\n | IndexedAccessType\n | IntersectionTypeAnnotation\n | NullableTypeAnnotation\n | ObjectTypeCallProperty\n | ObjectTypeIndexer\n | ObjectTypeInternalSlot\n | ObjectTypeProperty\n | ObjectTypeSpreadProperty\n | OpaqueType\n | OptionalIndexedAccessType\n | TupleTypeAnnotation\n | TypeAlias\n | TypeAnnotation\n | TypeParameter\n | TypeParameterInstantiation\n | TypeofTypeAnnotation\n | UnionTypeAnnotation;\n WhileStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n WithStatement:\n | BlockStatement\n | DoWhileStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | LabeledStatement\n | Program\n | StaticBlock\n | SwitchCase\n | TSModuleBlock\n | WhileStatement\n | WithStatement;\n YieldExpression:\n | ArrayExpression\n | ArrowFunctionExpression\n | AssignmentExpression\n | AssignmentPattern\n | AwaitExpression\n | BinaryExpression\n | BindExpression\n | CallExpression\n | ClassAccessorProperty\n | ClassDeclaration\n | ClassExpression\n | ClassMethod\n | ClassPrivateProperty\n | ClassProperty\n | ConditionalExpression\n | Decorator\n | DoWhileStatement\n | ExportDefaultDeclaration\n | ExpressionStatement\n | ForInStatement\n | ForOfStatement\n | ForStatement\n | IfStatement\n | ImportExpression\n | JSXExpressionContainer\n | JSXSpreadAttribute\n | JSXSpreadChild\n | LogicalExpression\n | MemberExpression\n | NewExpression\n | ObjectMethod\n | ObjectProperty\n | OptionalCallExpression\n | OptionalMemberExpression\n | ParenthesizedExpression\n | PipelineBareFunction\n | PipelineTopicExpression\n | ReturnStatement\n | SequenceExpression\n | SpreadElement\n | SwitchCase\n | SwitchStatement\n | TSAsExpression\n | TSDeclareMethod\n | TSEnumDeclaration\n | TSEnumMember\n | TSExportAssignment\n | TSInstantiationExpression\n | TSMethodSignature\n | TSNonNullExpression\n | TSPropertySignature\n | TSSatisfiesExpression\n | TSTypeAssertion\n | TaggedTemplateExpression\n | TemplateLiteral\n | ThrowStatement\n | TupleExpression\n | TypeCastExpression\n | UnaryExpression\n | UpdateExpression\n | VariableDeclarator\n | WhileStatement\n | WithStatement\n | YieldExpression;\n}\n"],"mappings":""}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js b/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js index 8b1917c4..79d58bec 100644 --- a/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +++ b/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js @@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _index = require("../generated/index.js"); -var _default = createTypeAnnotationBasedOnTypeof; -exports.default = _default; +var _default = exports.default = createTypeAnnotationBasedOnTypeof; function createTypeAnnotationBasedOnTypeof(type) { switch (type) { case "string": diff --git a/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map b/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map index 2d19066b..5c946bac 100644 --- a/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map +++ b/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js.map @@ -1 +1 @@ -{"version":3,"names":["_index","require","_default","createTypeAnnotationBasedOnTypeof","exports","default","type","stringTypeAnnotation","numberTypeAnnotation","voidTypeAnnotation","booleanTypeAnnotation","genericTypeAnnotation","identifier","anyTypeAnnotation","Error"],"sources":["../../../src/builders/flow/createTypeAnnotationBasedOnTypeof.ts"],"sourcesContent":["import {\n anyTypeAnnotation,\n stringTypeAnnotation,\n numberTypeAnnotation,\n voidTypeAnnotation,\n booleanTypeAnnotation,\n genericTypeAnnotation,\n identifier,\n} from \"../generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nexport default createTypeAnnotationBasedOnTypeof as {\n (type: \"string\"): t.StringTypeAnnotation;\n (type: \"number\"): t.NumberTypeAnnotation;\n (type: \"undefined\"): t.VoidTypeAnnotation;\n (type: \"boolean\"): t.BooleanTypeAnnotation;\n (type: \"function\"): t.GenericTypeAnnotation;\n (type: \"object\"): t.GenericTypeAnnotation;\n (type: \"symbol\"): t.GenericTypeAnnotation;\n (type: \"bigint\"): t.AnyTypeAnnotation;\n};\n\n/**\n * Create a type annotation based on typeof expression.\n */\nfunction createTypeAnnotationBasedOnTypeof(type: string): t.FlowType {\n switch (type) {\n case \"string\":\n return stringTypeAnnotation();\n case \"number\":\n return numberTypeAnnotation();\n case \"undefined\":\n return voidTypeAnnotation();\n case \"boolean\":\n return booleanTypeAnnotation();\n case \"function\":\n return genericTypeAnnotation(identifier(\"Function\"));\n case \"object\":\n return genericTypeAnnotation(identifier(\"Object\"));\n case \"symbol\":\n return genericTypeAnnotation(identifier(\"Symbol\"));\n case \"bigint\":\n // todo: use BigInt annotation when Flow supports BigInt\n // https://github.com/facebook/flow/issues/6639\n return anyTypeAnnotation();\n }\n throw new Error(\"Invalid typeof value: \" + type);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQ+B,IAAAC,QAAA,GAGhBC,iCAAiC;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA;AAchD,SAASC,iCAAiCA,CAACG,IAAY,EAAc;EACnE,QAAQA,IAAI;IACV,KAAK,QAAQ;MACX,OAAO,IAAAC,2BAAoB,EAAC,CAAC;IAC/B,KAAK,QAAQ;MACX,OAAO,IAAAC,2BAAoB,EAAC,CAAC;IAC/B,KAAK,WAAW;MACd,OAAO,IAAAC,yBAAkB,EAAC,CAAC;IAC7B,KAAK,SAAS;MACZ,OAAO,IAAAC,4BAAqB,EAAC,CAAC;IAChC,KAAK,UAAU;MACb,OAAO,IAAAC,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,UAAU,CAAC,CAAC;IACtD,KAAK,QAAQ;MACX,OAAO,IAAAD,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,QAAQ;MACX,OAAO,IAAAD,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,QAAQ;MAGX,OAAO,IAAAC,wBAAiB,EAAC,CAAC;EAC9B;EACA,MAAM,IAAIC,KAAK,CAAC,wBAAwB,GAAGR,IAAI,CAAC;AAClD"}
\ No newline at end of file +{"version":3,"names":["_index","require","_default","exports","default","createTypeAnnotationBasedOnTypeof","type","stringTypeAnnotation","numberTypeAnnotation","voidTypeAnnotation","booleanTypeAnnotation","genericTypeAnnotation","identifier","anyTypeAnnotation","Error"],"sources":["../../../src/builders/flow/createTypeAnnotationBasedOnTypeof.ts"],"sourcesContent":["import {\n anyTypeAnnotation,\n stringTypeAnnotation,\n numberTypeAnnotation,\n voidTypeAnnotation,\n booleanTypeAnnotation,\n genericTypeAnnotation,\n identifier,\n} from \"../generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nexport default createTypeAnnotationBasedOnTypeof as {\n (type: \"string\"): t.StringTypeAnnotation;\n (type: \"number\"): t.NumberTypeAnnotation;\n (type: \"undefined\"): t.VoidTypeAnnotation;\n (type: \"boolean\"): t.BooleanTypeAnnotation;\n (type: \"function\"): t.GenericTypeAnnotation;\n (type: \"object\"): t.GenericTypeAnnotation;\n (type: \"symbol\"): t.GenericTypeAnnotation;\n (type: \"bigint\"): t.AnyTypeAnnotation;\n};\n\n/**\n * Create a type annotation based on typeof expression.\n */\nfunction createTypeAnnotationBasedOnTypeof(type: string): t.FlowType {\n switch (type) {\n case \"string\":\n return stringTypeAnnotation();\n case \"number\":\n return numberTypeAnnotation();\n case \"undefined\":\n return voidTypeAnnotation();\n case \"boolean\":\n return booleanTypeAnnotation();\n case \"function\":\n return genericTypeAnnotation(identifier(\"Function\"));\n case \"object\":\n return genericTypeAnnotation(identifier(\"Object\"));\n case \"symbol\":\n return genericTypeAnnotation(identifier(\"Symbol\"));\n case \"bigint\":\n // todo: use BigInt annotation when Flow supports BigInt\n // https://github.com/facebook/flow/issues/6639\n return anyTypeAnnotation();\n }\n throw new Error(\"Invalid typeof value: \" + type);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAQ+B,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGhBC,iCAAiC;AAchD,SAASA,iCAAiCA,CAACC,IAAY,EAAc;EACnE,QAAQA,IAAI;IACV,KAAK,QAAQ;MACX,OAAO,IAAAC,2BAAoB,EAAC,CAAC;IAC/B,KAAK,QAAQ;MACX,OAAO,IAAAC,2BAAoB,EAAC,CAAC;IAC/B,KAAK,WAAW;MACd,OAAO,IAAAC,yBAAkB,EAAC,CAAC;IAC7B,KAAK,SAAS;MACZ,OAAO,IAAAC,4BAAqB,EAAC,CAAC;IAChC,KAAK,UAAU;MACb,OAAO,IAAAC,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,UAAU,CAAC,CAAC;IACtD,KAAK,QAAQ;MACX,OAAO,IAAAD,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,QAAQ;MACX,OAAO,IAAAD,4BAAqB,EAAC,IAAAC,iBAAU,EAAC,QAAQ,CAAC,CAAC;IACpD,KAAK,QAAQ;MAGX,OAAO,IAAAC,wBAAiB,EAAC,CAAC;EAC9B;EACA,MAAM,IAAIC,KAAK,CAAC,wBAAwB,GAAGR,IAAI,CAAC;AAClD"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/builders/generated/index.js b/node_modules/@babel/types/lib/builders/generated/index.js index df8586d7..c0b3ef17 100644 --- a/node_modules/@babel/types/lib/builders/generated/index.js +++ b/node_modules/@babel/types/lib/builders/generated/index.js @@ -1589,12 +1589,11 @@ function tsConstructSignatureDeclaration(typeParameters = null, parameters, type typeAnnotation }); } -function tsPropertySignature(key, typeAnnotation = null, initializer = null) { +function tsPropertySignature(key, typeAnnotation = null) { return (0, _validateNode.default)({ type: "TSPropertySignature", key, typeAnnotation, - initializer, kind: null }); } diff --git a/node_modules/@babel/types/lib/builders/generated/index.js.map b/node_modules/@babel/types/lib/builders/generated/index.js.map index 7803718d..5627b69b 100644 --- a/node_modules/@babel/types/lib/builders/generated/index.js.map +++ b/node_modules/@babel/types/lib/builders/generated/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_validateNode","require","_deprecationWarning","arrayExpression","elements","validateNode","type","assignmentExpression","operator","left","right","binaryExpression","interpreterDirective","value","directive","directiveLiteral","blockStatement","body","directives","breakStatement","label","callExpression","callee","_arguments","arguments","catchClause","param","conditionalExpression","test","consequent","alternate","continueStatement","debuggerStatement","doWhileStatement","emptyStatement","expressionStatement","expression","file","program","comments","tokens","forInStatement","forStatement","init","update","functionDeclaration","id","params","generator","async","functionExpression","identifier","name","ifStatement","labeledStatement","stringLiteral","numericLiteral","nullLiteral","booleanLiteral","regExpLiteral","pattern","flags","logicalExpression","memberExpression","object","property","computed","optional","newExpression","sourceType","interpreter","sourceFile","objectExpression","properties","objectMethod","kind","key","objectProperty","shorthand","decorators","restElement","argument","returnStatement","sequenceExpression","expressions","parenthesizedExpression","switchCase","switchStatement","discriminant","cases","thisExpression","throwStatement","tryStatement","block","handler","finalizer","unaryExpression","prefix","updateExpression","variableDeclaration","declarations","variableDeclarator","whileStatement","withStatement","assignmentPattern","arrayPattern","arrowFunctionExpression","classBody","classExpression","superClass","classDeclaration","exportAllDeclaration","source","exportDefaultDeclaration","declaration","exportNamedDeclaration","specifiers","exportSpecifier","local","exported","forOfStatement","_await","await","importDeclaration","importDefaultSpecifier","importNamespaceSpecifier","importSpecifier","imported","importExpression","options","metaProperty","meta","classMethod","_static","static","objectPattern","spreadElement","_super","taggedTemplateExpression","tag","quasi","templateElement","tail","templateLiteral","quasis","yieldExpression","delegate","awaitExpression","_import","bigIntLiteral","exportNamespaceSpecifier","optionalMemberExpression","optionalCallExpression","classProperty","typeAnnotation","classAccessorProperty","classPrivateProperty","classPrivateMethod","privateName","staticBlock","anyTypeAnnotation","arrayTypeAnnotation","elementType","booleanTypeAnnotation","booleanLiteralTypeAnnotation","nullLiteralTypeAnnotation","classImplements","typeParameters","declareClass","_extends","extends","declareFunction","declareInterface","declareModule","declareModuleExports","declareTypeAlias","declareOpaqueType","supertype","declareVariable","declareExportDeclaration","declareExportAllDeclaration","declaredPredicate","existsTypeAnnotation","functionTypeAnnotation","rest","returnType","functionTypeParam","genericTypeAnnotation","inferredPredicate","interfaceExtends","interfaceDeclaration","interfaceTypeAnnotation","intersectionTypeAnnotation","types","mixedTypeAnnotation","emptyTypeAnnotation","nullableTypeAnnotation","numberLiteralTypeAnnotation","numberTypeAnnotation","objectTypeAnnotation","indexers","callProperties","internalSlots","exact","objectTypeInternalSlot","method","objectTypeCallProperty","objectTypeIndexer","variance","objectTypeProperty","proto","objectTypeSpreadProperty","opaqueType","impltype","qualifiedTypeIdentifier","qualification","stringLiteralTypeAnnotation","stringTypeAnnotation","symbolTypeAnnotation","thisTypeAnnotation","tupleTypeAnnotation","typeofTypeAnnotation","typeAlias","typeCastExpression","typeParameter","bound","_default","default","typeParameterDeclaration","typeParameterInstantiation","unionTypeAnnotation","voidTypeAnnotation","enumDeclaration","enumBooleanBody","members","explicitType","hasUnknownMembers","enumNumberBody","enumStringBody","enumSymbolBody","enumBooleanMember","enumNumberMember","enumStringMember","enumDefaultedMember","indexedAccessType","objectType","indexType","optionalIndexedAccessType","jsxAttribute","jsxClosingElement","jsxElement","openingElement","closingElement","children","selfClosing","jsxEmptyExpression","jsxExpressionContainer","jsxSpreadChild","jsxIdentifier","jsxMemberExpression","jsxNamespacedName","namespace","jsxOpeningElement","attributes","jsxSpreadAttribute","jsxText","jsxFragment","openingFragment","closingFragment","jsxOpeningFragment","jsxClosingFragment","noop","placeholder","expectedNode","v8IntrinsicIdentifier","argumentPlaceholder","bindExpression","importAttribute","decorator","doExpression","exportDefaultSpecifier","recordExpression","tupleExpression","decimalLiteral","moduleExpression","topicReference","pipelineTopicExpression","pipelineBareFunction","pipelinePrimaryTopicReference","tsParameterProperty","parameter","tsDeclareFunction","tsDeclareMethod","tsQualifiedName","tsCallSignatureDeclaration","parameters","tsConstructSignatureDeclaration","tsPropertySignature","initializer","tsMethodSignature","tsIndexSignature","tsAnyKeyword","tsBooleanKeyword","tsBigIntKeyword","tsIntrinsicKeyword","tsNeverKeyword","tsNullKeyword","tsNumberKeyword","tsObjectKeyword","tsStringKeyword","tsSymbolKeyword","tsUndefinedKeyword","tsUnknownKeyword","tsVoidKeyword","tsThisType","tsFunctionType","tsConstructorType","tsTypeReference","typeName","tsTypePredicate","parameterName","asserts","tsTypeQuery","exprName","tsTypeLiteral","tsArrayType","tsTupleType","elementTypes","tsOptionalType","tsRestType","tsNamedTupleMember","tsUnionType","tsIntersectionType","tsConditionalType","checkType","extendsType","trueType","falseType","tsInferType","tsParenthesizedType","tsTypeOperator","tsIndexedAccessType","tsMappedType","nameType","tsLiteralType","literal","tsExpressionWithTypeArguments","tsInterfaceDeclaration","tsInterfaceBody","tsTypeAliasDeclaration","tsInstantiationExpression","tsAsExpression","tsSatisfiesExpression","tsTypeAssertion","tsEnumDeclaration","tsEnumMember","tsModuleDeclaration","tsModuleBlock","tsImportType","qualifier","tsImportEqualsDeclaration","moduleReference","isExport","tsExternalModuleReference","tsNonNullExpression","tsExportAssignment","tsNamespaceExportDeclaration","tsTypeAnnotation","tsTypeParameterInstantiation","tsTypeParameterDeclaration","tsTypeParameter","constraint","NumberLiteral","deprecationWarning","RegexLiteral","RestProperty","SpreadProperty"],"sources":["../../../src/builders/generated/index.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport validateNode from \"../validateNode.ts\";\nimport type * as t from \"../../index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\nexport function arrayExpression(\n elements: Array<null | t.Expression | t.SpreadElement> = [],\n): t.ArrayExpression {\n return validateNode<t.ArrayExpression>({\n type: \"ArrayExpression\",\n elements,\n });\n}\nexport function assignmentExpression(\n operator: string,\n left: t.LVal | t.OptionalMemberExpression,\n right: t.Expression,\n): t.AssignmentExpression {\n return validateNode<t.AssignmentExpression>({\n type: \"AssignmentExpression\",\n operator,\n left,\n right,\n });\n}\nexport function binaryExpression(\n operator:\n | \"+\"\n | \"-\"\n | \"/\"\n | \"%\"\n | \"*\"\n | \"**\"\n | \"&\"\n | \"|\"\n | \">>\"\n | \">>>\"\n | \"<<\"\n | \"^\"\n | \"==\"\n | \"===\"\n | \"!=\"\n | \"!==\"\n | \"in\"\n | \"instanceof\"\n | \">\"\n | \"<\"\n | \">=\"\n | \"<=\"\n | \"|>\",\n left: t.Expression | t.PrivateName,\n right: t.Expression,\n): t.BinaryExpression {\n return validateNode<t.BinaryExpression>({\n type: \"BinaryExpression\",\n operator,\n left,\n right,\n });\n}\nexport function interpreterDirective(value: string): t.InterpreterDirective {\n return validateNode<t.InterpreterDirective>({\n type: \"InterpreterDirective\",\n value,\n });\n}\nexport function directive(value: t.DirectiveLiteral): t.Directive {\n return validateNode<t.Directive>({\n type: \"Directive\",\n value,\n });\n}\nexport function directiveLiteral(value: string): t.DirectiveLiteral {\n return validateNode<t.DirectiveLiteral>({\n type: \"DirectiveLiteral\",\n value,\n });\n}\nexport function blockStatement(\n body: Array<t.Statement>,\n directives: Array<t.Directive> = [],\n): t.BlockStatement {\n return validateNode<t.BlockStatement>({\n type: \"BlockStatement\",\n body,\n directives,\n });\n}\nexport function breakStatement(\n label: t.Identifier | null = null,\n): t.BreakStatement {\n return validateNode<t.BreakStatement>({\n type: \"BreakStatement\",\n label,\n });\n}\nexport function callExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: Array<\n t.Expression | t.SpreadElement | t.JSXNamespacedName | t.ArgumentPlaceholder\n >,\n): t.CallExpression {\n return validateNode<t.CallExpression>({\n type: \"CallExpression\",\n callee,\n arguments: _arguments,\n });\n}\nexport function catchClause(\n param:\n | t.Identifier\n | t.ArrayPattern\n | t.ObjectPattern\n | null\n | undefined = null,\n body: t.BlockStatement,\n): t.CatchClause {\n return validateNode<t.CatchClause>({\n type: \"CatchClause\",\n param,\n body,\n });\n}\nexport function conditionalExpression(\n test: t.Expression,\n consequent: t.Expression,\n alternate: t.Expression,\n): t.ConditionalExpression {\n return validateNode<t.ConditionalExpression>({\n type: \"ConditionalExpression\",\n test,\n consequent,\n alternate,\n });\n}\nexport function continueStatement(\n label: t.Identifier | null = null,\n): t.ContinueStatement {\n return validateNode<t.ContinueStatement>({\n type: \"ContinueStatement\",\n label,\n });\n}\nexport function debuggerStatement(): t.DebuggerStatement {\n return {\n type: \"DebuggerStatement\",\n };\n}\nexport function doWhileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.DoWhileStatement {\n return validateNode<t.DoWhileStatement>({\n type: \"DoWhileStatement\",\n test,\n body,\n });\n}\nexport function emptyStatement(): t.EmptyStatement {\n return {\n type: \"EmptyStatement\",\n };\n}\nexport function expressionStatement(\n expression: t.Expression,\n): t.ExpressionStatement {\n return validateNode<t.ExpressionStatement>({\n type: \"ExpressionStatement\",\n expression,\n });\n}\nexport function file(\n program: t.Program,\n comments: Array<t.CommentBlock | t.CommentLine> | null = null,\n tokens: Array<any> | null = null,\n): t.File {\n return validateNode<t.File>({\n type: \"File\",\n program,\n comments,\n tokens,\n });\n}\nexport function forInStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n): t.ForInStatement {\n return validateNode<t.ForInStatement>({\n type: \"ForInStatement\",\n left,\n right,\n body,\n });\n}\nexport function forStatement(\n init: t.VariableDeclaration | t.Expression | null | undefined = null,\n test: t.Expression | null | undefined = null,\n update: t.Expression | null | undefined = null,\n body: t.Statement,\n): t.ForStatement {\n return validateNode<t.ForStatement>({\n type: \"ForStatement\",\n init,\n test,\n update,\n body,\n });\n}\nexport function functionDeclaration(\n id: t.Identifier | null | undefined = null,\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionDeclaration {\n return validateNode<t.FunctionDeclaration>({\n type: \"FunctionDeclaration\",\n id,\n params,\n body,\n generator,\n async,\n });\n}\nexport function functionExpression(\n id: t.Identifier | null | undefined = null,\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionExpression {\n return validateNode<t.FunctionExpression>({\n type: \"FunctionExpression\",\n id,\n params,\n body,\n generator,\n async,\n });\n}\nexport function identifier(name: string): t.Identifier {\n return validateNode<t.Identifier>({\n type: \"Identifier\",\n name,\n });\n}\nexport function ifStatement(\n test: t.Expression,\n consequent: t.Statement,\n alternate: t.Statement | null = null,\n): t.IfStatement {\n return validateNode<t.IfStatement>({\n type: \"IfStatement\",\n test,\n consequent,\n alternate,\n });\n}\nexport function labeledStatement(\n label: t.Identifier,\n body: t.Statement,\n): t.LabeledStatement {\n return validateNode<t.LabeledStatement>({\n type: \"LabeledStatement\",\n label,\n body,\n });\n}\nexport function stringLiteral(value: string): t.StringLiteral {\n return validateNode<t.StringLiteral>({\n type: \"StringLiteral\",\n value,\n });\n}\nexport function numericLiteral(value: number): t.NumericLiteral {\n return validateNode<t.NumericLiteral>({\n type: \"NumericLiteral\",\n value,\n });\n}\nexport function nullLiteral(): t.NullLiteral {\n return {\n type: \"NullLiteral\",\n };\n}\nexport function booleanLiteral(value: boolean): t.BooleanLiteral {\n return validateNode<t.BooleanLiteral>({\n type: \"BooleanLiteral\",\n value,\n });\n}\nexport function regExpLiteral(\n pattern: string,\n flags: string = \"\",\n): t.RegExpLiteral {\n return validateNode<t.RegExpLiteral>({\n type: \"RegExpLiteral\",\n pattern,\n flags,\n });\n}\nexport function logicalExpression(\n operator: \"||\" | \"&&\" | \"??\",\n left: t.Expression,\n right: t.Expression,\n): t.LogicalExpression {\n return validateNode<t.LogicalExpression>({\n type: \"LogicalExpression\",\n operator,\n left,\n right,\n });\n}\nexport function memberExpression(\n object: t.Expression | t.Super,\n property: t.Expression | t.Identifier | t.PrivateName,\n computed: boolean = false,\n optional: true | false | null = null,\n): t.MemberExpression {\n return validateNode<t.MemberExpression>({\n type: \"MemberExpression\",\n object,\n property,\n computed,\n optional,\n });\n}\nexport function newExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: Array<\n t.Expression | t.SpreadElement | t.JSXNamespacedName | t.ArgumentPlaceholder\n >,\n): t.NewExpression {\n return validateNode<t.NewExpression>({\n type: \"NewExpression\",\n callee,\n arguments: _arguments,\n });\n}\nexport function program(\n body: Array<t.Statement>,\n directives: Array<t.Directive> = [],\n sourceType: \"script\" | \"module\" = \"script\",\n interpreter: t.InterpreterDirective | null = null,\n): t.Program {\n return validateNode<t.Program>({\n type: \"Program\",\n body,\n directives,\n sourceType,\n interpreter,\n sourceFile: null,\n });\n}\nexport function objectExpression(\n properties: Array<t.ObjectMethod | t.ObjectProperty | t.SpreadElement>,\n): t.ObjectExpression {\n return validateNode<t.ObjectExpression>({\n type: \"ObjectExpression\",\n properties,\n });\n}\nexport function objectMethod(\n kind: \"method\" | \"get\" | \"set\" | undefined = \"method\",\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n body: t.BlockStatement,\n computed: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ObjectMethod {\n return validateNode<t.ObjectMethod>({\n type: \"ObjectMethod\",\n kind,\n key,\n params,\n body,\n computed,\n generator,\n async,\n });\n}\nexport function objectProperty(\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DecimalLiteral\n | t.PrivateName,\n value: t.Expression | t.PatternLike,\n computed: boolean = false,\n shorthand: boolean = false,\n decorators: Array<t.Decorator> | null = null,\n): t.ObjectProperty {\n return validateNode<t.ObjectProperty>({\n type: \"ObjectProperty\",\n key,\n value,\n computed,\n shorthand,\n decorators,\n });\n}\nexport function restElement(argument: t.LVal): t.RestElement {\n return validateNode<t.RestElement>({\n type: \"RestElement\",\n argument,\n });\n}\nexport function returnStatement(\n argument: t.Expression | null = null,\n): t.ReturnStatement {\n return validateNode<t.ReturnStatement>({\n type: \"ReturnStatement\",\n argument,\n });\n}\nexport function sequenceExpression(\n expressions: Array<t.Expression>,\n): t.SequenceExpression {\n return validateNode<t.SequenceExpression>({\n type: \"SequenceExpression\",\n expressions,\n });\n}\nexport function parenthesizedExpression(\n expression: t.Expression,\n): t.ParenthesizedExpression {\n return validateNode<t.ParenthesizedExpression>({\n type: \"ParenthesizedExpression\",\n expression,\n });\n}\nexport function switchCase(\n test: t.Expression | null | undefined = null,\n consequent: Array<t.Statement>,\n): t.SwitchCase {\n return validateNode<t.SwitchCase>({\n type: \"SwitchCase\",\n test,\n consequent,\n });\n}\nexport function switchStatement(\n discriminant: t.Expression,\n cases: Array<t.SwitchCase>,\n): t.SwitchStatement {\n return validateNode<t.SwitchStatement>({\n type: \"SwitchStatement\",\n discriminant,\n cases,\n });\n}\nexport function thisExpression(): t.ThisExpression {\n return {\n type: \"ThisExpression\",\n };\n}\nexport function throwStatement(argument: t.Expression): t.ThrowStatement {\n return validateNode<t.ThrowStatement>({\n type: \"ThrowStatement\",\n argument,\n });\n}\nexport function tryStatement(\n block: t.BlockStatement,\n handler: t.CatchClause | null = null,\n finalizer: t.BlockStatement | null = null,\n): t.TryStatement {\n return validateNode<t.TryStatement>({\n type: \"TryStatement\",\n block,\n handler,\n finalizer,\n });\n}\nexport function unaryExpression(\n operator: \"void\" | \"throw\" | \"delete\" | \"!\" | \"+\" | \"-\" | \"~\" | \"typeof\",\n argument: t.Expression,\n prefix: boolean = true,\n): t.UnaryExpression {\n return validateNode<t.UnaryExpression>({\n type: \"UnaryExpression\",\n operator,\n argument,\n prefix,\n });\n}\nexport function updateExpression(\n operator: \"++\" | \"--\",\n argument: t.Expression,\n prefix: boolean = false,\n): t.UpdateExpression {\n return validateNode<t.UpdateExpression>({\n type: \"UpdateExpression\",\n operator,\n argument,\n prefix,\n });\n}\nexport function variableDeclaration(\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n declarations: Array<t.VariableDeclarator>,\n): t.VariableDeclaration {\n return validateNode<t.VariableDeclaration>({\n type: \"VariableDeclaration\",\n kind,\n declarations,\n });\n}\nexport function variableDeclarator(\n id: t.LVal,\n init: t.Expression | null = null,\n): t.VariableDeclarator {\n return validateNode<t.VariableDeclarator>({\n type: \"VariableDeclarator\",\n id,\n init,\n });\n}\nexport function whileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.WhileStatement {\n return validateNode<t.WhileStatement>({\n type: \"WhileStatement\",\n test,\n body,\n });\n}\nexport function withStatement(\n object: t.Expression,\n body: t.Statement,\n): t.WithStatement {\n return validateNode<t.WithStatement>({\n type: \"WithStatement\",\n object,\n body,\n });\n}\nexport function assignmentPattern(\n left:\n | t.Identifier\n | t.ObjectPattern\n | t.ArrayPattern\n | t.MemberExpression\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression,\n right: t.Expression,\n): t.AssignmentPattern {\n return validateNode<t.AssignmentPattern>({\n type: \"AssignmentPattern\",\n left,\n right,\n });\n}\nexport function arrayPattern(\n elements: Array<null | t.PatternLike | t.LVal>,\n): t.ArrayPattern {\n return validateNode<t.ArrayPattern>({\n type: \"ArrayPattern\",\n elements,\n });\n}\nexport function arrowFunctionExpression(\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n body: t.BlockStatement | t.Expression,\n async: boolean = false,\n): t.ArrowFunctionExpression {\n return validateNode<t.ArrowFunctionExpression>({\n type: \"ArrowFunctionExpression\",\n params,\n body,\n async,\n expression: null,\n });\n}\nexport function classBody(\n body: Array<\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.TSDeclareMethod\n | t.TSIndexSignature\n | t.StaticBlock\n >,\n): t.ClassBody {\n return validateNode<t.ClassBody>({\n type: \"ClassBody\",\n body,\n });\n}\nexport function classExpression(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: Array<t.Decorator> | null = null,\n): t.ClassExpression {\n return validateNode<t.ClassExpression>({\n type: \"ClassExpression\",\n id,\n superClass,\n body,\n decorators,\n });\n}\nexport function classDeclaration(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: Array<t.Decorator> | null = null,\n): t.ClassDeclaration {\n return validateNode<t.ClassDeclaration>({\n type: \"ClassDeclaration\",\n id,\n superClass,\n body,\n decorators,\n });\n}\nexport function exportAllDeclaration(\n source: t.StringLiteral,\n): t.ExportAllDeclaration {\n return validateNode<t.ExportAllDeclaration>({\n type: \"ExportAllDeclaration\",\n source,\n });\n}\nexport function exportDefaultDeclaration(\n declaration:\n | t.TSDeclareFunction\n | t.FunctionDeclaration\n | t.ClassDeclaration\n | t.Expression,\n): t.ExportDefaultDeclaration {\n return validateNode<t.ExportDefaultDeclaration>({\n type: \"ExportDefaultDeclaration\",\n declaration,\n });\n}\nexport function exportNamedDeclaration(\n declaration: t.Declaration | null = null,\n specifiers: Array<\n t.ExportSpecifier | t.ExportDefaultSpecifier | t.ExportNamespaceSpecifier\n > = [],\n source: t.StringLiteral | null = null,\n): t.ExportNamedDeclaration {\n return validateNode<t.ExportNamedDeclaration>({\n type: \"ExportNamedDeclaration\",\n declaration,\n specifiers,\n source,\n });\n}\nexport function exportSpecifier(\n local: t.Identifier,\n exported: t.Identifier | t.StringLiteral,\n): t.ExportSpecifier {\n return validateNode<t.ExportSpecifier>({\n type: \"ExportSpecifier\",\n local,\n exported,\n });\n}\nexport function forOfStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n _await: boolean = false,\n): t.ForOfStatement {\n return validateNode<t.ForOfStatement>({\n type: \"ForOfStatement\",\n left,\n right,\n body,\n await: _await,\n });\n}\nexport function importDeclaration(\n specifiers: Array<\n t.ImportSpecifier | t.ImportDefaultSpecifier | t.ImportNamespaceSpecifier\n >,\n source: t.StringLiteral,\n): t.ImportDeclaration {\n return validateNode<t.ImportDeclaration>({\n type: \"ImportDeclaration\",\n specifiers,\n source,\n });\n}\nexport function importDefaultSpecifier(\n local: t.Identifier,\n): t.ImportDefaultSpecifier {\n return validateNode<t.ImportDefaultSpecifier>({\n type: \"ImportDefaultSpecifier\",\n local,\n });\n}\nexport function importNamespaceSpecifier(\n local: t.Identifier,\n): t.ImportNamespaceSpecifier {\n return validateNode<t.ImportNamespaceSpecifier>({\n type: \"ImportNamespaceSpecifier\",\n local,\n });\n}\nexport function importSpecifier(\n local: t.Identifier,\n imported: t.Identifier | t.StringLiteral,\n): t.ImportSpecifier {\n return validateNode<t.ImportSpecifier>({\n type: \"ImportSpecifier\",\n local,\n imported,\n });\n}\nexport function importExpression(\n source: t.Expression,\n options: t.Expression | null = null,\n): t.ImportExpression {\n return validateNode<t.ImportExpression>({\n type: \"ImportExpression\",\n source,\n options,\n });\n}\nexport function metaProperty(\n meta: t.Identifier,\n property: t.Identifier,\n): t.MetaProperty {\n return validateNode<t.MetaProperty>({\n type: \"MetaProperty\",\n meta,\n property,\n });\n}\nexport function classMethod(\n kind: \"get\" | \"set\" | \"method\" | \"constructor\" | undefined = \"method\",\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n params: Array<\n t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty\n >,\n body: t.BlockStatement,\n computed: boolean = false,\n _static: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ClassMethod {\n return validateNode<t.ClassMethod>({\n type: \"ClassMethod\",\n kind,\n key,\n params,\n body,\n computed,\n static: _static,\n generator,\n async,\n });\n}\nexport function objectPattern(\n properties: Array<t.RestElement | t.ObjectProperty>,\n): t.ObjectPattern {\n return validateNode<t.ObjectPattern>({\n type: \"ObjectPattern\",\n properties,\n });\n}\nexport function spreadElement(argument: t.Expression): t.SpreadElement {\n return validateNode<t.SpreadElement>({\n type: \"SpreadElement\",\n argument,\n });\n}\nfunction _super(): t.Super {\n return {\n type: \"Super\",\n };\n}\nexport { _super as super };\nexport function taggedTemplateExpression(\n tag: t.Expression,\n quasi: t.TemplateLiteral,\n): t.TaggedTemplateExpression {\n return validateNode<t.TaggedTemplateExpression>({\n type: \"TaggedTemplateExpression\",\n tag,\n quasi,\n });\n}\nexport function templateElement(\n value: { raw: string; cooked?: string },\n tail: boolean = false,\n): t.TemplateElement {\n return validateNode<t.TemplateElement>({\n type: \"TemplateElement\",\n value,\n tail,\n });\n}\nexport function templateLiteral(\n quasis: Array<t.TemplateElement>,\n expressions: Array<t.Expression | t.TSType>,\n): t.TemplateLiteral {\n return validateNode<t.TemplateLiteral>({\n type: \"TemplateLiteral\",\n quasis,\n expressions,\n });\n}\nexport function yieldExpression(\n argument: t.Expression | null = null,\n delegate: boolean = false,\n): t.YieldExpression {\n return validateNode<t.YieldExpression>({\n type: \"YieldExpression\",\n argument,\n delegate,\n });\n}\nexport function awaitExpression(argument: t.Expression): t.AwaitExpression {\n return validateNode<t.AwaitExpression>({\n type: \"AwaitExpression\",\n argument,\n });\n}\nfunction _import(): t.Import {\n return {\n type: \"Import\",\n };\n}\nexport { _import as import };\nexport function bigIntLiteral(value: string): t.BigIntLiteral {\n return validateNode<t.BigIntLiteral>({\n type: \"BigIntLiteral\",\n value,\n });\n}\nexport function exportNamespaceSpecifier(\n exported: t.Identifier,\n): t.ExportNamespaceSpecifier {\n return validateNode<t.ExportNamespaceSpecifier>({\n type: \"ExportNamespaceSpecifier\",\n exported,\n });\n}\nexport function optionalMemberExpression(\n object: t.Expression,\n property: t.Expression | t.Identifier,\n computed: boolean | undefined = false,\n optional: boolean,\n): t.OptionalMemberExpression {\n return validateNode<t.OptionalMemberExpression>({\n type: \"OptionalMemberExpression\",\n object,\n property,\n computed,\n optional,\n });\n}\nexport function optionalCallExpression(\n callee: t.Expression,\n _arguments: Array<\n t.Expression | t.SpreadElement | t.JSXNamespacedName | t.ArgumentPlaceholder\n >,\n optional: boolean,\n): t.OptionalCallExpression {\n return validateNode<t.OptionalCallExpression>({\n type: \"OptionalCallExpression\",\n callee,\n arguments: _arguments,\n optional,\n });\n}\nexport function classProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: Array<t.Decorator> | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassProperty {\n return validateNode<t.ClassProperty>({\n type: \"ClassProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n });\n}\nexport function classAccessorProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression\n | t.PrivateName,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: Array<t.Decorator> | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassAccessorProperty {\n return validateNode<t.ClassAccessorProperty>({\n type: \"ClassAccessorProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n });\n}\nexport function classPrivateProperty(\n key: t.PrivateName,\n value: t.Expression | null = null,\n decorators: Array<t.Decorator> | null = null,\n _static: boolean = false,\n): t.ClassPrivateProperty {\n return validateNode<t.ClassPrivateProperty>({\n type: \"ClassPrivateProperty\",\n key,\n value,\n decorators,\n static: _static,\n });\n}\nexport function classPrivateMethod(\n kind: \"get\" | \"set\" | \"method\" | undefined = \"method\",\n key: t.PrivateName,\n params: Array<\n t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty\n >,\n body: t.BlockStatement,\n _static: boolean = false,\n): t.ClassPrivateMethod {\n return validateNode<t.ClassPrivateMethod>({\n type: \"ClassPrivateMethod\",\n kind,\n key,\n params,\n body,\n static: _static,\n });\n}\nexport function privateName(id: t.Identifier): t.PrivateName {\n return validateNode<t.PrivateName>({\n type: \"PrivateName\",\n id,\n });\n}\nexport function staticBlock(body: Array<t.Statement>): t.StaticBlock {\n return validateNode<t.StaticBlock>({\n type: \"StaticBlock\",\n body,\n });\n}\nexport function anyTypeAnnotation(): t.AnyTypeAnnotation {\n return {\n type: \"AnyTypeAnnotation\",\n };\n}\nexport function arrayTypeAnnotation(\n elementType: t.FlowType,\n): t.ArrayTypeAnnotation {\n return validateNode<t.ArrayTypeAnnotation>({\n type: \"ArrayTypeAnnotation\",\n elementType,\n });\n}\nexport function booleanTypeAnnotation(): t.BooleanTypeAnnotation {\n return {\n type: \"BooleanTypeAnnotation\",\n };\n}\nexport function booleanLiteralTypeAnnotation(\n value: boolean,\n): t.BooleanLiteralTypeAnnotation {\n return validateNode<t.BooleanLiteralTypeAnnotation>({\n type: \"BooleanLiteralTypeAnnotation\",\n value,\n });\n}\nexport function nullLiteralTypeAnnotation(): t.NullLiteralTypeAnnotation {\n return {\n type: \"NullLiteralTypeAnnotation\",\n };\n}\nexport function classImplements(\n id: t.Identifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.ClassImplements {\n return validateNode<t.ClassImplements>({\n type: \"ClassImplements\",\n id,\n typeParameters,\n });\n}\nexport function declareClass(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareClass {\n return validateNode<t.DeclareClass>({\n type: \"DeclareClass\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport function declareFunction(id: t.Identifier): t.DeclareFunction {\n return validateNode<t.DeclareFunction>({\n type: \"DeclareFunction\",\n id,\n });\n}\nexport function declareInterface(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareInterface {\n return validateNode<t.DeclareInterface>({\n type: \"DeclareInterface\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport function declareModule(\n id: t.Identifier | t.StringLiteral,\n body: t.BlockStatement,\n kind: \"CommonJS\" | \"ES\" | null = null,\n): t.DeclareModule {\n return validateNode<t.DeclareModule>({\n type: \"DeclareModule\",\n id,\n body,\n kind,\n });\n}\nexport function declareModuleExports(\n typeAnnotation: t.TypeAnnotation,\n): t.DeclareModuleExports {\n return validateNode<t.DeclareModuleExports>({\n type: \"DeclareModuleExports\",\n typeAnnotation,\n });\n}\nexport function declareTypeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.DeclareTypeAlias {\n return validateNode<t.DeclareTypeAlias>({\n type: \"DeclareTypeAlias\",\n id,\n typeParameters,\n right,\n });\n}\nexport function declareOpaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null = null,\n supertype: t.FlowType | null = null,\n): t.DeclareOpaqueType {\n return validateNode<t.DeclareOpaqueType>({\n type: \"DeclareOpaqueType\",\n id,\n typeParameters,\n supertype,\n });\n}\nexport function declareVariable(id: t.Identifier): t.DeclareVariable {\n return validateNode<t.DeclareVariable>({\n type: \"DeclareVariable\",\n id,\n });\n}\nexport function declareExportDeclaration(\n declaration: t.Flow | null = null,\n specifiers: Array<\n t.ExportSpecifier | t.ExportNamespaceSpecifier\n > | null = null,\n source: t.StringLiteral | null = null,\n): t.DeclareExportDeclaration {\n return validateNode<t.DeclareExportDeclaration>({\n type: \"DeclareExportDeclaration\",\n declaration,\n specifiers,\n source,\n });\n}\nexport function declareExportAllDeclaration(\n source: t.StringLiteral,\n): t.DeclareExportAllDeclaration {\n return validateNode<t.DeclareExportAllDeclaration>({\n type: \"DeclareExportAllDeclaration\",\n source,\n });\n}\nexport function declaredPredicate(value: t.Flow): t.DeclaredPredicate {\n return validateNode<t.DeclaredPredicate>({\n type: \"DeclaredPredicate\",\n value,\n });\n}\nexport function existsTypeAnnotation(): t.ExistsTypeAnnotation {\n return {\n type: \"ExistsTypeAnnotation\",\n };\n}\nexport function functionTypeAnnotation(\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n params: Array<t.FunctionTypeParam>,\n rest: t.FunctionTypeParam | null | undefined = null,\n returnType: t.FlowType,\n): t.FunctionTypeAnnotation {\n return validateNode<t.FunctionTypeAnnotation>({\n type: \"FunctionTypeAnnotation\",\n typeParameters,\n params,\n rest,\n returnType,\n });\n}\nexport function functionTypeParam(\n name: t.Identifier | null | undefined = null,\n typeAnnotation: t.FlowType,\n): t.FunctionTypeParam {\n return validateNode<t.FunctionTypeParam>({\n type: \"FunctionTypeParam\",\n name,\n typeAnnotation,\n });\n}\nexport function genericTypeAnnotation(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.GenericTypeAnnotation {\n return validateNode<t.GenericTypeAnnotation>({\n type: \"GenericTypeAnnotation\",\n id,\n typeParameters,\n });\n}\nexport function inferredPredicate(): t.InferredPredicate {\n return {\n type: \"InferredPredicate\",\n };\n}\nexport function interfaceExtends(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.InterfaceExtends {\n return validateNode<t.InterfaceExtends>({\n type: \"InterfaceExtends\",\n id,\n typeParameters,\n });\n}\nexport function interfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceDeclaration {\n return validateNode<t.InterfaceDeclaration>({\n type: \"InterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport function interfaceTypeAnnotation(\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceTypeAnnotation {\n return validateNode<t.InterfaceTypeAnnotation>({\n type: \"InterfaceTypeAnnotation\",\n extends: _extends,\n body,\n });\n}\nexport function intersectionTypeAnnotation(\n types: Array<t.FlowType>,\n): t.IntersectionTypeAnnotation {\n return validateNode<t.IntersectionTypeAnnotation>({\n type: \"IntersectionTypeAnnotation\",\n types,\n });\n}\nexport function mixedTypeAnnotation(): t.MixedTypeAnnotation {\n return {\n type: \"MixedTypeAnnotation\",\n };\n}\nexport function emptyTypeAnnotation(): t.EmptyTypeAnnotation {\n return {\n type: \"EmptyTypeAnnotation\",\n };\n}\nexport function nullableTypeAnnotation(\n typeAnnotation: t.FlowType,\n): t.NullableTypeAnnotation {\n return validateNode<t.NullableTypeAnnotation>({\n type: \"NullableTypeAnnotation\",\n typeAnnotation,\n });\n}\nexport function numberLiteralTypeAnnotation(\n value: number,\n): t.NumberLiteralTypeAnnotation {\n return validateNode<t.NumberLiteralTypeAnnotation>({\n type: \"NumberLiteralTypeAnnotation\",\n value,\n });\n}\nexport function numberTypeAnnotation(): t.NumberTypeAnnotation {\n return {\n type: \"NumberTypeAnnotation\",\n };\n}\nexport function objectTypeAnnotation(\n properties: Array<t.ObjectTypeProperty | t.ObjectTypeSpreadProperty>,\n indexers: Array<t.ObjectTypeIndexer> = [],\n callProperties: Array<t.ObjectTypeCallProperty> = [],\n internalSlots: Array<t.ObjectTypeInternalSlot> = [],\n exact: boolean = false,\n): t.ObjectTypeAnnotation {\n return validateNode<t.ObjectTypeAnnotation>({\n type: \"ObjectTypeAnnotation\",\n properties,\n indexers,\n callProperties,\n internalSlots,\n exact,\n });\n}\nexport function objectTypeInternalSlot(\n id: t.Identifier,\n value: t.FlowType,\n optional: boolean,\n _static: boolean,\n method: boolean,\n): t.ObjectTypeInternalSlot {\n return validateNode<t.ObjectTypeInternalSlot>({\n type: \"ObjectTypeInternalSlot\",\n id,\n value,\n optional,\n static: _static,\n method,\n });\n}\nexport function objectTypeCallProperty(\n value: t.FlowType,\n): t.ObjectTypeCallProperty {\n return validateNode<t.ObjectTypeCallProperty>({\n type: \"ObjectTypeCallProperty\",\n value,\n static: null,\n });\n}\nexport function objectTypeIndexer(\n id: t.Identifier | null | undefined = null,\n key: t.FlowType,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeIndexer {\n return validateNode<t.ObjectTypeIndexer>({\n type: \"ObjectTypeIndexer\",\n id,\n key,\n value,\n variance,\n static: null,\n });\n}\nexport function objectTypeProperty(\n key: t.Identifier | t.StringLiteral,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeProperty {\n return validateNode<t.ObjectTypeProperty>({\n type: \"ObjectTypeProperty\",\n key,\n value,\n variance,\n kind: null,\n method: null,\n optional: null,\n proto: null,\n static: null,\n });\n}\nexport function objectTypeSpreadProperty(\n argument: t.FlowType,\n): t.ObjectTypeSpreadProperty {\n return validateNode<t.ObjectTypeSpreadProperty>({\n type: \"ObjectTypeSpreadProperty\",\n argument,\n });\n}\nexport function opaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n supertype: t.FlowType | null | undefined = null,\n impltype: t.FlowType,\n): t.OpaqueType {\n return validateNode<t.OpaqueType>({\n type: \"OpaqueType\",\n id,\n typeParameters,\n supertype,\n impltype,\n });\n}\nexport function qualifiedTypeIdentifier(\n id: t.Identifier,\n qualification: t.Identifier | t.QualifiedTypeIdentifier,\n): t.QualifiedTypeIdentifier {\n return validateNode<t.QualifiedTypeIdentifier>({\n type: \"QualifiedTypeIdentifier\",\n id,\n qualification,\n });\n}\nexport function stringLiteralTypeAnnotation(\n value: string,\n): t.StringLiteralTypeAnnotation {\n return validateNode<t.StringLiteralTypeAnnotation>({\n type: \"StringLiteralTypeAnnotation\",\n value,\n });\n}\nexport function stringTypeAnnotation(): t.StringTypeAnnotation {\n return {\n type: \"StringTypeAnnotation\",\n };\n}\nexport function symbolTypeAnnotation(): t.SymbolTypeAnnotation {\n return {\n type: \"SymbolTypeAnnotation\",\n };\n}\nexport function thisTypeAnnotation(): t.ThisTypeAnnotation {\n return {\n type: \"ThisTypeAnnotation\",\n };\n}\nexport function tupleTypeAnnotation(\n types: Array<t.FlowType>,\n): t.TupleTypeAnnotation {\n return validateNode<t.TupleTypeAnnotation>({\n type: \"TupleTypeAnnotation\",\n types,\n });\n}\nexport function typeofTypeAnnotation(\n argument: t.FlowType,\n): t.TypeofTypeAnnotation {\n return validateNode<t.TypeofTypeAnnotation>({\n type: \"TypeofTypeAnnotation\",\n argument,\n });\n}\nexport function typeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.TypeAlias {\n return validateNode<t.TypeAlias>({\n type: \"TypeAlias\",\n id,\n typeParameters,\n right,\n });\n}\nexport function typeAnnotation(typeAnnotation: t.FlowType): t.TypeAnnotation {\n return validateNode<t.TypeAnnotation>({\n type: \"TypeAnnotation\",\n typeAnnotation,\n });\n}\nexport function typeCastExpression(\n expression: t.Expression,\n typeAnnotation: t.TypeAnnotation,\n): t.TypeCastExpression {\n return validateNode<t.TypeCastExpression>({\n type: \"TypeCastExpression\",\n expression,\n typeAnnotation,\n });\n}\nexport function typeParameter(\n bound: t.TypeAnnotation | null = null,\n _default: t.FlowType | null = null,\n variance: t.Variance | null = null,\n): t.TypeParameter {\n return validateNode<t.TypeParameter>({\n type: \"TypeParameter\",\n bound,\n default: _default,\n variance,\n name: null,\n });\n}\nexport function typeParameterDeclaration(\n params: Array<t.TypeParameter>,\n): t.TypeParameterDeclaration {\n return validateNode<t.TypeParameterDeclaration>({\n type: \"TypeParameterDeclaration\",\n params,\n });\n}\nexport function typeParameterInstantiation(\n params: Array<t.FlowType>,\n): t.TypeParameterInstantiation {\n return validateNode<t.TypeParameterInstantiation>({\n type: \"TypeParameterInstantiation\",\n params,\n });\n}\nexport function unionTypeAnnotation(\n types: Array<t.FlowType>,\n): t.UnionTypeAnnotation {\n return validateNode<t.UnionTypeAnnotation>({\n type: \"UnionTypeAnnotation\",\n types,\n });\n}\nexport function variance(kind: \"minus\" | \"plus\"): t.Variance {\n return validateNode<t.Variance>({\n type: \"Variance\",\n kind,\n });\n}\nexport function voidTypeAnnotation(): t.VoidTypeAnnotation {\n return {\n type: \"VoidTypeAnnotation\",\n };\n}\nexport function enumDeclaration(\n id: t.Identifier,\n body:\n | t.EnumBooleanBody\n | t.EnumNumberBody\n | t.EnumStringBody\n | t.EnumSymbolBody,\n): t.EnumDeclaration {\n return validateNode<t.EnumDeclaration>({\n type: \"EnumDeclaration\",\n id,\n body,\n });\n}\nexport function enumBooleanBody(\n members: Array<t.EnumBooleanMember>,\n): t.EnumBooleanBody {\n return validateNode<t.EnumBooleanBody>({\n type: \"EnumBooleanBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n });\n}\nexport function enumNumberBody(\n members: Array<t.EnumNumberMember>,\n): t.EnumNumberBody {\n return validateNode<t.EnumNumberBody>({\n type: \"EnumNumberBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n });\n}\nexport function enumStringBody(\n members: Array<t.EnumStringMember | t.EnumDefaultedMember>,\n): t.EnumStringBody {\n return validateNode<t.EnumStringBody>({\n type: \"EnumStringBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n });\n}\nexport function enumSymbolBody(\n members: Array<t.EnumDefaultedMember>,\n): t.EnumSymbolBody {\n return validateNode<t.EnumSymbolBody>({\n type: \"EnumSymbolBody\",\n members,\n hasUnknownMembers: null,\n });\n}\nexport function enumBooleanMember(id: t.Identifier): t.EnumBooleanMember {\n return validateNode<t.EnumBooleanMember>({\n type: \"EnumBooleanMember\",\n id,\n init: null,\n });\n}\nexport function enumNumberMember(\n id: t.Identifier,\n init: t.NumericLiteral,\n): t.EnumNumberMember {\n return validateNode<t.EnumNumberMember>({\n type: \"EnumNumberMember\",\n id,\n init,\n });\n}\nexport function enumStringMember(\n id: t.Identifier,\n init: t.StringLiteral,\n): t.EnumStringMember {\n return validateNode<t.EnumStringMember>({\n type: \"EnumStringMember\",\n id,\n init,\n });\n}\nexport function enumDefaultedMember(id: t.Identifier): t.EnumDefaultedMember {\n return validateNode<t.EnumDefaultedMember>({\n type: \"EnumDefaultedMember\",\n id,\n });\n}\nexport function indexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.IndexedAccessType {\n return validateNode<t.IndexedAccessType>({\n type: \"IndexedAccessType\",\n objectType,\n indexType,\n });\n}\nexport function optionalIndexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.OptionalIndexedAccessType {\n return validateNode<t.OptionalIndexedAccessType>({\n type: \"OptionalIndexedAccessType\",\n objectType,\n indexType,\n optional: null,\n });\n}\nexport function jsxAttribute(\n name: t.JSXIdentifier | t.JSXNamespacedName,\n value:\n | t.JSXElement\n | t.JSXFragment\n | t.StringLiteral\n | t.JSXExpressionContainer\n | null = null,\n): t.JSXAttribute {\n return validateNode<t.JSXAttribute>({\n type: \"JSXAttribute\",\n name,\n value,\n });\n}\nexport { jsxAttribute as jSXAttribute };\nexport function jsxClosingElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n): t.JSXClosingElement {\n return validateNode<t.JSXClosingElement>({\n type: \"JSXClosingElement\",\n name,\n });\n}\nexport { jsxClosingElement as jSXClosingElement };\nexport function jsxElement(\n openingElement: t.JSXOpeningElement,\n closingElement: t.JSXClosingElement | null | undefined = null,\n children: Array<\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n >,\n selfClosing: boolean | null = null,\n): t.JSXElement {\n return validateNode<t.JSXElement>({\n type: \"JSXElement\",\n openingElement,\n closingElement,\n children,\n selfClosing,\n });\n}\nexport { jsxElement as jSXElement };\nexport function jsxEmptyExpression(): t.JSXEmptyExpression {\n return {\n type: \"JSXEmptyExpression\",\n };\n}\nexport { jsxEmptyExpression as jSXEmptyExpression };\nexport function jsxExpressionContainer(\n expression: t.Expression | t.JSXEmptyExpression,\n): t.JSXExpressionContainer {\n return validateNode<t.JSXExpressionContainer>({\n type: \"JSXExpressionContainer\",\n expression,\n });\n}\nexport { jsxExpressionContainer as jSXExpressionContainer };\nexport function jsxSpreadChild(expression: t.Expression): t.JSXSpreadChild {\n return validateNode<t.JSXSpreadChild>({\n type: \"JSXSpreadChild\",\n expression,\n });\n}\nexport { jsxSpreadChild as jSXSpreadChild };\nexport function jsxIdentifier(name: string): t.JSXIdentifier {\n return validateNode<t.JSXIdentifier>({\n type: \"JSXIdentifier\",\n name,\n });\n}\nexport { jsxIdentifier as jSXIdentifier };\nexport function jsxMemberExpression(\n object: t.JSXMemberExpression | t.JSXIdentifier,\n property: t.JSXIdentifier,\n): t.JSXMemberExpression {\n return validateNode<t.JSXMemberExpression>({\n type: \"JSXMemberExpression\",\n object,\n property,\n });\n}\nexport { jsxMemberExpression as jSXMemberExpression };\nexport function jsxNamespacedName(\n namespace: t.JSXIdentifier,\n name: t.JSXIdentifier,\n): t.JSXNamespacedName {\n return validateNode<t.JSXNamespacedName>({\n type: \"JSXNamespacedName\",\n namespace,\n name,\n });\n}\nexport { jsxNamespacedName as jSXNamespacedName };\nexport function jsxOpeningElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n attributes: Array<t.JSXAttribute | t.JSXSpreadAttribute>,\n selfClosing: boolean = false,\n): t.JSXOpeningElement {\n return validateNode<t.JSXOpeningElement>({\n type: \"JSXOpeningElement\",\n name,\n attributes,\n selfClosing,\n });\n}\nexport { jsxOpeningElement as jSXOpeningElement };\nexport function jsxSpreadAttribute(\n argument: t.Expression,\n): t.JSXSpreadAttribute {\n return validateNode<t.JSXSpreadAttribute>({\n type: \"JSXSpreadAttribute\",\n argument,\n });\n}\nexport { jsxSpreadAttribute as jSXSpreadAttribute };\nexport function jsxText(value: string): t.JSXText {\n return validateNode<t.JSXText>({\n type: \"JSXText\",\n value,\n });\n}\nexport { jsxText as jSXText };\nexport function jsxFragment(\n openingFragment: t.JSXOpeningFragment,\n closingFragment: t.JSXClosingFragment,\n children: Array<\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n >,\n): t.JSXFragment {\n return validateNode<t.JSXFragment>({\n type: \"JSXFragment\",\n openingFragment,\n closingFragment,\n children,\n });\n}\nexport { jsxFragment as jSXFragment };\nexport function jsxOpeningFragment(): t.JSXOpeningFragment {\n return {\n type: \"JSXOpeningFragment\",\n };\n}\nexport { jsxOpeningFragment as jSXOpeningFragment };\nexport function jsxClosingFragment(): t.JSXClosingFragment {\n return {\n type: \"JSXClosingFragment\",\n };\n}\nexport { jsxClosingFragment as jSXClosingFragment };\nexport function noop(): t.Noop {\n return {\n type: \"Noop\",\n };\n}\nexport function placeholder(\n expectedNode:\n | \"Identifier\"\n | \"StringLiteral\"\n | \"Expression\"\n | \"Statement\"\n | \"Declaration\"\n | \"BlockStatement\"\n | \"ClassBody\"\n | \"Pattern\",\n name: t.Identifier,\n): t.Placeholder {\n return validateNode<t.Placeholder>({\n type: \"Placeholder\",\n expectedNode,\n name,\n });\n}\nexport function v8IntrinsicIdentifier(name: string): t.V8IntrinsicIdentifier {\n return validateNode<t.V8IntrinsicIdentifier>({\n type: \"V8IntrinsicIdentifier\",\n name,\n });\n}\nexport function argumentPlaceholder(): t.ArgumentPlaceholder {\n return {\n type: \"ArgumentPlaceholder\",\n };\n}\nexport function bindExpression(\n object: t.Expression,\n callee: t.Expression,\n): t.BindExpression {\n return validateNode<t.BindExpression>({\n type: \"BindExpression\",\n object,\n callee,\n });\n}\nexport function importAttribute(\n key: t.Identifier | t.StringLiteral,\n value: t.StringLiteral,\n): t.ImportAttribute {\n return validateNode<t.ImportAttribute>({\n type: \"ImportAttribute\",\n key,\n value,\n });\n}\nexport function decorator(expression: t.Expression): t.Decorator {\n return validateNode<t.Decorator>({\n type: \"Decorator\",\n expression,\n });\n}\nexport function doExpression(\n body: t.BlockStatement,\n async: boolean = false,\n): t.DoExpression {\n return validateNode<t.DoExpression>({\n type: \"DoExpression\",\n body,\n async,\n });\n}\nexport function exportDefaultSpecifier(\n exported: t.Identifier,\n): t.ExportDefaultSpecifier {\n return validateNode<t.ExportDefaultSpecifier>({\n type: \"ExportDefaultSpecifier\",\n exported,\n });\n}\nexport function recordExpression(\n properties: Array<t.ObjectProperty | t.SpreadElement>,\n): t.RecordExpression {\n return validateNode<t.RecordExpression>({\n type: \"RecordExpression\",\n properties,\n });\n}\nexport function tupleExpression(\n elements: Array<t.Expression | t.SpreadElement> = [],\n): t.TupleExpression {\n return validateNode<t.TupleExpression>({\n type: \"TupleExpression\",\n elements,\n });\n}\nexport function decimalLiteral(value: string): t.DecimalLiteral {\n return validateNode<t.DecimalLiteral>({\n type: \"DecimalLiteral\",\n value,\n });\n}\nexport function moduleExpression(body: t.Program): t.ModuleExpression {\n return validateNode<t.ModuleExpression>({\n type: \"ModuleExpression\",\n body,\n });\n}\nexport function topicReference(): t.TopicReference {\n return {\n type: \"TopicReference\",\n };\n}\nexport function pipelineTopicExpression(\n expression: t.Expression,\n): t.PipelineTopicExpression {\n return validateNode<t.PipelineTopicExpression>({\n type: \"PipelineTopicExpression\",\n expression,\n });\n}\nexport function pipelineBareFunction(\n callee: t.Expression,\n): t.PipelineBareFunction {\n return validateNode<t.PipelineBareFunction>({\n type: \"PipelineBareFunction\",\n callee,\n });\n}\nexport function pipelinePrimaryTopicReference(): t.PipelinePrimaryTopicReference {\n return {\n type: \"PipelinePrimaryTopicReference\",\n };\n}\nexport function tsParameterProperty(\n parameter: t.Identifier | t.AssignmentPattern,\n): t.TSParameterProperty {\n return validateNode<t.TSParameterProperty>({\n type: \"TSParameterProperty\",\n parameter,\n });\n}\nexport { tsParameterProperty as tSParameterProperty };\nexport function tsDeclareFunction(\n id: t.Identifier | null | undefined = null,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareFunction {\n return validateNode<t.TSDeclareFunction>({\n type: \"TSDeclareFunction\",\n id,\n typeParameters,\n params,\n returnType,\n });\n}\nexport { tsDeclareFunction as tSDeclareFunction };\nexport function tsDeclareMethod(\n decorators: Array<t.Decorator> | null | undefined = null,\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: Array<\n t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty\n >,\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareMethod {\n return validateNode<t.TSDeclareMethod>({\n type: \"TSDeclareMethod\",\n decorators,\n key,\n typeParameters,\n params,\n returnType,\n });\n}\nexport { tsDeclareMethod as tSDeclareMethod };\nexport function tsQualifiedName(\n left: t.TSEntityName,\n right: t.Identifier,\n): t.TSQualifiedName {\n return validateNode<t.TSQualifiedName>({\n type: \"TSQualifiedName\",\n left,\n right,\n });\n}\nexport { tsQualifiedName as tSQualifiedName };\nexport function tsCallSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSCallSignatureDeclaration {\n return validateNode<t.TSCallSignatureDeclaration>({\n type: \"TSCallSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsCallSignatureDeclaration as tSCallSignatureDeclaration };\nexport function tsConstructSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructSignatureDeclaration {\n return validateNode<t.TSConstructSignatureDeclaration>({\n type: \"TSConstructSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsConstructSignatureDeclaration as tSConstructSignatureDeclaration };\nexport function tsPropertySignature(\n key: t.Expression,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n initializer: t.Expression | null = null,\n): t.TSPropertySignature {\n return validateNode<t.TSPropertySignature>({\n type: \"TSPropertySignature\",\n key,\n typeAnnotation,\n initializer,\n kind: null,\n });\n}\nexport { tsPropertySignature as tSPropertySignature };\nexport function tsMethodSignature(\n key: t.Expression,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSMethodSignature {\n return validateNode<t.TSMethodSignature>({\n type: \"TSMethodSignature\",\n key,\n typeParameters,\n parameters,\n typeAnnotation,\n kind: null,\n });\n}\nexport { tsMethodSignature as tSMethodSignature };\nexport function tsIndexSignature(\n parameters: Array<t.Identifier>,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSIndexSignature {\n return validateNode<t.TSIndexSignature>({\n type: \"TSIndexSignature\",\n parameters,\n typeAnnotation,\n });\n}\nexport { tsIndexSignature as tSIndexSignature };\nexport function tsAnyKeyword(): t.TSAnyKeyword {\n return {\n type: \"TSAnyKeyword\",\n };\n}\nexport { tsAnyKeyword as tSAnyKeyword };\nexport function tsBooleanKeyword(): t.TSBooleanKeyword {\n return {\n type: \"TSBooleanKeyword\",\n };\n}\nexport { tsBooleanKeyword as tSBooleanKeyword };\nexport function tsBigIntKeyword(): t.TSBigIntKeyword {\n return {\n type: \"TSBigIntKeyword\",\n };\n}\nexport { tsBigIntKeyword as tSBigIntKeyword };\nexport function tsIntrinsicKeyword(): t.TSIntrinsicKeyword {\n return {\n type: \"TSIntrinsicKeyword\",\n };\n}\nexport { tsIntrinsicKeyword as tSIntrinsicKeyword };\nexport function tsNeverKeyword(): t.TSNeverKeyword {\n return {\n type: \"TSNeverKeyword\",\n };\n}\nexport { tsNeverKeyword as tSNeverKeyword };\nexport function tsNullKeyword(): t.TSNullKeyword {\n return {\n type: \"TSNullKeyword\",\n };\n}\nexport { tsNullKeyword as tSNullKeyword };\nexport function tsNumberKeyword(): t.TSNumberKeyword {\n return {\n type: \"TSNumberKeyword\",\n };\n}\nexport { tsNumberKeyword as tSNumberKeyword };\nexport function tsObjectKeyword(): t.TSObjectKeyword {\n return {\n type: \"TSObjectKeyword\",\n };\n}\nexport { tsObjectKeyword as tSObjectKeyword };\nexport function tsStringKeyword(): t.TSStringKeyword {\n return {\n type: \"TSStringKeyword\",\n };\n}\nexport { tsStringKeyword as tSStringKeyword };\nexport function tsSymbolKeyword(): t.TSSymbolKeyword {\n return {\n type: \"TSSymbolKeyword\",\n };\n}\nexport { tsSymbolKeyword as tSSymbolKeyword };\nexport function tsUndefinedKeyword(): t.TSUndefinedKeyword {\n return {\n type: \"TSUndefinedKeyword\",\n };\n}\nexport { tsUndefinedKeyword as tSUndefinedKeyword };\nexport function tsUnknownKeyword(): t.TSUnknownKeyword {\n return {\n type: \"TSUnknownKeyword\",\n };\n}\nexport { tsUnknownKeyword as tSUnknownKeyword };\nexport function tsVoidKeyword(): t.TSVoidKeyword {\n return {\n type: \"TSVoidKeyword\",\n };\n}\nexport { tsVoidKeyword as tSVoidKeyword };\nexport function tsThisType(): t.TSThisType {\n return {\n type: \"TSThisType\",\n };\n}\nexport { tsThisType as tSThisType };\nexport function tsFunctionType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSFunctionType {\n return validateNode<t.TSFunctionType>({\n type: \"TSFunctionType\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsFunctionType as tSFunctionType };\nexport function tsConstructorType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructorType {\n return validateNode<t.TSConstructorType>({\n type: \"TSConstructorType\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsConstructorType as tSConstructorType };\nexport function tsTypeReference(\n typeName: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeReference {\n return validateNode<t.TSTypeReference>({\n type: \"TSTypeReference\",\n typeName,\n typeParameters,\n });\n}\nexport { tsTypeReference as tSTypeReference };\nexport function tsTypePredicate(\n parameterName: t.Identifier | t.TSThisType,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n asserts: boolean | null = null,\n): t.TSTypePredicate {\n return validateNode<t.TSTypePredicate>({\n type: \"TSTypePredicate\",\n parameterName,\n typeAnnotation,\n asserts,\n });\n}\nexport { tsTypePredicate as tSTypePredicate };\nexport function tsTypeQuery(\n exprName: t.TSEntityName | t.TSImportType,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeQuery {\n return validateNode<t.TSTypeQuery>({\n type: \"TSTypeQuery\",\n exprName,\n typeParameters,\n });\n}\nexport { tsTypeQuery as tSTypeQuery };\nexport function tsTypeLiteral(\n members: Array<t.TSTypeElement>,\n): t.TSTypeLiteral {\n return validateNode<t.TSTypeLiteral>({\n type: \"TSTypeLiteral\",\n members,\n });\n}\nexport { tsTypeLiteral as tSTypeLiteral };\nexport function tsArrayType(elementType: t.TSType): t.TSArrayType {\n return validateNode<t.TSArrayType>({\n type: \"TSArrayType\",\n elementType,\n });\n}\nexport { tsArrayType as tSArrayType };\nexport function tsTupleType(\n elementTypes: Array<t.TSType | t.TSNamedTupleMember>,\n): t.TSTupleType {\n return validateNode<t.TSTupleType>({\n type: \"TSTupleType\",\n elementTypes,\n });\n}\nexport { tsTupleType as tSTupleType };\nexport function tsOptionalType(typeAnnotation: t.TSType): t.TSOptionalType {\n return validateNode<t.TSOptionalType>({\n type: \"TSOptionalType\",\n typeAnnotation,\n });\n}\nexport { tsOptionalType as tSOptionalType };\nexport function tsRestType(typeAnnotation: t.TSType): t.TSRestType {\n return validateNode<t.TSRestType>({\n type: \"TSRestType\",\n typeAnnotation,\n });\n}\nexport { tsRestType as tSRestType };\nexport function tsNamedTupleMember(\n label: t.Identifier,\n elementType: t.TSType,\n optional: boolean = false,\n): t.TSNamedTupleMember {\n return validateNode<t.TSNamedTupleMember>({\n type: \"TSNamedTupleMember\",\n label,\n elementType,\n optional,\n });\n}\nexport { tsNamedTupleMember as tSNamedTupleMember };\nexport function tsUnionType(types: Array<t.TSType>): t.TSUnionType {\n return validateNode<t.TSUnionType>({\n type: \"TSUnionType\",\n types,\n });\n}\nexport { tsUnionType as tSUnionType };\nexport function tsIntersectionType(\n types: Array<t.TSType>,\n): t.TSIntersectionType {\n return validateNode<t.TSIntersectionType>({\n type: \"TSIntersectionType\",\n types,\n });\n}\nexport { tsIntersectionType as tSIntersectionType };\nexport function tsConditionalType(\n checkType: t.TSType,\n extendsType: t.TSType,\n trueType: t.TSType,\n falseType: t.TSType,\n): t.TSConditionalType {\n return validateNode<t.TSConditionalType>({\n type: \"TSConditionalType\",\n checkType,\n extendsType,\n trueType,\n falseType,\n });\n}\nexport { tsConditionalType as tSConditionalType };\nexport function tsInferType(typeParameter: t.TSTypeParameter): t.TSInferType {\n return validateNode<t.TSInferType>({\n type: \"TSInferType\",\n typeParameter,\n });\n}\nexport { tsInferType as tSInferType };\nexport function tsParenthesizedType(\n typeAnnotation: t.TSType,\n): t.TSParenthesizedType {\n return validateNode<t.TSParenthesizedType>({\n type: \"TSParenthesizedType\",\n typeAnnotation,\n });\n}\nexport { tsParenthesizedType as tSParenthesizedType };\nexport function tsTypeOperator(typeAnnotation: t.TSType): t.TSTypeOperator {\n return validateNode<t.TSTypeOperator>({\n type: \"TSTypeOperator\",\n typeAnnotation,\n operator: null,\n });\n}\nexport { tsTypeOperator as tSTypeOperator };\nexport function tsIndexedAccessType(\n objectType: t.TSType,\n indexType: t.TSType,\n): t.TSIndexedAccessType {\n return validateNode<t.TSIndexedAccessType>({\n type: \"TSIndexedAccessType\",\n objectType,\n indexType,\n });\n}\nexport { tsIndexedAccessType as tSIndexedAccessType };\nexport function tsMappedType(\n typeParameter: t.TSTypeParameter,\n typeAnnotation: t.TSType | null = null,\n nameType: t.TSType | null = null,\n): t.TSMappedType {\n return validateNode<t.TSMappedType>({\n type: \"TSMappedType\",\n typeParameter,\n typeAnnotation,\n nameType,\n });\n}\nexport { tsMappedType as tSMappedType };\nexport function tsLiteralType(\n literal:\n | t.NumericLiteral\n | t.StringLiteral\n | t.BooleanLiteral\n | t.BigIntLiteral\n | t.TemplateLiteral\n | t.UnaryExpression,\n): t.TSLiteralType {\n return validateNode<t.TSLiteralType>({\n type: \"TSLiteralType\",\n literal,\n });\n}\nexport { tsLiteralType as tSLiteralType };\nexport function tsExpressionWithTypeArguments(\n expression: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSExpressionWithTypeArguments {\n return validateNode<t.TSExpressionWithTypeArguments>({\n type: \"TSExpressionWithTypeArguments\",\n expression,\n typeParameters,\n });\n}\nexport { tsExpressionWithTypeArguments as tSExpressionWithTypeArguments };\nexport function tsInterfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.TSExpressionWithTypeArguments> | null | undefined = null,\n body: t.TSInterfaceBody,\n): t.TSInterfaceDeclaration {\n return validateNode<t.TSInterfaceDeclaration>({\n type: \"TSInterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport { tsInterfaceDeclaration as tSInterfaceDeclaration };\nexport function tsInterfaceBody(\n body: Array<t.TSTypeElement>,\n): t.TSInterfaceBody {\n return validateNode<t.TSInterfaceBody>({\n type: \"TSInterfaceBody\",\n body,\n });\n}\nexport { tsInterfaceBody as tSInterfaceBody };\nexport function tsTypeAliasDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n typeAnnotation: t.TSType,\n): t.TSTypeAliasDeclaration {\n return validateNode<t.TSTypeAliasDeclaration>({\n type: \"TSTypeAliasDeclaration\",\n id,\n typeParameters,\n typeAnnotation,\n });\n}\nexport { tsTypeAliasDeclaration as tSTypeAliasDeclaration };\nexport function tsInstantiationExpression(\n expression: t.Expression,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSInstantiationExpression {\n return validateNode<t.TSInstantiationExpression>({\n type: \"TSInstantiationExpression\",\n expression,\n typeParameters,\n });\n}\nexport { tsInstantiationExpression as tSInstantiationExpression };\nexport function tsAsExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSAsExpression {\n return validateNode<t.TSAsExpression>({\n type: \"TSAsExpression\",\n expression,\n typeAnnotation,\n });\n}\nexport { tsAsExpression as tSAsExpression };\nexport function tsSatisfiesExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSSatisfiesExpression {\n return validateNode<t.TSSatisfiesExpression>({\n type: \"TSSatisfiesExpression\",\n expression,\n typeAnnotation,\n });\n}\nexport { tsSatisfiesExpression as tSSatisfiesExpression };\nexport function tsTypeAssertion(\n typeAnnotation: t.TSType,\n expression: t.Expression,\n): t.TSTypeAssertion {\n return validateNode<t.TSTypeAssertion>({\n type: \"TSTypeAssertion\",\n typeAnnotation,\n expression,\n });\n}\nexport { tsTypeAssertion as tSTypeAssertion };\nexport function tsEnumDeclaration(\n id: t.Identifier,\n members: Array<t.TSEnumMember>,\n): t.TSEnumDeclaration {\n return validateNode<t.TSEnumDeclaration>({\n type: \"TSEnumDeclaration\",\n id,\n members,\n });\n}\nexport { tsEnumDeclaration as tSEnumDeclaration };\nexport function tsEnumMember(\n id: t.Identifier | t.StringLiteral,\n initializer: t.Expression | null = null,\n): t.TSEnumMember {\n return validateNode<t.TSEnumMember>({\n type: \"TSEnumMember\",\n id,\n initializer,\n });\n}\nexport { tsEnumMember as tSEnumMember };\nexport function tsModuleDeclaration(\n id: t.Identifier | t.StringLiteral,\n body: t.TSModuleBlock | t.TSModuleDeclaration,\n): t.TSModuleDeclaration {\n return validateNode<t.TSModuleDeclaration>({\n type: \"TSModuleDeclaration\",\n id,\n body,\n });\n}\nexport { tsModuleDeclaration as tSModuleDeclaration };\nexport function tsModuleBlock(body: Array<t.Statement>): t.TSModuleBlock {\n return validateNode<t.TSModuleBlock>({\n type: \"TSModuleBlock\",\n body,\n });\n}\nexport { tsModuleBlock as tSModuleBlock };\nexport function tsImportType(\n argument: t.StringLiteral,\n qualifier: t.TSEntityName | null = null,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSImportType {\n return validateNode<t.TSImportType>({\n type: \"TSImportType\",\n argument,\n qualifier,\n typeParameters,\n });\n}\nexport { tsImportType as tSImportType };\nexport function tsImportEqualsDeclaration(\n id: t.Identifier,\n moduleReference: t.TSEntityName | t.TSExternalModuleReference,\n): t.TSImportEqualsDeclaration {\n return validateNode<t.TSImportEqualsDeclaration>({\n type: \"TSImportEqualsDeclaration\",\n id,\n moduleReference,\n isExport: null,\n });\n}\nexport { tsImportEqualsDeclaration as tSImportEqualsDeclaration };\nexport function tsExternalModuleReference(\n expression: t.StringLiteral,\n): t.TSExternalModuleReference {\n return validateNode<t.TSExternalModuleReference>({\n type: \"TSExternalModuleReference\",\n expression,\n });\n}\nexport { tsExternalModuleReference as tSExternalModuleReference };\nexport function tsNonNullExpression(\n expression: t.Expression,\n): t.TSNonNullExpression {\n return validateNode<t.TSNonNullExpression>({\n type: \"TSNonNullExpression\",\n expression,\n });\n}\nexport { tsNonNullExpression as tSNonNullExpression };\nexport function tsExportAssignment(\n expression: t.Expression,\n): t.TSExportAssignment {\n return validateNode<t.TSExportAssignment>({\n type: \"TSExportAssignment\",\n expression,\n });\n}\nexport { tsExportAssignment as tSExportAssignment };\nexport function tsNamespaceExportDeclaration(\n id: t.Identifier,\n): t.TSNamespaceExportDeclaration {\n return validateNode<t.TSNamespaceExportDeclaration>({\n type: \"TSNamespaceExportDeclaration\",\n id,\n });\n}\nexport { tsNamespaceExportDeclaration as tSNamespaceExportDeclaration };\nexport function tsTypeAnnotation(typeAnnotation: t.TSType): t.TSTypeAnnotation {\n return validateNode<t.TSTypeAnnotation>({\n type: \"TSTypeAnnotation\",\n typeAnnotation,\n });\n}\nexport { tsTypeAnnotation as tSTypeAnnotation };\nexport function tsTypeParameterInstantiation(\n params: Array<t.TSType>,\n): t.TSTypeParameterInstantiation {\n return validateNode<t.TSTypeParameterInstantiation>({\n type: \"TSTypeParameterInstantiation\",\n params,\n });\n}\nexport { tsTypeParameterInstantiation as tSTypeParameterInstantiation };\nexport function tsTypeParameterDeclaration(\n params: Array<t.TSTypeParameter>,\n): t.TSTypeParameterDeclaration {\n return validateNode<t.TSTypeParameterDeclaration>({\n type: \"TSTypeParameterDeclaration\",\n params,\n });\n}\nexport { tsTypeParameterDeclaration as tSTypeParameterDeclaration };\nexport function tsTypeParameter(\n constraint: t.TSType | null | undefined = null,\n _default: t.TSType | null | undefined = null,\n name: string,\n): t.TSTypeParameter {\n return validateNode<t.TSTypeParameter>({\n type: \"TSTypeParameter\",\n constraint,\n default: _default,\n name,\n });\n}\nexport { tsTypeParameter as tSTypeParameter };\n/** @deprecated */\nfunction NumberLiteral(value: number) {\n deprecationWarning(\"NumberLiteral\", \"NumericLiteral\", \"The node type \");\n return numericLiteral(value);\n}\nexport { NumberLiteral as numberLiteral };\n/** @deprecated */\nfunction RegexLiteral(pattern: string, flags: string = \"\") {\n deprecationWarning(\"RegexLiteral\", \"RegExpLiteral\", \"The node type \");\n return regExpLiteral(pattern, flags);\n}\nexport { RegexLiteral as regexLiteral };\n/** @deprecated */\nfunction RestProperty(argument: t.LVal) {\n deprecationWarning(\"RestProperty\", \"RestElement\", \"The node type \");\n return restElement(argument);\n}\nexport { RestProperty as restProperty };\n/** @deprecated */\nfunction SpreadProperty(argument: t.Expression) {\n deprecationWarning(\"SpreadProperty\", \"SpreadElement\", \"The node type \");\n return spreadElement(argument);\n}\nexport { SpreadProperty as spreadProperty };\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_validateNode","require","_deprecationWarning","arrayExpression","elements","validateNode","type","assignmentExpression","operator","left","right","binaryExpression","interpreterDirective","value","directive","directiveLiteral","blockStatement","body","directives","breakStatement","label","callExpression","callee","_arguments","arguments","catchClause","param","conditionalExpression","test","consequent","alternate","continueStatement","debuggerStatement","doWhileStatement","emptyStatement","expressionStatement","expression","file","program","comments","tokens","forInStatement","forStatement","init","update","functionDeclaration","id","params","generator","async","functionExpression","identifier","name","ifStatement","labeledStatement","stringLiteral","numericLiteral","nullLiteral","booleanLiteral","regExpLiteral","pattern","flags","logicalExpression","memberExpression","object","property","computed","optional","newExpression","sourceType","interpreter","sourceFile","objectExpression","properties","objectMethod","kind","key","objectProperty","shorthand","decorators","restElement","argument","returnStatement","sequenceExpression","expressions","parenthesizedExpression","switchCase","switchStatement","discriminant","cases","thisExpression","throwStatement","tryStatement","block","handler","finalizer","unaryExpression","prefix","updateExpression","variableDeclaration","declarations","variableDeclarator","whileStatement","withStatement","assignmentPattern","arrayPattern","arrowFunctionExpression","classBody","classExpression","superClass","classDeclaration","exportAllDeclaration","source","exportDefaultDeclaration","declaration","exportNamedDeclaration","specifiers","exportSpecifier","local","exported","forOfStatement","_await","await","importDeclaration","importDefaultSpecifier","importNamespaceSpecifier","importSpecifier","imported","importExpression","options","metaProperty","meta","classMethod","_static","static","objectPattern","spreadElement","_super","taggedTemplateExpression","tag","quasi","templateElement","tail","templateLiteral","quasis","yieldExpression","delegate","awaitExpression","_import","bigIntLiteral","exportNamespaceSpecifier","optionalMemberExpression","optionalCallExpression","classProperty","typeAnnotation","classAccessorProperty","classPrivateProperty","classPrivateMethod","privateName","staticBlock","anyTypeAnnotation","arrayTypeAnnotation","elementType","booleanTypeAnnotation","booleanLiteralTypeAnnotation","nullLiteralTypeAnnotation","classImplements","typeParameters","declareClass","_extends","extends","declareFunction","declareInterface","declareModule","declareModuleExports","declareTypeAlias","declareOpaqueType","supertype","declareVariable","declareExportDeclaration","declareExportAllDeclaration","declaredPredicate","existsTypeAnnotation","functionTypeAnnotation","rest","returnType","functionTypeParam","genericTypeAnnotation","inferredPredicate","interfaceExtends","interfaceDeclaration","interfaceTypeAnnotation","intersectionTypeAnnotation","types","mixedTypeAnnotation","emptyTypeAnnotation","nullableTypeAnnotation","numberLiteralTypeAnnotation","numberTypeAnnotation","objectTypeAnnotation","indexers","callProperties","internalSlots","exact","objectTypeInternalSlot","method","objectTypeCallProperty","objectTypeIndexer","variance","objectTypeProperty","proto","objectTypeSpreadProperty","opaqueType","impltype","qualifiedTypeIdentifier","qualification","stringLiteralTypeAnnotation","stringTypeAnnotation","symbolTypeAnnotation","thisTypeAnnotation","tupleTypeAnnotation","typeofTypeAnnotation","typeAlias","typeCastExpression","typeParameter","bound","_default","default","typeParameterDeclaration","typeParameterInstantiation","unionTypeAnnotation","voidTypeAnnotation","enumDeclaration","enumBooleanBody","members","explicitType","hasUnknownMembers","enumNumberBody","enumStringBody","enumSymbolBody","enumBooleanMember","enumNumberMember","enumStringMember","enumDefaultedMember","indexedAccessType","objectType","indexType","optionalIndexedAccessType","jsxAttribute","jsxClosingElement","jsxElement","openingElement","closingElement","children","selfClosing","jsxEmptyExpression","jsxExpressionContainer","jsxSpreadChild","jsxIdentifier","jsxMemberExpression","jsxNamespacedName","namespace","jsxOpeningElement","attributes","jsxSpreadAttribute","jsxText","jsxFragment","openingFragment","closingFragment","jsxOpeningFragment","jsxClosingFragment","noop","placeholder","expectedNode","v8IntrinsicIdentifier","argumentPlaceholder","bindExpression","importAttribute","decorator","doExpression","exportDefaultSpecifier","recordExpression","tupleExpression","decimalLiteral","moduleExpression","topicReference","pipelineTopicExpression","pipelineBareFunction","pipelinePrimaryTopicReference","tsParameterProperty","parameter","tsDeclareFunction","tsDeclareMethod","tsQualifiedName","tsCallSignatureDeclaration","parameters","tsConstructSignatureDeclaration","tsPropertySignature","tsMethodSignature","tsIndexSignature","tsAnyKeyword","tsBooleanKeyword","tsBigIntKeyword","tsIntrinsicKeyword","tsNeverKeyword","tsNullKeyword","tsNumberKeyword","tsObjectKeyword","tsStringKeyword","tsSymbolKeyword","tsUndefinedKeyword","tsUnknownKeyword","tsVoidKeyword","tsThisType","tsFunctionType","tsConstructorType","tsTypeReference","typeName","tsTypePredicate","parameterName","asserts","tsTypeQuery","exprName","tsTypeLiteral","tsArrayType","tsTupleType","elementTypes","tsOptionalType","tsRestType","tsNamedTupleMember","tsUnionType","tsIntersectionType","tsConditionalType","checkType","extendsType","trueType","falseType","tsInferType","tsParenthesizedType","tsTypeOperator","tsIndexedAccessType","tsMappedType","nameType","tsLiteralType","literal","tsExpressionWithTypeArguments","tsInterfaceDeclaration","tsInterfaceBody","tsTypeAliasDeclaration","tsInstantiationExpression","tsAsExpression","tsSatisfiesExpression","tsTypeAssertion","tsEnumDeclaration","tsEnumMember","initializer","tsModuleDeclaration","tsModuleBlock","tsImportType","qualifier","tsImportEqualsDeclaration","moduleReference","isExport","tsExternalModuleReference","tsNonNullExpression","tsExportAssignment","tsNamespaceExportDeclaration","tsTypeAnnotation","tsTypeParameterInstantiation","tsTypeParameterDeclaration","tsTypeParameter","constraint","NumberLiteral","deprecationWarning","RegexLiteral","RestProperty","SpreadProperty"],"sources":["../../../src/builders/generated/index.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport validateNode from \"../validateNode.ts\";\nimport type * as t from \"../../index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\nexport function arrayExpression(\n elements: Array<null | t.Expression | t.SpreadElement> = [],\n): t.ArrayExpression {\n return validateNode<t.ArrayExpression>({\n type: \"ArrayExpression\",\n elements,\n });\n}\nexport function assignmentExpression(\n operator: string,\n left: t.LVal | t.OptionalMemberExpression,\n right: t.Expression,\n): t.AssignmentExpression {\n return validateNode<t.AssignmentExpression>({\n type: \"AssignmentExpression\",\n operator,\n left,\n right,\n });\n}\nexport function binaryExpression(\n operator:\n | \"+\"\n | \"-\"\n | \"/\"\n | \"%\"\n | \"*\"\n | \"**\"\n | \"&\"\n | \"|\"\n | \">>\"\n | \">>>\"\n | \"<<\"\n | \"^\"\n | \"==\"\n | \"===\"\n | \"!=\"\n | \"!==\"\n | \"in\"\n | \"instanceof\"\n | \">\"\n | \"<\"\n | \">=\"\n | \"<=\"\n | \"|>\",\n left: t.Expression | t.PrivateName,\n right: t.Expression,\n): t.BinaryExpression {\n return validateNode<t.BinaryExpression>({\n type: \"BinaryExpression\",\n operator,\n left,\n right,\n });\n}\nexport function interpreterDirective(value: string): t.InterpreterDirective {\n return validateNode<t.InterpreterDirective>({\n type: \"InterpreterDirective\",\n value,\n });\n}\nexport function directive(value: t.DirectiveLiteral): t.Directive {\n return validateNode<t.Directive>({\n type: \"Directive\",\n value,\n });\n}\nexport function directiveLiteral(value: string): t.DirectiveLiteral {\n return validateNode<t.DirectiveLiteral>({\n type: \"DirectiveLiteral\",\n value,\n });\n}\nexport function blockStatement(\n body: Array<t.Statement>,\n directives: Array<t.Directive> = [],\n): t.BlockStatement {\n return validateNode<t.BlockStatement>({\n type: \"BlockStatement\",\n body,\n directives,\n });\n}\nexport function breakStatement(\n label: t.Identifier | null = null,\n): t.BreakStatement {\n return validateNode<t.BreakStatement>({\n type: \"BreakStatement\",\n label,\n });\n}\nexport function callExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: Array<\n t.Expression | t.SpreadElement | t.JSXNamespacedName | t.ArgumentPlaceholder\n >,\n): t.CallExpression {\n return validateNode<t.CallExpression>({\n type: \"CallExpression\",\n callee,\n arguments: _arguments,\n });\n}\nexport function catchClause(\n param:\n | t.Identifier\n | t.ArrayPattern\n | t.ObjectPattern\n | null\n | undefined = null,\n body: t.BlockStatement,\n): t.CatchClause {\n return validateNode<t.CatchClause>({\n type: \"CatchClause\",\n param,\n body,\n });\n}\nexport function conditionalExpression(\n test: t.Expression,\n consequent: t.Expression,\n alternate: t.Expression,\n): t.ConditionalExpression {\n return validateNode<t.ConditionalExpression>({\n type: \"ConditionalExpression\",\n test,\n consequent,\n alternate,\n });\n}\nexport function continueStatement(\n label: t.Identifier | null = null,\n): t.ContinueStatement {\n return validateNode<t.ContinueStatement>({\n type: \"ContinueStatement\",\n label,\n });\n}\nexport function debuggerStatement(): t.DebuggerStatement {\n return {\n type: \"DebuggerStatement\",\n };\n}\nexport function doWhileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.DoWhileStatement {\n return validateNode<t.DoWhileStatement>({\n type: \"DoWhileStatement\",\n test,\n body,\n });\n}\nexport function emptyStatement(): t.EmptyStatement {\n return {\n type: \"EmptyStatement\",\n };\n}\nexport function expressionStatement(\n expression: t.Expression,\n): t.ExpressionStatement {\n return validateNode<t.ExpressionStatement>({\n type: \"ExpressionStatement\",\n expression,\n });\n}\nexport function file(\n program: t.Program,\n comments: Array<t.CommentBlock | t.CommentLine> | null = null,\n tokens: Array<any> | null = null,\n): t.File {\n return validateNode<t.File>({\n type: \"File\",\n program,\n comments,\n tokens,\n });\n}\nexport function forInStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n): t.ForInStatement {\n return validateNode<t.ForInStatement>({\n type: \"ForInStatement\",\n left,\n right,\n body,\n });\n}\nexport function forStatement(\n init: t.VariableDeclaration | t.Expression | null | undefined = null,\n test: t.Expression | null | undefined = null,\n update: t.Expression | null | undefined = null,\n body: t.Statement,\n): t.ForStatement {\n return validateNode<t.ForStatement>({\n type: \"ForStatement\",\n init,\n test,\n update,\n body,\n });\n}\nexport function functionDeclaration(\n id: t.Identifier | null | undefined = null,\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionDeclaration {\n return validateNode<t.FunctionDeclaration>({\n type: \"FunctionDeclaration\",\n id,\n params,\n body,\n generator,\n async,\n });\n}\nexport function functionExpression(\n id: t.Identifier | null | undefined = null,\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionExpression {\n return validateNode<t.FunctionExpression>({\n type: \"FunctionExpression\",\n id,\n params,\n body,\n generator,\n async,\n });\n}\nexport function identifier(name: string): t.Identifier {\n return validateNode<t.Identifier>({\n type: \"Identifier\",\n name,\n });\n}\nexport function ifStatement(\n test: t.Expression,\n consequent: t.Statement,\n alternate: t.Statement | null = null,\n): t.IfStatement {\n return validateNode<t.IfStatement>({\n type: \"IfStatement\",\n test,\n consequent,\n alternate,\n });\n}\nexport function labeledStatement(\n label: t.Identifier,\n body: t.Statement,\n): t.LabeledStatement {\n return validateNode<t.LabeledStatement>({\n type: \"LabeledStatement\",\n label,\n body,\n });\n}\nexport function stringLiteral(value: string): t.StringLiteral {\n return validateNode<t.StringLiteral>({\n type: \"StringLiteral\",\n value,\n });\n}\nexport function numericLiteral(value: number): t.NumericLiteral {\n return validateNode<t.NumericLiteral>({\n type: \"NumericLiteral\",\n value,\n });\n}\nexport function nullLiteral(): t.NullLiteral {\n return {\n type: \"NullLiteral\",\n };\n}\nexport function booleanLiteral(value: boolean): t.BooleanLiteral {\n return validateNode<t.BooleanLiteral>({\n type: \"BooleanLiteral\",\n value,\n });\n}\nexport function regExpLiteral(\n pattern: string,\n flags: string = \"\",\n): t.RegExpLiteral {\n return validateNode<t.RegExpLiteral>({\n type: \"RegExpLiteral\",\n pattern,\n flags,\n });\n}\nexport function logicalExpression(\n operator: \"||\" | \"&&\" | \"??\",\n left: t.Expression,\n right: t.Expression,\n): t.LogicalExpression {\n return validateNode<t.LogicalExpression>({\n type: \"LogicalExpression\",\n operator,\n left,\n right,\n });\n}\nexport function memberExpression(\n object: t.Expression | t.Super,\n property: t.Expression | t.Identifier | t.PrivateName,\n computed: boolean = false,\n optional: true | false | null = null,\n): t.MemberExpression {\n return validateNode<t.MemberExpression>({\n type: \"MemberExpression\",\n object,\n property,\n computed,\n optional,\n });\n}\nexport function newExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: Array<\n t.Expression | t.SpreadElement | t.JSXNamespacedName | t.ArgumentPlaceholder\n >,\n): t.NewExpression {\n return validateNode<t.NewExpression>({\n type: \"NewExpression\",\n callee,\n arguments: _arguments,\n });\n}\nexport function program(\n body: Array<t.Statement>,\n directives: Array<t.Directive> = [],\n sourceType: \"script\" | \"module\" = \"script\",\n interpreter: t.InterpreterDirective | null = null,\n): t.Program {\n return validateNode<t.Program>({\n type: \"Program\",\n body,\n directives,\n sourceType,\n interpreter,\n sourceFile: null,\n });\n}\nexport function objectExpression(\n properties: Array<t.ObjectMethod | t.ObjectProperty | t.SpreadElement>,\n): t.ObjectExpression {\n return validateNode<t.ObjectExpression>({\n type: \"ObjectExpression\",\n properties,\n });\n}\nexport function objectMethod(\n kind: \"method\" | \"get\" | \"set\" | undefined = \"method\",\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n body: t.BlockStatement,\n computed: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ObjectMethod {\n return validateNode<t.ObjectMethod>({\n type: \"ObjectMethod\",\n kind,\n key,\n params,\n body,\n computed,\n generator,\n async,\n });\n}\nexport function objectProperty(\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DecimalLiteral\n | t.PrivateName,\n value: t.Expression | t.PatternLike,\n computed: boolean = false,\n shorthand: boolean = false,\n decorators: Array<t.Decorator> | null = null,\n): t.ObjectProperty {\n return validateNode<t.ObjectProperty>({\n type: \"ObjectProperty\",\n key,\n value,\n computed,\n shorthand,\n decorators,\n });\n}\nexport function restElement(argument: t.LVal): t.RestElement {\n return validateNode<t.RestElement>({\n type: \"RestElement\",\n argument,\n });\n}\nexport function returnStatement(\n argument: t.Expression | null = null,\n): t.ReturnStatement {\n return validateNode<t.ReturnStatement>({\n type: \"ReturnStatement\",\n argument,\n });\n}\nexport function sequenceExpression(\n expressions: Array<t.Expression>,\n): t.SequenceExpression {\n return validateNode<t.SequenceExpression>({\n type: \"SequenceExpression\",\n expressions,\n });\n}\nexport function parenthesizedExpression(\n expression: t.Expression,\n): t.ParenthesizedExpression {\n return validateNode<t.ParenthesizedExpression>({\n type: \"ParenthesizedExpression\",\n expression,\n });\n}\nexport function switchCase(\n test: t.Expression | null | undefined = null,\n consequent: Array<t.Statement>,\n): t.SwitchCase {\n return validateNode<t.SwitchCase>({\n type: \"SwitchCase\",\n test,\n consequent,\n });\n}\nexport function switchStatement(\n discriminant: t.Expression,\n cases: Array<t.SwitchCase>,\n): t.SwitchStatement {\n return validateNode<t.SwitchStatement>({\n type: \"SwitchStatement\",\n discriminant,\n cases,\n });\n}\nexport function thisExpression(): t.ThisExpression {\n return {\n type: \"ThisExpression\",\n };\n}\nexport function throwStatement(argument: t.Expression): t.ThrowStatement {\n return validateNode<t.ThrowStatement>({\n type: \"ThrowStatement\",\n argument,\n });\n}\nexport function tryStatement(\n block: t.BlockStatement,\n handler: t.CatchClause | null = null,\n finalizer: t.BlockStatement | null = null,\n): t.TryStatement {\n return validateNode<t.TryStatement>({\n type: \"TryStatement\",\n block,\n handler,\n finalizer,\n });\n}\nexport function unaryExpression(\n operator: \"void\" | \"throw\" | \"delete\" | \"!\" | \"+\" | \"-\" | \"~\" | \"typeof\",\n argument: t.Expression,\n prefix: boolean = true,\n): t.UnaryExpression {\n return validateNode<t.UnaryExpression>({\n type: \"UnaryExpression\",\n operator,\n argument,\n prefix,\n });\n}\nexport function updateExpression(\n operator: \"++\" | \"--\",\n argument: t.Expression,\n prefix: boolean = false,\n): t.UpdateExpression {\n return validateNode<t.UpdateExpression>({\n type: \"UpdateExpression\",\n operator,\n argument,\n prefix,\n });\n}\nexport function variableDeclaration(\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n declarations: Array<t.VariableDeclarator>,\n): t.VariableDeclaration {\n return validateNode<t.VariableDeclaration>({\n type: \"VariableDeclaration\",\n kind,\n declarations,\n });\n}\nexport function variableDeclarator(\n id: t.LVal,\n init: t.Expression | null = null,\n): t.VariableDeclarator {\n return validateNode<t.VariableDeclarator>({\n type: \"VariableDeclarator\",\n id,\n init,\n });\n}\nexport function whileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.WhileStatement {\n return validateNode<t.WhileStatement>({\n type: \"WhileStatement\",\n test,\n body,\n });\n}\nexport function withStatement(\n object: t.Expression,\n body: t.Statement,\n): t.WithStatement {\n return validateNode<t.WithStatement>({\n type: \"WithStatement\",\n object,\n body,\n });\n}\nexport function assignmentPattern(\n left:\n | t.Identifier\n | t.ObjectPattern\n | t.ArrayPattern\n | t.MemberExpression\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression,\n right: t.Expression,\n): t.AssignmentPattern {\n return validateNode<t.AssignmentPattern>({\n type: \"AssignmentPattern\",\n left,\n right,\n });\n}\nexport function arrayPattern(\n elements: Array<null | t.PatternLike | t.LVal>,\n): t.ArrayPattern {\n return validateNode<t.ArrayPattern>({\n type: \"ArrayPattern\",\n elements,\n });\n}\nexport function arrowFunctionExpression(\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n body: t.BlockStatement | t.Expression,\n async: boolean = false,\n): t.ArrowFunctionExpression {\n return validateNode<t.ArrowFunctionExpression>({\n type: \"ArrowFunctionExpression\",\n params,\n body,\n async,\n expression: null,\n });\n}\nexport function classBody(\n body: Array<\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.TSDeclareMethod\n | t.TSIndexSignature\n | t.StaticBlock\n >,\n): t.ClassBody {\n return validateNode<t.ClassBody>({\n type: \"ClassBody\",\n body,\n });\n}\nexport function classExpression(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: Array<t.Decorator> | null = null,\n): t.ClassExpression {\n return validateNode<t.ClassExpression>({\n type: \"ClassExpression\",\n id,\n superClass,\n body,\n decorators,\n });\n}\nexport function classDeclaration(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: Array<t.Decorator> | null = null,\n): t.ClassDeclaration {\n return validateNode<t.ClassDeclaration>({\n type: \"ClassDeclaration\",\n id,\n superClass,\n body,\n decorators,\n });\n}\nexport function exportAllDeclaration(\n source: t.StringLiteral,\n): t.ExportAllDeclaration {\n return validateNode<t.ExportAllDeclaration>({\n type: \"ExportAllDeclaration\",\n source,\n });\n}\nexport function exportDefaultDeclaration(\n declaration:\n | t.TSDeclareFunction\n | t.FunctionDeclaration\n | t.ClassDeclaration\n | t.Expression,\n): t.ExportDefaultDeclaration {\n return validateNode<t.ExportDefaultDeclaration>({\n type: \"ExportDefaultDeclaration\",\n declaration,\n });\n}\nexport function exportNamedDeclaration(\n declaration: t.Declaration | null = null,\n specifiers: Array<\n t.ExportSpecifier | t.ExportDefaultSpecifier | t.ExportNamespaceSpecifier\n > = [],\n source: t.StringLiteral | null = null,\n): t.ExportNamedDeclaration {\n return validateNode<t.ExportNamedDeclaration>({\n type: \"ExportNamedDeclaration\",\n declaration,\n specifiers,\n source,\n });\n}\nexport function exportSpecifier(\n local: t.Identifier,\n exported: t.Identifier | t.StringLiteral,\n): t.ExportSpecifier {\n return validateNode<t.ExportSpecifier>({\n type: \"ExportSpecifier\",\n local,\n exported,\n });\n}\nexport function forOfStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n _await: boolean = false,\n): t.ForOfStatement {\n return validateNode<t.ForOfStatement>({\n type: \"ForOfStatement\",\n left,\n right,\n body,\n await: _await,\n });\n}\nexport function importDeclaration(\n specifiers: Array<\n t.ImportSpecifier | t.ImportDefaultSpecifier | t.ImportNamespaceSpecifier\n >,\n source: t.StringLiteral,\n): t.ImportDeclaration {\n return validateNode<t.ImportDeclaration>({\n type: \"ImportDeclaration\",\n specifiers,\n source,\n });\n}\nexport function importDefaultSpecifier(\n local: t.Identifier,\n): t.ImportDefaultSpecifier {\n return validateNode<t.ImportDefaultSpecifier>({\n type: \"ImportDefaultSpecifier\",\n local,\n });\n}\nexport function importNamespaceSpecifier(\n local: t.Identifier,\n): t.ImportNamespaceSpecifier {\n return validateNode<t.ImportNamespaceSpecifier>({\n type: \"ImportNamespaceSpecifier\",\n local,\n });\n}\nexport function importSpecifier(\n local: t.Identifier,\n imported: t.Identifier | t.StringLiteral,\n): t.ImportSpecifier {\n return validateNode<t.ImportSpecifier>({\n type: \"ImportSpecifier\",\n local,\n imported,\n });\n}\nexport function importExpression(\n source: t.Expression,\n options: t.Expression | null = null,\n): t.ImportExpression {\n return validateNode<t.ImportExpression>({\n type: \"ImportExpression\",\n source,\n options,\n });\n}\nexport function metaProperty(\n meta: t.Identifier,\n property: t.Identifier,\n): t.MetaProperty {\n return validateNode<t.MetaProperty>({\n type: \"MetaProperty\",\n meta,\n property,\n });\n}\nexport function classMethod(\n kind: \"get\" | \"set\" | \"method\" | \"constructor\" | undefined = \"method\",\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n params: Array<\n t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty\n >,\n body: t.BlockStatement,\n computed: boolean = false,\n _static: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ClassMethod {\n return validateNode<t.ClassMethod>({\n type: \"ClassMethod\",\n kind,\n key,\n params,\n body,\n computed,\n static: _static,\n generator,\n async,\n });\n}\nexport function objectPattern(\n properties: Array<t.RestElement | t.ObjectProperty>,\n): t.ObjectPattern {\n return validateNode<t.ObjectPattern>({\n type: \"ObjectPattern\",\n properties,\n });\n}\nexport function spreadElement(argument: t.Expression): t.SpreadElement {\n return validateNode<t.SpreadElement>({\n type: \"SpreadElement\",\n argument,\n });\n}\nfunction _super(): t.Super {\n return {\n type: \"Super\",\n };\n}\nexport { _super as super };\nexport function taggedTemplateExpression(\n tag: t.Expression,\n quasi: t.TemplateLiteral,\n): t.TaggedTemplateExpression {\n return validateNode<t.TaggedTemplateExpression>({\n type: \"TaggedTemplateExpression\",\n tag,\n quasi,\n });\n}\nexport function templateElement(\n value: { raw: string; cooked?: string },\n tail: boolean = false,\n): t.TemplateElement {\n return validateNode<t.TemplateElement>({\n type: \"TemplateElement\",\n value,\n tail,\n });\n}\nexport function templateLiteral(\n quasis: Array<t.TemplateElement>,\n expressions: Array<t.Expression | t.TSType>,\n): t.TemplateLiteral {\n return validateNode<t.TemplateLiteral>({\n type: \"TemplateLiteral\",\n quasis,\n expressions,\n });\n}\nexport function yieldExpression(\n argument: t.Expression | null = null,\n delegate: boolean = false,\n): t.YieldExpression {\n return validateNode<t.YieldExpression>({\n type: \"YieldExpression\",\n argument,\n delegate,\n });\n}\nexport function awaitExpression(argument: t.Expression): t.AwaitExpression {\n return validateNode<t.AwaitExpression>({\n type: \"AwaitExpression\",\n argument,\n });\n}\nfunction _import(): t.Import {\n return {\n type: \"Import\",\n };\n}\nexport { _import as import };\nexport function bigIntLiteral(value: string): t.BigIntLiteral {\n return validateNode<t.BigIntLiteral>({\n type: \"BigIntLiteral\",\n value,\n });\n}\nexport function exportNamespaceSpecifier(\n exported: t.Identifier,\n): t.ExportNamespaceSpecifier {\n return validateNode<t.ExportNamespaceSpecifier>({\n type: \"ExportNamespaceSpecifier\",\n exported,\n });\n}\nexport function optionalMemberExpression(\n object: t.Expression,\n property: t.Expression | t.Identifier,\n computed: boolean | undefined = false,\n optional: boolean,\n): t.OptionalMemberExpression {\n return validateNode<t.OptionalMemberExpression>({\n type: \"OptionalMemberExpression\",\n object,\n property,\n computed,\n optional,\n });\n}\nexport function optionalCallExpression(\n callee: t.Expression,\n _arguments: Array<\n t.Expression | t.SpreadElement | t.JSXNamespacedName | t.ArgumentPlaceholder\n >,\n optional: boolean,\n): t.OptionalCallExpression {\n return validateNode<t.OptionalCallExpression>({\n type: \"OptionalCallExpression\",\n callee,\n arguments: _arguments,\n optional,\n });\n}\nexport function classProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: Array<t.Decorator> | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassProperty {\n return validateNode<t.ClassProperty>({\n type: \"ClassProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n });\n}\nexport function classAccessorProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression\n | t.PrivateName,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: Array<t.Decorator> | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassAccessorProperty {\n return validateNode<t.ClassAccessorProperty>({\n type: \"ClassAccessorProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n });\n}\nexport function classPrivateProperty(\n key: t.PrivateName,\n value: t.Expression | null = null,\n decorators: Array<t.Decorator> | null = null,\n _static: boolean = false,\n): t.ClassPrivateProperty {\n return validateNode<t.ClassPrivateProperty>({\n type: \"ClassPrivateProperty\",\n key,\n value,\n decorators,\n static: _static,\n });\n}\nexport function classPrivateMethod(\n kind: \"get\" | \"set\" | \"method\" | undefined = \"method\",\n key: t.PrivateName,\n params: Array<\n t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty\n >,\n body: t.BlockStatement,\n _static: boolean = false,\n): t.ClassPrivateMethod {\n return validateNode<t.ClassPrivateMethod>({\n type: \"ClassPrivateMethod\",\n kind,\n key,\n params,\n body,\n static: _static,\n });\n}\nexport function privateName(id: t.Identifier): t.PrivateName {\n return validateNode<t.PrivateName>({\n type: \"PrivateName\",\n id,\n });\n}\nexport function staticBlock(body: Array<t.Statement>): t.StaticBlock {\n return validateNode<t.StaticBlock>({\n type: \"StaticBlock\",\n body,\n });\n}\nexport function anyTypeAnnotation(): t.AnyTypeAnnotation {\n return {\n type: \"AnyTypeAnnotation\",\n };\n}\nexport function arrayTypeAnnotation(\n elementType: t.FlowType,\n): t.ArrayTypeAnnotation {\n return validateNode<t.ArrayTypeAnnotation>({\n type: \"ArrayTypeAnnotation\",\n elementType,\n });\n}\nexport function booleanTypeAnnotation(): t.BooleanTypeAnnotation {\n return {\n type: \"BooleanTypeAnnotation\",\n };\n}\nexport function booleanLiteralTypeAnnotation(\n value: boolean,\n): t.BooleanLiteralTypeAnnotation {\n return validateNode<t.BooleanLiteralTypeAnnotation>({\n type: \"BooleanLiteralTypeAnnotation\",\n value,\n });\n}\nexport function nullLiteralTypeAnnotation(): t.NullLiteralTypeAnnotation {\n return {\n type: \"NullLiteralTypeAnnotation\",\n };\n}\nexport function classImplements(\n id: t.Identifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.ClassImplements {\n return validateNode<t.ClassImplements>({\n type: \"ClassImplements\",\n id,\n typeParameters,\n });\n}\nexport function declareClass(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareClass {\n return validateNode<t.DeclareClass>({\n type: \"DeclareClass\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport function declareFunction(id: t.Identifier): t.DeclareFunction {\n return validateNode<t.DeclareFunction>({\n type: \"DeclareFunction\",\n id,\n });\n}\nexport function declareInterface(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareInterface {\n return validateNode<t.DeclareInterface>({\n type: \"DeclareInterface\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport function declareModule(\n id: t.Identifier | t.StringLiteral,\n body: t.BlockStatement,\n kind: \"CommonJS\" | \"ES\" | null = null,\n): t.DeclareModule {\n return validateNode<t.DeclareModule>({\n type: \"DeclareModule\",\n id,\n body,\n kind,\n });\n}\nexport function declareModuleExports(\n typeAnnotation: t.TypeAnnotation,\n): t.DeclareModuleExports {\n return validateNode<t.DeclareModuleExports>({\n type: \"DeclareModuleExports\",\n typeAnnotation,\n });\n}\nexport function declareTypeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.DeclareTypeAlias {\n return validateNode<t.DeclareTypeAlias>({\n type: \"DeclareTypeAlias\",\n id,\n typeParameters,\n right,\n });\n}\nexport function declareOpaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null = null,\n supertype: t.FlowType | null = null,\n): t.DeclareOpaqueType {\n return validateNode<t.DeclareOpaqueType>({\n type: \"DeclareOpaqueType\",\n id,\n typeParameters,\n supertype,\n });\n}\nexport function declareVariable(id: t.Identifier): t.DeclareVariable {\n return validateNode<t.DeclareVariable>({\n type: \"DeclareVariable\",\n id,\n });\n}\nexport function declareExportDeclaration(\n declaration: t.Flow | null = null,\n specifiers: Array<\n t.ExportSpecifier | t.ExportNamespaceSpecifier\n > | null = null,\n source: t.StringLiteral | null = null,\n): t.DeclareExportDeclaration {\n return validateNode<t.DeclareExportDeclaration>({\n type: \"DeclareExportDeclaration\",\n declaration,\n specifiers,\n source,\n });\n}\nexport function declareExportAllDeclaration(\n source: t.StringLiteral,\n): t.DeclareExportAllDeclaration {\n return validateNode<t.DeclareExportAllDeclaration>({\n type: \"DeclareExportAllDeclaration\",\n source,\n });\n}\nexport function declaredPredicate(value: t.Flow): t.DeclaredPredicate {\n return validateNode<t.DeclaredPredicate>({\n type: \"DeclaredPredicate\",\n value,\n });\n}\nexport function existsTypeAnnotation(): t.ExistsTypeAnnotation {\n return {\n type: \"ExistsTypeAnnotation\",\n };\n}\nexport function functionTypeAnnotation(\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n params: Array<t.FunctionTypeParam>,\n rest: t.FunctionTypeParam | null | undefined = null,\n returnType: t.FlowType,\n): t.FunctionTypeAnnotation {\n return validateNode<t.FunctionTypeAnnotation>({\n type: \"FunctionTypeAnnotation\",\n typeParameters,\n params,\n rest,\n returnType,\n });\n}\nexport function functionTypeParam(\n name: t.Identifier | null | undefined = null,\n typeAnnotation: t.FlowType,\n): t.FunctionTypeParam {\n return validateNode<t.FunctionTypeParam>({\n type: \"FunctionTypeParam\",\n name,\n typeAnnotation,\n });\n}\nexport function genericTypeAnnotation(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.GenericTypeAnnotation {\n return validateNode<t.GenericTypeAnnotation>({\n type: \"GenericTypeAnnotation\",\n id,\n typeParameters,\n });\n}\nexport function inferredPredicate(): t.InferredPredicate {\n return {\n type: \"InferredPredicate\",\n };\n}\nexport function interfaceExtends(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.InterfaceExtends {\n return validateNode<t.InterfaceExtends>({\n type: \"InterfaceExtends\",\n id,\n typeParameters,\n });\n}\nexport function interfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceDeclaration {\n return validateNode<t.InterfaceDeclaration>({\n type: \"InterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport function interfaceTypeAnnotation(\n _extends: Array<t.InterfaceExtends> | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceTypeAnnotation {\n return validateNode<t.InterfaceTypeAnnotation>({\n type: \"InterfaceTypeAnnotation\",\n extends: _extends,\n body,\n });\n}\nexport function intersectionTypeAnnotation(\n types: Array<t.FlowType>,\n): t.IntersectionTypeAnnotation {\n return validateNode<t.IntersectionTypeAnnotation>({\n type: \"IntersectionTypeAnnotation\",\n types,\n });\n}\nexport function mixedTypeAnnotation(): t.MixedTypeAnnotation {\n return {\n type: \"MixedTypeAnnotation\",\n };\n}\nexport function emptyTypeAnnotation(): t.EmptyTypeAnnotation {\n return {\n type: \"EmptyTypeAnnotation\",\n };\n}\nexport function nullableTypeAnnotation(\n typeAnnotation: t.FlowType,\n): t.NullableTypeAnnotation {\n return validateNode<t.NullableTypeAnnotation>({\n type: \"NullableTypeAnnotation\",\n typeAnnotation,\n });\n}\nexport function numberLiteralTypeAnnotation(\n value: number,\n): t.NumberLiteralTypeAnnotation {\n return validateNode<t.NumberLiteralTypeAnnotation>({\n type: \"NumberLiteralTypeAnnotation\",\n value,\n });\n}\nexport function numberTypeAnnotation(): t.NumberTypeAnnotation {\n return {\n type: \"NumberTypeAnnotation\",\n };\n}\nexport function objectTypeAnnotation(\n properties: Array<t.ObjectTypeProperty | t.ObjectTypeSpreadProperty>,\n indexers: Array<t.ObjectTypeIndexer> = [],\n callProperties: Array<t.ObjectTypeCallProperty> = [],\n internalSlots: Array<t.ObjectTypeInternalSlot> = [],\n exact: boolean = false,\n): t.ObjectTypeAnnotation {\n return validateNode<t.ObjectTypeAnnotation>({\n type: \"ObjectTypeAnnotation\",\n properties,\n indexers,\n callProperties,\n internalSlots,\n exact,\n });\n}\nexport function objectTypeInternalSlot(\n id: t.Identifier,\n value: t.FlowType,\n optional: boolean,\n _static: boolean,\n method: boolean,\n): t.ObjectTypeInternalSlot {\n return validateNode<t.ObjectTypeInternalSlot>({\n type: \"ObjectTypeInternalSlot\",\n id,\n value,\n optional,\n static: _static,\n method,\n });\n}\nexport function objectTypeCallProperty(\n value: t.FlowType,\n): t.ObjectTypeCallProperty {\n return validateNode<t.ObjectTypeCallProperty>({\n type: \"ObjectTypeCallProperty\",\n value,\n static: null,\n });\n}\nexport function objectTypeIndexer(\n id: t.Identifier | null | undefined = null,\n key: t.FlowType,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeIndexer {\n return validateNode<t.ObjectTypeIndexer>({\n type: \"ObjectTypeIndexer\",\n id,\n key,\n value,\n variance,\n static: null,\n });\n}\nexport function objectTypeProperty(\n key: t.Identifier | t.StringLiteral,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeProperty {\n return validateNode<t.ObjectTypeProperty>({\n type: \"ObjectTypeProperty\",\n key,\n value,\n variance,\n kind: null,\n method: null,\n optional: null,\n proto: null,\n static: null,\n });\n}\nexport function objectTypeSpreadProperty(\n argument: t.FlowType,\n): t.ObjectTypeSpreadProperty {\n return validateNode<t.ObjectTypeSpreadProperty>({\n type: \"ObjectTypeSpreadProperty\",\n argument,\n });\n}\nexport function opaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n supertype: t.FlowType | null | undefined = null,\n impltype: t.FlowType,\n): t.OpaqueType {\n return validateNode<t.OpaqueType>({\n type: \"OpaqueType\",\n id,\n typeParameters,\n supertype,\n impltype,\n });\n}\nexport function qualifiedTypeIdentifier(\n id: t.Identifier,\n qualification: t.Identifier | t.QualifiedTypeIdentifier,\n): t.QualifiedTypeIdentifier {\n return validateNode<t.QualifiedTypeIdentifier>({\n type: \"QualifiedTypeIdentifier\",\n id,\n qualification,\n });\n}\nexport function stringLiteralTypeAnnotation(\n value: string,\n): t.StringLiteralTypeAnnotation {\n return validateNode<t.StringLiteralTypeAnnotation>({\n type: \"StringLiteralTypeAnnotation\",\n value,\n });\n}\nexport function stringTypeAnnotation(): t.StringTypeAnnotation {\n return {\n type: \"StringTypeAnnotation\",\n };\n}\nexport function symbolTypeAnnotation(): t.SymbolTypeAnnotation {\n return {\n type: \"SymbolTypeAnnotation\",\n };\n}\nexport function thisTypeAnnotation(): t.ThisTypeAnnotation {\n return {\n type: \"ThisTypeAnnotation\",\n };\n}\nexport function tupleTypeAnnotation(\n types: Array<t.FlowType>,\n): t.TupleTypeAnnotation {\n return validateNode<t.TupleTypeAnnotation>({\n type: \"TupleTypeAnnotation\",\n types,\n });\n}\nexport function typeofTypeAnnotation(\n argument: t.FlowType,\n): t.TypeofTypeAnnotation {\n return validateNode<t.TypeofTypeAnnotation>({\n type: \"TypeofTypeAnnotation\",\n argument,\n });\n}\nexport function typeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.TypeAlias {\n return validateNode<t.TypeAlias>({\n type: \"TypeAlias\",\n id,\n typeParameters,\n right,\n });\n}\nexport function typeAnnotation(typeAnnotation: t.FlowType): t.TypeAnnotation {\n return validateNode<t.TypeAnnotation>({\n type: \"TypeAnnotation\",\n typeAnnotation,\n });\n}\nexport function typeCastExpression(\n expression: t.Expression,\n typeAnnotation: t.TypeAnnotation,\n): t.TypeCastExpression {\n return validateNode<t.TypeCastExpression>({\n type: \"TypeCastExpression\",\n expression,\n typeAnnotation,\n });\n}\nexport function typeParameter(\n bound: t.TypeAnnotation | null = null,\n _default: t.FlowType | null = null,\n variance: t.Variance | null = null,\n): t.TypeParameter {\n return validateNode<t.TypeParameter>({\n type: \"TypeParameter\",\n bound,\n default: _default,\n variance,\n name: null,\n });\n}\nexport function typeParameterDeclaration(\n params: Array<t.TypeParameter>,\n): t.TypeParameterDeclaration {\n return validateNode<t.TypeParameterDeclaration>({\n type: \"TypeParameterDeclaration\",\n params,\n });\n}\nexport function typeParameterInstantiation(\n params: Array<t.FlowType>,\n): t.TypeParameterInstantiation {\n return validateNode<t.TypeParameterInstantiation>({\n type: \"TypeParameterInstantiation\",\n params,\n });\n}\nexport function unionTypeAnnotation(\n types: Array<t.FlowType>,\n): t.UnionTypeAnnotation {\n return validateNode<t.UnionTypeAnnotation>({\n type: \"UnionTypeAnnotation\",\n types,\n });\n}\nexport function variance(kind: \"minus\" | \"plus\"): t.Variance {\n return validateNode<t.Variance>({\n type: \"Variance\",\n kind,\n });\n}\nexport function voidTypeAnnotation(): t.VoidTypeAnnotation {\n return {\n type: \"VoidTypeAnnotation\",\n };\n}\nexport function enumDeclaration(\n id: t.Identifier,\n body:\n | t.EnumBooleanBody\n | t.EnumNumberBody\n | t.EnumStringBody\n | t.EnumSymbolBody,\n): t.EnumDeclaration {\n return validateNode<t.EnumDeclaration>({\n type: \"EnumDeclaration\",\n id,\n body,\n });\n}\nexport function enumBooleanBody(\n members: Array<t.EnumBooleanMember>,\n): t.EnumBooleanBody {\n return validateNode<t.EnumBooleanBody>({\n type: \"EnumBooleanBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n });\n}\nexport function enumNumberBody(\n members: Array<t.EnumNumberMember>,\n): t.EnumNumberBody {\n return validateNode<t.EnumNumberBody>({\n type: \"EnumNumberBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n });\n}\nexport function enumStringBody(\n members: Array<t.EnumStringMember | t.EnumDefaultedMember>,\n): t.EnumStringBody {\n return validateNode<t.EnumStringBody>({\n type: \"EnumStringBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n });\n}\nexport function enumSymbolBody(\n members: Array<t.EnumDefaultedMember>,\n): t.EnumSymbolBody {\n return validateNode<t.EnumSymbolBody>({\n type: \"EnumSymbolBody\",\n members,\n hasUnknownMembers: null,\n });\n}\nexport function enumBooleanMember(id: t.Identifier): t.EnumBooleanMember {\n return validateNode<t.EnumBooleanMember>({\n type: \"EnumBooleanMember\",\n id,\n init: null,\n });\n}\nexport function enumNumberMember(\n id: t.Identifier,\n init: t.NumericLiteral,\n): t.EnumNumberMember {\n return validateNode<t.EnumNumberMember>({\n type: \"EnumNumberMember\",\n id,\n init,\n });\n}\nexport function enumStringMember(\n id: t.Identifier,\n init: t.StringLiteral,\n): t.EnumStringMember {\n return validateNode<t.EnumStringMember>({\n type: \"EnumStringMember\",\n id,\n init,\n });\n}\nexport function enumDefaultedMember(id: t.Identifier): t.EnumDefaultedMember {\n return validateNode<t.EnumDefaultedMember>({\n type: \"EnumDefaultedMember\",\n id,\n });\n}\nexport function indexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.IndexedAccessType {\n return validateNode<t.IndexedAccessType>({\n type: \"IndexedAccessType\",\n objectType,\n indexType,\n });\n}\nexport function optionalIndexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.OptionalIndexedAccessType {\n return validateNode<t.OptionalIndexedAccessType>({\n type: \"OptionalIndexedAccessType\",\n objectType,\n indexType,\n optional: null,\n });\n}\nexport function jsxAttribute(\n name: t.JSXIdentifier | t.JSXNamespacedName,\n value:\n | t.JSXElement\n | t.JSXFragment\n | t.StringLiteral\n | t.JSXExpressionContainer\n | null = null,\n): t.JSXAttribute {\n return validateNode<t.JSXAttribute>({\n type: \"JSXAttribute\",\n name,\n value,\n });\n}\nexport { jsxAttribute as jSXAttribute };\nexport function jsxClosingElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n): t.JSXClosingElement {\n return validateNode<t.JSXClosingElement>({\n type: \"JSXClosingElement\",\n name,\n });\n}\nexport { jsxClosingElement as jSXClosingElement };\nexport function jsxElement(\n openingElement: t.JSXOpeningElement,\n closingElement: t.JSXClosingElement | null | undefined = null,\n children: Array<\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n >,\n selfClosing: boolean | null = null,\n): t.JSXElement {\n return validateNode<t.JSXElement>({\n type: \"JSXElement\",\n openingElement,\n closingElement,\n children,\n selfClosing,\n });\n}\nexport { jsxElement as jSXElement };\nexport function jsxEmptyExpression(): t.JSXEmptyExpression {\n return {\n type: \"JSXEmptyExpression\",\n };\n}\nexport { jsxEmptyExpression as jSXEmptyExpression };\nexport function jsxExpressionContainer(\n expression: t.Expression | t.JSXEmptyExpression,\n): t.JSXExpressionContainer {\n return validateNode<t.JSXExpressionContainer>({\n type: \"JSXExpressionContainer\",\n expression,\n });\n}\nexport { jsxExpressionContainer as jSXExpressionContainer };\nexport function jsxSpreadChild(expression: t.Expression): t.JSXSpreadChild {\n return validateNode<t.JSXSpreadChild>({\n type: \"JSXSpreadChild\",\n expression,\n });\n}\nexport { jsxSpreadChild as jSXSpreadChild };\nexport function jsxIdentifier(name: string): t.JSXIdentifier {\n return validateNode<t.JSXIdentifier>({\n type: \"JSXIdentifier\",\n name,\n });\n}\nexport { jsxIdentifier as jSXIdentifier };\nexport function jsxMemberExpression(\n object: t.JSXMemberExpression | t.JSXIdentifier,\n property: t.JSXIdentifier,\n): t.JSXMemberExpression {\n return validateNode<t.JSXMemberExpression>({\n type: \"JSXMemberExpression\",\n object,\n property,\n });\n}\nexport { jsxMemberExpression as jSXMemberExpression };\nexport function jsxNamespacedName(\n namespace: t.JSXIdentifier,\n name: t.JSXIdentifier,\n): t.JSXNamespacedName {\n return validateNode<t.JSXNamespacedName>({\n type: \"JSXNamespacedName\",\n namespace,\n name,\n });\n}\nexport { jsxNamespacedName as jSXNamespacedName };\nexport function jsxOpeningElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n attributes: Array<t.JSXAttribute | t.JSXSpreadAttribute>,\n selfClosing: boolean = false,\n): t.JSXOpeningElement {\n return validateNode<t.JSXOpeningElement>({\n type: \"JSXOpeningElement\",\n name,\n attributes,\n selfClosing,\n });\n}\nexport { jsxOpeningElement as jSXOpeningElement };\nexport function jsxSpreadAttribute(\n argument: t.Expression,\n): t.JSXSpreadAttribute {\n return validateNode<t.JSXSpreadAttribute>({\n type: \"JSXSpreadAttribute\",\n argument,\n });\n}\nexport { jsxSpreadAttribute as jSXSpreadAttribute };\nexport function jsxText(value: string): t.JSXText {\n return validateNode<t.JSXText>({\n type: \"JSXText\",\n value,\n });\n}\nexport { jsxText as jSXText };\nexport function jsxFragment(\n openingFragment: t.JSXOpeningFragment,\n closingFragment: t.JSXClosingFragment,\n children: Array<\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n >,\n): t.JSXFragment {\n return validateNode<t.JSXFragment>({\n type: \"JSXFragment\",\n openingFragment,\n closingFragment,\n children,\n });\n}\nexport { jsxFragment as jSXFragment };\nexport function jsxOpeningFragment(): t.JSXOpeningFragment {\n return {\n type: \"JSXOpeningFragment\",\n };\n}\nexport { jsxOpeningFragment as jSXOpeningFragment };\nexport function jsxClosingFragment(): t.JSXClosingFragment {\n return {\n type: \"JSXClosingFragment\",\n };\n}\nexport { jsxClosingFragment as jSXClosingFragment };\nexport function noop(): t.Noop {\n return {\n type: \"Noop\",\n };\n}\nexport function placeholder(\n expectedNode:\n | \"Identifier\"\n | \"StringLiteral\"\n | \"Expression\"\n | \"Statement\"\n | \"Declaration\"\n | \"BlockStatement\"\n | \"ClassBody\"\n | \"Pattern\",\n name: t.Identifier,\n): t.Placeholder {\n return validateNode<t.Placeholder>({\n type: \"Placeholder\",\n expectedNode,\n name,\n });\n}\nexport function v8IntrinsicIdentifier(name: string): t.V8IntrinsicIdentifier {\n return validateNode<t.V8IntrinsicIdentifier>({\n type: \"V8IntrinsicIdentifier\",\n name,\n });\n}\nexport function argumentPlaceholder(): t.ArgumentPlaceholder {\n return {\n type: \"ArgumentPlaceholder\",\n };\n}\nexport function bindExpression(\n object: t.Expression,\n callee: t.Expression,\n): t.BindExpression {\n return validateNode<t.BindExpression>({\n type: \"BindExpression\",\n object,\n callee,\n });\n}\nexport function importAttribute(\n key: t.Identifier | t.StringLiteral,\n value: t.StringLiteral,\n): t.ImportAttribute {\n return validateNode<t.ImportAttribute>({\n type: \"ImportAttribute\",\n key,\n value,\n });\n}\nexport function decorator(expression: t.Expression): t.Decorator {\n return validateNode<t.Decorator>({\n type: \"Decorator\",\n expression,\n });\n}\nexport function doExpression(\n body: t.BlockStatement,\n async: boolean = false,\n): t.DoExpression {\n return validateNode<t.DoExpression>({\n type: \"DoExpression\",\n body,\n async,\n });\n}\nexport function exportDefaultSpecifier(\n exported: t.Identifier,\n): t.ExportDefaultSpecifier {\n return validateNode<t.ExportDefaultSpecifier>({\n type: \"ExportDefaultSpecifier\",\n exported,\n });\n}\nexport function recordExpression(\n properties: Array<t.ObjectProperty | t.SpreadElement>,\n): t.RecordExpression {\n return validateNode<t.RecordExpression>({\n type: \"RecordExpression\",\n properties,\n });\n}\nexport function tupleExpression(\n elements: Array<t.Expression | t.SpreadElement> = [],\n): t.TupleExpression {\n return validateNode<t.TupleExpression>({\n type: \"TupleExpression\",\n elements,\n });\n}\nexport function decimalLiteral(value: string): t.DecimalLiteral {\n return validateNode<t.DecimalLiteral>({\n type: \"DecimalLiteral\",\n value,\n });\n}\nexport function moduleExpression(body: t.Program): t.ModuleExpression {\n return validateNode<t.ModuleExpression>({\n type: \"ModuleExpression\",\n body,\n });\n}\nexport function topicReference(): t.TopicReference {\n return {\n type: \"TopicReference\",\n };\n}\nexport function pipelineTopicExpression(\n expression: t.Expression,\n): t.PipelineTopicExpression {\n return validateNode<t.PipelineTopicExpression>({\n type: \"PipelineTopicExpression\",\n expression,\n });\n}\nexport function pipelineBareFunction(\n callee: t.Expression,\n): t.PipelineBareFunction {\n return validateNode<t.PipelineBareFunction>({\n type: \"PipelineBareFunction\",\n callee,\n });\n}\nexport function pipelinePrimaryTopicReference(): t.PipelinePrimaryTopicReference {\n return {\n type: \"PipelinePrimaryTopicReference\",\n };\n}\nexport function tsParameterProperty(\n parameter: t.Identifier | t.AssignmentPattern,\n): t.TSParameterProperty {\n return validateNode<t.TSParameterProperty>({\n type: \"TSParameterProperty\",\n parameter,\n });\n}\nexport { tsParameterProperty as tSParameterProperty };\nexport function tsDeclareFunction(\n id: t.Identifier | null | undefined = null,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: Array<t.Identifier | t.Pattern | t.RestElement>,\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareFunction {\n return validateNode<t.TSDeclareFunction>({\n type: \"TSDeclareFunction\",\n id,\n typeParameters,\n params,\n returnType,\n });\n}\nexport { tsDeclareFunction as tSDeclareFunction };\nexport function tsDeclareMethod(\n decorators: Array<t.Decorator> | null | undefined = null,\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: Array<\n t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty\n >,\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareMethod {\n return validateNode<t.TSDeclareMethod>({\n type: \"TSDeclareMethod\",\n decorators,\n key,\n typeParameters,\n params,\n returnType,\n });\n}\nexport { tsDeclareMethod as tSDeclareMethod };\nexport function tsQualifiedName(\n left: t.TSEntityName,\n right: t.Identifier,\n): t.TSQualifiedName {\n return validateNode<t.TSQualifiedName>({\n type: \"TSQualifiedName\",\n left,\n right,\n });\n}\nexport { tsQualifiedName as tSQualifiedName };\nexport function tsCallSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSCallSignatureDeclaration {\n return validateNode<t.TSCallSignatureDeclaration>({\n type: \"TSCallSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsCallSignatureDeclaration as tSCallSignatureDeclaration };\nexport function tsConstructSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructSignatureDeclaration {\n return validateNode<t.TSConstructSignatureDeclaration>({\n type: \"TSConstructSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsConstructSignatureDeclaration as tSConstructSignatureDeclaration };\nexport function tsPropertySignature(\n key: t.Expression,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSPropertySignature {\n return validateNode<t.TSPropertySignature>({\n type: \"TSPropertySignature\",\n key,\n typeAnnotation,\n kind: null,\n });\n}\nexport { tsPropertySignature as tSPropertySignature };\nexport function tsMethodSignature(\n key: t.Expression,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSMethodSignature {\n return validateNode<t.TSMethodSignature>({\n type: \"TSMethodSignature\",\n key,\n typeParameters,\n parameters,\n typeAnnotation,\n kind: null,\n });\n}\nexport { tsMethodSignature as tSMethodSignature };\nexport function tsIndexSignature(\n parameters: Array<t.Identifier>,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSIndexSignature {\n return validateNode<t.TSIndexSignature>({\n type: \"TSIndexSignature\",\n parameters,\n typeAnnotation,\n });\n}\nexport { tsIndexSignature as tSIndexSignature };\nexport function tsAnyKeyword(): t.TSAnyKeyword {\n return {\n type: \"TSAnyKeyword\",\n };\n}\nexport { tsAnyKeyword as tSAnyKeyword };\nexport function tsBooleanKeyword(): t.TSBooleanKeyword {\n return {\n type: \"TSBooleanKeyword\",\n };\n}\nexport { tsBooleanKeyword as tSBooleanKeyword };\nexport function tsBigIntKeyword(): t.TSBigIntKeyword {\n return {\n type: \"TSBigIntKeyword\",\n };\n}\nexport { tsBigIntKeyword as tSBigIntKeyword };\nexport function tsIntrinsicKeyword(): t.TSIntrinsicKeyword {\n return {\n type: \"TSIntrinsicKeyword\",\n };\n}\nexport { tsIntrinsicKeyword as tSIntrinsicKeyword };\nexport function tsNeverKeyword(): t.TSNeverKeyword {\n return {\n type: \"TSNeverKeyword\",\n };\n}\nexport { tsNeverKeyword as tSNeverKeyword };\nexport function tsNullKeyword(): t.TSNullKeyword {\n return {\n type: \"TSNullKeyword\",\n };\n}\nexport { tsNullKeyword as tSNullKeyword };\nexport function tsNumberKeyword(): t.TSNumberKeyword {\n return {\n type: \"TSNumberKeyword\",\n };\n}\nexport { tsNumberKeyword as tSNumberKeyword };\nexport function tsObjectKeyword(): t.TSObjectKeyword {\n return {\n type: \"TSObjectKeyword\",\n };\n}\nexport { tsObjectKeyword as tSObjectKeyword };\nexport function tsStringKeyword(): t.TSStringKeyword {\n return {\n type: \"TSStringKeyword\",\n };\n}\nexport { tsStringKeyword as tSStringKeyword };\nexport function tsSymbolKeyword(): t.TSSymbolKeyword {\n return {\n type: \"TSSymbolKeyword\",\n };\n}\nexport { tsSymbolKeyword as tSSymbolKeyword };\nexport function tsUndefinedKeyword(): t.TSUndefinedKeyword {\n return {\n type: \"TSUndefinedKeyword\",\n };\n}\nexport { tsUndefinedKeyword as tSUndefinedKeyword };\nexport function tsUnknownKeyword(): t.TSUnknownKeyword {\n return {\n type: \"TSUnknownKeyword\",\n };\n}\nexport { tsUnknownKeyword as tSUnknownKeyword };\nexport function tsVoidKeyword(): t.TSVoidKeyword {\n return {\n type: \"TSVoidKeyword\",\n };\n}\nexport { tsVoidKeyword as tSVoidKeyword };\nexport function tsThisType(): t.TSThisType {\n return {\n type: \"TSThisType\",\n };\n}\nexport { tsThisType as tSThisType };\nexport function tsFunctionType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSFunctionType {\n return validateNode<t.TSFunctionType>({\n type: \"TSFunctionType\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsFunctionType as tSFunctionType };\nexport function tsConstructorType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructorType {\n return validateNode<t.TSConstructorType>({\n type: \"TSConstructorType\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsConstructorType as tSConstructorType };\nexport function tsTypeReference(\n typeName: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeReference {\n return validateNode<t.TSTypeReference>({\n type: \"TSTypeReference\",\n typeName,\n typeParameters,\n });\n}\nexport { tsTypeReference as tSTypeReference };\nexport function tsTypePredicate(\n parameterName: t.Identifier | t.TSThisType,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n asserts: boolean | null = null,\n): t.TSTypePredicate {\n return validateNode<t.TSTypePredicate>({\n type: \"TSTypePredicate\",\n parameterName,\n typeAnnotation,\n asserts,\n });\n}\nexport { tsTypePredicate as tSTypePredicate };\nexport function tsTypeQuery(\n exprName: t.TSEntityName | t.TSImportType,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeQuery {\n return validateNode<t.TSTypeQuery>({\n type: \"TSTypeQuery\",\n exprName,\n typeParameters,\n });\n}\nexport { tsTypeQuery as tSTypeQuery };\nexport function tsTypeLiteral(\n members: Array<t.TSTypeElement>,\n): t.TSTypeLiteral {\n return validateNode<t.TSTypeLiteral>({\n type: \"TSTypeLiteral\",\n members,\n });\n}\nexport { tsTypeLiteral as tSTypeLiteral };\nexport function tsArrayType(elementType: t.TSType): t.TSArrayType {\n return validateNode<t.TSArrayType>({\n type: \"TSArrayType\",\n elementType,\n });\n}\nexport { tsArrayType as tSArrayType };\nexport function tsTupleType(\n elementTypes: Array<t.TSType | t.TSNamedTupleMember>,\n): t.TSTupleType {\n return validateNode<t.TSTupleType>({\n type: \"TSTupleType\",\n elementTypes,\n });\n}\nexport { tsTupleType as tSTupleType };\nexport function tsOptionalType(typeAnnotation: t.TSType): t.TSOptionalType {\n return validateNode<t.TSOptionalType>({\n type: \"TSOptionalType\",\n typeAnnotation,\n });\n}\nexport { tsOptionalType as tSOptionalType };\nexport function tsRestType(typeAnnotation: t.TSType): t.TSRestType {\n return validateNode<t.TSRestType>({\n type: \"TSRestType\",\n typeAnnotation,\n });\n}\nexport { tsRestType as tSRestType };\nexport function tsNamedTupleMember(\n label: t.Identifier,\n elementType: t.TSType,\n optional: boolean = false,\n): t.TSNamedTupleMember {\n return validateNode<t.TSNamedTupleMember>({\n type: \"TSNamedTupleMember\",\n label,\n elementType,\n optional,\n });\n}\nexport { tsNamedTupleMember as tSNamedTupleMember };\nexport function tsUnionType(types: Array<t.TSType>): t.TSUnionType {\n return validateNode<t.TSUnionType>({\n type: \"TSUnionType\",\n types,\n });\n}\nexport { tsUnionType as tSUnionType };\nexport function tsIntersectionType(\n types: Array<t.TSType>,\n): t.TSIntersectionType {\n return validateNode<t.TSIntersectionType>({\n type: \"TSIntersectionType\",\n types,\n });\n}\nexport { tsIntersectionType as tSIntersectionType };\nexport function tsConditionalType(\n checkType: t.TSType,\n extendsType: t.TSType,\n trueType: t.TSType,\n falseType: t.TSType,\n): t.TSConditionalType {\n return validateNode<t.TSConditionalType>({\n type: \"TSConditionalType\",\n checkType,\n extendsType,\n trueType,\n falseType,\n });\n}\nexport { tsConditionalType as tSConditionalType };\nexport function tsInferType(typeParameter: t.TSTypeParameter): t.TSInferType {\n return validateNode<t.TSInferType>({\n type: \"TSInferType\",\n typeParameter,\n });\n}\nexport { tsInferType as tSInferType };\nexport function tsParenthesizedType(\n typeAnnotation: t.TSType,\n): t.TSParenthesizedType {\n return validateNode<t.TSParenthesizedType>({\n type: \"TSParenthesizedType\",\n typeAnnotation,\n });\n}\nexport { tsParenthesizedType as tSParenthesizedType };\nexport function tsTypeOperator(typeAnnotation: t.TSType): t.TSTypeOperator {\n return validateNode<t.TSTypeOperator>({\n type: \"TSTypeOperator\",\n typeAnnotation,\n operator: null,\n });\n}\nexport { tsTypeOperator as tSTypeOperator };\nexport function tsIndexedAccessType(\n objectType: t.TSType,\n indexType: t.TSType,\n): t.TSIndexedAccessType {\n return validateNode<t.TSIndexedAccessType>({\n type: \"TSIndexedAccessType\",\n objectType,\n indexType,\n });\n}\nexport { tsIndexedAccessType as tSIndexedAccessType };\nexport function tsMappedType(\n typeParameter: t.TSTypeParameter,\n typeAnnotation: t.TSType | null = null,\n nameType: t.TSType | null = null,\n): t.TSMappedType {\n return validateNode<t.TSMappedType>({\n type: \"TSMappedType\",\n typeParameter,\n typeAnnotation,\n nameType,\n });\n}\nexport { tsMappedType as tSMappedType };\nexport function tsLiteralType(\n literal:\n | t.NumericLiteral\n | t.StringLiteral\n | t.BooleanLiteral\n | t.BigIntLiteral\n | t.TemplateLiteral\n | t.UnaryExpression,\n): t.TSLiteralType {\n return validateNode<t.TSLiteralType>({\n type: \"TSLiteralType\",\n literal,\n });\n}\nexport { tsLiteralType as tSLiteralType };\nexport function tsExpressionWithTypeArguments(\n expression: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSExpressionWithTypeArguments {\n return validateNode<t.TSExpressionWithTypeArguments>({\n type: \"TSExpressionWithTypeArguments\",\n expression,\n typeParameters,\n });\n}\nexport { tsExpressionWithTypeArguments as tSExpressionWithTypeArguments };\nexport function tsInterfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n _extends: Array<t.TSExpressionWithTypeArguments> | null | undefined = null,\n body: t.TSInterfaceBody,\n): t.TSInterfaceDeclaration {\n return validateNode<t.TSInterfaceDeclaration>({\n type: \"TSInterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport { tsInterfaceDeclaration as tSInterfaceDeclaration };\nexport function tsInterfaceBody(\n body: Array<t.TSTypeElement>,\n): t.TSInterfaceBody {\n return validateNode<t.TSInterfaceBody>({\n type: \"TSInterfaceBody\",\n body,\n });\n}\nexport { tsInterfaceBody as tSInterfaceBody };\nexport function tsTypeAliasDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n typeAnnotation: t.TSType,\n): t.TSTypeAliasDeclaration {\n return validateNode<t.TSTypeAliasDeclaration>({\n type: \"TSTypeAliasDeclaration\",\n id,\n typeParameters,\n typeAnnotation,\n });\n}\nexport { tsTypeAliasDeclaration as tSTypeAliasDeclaration };\nexport function tsInstantiationExpression(\n expression: t.Expression,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSInstantiationExpression {\n return validateNode<t.TSInstantiationExpression>({\n type: \"TSInstantiationExpression\",\n expression,\n typeParameters,\n });\n}\nexport { tsInstantiationExpression as tSInstantiationExpression };\nexport function tsAsExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSAsExpression {\n return validateNode<t.TSAsExpression>({\n type: \"TSAsExpression\",\n expression,\n typeAnnotation,\n });\n}\nexport { tsAsExpression as tSAsExpression };\nexport function tsSatisfiesExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSSatisfiesExpression {\n return validateNode<t.TSSatisfiesExpression>({\n type: \"TSSatisfiesExpression\",\n expression,\n typeAnnotation,\n });\n}\nexport { tsSatisfiesExpression as tSSatisfiesExpression };\nexport function tsTypeAssertion(\n typeAnnotation: t.TSType,\n expression: t.Expression,\n): t.TSTypeAssertion {\n return validateNode<t.TSTypeAssertion>({\n type: \"TSTypeAssertion\",\n typeAnnotation,\n expression,\n });\n}\nexport { tsTypeAssertion as tSTypeAssertion };\nexport function tsEnumDeclaration(\n id: t.Identifier,\n members: Array<t.TSEnumMember>,\n): t.TSEnumDeclaration {\n return validateNode<t.TSEnumDeclaration>({\n type: \"TSEnumDeclaration\",\n id,\n members,\n });\n}\nexport { tsEnumDeclaration as tSEnumDeclaration };\nexport function tsEnumMember(\n id: t.Identifier | t.StringLiteral,\n initializer: t.Expression | null = null,\n): t.TSEnumMember {\n return validateNode<t.TSEnumMember>({\n type: \"TSEnumMember\",\n id,\n initializer,\n });\n}\nexport { tsEnumMember as tSEnumMember };\nexport function tsModuleDeclaration(\n id: t.Identifier | t.StringLiteral,\n body: t.TSModuleBlock | t.TSModuleDeclaration,\n): t.TSModuleDeclaration {\n return validateNode<t.TSModuleDeclaration>({\n type: \"TSModuleDeclaration\",\n id,\n body,\n });\n}\nexport { tsModuleDeclaration as tSModuleDeclaration };\nexport function tsModuleBlock(body: Array<t.Statement>): t.TSModuleBlock {\n return validateNode<t.TSModuleBlock>({\n type: \"TSModuleBlock\",\n body,\n });\n}\nexport { tsModuleBlock as tSModuleBlock };\nexport function tsImportType(\n argument: t.StringLiteral,\n qualifier: t.TSEntityName | null = null,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSImportType {\n return validateNode<t.TSImportType>({\n type: \"TSImportType\",\n argument,\n qualifier,\n typeParameters,\n });\n}\nexport { tsImportType as tSImportType };\nexport function tsImportEqualsDeclaration(\n id: t.Identifier,\n moduleReference: t.TSEntityName | t.TSExternalModuleReference,\n): t.TSImportEqualsDeclaration {\n return validateNode<t.TSImportEqualsDeclaration>({\n type: \"TSImportEqualsDeclaration\",\n id,\n moduleReference,\n isExport: null,\n });\n}\nexport { tsImportEqualsDeclaration as tSImportEqualsDeclaration };\nexport function tsExternalModuleReference(\n expression: t.StringLiteral,\n): t.TSExternalModuleReference {\n return validateNode<t.TSExternalModuleReference>({\n type: \"TSExternalModuleReference\",\n expression,\n });\n}\nexport { tsExternalModuleReference as tSExternalModuleReference };\nexport function tsNonNullExpression(\n expression: t.Expression,\n): t.TSNonNullExpression {\n return validateNode<t.TSNonNullExpression>({\n type: \"TSNonNullExpression\",\n expression,\n });\n}\nexport { tsNonNullExpression as tSNonNullExpression };\nexport function tsExportAssignment(\n expression: t.Expression,\n): t.TSExportAssignment {\n return validateNode<t.TSExportAssignment>({\n type: \"TSExportAssignment\",\n expression,\n });\n}\nexport { tsExportAssignment as tSExportAssignment };\nexport function tsNamespaceExportDeclaration(\n id: t.Identifier,\n): t.TSNamespaceExportDeclaration {\n return validateNode<t.TSNamespaceExportDeclaration>({\n type: \"TSNamespaceExportDeclaration\",\n id,\n });\n}\nexport { tsNamespaceExportDeclaration as tSNamespaceExportDeclaration };\nexport function tsTypeAnnotation(typeAnnotation: t.TSType): t.TSTypeAnnotation {\n return validateNode<t.TSTypeAnnotation>({\n type: \"TSTypeAnnotation\",\n typeAnnotation,\n });\n}\nexport { tsTypeAnnotation as tSTypeAnnotation };\nexport function tsTypeParameterInstantiation(\n params: Array<t.TSType>,\n): t.TSTypeParameterInstantiation {\n return validateNode<t.TSTypeParameterInstantiation>({\n type: \"TSTypeParameterInstantiation\",\n params,\n });\n}\nexport { tsTypeParameterInstantiation as tSTypeParameterInstantiation };\nexport function tsTypeParameterDeclaration(\n params: Array<t.TSTypeParameter>,\n): t.TSTypeParameterDeclaration {\n return validateNode<t.TSTypeParameterDeclaration>({\n type: \"TSTypeParameterDeclaration\",\n params,\n });\n}\nexport { tsTypeParameterDeclaration as tSTypeParameterDeclaration };\nexport function tsTypeParameter(\n constraint: t.TSType | null | undefined = null,\n _default: t.TSType | null | undefined = null,\n name: string,\n): t.TSTypeParameter {\n return validateNode<t.TSTypeParameter>({\n type: \"TSTypeParameter\",\n constraint,\n default: _default,\n name,\n });\n}\nexport { tsTypeParameter as tSTypeParameter };\n/** @deprecated */\nfunction NumberLiteral(value: number) {\n deprecationWarning(\"NumberLiteral\", \"NumericLiteral\", \"The node type \");\n return numericLiteral(value);\n}\nexport { NumberLiteral as numberLiteral };\n/** @deprecated */\nfunction RegexLiteral(pattern: string, flags: string = \"\") {\n deprecationWarning(\"RegexLiteral\", \"RegExpLiteral\", \"The node type \");\n return regExpLiteral(pattern, flags);\n}\nexport { RegexLiteral as regexLiteral };\n/** @deprecated */\nfunction RestProperty(argument: t.LVal) {\n deprecationWarning(\"RestProperty\", \"RestElement\", \"The node type \");\n return restElement(argument);\n}\nexport { RestProperty as restProperty };\n/** @deprecated */\nfunction SpreadProperty(argument: t.Expression) {\n deprecationWarning(\"SpreadProperty\", \"SpreadElement\", \"The node type \");\n return spreadElement(argument);\n}\nexport { SpreadProperty as spreadProperty };\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/constants/generated/index.js b/node_modules/@babel/types/lib/constants/generated/index.js index 50c81795..9dbb3321 100644 --- a/node_modules/@babel/types/lib/constants/generated/index.js +++ b/node_modules/@babel/types/lib/constants/generated/index.js @@ -5,105 +5,55 @@ Object.defineProperty(exports, "__esModule", { }); exports.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.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; var _index = require("../../definitions/index.js"); -const STANDARDIZED_TYPES = _index.FLIPPED_ALIAS_KEYS["Standardized"]; -exports.STANDARDIZED_TYPES = STANDARDIZED_TYPES; -const EXPRESSION_TYPES = _index.FLIPPED_ALIAS_KEYS["Expression"]; -exports.EXPRESSION_TYPES = EXPRESSION_TYPES; -const BINARY_TYPES = _index.FLIPPED_ALIAS_KEYS["Binary"]; -exports.BINARY_TYPES = BINARY_TYPES; -const SCOPABLE_TYPES = _index.FLIPPED_ALIAS_KEYS["Scopable"]; -exports.SCOPABLE_TYPES = SCOPABLE_TYPES; -const BLOCKPARENT_TYPES = _index.FLIPPED_ALIAS_KEYS["BlockParent"]; -exports.BLOCKPARENT_TYPES = BLOCKPARENT_TYPES; -const BLOCK_TYPES = _index.FLIPPED_ALIAS_KEYS["Block"]; -exports.BLOCK_TYPES = BLOCK_TYPES; -const STATEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS["Statement"]; -exports.STATEMENT_TYPES = STATEMENT_TYPES; -const TERMINATORLESS_TYPES = _index.FLIPPED_ALIAS_KEYS["Terminatorless"]; -exports.TERMINATORLESS_TYPES = TERMINATORLESS_TYPES; -const COMPLETIONSTATEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS["CompletionStatement"]; -exports.COMPLETIONSTATEMENT_TYPES = COMPLETIONSTATEMENT_TYPES; -const CONDITIONAL_TYPES = _index.FLIPPED_ALIAS_KEYS["Conditional"]; -exports.CONDITIONAL_TYPES = CONDITIONAL_TYPES; -const LOOP_TYPES = _index.FLIPPED_ALIAS_KEYS["Loop"]; -exports.LOOP_TYPES = LOOP_TYPES; -const WHILE_TYPES = _index.FLIPPED_ALIAS_KEYS["While"]; -exports.WHILE_TYPES = WHILE_TYPES; -const EXPRESSIONWRAPPER_TYPES = _index.FLIPPED_ALIAS_KEYS["ExpressionWrapper"]; -exports.EXPRESSIONWRAPPER_TYPES = EXPRESSIONWRAPPER_TYPES; -const FOR_TYPES = _index.FLIPPED_ALIAS_KEYS["For"]; -exports.FOR_TYPES = FOR_TYPES; -const FORXSTATEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS["ForXStatement"]; -exports.FORXSTATEMENT_TYPES = FORXSTATEMENT_TYPES; -const FUNCTION_TYPES = _index.FLIPPED_ALIAS_KEYS["Function"]; -exports.FUNCTION_TYPES = FUNCTION_TYPES; -const FUNCTIONPARENT_TYPES = _index.FLIPPED_ALIAS_KEYS["FunctionParent"]; -exports.FUNCTIONPARENT_TYPES = FUNCTIONPARENT_TYPES; -const PUREISH_TYPES = _index.FLIPPED_ALIAS_KEYS["Pureish"]; -exports.PUREISH_TYPES = PUREISH_TYPES; -const DECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS["Declaration"]; -exports.DECLARATION_TYPES = DECLARATION_TYPES; -const PATTERNLIKE_TYPES = _index.FLIPPED_ALIAS_KEYS["PatternLike"]; -exports.PATTERNLIKE_TYPES = PATTERNLIKE_TYPES; -const LVAL_TYPES = _index.FLIPPED_ALIAS_KEYS["LVal"]; -exports.LVAL_TYPES = LVAL_TYPES; -const TSENTITYNAME_TYPES = _index.FLIPPED_ALIAS_KEYS["TSEntityName"]; -exports.TSENTITYNAME_TYPES = TSENTITYNAME_TYPES; -const LITERAL_TYPES = _index.FLIPPED_ALIAS_KEYS["Literal"]; -exports.LITERAL_TYPES = LITERAL_TYPES; -const IMMUTABLE_TYPES = _index.FLIPPED_ALIAS_KEYS["Immutable"]; -exports.IMMUTABLE_TYPES = IMMUTABLE_TYPES; -const USERWHITESPACABLE_TYPES = _index.FLIPPED_ALIAS_KEYS["UserWhitespacable"]; -exports.USERWHITESPACABLE_TYPES = USERWHITESPACABLE_TYPES; -const METHOD_TYPES = _index.FLIPPED_ALIAS_KEYS["Method"]; -exports.METHOD_TYPES = METHOD_TYPES; -const OBJECTMEMBER_TYPES = _index.FLIPPED_ALIAS_KEYS["ObjectMember"]; -exports.OBJECTMEMBER_TYPES = OBJECTMEMBER_TYPES; -const PROPERTY_TYPES = _index.FLIPPED_ALIAS_KEYS["Property"]; -exports.PROPERTY_TYPES = PROPERTY_TYPES; -const UNARYLIKE_TYPES = _index.FLIPPED_ALIAS_KEYS["UnaryLike"]; -exports.UNARYLIKE_TYPES = UNARYLIKE_TYPES; -const PATTERN_TYPES = _index.FLIPPED_ALIAS_KEYS["Pattern"]; -exports.PATTERN_TYPES = PATTERN_TYPES; -const CLASS_TYPES = _index.FLIPPED_ALIAS_KEYS["Class"]; -exports.CLASS_TYPES = CLASS_TYPES; -const IMPORTOREXPORTDECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS["ImportOrExportDeclaration"]; -exports.IMPORTOREXPORTDECLARATION_TYPES = IMPORTOREXPORTDECLARATION_TYPES; -const EXPORTDECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS["ExportDeclaration"]; -exports.EXPORTDECLARATION_TYPES = EXPORTDECLARATION_TYPES; -const MODULESPECIFIER_TYPES = _index.FLIPPED_ALIAS_KEYS["ModuleSpecifier"]; -exports.MODULESPECIFIER_TYPES = MODULESPECIFIER_TYPES; -const ACCESSOR_TYPES = _index.FLIPPED_ALIAS_KEYS["Accessor"]; -exports.ACCESSOR_TYPES = ACCESSOR_TYPES; -const PRIVATE_TYPES = _index.FLIPPED_ALIAS_KEYS["Private"]; -exports.PRIVATE_TYPES = PRIVATE_TYPES; -const FLOW_TYPES = _index.FLIPPED_ALIAS_KEYS["Flow"]; -exports.FLOW_TYPES = FLOW_TYPES; -const FLOWTYPE_TYPES = _index.FLIPPED_ALIAS_KEYS["FlowType"]; -exports.FLOWTYPE_TYPES = FLOWTYPE_TYPES; -const FLOWBASEANNOTATION_TYPES = _index.FLIPPED_ALIAS_KEYS["FlowBaseAnnotation"]; -exports.FLOWBASEANNOTATION_TYPES = FLOWBASEANNOTATION_TYPES; -const FLOWDECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS["FlowDeclaration"]; -exports.FLOWDECLARATION_TYPES = FLOWDECLARATION_TYPES; -const FLOWPREDICATE_TYPES = _index.FLIPPED_ALIAS_KEYS["FlowPredicate"]; -exports.FLOWPREDICATE_TYPES = FLOWPREDICATE_TYPES; -const ENUMBODY_TYPES = _index.FLIPPED_ALIAS_KEYS["EnumBody"]; -exports.ENUMBODY_TYPES = ENUMBODY_TYPES; -const ENUMMEMBER_TYPES = _index.FLIPPED_ALIAS_KEYS["EnumMember"]; -exports.ENUMMEMBER_TYPES = ENUMMEMBER_TYPES; -const JSX_TYPES = _index.FLIPPED_ALIAS_KEYS["JSX"]; -exports.JSX_TYPES = JSX_TYPES; -const MISCELLANEOUS_TYPES = _index.FLIPPED_ALIAS_KEYS["Miscellaneous"]; -exports.MISCELLANEOUS_TYPES = MISCELLANEOUS_TYPES; -const TYPESCRIPT_TYPES = _index.FLIPPED_ALIAS_KEYS["TypeScript"]; -exports.TYPESCRIPT_TYPES = TYPESCRIPT_TYPES; -const TSTYPEELEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS["TSTypeElement"]; -exports.TSTYPEELEMENT_TYPES = TSTYPEELEMENT_TYPES; -const TSTYPE_TYPES = _index.FLIPPED_ALIAS_KEYS["TSType"]; -exports.TSTYPE_TYPES = TSTYPE_TYPES; -const TSBASETYPE_TYPES = _index.FLIPPED_ALIAS_KEYS["TSBaseType"]; -exports.TSBASETYPE_TYPES = TSBASETYPE_TYPES; -const MODULEDECLARATION_TYPES = IMPORTOREXPORTDECLARATION_TYPES; -exports.MODULEDECLARATION_TYPES = MODULEDECLARATION_TYPES; +const STANDARDIZED_TYPES = exports.STANDARDIZED_TYPES = _index.FLIPPED_ALIAS_KEYS["Standardized"]; +const EXPRESSION_TYPES = exports.EXPRESSION_TYPES = _index.FLIPPED_ALIAS_KEYS["Expression"]; +const BINARY_TYPES = exports.BINARY_TYPES = _index.FLIPPED_ALIAS_KEYS["Binary"]; +const SCOPABLE_TYPES = exports.SCOPABLE_TYPES = _index.FLIPPED_ALIAS_KEYS["Scopable"]; +const BLOCKPARENT_TYPES = exports.BLOCKPARENT_TYPES = _index.FLIPPED_ALIAS_KEYS["BlockParent"]; +const BLOCK_TYPES = exports.BLOCK_TYPES = _index.FLIPPED_ALIAS_KEYS["Block"]; +const STATEMENT_TYPES = exports.STATEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS["Statement"]; +const TERMINATORLESS_TYPES = exports.TERMINATORLESS_TYPES = _index.FLIPPED_ALIAS_KEYS["Terminatorless"]; +const COMPLETIONSTATEMENT_TYPES = exports.COMPLETIONSTATEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS["CompletionStatement"]; +const CONDITIONAL_TYPES = exports.CONDITIONAL_TYPES = _index.FLIPPED_ALIAS_KEYS["Conditional"]; +const LOOP_TYPES = exports.LOOP_TYPES = _index.FLIPPED_ALIAS_KEYS["Loop"]; +const WHILE_TYPES = exports.WHILE_TYPES = _index.FLIPPED_ALIAS_KEYS["While"]; +const EXPRESSIONWRAPPER_TYPES = exports.EXPRESSIONWRAPPER_TYPES = _index.FLIPPED_ALIAS_KEYS["ExpressionWrapper"]; +const FOR_TYPES = exports.FOR_TYPES = _index.FLIPPED_ALIAS_KEYS["For"]; +const FORXSTATEMENT_TYPES = exports.FORXSTATEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS["ForXStatement"]; +const FUNCTION_TYPES = exports.FUNCTION_TYPES = _index.FLIPPED_ALIAS_KEYS["Function"]; +const FUNCTIONPARENT_TYPES = exports.FUNCTIONPARENT_TYPES = _index.FLIPPED_ALIAS_KEYS["FunctionParent"]; +const PUREISH_TYPES = exports.PUREISH_TYPES = _index.FLIPPED_ALIAS_KEYS["Pureish"]; +const DECLARATION_TYPES = exports.DECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS["Declaration"]; +const PATTERNLIKE_TYPES = exports.PATTERNLIKE_TYPES = _index.FLIPPED_ALIAS_KEYS["PatternLike"]; +const LVAL_TYPES = exports.LVAL_TYPES = _index.FLIPPED_ALIAS_KEYS["LVal"]; +const TSENTITYNAME_TYPES = exports.TSENTITYNAME_TYPES = _index.FLIPPED_ALIAS_KEYS["TSEntityName"]; +const LITERAL_TYPES = exports.LITERAL_TYPES = _index.FLIPPED_ALIAS_KEYS["Literal"]; +const IMMUTABLE_TYPES = exports.IMMUTABLE_TYPES = _index.FLIPPED_ALIAS_KEYS["Immutable"]; +const USERWHITESPACABLE_TYPES = exports.USERWHITESPACABLE_TYPES = _index.FLIPPED_ALIAS_KEYS["UserWhitespacable"]; +const METHOD_TYPES = exports.METHOD_TYPES = _index.FLIPPED_ALIAS_KEYS["Method"]; +const OBJECTMEMBER_TYPES = exports.OBJECTMEMBER_TYPES = _index.FLIPPED_ALIAS_KEYS["ObjectMember"]; +const PROPERTY_TYPES = exports.PROPERTY_TYPES = _index.FLIPPED_ALIAS_KEYS["Property"]; +const UNARYLIKE_TYPES = exports.UNARYLIKE_TYPES = _index.FLIPPED_ALIAS_KEYS["UnaryLike"]; +const PATTERN_TYPES = exports.PATTERN_TYPES = _index.FLIPPED_ALIAS_KEYS["Pattern"]; +const CLASS_TYPES = exports.CLASS_TYPES = _index.FLIPPED_ALIAS_KEYS["Class"]; +const IMPORTOREXPORTDECLARATION_TYPES = exports.IMPORTOREXPORTDECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS["ImportOrExportDeclaration"]; +const EXPORTDECLARATION_TYPES = exports.EXPORTDECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS["ExportDeclaration"]; +const MODULESPECIFIER_TYPES = exports.MODULESPECIFIER_TYPES = _index.FLIPPED_ALIAS_KEYS["ModuleSpecifier"]; +const ACCESSOR_TYPES = exports.ACCESSOR_TYPES = _index.FLIPPED_ALIAS_KEYS["Accessor"]; +const PRIVATE_TYPES = exports.PRIVATE_TYPES = _index.FLIPPED_ALIAS_KEYS["Private"]; +const FLOW_TYPES = exports.FLOW_TYPES = _index.FLIPPED_ALIAS_KEYS["Flow"]; +const FLOWTYPE_TYPES = exports.FLOWTYPE_TYPES = _index.FLIPPED_ALIAS_KEYS["FlowType"]; +const FLOWBASEANNOTATION_TYPES = exports.FLOWBASEANNOTATION_TYPES = _index.FLIPPED_ALIAS_KEYS["FlowBaseAnnotation"]; +const FLOWDECLARATION_TYPES = exports.FLOWDECLARATION_TYPES = _index.FLIPPED_ALIAS_KEYS["FlowDeclaration"]; +const FLOWPREDICATE_TYPES = exports.FLOWPREDICATE_TYPES = _index.FLIPPED_ALIAS_KEYS["FlowPredicate"]; +const ENUMBODY_TYPES = exports.ENUMBODY_TYPES = _index.FLIPPED_ALIAS_KEYS["EnumBody"]; +const ENUMMEMBER_TYPES = exports.ENUMMEMBER_TYPES = _index.FLIPPED_ALIAS_KEYS["EnumMember"]; +const JSX_TYPES = exports.JSX_TYPES = _index.FLIPPED_ALIAS_KEYS["JSX"]; +const MISCELLANEOUS_TYPES = exports.MISCELLANEOUS_TYPES = _index.FLIPPED_ALIAS_KEYS["Miscellaneous"]; +const TYPESCRIPT_TYPES = exports.TYPESCRIPT_TYPES = _index.FLIPPED_ALIAS_KEYS["TypeScript"]; +const TSTYPEELEMENT_TYPES = exports.TSTYPEELEMENT_TYPES = _index.FLIPPED_ALIAS_KEYS["TSTypeElement"]; +const TSTYPE_TYPES = exports.TSTYPE_TYPES = _index.FLIPPED_ALIAS_KEYS["TSType"]; +const TSBASETYPE_TYPES = exports.TSBASETYPE_TYPES = _index.FLIPPED_ALIAS_KEYS["TSBaseType"]; +const MODULEDECLARATION_TYPES = exports.MODULEDECLARATION_TYPES = IMPORTOREXPORTDECLARATION_TYPES; //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/types/lib/constants/generated/index.js.map b/node_modules/@babel/types/lib/constants/generated/index.js.map index c8120655..50f09f70 100644 --- a/node_modules/@babel/types/lib/constants/generated/index.js.map +++ b/node_modules/@babel/types/lib/constants/generated/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_index","require","STANDARDIZED_TYPES","FLIPPED_ALIAS_KEYS","exports","EXPRESSION_TYPES","BINARY_TYPES","SCOPABLE_TYPES","BLOCKPARENT_TYPES","BLOCK_TYPES","STATEMENT_TYPES","TERMINATORLESS_TYPES","COMPLETIONSTATEMENT_TYPES","CONDITIONAL_TYPES","LOOP_TYPES","WHILE_TYPES","EXPRESSIONWRAPPER_TYPES","FOR_TYPES","FORXSTATEMENT_TYPES","FUNCTION_TYPES","FUNCTIONPARENT_TYPES","PUREISH_TYPES","DECLARATION_TYPES","PATTERNLIKE_TYPES","LVAL_TYPES","TSENTITYNAME_TYPES","LITERAL_TYPES","IMMUTABLE_TYPES","USERWHITESPACABLE_TYPES","METHOD_TYPES","OBJECTMEMBER_TYPES","PROPERTY_TYPES","UNARYLIKE_TYPES","PATTERN_TYPES","CLASS_TYPES","IMPORTOREXPORTDECLARATION_TYPES","EXPORTDECLARATION_TYPES","MODULESPECIFIER_TYPES","ACCESSOR_TYPES","PRIVATE_TYPES","FLOW_TYPES","FLOWTYPE_TYPES","FLOWBASEANNOTATION_TYPES","FLOWDECLARATION_TYPES","FLOWPREDICATE_TYPES","ENUMBODY_TYPES","ENUMMEMBER_TYPES","JSX_TYPES","MISCELLANEOUS_TYPES","TYPESCRIPT_TYPES","TSTYPEELEMENT_TYPES","TSTYPE_TYPES","TSBASETYPE_TYPES","MODULEDECLARATION_TYPES"],"sources":["../../../src/constants/generated/index.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport { FLIPPED_ALIAS_KEYS } from \"../../definitions/index.ts\";\n\nexport const STANDARDIZED_TYPES = FLIPPED_ALIAS_KEYS[\"Standardized\"];\nexport const EXPRESSION_TYPES = FLIPPED_ALIAS_KEYS[\"Expression\"];\nexport const BINARY_TYPES = FLIPPED_ALIAS_KEYS[\"Binary\"];\nexport const SCOPABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Scopable\"];\nexport const BLOCKPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"BlockParent\"];\nexport const BLOCK_TYPES = FLIPPED_ALIAS_KEYS[\"Block\"];\nexport const STATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"Statement\"];\nexport const TERMINATORLESS_TYPES = FLIPPED_ALIAS_KEYS[\"Terminatorless\"];\nexport const COMPLETIONSTATEMENT_TYPES =\n FLIPPED_ALIAS_KEYS[\"CompletionStatement\"];\nexport const CONDITIONAL_TYPES = FLIPPED_ALIAS_KEYS[\"Conditional\"];\nexport const LOOP_TYPES = FLIPPED_ALIAS_KEYS[\"Loop\"];\nexport const WHILE_TYPES = FLIPPED_ALIAS_KEYS[\"While\"];\nexport const EXPRESSIONWRAPPER_TYPES = FLIPPED_ALIAS_KEYS[\"ExpressionWrapper\"];\nexport const FOR_TYPES = FLIPPED_ALIAS_KEYS[\"For\"];\nexport const FORXSTATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"ForXStatement\"];\nexport const FUNCTION_TYPES = FLIPPED_ALIAS_KEYS[\"Function\"];\nexport const FUNCTIONPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"FunctionParent\"];\nexport const PUREISH_TYPES = FLIPPED_ALIAS_KEYS[\"Pureish\"];\nexport const DECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"Declaration\"];\nexport const PATTERNLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"PatternLike\"];\nexport const LVAL_TYPES = FLIPPED_ALIAS_KEYS[\"LVal\"];\nexport const TSENTITYNAME_TYPES = FLIPPED_ALIAS_KEYS[\"TSEntityName\"];\nexport const LITERAL_TYPES = FLIPPED_ALIAS_KEYS[\"Literal\"];\nexport const IMMUTABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Immutable\"];\nexport const USERWHITESPACABLE_TYPES = FLIPPED_ALIAS_KEYS[\"UserWhitespacable\"];\nexport const METHOD_TYPES = FLIPPED_ALIAS_KEYS[\"Method\"];\nexport const OBJECTMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"ObjectMember\"];\nexport const PROPERTY_TYPES = FLIPPED_ALIAS_KEYS[\"Property\"];\nexport const UNARYLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"UnaryLike\"];\nexport const PATTERN_TYPES = FLIPPED_ALIAS_KEYS[\"Pattern\"];\nexport const CLASS_TYPES = FLIPPED_ALIAS_KEYS[\"Class\"];\nexport const IMPORTOREXPORTDECLARATION_TYPES =\n FLIPPED_ALIAS_KEYS[\"ImportOrExportDeclaration\"];\nexport const EXPORTDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"ExportDeclaration\"];\nexport const MODULESPECIFIER_TYPES = FLIPPED_ALIAS_KEYS[\"ModuleSpecifier\"];\nexport const ACCESSOR_TYPES = FLIPPED_ALIAS_KEYS[\"Accessor\"];\nexport const PRIVATE_TYPES = FLIPPED_ALIAS_KEYS[\"Private\"];\nexport const FLOW_TYPES = FLIPPED_ALIAS_KEYS[\"Flow\"];\nexport const FLOWTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowType\"];\nexport const FLOWBASEANNOTATION_TYPES =\n FLIPPED_ALIAS_KEYS[\"FlowBaseAnnotation\"];\nexport const FLOWDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"FlowDeclaration\"];\nexport const FLOWPREDICATE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowPredicate\"];\nexport const ENUMBODY_TYPES = FLIPPED_ALIAS_KEYS[\"EnumBody\"];\nexport const ENUMMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"EnumMember\"];\nexport const JSX_TYPES = FLIPPED_ALIAS_KEYS[\"JSX\"];\nexport const MISCELLANEOUS_TYPES = FLIPPED_ALIAS_KEYS[\"Miscellaneous\"];\nexport const TYPESCRIPT_TYPES = FLIPPED_ALIAS_KEYS[\"TypeScript\"];\nexport const TSTYPEELEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"TSTypeElement\"];\nexport const TSTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSType\"];\nexport const TSBASETYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSBaseType\"];\n/**\n * @deprecated migrate to IMPORTOREXPORTDECLARATION_TYPES.\n */\nexport const MODULEDECLARATION_TYPES = IMPORTOREXPORTDECLARATION_TYPES;\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_index","require","STANDARDIZED_TYPES","exports","FLIPPED_ALIAS_KEYS","EXPRESSION_TYPES","BINARY_TYPES","SCOPABLE_TYPES","BLOCKPARENT_TYPES","BLOCK_TYPES","STATEMENT_TYPES","TERMINATORLESS_TYPES","COMPLETIONSTATEMENT_TYPES","CONDITIONAL_TYPES","LOOP_TYPES","WHILE_TYPES","EXPRESSIONWRAPPER_TYPES","FOR_TYPES","FORXSTATEMENT_TYPES","FUNCTION_TYPES","FUNCTIONPARENT_TYPES","PUREISH_TYPES","DECLARATION_TYPES","PATTERNLIKE_TYPES","LVAL_TYPES","TSENTITYNAME_TYPES","LITERAL_TYPES","IMMUTABLE_TYPES","USERWHITESPACABLE_TYPES","METHOD_TYPES","OBJECTMEMBER_TYPES","PROPERTY_TYPES","UNARYLIKE_TYPES","PATTERN_TYPES","CLASS_TYPES","IMPORTOREXPORTDECLARATION_TYPES","EXPORTDECLARATION_TYPES","MODULESPECIFIER_TYPES","ACCESSOR_TYPES","PRIVATE_TYPES","FLOW_TYPES","FLOWTYPE_TYPES","FLOWBASEANNOTATION_TYPES","FLOWDECLARATION_TYPES","FLOWPREDICATE_TYPES","ENUMBODY_TYPES","ENUMMEMBER_TYPES","JSX_TYPES","MISCELLANEOUS_TYPES","TYPESCRIPT_TYPES","TSTYPEELEMENT_TYPES","TSTYPE_TYPES","TSBASETYPE_TYPES","MODULEDECLARATION_TYPES"],"sources":["../../../src/constants/generated/index.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport { FLIPPED_ALIAS_KEYS } from \"../../definitions/index.ts\";\n\nexport const STANDARDIZED_TYPES = FLIPPED_ALIAS_KEYS[\"Standardized\"];\nexport const EXPRESSION_TYPES = FLIPPED_ALIAS_KEYS[\"Expression\"];\nexport const BINARY_TYPES = FLIPPED_ALIAS_KEYS[\"Binary\"];\nexport const SCOPABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Scopable\"];\nexport const BLOCKPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"BlockParent\"];\nexport const BLOCK_TYPES = FLIPPED_ALIAS_KEYS[\"Block\"];\nexport const STATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"Statement\"];\nexport const TERMINATORLESS_TYPES = FLIPPED_ALIAS_KEYS[\"Terminatorless\"];\nexport const COMPLETIONSTATEMENT_TYPES =\n FLIPPED_ALIAS_KEYS[\"CompletionStatement\"];\nexport const CONDITIONAL_TYPES = FLIPPED_ALIAS_KEYS[\"Conditional\"];\nexport const LOOP_TYPES = FLIPPED_ALIAS_KEYS[\"Loop\"];\nexport const WHILE_TYPES = FLIPPED_ALIAS_KEYS[\"While\"];\nexport const EXPRESSIONWRAPPER_TYPES = FLIPPED_ALIAS_KEYS[\"ExpressionWrapper\"];\nexport const FOR_TYPES = FLIPPED_ALIAS_KEYS[\"For\"];\nexport const FORXSTATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"ForXStatement\"];\nexport const FUNCTION_TYPES = FLIPPED_ALIAS_KEYS[\"Function\"];\nexport const FUNCTIONPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"FunctionParent\"];\nexport const PUREISH_TYPES = FLIPPED_ALIAS_KEYS[\"Pureish\"];\nexport const DECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"Declaration\"];\nexport const PATTERNLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"PatternLike\"];\nexport const LVAL_TYPES = FLIPPED_ALIAS_KEYS[\"LVal\"];\nexport const TSENTITYNAME_TYPES = FLIPPED_ALIAS_KEYS[\"TSEntityName\"];\nexport const LITERAL_TYPES = FLIPPED_ALIAS_KEYS[\"Literal\"];\nexport const IMMUTABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Immutable\"];\nexport const USERWHITESPACABLE_TYPES = FLIPPED_ALIAS_KEYS[\"UserWhitespacable\"];\nexport const METHOD_TYPES = FLIPPED_ALIAS_KEYS[\"Method\"];\nexport const OBJECTMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"ObjectMember\"];\nexport const PROPERTY_TYPES = FLIPPED_ALIAS_KEYS[\"Property\"];\nexport const UNARYLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"UnaryLike\"];\nexport const PATTERN_TYPES = FLIPPED_ALIAS_KEYS[\"Pattern\"];\nexport const CLASS_TYPES = FLIPPED_ALIAS_KEYS[\"Class\"];\nexport const IMPORTOREXPORTDECLARATION_TYPES =\n FLIPPED_ALIAS_KEYS[\"ImportOrExportDeclaration\"];\nexport const EXPORTDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"ExportDeclaration\"];\nexport const MODULESPECIFIER_TYPES = FLIPPED_ALIAS_KEYS[\"ModuleSpecifier\"];\nexport const ACCESSOR_TYPES = FLIPPED_ALIAS_KEYS[\"Accessor\"];\nexport const PRIVATE_TYPES = FLIPPED_ALIAS_KEYS[\"Private\"];\nexport const FLOW_TYPES = FLIPPED_ALIAS_KEYS[\"Flow\"];\nexport const FLOWTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowType\"];\nexport const FLOWBASEANNOTATION_TYPES =\n FLIPPED_ALIAS_KEYS[\"FlowBaseAnnotation\"];\nexport const FLOWDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"FlowDeclaration\"];\nexport const FLOWPREDICATE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowPredicate\"];\nexport const ENUMBODY_TYPES = FLIPPED_ALIAS_KEYS[\"EnumBody\"];\nexport const ENUMMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"EnumMember\"];\nexport const JSX_TYPES = FLIPPED_ALIAS_KEYS[\"JSX\"];\nexport const MISCELLANEOUS_TYPES = FLIPPED_ALIAS_KEYS[\"Miscellaneous\"];\nexport const TYPESCRIPT_TYPES = FLIPPED_ALIAS_KEYS[\"TypeScript\"];\nexport const TSTYPEELEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"TSTypeElement\"];\nexport const TSTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSType\"];\nexport const TSBASETYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSBaseType\"];\n/**\n * @deprecated migrate to IMPORTOREXPORTDECLARATION_TYPES.\n */\nexport const MODULEDECLARATION_TYPES = IMPORTOREXPORTDECLARATION_TYPES;\n"],"mappings":";;;;;;AAIA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGE,yBAAkB,CAAC,cAAc,CAAC;AAC7D,MAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAAGD,yBAAkB,CAAC,YAAY,CAAC;AACzD,MAAME,YAAY,GAAAH,OAAA,CAAAG,YAAA,GAAGF,yBAAkB,CAAC,QAAQ,CAAC;AACjD,MAAMG,cAAc,GAAAJ,OAAA,CAAAI,cAAA,GAAGH,yBAAkB,CAAC,UAAU,CAAC;AACrD,MAAMI,iBAAiB,GAAAL,OAAA,CAAAK,iBAAA,GAAGJ,yBAAkB,CAAC,aAAa,CAAC;AAC3D,MAAMK,WAAW,GAAAN,OAAA,CAAAM,WAAA,GAAGL,yBAAkB,CAAC,OAAO,CAAC;AAC/C,MAAMM,eAAe,GAAAP,OAAA,CAAAO,eAAA,GAAGN,yBAAkB,CAAC,WAAW,CAAC;AACvD,MAAMO,oBAAoB,GAAAR,OAAA,CAAAQ,oBAAA,GAAGP,yBAAkB,CAAC,gBAAgB,CAAC;AACjE,MAAMQ,yBAAyB,GAAAT,OAAA,CAAAS,yBAAA,GACpCR,yBAAkB,CAAC,qBAAqB,CAAC;AACpC,MAAMS,iBAAiB,GAAAV,OAAA,CAAAU,iBAAA,GAAGT,yBAAkB,CAAC,aAAa,CAAC;AAC3D,MAAMU,UAAU,GAAAX,OAAA,CAAAW,UAAA,GAAGV,yBAAkB,CAAC,MAAM,CAAC;AAC7C,MAAMW,WAAW,GAAAZ,OAAA,CAAAY,WAAA,GAAGX,yBAAkB,CAAC,OAAO,CAAC;AAC/C,MAAMY,uBAAuB,GAAAb,OAAA,CAAAa,uBAAA,GAAGZ,yBAAkB,CAAC,mBAAmB,CAAC;AACvE,MAAMa,SAAS,GAAAd,OAAA,CAAAc,SAAA,GAAGb,yBAAkB,CAAC,KAAK,CAAC;AAC3C,MAAMc,mBAAmB,GAAAf,OAAA,CAAAe,mBAAA,GAAGd,yBAAkB,CAAC,eAAe,CAAC;AAC/D,MAAMe,cAAc,GAAAhB,OAAA,CAAAgB,cAAA,GAAGf,yBAAkB,CAAC,UAAU,CAAC;AACrD,MAAMgB,oBAAoB,GAAAjB,OAAA,CAAAiB,oBAAA,GAAGhB,yBAAkB,CAAC,gBAAgB,CAAC;AACjE,MAAMiB,aAAa,GAAAlB,OAAA,CAAAkB,aAAA,GAAGjB,yBAAkB,CAAC,SAAS,CAAC;AACnD,MAAMkB,iBAAiB,GAAAnB,OAAA,CAAAmB,iBAAA,GAAGlB,yBAAkB,CAAC,aAAa,CAAC;AAC3D,MAAMmB,iBAAiB,GAAApB,OAAA,CAAAoB,iBAAA,GAAGnB,yBAAkB,CAAC,aAAa,CAAC;AAC3D,MAAMoB,UAAU,GAAArB,OAAA,CAAAqB,UAAA,GAAGpB,yBAAkB,CAAC,MAAM,CAAC;AAC7C,MAAMqB,kBAAkB,GAAAtB,OAAA,CAAAsB,kBAAA,GAAGrB,yBAAkB,CAAC,cAAc,CAAC;AAC7D,MAAMsB,aAAa,GAAAvB,OAAA,CAAAuB,aAAA,GAAGtB,yBAAkB,CAAC,SAAS,CAAC;AACnD,MAAMuB,eAAe,GAAAxB,OAAA,CAAAwB,eAAA,GAAGvB,yBAAkB,CAAC,WAAW,CAAC;AACvD,MAAMwB,uBAAuB,GAAAzB,OAAA,CAAAyB,uBAAA,GAAGxB,yBAAkB,CAAC,mBAAmB,CAAC;AACvE,MAAMyB,YAAY,GAAA1B,OAAA,CAAA0B,YAAA,GAAGzB,yBAAkB,CAAC,QAAQ,CAAC;AACjD,MAAM0B,kBAAkB,GAAA3B,OAAA,CAAA2B,kBAAA,GAAG1B,yBAAkB,CAAC,cAAc,CAAC;AAC7D,MAAM2B,cAAc,GAAA5B,OAAA,CAAA4B,cAAA,GAAG3B,yBAAkB,CAAC,UAAU,CAAC;AACrD,MAAM4B,eAAe,GAAA7B,OAAA,CAAA6B,eAAA,GAAG5B,yBAAkB,CAAC,WAAW,CAAC;AACvD,MAAM6B,aAAa,GAAA9B,OAAA,CAAA8B,aAAA,GAAG7B,yBAAkB,CAAC,SAAS,CAAC;AACnD,MAAM8B,WAAW,GAAA/B,OAAA,CAAA+B,WAAA,GAAG9B,yBAAkB,CAAC,OAAO,CAAC;AAC/C,MAAM+B,+BAA+B,GAAAhC,OAAA,CAAAgC,+BAAA,GAC1C/B,yBAAkB,CAAC,2BAA2B,CAAC;AAC1C,MAAMgC,uBAAuB,GAAAjC,OAAA,CAAAiC,uBAAA,GAAGhC,yBAAkB,CAAC,mBAAmB,CAAC;AACvE,MAAMiC,qBAAqB,GAAAlC,OAAA,CAAAkC,qBAAA,GAAGjC,yBAAkB,CAAC,iBAAiB,CAAC;AACnE,MAAMkC,cAAc,GAAAnC,OAAA,CAAAmC,cAAA,GAAGlC,yBAAkB,CAAC,UAAU,CAAC;AACrD,MAAMmC,aAAa,GAAApC,OAAA,CAAAoC,aAAA,GAAGnC,yBAAkB,CAAC,SAAS,CAAC;AACnD,MAAMoC,UAAU,GAAArC,OAAA,CAAAqC,UAAA,GAAGpC,yBAAkB,CAAC,MAAM,CAAC;AAC7C,MAAMqC,cAAc,GAAAtC,OAAA,CAAAsC,cAAA,GAAGrC,yBAAkB,CAAC,UAAU,CAAC;AACrD,MAAMsC,wBAAwB,GAAAvC,OAAA,CAAAuC,wBAAA,GACnCtC,yBAAkB,CAAC,oBAAoB,CAAC;AACnC,MAAMuC,qBAAqB,GAAAxC,OAAA,CAAAwC,qBAAA,GAAGvC,yBAAkB,CAAC,iBAAiB,CAAC;AACnE,MAAMwC,mBAAmB,GAAAzC,OAAA,CAAAyC,mBAAA,GAAGxC,yBAAkB,CAAC,eAAe,CAAC;AAC/D,MAAMyC,cAAc,GAAA1C,OAAA,CAAA0C,cAAA,GAAGzC,yBAAkB,CAAC,UAAU,CAAC;AACrD,MAAM0C,gBAAgB,GAAA3C,OAAA,CAAA2C,gBAAA,GAAG1C,yBAAkB,CAAC,YAAY,CAAC;AACzD,MAAM2C,SAAS,GAAA5C,OAAA,CAAA4C,SAAA,GAAG3C,yBAAkB,CAAC,KAAK,CAAC;AAC3C,MAAM4C,mBAAmB,GAAA7C,OAAA,CAAA6C,mBAAA,GAAG5C,yBAAkB,CAAC,eAAe,CAAC;AAC/D,MAAM6C,gBAAgB,GAAA9C,OAAA,CAAA8C,gBAAA,GAAG7C,yBAAkB,CAAC,YAAY,CAAC;AACzD,MAAM8C,mBAAmB,GAAA/C,OAAA,CAAA+C,mBAAA,GAAG9C,yBAAkB,CAAC,eAAe,CAAC;AAC/D,MAAM+C,YAAY,GAAAhD,OAAA,CAAAgD,YAAA,GAAG/C,yBAAkB,CAAC,QAAQ,CAAC;AACjD,MAAMgD,gBAAgB,GAAAjD,OAAA,CAAAiD,gBAAA,GAAGhD,yBAAkB,CAAC,YAAY,CAAC;AAIzD,MAAMiD,uBAAuB,GAAAlD,OAAA,CAAAkD,uBAAA,GAAGlB,+BAA+B"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/constants/index.js b/node_modules/@babel/types/lib/constants/index.js index 92484441..5045d01d 100644 --- a/node_modules/@babel/types/lib/constants/index.js +++ b/node_modules/@babel/types/lib/constants/index.js @@ -4,48 +4,28 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.UPDATE_OPERATORS = exports.UNARY_OPERATORS = exports.STRING_UNARY_OPERATORS = exports.STATEMENT_OR_BLOCK_KEYS = exports.NUMBER_UNARY_OPERATORS = exports.NUMBER_BINARY_OPERATORS = exports.NOT_LOCAL_BINDING = 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.BLOCK_SCOPED_SYMBOL = exports.BINARY_OPERATORS = exports.ASSIGNMENT_OPERATORS = void 0; -const STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"]; -exports.STATEMENT_OR_BLOCK_KEYS = STATEMENT_OR_BLOCK_KEYS; -const FLATTENABLE_KEYS = ["body", "expressions"]; -exports.FLATTENABLE_KEYS = FLATTENABLE_KEYS; -const FOR_INIT_KEYS = ["left", "init"]; -exports.FOR_INIT_KEYS = FOR_INIT_KEYS; -const COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"]; -exports.COMMENT_KEYS = COMMENT_KEYS; -const LOGICAL_OPERATORS = ["||", "&&", "??"]; -exports.LOGICAL_OPERATORS = LOGICAL_OPERATORS; -const UPDATE_OPERATORS = ["++", "--"]; -exports.UPDATE_OPERATORS = UPDATE_OPERATORS; -const BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="]; -exports.BOOLEAN_NUMBER_BINARY_OPERATORS = BOOLEAN_NUMBER_BINARY_OPERATORS; -const EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="]; -exports.EQUALITY_BINARY_OPERATORS = EQUALITY_BINARY_OPERATORS; -const COMPARISON_BINARY_OPERATORS = [...EQUALITY_BINARY_OPERATORS, "in", "instanceof"]; -exports.COMPARISON_BINARY_OPERATORS = COMPARISON_BINARY_OPERATORS; -const BOOLEAN_BINARY_OPERATORS = [...COMPARISON_BINARY_OPERATORS, ...BOOLEAN_NUMBER_BINARY_OPERATORS]; -exports.BOOLEAN_BINARY_OPERATORS = BOOLEAN_BINARY_OPERATORS; -const NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"]; -exports.NUMBER_BINARY_OPERATORS = NUMBER_BINARY_OPERATORS; -const BINARY_OPERATORS = ["+", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS, "|>"]; -exports.BINARY_OPERATORS = BINARY_OPERATORS; -const ASSIGNMENT_OPERATORS = ["=", "+=", ...NUMBER_BINARY_OPERATORS.map(op => op + "="), ...LOGICAL_OPERATORS.map(op => op + "=")]; -exports.ASSIGNMENT_OPERATORS = ASSIGNMENT_OPERATORS; -const BOOLEAN_UNARY_OPERATORS = ["delete", "!"]; -exports.BOOLEAN_UNARY_OPERATORS = BOOLEAN_UNARY_OPERATORS; -const NUMBER_UNARY_OPERATORS = ["+", "-", "~"]; -exports.NUMBER_UNARY_OPERATORS = NUMBER_UNARY_OPERATORS; -const STRING_UNARY_OPERATORS = ["typeof"]; -exports.STRING_UNARY_OPERATORS = STRING_UNARY_OPERATORS; -const UNARY_OPERATORS = ["void", "throw", ...BOOLEAN_UNARY_OPERATORS, ...NUMBER_UNARY_OPERATORS, ...STRING_UNARY_OPERATORS]; -exports.UNARY_OPERATORS = UNARY_OPERATORS; -const INHERIT_KEYS = { +const STATEMENT_OR_BLOCK_KEYS = exports.STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"]; +const FLATTENABLE_KEYS = exports.FLATTENABLE_KEYS = ["body", "expressions"]; +const FOR_INIT_KEYS = exports.FOR_INIT_KEYS = ["left", "init"]; +const COMMENT_KEYS = exports.COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"]; +const LOGICAL_OPERATORS = exports.LOGICAL_OPERATORS = ["||", "&&", "??"]; +const UPDATE_OPERATORS = exports.UPDATE_OPERATORS = ["++", "--"]; +const BOOLEAN_NUMBER_BINARY_OPERATORS = exports.BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="]; +const EQUALITY_BINARY_OPERATORS = exports.EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="]; +const COMPARISON_BINARY_OPERATORS = exports.COMPARISON_BINARY_OPERATORS = [...EQUALITY_BINARY_OPERATORS, "in", "instanceof"]; +const BOOLEAN_BINARY_OPERATORS = exports.BOOLEAN_BINARY_OPERATORS = [...COMPARISON_BINARY_OPERATORS, ...BOOLEAN_NUMBER_BINARY_OPERATORS]; +const NUMBER_BINARY_OPERATORS = exports.NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"]; +const BINARY_OPERATORS = exports.BINARY_OPERATORS = ["+", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS, "|>"]; +const ASSIGNMENT_OPERATORS = exports.ASSIGNMENT_OPERATORS = ["=", "+=", ...NUMBER_BINARY_OPERATORS.map(op => op + "="), ...LOGICAL_OPERATORS.map(op => op + "=")]; +const BOOLEAN_UNARY_OPERATORS = exports.BOOLEAN_UNARY_OPERATORS = ["delete", "!"]; +const NUMBER_UNARY_OPERATORS = exports.NUMBER_UNARY_OPERATORS = ["+", "-", "~"]; +const STRING_UNARY_OPERATORS = exports.STRING_UNARY_OPERATORS = ["typeof"]; +const UNARY_OPERATORS = exports.UNARY_OPERATORS = ["void", "throw", ...BOOLEAN_UNARY_OPERATORS, ...NUMBER_UNARY_OPERATORS, ...STRING_UNARY_OPERATORS]; +const INHERIT_KEYS = exports.INHERIT_KEYS = { optional: ["typeAnnotation", "typeParameters", "returnType"], force: ["start", "loc", "end"] }; -exports.INHERIT_KEYS = INHERIT_KEYS; -const BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped"); -exports.BLOCK_SCOPED_SYMBOL = BLOCK_SCOPED_SYMBOL; -const NOT_LOCAL_BINDING = Symbol.for("should not be considered a local binding"); -exports.NOT_LOCAL_BINDING = NOT_LOCAL_BINDING; +const BLOCK_SCOPED_SYMBOL = exports.BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped"); +const NOT_LOCAL_BINDING = exports.NOT_LOCAL_BINDING = Symbol.for("should not be considered a local binding"); //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/types/lib/constants/index.js.map b/node_modules/@babel/types/lib/constants/index.js.map index 93cc2b49..c4824c0c 100644 --- a/node_modules/@babel/types/lib/constants/index.js.map +++ b/node_modules/@babel/types/lib/constants/index.js.map @@ -1 +1 @@ -{"version":3,"names":["STATEMENT_OR_BLOCK_KEYS","exports","FLATTENABLE_KEYS","FOR_INIT_KEYS","COMMENT_KEYS","LOGICAL_OPERATORS","UPDATE_OPERATORS","BOOLEAN_NUMBER_BINARY_OPERATORS","EQUALITY_BINARY_OPERATORS","COMPARISON_BINARY_OPERATORS","BOOLEAN_BINARY_OPERATORS","NUMBER_BINARY_OPERATORS","BINARY_OPERATORS","ASSIGNMENT_OPERATORS","map","op","BOOLEAN_UNARY_OPERATORS","NUMBER_UNARY_OPERATORS","STRING_UNARY_OPERATORS","UNARY_OPERATORS","INHERIT_KEYS","optional","force","BLOCK_SCOPED_SYMBOL","Symbol","for","NOT_LOCAL_BINDING"],"sources":["../../src/constants/index.ts"],"sourcesContent":["export const STATEMENT_OR_BLOCK_KEYS = [\"consequent\", \"body\", \"alternate\"];\nexport const FLATTENABLE_KEYS = [\"body\", \"expressions\"];\nexport const FOR_INIT_KEYS = [\"left\", \"init\"];\nexport const COMMENT_KEYS = [\n \"leadingComments\",\n \"trailingComments\",\n \"innerComments\",\n] as const;\n\nexport const LOGICAL_OPERATORS = [\"||\", \"&&\", \"??\"];\nexport const UPDATE_OPERATORS = [\"++\", \"--\"];\n\nexport const BOOLEAN_NUMBER_BINARY_OPERATORS = [\">\", \"<\", \">=\", \"<=\"];\nexport const EQUALITY_BINARY_OPERATORS = [\"==\", \"===\", \"!=\", \"!==\"];\nexport const COMPARISON_BINARY_OPERATORS = [\n ...EQUALITY_BINARY_OPERATORS,\n \"in\",\n \"instanceof\",\n];\nexport const BOOLEAN_BINARY_OPERATORS = [\n ...COMPARISON_BINARY_OPERATORS,\n ...BOOLEAN_NUMBER_BINARY_OPERATORS,\n];\nexport const NUMBER_BINARY_OPERATORS = [\n \"-\",\n \"/\",\n \"%\",\n \"*\",\n \"**\",\n \"&\",\n \"|\",\n \">>\",\n \">>>\",\n \"<<\",\n \"^\",\n];\nexport const BINARY_OPERATORS = [\n \"+\",\n ...NUMBER_BINARY_OPERATORS,\n ...BOOLEAN_BINARY_OPERATORS,\n \"|>\",\n];\n\nexport const ASSIGNMENT_OPERATORS = [\n \"=\",\n \"+=\",\n ...NUMBER_BINARY_OPERATORS.map(op => op + \"=\"),\n ...LOGICAL_OPERATORS.map(op => op + \"=\"),\n];\n\nexport const BOOLEAN_UNARY_OPERATORS = [\"delete\", \"!\"];\nexport const NUMBER_UNARY_OPERATORS = [\"+\", \"-\", \"~\"];\nexport const STRING_UNARY_OPERATORS = [\"typeof\"];\nexport const UNARY_OPERATORS = [\n \"void\",\n \"throw\",\n ...BOOLEAN_UNARY_OPERATORS,\n ...NUMBER_UNARY_OPERATORS,\n ...STRING_UNARY_OPERATORS,\n];\n\nexport const INHERIT_KEYS = {\n optional: [\"typeAnnotation\", \"typeParameters\", \"returnType\"],\n force: [\"start\", \"loc\", \"end\"],\n} as const;\n\nexport const BLOCK_SCOPED_SYMBOL = Symbol.for(\"var used to be block scoped\");\nexport const NOT_LOCAL_BINDING = Symbol.for(\n \"should not be considered a local binding\",\n);\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["STATEMENT_OR_BLOCK_KEYS","exports","FLATTENABLE_KEYS","FOR_INIT_KEYS","COMMENT_KEYS","LOGICAL_OPERATORS","UPDATE_OPERATORS","BOOLEAN_NUMBER_BINARY_OPERATORS","EQUALITY_BINARY_OPERATORS","COMPARISON_BINARY_OPERATORS","BOOLEAN_BINARY_OPERATORS","NUMBER_BINARY_OPERATORS","BINARY_OPERATORS","ASSIGNMENT_OPERATORS","map","op","BOOLEAN_UNARY_OPERATORS","NUMBER_UNARY_OPERATORS","STRING_UNARY_OPERATORS","UNARY_OPERATORS","INHERIT_KEYS","optional","force","BLOCK_SCOPED_SYMBOL","Symbol","for","NOT_LOCAL_BINDING"],"sources":["../../src/constants/index.ts"],"sourcesContent":["export const STATEMENT_OR_BLOCK_KEYS = [\"consequent\", \"body\", \"alternate\"];\nexport const FLATTENABLE_KEYS = [\"body\", \"expressions\"];\nexport const FOR_INIT_KEYS = [\"left\", \"init\"];\nexport const COMMENT_KEYS = [\n \"leadingComments\",\n \"trailingComments\",\n \"innerComments\",\n] as const;\n\nexport const LOGICAL_OPERATORS = [\"||\", \"&&\", \"??\"];\nexport const UPDATE_OPERATORS = [\"++\", \"--\"];\n\nexport const BOOLEAN_NUMBER_BINARY_OPERATORS = [\">\", \"<\", \">=\", \"<=\"];\nexport const EQUALITY_BINARY_OPERATORS = [\"==\", \"===\", \"!=\", \"!==\"];\nexport const COMPARISON_BINARY_OPERATORS = [\n ...EQUALITY_BINARY_OPERATORS,\n \"in\",\n \"instanceof\",\n];\nexport const BOOLEAN_BINARY_OPERATORS = [\n ...COMPARISON_BINARY_OPERATORS,\n ...BOOLEAN_NUMBER_BINARY_OPERATORS,\n];\nexport const NUMBER_BINARY_OPERATORS = [\n \"-\",\n \"/\",\n \"%\",\n \"*\",\n \"**\",\n \"&\",\n \"|\",\n \">>\",\n \">>>\",\n \"<<\",\n \"^\",\n];\nexport const BINARY_OPERATORS = [\n \"+\",\n ...NUMBER_BINARY_OPERATORS,\n ...BOOLEAN_BINARY_OPERATORS,\n \"|>\",\n];\n\nexport const ASSIGNMENT_OPERATORS = [\n \"=\",\n \"+=\",\n ...NUMBER_BINARY_OPERATORS.map(op => op + \"=\"),\n ...LOGICAL_OPERATORS.map(op => op + \"=\"),\n];\n\nexport const BOOLEAN_UNARY_OPERATORS = [\"delete\", \"!\"];\nexport const NUMBER_UNARY_OPERATORS = [\"+\", \"-\", \"~\"];\nexport const STRING_UNARY_OPERATORS = [\"typeof\"];\nexport const UNARY_OPERATORS = [\n \"void\",\n \"throw\",\n ...BOOLEAN_UNARY_OPERATORS,\n ...NUMBER_UNARY_OPERATORS,\n ...STRING_UNARY_OPERATORS,\n];\n\nexport const INHERIT_KEYS = {\n optional: [\"typeAnnotation\", \"typeParameters\", \"returnType\"],\n force: [\"start\", \"loc\", \"end\"],\n} as const;\n\nexport const BLOCK_SCOPED_SYMBOL = Symbol.for(\"var used to be block scoped\");\nexport const NOT_LOCAL_BINDING = Symbol.for(\n \"should not be considered a local binding\",\n);\n"],"mappings":";;;;;;AAAO,MAAMA,uBAAuB,GAAAC,OAAA,CAAAD,uBAAA,GAAG,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,CAAC;AACnE,MAAME,gBAAgB,GAAAD,OAAA,CAAAC,gBAAA,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;AAChD,MAAMC,aAAa,GAAAF,OAAA,CAAAE,aAAA,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;AACtC,MAAMC,YAAY,GAAAH,OAAA,CAAAG,YAAA,GAAG,CAC1B,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,CACP;AAEH,MAAMC,iBAAiB,GAAAJ,OAAA,CAAAI,iBAAA,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;AAC5C,MAAMC,gBAAgB,GAAAL,OAAA,CAAAK,gBAAA,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAErC,MAAMC,+BAA+B,GAAAN,OAAA,CAAAM,+BAAA,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC;AAC9D,MAAMC,yBAAyB,GAAAP,OAAA,CAAAO,yBAAA,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC;AAC5D,MAAMC,2BAA2B,GAAAR,OAAA,CAAAQ,2BAAA,GAAG,CACzC,GAAGD,yBAAyB,EAC5B,IAAI,EACJ,YAAY,CACb;AACM,MAAME,wBAAwB,GAAAT,OAAA,CAAAS,wBAAA,GAAG,CACtC,GAAGD,2BAA2B,EAC9B,GAAGF,+BAA+B,CACnC;AACM,MAAMI,uBAAuB,GAAAV,OAAA,CAAAU,uBAAA,GAAG,CACrC,GAAG,EACH,GAAG,EACH,GAAG,EACH,GAAG,EACH,IAAI,EACJ,GAAG,EACH,GAAG,EACH,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,GAAG,CACJ;AACM,MAAMC,gBAAgB,GAAAX,OAAA,CAAAW,gBAAA,GAAG,CAC9B,GAAG,EACH,GAAGD,uBAAuB,EAC1B,GAAGD,wBAAwB,EAC3B,IAAI,CACL;AAEM,MAAMG,oBAAoB,GAAAZ,OAAA,CAAAY,oBAAA,GAAG,CAClC,GAAG,EACH,IAAI,EACJ,GAAGF,uBAAuB,CAACG,GAAG,CAACC,EAAE,IAAIA,EAAE,GAAG,GAAG,CAAC,EAC9C,GAAGV,iBAAiB,CAACS,GAAG,CAACC,EAAE,IAAIA,EAAE,GAAG,GAAG,CAAC,CACzC;AAEM,MAAMC,uBAAuB,GAAAf,OAAA,CAAAe,uBAAA,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC;AAC/C,MAAMC,sBAAsB,GAAAhB,OAAA,CAAAgB,sBAAA,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC9C,MAAMC,sBAAsB,GAAAjB,OAAA,CAAAiB,sBAAA,GAAG,CAAC,QAAQ,CAAC;AACzC,MAAMC,eAAe,GAAAlB,OAAA,CAAAkB,eAAA,GAAG,CAC7B,MAAM,EACN,OAAO,EACP,GAAGH,uBAAuB,EAC1B,GAAGC,sBAAsB,EACzB,GAAGC,sBAAsB,CAC1B;AAEM,MAAME,YAAY,GAAAnB,OAAA,CAAAmB,YAAA,GAAG;EAC1BC,QAAQ,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,CAAC;EAC5DC,KAAK,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK;AAC/B,CAAU;AAEH,MAAMC,mBAAmB,GAAAtB,OAAA,CAAAsB,mBAAA,GAAGC,MAAM,CAACC,GAAG,CAAC,6BAA6B,CAAC;AACrE,MAAMC,iBAAiB,GAAAzB,OAAA,CAAAyB,iBAAA,GAAGF,MAAM,CAACC,GAAG,CACzC,0CACF,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js b/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js index aa212fdc..05c311a2 100644 --- a/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js +++ b/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js @@ -8,6 +8,7 @@ var _getBindingIdentifiers = require("../retrievers/getBindingIdentifiers.js"); var _index = require("../validators/generated/index.js"); var _index2 = require("../builders/generated/index.js"); var _cloneNode = require("../clone/cloneNode.js"); +; function gatherSequenceExpressions(nodes, scope, declars) { const exprs = []; let ensureLastUndefined = true; diff --git a/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map b/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map index f34a70ab..5918e0de 100644 --- a/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map +++ b/node_modules/@babel/types/lib/converters/gatherSequenceExpressions.js.map @@ -1 +1 @@ -{"version":3,"names":["_getBindingIdentifiers","require","_index","_index2","_cloneNode","gatherSequenceExpressions","nodes","scope","declars","exprs","ensureLastUndefined","node","isEmptyStatement","isExpression","push","isExpressionStatement","expression","isVariableDeclaration","kind","declar","declarations","bindings","getBindingIdentifiers","key","Object","keys","id","cloneNode","init","assignmentExpression","isIfStatement","consequent","buildUndefinedNode","alternate","conditionalExpression","test","isBlockStatement","body","indexOf","length","sequenceExpression"],"sources":["../../src/converters/gatherSequenceExpressions.ts"],"sourcesContent":["import getBindingIdentifiers from \"../retrievers/getBindingIdentifiers.ts\";\nimport {\n isExpression,\n isExpressionStatement,\n isVariableDeclaration,\n isIfStatement,\n isBlockStatement,\n isEmptyStatement,\n} from \"../validators/generated/index.ts\";\nimport {\n sequenceExpression,\n assignmentExpression,\n conditionalExpression,\n} from \"../builders/generated/index.ts\";\nimport cloneNode from \"../clone/cloneNode.ts\";\nimport type * as t from \"../index.ts\";\nimport type { Scope } from \"@babel/traverse\";\n\nexport type DeclarationInfo = {\n kind: t.VariableDeclaration[\"kind\"];\n id: t.Identifier;\n};\n\nexport default function gatherSequenceExpressions(\n nodes: ReadonlyArray<t.Node>,\n scope: Scope,\n declars: Array<DeclarationInfo>,\n) {\n const exprs: t.Expression[] = [];\n let ensureLastUndefined = true;\n\n for (const node of nodes) {\n // if we encounter emptyStatement before a non-emptyStatement\n // we want to disregard that\n if (!isEmptyStatement(node)) {\n ensureLastUndefined = false;\n }\n\n if (isExpression(node)) {\n exprs.push(node);\n } else if (isExpressionStatement(node)) {\n exprs.push(node.expression);\n } else if (isVariableDeclaration(node)) {\n if (node.kind !== \"var\") return; // bailed\n\n for (const declar of node.declarations) {\n const bindings = getBindingIdentifiers(declar);\n for (const key of Object.keys(bindings)) {\n declars.push({\n kind: node.kind,\n id: cloneNode(bindings[key]),\n });\n }\n\n if (declar.init) {\n exprs.push(assignmentExpression(\"=\", declar.id, declar.init));\n }\n }\n\n ensureLastUndefined = true;\n } else if (isIfStatement(node)) {\n const consequent = node.consequent\n ? gatherSequenceExpressions([node.consequent], scope, declars)\n : scope.buildUndefinedNode();\n const alternate = node.alternate\n ? gatherSequenceExpressions([node.alternate], scope, declars)\n : scope.buildUndefinedNode();\n if (!consequent || !alternate) return; // bailed\n\n exprs.push(conditionalExpression(node.test, consequent, alternate));\n } else if (isBlockStatement(node)) {\n const body = gatherSequenceExpressions(node.body, scope, declars);\n if (!body) return; // bailed\n\n exprs.push(body);\n } else if (isEmptyStatement(node)) {\n // empty statement so ensure the last item is undefined if we're last\n // checks if emptyStatement is first\n if (nodes.indexOf(node) === 0) {\n ensureLastUndefined = true;\n }\n } else {\n // bailed, we can't turn this statement into an expression\n return;\n }\n }\n\n if (ensureLastUndefined) {\n exprs.push(scope.buildUndefinedNode());\n }\n\n if (exprs.length === 1) {\n return exprs[0];\n } else {\n return sequenceExpression(exprs);\n }\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_getBindingIdentifiers","require","_index","_index2","_cloneNode","gatherSequenceExpressions","nodes","scope","declars","exprs","ensureLastUndefined","node","isEmptyStatement","isExpression","push","isExpressionStatement","expression","isVariableDeclaration","kind","declar","declarations","bindings","getBindingIdentifiers","key","Object","keys","id","cloneNode","init","assignmentExpression","isIfStatement","consequent","buildUndefinedNode","alternate","conditionalExpression","test","isBlockStatement","body","indexOf","length","sequenceExpression"],"sources":["../../src/converters/gatherSequenceExpressions.ts"],"sourcesContent":["// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nimport getBindingIdentifiers from \"../retrievers/getBindingIdentifiers.ts\";\nimport {\n isExpression,\n isExpressionStatement,\n isVariableDeclaration,\n isIfStatement,\n isBlockStatement,\n isEmptyStatement,\n} from \"../validators/generated/index.ts\";\nimport {\n sequenceExpression,\n assignmentExpression,\n conditionalExpression,\n} from \"../builders/generated/index.ts\";\nimport cloneNode from \"../clone/cloneNode.ts\";\nimport type * as t from \"../index.ts\";\nimport type { Scope } from \"@babel/traverse\";\n\nexport type DeclarationInfo = {\n kind: t.VariableDeclaration[\"kind\"];\n id: t.Identifier;\n};\n\nexport default function gatherSequenceExpressions(\n nodes: ReadonlyArray<t.Node>,\n scope: Scope,\n declars: Array<DeclarationInfo>,\n) {\n const exprs: t.Expression[] = [];\n let ensureLastUndefined = true;\n\n for (const node of nodes) {\n // if we encounter emptyStatement before a non-emptyStatement\n // we want to disregard that\n if (!isEmptyStatement(node)) {\n ensureLastUndefined = false;\n }\n\n if (isExpression(node)) {\n exprs.push(node);\n } else if (isExpressionStatement(node)) {\n exprs.push(node.expression);\n } else if (isVariableDeclaration(node)) {\n if (node.kind !== \"var\") return; // bailed\n\n for (const declar of node.declarations) {\n const bindings = getBindingIdentifiers(declar);\n for (const key of Object.keys(bindings)) {\n declars.push({\n kind: node.kind,\n id: cloneNode(bindings[key]),\n });\n }\n\n if (declar.init) {\n exprs.push(assignmentExpression(\"=\", declar.id, declar.init));\n }\n }\n\n ensureLastUndefined = true;\n } else if (isIfStatement(node)) {\n const consequent = node.consequent\n ? gatherSequenceExpressions([node.consequent], scope, declars)\n : scope.buildUndefinedNode();\n const alternate = node.alternate\n ? gatherSequenceExpressions([node.alternate], scope, declars)\n : scope.buildUndefinedNode();\n if (!consequent || !alternate) return; // bailed\n\n exprs.push(conditionalExpression(node.test, consequent, alternate));\n } else if (isBlockStatement(node)) {\n const body = gatherSequenceExpressions(node.body, scope, declars);\n if (!body) return; // bailed\n\n exprs.push(body);\n } else if (isEmptyStatement(node)) {\n // empty statement so ensure the last item is undefined if we're last\n // checks if emptyStatement is first\n if (nodes.indexOf(node) === 0) {\n ensureLastUndefined = true;\n }\n } else {\n // bailed, we can't turn this statement into an expression\n return;\n }\n }\n\n if (ensureLastUndefined) {\n exprs.push(scope.buildUndefinedNode());\n }\n\n if (exprs.length === 1) {\n return exprs[0];\n } else {\n return sequenceExpression(exprs);\n }\n}\n"],"mappings":";;;;;;AAOA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAQA,IAAAE,OAAA,GAAAF,OAAA;AAKA,IAAAG,UAAA,GAAAH,OAAA;AAA8C;AAS/B,SAASI,yBAAyBA,CAC/CC,KAA4B,EAC5BC,KAAY,EACZC,OAA+B,EAC/B;EACA,MAAMC,KAAqB,GAAG,EAAE;EAChC,IAAIC,mBAAmB,GAAG,IAAI;EAE9B,KAAK,MAAMC,IAAI,IAAIL,KAAK,EAAE;IAGxB,IAAI,CAAC,IAAAM,uBAAgB,EAACD,IAAI,CAAC,EAAE;MAC3BD,mBAAmB,GAAG,KAAK;IAC7B;IAEA,IAAI,IAAAG,mBAAY,EAACF,IAAI,CAAC,EAAE;MACtBF,KAAK,CAACK,IAAI,CAACH,IAAI,CAAC;IAClB,CAAC,MAAM,IAAI,IAAAI,4BAAqB,EAACJ,IAAI,CAAC,EAAE;MACtCF,KAAK,CAACK,IAAI,CAACH,IAAI,CAACK,UAAU,CAAC;IAC7B,CAAC,MAAM,IAAI,IAAAC,4BAAqB,EAACN,IAAI,CAAC,EAAE;MACtC,IAAIA,IAAI,CAACO,IAAI,KAAK,KAAK,EAAE;MAEzB,KAAK,MAAMC,MAAM,IAAIR,IAAI,CAACS,YAAY,EAAE;QACtC,MAAMC,QAAQ,GAAG,IAAAC,8BAAqB,EAACH,MAAM,CAAC;QAC9C,KAAK,MAAMI,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACJ,QAAQ,CAAC,EAAE;UACvCb,OAAO,CAACM,IAAI,CAAC;YACXI,IAAI,EAAEP,IAAI,CAACO,IAAI;YACfQ,EAAE,EAAE,IAAAC,kBAAS,EAACN,QAAQ,CAACE,GAAG,CAAC;UAC7B,CAAC,CAAC;QACJ;QAEA,IAAIJ,MAAM,CAACS,IAAI,EAAE;UACfnB,KAAK,CAACK,IAAI,CAAC,IAAAe,4BAAoB,EAAC,GAAG,EAAEV,MAAM,CAACO,EAAE,EAAEP,MAAM,CAACS,IAAI,CAAC,CAAC;QAC/D;MACF;MAEAlB,mBAAmB,GAAG,IAAI;IAC5B,CAAC,MAAM,IAAI,IAAAoB,oBAAa,EAACnB,IAAI,CAAC,EAAE;MAC9B,MAAMoB,UAAU,GAAGpB,IAAI,CAACoB,UAAU,GAC9B1B,yBAAyB,CAAC,CAACM,IAAI,CAACoB,UAAU,CAAC,EAAExB,KAAK,EAAEC,OAAO,CAAC,GAC5DD,KAAK,CAACyB,kBAAkB,CAAC,CAAC;MAC9B,MAAMC,SAAS,GAAGtB,IAAI,CAACsB,SAAS,GAC5B5B,yBAAyB,CAAC,CAACM,IAAI,CAACsB,SAAS,CAAC,EAAE1B,KAAK,EAAEC,OAAO,CAAC,GAC3DD,KAAK,CAACyB,kBAAkB,CAAC,CAAC;MAC9B,IAAI,CAACD,UAAU,IAAI,CAACE,SAAS,EAAE;MAE/BxB,KAAK,CAACK,IAAI,CAAC,IAAAoB,6BAAqB,EAACvB,IAAI,CAACwB,IAAI,EAAEJ,UAAU,EAAEE,SAAS,CAAC,CAAC;IACrE,CAAC,MAAM,IAAI,IAAAG,uBAAgB,EAACzB,IAAI,CAAC,EAAE;MACjC,MAAM0B,IAAI,GAAGhC,yBAAyB,CAACM,IAAI,CAAC0B,IAAI,EAAE9B,KAAK,EAAEC,OAAO,CAAC;MACjE,IAAI,CAAC6B,IAAI,EAAE;MAEX5B,KAAK,CAACK,IAAI,CAACuB,IAAI,CAAC;IAClB,CAAC,MAAM,IAAI,IAAAzB,uBAAgB,EAACD,IAAI,CAAC,EAAE;MAGjC,IAAIL,KAAK,CAACgC,OAAO,CAAC3B,IAAI,CAAC,KAAK,CAAC,EAAE;QAC7BD,mBAAmB,GAAG,IAAI;MAC5B;IACF,CAAC,MAAM;MAEL;IACF;EACF;EAEA,IAAIA,mBAAmB,EAAE;IACvBD,KAAK,CAACK,IAAI,CAACP,KAAK,CAACyB,kBAAkB,CAAC,CAAC,CAAC;EACxC;EAEA,IAAIvB,KAAK,CAAC8B,MAAM,KAAK,CAAC,EAAE;IACtB,OAAO9B,KAAK,CAAC,CAAC,CAAC;EACjB,CAAC,MAAM;IACL,OAAO,IAAA+B,0BAAkB,EAAC/B,KAAK,CAAC;EAClC;AACF"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/converters/toExpression.js b/node_modules/@babel/types/lib/converters/toExpression.js index 66283657..bcb576fe 100644 --- a/node_modules/@babel/types/lib/converters/toExpression.js +++ b/node_modules/@babel/types/lib/converters/toExpression.js @@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _index = require("../validators/generated/index.js"); -var _default = toExpression; -exports.default = _default; +var _default = exports.default = toExpression; function toExpression(node) { if ((0, _index.isExpressionStatement)(node)) { node = node.expression; diff --git a/node_modules/@babel/types/lib/converters/toExpression.js.map b/node_modules/@babel/types/lib/converters/toExpression.js.map index 1654cdae..25e6d15b 100644 --- a/node_modules/@babel/types/lib/converters/toExpression.js.map +++ b/node_modules/@babel/types/lib/converters/toExpression.js.map @@ -1 +1 @@ -{"version":3,"names":["_index","require","_default","toExpression","exports","default","node","isExpressionStatement","expression","isExpression","isClass","type","isFunction","Error"],"sources":["../../src/converters/toExpression.ts"],"sourcesContent":["import {\n isExpression,\n isFunction,\n isClass,\n isExpressionStatement,\n} from \"../validators/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default toExpression as {\n (node: t.Function): t.FunctionExpression;\n (node: t.Class): t.ClassExpression;\n (\n node: t.ExpressionStatement | t.Expression | t.Class | t.Function,\n ): t.Expression;\n};\n\nfunction toExpression(\n node: t.ExpressionStatement | t.Expression | t.Class | t.Function,\n): t.Expression {\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n // return unmodified node\n // important for things like ArrowFunctions where\n // type change from ArrowFunction to FunctionExpression\n // produces bugs like -> `()=>a` to `function () a`\n // without generating a BlockStatement for it\n // ref: https://github.com/babel/babili/issues/130\n if (isExpression(node)) {\n return node;\n }\n\n // convert all classes and functions\n // ClassDeclaration -> ClassExpression\n // FunctionDeclaration, ObjectMethod, ClassMethod -> FunctionExpression\n if (isClass(node)) {\n // @ts-expect-error todo(flow->ts): avoid type unsafe mutations\n node.type = \"ClassExpression\";\n } else if (isFunction(node)) {\n // @ts-expect-error todo(flow->ts): avoid type unsafe mutations\n node.type = \"FunctionExpression\";\n }\n\n // if it's still not an expression\n if (!isExpression(node)) {\n throw new Error(`cannot turn ${node.type} to an expression`);\n }\n\n return node;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAK0C,IAAAC,QAAA,GAG3BC,YAAY;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA;AAQ3B,SAASC,YAAYA,CACnBG,IAAiE,EACnD;EACd,IAAI,IAAAC,4BAAqB,EAACD,IAAI,CAAC,EAAE;IAC/BA,IAAI,GAAGA,IAAI,CAACE,UAAU;EACxB;EAQA,IAAI,IAAAC,mBAAY,EAACH,IAAI,CAAC,EAAE;IACtB,OAAOA,IAAI;EACb;EAKA,IAAI,IAAAI,cAAO,EAACJ,IAAI,CAAC,EAAE;IAEjBA,IAAI,CAACK,IAAI,GAAG,iBAAiB;EAC/B,CAAC,MAAM,IAAI,IAAAC,iBAAU,EAACN,IAAI,CAAC,EAAE;IAE3BA,IAAI,CAACK,IAAI,GAAG,oBAAoB;EAClC;EAGA,IAAI,CAAC,IAAAF,mBAAY,EAACH,IAAI,CAAC,EAAE;IACvB,MAAM,IAAIO,KAAK,CAAE,eAAcP,IAAI,CAACK,IAAK,mBAAkB,CAAC;EAC9D;EAEA,OAAOL,IAAI;AACb"}
\ No newline at end of file +{"version":3,"names":["_index","require","_default","exports","default","toExpression","node","isExpressionStatement","expression","isExpression","isClass","type","isFunction","Error"],"sources":["../../src/converters/toExpression.ts"],"sourcesContent":["import {\n isExpression,\n isFunction,\n isClass,\n isExpressionStatement,\n} from \"../validators/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default toExpression as {\n (node: t.Function): t.FunctionExpression;\n (node: t.Class): t.ClassExpression;\n (\n node: t.ExpressionStatement | t.Expression | t.Class | t.Function,\n ): t.Expression;\n};\n\nfunction toExpression(\n node: t.ExpressionStatement | t.Expression | t.Class | t.Function,\n): t.Expression {\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n // return unmodified node\n // important for things like ArrowFunctions where\n // type change from ArrowFunction to FunctionExpression\n // produces bugs like -> `()=>a` to `function () a`\n // without generating a BlockStatement for it\n // ref: https://github.com/babel/babili/issues/130\n if (isExpression(node)) {\n return node;\n }\n\n // convert all classes and functions\n // ClassDeclaration -> ClassExpression\n // FunctionDeclaration, ObjectMethod, ClassMethod -> FunctionExpression\n if (isClass(node)) {\n // @ts-expect-error todo(flow->ts): avoid type unsafe mutations\n node.type = \"ClassExpression\";\n } else if (isFunction(node)) {\n // @ts-expect-error todo(flow->ts): avoid type unsafe mutations\n node.type = \"FunctionExpression\";\n }\n\n // if it's still not an expression\n if (!isExpression(node)) {\n throw new Error(`cannot turn ${node.type} to an expression`);\n }\n\n return node;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAK0C,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAG3BC,YAAY;AAQ3B,SAASA,YAAYA,CACnBC,IAAiE,EACnD;EACd,IAAI,IAAAC,4BAAqB,EAACD,IAAI,CAAC,EAAE;IAC/BA,IAAI,GAAGA,IAAI,CAACE,UAAU;EACxB;EAQA,IAAI,IAAAC,mBAAY,EAACH,IAAI,CAAC,EAAE;IACtB,OAAOA,IAAI;EACb;EAKA,IAAI,IAAAI,cAAO,EAACJ,IAAI,CAAC,EAAE;IAEjBA,IAAI,CAACK,IAAI,GAAG,iBAAiB;EAC/B,CAAC,MAAM,IAAI,IAAAC,iBAAU,EAACN,IAAI,CAAC,EAAE;IAE3BA,IAAI,CAACK,IAAI,GAAG,oBAAoB;EAClC;EAGA,IAAI,CAAC,IAAAF,mBAAY,EAACH,IAAI,CAAC,EAAE;IACvB,MAAM,IAAIO,KAAK,CAAE,eAAcP,IAAI,CAACK,IAAK,mBAAkB,CAAC;EAC9D;EAEA,OAAOL,IAAI;AACb"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/converters/toSequenceExpression.js b/node_modules/@babel/types/lib/converters/toSequenceExpression.js index 110feb5d..7a4322f8 100644 --- a/node_modules/@babel/types/lib/converters/toSequenceExpression.js +++ b/node_modules/@babel/types/lib/converters/toSequenceExpression.js @@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = toSequenceExpression; var _gatherSequenceExpressions = require("./gatherSequenceExpressions.js"); +; function toSequenceExpression(nodes, scope) { if (!(nodes != null && nodes.length)) return; const declars = []; diff --git a/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map b/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map index 44514513..9b17ebff 100644 --- a/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map +++ b/node_modules/@babel/types/lib/converters/toSequenceExpression.js.map @@ -1 +1 @@ -{"version":3,"names":["_gatherSequenceExpressions","require","toSequenceExpression","nodes","scope","length","declars","result","gatherSequenceExpressions","declar","push"],"sources":["../../src/converters/toSequenceExpression.ts"],"sourcesContent":["import gatherSequenceExpressions from \"./gatherSequenceExpressions.ts\";\nimport type * as t from \"../index.ts\";\nimport type { DeclarationInfo } from \"./gatherSequenceExpressions.ts\";\n\n/**\n * Turn an array of statement `nodes` into a `SequenceExpression`.\n *\n * Variable declarations are turned into simple assignments and their\n * declarations hoisted to the top of the current scope.\n *\n * Expression statements are just resolved to their expression.\n */\nexport default function toSequenceExpression(\n nodes: ReadonlyArray<t.Node>,\n scope: any,\n): t.SequenceExpression | undefined {\n if (!nodes?.length) return;\n\n const declars: DeclarationInfo[] = [];\n const result = gatherSequenceExpressions(nodes, scope, declars);\n if (!result) return;\n\n for (const declar of declars) {\n scope.push(declar);\n }\n\n // @ts-expect-error fixme: gatherSequenceExpressions will return an Expression when there are only one element\n return result;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,0BAAA,GAAAC,OAAA;AAYe,SAASC,oBAAoBA,CAC1CC,KAA4B,EAC5BC,KAAU,EACwB;EAClC,IAAI,EAACD,KAAK,YAALA,KAAK,CAAEE,MAAM,GAAE;EAEpB,MAAMC,OAA0B,GAAG,EAAE;EACrC,MAAMC,MAAM,GAAG,IAAAC,kCAAyB,EAACL,KAAK,EAAEC,KAAK,EAAEE,OAAO,CAAC;EAC/D,IAAI,CAACC,MAAM,EAAE;EAEb,KAAK,MAAME,MAAM,IAAIH,OAAO,EAAE;IAC5BF,KAAK,CAACM,IAAI,CAACD,MAAM,CAAC;EACpB;EAGA,OAAOF,MAAM;AACf"}
\ No newline at end of file +{"version":3,"names":["_gatherSequenceExpressions","require","toSequenceExpression","nodes","scope","length","declars","result","gatherSequenceExpressions","declar","push"],"sources":["../../src/converters/toSequenceExpression.ts"],"sourcesContent":["// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nimport gatherSequenceExpressions from \"./gatherSequenceExpressions.ts\";\nimport type * as t from \"../index.ts\";\nimport type { DeclarationInfo } from \"./gatherSequenceExpressions.ts\";\n\n/**\n * Turn an array of statement `nodes` into a `SequenceExpression`.\n *\n * Variable declarations are turned into simple assignments and their\n * declarations hoisted to the top of the current scope.\n *\n * Expression statements are just resolved to their expression.\n */\nexport default function toSequenceExpression(\n nodes: ReadonlyArray<t.Node>,\n scope: any,\n): t.SequenceExpression | undefined {\n if (!nodes?.length) return;\n\n const declars: DeclarationInfo[] = [];\n const result = gatherSequenceExpressions(nodes, scope, declars);\n if (!result) return;\n\n for (const declar of declars) {\n scope.push(declar);\n }\n\n // @ts-expect-error fixme: gatherSequenceExpressions will return an Expression when there are only one element\n return result;\n}\n"],"mappings":";;;;;;AAOA,IAAAA,0BAAA,GAAAC,OAAA;AAAuE;AAYxD,SAASC,oBAAoBA,CAC1CC,KAA4B,EAC5BC,KAAU,EACwB;EAClC,IAAI,EAACD,KAAK,YAALA,KAAK,CAAEE,MAAM,GAAE;EAEpB,MAAMC,OAA0B,GAAG,EAAE;EACrC,MAAMC,MAAM,GAAG,IAAAC,kCAAyB,EAACL,KAAK,EAAEC,KAAK,EAAEE,OAAO,CAAC;EAC/D,IAAI,CAACC,MAAM,EAAE;EAEb,KAAK,MAAME,MAAM,IAAIH,OAAO,EAAE;IAC5BF,KAAK,CAACM,IAAI,CAACD,MAAM,CAAC;EACpB;EAGA,OAAOF,MAAM;AACf"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/converters/toStatement.js b/node_modules/@babel/types/lib/converters/toStatement.js index 9b3962eb..92cfd960 100644 --- a/node_modules/@babel/types/lib/converters/toStatement.js +++ b/node_modules/@babel/types/lib/converters/toStatement.js @@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _index = require("../validators/generated/index.js"); var _index2 = require("../builders/generated/index.js"); -var _default = toStatement; -exports.default = _default; +var _default = exports.default = toStatement; function toStatement(node, ignore) { if ((0, _index.isStatement)(node)) { return node; diff --git a/node_modules/@babel/types/lib/converters/toStatement.js.map b/node_modules/@babel/types/lib/converters/toStatement.js.map index 6d01d158..9bebd302 100644 --- a/node_modules/@babel/types/lib/converters/toStatement.js.map +++ b/node_modules/@babel/types/lib/converters/toStatement.js.map @@ -1 +1 @@ -{"version":3,"names":["_index","require","_index2","_default","toStatement","exports","default","node","ignore","isStatement","mustHaveId","newType","isClass","isFunction","isAssignmentExpression","expressionStatement","id","Error","type"],"sources":["../../src/converters/toStatement.ts"],"sourcesContent":["import {\n isStatement,\n isFunction,\n isClass,\n isAssignmentExpression,\n} from \"../validators/generated/index.ts\";\nimport { expressionStatement } from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default toStatement as {\n (node: t.AssignmentExpression, ignore?: boolean): t.ExpressionStatement;\n\n <T extends t.Statement>(node: T, ignore: false): T;\n <T extends t.Statement>(node: T, ignore?: boolean): T | false;\n\n (node: t.Class, ignore: false): t.ClassDeclaration;\n (node: t.Class, ignore?: boolean): t.ClassDeclaration | false;\n\n (node: t.Function, ignore: false): t.FunctionDeclaration;\n (node: t.Function, ignore?: boolean): t.FunctionDeclaration | false;\n\n (node: t.Node, ignore: false): t.Statement;\n (node: t.Node, ignore?: boolean): t.Statement | false;\n};\n\nfunction toStatement(node: t.Node, ignore?: boolean): t.Statement | false {\n if (isStatement(node)) {\n return node;\n }\n\n let mustHaveId = false;\n let newType;\n\n if (isClass(node)) {\n mustHaveId = true;\n newType = \"ClassDeclaration\" as const;\n } else if (isFunction(node)) {\n mustHaveId = true;\n newType = \"FunctionDeclaration\" as const;\n } else if (isAssignmentExpression(node)) {\n return expressionStatement(node);\n }\n\n // @ts-expect-error todo(flow->ts): node.id might be missing\n if (mustHaveId && !node.id) {\n newType = false;\n }\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\n // @ts-expect-error manipulating node.type\n node.type = newType;\n\n // @ts-expect-error todo(flow->ts) refactor to avoid type unsafe mutations like reassigning node type above\n return node;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,OAAA,GAAAD,OAAA;AAAqE,IAAAE,QAAA,GAGtDC,WAAW;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA;AAgB1B,SAASC,WAAWA,CAACG,IAAY,EAAEC,MAAgB,EAAuB;EACxE,IAAI,IAAAC,kBAAW,EAACF,IAAI,CAAC,EAAE;IACrB,OAAOA,IAAI;EACb;EAEA,IAAIG,UAAU,GAAG,KAAK;EACtB,IAAIC,OAAO;EAEX,IAAI,IAAAC,cAAO,EAACL,IAAI,CAAC,EAAE;IACjBG,UAAU,GAAG,IAAI;IACjBC,OAAO,GAAG,kBAA2B;EACvC,CAAC,MAAM,IAAI,IAAAE,iBAAU,EAACN,IAAI,CAAC,EAAE;IAC3BG,UAAU,GAAG,IAAI;IACjBC,OAAO,GAAG,qBAA8B;EAC1C,CAAC,MAAM,IAAI,IAAAG,6BAAsB,EAACP,IAAI,CAAC,EAAE;IACvC,OAAO,IAAAQ,2BAAmB,EAACR,IAAI,CAAC;EAClC;EAGA,IAAIG,UAAU,IAAI,CAACH,IAAI,CAACS,EAAE,EAAE;IAC1BL,OAAO,GAAG,KAAK;EACjB;EAEA,IAAI,CAACA,OAAO,EAAE;IACZ,IAAIH,MAAM,EAAE;MACV,OAAO,KAAK;IACd,CAAC,MAAM;MACL,MAAM,IAAIS,KAAK,CAAE,eAAcV,IAAI,CAACW,IAAK,iBAAgB,CAAC;IAC5D;EACF;EAGAX,IAAI,CAACW,IAAI,GAAGP,OAAO;EAGnB,OAAOJ,IAAI;AACb"}
\ No newline at end of file +{"version":3,"names":["_index","require","_index2","_default","exports","default","toStatement","node","ignore","isStatement","mustHaveId","newType","isClass","isFunction","isAssignmentExpression","expressionStatement","id","Error","type"],"sources":["../../src/converters/toStatement.ts"],"sourcesContent":["import {\n isStatement,\n isFunction,\n isClass,\n isAssignmentExpression,\n} from \"../validators/generated/index.ts\";\nimport { expressionStatement } from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default toStatement as {\n (node: t.AssignmentExpression, ignore?: boolean): t.ExpressionStatement;\n\n <T extends t.Statement>(node: T, ignore: false): T;\n <T extends t.Statement>(node: T, ignore?: boolean): T | false;\n\n (node: t.Class, ignore: false): t.ClassDeclaration;\n (node: t.Class, ignore?: boolean): t.ClassDeclaration | false;\n\n (node: t.Function, ignore: false): t.FunctionDeclaration;\n (node: t.Function, ignore?: boolean): t.FunctionDeclaration | false;\n\n (node: t.Node, ignore: false): t.Statement;\n (node: t.Node, ignore?: boolean): t.Statement | false;\n};\n\nfunction toStatement(node: t.Node, ignore?: boolean): t.Statement | false {\n if (isStatement(node)) {\n return node;\n }\n\n let mustHaveId = false;\n let newType;\n\n if (isClass(node)) {\n mustHaveId = true;\n newType = \"ClassDeclaration\" as const;\n } else if (isFunction(node)) {\n mustHaveId = true;\n newType = \"FunctionDeclaration\" as const;\n } else if (isAssignmentExpression(node)) {\n return expressionStatement(node);\n }\n\n // @ts-expect-error todo(flow->ts): node.id might be missing\n if (mustHaveId && !node.id) {\n newType = false;\n }\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\n // @ts-expect-error manipulating node.type\n node.type = newType;\n\n // @ts-expect-error todo(flow->ts) refactor to avoid type unsafe mutations like reassigning node type above\n return node;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAMA,IAAAC,OAAA,GAAAD,OAAA;AAAqE,IAAAE,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGtDC,WAAW;AAgB1B,SAASA,WAAWA,CAACC,IAAY,EAAEC,MAAgB,EAAuB;EACxE,IAAI,IAAAC,kBAAW,EAACF,IAAI,CAAC,EAAE;IACrB,OAAOA,IAAI;EACb;EAEA,IAAIG,UAAU,GAAG,KAAK;EACtB,IAAIC,OAAO;EAEX,IAAI,IAAAC,cAAO,EAACL,IAAI,CAAC,EAAE;IACjBG,UAAU,GAAG,IAAI;IACjBC,OAAO,GAAG,kBAA2B;EACvC,CAAC,MAAM,IAAI,IAAAE,iBAAU,EAACN,IAAI,CAAC,EAAE;IAC3BG,UAAU,GAAG,IAAI;IACjBC,OAAO,GAAG,qBAA8B;EAC1C,CAAC,MAAM,IAAI,IAAAG,6BAAsB,EAACP,IAAI,CAAC,EAAE;IACvC,OAAO,IAAAQ,2BAAmB,EAACR,IAAI,CAAC;EAClC;EAGA,IAAIG,UAAU,IAAI,CAACH,IAAI,CAACS,EAAE,EAAE;IAC1BL,OAAO,GAAG,KAAK;EACjB;EAEA,IAAI,CAACA,OAAO,EAAE;IACZ,IAAIH,MAAM,EAAE;MACV,OAAO,KAAK;IACd,CAAC,MAAM;MACL,MAAM,IAAIS,KAAK,CAAE,eAAcV,IAAI,CAACW,IAAK,iBAAgB,CAAC;IAC5D;EACF;EAGAX,IAAI,CAACW,IAAI,GAAGP,OAAO;EAGnB,OAAOJ,IAAI;AACb"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/converters/valueToNode.js b/node_modules/@babel/types/lib/converters/valueToNode.js index 17b35eda..e0ed9522 100644 --- a/node_modules/@babel/types/lib/converters/valueToNode.js +++ b/node_modules/@babel/types/lib/converters/valueToNode.js @@ -6,8 +6,7 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _isValidIdentifier = require("../validators/isValidIdentifier.js"); var _index = require("../builders/generated/index.js"); -var _default = valueToNode; -exports.default = _default; +var _default = exports.default = valueToNode; const objectToString = Function.call.bind(Object.prototype.toString); function isRegExp(value) { return objectToString(value) === "[object RegExp]"; diff --git a/node_modules/@babel/types/lib/converters/valueToNode.js.map b/node_modules/@babel/types/lib/converters/valueToNode.js.map index ad2c38a1..79a6d995 100644 --- a/node_modules/@babel/types/lib/converters/valueToNode.js.map +++ b/node_modules/@babel/types/lib/converters/valueToNode.js.map @@ -1 +1 @@ -{"version":3,"names":["_isValidIdentifier","require","_index","_default","valueToNode","exports","default","objectToString","Function","call","bind","Object","prototype","toString","isRegExp","value","isPlainObject","proto","getPrototypeOf","undefined","identifier","booleanLiteral","nullLiteral","stringLiteral","result","Number","isFinite","numericLiteral","Math","abs","numerator","isNaN","binaryExpression","is","unaryExpression","pattern","source","flags","match","regExpLiteral","Array","isArray","arrayExpression","map","props","key","keys","nodeKey","isValidIdentifier","push","objectProperty","objectExpression","Error"],"sources":["../../src/converters/valueToNode.ts"],"sourcesContent":["import isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport {\n identifier,\n booleanLiteral,\n nullLiteral,\n stringLiteral,\n numericLiteral,\n regExpLiteral,\n arrayExpression,\n objectProperty,\n objectExpression,\n unaryExpression,\n binaryExpression,\n} from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default valueToNode as {\n (value: undefined): t.Identifier; // TODO: This should return \"void 0\"\n (value: boolean): t.BooleanLiteral;\n (value: null): t.NullLiteral;\n (value: string): t.StringLiteral;\n // Infinities and NaN need to use a BinaryExpression; negative values must be wrapped in UnaryExpression\n (value: number): t.NumericLiteral | t.BinaryExpression | t.UnaryExpression;\n (value: RegExp): t.RegExpLiteral;\n (value: ReadonlyArray<unknown>): t.ArrayExpression;\n\n // this throws with objects that are not plain objects,\n // or if there are non-valueToNode-able values\n (value: object): t.ObjectExpression;\n\n (value: unknown): t.Expression;\n};\n\n// @ts-expect-error: Object.prototype.toString must return a string\nconst objectToString: (value: unknown) => string = Function.call.bind(\n Object.prototype.toString,\n);\n\nfunction isRegExp(value: unknown): value is RegExp {\n return objectToString(value) === \"[object RegExp]\";\n}\n\nfunction isPlainObject(value: unknown): value is object {\n if (\n typeof value !== \"object\" ||\n value === null ||\n Object.prototype.toString.call(value) !== \"[object Object]\"\n ) {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n // Object.prototype's __proto__ is null. Every other class's __proto__.__proto__ is\n // not null by default. We cannot check if proto === Object.prototype because it\n // could come from another realm.\n return proto === null || Object.getPrototypeOf(proto) === null;\n}\n\nfunction valueToNode(value: unknown): t.Expression {\n // undefined\n if (value === undefined) {\n return identifier(\"undefined\");\n }\n\n // boolean\n if (value === true || value === false) {\n return booleanLiteral(value);\n }\n\n // null\n if (value === null) {\n return nullLiteral();\n }\n\n // strings\n if (typeof value === \"string\") {\n return stringLiteral(value);\n }\n\n // numbers\n if (typeof value === \"number\") {\n let result;\n if (Number.isFinite(value)) {\n result = numericLiteral(Math.abs(value));\n } else {\n let numerator;\n if (Number.isNaN(value)) {\n // NaN\n numerator = numericLiteral(0);\n } else {\n // Infinity / -Infinity\n numerator = numericLiteral(1);\n }\n\n result = binaryExpression(\"/\", numerator, numericLiteral(0));\n }\n\n if (value < 0 || Object.is(value, -0)) {\n result = unaryExpression(\"-\", result);\n }\n\n return result;\n }\n\n // regexes\n if (isRegExp(value)) {\n const pattern = value.source;\n const flags = value.toString().match(/\\/([a-z]+|)$/)[1];\n return regExpLiteral(pattern, flags);\n }\n\n // array\n if (Array.isArray(value)) {\n return arrayExpression(value.map(valueToNode));\n }\n\n // object\n if (isPlainObject(value)) {\n const props = [];\n for (const key of Object.keys(value)) {\n let nodeKey;\n if (isValidIdentifier(key)) {\n nodeKey = identifier(key);\n } else {\n nodeKey = stringLiteral(key);\n }\n props.push(\n objectProperty(\n nodeKey,\n valueToNode(\n // @ts-expect-error key must present in value\n value[key],\n ),\n ),\n );\n }\n return objectExpression(props);\n }\n\n throw new Error(\"don't know how to turn this value into a node\");\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_isValidIdentifier","require","_index","_default","exports","default","valueToNode","objectToString","Function","call","bind","Object","prototype","toString","isRegExp","value","isPlainObject","proto","getPrototypeOf","undefined","identifier","booleanLiteral","nullLiteral","stringLiteral","result","Number","isFinite","numericLiteral","Math","abs","numerator","isNaN","binaryExpression","is","unaryExpression","pattern","source","flags","match","regExpLiteral","Array","isArray","arrayExpression","map","props","key","keys","nodeKey","isValidIdentifier","push","objectProperty","objectExpression","Error"],"sources":["../../src/converters/valueToNode.ts"],"sourcesContent":["import isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport {\n identifier,\n booleanLiteral,\n nullLiteral,\n stringLiteral,\n numericLiteral,\n regExpLiteral,\n arrayExpression,\n objectProperty,\n objectExpression,\n unaryExpression,\n binaryExpression,\n} from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default valueToNode as {\n (value: undefined): t.Identifier; // TODO: This should return \"void 0\"\n (value: boolean): t.BooleanLiteral;\n (value: null): t.NullLiteral;\n (value: string): t.StringLiteral;\n // Infinities and NaN need to use a BinaryExpression; negative values must be wrapped in UnaryExpression\n (value: number): t.NumericLiteral | t.BinaryExpression | t.UnaryExpression;\n (value: RegExp): t.RegExpLiteral;\n (value: ReadonlyArray<unknown>): t.ArrayExpression;\n\n // this throws with objects that are not plain objects,\n // or if there are non-valueToNode-able values\n (value: object): t.ObjectExpression;\n\n (value: unknown): t.Expression;\n};\n\n// @ts-expect-error: Object.prototype.toString must return a string\nconst objectToString: (value: unknown) => string = Function.call.bind(\n Object.prototype.toString,\n);\n\nfunction isRegExp(value: unknown): value is RegExp {\n return objectToString(value) === \"[object RegExp]\";\n}\n\nfunction isPlainObject(value: unknown): value is object {\n if (\n typeof value !== \"object\" ||\n value === null ||\n Object.prototype.toString.call(value) !== \"[object Object]\"\n ) {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n // Object.prototype's __proto__ is null. Every other class's __proto__.__proto__ is\n // not null by default. We cannot check if proto === Object.prototype because it\n // could come from another realm.\n return proto === null || Object.getPrototypeOf(proto) === null;\n}\n\nfunction valueToNode(value: unknown): t.Expression {\n // undefined\n if (value === undefined) {\n return identifier(\"undefined\");\n }\n\n // boolean\n if (value === true || value === false) {\n return booleanLiteral(value);\n }\n\n // null\n if (value === null) {\n return nullLiteral();\n }\n\n // strings\n if (typeof value === \"string\") {\n return stringLiteral(value);\n }\n\n // numbers\n if (typeof value === \"number\") {\n let result;\n if (Number.isFinite(value)) {\n result = numericLiteral(Math.abs(value));\n } else {\n let numerator;\n if (Number.isNaN(value)) {\n // NaN\n numerator = numericLiteral(0);\n } else {\n // Infinity / -Infinity\n numerator = numericLiteral(1);\n }\n\n result = binaryExpression(\"/\", numerator, numericLiteral(0));\n }\n\n if (value < 0 || Object.is(value, -0)) {\n result = unaryExpression(\"-\", result);\n }\n\n return result;\n }\n\n // regexes\n if (isRegExp(value)) {\n const pattern = value.source;\n const flags = value.toString().match(/\\/([a-z]+|)$/)[1];\n return regExpLiteral(pattern, flags);\n }\n\n // array\n if (Array.isArray(value)) {\n return arrayExpression(value.map(valueToNode));\n }\n\n // object\n if (isPlainObject(value)) {\n const props = [];\n for (const key of Object.keys(value)) {\n let nodeKey;\n if (isValidIdentifier(key)) {\n nodeKey = identifier(key);\n } else {\n nodeKey = stringLiteral(key);\n }\n props.push(\n objectProperty(\n nodeKey,\n valueToNode(\n // @ts-expect-error key must present in value\n value[key],\n ),\n ),\n );\n }\n return objectExpression(props);\n }\n\n throw new Error(\"don't know how to turn this value into a node\");\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/definitions/core.js b/node_modules/@babel/types/lib/definitions/core.js index a5277b13..59c06087 100644 --- a/node_modules/@babel/types/lib/definitions/core.js +++ b/node_modules/@babel/types/lib/definitions/core.js @@ -1294,7 +1294,7 @@ const classMethodOrPropertyCommon = () => ({ }, key: { validate: (0, _utils.chain)(function () { - const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral"); + const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "BigIntLiteral"); const computed = (0, _utils.assertNodeType)("Expression"); return function (node, key, val) { const validator = node.computed ? computed : normal; diff --git a/node_modules/@babel/types/lib/definitions/core.js.map b/node_modules/@babel/types/lib/definitions/core.js.map index 6334d8b5..489b4985 100644 --- a/node_modules/@babel/types/lib/definitions/core.js.map +++ b/node_modules/@babel/types/lib/definitions/core.js.map @@ -1 +1 @@ -{"version":3,"names":["_is","require","_isValidIdentifier","_helperValidatorIdentifier","_helperStringParser","_index","_utils","defineType","defineAliasedType","fields","elements","validate","chain","assertValueType","assertEach","assertNodeOrValueType","default","process","env","BABEL_TYPES_8_BREAKING","undefined","visitor","aliases","operator","identifier","assertOneOf","ASSIGNMENT_OPERATORS","pattern","node","key","val","validator","is","left","assertNodeType","right","builder","BINARY_OPERATORS","expression","inOp","Object","assign","oneOfNodeTypes","value","directives","body","label","optional","callee","arguments","typeArguments","typeParameters","param","test","consequent","alternate","program","comments","each","tokens","type","init","update","functionCommon","params","generator","async","exports","functionTypeAnnotationCommon","returnType","functionDeclarationCommon","declare","id","predicate","parent","inherits","patternLikeCommon","typeAnnotation","decorators","name","isValidIdentifier","TypeError","match","exec","parentKey","nonComp","computed","imported","meta","isKeyword","isReservedWord","deprecatedAlias","Number","isFinite","error","Error","flags","invalid","LOGICAL_OPERATORS","object","property","normal","sourceFile","sourceType","interpreter","properties","kind","shorthand","argument","listKey","index","length","expressions","discriminant","cases","block","handler","finalizer","prefix","UNARY_OPERATORS","UPDATE_OPERATORS","declarations","without","definite","superClass","superTypeParameters","implements","mixins","abstract","source","exportKind","validateOptional","attributes","assertions","declaration","specifiers","sourced","sourceless","local","exported","lval","await","module","phase","importKind","options","classMethodOrPropertyCommon","accessibility","static","override","classMethodOrDeclareMethodCommon","access","tag","quasi","assertShape","raw","cooked","templateElementCookedValidator","unterminatedCalled","str","firstInvalidLoc","readStringContents","unterminated","strictNumericEscape","invalidEscapeSequence","numericSeparatorInEscapeSequence","unexpectedNumericSeparator","invalidDigit","invalidCodePoint","tail","quasis","delegate","assertOptionalChainStart","readonly","variance"],"sources":["../../src/definitions/core.ts"],"sourcesContent":["import is from \"../validators/is.ts\";\nimport isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport { isKeyword, isReservedWord } from \"@babel/helper-validator-identifier\";\nimport type * as t from \"../index.ts\";\nimport { readStringContents } from \"@babel/helper-string-parser\";\n\nimport {\n BINARY_OPERATORS,\n LOGICAL_OPERATORS,\n ASSIGNMENT_OPERATORS,\n UNARY_OPERATORS,\n UPDATE_OPERATORS,\n} from \"../constants/index.ts\";\n\nimport {\n defineAliasedType,\n assertShape,\n assertOptionalChainStart,\n assertValueType,\n assertNodeType,\n assertNodeOrValueType,\n assertEach,\n chain,\n assertOneOf,\n validateOptional,\n type Validator,\n} from \"./utils.ts\";\n\nconst defineType = defineAliasedType(\"Standardized\");\n\ndefineType(\"ArrayExpression\", {\n fields: {\n elements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeOrValueType(\"null\", \"Expression\", \"SpreadElement\"),\n ),\n ),\n default: !process.env.BABEL_TYPES_8_BREAKING ? [] : undefined,\n },\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"AssignmentExpression\", {\n fields: {\n operator: {\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return assertValueType(\"string\");\n }\n\n const identifier = assertOneOf(...ASSIGNMENT_OPERATORS);\n const pattern = assertOneOf(\"=\");\n\n return function (node: t.AssignmentExpression, key, val) {\n const validator = is(\"Pattern\", node.left) ? pattern : identifier;\n validator(node, key, val);\n };\n })(),\n },\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"LVal\", \"OptionalMemberExpression\")\n : assertNodeType(\n \"Identifier\",\n \"MemberExpression\",\n \"OptionalMemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"BinaryExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n fields: {\n operator: {\n validate: assertOneOf(...BINARY_OPERATORS),\n },\n left: {\n validate: (function () {\n const expression = assertNodeType(\"Expression\");\n const inOp = assertNodeType(\"Expression\", \"PrivateName\");\n\n const validator: Validator = Object.assign(\n function (node: t.BinaryExpression, key, val) {\n const validator = node.operator === \"in\" ? inOp : expression;\n validator(node, key, val);\n } as Validator,\n // todo(ts): can be discriminated union by `operator` property\n { oneOfNodeTypes: [\"Expression\", \"PrivateName\"] },\n );\n return validator;\n })(),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n});\n\ndefineType(\"InterpreterDirective\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"Directive\", {\n visitor: [\"value\"],\n fields: {\n value: {\n validate: assertNodeType(\"DirectiveLiteral\"),\n },\n },\n});\n\ndefineType(\"DirectiveLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"BlockStatement\", {\n builder: [\"body\", \"directives\"],\n visitor: [\"directives\", \"body\"],\n fields: {\n directives: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Directive\")),\n ),\n default: [],\n },\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\", \"Statement\"],\n});\n\ndefineType(\"BreakStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n});\n\ndefineType(\"CallExpression\", {\n visitor: [\"callee\", \"arguments\", \"typeParameters\", \"typeArguments\"],\n builder: [\"callee\", \"arguments\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\", \"Super\", \"V8IntrinsicIdentifier\"),\n },\n arguments: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Expression\",\n \"SpreadElement\",\n \"JSXNamespacedName\",\n \"ArgumentPlaceholder\",\n ),\n ),\n ),\n },\n ...(!process.env.BABEL_TYPES_8_BREAKING\n ? {\n optional: {\n validate: assertOneOf(true, false),\n optional: true,\n },\n }\n : {}),\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\"),\n optional: true,\n },\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterInstantiation\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"CatchClause\", {\n visitor: [\"param\", \"body\"],\n fields: {\n param: {\n validate: assertNodeType(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\"],\n});\n\ndefineType(\"ConditionalExpression\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n consequent: {\n validate: assertNodeType(\"Expression\"),\n },\n alternate: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Expression\", \"Conditional\"],\n});\n\ndefineType(\"ContinueStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n});\n\ndefineType(\"DebuggerStatement\", {\n aliases: [\"Statement\"],\n});\n\ndefineType(\"DoWhileStatement\", {\n visitor: [\"test\", \"body\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n});\n\ndefineType(\"EmptyStatement\", {\n aliases: [\"Statement\"],\n});\n\ndefineType(\"ExpressionStatement\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Statement\", \"ExpressionWrapper\"],\n});\n\ndefineType(\"File\", {\n builder: [\"program\", \"comments\", \"tokens\"],\n visitor: [\"program\"],\n fields: {\n program: {\n validate: assertNodeType(\"Program\"),\n },\n comments: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? Object.assign(() => {}, {\n each: { oneOfNodeTypes: [\"CommentBlock\", \"CommentLine\"] },\n })\n : assertEach(assertNodeType(\"CommentBlock\", \"CommentLine\")),\n optional: true,\n },\n tokens: {\n // todo(ts): add Token type\n validate: assertEach(Object.assign(() => {}, { type: \"any\" })),\n optional: true,\n },\n },\n});\n\ndefineType(\"ForInStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n aliases: [\n \"Scopable\",\n \"Statement\",\n \"For\",\n \"BlockParent\",\n \"Loop\",\n \"ForXStatement\",\n ],\n fields: {\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"VariableDeclaration\", \"LVal\")\n : assertNodeType(\n \"VariableDeclaration\",\n \"Identifier\",\n \"MemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"ForStatement\", {\n visitor: [\"init\", \"test\", \"update\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\"],\n fields: {\n init: {\n validate: assertNodeType(\"VariableDeclaration\", \"Expression\"),\n optional: true,\n },\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n update: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\nexport const functionCommon = () => ({\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Identifier\", \"Pattern\", \"RestElement\")),\n ),\n },\n generator: {\n default: false,\n },\n async: {\n default: false,\n },\n});\n\nexport const functionTypeAnnotationCommon = () => ({\n returnType: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\")\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n});\n\nexport const functionDeclarationCommon = () => ({\n ...functionCommon(),\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true, // May be null for `export default function`\n },\n});\n\ndefineType(\"FunctionDeclaration\", {\n builder: [\"id\", \"params\", \"body\", \"generator\", \"async\"],\n visitor: [\"id\", \"params\", \"body\", \"returnType\", \"typeParameters\"],\n fields: {\n ...functionDeclarationCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Statement\",\n \"Pureish\",\n \"Declaration\",\n ],\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) return () => {};\n\n const identifier = assertNodeType(\"Identifier\");\n\n return function (parent, key, node) {\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n })(),\n});\n\ndefineType(\"FunctionExpression\", {\n inherits: \"FunctionDeclaration\",\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Expression\",\n \"Pureish\",\n ],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n});\n\nexport const patternLikeCommon = () => ({\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n});\n\ndefineType(\"Identifier\", {\n builder: [\"name\"],\n visitor: [\"typeAnnotation\", \"decorators\" /* for legacy param decorators */],\n aliases: [\"Expression\", \"PatternLike\", \"LVal\", \"TSEntityName\"],\n fields: {\n ...patternLikeCommon(),\n name: {\n validate: chain(\n assertValueType(\"string\"),\n Object.assign(\n function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (!isValidIdentifier(val, false)) {\n throw new TypeError(`\"${val}\" is not a valid identifier name`);\n }\n } as Validator,\n { type: \"string\" },\n ),\n ),\n },\n },\n validate(parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const match = /\\.(\\w+)$/.exec(key);\n if (!match) return;\n\n const [, parentKey] = match;\n const nonComp = { computed: false };\n\n // We can't check if `parent.property === node`, because nodes are validated\n // before replacing them in the AST.\n if (parentKey === \"property\") {\n if (is(\"MemberExpression\", parent, nonComp)) return;\n if (is(\"OptionalMemberExpression\", parent, nonComp)) return;\n } else if (parentKey === \"key\") {\n if (is(\"Property\", parent, nonComp)) return;\n if (is(\"Method\", parent, nonComp)) return;\n } else if (parentKey === \"exported\") {\n if (is(\"ExportSpecifier\", parent)) return;\n } else if (parentKey === \"imported\") {\n if (is(\"ImportSpecifier\", parent, { imported: node })) return;\n } else if (parentKey === \"meta\") {\n if (is(\"MetaProperty\", parent, { meta: node })) return;\n }\n\n if (\n // Ideally we should call isStrictReservedWord if this node is a descendant\n // of a block in strict mode. Also, we should pass the inModule option so\n // we can disable \"await\" in module.\n (isKeyword(node.name) || isReservedWord(node.name, false)) &&\n // Even if \"this\" is a keyword, we are using the Identifier\n // node to represent it.\n node.name !== \"this\"\n ) {\n throw new TypeError(`\"${node.name}\" is not a valid identifier`);\n }\n },\n});\n\ndefineType(\"IfStatement\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n aliases: [\"Statement\", \"Conditional\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n consequent: {\n validate: assertNodeType(\"Statement\"),\n },\n alternate: {\n optional: true,\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"LabeledStatement\", {\n visitor: [\"label\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"StringLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"NumericLiteral\", {\n builder: [\"value\"],\n deprecatedAlias: \"NumberLiteral\",\n fields: {\n value: {\n validate: chain(\n assertValueType(\"number\"),\n Object.assign(\n function (node, key, val) {\n if (1 / val < 0 || !Number.isFinite(val)) {\n const error = new Error(\n \"NumericLiterals must be non-negative finite numbers. \" +\n `You can use t.valueToNode(${val}) instead.`,\n );\n if (process.env.BABEL_8_BREAKING) {\n // TODO(@nicolo-ribaudo) Fix regenerator to not pass negative\n // numbers here.\n if (!IS_STANDALONE) {\n if (!new Error().stack.includes(\"regenerator\")) {\n throw error;\n }\n }\n } else {\n // TODO: Enable this warning once regenerator is fixed.\n // https://github.com/facebook/regenerator/pull/680\n // console.warn(error);\n }\n }\n } satisfies Validator,\n { type: \"number\" },\n ),\n ),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"NullLiteral\", {\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"BooleanLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"boolean\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"RegExpLiteral\", {\n builder: [\"pattern\", \"flags\"],\n deprecatedAlias: \"RegexLiteral\",\n aliases: [\"Expression\", \"Pureish\", \"Literal\"],\n fields: {\n pattern: {\n validate: assertValueType(\"string\"),\n },\n flags: {\n validate: chain(\n assertValueType(\"string\"),\n Object.assign(\n function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const invalid = /[^gimsuy]/.exec(val);\n if (invalid) {\n throw new TypeError(`\"${invalid[0]}\" is not a valid RegExp flag`);\n }\n } as Validator,\n { type: \"string\" },\n ),\n ),\n default: \"\",\n },\n },\n});\n\ndefineType(\"LogicalExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n fields: {\n operator: {\n validate: assertOneOf(...LOGICAL_OPERATORS),\n },\n left: {\n validate: assertNodeType(\"Expression\"),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"MemberExpression\", {\n builder: [\n \"object\",\n \"property\",\n \"computed\",\n ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"optional\"] : []),\n ],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\", \"LVal\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\", \"Super\"),\n },\n property: {\n validate: (function () {\n const normal = assertNodeType(\"Identifier\", \"PrivateName\");\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = function (\n node: t.MemberExpression,\n key,\n val,\n ) {\n const validator: Validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n // @ts-expect-error todo(ts): can be discriminated union by `computed` property\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 ? {\n optional: {\n validate: assertOneOf(true, false),\n optional: true,\n },\n }\n : {}),\n },\n});\n\ndefineType(\"NewExpression\", { inherits: \"CallExpression\" });\n\ndefineType(\"Program\", {\n // Note: We explicitly leave 'interpreter' out here because it is\n // conceptually comment-like, and Babel does not traverse comments either.\n visitor: [\"directives\", \"body\"],\n builder: [\"body\", \"directives\", \"sourceType\", \"interpreter\"],\n fields: {\n sourceFile: {\n validate: assertValueType(\"string\"),\n },\n sourceType: {\n validate: assertOneOf(\"script\", \"module\"),\n default: \"script\",\n },\n interpreter: {\n validate: assertNodeType(\"InterpreterDirective\"),\n default: null,\n optional: true,\n },\n directives: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Directive\")),\n ),\n default: [],\n },\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\"],\n});\n\ndefineType(\"ObjectExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"ObjectMethod\", \"ObjectProperty\", \"SpreadElement\"),\n ),\n ),\n },\n },\n});\n\ndefineType(\"ObjectMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"computed\", \"generator\", \"async\"],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\"),\n ...(!process.env.BABEL_TYPES_8_BREAKING ? { default: \"method\" } : {}),\n },\n computed: {\n default: false,\n },\n key: {\n validate: (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = function (node: t.ObjectMethod, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n // @ts-expect-error todo(ts): can be discriminated union by `computed` property\n validator.oneOfNodeTypes = [\n \"Expression\",\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n ];\n return validator;\n })(),\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n visitor: [\n \"key\",\n \"params\",\n \"body\",\n \"decorators\",\n \"returnType\",\n \"typeParameters\",\n ],\n aliases: [\n \"UserWhitespacable\",\n \"Function\",\n \"Scopable\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Method\",\n \"ObjectMember\",\n ],\n});\n\ndefineType(\"ObjectProperty\", {\n builder: [\n \"key\",\n \"value\",\n \"computed\",\n \"shorthand\",\n ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"decorators\"] : []),\n ],\n fields: {\n computed: {\n default: false,\n },\n key: {\n validate: (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"DecimalLiteral\",\n \"PrivateName\",\n );\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = Object.assign(\n function (node: t.ObjectProperty, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } as Validator,\n {\n // todo(ts): can be discriminated union by `computed` property\n oneOfNodeTypes: [\n \"Expression\",\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"DecimalLiteral\",\n \"PrivateName\",\n ],\n },\n );\n return validator;\n })(),\n },\n value: {\n // Value may be PatternLike if this is an AssignmentProperty\n // https://github.com/babel/babylon/issues/434\n validate: assertNodeType(\"Expression\", \"PatternLike\"),\n },\n shorthand: {\n validate: chain(\n assertValueType(\"boolean\"),\n Object.assign(\n function (node: t.ObjectProperty, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (val && node.computed) {\n throw new TypeError(\n \"Property shorthand of ObjectProperty cannot be true if computed is true\",\n );\n }\n } as Validator,\n { type: \"boolean\" },\n ),\n function (node: t.ObjectProperty, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (val && !is(\"Identifier\", node.key)) {\n throw new TypeError(\n \"Property shorthand of ObjectProperty cannot be true if key is not an Identifier\",\n );\n }\n } as Validator,\n ),\n default: false,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n },\n visitor: [\"key\", \"value\", \"decorators\"],\n aliases: [\"UserWhitespacable\", \"Property\", \"ObjectMember\"],\n validate: (function () {\n const pattern = assertNodeType(\n \"Identifier\",\n \"Pattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSNonNullExpression\",\n \"TSTypeAssertion\",\n );\n const expression = assertNodeType(\"Expression\");\n\n return function (parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const validator = is(\"ObjectPattern\", parent) ? pattern : expression;\n validator(node, \"value\", node.value);\n };\n })(),\n});\n\ndefineType(\"RestElement\", {\n visitor: [\"argument\", \"typeAnnotation\"],\n builder: [\"argument\"],\n aliases: [\"LVal\", \"PatternLike\"],\n deprecatedAlias: \"RestProperty\",\n fields: {\n ...patternLikeCommon(),\n argument: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"LVal\")\n : assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"MemberExpression\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n },\n validate(parent: t.ArrayPattern | t.ObjectPattern, key) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const match = /(\\w+)\\[(\\d+)\\]/.exec(key);\n if (!match) throw new Error(\"Internal Babel error: malformed key.\");\n\n const [, listKey, index] = match as unknown as [\n string,\n keyof typeof parent,\n string,\n ];\n if ((parent[listKey] as t.Node[]).length > +index + 1) {\n throw new TypeError(`RestElement must be last element of ${listKey}`);\n }\n },\n});\n\ndefineType(\"ReturnStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"SequenceExpression\", {\n visitor: [\"expressions\"],\n fields: {\n expressions: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Expression\")),\n ),\n },\n },\n aliases: [\"Expression\"],\n});\n\ndefineType(\"ParenthesizedExpression\", {\n visitor: [\"expression\"],\n aliases: [\"Expression\", \"ExpressionWrapper\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"SwitchCase\", {\n visitor: [\"test\", \"consequent\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n consequent: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n});\n\ndefineType(\"SwitchStatement\", {\n visitor: [\"discriminant\", \"cases\"],\n aliases: [\"Statement\", \"BlockParent\", \"Scopable\"],\n fields: {\n discriminant: {\n validate: assertNodeType(\"Expression\"),\n },\n cases: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"SwitchCase\")),\n ),\n },\n },\n});\n\ndefineType(\"ThisExpression\", {\n aliases: [\"Expression\"],\n});\n\ndefineType(\"ThrowStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"TryStatement\", {\n visitor: [\"block\", \"handler\", \"finalizer\"],\n aliases: [\"Statement\"],\n fields: {\n block: {\n validate: chain(\n assertNodeType(\"BlockStatement\"),\n Object.assign(\n function (node: t.TryStatement) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (!node.handler && !node.finalizer) {\n throw new TypeError(\n \"TryStatement expects either a handler or finalizer, or both\",\n );\n }\n } as Validator,\n {\n oneOfNodeTypes: [\"BlockStatement\"],\n },\n ),\n ),\n },\n handler: {\n optional: true,\n validate: assertNodeType(\"CatchClause\"),\n },\n finalizer: {\n optional: true,\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"UnaryExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: true,\n },\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n operator: {\n validate: assertOneOf(...UNARY_OPERATORS),\n },\n },\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\", \"Expression\"],\n});\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\n ? assertNodeType(\"Expression\")\n : assertNodeType(\"Identifier\", \"MemberExpression\"),\n },\n operator: {\n validate: assertOneOf(...UPDATE_OPERATORS),\n },\n },\n visitor: [\"argument\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"VariableDeclaration\", {\n builder: [\"kind\", \"declarations\"],\n visitor: [\"declarations\"],\n aliases: [\"Statement\", \"Declaration\"],\n fields: {\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n kind: {\n validate: assertOneOf(\n \"var\",\n \"let\",\n \"const\",\n // https://github.com/tc39/proposal-explicit-resource-management\n \"using\",\n // https://github.com/tc39/proposal-async-explicit-resource-management\n \"await using\",\n ),\n },\n declarations: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"VariableDeclarator\")),\n ),\n },\n },\n validate(parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (!is(\"ForXStatement\", parent, { left: node })) return;\n if (node.declarations.length !== 1) {\n throw new TypeError(\n `Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`,\n );\n }\n },\n});\n\ndefineType(\"VariableDeclarator\", {\n visitor: [\"id\", \"init\"],\n fields: {\n id: {\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return assertNodeType(\"LVal\");\n }\n\n const normal = assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n );\n const without = assertNodeType(\"Identifier\");\n\n return function (node: t.VariableDeclarator, key, val) {\n const validator = node.init ? normal : without;\n validator(node, key, val);\n };\n })(),\n },\n definite: {\n optional: true,\n validate: assertValueType(\"boolean\"),\n },\n init: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"WhileStatement\", {\n visitor: [\"test\", \"body\"],\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"WithStatement\", {\n visitor: [\"object\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\n// --- ES2015 ---\ndefineType(\"AssignmentPattern\", {\n visitor: [\"left\", \"right\", \"decorators\" /* for legacy param decorators */],\n builder: [\"left\", \"right\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n left: {\n validate: assertNodeType(\n \"Identifier\",\n \"ObjectPattern\",\n \"ArrayPattern\",\n \"MemberExpression\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n // For TypeScript\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"ArrayPattern\", {\n visitor: [\"elements\", \"typeAnnotation\"],\n builder: [\"elements\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n elements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeOrValueType(\"null\", \"PatternLike\", \"LVal\")),\n ),\n },\n },\n});\n\ndefineType(\"ArrowFunctionExpression\", {\n builder: [\"params\", \"body\", \"async\"],\n visitor: [\"params\", \"body\", \"returnType\", \"typeParameters\"],\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Expression\",\n \"Pureish\",\n ],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n expression: {\n // https://github.com/babel/babylon/issues/505\n validate: assertValueType(\"boolean\"),\n },\n body: {\n validate: assertNodeType(\"BlockStatement\", \"Expression\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassBody\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"ClassMethod\",\n \"ClassPrivateMethod\",\n \"ClassProperty\",\n \"ClassPrivateProperty\",\n \"ClassAccessorProperty\",\n \"TSDeclareMethod\",\n \"TSIndexSignature\",\n \"StaticBlock\",\n ),\n ),\n ),\n },\n },\n});\n\ndefineType(\"ClassExpression\", {\n builder: [\"id\", \"superClass\", \"body\", \"decorators\"],\n visitor: [\n \"id\",\n \"body\",\n \"superClass\",\n \"mixins\",\n \"typeParameters\",\n \"superTypeParameters\",\n \"implements\",\n \"decorators\",\n ],\n aliases: [\"Scopable\", \"Class\", \"Expression\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n )\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"ClassBody\"),\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n superTypeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n implements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"TSExpressionWithTypeArguments\", \"ClassImplements\"),\n ),\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassDeclaration\", {\n inherits: \"ClassExpression\",\n aliases: [\"Scopable\", \"Class\", \"Statement\", \"Declaration\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n // The id may be omitted if this is the child of an\n // ExportDefaultDeclaration.\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n )\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"ClassBody\"),\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n superTypeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n implements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"TSExpressionWithTypeArguments\", \"ClassImplements\"),\n ),\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n abstract: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n },\n validate: (function () {\n const identifier = assertNodeType(\"Identifier\");\n\n return function (parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n })(),\n});\n\ndefineType(\"ExportAllDeclaration\", {\n builder: [\"source\"],\n visitor: [\"source\", \"attributes\", \"assertions\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n attributes: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n // TODO(Babel 8): Deprecated\n assertions: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n },\n});\n\ndefineType(\"ExportDefaultDeclaration\", {\n visitor: [\"declaration\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n declaration: {\n validate: assertNodeType(\n \"TSDeclareFunction\",\n \"FunctionDeclaration\",\n \"ClassDeclaration\",\n \"Expression\",\n ),\n },\n exportKind: validateOptional(assertOneOf(\"value\")),\n },\n});\n\ndefineType(\"ExportNamedDeclaration\", {\n builder: [\"declaration\", \"specifiers\", \"source\"],\n visitor: [\"declaration\", \"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n declaration: {\n optional: true,\n validate: chain(\n assertNodeType(\"Declaration\"),\n Object.assign(\n function (node: t.ExportNamedDeclaration, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (val && node.specifiers.length) {\n throw new TypeError(\n \"Only declaration or specifiers is allowed on ExportNamedDeclaration\",\n );\n }\n } as Validator,\n { oneOfNodeTypes: [\"Declaration\"] },\n ),\n function (node: t.ExportNamedDeclaration, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (val && node.source) {\n throw new TypeError(\"Cannot export a declaration from a source\");\n }\n },\n ),\n },\n attributes: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n // TODO(Babel 8): Deprecated\n assertions: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n specifiers: {\n default: [],\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n (function () {\n const sourced = assertNodeType(\n \"ExportSpecifier\",\n \"ExportDefaultSpecifier\",\n \"ExportNamespaceSpecifier\",\n );\n const sourceless = assertNodeType(\"ExportSpecifier\");\n\n if (!process.env.BABEL_TYPES_8_BREAKING) return sourced;\n\n return function (node: t.ExportNamedDeclaration, key, val) {\n const validator = node.source ? sourced : sourceless;\n validator(node, key, val);\n } as Validator;\n })(),\n ),\n ),\n },\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n optional: true,\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n },\n});\n\ndefineType(\"ExportSpecifier\", {\n visitor: [\"local\", \"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n exported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n exportKind: {\n // And TypeScript's \"export { type foo } from\"\n validate: assertOneOf(\"type\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ForOfStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n builder: [\"left\", \"right\", \"body\", \"await\"],\n aliases: [\n \"Scopable\",\n \"Statement\",\n \"For\",\n \"BlockParent\",\n \"Loop\",\n \"ForXStatement\",\n ],\n fields: {\n left: {\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return assertNodeType(\"VariableDeclaration\", \"LVal\");\n }\n\n const declaration = assertNodeType(\"VariableDeclaration\");\n const lval = assertNodeType(\n \"Identifier\",\n \"MemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n );\n\n return function (node, key, val) {\n if (is(\"VariableDeclaration\", val)) {\n declaration(node, key, val);\n } else {\n lval(node, key, val);\n }\n };\n })(),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n await: {\n default: false,\n },\n },\n});\n\ndefineType(\"ImportDeclaration\", {\n builder: [\"specifiers\", \"source\"],\n visitor: [\"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\"],\n fields: {\n attributes: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n // TODO(Babel 8): Deprecated\n assertions: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n module: {\n optional: true,\n validate: assertValueType(\"boolean\"),\n },\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\"),\n },\n specifiers: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"ImportSpecifier\",\n \"ImportDefaultSpecifier\",\n \"ImportNamespaceSpecifier\",\n ),\n ),\n ),\n },\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n importKind: {\n // Handle TypeScript/Flowtype's extension \"import type foo from\"\n // TypeScript doesn't support typeof\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ImportDefaultSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"ImportNamespaceSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"ImportSpecifier\", {\n visitor: [\"local\", \"imported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n imported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n importKind: {\n // Handle Flowtype's extension \"import {typeof foo} from\"\n // And TypeScript's \"import { type foo } from\"\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ImportExpression\", {\n visitor: [\"source\", \"options\"],\n aliases: [\"Expression\"],\n fields: {\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\"),\n },\n source: {\n validate: assertNodeType(\"Expression\"),\n },\n options: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"MetaProperty\", {\n visitor: [\"meta\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n meta: {\n validate: chain(\n assertNodeType(\"Identifier\"),\n Object.assign(\n function (node: t.MetaProperty, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n let property;\n switch (val.name) {\n case \"function\":\n property = \"sent\";\n break;\n case \"new\":\n property = \"target\";\n break;\n case \"import\":\n property = \"meta\";\n break;\n }\n if (!is(\"Identifier\", node.property, { name: property })) {\n throw new TypeError(\"Unrecognised MetaProperty\");\n }\n } as Validator,\n { oneOfNodeTypes: [\"Identifier\"] },\n ),\n ),\n },\n property: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\nexport const classMethodOrPropertyCommon = () => ({\n abstract: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true,\n },\n static: {\n default: false,\n },\n override: {\n default: false,\n },\n computed: {\n default: false,\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n key: {\n validate: chain(\n (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n );\n const computed = assertNodeType(\"Expression\");\n\n return function (node: any, key: string, val: any) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n })(),\n assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"Expression\",\n ),\n ),\n },\n});\n\nexport const classMethodOrDeclareMethodCommon = () => ({\n ...functionCommon(),\n ...classMethodOrPropertyCommon(),\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Identifier\",\n \"Pattern\",\n \"RestElement\",\n \"TSParameterProperty\",\n ),\n ),\n ),\n },\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\", \"constructor\"),\n default: \"method\",\n },\n access: {\n validate: chain(\n assertValueType(\"string\"),\n assertOneOf(\"public\", \"private\", \"protected\"),\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n});\n\ndefineType(\"ClassMethod\", {\n aliases: [\"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\"],\n builder: [\n \"kind\",\n \"key\",\n \"params\",\n \"body\",\n \"computed\",\n \"static\",\n \"generator\",\n \"async\",\n ],\n visitor: [\n \"key\",\n \"params\",\n \"body\",\n \"decorators\",\n \"returnType\",\n \"typeParameters\",\n ],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"ObjectPattern\", {\n visitor: [\n \"properties\",\n \"typeAnnotation\",\n \"decorators\" /* for legacy param decorators */,\n ],\n builder: [\"properties\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n properties: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"RestElement\", \"ObjectProperty\")),\n ),\n },\n },\n});\n\ndefineType(\"SpreadElement\", {\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\"],\n deprecatedAlias: \"SpreadProperty\",\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\n \"Super\",\n process.env.BABEL_8_BREAKING\n ? undefined\n : {\n aliases: [\"Expression\"],\n },\n);\n\ndefineType(\"TaggedTemplateExpression\", {\n visitor: [\"tag\", \"quasi\", \"typeParameters\"],\n builder: [\"tag\", \"quasi\"],\n aliases: [\"Expression\"],\n fields: {\n tag: {\n validate: assertNodeType(\"Expression\"),\n },\n quasi: {\n validate: assertNodeType(\"TemplateLiteral\"),\n },\n typeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"TemplateElement\", {\n builder: [\"value\", \"tail\"],\n fields: {\n value: {\n validate: chain(\n assertShape({\n raw: {\n validate: assertValueType(\"string\"),\n },\n cooked: {\n validate: assertValueType(\"string\"),\n optional: true,\n },\n }),\n function templateElementCookedValidator(node: t.TemplateElement) {\n const raw = node.value.raw;\n\n let unterminatedCalled = false;\n\n const error = () => {\n // unreachable\n throw new Error(\"Internal @babel/types error.\");\n };\n const { str, firstInvalidLoc } = readStringContents(\n \"template\",\n raw,\n 0,\n 0,\n 0,\n {\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 );\n if (!unterminatedCalled) throw new Error(\"Invalid raw\");\n\n node.value.cooked = firstInvalidLoc ? null : str;\n },\n ),\n },\n tail: {\n default: false,\n },\n },\n});\n\ndefineType(\"TemplateLiteral\", {\n visitor: [\"quasis\", \"expressions\"],\n aliases: [\"Expression\", \"Literal\"],\n fields: {\n quasis: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TemplateElement\")),\n ),\n },\n expressions: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Expression\",\n // For TypeScript template literal types\n \"TSType\",\n ),\n ),\n function (node: t.TemplateLiteral, key, val) {\n if (node.quasis.length !== val.length + 1) {\n throw new TypeError(\n `Number of ${\n node.type\n } quasis should be exactly one more than the number of expressions.\\nExpected ${\n val.length + 1\n } quasis but got ${node.quasis.length}`,\n );\n }\n } as Validator,\n ),\n },\n },\n});\n\ndefineType(\"YieldExpression\", {\n builder: [\"argument\", \"delegate\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n delegate: {\n validate: chain(\n assertValueType(\"boolean\"),\n Object.assign(\n function (node: t.YieldExpression, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (val && !node.argument) {\n throw new TypeError(\n \"Property delegate of YieldExpression cannot be true if there is no argument\",\n );\n }\n } as Validator,\n { type: \"boolean\" },\n ),\n ),\n default: false,\n },\n argument: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\n// --- ES2017 ---\ndefineType(\"AwaitExpression\", {\n builder: [\"argument\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\n// --- ES2019 ---\ndefineType(\"Import\", {\n aliases: [\"Expression\"],\n});\n\n// --- ES2020 ---\ndefineType(\"BigIntLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"ExportNamespaceSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"OptionalMemberExpression\", {\n builder: [\"object\", \"property\", \"computed\", \"optional\"],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n property: {\n validate: (function () {\n const normal = assertNodeType(\"Identifier\");\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = Object.assign(\n function (node: t.OptionalMemberExpression, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } as Validator,\n // todo(ts): can be discriminated union by `computed` property\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\n ? assertValueType(\"boolean\")\n : chain(assertValueType(\"boolean\"), assertOptionalChainStart()),\n },\n },\n});\n\ndefineType(\"OptionalCallExpression\", {\n visitor: [\"callee\", \"arguments\", \"typeParameters\", \"typeArguments\"],\n builder: [\"callee\", \"arguments\", \"optional\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\"),\n },\n arguments: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Expression\",\n \"SpreadElement\",\n \"JSXNamespacedName\",\n \"ArgumentPlaceholder\",\n ),\n ),\n ),\n },\n optional: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertValueType(\"boolean\")\n : chain(assertValueType(\"boolean\"), assertOptionalChainStart()),\n },\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\"),\n optional: true,\n },\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterInstantiation\"),\n optional: true,\n },\n },\n});\n\n// --- ES2022 ---\ndefineType(\"ClassProperty\", {\n visitor: [\"key\", \"value\", \"typeAnnotation\", \"decorators\"],\n builder: [\n \"key\",\n \"value\",\n \"typeAnnotation\",\n \"decorators\",\n \"computed\",\n \"static\",\n ],\n aliases: [\"Property\"],\n fields: {\n ...classMethodOrPropertyCommon(),\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassAccessorProperty\", {\n visitor: [\"key\", \"value\", \"typeAnnotation\", \"decorators\"],\n builder: [\n \"key\",\n \"value\",\n \"typeAnnotation\",\n \"decorators\",\n \"computed\",\n \"static\",\n ],\n aliases: [\"Property\", \"Accessor\"],\n fields: {\n ...classMethodOrPropertyCommon(),\n key: {\n validate: chain(\n (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"PrivateName\",\n );\n const computed = assertNodeType(\"Expression\");\n\n return function (node: any, key: string, val: any) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n })(),\n assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"Expression\",\n \"PrivateName\",\n ),\n ),\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassPrivateProperty\", {\n visitor: [\"key\", \"value\", \"decorators\", \"typeAnnotation\"],\n builder: [\"key\", \"value\", \"decorators\", \"static\"],\n aliases: [\"Property\", \"Private\"],\n fields: {\n key: {\n validate: assertNodeType(\"PrivateName\"),\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n static: {\n validate: assertValueType(\"boolean\"),\n default: false,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassPrivateMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"static\"],\n visitor: [\n \"key\",\n \"params\",\n \"body\",\n \"decorators\",\n \"returnType\",\n \"typeParameters\",\n ],\n aliases: [\n \"Function\",\n \"Scopable\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Method\",\n \"Private\",\n ],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\"),\n default: \"method\",\n },\n key: {\n validate: assertNodeType(\"PrivateName\"),\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"PrivateName\", {\n visitor: [\"id\"],\n aliases: [\"Private\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"StaticBlock\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\", \"FunctionParent\"],\n});\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_is","require","_isValidIdentifier","_helperValidatorIdentifier","_helperStringParser","_index","_utils","defineType","defineAliasedType","fields","elements","validate","chain","assertValueType","assertEach","assertNodeOrValueType","default","process","env","BABEL_TYPES_8_BREAKING","undefined","visitor","aliases","operator","identifier","assertOneOf","ASSIGNMENT_OPERATORS","pattern","node","key","val","validator","is","left","assertNodeType","right","builder","BINARY_OPERATORS","expression","inOp","Object","assign","oneOfNodeTypes","value","directives","body","label","optional","callee","arguments","typeArguments","typeParameters","param","test","consequent","alternate","program","comments","each","tokens","type","init","update","functionCommon","params","generator","async","exports","functionTypeAnnotationCommon","returnType","functionDeclarationCommon","declare","id","predicate","parent","inherits","patternLikeCommon","typeAnnotation","decorators","name","isValidIdentifier","TypeError","match","exec","parentKey","nonComp","computed","imported","meta","isKeyword","isReservedWord","deprecatedAlias","Number","isFinite","error","Error","flags","invalid","LOGICAL_OPERATORS","object","property","normal","sourceFile","sourceType","interpreter","properties","kind","shorthand","argument","listKey","index","length","expressions","discriminant","cases","block","handler","finalizer","prefix","UNARY_OPERATORS","UPDATE_OPERATORS","declarations","without","definite","superClass","superTypeParameters","implements","mixins","abstract","source","exportKind","validateOptional","attributes","assertions","declaration","specifiers","sourced","sourceless","local","exported","lval","await","module","phase","importKind","options","classMethodOrPropertyCommon","accessibility","static","override","classMethodOrDeclareMethodCommon","access","tag","quasi","assertShape","raw","cooked","templateElementCookedValidator","unterminatedCalled","str","firstInvalidLoc","readStringContents","unterminated","strictNumericEscape","invalidEscapeSequence","numericSeparatorInEscapeSequence","unexpectedNumericSeparator","invalidDigit","invalidCodePoint","tail","quasis","delegate","assertOptionalChainStart","readonly","variance"],"sources":["../../src/definitions/core.ts"],"sourcesContent":["import is from \"../validators/is.ts\";\nimport isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport { isKeyword, isReservedWord } from \"@babel/helper-validator-identifier\";\nimport type * as t from \"../index.ts\";\nimport { readStringContents } from \"@babel/helper-string-parser\";\n\nimport {\n BINARY_OPERATORS,\n LOGICAL_OPERATORS,\n ASSIGNMENT_OPERATORS,\n UNARY_OPERATORS,\n UPDATE_OPERATORS,\n} from \"../constants/index.ts\";\n\nimport {\n defineAliasedType,\n assertShape,\n assertOptionalChainStart,\n assertValueType,\n assertNodeType,\n assertNodeOrValueType,\n assertEach,\n chain,\n assertOneOf,\n validateOptional,\n type Validator,\n} from \"./utils.ts\";\n\nconst defineType = defineAliasedType(\"Standardized\");\n\ndefineType(\"ArrayExpression\", {\n fields: {\n elements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeOrValueType(\"null\", \"Expression\", \"SpreadElement\"),\n ),\n ),\n default: !process.env.BABEL_TYPES_8_BREAKING ? [] : undefined,\n },\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"AssignmentExpression\", {\n fields: {\n operator: {\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return assertValueType(\"string\");\n }\n\n const identifier = assertOneOf(...ASSIGNMENT_OPERATORS);\n const pattern = assertOneOf(\"=\");\n\n return function (node: t.AssignmentExpression, key, val) {\n const validator = is(\"Pattern\", node.left) ? pattern : identifier;\n validator(node, key, val);\n };\n })(),\n },\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"LVal\", \"OptionalMemberExpression\")\n : assertNodeType(\n \"Identifier\",\n \"MemberExpression\",\n \"OptionalMemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"BinaryExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n fields: {\n operator: {\n validate: assertOneOf(...BINARY_OPERATORS),\n },\n left: {\n validate: (function () {\n const expression = assertNodeType(\"Expression\");\n const inOp = assertNodeType(\"Expression\", \"PrivateName\");\n\n const validator: Validator = Object.assign(\n function (node: t.BinaryExpression, key, val) {\n const validator = node.operator === \"in\" ? inOp : expression;\n validator(node, key, val);\n } as Validator,\n // todo(ts): can be discriminated union by `operator` property\n { oneOfNodeTypes: [\"Expression\", \"PrivateName\"] },\n );\n return validator;\n })(),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n});\n\ndefineType(\"InterpreterDirective\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"Directive\", {\n visitor: [\"value\"],\n fields: {\n value: {\n validate: assertNodeType(\"DirectiveLiteral\"),\n },\n },\n});\n\ndefineType(\"DirectiveLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"BlockStatement\", {\n builder: [\"body\", \"directives\"],\n visitor: [\"directives\", \"body\"],\n fields: {\n directives: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Directive\")),\n ),\n default: [],\n },\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\", \"Statement\"],\n});\n\ndefineType(\"BreakStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n});\n\ndefineType(\"CallExpression\", {\n visitor: [\"callee\", \"arguments\", \"typeParameters\", \"typeArguments\"],\n builder: [\"callee\", \"arguments\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\", \"Super\", \"V8IntrinsicIdentifier\"),\n },\n arguments: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Expression\",\n \"SpreadElement\",\n \"JSXNamespacedName\",\n \"ArgumentPlaceholder\",\n ),\n ),\n ),\n },\n ...(!process.env.BABEL_TYPES_8_BREAKING\n ? {\n optional: {\n validate: assertOneOf(true, false),\n optional: true,\n },\n }\n : {}),\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\"),\n optional: true,\n },\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterInstantiation\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"CatchClause\", {\n visitor: [\"param\", \"body\"],\n fields: {\n param: {\n validate: assertNodeType(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\"],\n});\n\ndefineType(\"ConditionalExpression\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n consequent: {\n validate: assertNodeType(\"Expression\"),\n },\n alternate: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Expression\", \"Conditional\"],\n});\n\ndefineType(\"ContinueStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n});\n\ndefineType(\"DebuggerStatement\", {\n aliases: [\"Statement\"],\n});\n\ndefineType(\"DoWhileStatement\", {\n visitor: [\"test\", \"body\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n});\n\ndefineType(\"EmptyStatement\", {\n aliases: [\"Statement\"],\n});\n\ndefineType(\"ExpressionStatement\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Statement\", \"ExpressionWrapper\"],\n});\n\ndefineType(\"File\", {\n builder: [\"program\", \"comments\", \"tokens\"],\n visitor: [\"program\"],\n fields: {\n program: {\n validate: assertNodeType(\"Program\"),\n },\n comments: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? Object.assign(() => {}, {\n each: { oneOfNodeTypes: [\"CommentBlock\", \"CommentLine\"] },\n })\n : assertEach(assertNodeType(\"CommentBlock\", \"CommentLine\")),\n optional: true,\n },\n tokens: {\n // todo(ts): add Token type\n validate: assertEach(Object.assign(() => {}, { type: \"any\" })),\n optional: true,\n },\n },\n});\n\ndefineType(\"ForInStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n aliases: [\n \"Scopable\",\n \"Statement\",\n \"For\",\n \"BlockParent\",\n \"Loop\",\n \"ForXStatement\",\n ],\n fields: {\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"VariableDeclaration\", \"LVal\")\n : assertNodeType(\n \"VariableDeclaration\",\n \"Identifier\",\n \"MemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"ForStatement\", {\n visitor: [\"init\", \"test\", \"update\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\"],\n fields: {\n init: {\n validate: assertNodeType(\"VariableDeclaration\", \"Expression\"),\n optional: true,\n },\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n update: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\nexport const functionCommon = () => ({\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Identifier\", \"Pattern\", \"RestElement\")),\n ),\n },\n generator: {\n default: false,\n },\n async: {\n default: false,\n },\n});\n\nexport const functionTypeAnnotationCommon = () => ({\n returnType: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\")\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n});\n\nexport const functionDeclarationCommon = () => ({\n ...functionCommon(),\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true, // May be null for `export default function`\n },\n});\n\ndefineType(\"FunctionDeclaration\", {\n builder: [\"id\", \"params\", \"body\", \"generator\", \"async\"],\n visitor: [\"id\", \"params\", \"body\", \"returnType\", \"typeParameters\"],\n fields: {\n ...functionDeclarationCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Statement\",\n \"Pureish\",\n \"Declaration\",\n ],\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) return () => {};\n\n const identifier = assertNodeType(\"Identifier\");\n\n return function (parent, key, node) {\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n })(),\n});\n\ndefineType(\"FunctionExpression\", {\n inherits: \"FunctionDeclaration\",\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Expression\",\n \"Pureish\",\n ],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n});\n\nexport const patternLikeCommon = () => ({\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n});\n\ndefineType(\"Identifier\", {\n builder: [\"name\"],\n visitor: [\"typeAnnotation\", \"decorators\" /* for legacy param decorators */],\n aliases: [\"Expression\", \"PatternLike\", \"LVal\", \"TSEntityName\"],\n fields: {\n ...patternLikeCommon(),\n name: {\n validate: chain(\n assertValueType(\"string\"),\n Object.assign(\n function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (!isValidIdentifier(val, false)) {\n throw new TypeError(`\"${val}\" is not a valid identifier name`);\n }\n } as Validator,\n { type: \"string\" },\n ),\n ),\n },\n },\n validate(parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const match = /\\.(\\w+)$/.exec(key);\n if (!match) return;\n\n const [, parentKey] = match;\n const nonComp = { computed: false };\n\n // We can't check if `parent.property === node`, because nodes are validated\n // before replacing them in the AST.\n if (parentKey === \"property\") {\n if (is(\"MemberExpression\", parent, nonComp)) return;\n if (is(\"OptionalMemberExpression\", parent, nonComp)) return;\n } else if (parentKey === \"key\") {\n if (is(\"Property\", parent, nonComp)) return;\n if (is(\"Method\", parent, nonComp)) return;\n } else if (parentKey === \"exported\") {\n if (is(\"ExportSpecifier\", parent)) return;\n } else if (parentKey === \"imported\") {\n if (is(\"ImportSpecifier\", parent, { imported: node })) return;\n } else if (parentKey === \"meta\") {\n if (is(\"MetaProperty\", parent, { meta: node })) return;\n }\n\n if (\n // Ideally we should call isStrictReservedWord if this node is a descendant\n // of a block in strict mode. Also, we should pass the inModule option so\n // we can disable \"await\" in module.\n (isKeyword(node.name) || isReservedWord(node.name, false)) &&\n // Even if \"this\" is a keyword, we are using the Identifier\n // node to represent it.\n node.name !== \"this\"\n ) {\n throw new TypeError(`\"${node.name}\" is not a valid identifier`);\n }\n },\n});\n\ndefineType(\"IfStatement\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n aliases: [\"Statement\", \"Conditional\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n consequent: {\n validate: assertNodeType(\"Statement\"),\n },\n alternate: {\n optional: true,\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"LabeledStatement\", {\n visitor: [\"label\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"StringLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"NumericLiteral\", {\n builder: [\"value\"],\n deprecatedAlias: \"NumberLiteral\",\n fields: {\n value: {\n validate: chain(\n assertValueType(\"number\"),\n Object.assign(\n function (node, key, val) {\n if (1 / val < 0 || !Number.isFinite(val)) {\n const error = new Error(\n \"NumericLiterals must be non-negative finite numbers. \" +\n `You can use t.valueToNode(${val}) instead.`,\n );\n if (process.env.BABEL_8_BREAKING) {\n // TODO(@nicolo-ribaudo) Fix regenerator to not pass negative\n // numbers here.\n if (!IS_STANDALONE) {\n if (!new Error().stack.includes(\"regenerator\")) {\n throw error;\n }\n }\n } else {\n // TODO: Enable this warning once regenerator is fixed.\n // https://github.com/facebook/regenerator/pull/680\n // console.warn(error);\n }\n }\n } satisfies Validator,\n { type: \"number\" },\n ),\n ),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"NullLiteral\", {\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"BooleanLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"boolean\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"RegExpLiteral\", {\n builder: [\"pattern\", \"flags\"],\n deprecatedAlias: \"RegexLiteral\",\n aliases: [\"Expression\", \"Pureish\", \"Literal\"],\n fields: {\n pattern: {\n validate: assertValueType(\"string\"),\n },\n flags: {\n validate: chain(\n assertValueType(\"string\"),\n Object.assign(\n function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const invalid = /[^gimsuy]/.exec(val);\n if (invalid) {\n throw new TypeError(`\"${invalid[0]}\" is not a valid RegExp flag`);\n }\n } as Validator,\n { type: \"string\" },\n ),\n ),\n default: \"\",\n },\n },\n});\n\ndefineType(\"LogicalExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n fields: {\n operator: {\n validate: assertOneOf(...LOGICAL_OPERATORS),\n },\n left: {\n validate: assertNodeType(\"Expression\"),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"MemberExpression\", {\n builder: [\n \"object\",\n \"property\",\n \"computed\",\n ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"optional\"] : []),\n ],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\", \"LVal\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\", \"Super\"),\n },\n property: {\n validate: (function () {\n const normal = assertNodeType(\"Identifier\", \"PrivateName\");\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = function (\n node: t.MemberExpression,\n key,\n val,\n ) {\n const validator: Validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n // @ts-expect-error todo(ts): can be discriminated union by `computed` property\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 ? {\n optional: {\n validate: assertOneOf(true, false),\n optional: true,\n },\n }\n : {}),\n },\n});\n\ndefineType(\"NewExpression\", { inherits: \"CallExpression\" });\n\ndefineType(\"Program\", {\n // Note: We explicitly leave 'interpreter' out here because it is\n // conceptually comment-like, and Babel does not traverse comments either.\n visitor: [\"directives\", \"body\"],\n builder: [\"body\", \"directives\", \"sourceType\", \"interpreter\"],\n fields: {\n sourceFile: {\n validate: assertValueType(\"string\"),\n },\n sourceType: {\n validate: assertOneOf(\"script\", \"module\"),\n default: \"script\",\n },\n interpreter: {\n validate: assertNodeType(\"InterpreterDirective\"),\n default: null,\n optional: true,\n },\n directives: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Directive\")),\n ),\n default: [],\n },\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\"],\n});\n\ndefineType(\"ObjectExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"ObjectMethod\", \"ObjectProperty\", \"SpreadElement\"),\n ),\n ),\n },\n },\n});\n\ndefineType(\"ObjectMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"computed\", \"generator\", \"async\"],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\"),\n ...(!process.env.BABEL_TYPES_8_BREAKING ? { default: \"method\" } : {}),\n },\n computed: {\n default: false,\n },\n key: {\n validate: (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = function (node: t.ObjectMethod, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n // @ts-expect-error todo(ts): can be discriminated union by `computed` property\n validator.oneOfNodeTypes = [\n \"Expression\",\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n ];\n return validator;\n })(),\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n visitor: [\n \"key\",\n \"params\",\n \"body\",\n \"decorators\",\n \"returnType\",\n \"typeParameters\",\n ],\n aliases: [\n \"UserWhitespacable\",\n \"Function\",\n \"Scopable\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Method\",\n \"ObjectMember\",\n ],\n});\n\ndefineType(\"ObjectProperty\", {\n builder: [\n \"key\",\n \"value\",\n \"computed\",\n \"shorthand\",\n ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"decorators\"] : []),\n ],\n fields: {\n computed: {\n default: false,\n },\n key: {\n validate: (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"DecimalLiteral\",\n \"PrivateName\",\n );\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = Object.assign(\n function (node: t.ObjectProperty, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } as Validator,\n {\n // todo(ts): can be discriminated union by `computed` property\n oneOfNodeTypes: [\n \"Expression\",\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"DecimalLiteral\",\n \"PrivateName\",\n ],\n },\n );\n return validator;\n })(),\n },\n value: {\n // Value may be PatternLike if this is an AssignmentProperty\n // https://github.com/babel/babylon/issues/434\n validate: assertNodeType(\"Expression\", \"PatternLike\"),\n },\n shorthand: {\n validate: chain(\n assertValueType(\"boolean\"),\n Object.assign(\n function (node: t.ObjectProperty, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (val && node.computed) {\n throw new TypeError(\n \"Property shorthand of ObjectProperty cannot be true if computed is true\",\n );\n }\n } as Validator,\n { type: \"boolean\" },\n ),\n function (node: t.ObjectProperty, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (val && !is(\"Identifier\", node.key)) {\n throw new TypeError(\n \"Property shorthand of ObjectProperty cannot be true if key is not an Identifier\",\n );\n }\n } as Validator,\n ),\n default: false,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n },\n visitor: [\"key\", \"value\", \"decorators\"],\n aliases: [\"UserWhitespacable\", \"Property\", \"ObjectMember\"],\n validate: (function () {\n const pattern = assertNodeType(\n \"Identifier\",\n \"Pattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSNonNullExpression\",\n \"TSTypeAssertion\",\n );\n const expression = assertNodeType(\"Expression\");\n\n return function (parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const validator = is(\"ObjectPattern\", parent) ? pattern : expression;\n validator(node, \"value\", node.value);\n };\n })(),\n});\n\ndefineType(\"RestElement\", {\n visitor: [\"argument\", \"typeAnnotation\"],\n builder: [\"argument\"],\n aliases: [\"LVal\", \"PatternLike\"],\n deprecatedAlias: \"RestProperty\",\n fields: {\n ...patternLikeCommon(),\n argument: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"LVal\")\n : assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"MemberExpression\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n },\n validate(parent: t.ArrayPattern | t.ObjectPattern, key) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const match = /(\\w+)\\[(\\d+)\\]/.exec(key);\n if (!match) throw new Error(\"Internal Babel error: malformed key.\");\n\n const [, listKey, index] = match as unknown as [\n string,\n keyof typeof parent,\n string,\n ];\n if ((parent[listKey] as t.Node[]).length > +index + 1) {\n throw new TypeError(`RestElement must be last element of ${listKey}`);\n }\n },\n});\n\ndefineType(\"ReturnStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"SequenceExpression\", {\n visitor: [\"expressions\"],\n fields: {\n expressions: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Expression\")),\n ),\n },\n },\n aliases: [\"Expression\"],\n});\n\ndefineType(\"ParenthesizedExpression\", {\n visitor: [\"expression\"],\n aliases: [\"Expression\", \"ExpressionWrapper\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"SwitchCase\", {\n visitor: [\"test\", \"consequent\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n consequent: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n});\n\ndefineType(\"SwitchStatement\", {\n visitor: [\"discriminant\", \"cases\"],\n aliases: [\"Statement\", \"BlockParent\", \"Scopable\"],\n fields: {\n discriminant: {\n validate: assertNodeType(\"Expression\"),\n },\n cases: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"SwitchCase\")),\n ),\n },\n },\n});\n\ndefineType(\"ThisExpression\", {\n aliases: [\"Expression\"],\n});\n\ndefineType(\"ThrowStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"TryStatement\", {\n visitor: [\"block\", \"handler\", \"finalizer\"],\n aliases: [\"Statement\"],\n fields: {\n block: {\n validate: chain(\n assertNodeType(\"BlockStatement\"),\n Object.assign(\n function (node: t.TryStatement) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (!node.handler && !node.finalizer) {\n throw new TypeError(\n \"TryStatement expects either a handler or finalizer, or both\",\n );\n }\n } as Validator,\n {\n oneOfNodeTypes: [\"BlockStatement\"],\n },\n ),\n ),\n },\n handler: {\n optional: true,\n validate: assertNodeType(\"CatchClause\"),\n },\n finalizer: {\n optional: true,\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"UnaryExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: true,\n },\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n operator: {\n validate: assertOneOf(...UNARY_OPERATORS),\n },\n },\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\", \"Expression\"],\n});\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\n ? assertNodeType(\"Expression\")\n : assertNodeType(\"Identifier\", \"MemberExpression\"),\n },\n operator: {\n validate: assertOneOf(...UPDATE_OPERATORS),\n },\n },\n visitor: [\"argument\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"VariableDeclaration\", {\n builder: [\"kind\", \"declarations\"],\n visitor: [\"declarations\"],\n aliases: [\"Statement\", \"Declaration\"],\n fields: {\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n kind: {\n validate: assertOneOf(\n \"var\",\n \"let\",\n \"const\",\n // https://github.com/tc39/proposal-explicit-resource-management\n \"using\",\n // https://github.com/tc39/proposal-async-explicit-resource-management\n \"await using\",\n ),\n },\n declarations: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"VariableDeclarator\")),\n ),\n },\n },\n validate(parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (!is(\"ForXStatement\", parent, { left: node })) return;\n if (node.declarations.length !== 1) {\n throw new TypeError(\n `Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`,\n );\n }\n },\n});\n\ndefineType(\"VariableDeclarator\", {\n visitor: [\"id\", \"init\"],\n fields: {\n id: {\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return assertNodeType(\"LVal\");\n }\n\n const normal = assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n );\n const without = assertNodeType(\"Identifier\");\n\n return function (node: t.VariableDeclarator, key, val) {\n const validator = node.init ? normal : without;\n validator(node, key, val);\n };\n })(),\n },\n definite: {\n optional: true,\n validate: assertValueType(\"boolean\"),\n },\n init: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"WhileStatement\", {\n visitor: [\"test\", \"body\"],\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"WithStatement\", {\n visitor: [\"object\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\n// --- ES2015 ---\ndefineType(\"AssignmentPattern\", {\n visitor: [\"left\", \"right\", \"decorators\" /* for legacy param decorators */],\n builder: [\"left\", \"right\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n left: {\n validate: assertNodeType(\n \"Identifier\",\n \"ObjectPattern\",\n \"ArrayPattern\",\n \"MemberExpression\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n // For TypeScript\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"ArrayPattern\", {\n visitor: [\"elements\", \"typeAnnotation\"],\n builder: [\"elements\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n elements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeOrValueType(\"null\", \"PatternLike\", \"LVal\")),\n ),\n },\n },\n});\n\ndefineType(\"ArrowFunctionExpression\", {\n builder: [\"params\", \"body\", \"async\"],\n visitor: [\"params\", \"body\", \"returnType\", \"typeParameters\"],\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Expression\",\n \"Pureish\",\n ],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n expression: {\n // https://github.com/babel/babylon/issues/505\n validate: assertValueType(\"boolean\"),\n },\n body: {\n validate: assertNodeType(\"BlockStatement\", \"Expression\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassBody\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"ClassMethod\",\n \"ClassPrivateMethod\",\n \"ClassProperty\",\n \"ClassPrivateProperty\",\n \"ClassAccessorProperty\",\n \"TSDeclareMethod\",\n \"TSIndexSignature\",\n \"StaticBlock\",\n ),\n ),\n ),\n },\n },\n});\n\ndefineType(\"ClassExpression\", {\n builder: [\"id\", \"superClass\", \"body\", \"decorators\"],\n visitor: [\n \"id\",\n \"body\",\n \"superClass\",\n \"mixins\",\n \"typeParameters\",\n \"superTypeParameters\",\n \"implements\",\n \"decorators\",\n ],\n aliases: [\"Scopable\", \"Class\", \"Expression\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n )\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"ClassBody\"),\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n superTypeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n implements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"TSExpressionWithTypeArguments\", \"ClassImplements\"),\n ),\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassDeclaration\", {\n inherits: \"ClassExpression\",\n aliases: [\"Scopable\", \"Class\", \"Statement\", \"Declaration\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n // The id may be omitted if this is the child of an\n // ExportDefaultDeclaration.\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n )\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"ClassBody\"),\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n superTypeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n implements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"TSExpressionWithTypeArguments\", \"ClassImplements\"),\n ),\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n abstract: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n },\n validate: (function () {\n const identifier = assertNodeType(\"Identifier\");\n\n return function (parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n })(),\n});\n\ndefineType(\"ExportAllDeclaration\", {\n builder: [\"source\"],\n visitor: [\"source\", \"attributes\", \"assertions\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n attributes: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n // TODO(Babel 8): Deprecated\n assertions: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n },\n});\n\ndefineType(\"ExportDefaultDeclaration\", {\n visitor: [\"declaration\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n declaration: {\n validate: assertNodeType(\n \"TSDeclareFunction\",\n \"FunctionDeclaration\",\n \"ClassDeclaration\",\n \"Expression\",\n ),\n },\n exportKind: validateOptional(assertOneOf(\"value\")),\n },\n});\n\ndefineType(\"ExportNamedDeclaration\", {\n builder: [\"declaration\", \"specifiers\", \"source\"],\n visitor: [\"declaration\", \"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n declaration: {\n optional: true,\n validate: chain(\n assertNodeType(\"Declaration\"),\n Object.assign(\n function (node: t.ExportNamedDeclaration, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (val && node.specifiers.length) {\n throw new TypeError(\n \"Only declaration or specifiers is allowed on ExportNamedDeclaration\",\n );\n }\n } as Validator,\n { oneOfNodeTypes: [\"Declaration\"] },\n ),\n function (node: t.ExportNamedDeclaration, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (val && node.source) {\n throw new TypeError(\"Cannot export a declaration from a source\");\n }\n },\n ),\n },\n attributes: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n // TODO(Babel 8): Deprecated\n assertions: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n specifiers: {\n default: [],\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n (function () {\n const sourced = assertNodeType(\n \"ExportSpecifier\",\n \"ExportDefaultSpecifier\",\n \"ExportNamespaceSpecifier\",\n );\n const sourceless = assertNodeType(\"ExportSpecifier\");\n\n if (!process.env.BABEL_TYPES_8_BREAKING) return sourced;\n\n return function (node: t.ExportNamedDeclaration, key, val) {\n const validator = node.source ? sourced : sourceless;\n validator(node, key, val);\n } as Validator;\n })(),\n ),\n ),\n },\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n optional: true,\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n },\n});\n\ndefineType(\"ExportSpecifier\", {\n visitor: [\"local\", \"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n exported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n exportKind: {\n // And TypeScript's \"export { type foo } from\"\n validate: assertOneOf(\"type\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ForOfStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n builder: [\"left\", \"right\", \"body\", \"await\"],\n aliases: [\n \"Scopable\",\n \"Statement\",\n \"For\",\n \"BlockParent\",\n \"Loop\",\n \"ForXStatement\",\n ],\n fields: {\n left: {\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return assertNodeType(\"VariableDeclaration\", \"LVal\");\n }\n\n const declaration = assertNodeType(\"VariableDeclaration\");\n const lval = assertNodeType(\n \"Identifier\",\n \"MemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n );\n\n return function (node, key, val) {\n if (is(\"VariableDeclaration\", val)) {\n declaration(node, key, val);\n } else {\n lval(node, key, val);\n }\n };\n })(),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n await: {\n default: false,\n },\n },\n});\n\ndefineType(\"ImportDeclaration\", {\n builder: [\"specifiers\", \"source\"],\n visitor: [\"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\"],\n fields: {\n attributes: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n // TODO(Babel 8): Deprecated\n assertions: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n module: {\n optional: true,\n validate: assertValueType(\"boolean\"),\n },\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\"),\n },\n specifiers: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"ImportSpecifier\",\n \"ImportDefaultSpecifier\",\n \"ImportNamespaceSpecifier\",\n ),\n ),\n ),\n },\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n importKind: {\n // Handle TypeScript/Flowtype's extension \"import type foo from\"\n // TypeScript doesn't support typeof\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ImportDefaultSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"ImportNamespaceSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"ImportSpecifier\", {\n visitor: [\"local\", \"imported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n imported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n importKind: {\n // Handle Flowtype's extension \"import {typeof foo} from\"\n // And TypeScript's \"import { type foo } from\"\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ImportExpression\", {\n visitor: [\"source\", \"options\"],\n aliases: [\"Expression\"],\n fields: {\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\"),\n },\n source: {\n validate: assertNodeType(\"Expression\"),\n },\n options: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"MetaProperty\", {\n visitor: [\"meta\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n meta: {\n validate: chain(\n assertNodeType(\"Identifier\"),\n Object.assign(\n function (node: t.MetaProperty, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n let property;\n switch (val.name) {\n case \"function\":\n property = \"sent\";\n break;\n case \"new\":\n property = \"target\";\n break;\n case \"import\":\n property = \"meta\";\n break;\n }\n if (!is(\"Identifier\", node.property, { name: property })) {\n throw new TypeError(\"Unrecognised MetaProperty\");\n }\n } as Validator,\n { oneOfNodeTypes: [\"Identifier\"] },\n ),\n ),\n },\n property: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\nexport const classMethodOrPropertyCommon = () => ({\n abstract: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true,\n },\n static: {\n default: false,\n },\n override: {\n default: false,\n },\n computed: {\n default: false,\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n key: {\n validate: chain(\n (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const computed = assertNodeType(\"Expression\");\n\n return function (node: any, key: string, val: any) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n })(),\n assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"Expression\",\n ),\n ),\n },\n});\n\nexport const classMethodOrDeclareMethodCommon = () => ({\n ...functionCommon(),\n ...classMethodOrPropertyCommon(),\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Identifier\",\n \"Pattern\",\n \"RestElement\",\n \"TSParameterProperty\",\n ),\n ),\n ),\n },\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\", \"constructor\"),\n default: \"method\",\n },\n access: {\n validate: chain(\n assertValueType(\"string\"),\n assertOneOf(\"public\", \"private\", \"protected\"),\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n});\n\ndefineType(\"ClassMethod\", {\n aliases: [\"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\"],\n builder: [\n \"kind\",\n \"key\",\n \"params\",\n \"body\",\n \"computed\",\n \"static\",\n \"generator\",\n \"async\",\n ],\n visitor: [\n \"key\",\n \"params\",\n \"body\",\n \"decorators\",\n \"returnType\",\n \"typeParameters\",\n ],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"ObjectPattern\", {\n visitor: [\n \"properties\",\n \"typeAnnotation\",\n \"decorators\" /* for legacy param decorators */,\n ],\n builder: [\"properties\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n properties: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"RestElement\", \"ObjectProperty\")),\n ),\n },\n },\n});\n\ndefineType(\"SpreadElement\", {\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\"],\n deprecatedAlias: \"SpreadProperty\",\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\n \"Super\",\n process.env.BABEL_8_BREAKING\n ? undefined\n : {\n aliases: [\"Expression\"],\n },\n);\n\ndefineType(\"TaggedTemplateExpression\", {\n visitor: [\"tag\", \"quasi\", \"typeParameters\"],\n builder: [\"tag\", \"quasi\"],\n aliases: [\"Expression\"],\n fields: {\n tag: {\n validate: assertNodeType(\"Expression\"),\n },\n quasi: {\n validate: assertNodeType(\"TemplateLiteral\"),\n },\n typeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"TemplateElement\", {\n builder: [\"value\", \"tail\"],\n fields: {\n value: {\n validate: chain(\n assertShape({\n raw: {\n validate: assertValueType(\"string\"),\n },\n cooked: {\n validate: assertValueType(\"string\"),\n optional: true,\n },\n }),\n function templateElementCookedValidator(node: t.TemplateElement) {\n const raw = node.value.raw;\n\n let unterminatedCalled = false;\n\n const error = () => {\n // unreachable\n throw new Error(\"Internal @babel/types error.\");\n };\n const { str, firstInvalidLoc } = readStringContents(\n \"template\",\n raw,\n 0,\n 0,\n 0,\n {\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 );\n if (!unterminatedCalled) throw new Error(\"Invalid raw\");\n\n node.value.cooked = firstInvalidLoc ? null : str;\n },\n ),\n },\n tail: {\n default: false,\n },\n },\n});\n\ndefineType(\"TemplateLiteral\", {\n visitor: [\"quasis\", \"expressions\"],\n aliases: [\"Expression\", \"Literal\"],\n fields: {\n quasis: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TemplateElement\")),\n ),\n },\n expressions: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Expression\",\n // For TypeScript template literal types\n \"TSType\",\n ),\n ),\n function (node: t.TemplateLiteral, key, val) {\n if (node.quasis.length !== val.length + 1) {\n throw new TypeError(\n `Number of ${\n node.type\n } quasis should be exactly one more than the number of expressions.\\nExpected ${\n val.length + 1\n } quasis but got ${node.quasis.length}`,\n );\n }\n } as Validator,\n ),\n },\n },\n});\n\ndefineType(\"YieldExpression\", {\n builder: [\"argument\", \"delegate\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n delegate: {\n validate: chain(\n assertValueType(\"boolean\"),\n Object.assign(\n function (node: t.YieldExpression, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (val && !node.argument) {\n throw new TypeError(\n \"Property delegate of YieldExpression cannot be true if there is no argument\",\n );\n }\n } as Validator,\n { type: \"boolean\" },\n ),\n ),\n default: false,\n },\n argument: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\n// --- ES2017 ---\ndefineType(\"AwaitExpression\", {\n builder: [\"argument\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\n// --- ES2019 ---\ndefineType(\"Import\", {\n aliases: [\"Expression\"],\n});\n\n// --- ES2020 ---\ndefineType(\"BigIntLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"ExportNamespaceSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"OptionalMemberExpression\", {\n builder: [\"object\", \"property\", \"computed\", \"optional\"],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n property: {\n validate: (function () {\n const normal = assertNodeType(\"Identifier\");\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = Object.assign(\n function (node: t.OptionalMemberExpression, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } as Validator,\n // todo(ts): can be discriminated union by `computed` property\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\n ? assertValueType(\"boolean\")\n : chain(assertValueType(\"boolean\"), assertOptionalChainStart()),\n },\n },\n});\n\ndefineType(\"OptionalCallExpression\", {\n visitor: [\"callee\", \"arguments\", \"typeParameters\", \"typeArguments\"],\n builder: [\"callee\", \"arguments\", \"optional\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\"),\n },\n arguments: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Expression\",\n \"SpreadElement\",\n \"JSXNamespacedName\",\n \"ArgumentPlaceholder\",\n ),\n ),\n ),\n },\n optional: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertValueType(\"boolean\")\n : chain(assertValueType(\"boolean\"), assertOptionalChainStart()),\n },\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\"),\n optional: true,\n },\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterInstantiation\"),\n optional: true,\n },\n },\n});\n\n// --- ES2022 ---\ndefineType(\"ClassProperty\", {\n visitor: [\"key\", \"value\", \"typeAnnotation\", \"decorators\"],\n builder: [\n \"key\",\n \"value\",\n \"typeAnnotation\",\n \"decorators\",\n \"computed\",\n \"static\",\n ],\n aliases: [\"Property\"],\n fields: {\n ...classMethodOrPropertyCommon(),\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassAccessorProperty\", {\n visitor: [\"key\", \"value\", \"typeAnnotation\", \"decorators\"],\n builder: [\n \"key\",\n \"value\",\n \"typeAnnotation\",\n \"decorators\",\n \"computed\",\n \"static\",\n ],\n aliases: [\"Property\", \"Accessor\"],\n fields: {\n ...classMethodOrPropertyCommon(),\n key: {\n validate: chain(\n (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"PrivateName\",\n );\n const computed = assertNodeType(\"Expression\");\n\n return function (node: any, key: string, val: any) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n })(),\n assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"Expression\",\n \"PrivateName\",\n ),\n ),\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassPrivateProperty\", {\n visitor: [\"key\", \"value\", \"decorators\", \"typeAnnotation\"],\n builder: [\"key\", \"value\", \"decorators\", \"static\"],\n aliases: [\"Property\", \"Private\"],\n fields: {\n key: {\n validate: assertNodeType(\"PrivateName\"),\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n static: {\n validate: assertValueType(\"boolean\"),\n default: false,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassPrivateMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"static\"],\n visitor: [\n \"key\",\n \"params\",\n \"body\",\n \"decorators\",\n \"returnType\",\n \"typeParameters\",\n ],\n aliases: [\n \"Function\",\n \"Scopable\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Method\",\n \"Private\",\n ],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\"),\n default: \"method\",\n },\n key: {\n validate: assertNodeType(\"PrivateName\"),\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"PrivateName\", {\n visitor: [\"id\"],\n aliases: [\"Private\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"StaticBlock\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\", \"FunctionParent\"],\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/definitions/deprecated-aliases.js b/node_modules/@babel/types/lib/definitions/deprecated-aliases.js index 6c04ed61..03a37517 100644 --- a/node_modules/@babel/types/lib/definitions/deprecated-aliases.js +++ b/node_modules/@babel/types/lib/definitions/deprecated-aliases.js @@ -4,9 +4,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.DEPRECATED_ALIASES = void 0; -const DEPRECATED_ALIASES = { +const DEPRECATED_ALIASES = exports.DEPRECATED_ALIASES = { ModuleDeclaration: "ImportOrExportDeclaration" }; -exports.DEPRECATED_ALIASES = DEPRECATED_ALIASES; //# sourceMappingURL=deprecated-aliases.js.map diff --git a/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map b/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map index 285e1d2b..0a735dc6 100644 --- a/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map +++ b/node_modules/@babel/types/lib/definitions/deprecated-aliases.js.map @@ -1 +1 @@ -{"version":3,"names":["DEPRECATED_ALIASES","ModuleDeclaration","exports"],"sources":["../../src/definitions/deprecated-aliases.ts"],"sourcesContent":["export const DEPRECATED_ALIASES = {\n ModuleDeclaration: \"ImportOrExportDeclaration\",\n};\n"],"mappings":";;;;;;AAAO,MAAMA,kBAAkB,GAAG;EAChCC,iBAAiB,EAAE;AACrB,CAAC;AAACC,OAAA,CAAAF,kBAAA,GAAAA,kBAAA"}
\ No newline at end of file +{"version":3,"names":["DEPRECATED_ALIASES","exports","ModuleDeclaration"],"sources":["../../src/definitions/deprecated-aliases.ts"],"sourcesContent":["export const DEPRECATED_ALIASES = {\n ModuleDeclaration: \"ImportOrExportDeclaration\",\n};\n"],"mappings":";;;;;;AAAO,MAAMA,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAG;EAChCE,iBAAiB,EAAE;AACrB,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/definitions/index.js b/node_modules/@babel/types/lib/definitions/index.js index da75ae9b..1f9b95ca 100644 --- a/node_modules/@babel/types/lib/definitions/index.js +++ b/node_modules/@babel/types/lib/definitions/index.js @@ -91,7 +91,6 @@ _toFastProperties(_utils.BUILDER_KEYS); _toFastProperties(_utils.DEPRECATED_KEYS); _toFastProperties(_placeholders.PLACEHOLDERS_ALIAS); _toFastProperties(_placeholders.PLACEHOLDERS_FLIPPED_ALIAS); -const TYPES = [].concat(Object.keys(_utils.VISITOR_KEYS), Object.keys(_utils.FLIPPED_ALIAS_KEYS), Object.keys(_utils.DEPRECATED_KEYS)); -exports.TYPES = TYPES; +const TYPES = exports.TYPES = [].concat(Object.keys(_utils.VISITOR_KEYS), Object.keys(_utils.FLIPPED_ALIAS_KEYS), Object.keys(_utils.DEPRECATED_KEYS)); //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/types/lib/definitions/index.js.map b/node_modules/@babel/types/lib/definitions/index.js.map index e4a179e6..86baab3f 100644 --- a/node_modules/@babel/types/lib/definitions/index.js.map +++ b/node_modules/@babel/types/lib/definitions/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_toFastProperties","require","_utils","_placeholders","_deprecatedAliases","Object","keys","DEPRECATED_ALIASES","forEach","deprecatedAlias","FLIPPED_ALIAS_KEYS","toFastProperties","VISITOR_KEYS","ALIAS_KEYS","NODE_FIELDS","BUILDER_KEYS","DEPRECATED_KEYS","PLACEHOLDERS_ALIAS","PLACEHOLDERS_FLIPPED_ALIAS","TYPES","concat","exports"],"sources":["../../src/definitions/index.ts"],"sourcesContent":["import toFastProperties from \"to-fast-properties\";\nimport \"./core.ts\";\nimport \"./flow.ts\";\nimport \"./jsx.ts\";\nimport \"./misc.ts\";\nimport \"./experimental.ts\";\nimport \"./typescript.ts\";\nimport {\n VISITOR_KEYS,\n ALIAS_KEYS,\n FLIPPED_ALIAS_KEYS,\n NODE_FIELDS,\n BUILDER_KEYS,\n DEPRECATED_KEYS,\n NODE_PARENT_VALIDATIONS,\n} from \"./utils.ts\";\nimport {\n PLACEHOLDERS,\n PLACEHOLDERS_ALIAS,\n PLACEHOLDERS_FLIPPED_ALIAS,\n} from \"./placeholders.ts\";\nimport { DEPRECATED_ALIASES } from \"./deprecated-aliases.ts\";\n\n(\n Object.keys(DEPRECATED_ALIASES) as (keyof typeof DEPRECATED_ALIASES)[]\n).forEach(deprecatedAlias => {\n FLIPPED_ALIAS_KEYS[deprecatedAlias] =\n FLIPPED_ALIAS_KEYS[DEPRECATED_ALIASES[deprecatedAlias]];\n});\n\n// We do this here, because at this point the visitor keys should be ready and setup\ntoFastProperties(VISITOR_KEYS);\ntoFastProperties(ALIAS_KEYS);\ntoFastProperties(FLIPPED_ALIAS_KEYS);\ntoFastProperties(NODE_FIELDS);\ntoFastProperties(BUILDER_KEYS);\ntoFastProperties(DEPRECATED_KEYS);\n\ntoFastProperties(PLACEHOLDERS_ALIAS);\ntoFastProperties(PLACEHOLDERS_FLIPPED_ALIAS);\n\nconst TYPES: Array<string> = [].concat(\n Object.keys(VISITOR_KEYS),\n Object.keys(FLIPPED_ALIAS_KEYS),\n Object.keys(DEPRECATED_KEYS),\n);\n\nexport {\n VISITOR_KEYS,\n ALIAS_KEYS,\n FLIPPED_ALIAS_KEYS,\n NODE_FIELDS,\n BUILDER_KEYS,\n DEPRECATED_ALIASES,\n DEPRECATED_KEYS,\n NODE_PARENT_VALIDATIONS,\n PLACEHOLDERS,\n PLACEHOLDERS_ALIAS,\n PLACEHOLDERS_FLIPPED_ALIAS,\n TYPES,\n};\n\nexport type { FieldOptions } from \"./utils.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AASA,IAAAE,aAAA,GAAAF,OAAA;AAKA,IAAAG,kBAAA,GAAAH,OAAA;AAGEI,MAAM,CAACC,IAAI,CAACC,qCAAkB,CAAC,CAC/BC,OAAO,CAACC,eAAe,IAAI;EAC3BC,yBAAkB,CAACD,eAAe,CAAC,GACjCC,yBAAkB,CAACH,qCAAkB,CAACE,eAAe,CAAC,CAAC;AAC3D,CAAC,CAAC;AAGFE,iBAAgB,CAACC,mBAAY,CAAC;AAC9BD,iBAAgB,CAACE,iBAAU,CAAC;AAC5BF,iBAAgB,CAACD,yBAAkB,CAAC;AACpCC,iBAAgB,CAACG,kBAAW,CAAC;AAC7BH,iBAAgB,CAACI,mBAAY,CAAC;AAC9BJ,iBAAgB,CAACK,sBAAe,CAAC;AAEjCL,iBAAgB,CAACM,gCAAkB,CAAC;AACpCN,iBAAgB,CAACO,wCAA0B,CAAC;AAE5C,MAAMC,KAAoB,GAAG,EAAE,CAACC,MAAM,CACpCf,MAAM,CAACC,IAAI,CAACM,mBAAY,CAAC,EACzBP,MAAM,CAACC,IAAI,CAACI,yBAAkB,CAAC,EAC/BL,MAAM,CAACC,IAAI,CAACU,sBAAe,CAC7B,CAAC;AAACK,OAAA,CAAAF,KAAA,GAAAA,KAAA"}
\ No newline at end of file +{"version":3,"names":["_toFastProperties","require","_utils","_placeholders","_deprecatedAliases","Object","keys","DEPRECATED_ALIASES","forEach","deprecatedAlias","FLIPPED_ALIAS_KEYS","toFastProperties","VISITOR_KEYS","ALIAS_KEYS","NODE_FIELDS","BUILDER_KEYS","DEPRECATED_KEYS","PLACEHOLDERS_ALIAS","PLACEHOLDERS_FLIPPED_ALIAS","TYPES","exports","concat"],"sources":["../../src/definitions/index.ts"],"sourcesContent":["import toFastProperties from \"to-fast-properties\";\nimport \"./core.ts\";\nimport \"./flow.ts\";\nimport \"./jsx.ts\";\nimport \"./misc.ts\";\nimport \"./experimental.ts\";\nimport \"./typescript.ts\";\nimport {\n VISITOR_KEYS,\n ALIAS_KEYS,\n FLIPPED_ALIAS_KEYS,\n NODE_FIELDS,\n BUILDER_KEYS,\n DEPRECATED_KEYS,\n NODE_PARENT_VALIDATIONS,\n} from \"./utils.ts\";\nimport {\n PLACEHOLDERS,\n PLACEHOLDERS_ALIAS,\n PLACEHOLDERS_FLIPPED_ALIAS,\n} from \"./placeholders.ts\";\nimport { DEPRECATED_ALIASES } from \"./deprecated-aliases.ts\";\n\n(\n Object.keys(DEPRECATED_ALIASES) as (keyof typeof DEPRECATED_ALIASES)[]\n).forEach(deprecatedAlias => {\n FLIPPED_ALIAS_KEYS[deprecatedAlias] =\n FLIPPED_ALIAS_KEYS[DEPRECATED_ALIASES[deprecatedAlias]];\n});\n\n// We do this here, because at this point the visitor keys should be ready and setup\ntoFastProperties(VISITOR_KEYS);\ntoFastProperties(ALIAS_KEYS);\ntoFastProperties(FLIPPED_ALIAS_KEYS);\ntoFastProperties(NODE_FIELDS);\ntoFastProperties(BUILDER_KEYS);\ntoFastProperties(DEPRECATED_KEYS);\n\ntoFastProperties(PLACEHOLDERS_ALIAS);\ntoFastProperties(PLACEHOLDERS_FLIPPED_ALIAS);\n\nconst TYPES: Array<string> = [].concat(\n Object.keys(VISITOR_KEYS),\n Object.keys(FLIPPED_ALIAS_KEYS),\n Object.keys(DEPRECATED_KEYS),\n);\n\nexport {\n VISITOR_KEYS,\n ALIAS_KEYS,\n FLIPPED_ALIAS_KEYS,\n NODE_FIELDS,\n BUILDER_KEYS,\n DEPRECATED_ALIASES,\n DEPRECATED_KEYS,\n NODE_PARENT_VALIDATIONS,\n PLACEHOLDERS,\n PLACEHOLDERS_ALIAS,\n PLACEHOLDERS_FLIPPED_ALIAS,\n TYPES,\n};\n\nexport type { FieldOptions } from \"./utils.ts\";\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACAA,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AASA,IAAAE,aAAA,GAAAF,OAAA;AAKA,IAAAG,kBAAA,GAAAH,OAAA;AAGEI,MAAM,CAACC,IAAI,CAACC,qCAAkB,CAAC,CAC/BC,OAAO,CAACC,eAAe,IAAI;EAC3BC,yBAAkB,CAACD,eAAe,CAAC,GACjCC,yBAAkB,CAACH,qCAAkB,CAACE,eAAe,CAAC,CAAC;AAC3D,CAAC,CAAC;AAGFE,iBAAgB,CAACC,mBAAY,CAAC;AAC9BD,iBAAgB,CAACE,iBAAU,CAAC;AAC5BF,iBAAgB,CAACD,yBAAkB,CAAC;AACpCC,iBAAgB,CAACG,kBAAW,CAAC;AAC7BH,iBAAgB,CAACI,mBAAY,CAAC;AAC9BJ,iBAAgB,CAACK,sBAAe,CAAC;AAEjCL,iBAAgB,CAACM,gCAAkB,CAAC;AACpCN,iBAAgB,CAACO,wCAA0B,CAAC;AAE5C,MAAMC,KAAoB,GAAAC,OAAA,CAAAD,KAAA,GAAG,EAAE,CAACE,MAAM,CACpChB,MAAM,CAACC,IAAI,CAACM,mBAAY,CAAC,EACzBP,MAAM,CAACC,IAAI,CAACI,yBAAkB,CAAC,EAC/BL,MAAM,CAACC,IAAI,CAACU,sBAAe,CAC7B,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/definitions/placeholders.js b/node_modules/@babel/types/lib/definitions/placeholders.js index 3b96a0ea..6c2e514f 100644 --- a/node_modules/@babel/types/lib/definitions/placeholders.js +++ b/node_modules/@babel/types/lib/definitions/placeholders.js @@ -5,19 +5,16 @@ Object.defineProperty(exports, "__esModule", { }); exports.PLACEHOLDERS_FLIPPED_ALIAS = exports.PLACEHOLDERS_ALIAS = exports.PLACEHOLDERS = void 0; var _utils = require("./utils.js"); -const PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "ClassBody", "Pattern"]; -exports.PLACEHOLDERS = PLACEHOLDERS; -const PLACEHOLDERS_ALIAS = { +const PLACEHOLDERS = exports.PLACEHOLDERS = ["Identifier", "StringLiteral", "Expression", "Statement", "Declaration", "BlockStatement", "ClassBody", "Pattern"]; +const PLACEHOLDERS_ALIAS = exports.PLACEHOLDERS_ALIAS = { Declaration: ["Statement"], Pattern: ["PatternLike", "LVal"] }; -exports.PLACEHOLDERS_ALIAS = PLACEHOLDERS_ALIAS; for (const type of PLACEHOLDERS) { const alias = _utils.ALIAS_KEYS[type]; if (alias != null && alias.length) PLACEHOLDERS_ALIAS[type] = alias; } -const PLACEHOLDERS_FLIPPED_ALIAS = {}; -exports.PLACEHOLDERS_FLIPPED_ALIAS = PLACEHOLDERS_FLIPPED_ALIAS; +const PLACEHOLDERS_FLIPPED_ALIAS = exports.PLACEHOLDERS_FLIPPED_ALIAS = {}; Object.keys(PLACEHOLDERS_ALIAS).forEach(type => { PLACEHOLDERS_ALIAS[type].forEach(alias => { if (!Object.hasOwnProperty.call(PLACEHOLDERS_FLIPPED_ALIAS, alias)) { diff --git a/node_modules/@babel/types/lib/definitions/placeholders.js.map b/node_modules/@babel/types/lib/definitions/placeholders.js.map index dc3ce91b..1d91627b 100644 --- a/node_modules/@babel/types/lib/definitions/placeholders.js.map +++ b/node_modules/@babel/types/lib/definitions/placeholders.js.map @@ -1 +1 @@ -{"version":3,"names":["_utils","require","PLACEHOLDERS","exports","PLACEHOLDERS_ALIAS","Declaration","Pattern","type","alias","ALIAS_KEYS","length","PLACEHOLDERS_FLIPPED_ALIAS","Object","keys","forEach","hasOwnProperty","call","push"],"sources":["../../src/definitions/placeholders.ts"],"sourcesContent":["import { ALIAS_KEYS } from \"./utils.ts\";\n\nexport const PLACEHOLDERS = [\n \"Identifier\",\n \"StringLiteral\",\n \"Expression\",\n \"Statement\",\n \"Declaration\",\n \"BlockStatement\",\n \"ClassBody\",\n \"Pattern\",\n] as const;\n\nexport const PLACEHOLDERS_ALIAS: Record<string, string[]> = {\n Declaration: [\"Statement\"],\n Pattern: [\"PatternLike\", \"LVal\"],\n};\n\nfor (const type of PLACEHOLDERS) {\n const alias = ALIAS_KEYS[type];\n if (alias?.length) PLACEHOLDERS_ALIAS[type] = alias;\n}\n\nexport const PLACEHOLDERS_FLIPPED_ALIAS: Record<string, string[]> = {};\n\nObject.keys(PLACEHOLDERS_ALIAS).forEach(type => {\n PLACEHOLDERS_ALIAS[type].forEach(alias => {\n if (!Object.hasOwnProperty.call(PLACEHOLDERS_FLIPPED_ALIAS, alias)) {\n PLACEHOLDERS_FLIPPED_ALIAS[alias] = [];\n }\n PLACEHOLDERS_FLIPPED_ALIAS[alias].push(type);\n });\n});\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAG,CAC1B,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,SAAS,CACD;AAACC,OAAA,CAAAD,YAAA,GAAAA,YAAA;AAEJ,MAAME,kBAA4C,GAAG;EAC1DC,WAAW,EAAE,CAAC,WAAW,CAAC;EAC1BC,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM;AACjC,CAAC;AAACH,OAAA,CAAAC,kBAAA,GAAAA,kBAAA;AAEF,KAAK,MAAMG,IAAI,IAAIL,YAAY,EAAE;EAC/B,MAAMM,KAAK,GAAGC,iBAAU,CAACF,IAAI,CAAC;EAC9B,IAAIC,KAAK,YAALA,KAAK,CAAEE,MAAM,EAAEN,kBAAkB,CAACG,IAAI,CAAC,GAAGC,KAAK;AACrD;AAEO,MAAMG,0BAAoD,GAAG,CAAC,CAAC;AAACR,OAAA,CAAAQ,0BAAA,GAAAA,0BAAA;AAEvEC,MAAM,CAACC,IAAI,CAACT,kBAAkB,CAAC,CAACU,OAAO,CAACP,IAAI,IAAI;EAC9CH,kBAAkB,CAACG,IAAI,CAAC,CAACO,OAAO,CAACN,KAAK,IAAI;IACxC,IAAI,CAACI,MAAM,CAACG,cAAc,CAACC,IAAI,CAACL,0BAA0B,EAAEH,KAAK,CAAC,EAAE;MAClEG,0BAA0B,CAACH,KAAK,CAAC,GAAG,EAAE;IACxC;IACAG,0BAA0B,CAACH,KAAK,CAAC,CAACS,IAAI,CAACV,IAAI,CAAC;EAC9C,CAAC,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file +{"version":3,"names":["_utils","require","PLACEHOLDERS","exports","PLACEHOLDERS_ALIAS","Declaration","Pattern","type","alias","ALIAS_KEYS","length","PLACEHOLDERS_FLIPPED_ALIAS","Object","keys","forEach","hasOwnProperty","call","push"],"sources":["../../src/definitions/placeholders.ts"],"sourcesContent":["import { ALIAS_KEYS } from \"./utils.ts\";\n\nexport const PLACEHOLDERS = [\n \"Identifier\",\n \"StringLiteral\",\n \"Expression\",\n \"Statement\",\n \"Declaration\",\n \"BlockStatement\",\n \"ClassBody\",\n \"Pattern\",\n] as const;\n\nexport const PLACEHOLDERS_ALIAS: Record<string, string[]> = {\n Declaration: [\"Statement\"],\n Pattern: [\"PatternLike\", \"LVal\"],\n};\n\nfor (const type of PLACEHOLDERS) {\n const alias = ALIAS_KEYS[type];\n if (alias?.length) PLACEHOLDERS_ALIAS[type] = alias;\n}\n\nexport const PLACEHOLDERS_FLIPPED_ALIAS: Record<string, string[]> = {};\n\nObject.keys(PLACEHOLDERS_ALIAS).forEach(type => {\n PLACEHOLDERS_ALIAS[type].forEach(alias => {\n if (!Object.hasOwnProperty.call(PLACEHOLDERS_FLIPPED_ALIAS, alias)) {\n PLACEHOLDERS_FLIPPED_ALIAS[alias] = [];\n }\n PLACEHOLDERS_FLIPPED_ALIAS[alias].push(type);\n });\n});\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,CAC1B,YAAY,EACZ,eAAe,EACf,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,SAAS,CACD;AAEH,MAAME,kBAA4C,GAAAD,OAAA,CAAAC,kBAAA,GAAG;EAC1DC,WAAW,EAAE,CAAC,WAAW,CAAC;EAC1BC,OAAO,EAAE,CAAC,aAAa,EAAE,MAAM;AACjC,CAAC;AAED,KAAK,MAAMC,IAAI,IAAIL,YAAY,EAAE;EAC/B,MAAMM,KAAK,GAAGC,iBAAU,CAACF,IAAI,CAAC;EAC9B,IAAIC,KAAK,YAALA,KAAK,CAAEE,MAAM,EAAEN,kBAAkB,CAACG,IAAI,CAAC,GAAGC,KAAK;AACrD;AAEO,MAAMG,0BAAoD,GAAAR,OAAA,CAAAQ,0BAAA,GAAG,CAAC,CAAC;AAEtEC,MAAM,CAACC,IAAI,CAACT,kBAAkB,CAAC,CAACU,OAAO,CAACP,IAAI,IAAI;EAC9CH,kBAAkB,CAACG,IAAI,CAAC,CAACO,OAAO,CAACN,KAAK,IAAI;IACxC,IAAI,CAACI,MAAM,CAACG,cAAc,CAACC,IAAI,CAACL,0BAA0B,EAAEH,KAAK,CAAC,EAAE;MAClEG,0BAA0B,CAACH,KAAK,CAAC,GAAG,EAAE;IACxC;IACAG,0BAA0B,CAACH,KAAK,CAAC,CAACS,IAAI,CAACV,IAAI,CAAC;EAC9C,CAAC,CAAC;AACJ,CAAC,CAAC"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/definitions/typescript.js b/node_modules/@babel/types/lib/definitions/typescript.js index e495c34b..b80f809b 100644 --- a/node_modules/@babel/types/lib/definitions/typescript.js +++ b/node_modules/@babel/types/lib/definitions/typescript.js @@ -78,11 +78,10 @@ const namedTypeElementCommon = () => ({ }); defineType("TSPropertySignature", { aliases: ["TSTypeElement"], - visitor: ["key", "typeAnnotation", "initializer"], + visitor: ["key", "typeAnnotation"], fields: Object.assign({}, namedTypeElementCommon(), { readonly: (0, _utils.validateOptional)(bool), typeAnnotation: (0, _utils.validateOptionalType)("TSTypeAnnotation"), - initializer: (0, _utils.validateOptionalType)("Expression"), kind: { validate: (0, _utils.assertOneOf)("get", "set") } diff --git a/node_modules/@babel/types/lib/definitions/typescript.js.map b/node_modules/@babel/types/lib/definitions/typescript.js.map index a9aacca2..625b7bf6 100644 --- a/node_modules/@babel/types/lib/definitions/typescript.js.map +++ b/node_modules/@babel/types/lib/definitions/typescript.js.map @@ -1 +1 @@ -{"version":3,"names":["_utils","require","_core","_is","defineType","defineAliasedType","bool","assertValueType","tSFunctionTypeAnnotationCommon","returnType","validate","assertNodeType","optional","typeParameters","aliases","visitor","fields","accessibility","assertOneOf","readonly","parameter","override","decorators","chain","assertEach","Object","assign","functionDeclarationCommon","classMethodOrDeclareMethodCommon","left","validateType","right","signatureDeclarationCommon","validateOptionalType","validateArrayOfType","callConstructSignatureDeclaration","namedTypeElementCommon","key","computed","default","validateOptional","typeAnnotation","initializer","kind","static","parameters","tsKeywordTypes","type","fnOrCtrBase","abstract","typeName","builder","parameterName","asserts","exprName","members","elementType","elementTypes","label","unionOrIntersection","types","checkType","extendsType","trueType","falseType","typeParameter","operator","objectType","indexType","nameType","literal","unaryExpression","unaryOperator","validator","parent","node","is","argument","oneOfNodeTypes","expression","declare","id","extends","arrayOfType","body","TSTypeExpression","const","global","qualifier","isExport","moduleReference","importKind","params","name","in","out","constraint"],"sources":["../../src/definitions/typescript.ts"],"sourcesContent":["import {\n defineAliasedType,\n arrayOfType,\n assertEach,\n assertNodeType,\n assertOneOf,\n assertValueType,\n chain,\n validate,\n validateArrayOfType,\n validateOptional,\n validateOptionalType,\n validateType,\n} from \"./utils.ts\";\nimport {\n functionDeclarationCommon,\n classMethodOrDeclareMethodCommon,\n} from \"./core.ts\";\nimport is from \"../validators/is.ts\";\n\nconst defineType = defineAliasedType(\"TypeScript\");\n\nconst bool = assertValueType(\"boolean\");\n\nconst tSFunctionTypeAnnotationCommon = () => ({\n returnType: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TSTypeAnnotation\")\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n assertNodeType(\"TSTypeAnnotation\", \"Noop\"),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TSTypeParameterDeclaration\")\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n assertNodeType(\"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true,\n },\n});\n\ndefineType(\"TSParameterProperty\", {\n aliases: [\"LVal\"], // TODO: This isn't usable in general as an LVal. Should have a \"Parameter\" alias.\n visitor: [\"parameter\"],\n fields: {\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n parameter: {\n validate: assertNodeType(\"Identifier\", \"AssignmentPattern\"),\n },\n override: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSDeclareFunction\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"returnType\"],\n fields: {\n ...functionDeclarationCommon(),\n ...tSFunctionTypeAnnotationCommon(),\n },\n});\n\ndefineType(\"TSDeclareMethod\", {\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\"],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...tSFunctionTypeAnnotationCommon(),\n },\n});\n\ndefineType(\"TSQualifiedName\", {\n aliases: [\"TSEntityName\"],\n visitor: [\"left\", \"right\"],\n fields: {\n left: validateType(\"TSEntityName\"),\n right: validateType(\"Identifier\"),\n },\n});\n\nconst signatureDeclarationCommon = () => ({\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n [process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\"]: validateArrayOfType(\n [\"ArrayPattern\", \"Identifier\", \"ObjectPattern\", \"RestElement\"],\n ),\n [process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\"]:\n validateOptionalType(\"TSTypeAnnotation\"),\n});\n\nconst callConstructSignatureDeclaration = {\n aliases: [\"TSTypeElement\"],\n visitor: [\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n fields: signatureDeclarationCommon(),\n};\n\ndefineType(\"TSCallSignatureDeclaration\", callConstructSignatureDeclaration);\ndefineType(\n \"TSConstructSignatureDeclaration\",\n callConstructSignatureDeclaration,\n);\n\nconst namedTypeElementCommon = () => ({\n key: validateType(\"Expression\"),\n computed: { default: false },\n optional: validateOptional(bool),\n});\n\ndefineType(\"TSPropertySignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeAnnotation\", \"initializer\"],\n fields: {\n ...namedTypeElementCommon(),\n readonly: validateOptional(bool),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n initializer: validateOptionalType(\"Expression\"),\n kind: {\n validate: assertOneOf(\"get\", \"set\"),\n },\n },\n});\n\ndefineType(\"TSMethodSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\n \"key\",\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n fields: {\n ...signatureDeclarationCommon(),\n ...namedTypeElementCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\"),\n },\n },\n});\n\ndefineType(\"TSIndexSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"parameters\", \"typeAnnotation\"],\n fields: {\n readonly: validateOptional(bool),\n static: validateOptional(bool),\n parameters: validateArrayOfType(\"Identifier\"), // Length must be 1\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n },\n});\n\nconst tsKeywordTypes = [\n \"TSAnyKeyword\",\n \"TSBooleanKeyword\",\n \"TSBigIntKeyword\",\n \"TSIntrinsicKeyword\",\n \"TSNeverKeyword\",\n \"TSNullKeyword\",\n \"TSNumberKeyword\",\n \"TSObjectKeyword\",\n \"TSStringKeyword\",\n \"TSSymbolKeyword\",\n \"TSUndefinedKeyword\",\n \"TSUnknownKeyword\",\n \"TSVoidKeyword\",\n] as const;\n\nfor (const type of tsKeywordTypes) {\n defineType(type, {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {},\n });\n}\n\ndefineType(\"TSThisType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {},\n});\n\nconst fnOrCtrBase = {\n aliases: [\"TSType\"],\n visitor: [\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n};\n\ndefineType(\"TSFunctionType\", {\n ...fnOrCtrBase,\n fields: signatureDeclarationCommon(),\n});\ndefineType(\"TSConstructorType\", {\n ...fnOrCtrBase,\n fields: {\n ...signatureDeclarationCommon(),\n abstract: validateOptional(bool),\n },\n});\n\ndefineType(\"TSTypeReference\", {\n aliases: [\"TSType\"],\n visitor: [\"typeName\", \"typeParameters\"],\n fields: {\n typeName: validateType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSTypePredicate\", {\n aliases: [\"TSType\"],\n visitor: [\"parameterName\", \"typeAnnotation\"],\n builder: [\"parameterName\", \"typeAnnotation\", \"asserts\"],\n fields: {\n parameterName: validateType([\"Identifier\", \"TSThisType\"]),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n asserts: validateOptional(bool),\n },\n});\n\ndefineType(\"TSTypeQuery\", {\n aliases: [\"TSType\"],\n visitor: [\"exprName\", \"typeParameters\"],\n fields: {\n exprName: validateType([\"TSEntityName\", \"TSImportType\"]),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSTypeLiteral\", {\n aliases: [\"TSType\"],\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"TSTypeElement\"),\n },\n});\n\ndefineType(\"TSArrayType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementType\"],\n fields: {\n elementType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTupleType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementTypes\"],\n fields: {\n elementTypes: validateArrayOfType([\"TSType\", \"TSNamedTupleMember\"]),\n },\n});\n\ndefineType(\"TSOptionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSRestType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSNamedTupleMember\", {\n visitor: [\"label\", \"elementType\"],\n builder: [\"label\", \"elementType\", \"optional\"],\n fields: {\n label: validateType(\"Identifier\"),\n optional: {\n validate: bool,\n default: false,\n },\n elementType: validateType(\"TSType\"),\n },\n});\n\nconst unionOrIntersection = {\n aliases: [\"TSType\"],\n visitor: [\"types\"],\n fields: {\n types: validateArrayOfType(\"TSType\"),\n },\n};\n\ndefineType(\"TSUnionType\", unionOrIntersection);\ndefineType(\"TSIntersectionType\", unionOrIntersection);\n\ndefineType(\"TSConditionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"checkType\", \"extendsType\", \"trueType\", \"falseType\"],\n fields: {\n checkType: validateType(\"TSType\"),\n extendsType: validateType(\"TSType\"),\n trueType: validateType(\"TSType\"),\n falseType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSInferType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\"],\n fields: {\n typeParameter: validateType(\"TSTypeParameter\"),\n },\n});\n\ndefineType(\"TSParenthesizedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTypeOperator\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n operator: validate(assertValueType(\"string\")),\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSIndexedAccessType\", {\n aliases: [\"TSType\"],\n visitor: [\"objectType\", \"indexType\"],\n fields: {\n objectType: validateType(\"TSType\"),\n indexType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSMappedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\", \"typeAnnotation\", \"nameType\"],\n fields: {\n readonly: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n typeParameter: validateType(\"TSTypeParameter\"),\n optional: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n typeAnnotation: validateOptionalType(\"TSType\"),\n nameType: validateOptionalType(\"TSType\"),\n },\n});\n\ndefineType(\"TSLiteralType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [\"literal\"],\n fields: {\n literal: {\n validate: (function () {\n const unaryExpression = assertNodeType(\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const unaryOperator = assertOneOf(\"-\");\n\n const literal = assertNodeType(\n \"NumericLiteral\",\n \"StringLiteral\",\n \"BooleanLiteral\",\n \"BigIntLiteral\",\n \"TemplateLiteral\",\n );\n function validator(parent: any, key: string, node: any) {\n // type A = -1 | 1;\n if (is(\"UnaryExpression\", node)) {\n // check operator first\n unaryOperator(node, \"operator\", node.operator);\n unaryExpression(node, \"argument\", node.argument);\n } else {\n // type A = 'foo' | 'bar' | false | 1;\n literal(parent, key, node);\n }\n }\n\n validator.oneOfNodeTypes = [\n \"NumericLiteral\",\n \"StringLiteral\",\n \"BooleanLiteral\",\n \"BigIntLiteral\",\n \"TemplateLiteral\",\n \"UnaryExpression\",\n ];\n\n return validator;\n })(),\n },\n },\n});\n\ndefineType(\"TSExpressionWithTypeArguments\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: validateType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSInterfaceDeclaration\", {\n // \"Statement\" alias prevents a semicolon from appearing after it in an export declaration.\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n extends: validateOptional(arrayOfType(\"TSExpressionWithTypeArguments\")),\n body: validateType(\"TSInterfaceBody\"),\n },\n});\n\ndefineType(\"TSInterfaceBody\", {\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"TSTypeElement\"),\n },\n});\n\ndefineType(\"TSTypeAliasDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"typeAnnotation\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSInstantiationExpression\", {\n aliases: [\"Expression\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\nconst TSTypeExpression = {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\", \"typeAnnotation\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeAnnotation: validateType(\"TSType\"),\n },\n};\n\ndefineType(\"TSAsExpression\", TSTypeExpression);\ndefineType(\"TSSatisfiesExpression\", TSTypeExpression);\n\ndefineType(\"TSTypeAssertion\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"typeAnnotation\", \"expression\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSEnumDeclaration\", {\n // \"Statement\" alias prevents a semicolon from appearing after it in an export declaration.\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"members\"],\n fields: {\n declare: validateOptional(bool),\n const: validateOptional(bool),\n id: validateType(\"Identifier\"),\n members: validateArrayOfType(\"TSEnumMember\"),\n initializer: validateOptionalType(\"Expression\"),\n },\n});\n\ndefineType(\"TSEnumMember\", {\n visitor: [\"id\", \"initializer\"],\n fields: {\n id: validateType([\"Identifier\", \"StringLiteral\"]),\n initializer: validateOptionalType(\"Expression\"),\n },\n});\n\ndefineType(\"TSModuleDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n global: validateOptional(bool),\n id: validateType([\"Identifier\", \"StringLiteral\"]),\n body: validateType([\"TSModuleBlock\", \"TSModuleDeclaration\"]),\n },\n});\n\ndefineType(\"TSModuleBlock\", {\n aliases: [\"Scopable\", \"Block\", \"BlockParent\", \"FunctionParent\"],\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"Statement\"),\n },\n});\n\ndefineType(\"TSImportType\", {\n aliases: [\"TSType\"],\n visitor: [\"argument\", \"qualifier\", \"typeParameters\"],\n fields: {\n argument: validateType(\"StringLiteral\"),\n qualifier: validateOptionalType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSImportEqualsDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\", \"moduleReference\"],\n fields: {\n isExport: validate(bool),\n id: validateType(\"Identifier\"),\n moduleReference: validateType([\n \"TSEntityName\",\n \"TSExternalModuleReference\",\n ]),\n importKind: {\n validate: assertOneOf(\"type\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSExternalModuleReference\", {\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"StringLiteral\"),\n },\n});\n\ndefineType(\"TSNonNullExpression\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSExportAssignment\", {\n aliases: [\"Statement\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSNamespaceExportDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\"],\n fields: {\n id: validateType(\"Identifier\"),\n },\n});\n\ndefineType(\"TSTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: {\n validate: assertNodeType(\"TSType\"),\n },\n },\n});\n\ndefineType(\"TSTypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TSType\")),\n ),\n },\n },\n});\n\ndefineType(\"TSTypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TSTypeParameter\")),\n ),\n },\n },\n});\n\ndefineType(\"TSTypeParameter\", {\n builder: [\"constraint\", \"default\", \"name\"],\n visitor: [\"constraint\", \"default\"],\n fields: {\n name: {\n validate: !process.env.BABEL_8_BREAKING\n ? assertValueType(\"string\")\n : assertNodeType(\"Identifier\"),\n },\n in: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n out: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n const: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n constraint: {\n validate: assertNodeType(\"TSType\"),\n optional: true,\n },\n default: {\n validate: assertNodeType(\"TSType\"),\n optional: true,\n },\n },\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAcA,IAAAC,KAAA,GAAAD,OAAA;AAIA,IAAAE,GAAA,GAAAF,OAAA;AAEA,MAAMG,UAAU,GAAG,IAAAC,wBAAiB,EAAC,YAAY,CAAC;AAElD,MAAMC,IAAI,GAAG,IAAAC,sBAAe,EAAC,SAAS,CAAC;AAEvC,MAAMC,8BAA8B,GAAGA,CAAA,MAAO;EAC5CC,UAAU,EAAE;IACVC,QAAQ,EAGJ,IAAAC,qBAAc,EAAC,kBAAkB,EAAE,MAAM,CAAC;IAC9CC,QAAQ,EAAE;EACZ,CAAC;EACDC,cAAc,EAAE;IACdH,QAAQ,EAGJ,IAAAC,qBAAc,EAAC,4BAA4B,EAAE,MAAM,CAAC;IACxDC,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC;AAEFR,UAAU,CAAC,qBAAqB,EAAE;EAChCU,OAAO,EAAE,CAAC,MAAM,CAAC;EACjBC,OAAO,EAAE,CAAC,WAAW,CAAC;EACtBC,MAAM,EAAE;IACNC,aAAa,EAAE;MACbP,QAAQ,EAAE,IAAAQ,kBAAW,EAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;MACvDN,QAAQ,EAAE;IACZ,CAAC;IACDO,QAAQ,EAAE;MACRT,QAAQ,EAAE,IAAAH,sBAAe,EAAC,SAAS,CAAC;MACpCK,QAAQ,EAAE;IACZ,CAAC;IACDQ,SAAS,EAAE;MACTV,QAAQ,EAAE,IAAAC,qBAAc,EAAC,YAAY,EAAE,mBAAmB;IAC5D,CAAC;IACDU,QAAQ,EAAE;MACRX,QAAQ,EAAE,IAAAH,sBAAe,EAAC,SAAS,CAAC;MACpCK,QAAQ,EAAE;IACZ,CAAC;IACDU,UAAU,EAAE;MACVZ,QAAQ,EAAE,IAAAa,YAAK,EACb,IAAAhB,sBAAe,EAAC,OAAO,CAAC,EACxB,IAAAiB,iBAAU,EAAC,IAAAb,qBAAc,EAAC,WAAW,CAAC,CACxC,CAAC;MACDC,QAAQ,EAAE;IACZ;EACF;AACF,CAAC,CAAC;AAEFR,UAAU,CAAC,mBAAmB,EAAE;EAC9BU,OAAO,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;EACrCC,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,CAAC;EACzDC,MAAM,EAAAS,MAAA,CAAAC,MAAA,KACD,IAAAC,+BAAyB,EAAC,CAAC,EAC3BnB,8BAA8B,CAAC,CAAC;AAEvC,CAAC,CAAC;AAEFJ,UAAU,CAAC,iBAAiB,EAAE;EAC5BW,OAAO,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,CAAC;EACxEC,MAAM,EAAAS,MAAA,CAAAC,MAAA,KACD,IAAAE,sCAAgC,EAAC,CAAC,EAClCpB,8BAA8B,CAAC,CAAC;AAEvC,CAAC,CAAC;AAEFJ,UAAU,CAAC,iBAAiB,EAAE;EAC5BU,OAAO,EAAE,CAAC,cAAc,CAAC;EACzBC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC;EAC1BC,MAAM,EAAE;IACNa,IAAI,EAAE,IAAAC,mBAAY,EAAC,cAAc,CAAC;IAClCC,KAAK,EAAE,IAAAD,mBAAY,EAAC,YAAY;EAClC;AACF,CAAC,CAAC;AAEF,MAAME,0BAA0B,GAAGA,CAAA,MAAO;EACxCnB,cAAc,EAAE,IAAAoB,2BAAoB,EAAC,4BAA4B,CAAC;EAClE,CAA2C,YAAY,GAAG,IAAAC,0BAAmB,EAC3E,CAAC,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,aAAa,CAC/D,CAAC;EACD,CAA+C,gBAAgB,GAC7D,IAAAD,2BAAoB,EAAC,kBAAkB;AAC3C,CAAC,CAAC;AAEF,MAAME,iCAAiC,GAAG;EACxCrB,OAAO,EAAE,CAAC,eAAe,CAAC;EAC1BC,OAAO,EAAE,CACP,gBAAgB,EAC0B,YAAY,EACR,gBAAgB,CAC/D;EACDC,MAAM,EAAEgB,0BAA0B,CAAC;AACrC,CAAC;AAED5B,UAAU,CAAC,4BAA4B,EAAE+B,iCAAiC,CAAC;AAC3E/B,UAAU,CACR,iCAAiC,EACjC+B,iCACF,CAAC;AAED,MAAMC,sBAAsB,GAAGA,CAAA,MAAO;EACpCC,GAAG,EAAE,IAAAP,mBAAY,EAAC,YAAY,CAAC;EAC/BQ,QAAQ,EAAE;IAAEC,OAAO,EAAE;EAAM,CAAC;EAC5B3B,QAAQ,EAAE,IAAA4B,uBAAgB,EAAClC,IAAI;AACjC,CAAC,CAAC;AAEFF,UAAU,CAAC,qBAAqB,EAAE;EAChCU,OAAO,EAAE,CAAC,eAAe,CAAC;EAC1BC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,EAAE,aAAa,CAAC;EACjDC,MAAM,EAAAS,MAAA,CAAAC,MAAA,KACDU,sBAAsB,CAAC,CAAC;IAC3BjB,QAAQ,EAAE,IAAAqB,uBAAgB,EAAClC,IAAI,CAAC;IAChCmC,cAAc,EAAE,IAAAR,2BAAoB,EAAC,kBAAkB,CAAC;IACxDS,WAAW,EAAE,IAAAT,2BAAoB,EAAC,YAAY,CAAC;IAC/CU,IAAI,EAAE;MACJjC,QAAQ,EAAE,IAAAQ,kBAAW,EAAC,KAAK,EAAE,KAAK;IACpC;EAAC;AAEL,CAAC,CAAC;AAEFd,UAAU,CAAC,mBAAmB,EAAE;EAC9BU,OAAO,EAAE,CAAC,eAAe,CAAC;EAC1BC,OAAO,EAAE,CACP,KAAK,EACL,gBAAgB,EAC0B,YAAY,EACR,gBAAgB,CAC/D;EACDC,MAAM,EAAAS,MAAA,CAAAC,MAAA,KACDM,0BAA0B,CAAC,CAAC,EAC5BI,sBAAsB,CAAC,CAAC;IAC3BO,IAAI,EAAE;MACJjC,QAAQ,EAAE,IAAAQ,kBAAW,EAAC,QAAQ,EAAE,KAAK,EAAE,KAAK;IAC9C;EAAC;AAEL,CAAC,CAAC;AAEFd,UAAU,CAAC,kBAAkB,EAAE;EAC7BU,OAAO,EAAE,CAAC,eAAe,CAAC;EAC1BC,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;EACzCC,MAAM,EAAE;IACNG,QAAQ,EAAE,IAAAqB,uBAAgB,EAAClC,IAAI,CAAC;IAChCsC,MAAM,EAAE,IAAAJ,uBAAgB,EAAClC,IAAI,CAAC;IAC9BuC,UAAU,EAAE,IAAAX,0BAAmB,EAAC,YAAY,CAAC;IAC7CO,cAAc,EAAE,IAAAR,2BAAoB,EAAC,kBAAkB;EACzD;AACF,CAAC,CAAC;AAEF,MAAMa,cAAc,GAAG,CACrB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,CACP;AAEV,KAAK,MAAMC,IAAI,IAAID,cAAc,EAAE;EACjC1C,UAAU,CAAC2C,IAAI,EAAE;IACfjC,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;IACjCC,OAAO,EAAE,EAAE;IACXC,MAAM,EAAE,CAAC;EACX,CAAC,CAAC;AACJ;AAEAZ,UAAU,CAAC,YAAY,EAAE;EACvBU,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;EACjCC,OAAO,EAAE,EAAE;EACXC,MAAM,EAAE,CAAC;AACX,CAAC,CAAC;AAEF,MAAMgC,WAAW,GAAG;EAClBlC,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CACP,gBAAgB,EAC0B,YAAY,EACR,gBAAgB;AAElE,CAAC;AAEDX,UAAU,CAAC,gBAAgB,EAAAqB,MAAA,CAAAC,MAAA,KACtBsB,WAAW;EACdhC,MAAM,EAAEgB,0BAA0B,CAAC;AAAC,EACrC,CAAC;AACF5B,UAAU,CAAC,mBAAmB,EAAAqB,MAAA,CAAAC,MAAA,KACzBsB,WAAW;EACdhC,MAAM,EAAAS,MAAA,CAAAC,MAAA,KACDM,0BAA0B,CAAC,CAAC;IAC/BiB,QAAQ,EAAE,IAAAT,uBAAgB,EAAClC,IAAI;EAAC;AACjC,EACF,CAAC;AAEFF,UAAU,CAAC,iBAAiB,EAAE;EAC5BU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;EACvCC,MAAM,EAAE;IACNkC,QAAQ,EAAE,IAAApB,mBAAY,EAAC,cAAc,CAAC;IACtCjB,cAAc,EAAE,IAAAoB,2BAAoB,EAAC,8BAA8B;EACrE;AACF,CAAC,CAAC;AAEF7B,UAAU,CAAC,iBAAiB,EAAE;EAC5BU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;EAC5CoC,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,SAAS,CAAC;EACvDnC,MAAM,EAAE;IACNoC,aAAa,EAAE,IAAAtB,mBAAY,EAAC,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IACzDW,cAAc,EAAE,IAAAR,2BAAoB,EAAC,kBAAkB,CAAC;IACxDoB,OAAO,EAAE,IAAAb,uBAAgB,EAAClC,IAAI;EAChC;AACF,CAAC,CAAC;AAEFF,UAAU,CAAC,aAAa,EAAE;EACxBU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,UAAU,EAAE,gBAAgB,CAAC;EACvCC,MAAM,EAAE;IACNsC,QAAQ,EAAE,IAAAxB,mBAAY,EAAC,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACxDjB,cAAc,EAAE,IAAAoB,2BAAoB,EAAC,8BAA8B;EACrE;AACF,CAAC,CAAC;AAEF7B,UAAU,CAAC,eAAe,EAAE;EAC1BU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,SAAS,CAAC;EACpBC,MAAM,EAAE;IACNuC,OAAO,EAAE,IAAArB,0BAAmB,EAAC,eAAe;EAC9C;AACF,CAAC,CAAC;AAEF9B,UAAU,CAAC,aAAa,EAAE;EACxBU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,aAAa,CAAC;EACxBC,MAAM,EAAE;IACNwC,WAAW,EAAE,IAAA1B,mBAAY,EAAC,QAAQ;EACpC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,aAAa,EAAE;EACxBU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,cAAc,CAAC;EACzBC,MAAM,EAAE;IACNyC,YAAY,EAAE,IAAAvB,0BAAmB,EAAC,CAAC,QAAQ,EAAE,oBAAoB,CAAC;EACpE;AACF,CAAC,CAAC;AAEF9B,UAAU,CAAC,gBAAgB,EAAE;EAC3BU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,gBAAgB,CAAC;EAC3BC,MAAM,EAAE;IACNyB,cAAc,EAAE,IAAAX,mBAAY,EAAC,QAAQ;EACvC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,YAAY,EAAE;EACvBU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,gBAAgB,CAAC;EAC3BC,MAAM,EAAE;IACNyB,cAAc,EAAE,IAAAX,mBAAY,EAAC,QAAQ;EACvC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,oBAAoB,EAAE;EAC/BW,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC;EACjCoC,OAAO,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC;EAC7CnC,MAAM,EAAE;IACN0C,KAAK,EAAE,IAAA5B,mBAAY,EAAC,YAAY,CAAC;IACjClB,QAAQ,EAAE;MACRF,QAAQ,EAAEJ,IAAI;MACdiC,OAAO,EAAE;IACX,CAAC;IACDiB,WAAW,EAAE,IAAA1B,mBAAY,EAAC,QAAQ;EACpC;AACF,CAAC,CAAC;AAEF,MAAM6B,mBAAmB,GAAG;EAC1B7C,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,OAAO,CAAC;EAClBC,MAAM,EAAE;IACN4C,KAAK,EAAE,IAAA1B,0BAAmB,EAAC,QAAQ;EACrC;AACF,CAAC;AAED9B,UAAU,CAAC,aAAa,EAAEuD,mBAAmB,CAAC;AAC9CvD,UAAU,CAAC,oBAAoB,EAAEuD,mBAAmB,CAAC;AAErDvD,UAAU,CAAC,mBAAmB,EAAE;EAC9BU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,CAAC;EAC9DC,MAAM,EAAE;IACN6C,SAAS,EAAE,IAAA/B,mBAAY,EAAC,QAAQ,CAAC;IACjCgC,WAAW,EAAE,IAAAhC,mBAAY,EAAC,QAAQ,CAAC;IACnCiC,QAAQ,EAAE,IAAAjC,mBAAY,EAAC,QAAQ,CAAC;IAChCkC,SAAS,EAAE,IAAAlC,mBAAY,EAAC,QAAQ;EAClC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,aAAa,EAAE;EACxBU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,eAAe,CAAC;EAC1BC,MAAM,EAAE;IACNiD,aAAa,EAAE,IAAAnC,mBAAY,EAAC,iBAAiB;EAC/C;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,qBAAqB,EAAE;EAChCU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,gBAAgB,CAAC;EAC3BC,MAAM,EAAE;IACNyB,cAAc,EAAE,IAAAX,mBAAY,EAAC,QAAQ;EACvC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,gBAAgB,EAAE;EAC3BU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,gBAAgB,CAAC;EAC3BC,MAAM,EAAE;IACNkD,QAAQ,EAAE,IAAAxD,eAAQ,EAAC,IAAAH,sBAAe,EAAC,QAAQ,CAAC,CAAC;IAC7CkC,cAAc,EAAE,IAAAX,mBAAY,EAAC,QAAQ;EACvC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,qBAAqB,EAAE;EAChCU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,YAAY,EAAE,WAAW,CAAC;EACpCC,MAAM,EAAE;IACNmD,UAAU,EAAE,IAAArC,mBAAY,EAAC,QAAQ,CAAC;IAClCsC,SAAS,EAAE,IAAAtC,mBAAY,EAAC,QAAQ;EAClC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,cAAc,EAAE;EACzBU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,EAAE,UAAU,CAAC;EACxDC,MAAM,EAAE;IACNG,QAAQ,EAAE,IAAAqB,uBAAgB,EAAC,IAAAtB,kBAAW,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9D+C,aAAa,EAAE,IAAAnC,mBAAY,EAAC,iBAAiB,CAAC;IAC9ClB,QAAQ,EAAE,IAAA4B,uBAAgB,EAAC,IAAAtB,kBAAW,EAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9DuB,cAAc,EAAE,IAAAR,2BAAoB,EAAC,QAAQ,CAAC;IAC9CoC,QAAQ,EAAE,IAAApC,2BAAoB,EAAC,QAAQ;EACzC;AACF,CAAC,CAAC;AAEF7B,UAAU,CAAC,eAAe,EAAE;EAC1BU,OAAO,EAAE,CAAC,QAAQ,EAAE,YAAY,CAAC;EACjCC,OAAO,EAAE,CAAC,SAAS,CAAC;EACpBC,MAAM,EAAE;IACNsD,OAAO,EAAE;MACP5D,QAAQ,EAAG,YAAY;QACrB,MAAM6D,eAAe,GAAG,IAAA5D,qBAAc,EACpC,gBAAgB,EAChB,eACF,CAAC;QACD,MAAM6D,aAAa,GAAG,IAAAtD,kBAAW,EAAC,GAAG,CAAC;QAEtC,MAAMoD,OAAO,GAAG,IAAA3D,qBAAc,EAC5B,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBACF,CAAC;QACD,SAAS8D,SAASA,CAACC,MAAW,EAAErC,GAAW,EAAEsC,IAAS,EAAE;UAEtD,IAAI,IAAAC,WAAE,EAAC,iBAAiB,EAAED,IAAI,CAAC,EAAE;YAE/BH,aAAa,CAACG,IAAI,EAAE,UAAU,EAAEA,IAAI,CAACT,QAAQ,CAAC;YAC9CK,eAAe,CAACI,IAAI,EAAE,UAAU,EAAEA,IAAI,CAACE,QAAQ,CAAC;UAClD,CAAC,MAAM;YAELP,OAAO,CAACI,MAAM,EAAErC,GAAG,EAAEsC,IAAI,CAAC;UAC5B;QACF;QAEAF,SAAS,CAACK,cAAc,GAAG,CACzB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,iBAAiB,CAClB;QAED,OAAOL,SAAS;MAClB,CAAC,CAAE;IACL;EACF;AACF,CAAC,CAAC;AAEFrE,UAAU,CAAC,+BAA+B,EAAE;EAC1CU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;EACzCC,MAAM,EAAE;IACN+D,UAAU,EAAE,IAAAjD,mBAAY,EAAC,cAAc,CAAC;IACxCjB,cAAc,EAAE,IAAAoB,2BAAoB,EAAC,8BAA8B;EACrE;AACF,CAAC,CAAC;AAEF7B,UAAU,CAAC,wBAAwB,EAAE;EAEnCU,OAAO,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;EACrCC,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC;EACpDC,MAAM,EAAE;IACNgE,OAAO,EAAE,IAAAxC,uBAAgB,EAAClC,IAAI,CAAC;IAC/B2E,EAAE,EAAE,IAAAnD,mBAAY,EAAC,YAAY,CAAC;IAC9BjB,cAAc,EAAE,IAAAoB,2BAAoB,EAAC,4BAA4B,CAAC;IAClEiD,OAAO,EAAE,IAAA1C,uBAAgB,EAAC,IAAA2C,kBAAW,EAAC,+BAA+B,CAAC,CAAC;IACvEC,IAAI,EAAE,IAAAtD,mBAAY,EAAC,iBAAiB;EACtC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,iBAAiB,EAAE;EAC5BW,OAAO,EAAE,CAAC,MAAM,CAAC;EACjBC,MAAM,EAAE;IACNoE,IAAI,EAAE,IAAAlD,0BAAmB,EAAC,eAAe;EAC3C;AACF,CAAC,CAAC;AAEF9B,UAAU,CAAC,wBAAwB,EAAE;EACnCU,OAAO,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;EACrCC,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,gBAAgB,CAAC;EACnDC,MAAM,EAAE;IACNgE,OAAO,EAAE,IAAAxC,uBAAgB,EAAClC,IAAI,CAAC;IAC/B2E,EAAE,EAAE,IAAAnD,mBAAY,EAAC,YAAY,CAAC;IAC9BjB,cAAc,EAAE,IAAAoB,2BAAoB,EAAC,4BAA4B,CAAC;IAClEQ,cAAc,EAAE,IAAAX,mBAAY,EAAC,QAAQ;EACvC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,2BAA2B,EAAE;EACtCU,OAAO,EAAE,CAAC,YAAY,CAAC;EACvBC,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;EACzCC,MAAM,EAAE;IACN+D,UAAU,EAAE,IAAAjD,mBAAY,EAAC,YAAY,CAAC;IACtCjB,cAAc,EAAE,IAAAoB,2BAAoB,EAAC,8BAA8B;EACrE;AACF,CAAC,CAAC;AAEF,MAAMoD,gBAAgB,GAAG;EACvBvE,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC;EAC9CC,OAAO,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC;EACzCC,MAAM,EAAE;IACN+D,UAAU,EAAE,IAAAjD,mBAAY,EAAC,YAAY,CAAC;IACtCW,cAAc,EAAE,IAAAX,mBAAY,EAAC,QAAQ;EACvC;AACF,CAAC;AAED1B,UAAU,CAAC,gBAAgB,EAAEiF,gBAAgB,CAAC;AAC9CjF,UAAU,CAAC,uBAAuB,EAAEiF,gBAAgB,CAAC;AAErDjF,UAAU,CAAC,iBAAiB,EAAE;EAC5BU,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC;EAC9CC,OAAO,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC;EACzCC,MAAM,EAAE;IACNyB,cAAc,EAAE,IAAAX,mBAAY,EAAC,QAAQ,CAAC;IACtCiD,UAAU,EAAE,IAAAjD,mBAAY,EAAC,YAAY;EACvC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,mBAAmB,EAAE;EAE9BU,OAAO,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;EACrCC,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;EAC1BC,MAAM,EAAE;IACNgE,OAAO,EAAE,IAAAxC,uBAAgB,EAAClC,IAAI,CAAC;IAC/BgF,KAAK,EAAE,IAAA9C,uBAAgB,EAAClC,IAAI,CAAC;IAC7B2E,EAAE,EAAE,IAAAnD,mBAAY,EAAC,YAAY,CAAC;IAC9ByB,OAAO,EAAE,IAAArB,0BAAmB,EAAC,cAAc,CAAC;IAC5CQ,WAAW,EAAE,IAAAT,2BAAoB,EAAC,YAAY;EAChD;AACF,CAAC,CAAC;AAEF7B,UAAU,CAAC,cAAc,EAAE;EACzBW,OAAO,EAAE,CAAC,IAAI,EAAE,aAAa,CAAC;EAC9BC,MAAM,EAAE;IACNiE,EAAE,EAAE,IAAAnD,mBAAY,EAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACjDY,WAAW,EAAE,IAAAT,2BAAoB,EAAC,YAAY;EAChD;AACF,CAAC,CAAC;AAEF7B,UAAU,CAAC,qBAAqB,EAAE;EAChCU,OAAO,EAAE,CAAC,WAAW,EAAE,aAAa,CAAC;EACrCC,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC;EACvBC,MAAM,EAAE;IACNgE,OAAO,EAAE,IAAAxC,uBAAgB,EAAClC,IAAI,CAAC;IAC/BiF,MAAM,EAAE,IAAA/C,uBAAgB,EAAClC,IAAI,CAAC;IAC9B2E,EAAE,EAAE,IAAAnD,mBAAY,EAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;IACjDsD,IAAI,EAAE,IAAAtD,mBAAY,EAAC,CAAC,eAAe,EAAE,qBAAqB,CAAC;EAC7D;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,eAAe,EAAE;EAC1BU,OAAO,EAAE,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,gBAAgB,CAAC;EAC/DC,OAAO,EAAE,CAAC,MAAM,CAAC;EACjBC,MAAM,EAAE;IACNoE,IAAI,EAAE,IAAAlD,0BAAmB,EAAC,WAAW;EACvC;AACF,CAAC,CAAC;AAEF9B,UAAU,CAAC,cAAc,EAAE;EACzBU,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,OAAO,EAAE,CAAC,UAAU,EAAE,WAAW,EAAE,gBAAgB,CAAC;EACpDC,MAAM,EAAE;IACN6D,QAAQ,EAAE,IAAA/C,mBAAY,EAAC,eAAe,CAAC;IACvC0D,SAAS,EAAE,IAAAvD,2BAAoB,EAAC,cAAc,CAAC;IAC/CpB,cAAc,EAAE,IAAAoB,2BAAoB,EAAC,8BAA8B;EACrE;AACF,CAAC,CAAC;AAEF7B,UAAU,CAAC,2BAA2B,EAAE;EACtCU,OAAO,EAAE,CAAC,WAAW,CAAC;EACtBC,OAAO,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC;EAClCC,MAAM,EAAE;IACNyE,QAAQ,EAAE,IAAA/E,eAAQ,EAACJ,IAAI,CAAC;IACxB2E,EAAE,EAAE,IAAAnD,mBAAY,EAAC,YAAY,CAAC;IAC9B4D,eAAe,EAAE,IAAA5D,mBAAY,EAAC,CAC5B,cAAc,EACd,2BAA2B,CAC5B,CAAC;IACF6D,UAAU,EAAE;MACVjF,QAAQ,EAAE,IAAAQ,kBAAW,EAAC,MAAM,EAAE,OAAO,CAAC;MACtCN,QAAQ,EAAE;IACZ;EACF;AACF,CAAC,CAAC;AAEFR,UAAU,CAAC,2BAA2B,EAAE;EACtCW,OAAO,EAAE,CAAC,YAAY,CAAC;EACvBC,MAAM,EAAE;IACN+D,UAAU,EAAE,IAAAjD,mBAAY,EAAC,eAAe;EAC1C;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,qBAAqB,EAAE;EAChCU,OAAO,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,aAAa,CAAC;EAC9CC,OAAO,EAAE,CAAC,YAAY,CAAC;EACvBC,MAAM,EAAE;IACN+D,UAAU,EAAE,IAAAjD,mBAAY,EAAC,YAAY;EACvC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,oBAAoB,EAAE;EAC/BU,OAAO,EAAE,CAAC,WAAW,CAAC;EACtBC,OAAO,EAAE,CAAC,YAAY,CAAC;EACvBC,MAAM,EAAE;IACN+D,UAAU,EAAE,IAAAjD,mBAAY,EAAC,YAAY;EACvC;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,8BAA8B,EAAE;EACzCU,OAAO,EAAE,CAAC,WAAW,CAAC;EACtBC,OAAO,EAAE,CAAC,IAAI,CAAC;EACfC,MAAM,EAAE;IACNiE,EAAE,EAAE,IAAAnD,mBAAY,EAAC,YAAY;EAC/B;AACF,CAAC,CAAC;AAEF1B,UAAU,CAAC,kBAAkB,EAAE;EAC7BW,OAAO,EAAE,CAAC,gBAAgB,CAAC;EAC3BC,MAAM,EAAE;IACNyB,cAAc,EAAE;MACd/B,QAAQ,EAAE,IAAAC,qBAAc,EAAC,QAAQ;IACnC;EACF;AACF,CAAC,CAAC;AAEFP,UAAU,CAAC,8BAA8B,EAAE;EACzCW,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,MAAM,EAAE;IACN4E,MAAM,EAAE;MACNlF,QAAQ,EAAE,IAAAa,YAAK,EACb,IAAAhB,sBAAe,EAAC,OAAO,CAAC,EACxB,IAAAiB,iBAAU,EAAC,IAAAb,qBAAc,EAAC,QAAQ,CAAC,CACrC;IACF;EACF;AACF,CAAC,CAAC;AAEFP,UAAU,CAAC,4BAA4B,EAAE;EACvCW,OAAO,EAAE,CAAC,QAAQ,CAAC;EACnBC,MAAM,EAAE;IACN4E,MAAM,EAAE;MACNlF,QAAQ,EAAE,IAAAa,YAAK,EACb,IAAAhB,sBAAe,EAAC,OAAO,CAAC,EACxB,IAAAiB,iBAAU,EAAC,IAAAb,qBAAc,EAAC,iBAAiB,CAAC,CAC9C;IACF;EACF;AACF,CAAC,CAAC;AAEFP,UAAU,CAAC,iBAAiB,EAAE;EAC5B+C,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,MAAM,CAAC;EAC1CpC,OAAO,EAAE,CAAC,YAAY,EAAE,SAAS,CAAC;EAClCC,MAAM,EAAE;IACN6E,IAAI,EAAE;MACJnF,QAAQ,EACJ,IAAAH,sBAAe,EAAC,QAAQ;IAE9B,CAAC;IACDuF,EAAE,EAAE;MACFpF,QAAQ,EAAE,IAAAH,sBAAe,EAAC,SAAS,CAAC;MACpCK,QAAQ,EAAE;IACZ,CAAC;IACDmF,GAAG,EAAE;MACHrF,QAAQ,EAAE,IAAAH,sBAAe,EAAC,SAAS,CAAC;MACpCK,QAAQ,EAAE;IACZ,CAAC;IACD0E,KAAK,EAAE;MACL5E,QAAQ,EAAE,IAAAH,sBAAe,EAAC,SAAS,CAAC;MACpCK,QAAQ,EAAE;IACZ,CAAC;IACDoF,UAAU,EAAE;MACVtF,QAAQ,EAAE,IAAAC,qBAAc,EAAC,QAAQ,CAAC;MAClCC,QAAQ,EAAE;IACZ,CAAC;IACD2B,OAAO,EAAE;MACP7B,QAAQ,EAAE,IAAAC,qBAAc,EAAC,QAAQ,CAAC;MAClCC,QAAQ,EAAE;IACZ;EACF;AACF,CAAC,CAAC"}
\ No newline at end of file +{"version":3,"names":["_utils","require","_core","_is","defineType","defineAliasedType","bool","assertValueType","tSFunctionTypeAnnotationCommon","returnType","validate","assertNodeType","optional","typeParameters","aliases","visitor","fields","accessibility","assertOneOf","readonly","parameter","override","decorators","chain","assertEach","Object","assign","functionDeclarationCommon","classMethodOrDeclareMethodCommon","left","validateType","right","signatureDeclarationCommon","validateOptionalType","validateArrayOfType","callConstructSignatureDeclaration","namedTypeElementCommon","key","computed","default","validateOptional","typeAnnotation","kind","static","parameters","tsKeywordTypes","type","fnOrCtrBase","abstract","typeName","builder","parameterName","asserts","exprName","members","elementType","elementTypes","label","unionOrIntersection","types","checkType","extendsType","trueType","falseType","typeParameter","operator","objectType","indexType","nameType","literal","unaryExpression","unaryOperator","validator","parent","node","is","argument","oneOfNodeTypes","expression","declare","id","extends","arrayOfType","body","TSTypeExpression","const","initializer","global","qualifier","isExport","moduleReference","importKind","params","name","in","out","constraint"],"sources":["../../src/definitions/typescript.ts"],"sourcesContent":["import {\n defineAliasedType,\n arrayOfType,\n assertEach,\n assertNodeType,\n assertOneOf,\n assertValueType,\n chain,\n validate,\n validateArrayOfType,\n validateOptional,\n validateOptionalType,\n validateType,\n} from \"./utils.ts\";\nimport {\n functionDeclarationCommon,\n classMethodOrDeclareMethodCommon,\n} from \"./core.ts\";\nimport is from \"../validators/is.ts\";\n\nconst defineType = defineAliasedType(\"TypeScript\");\n\nconst bool = assertValueType(\"boolean\");\n\nconst tSFunctionTypeAnnotationCommon = () => ({\n returnType: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TSTypeAnnotation\")\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n assertNodeType(\"TSTypeAnnotation\", \"Noop\"),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TSTypeParameterDeclaration\")\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n assertNodeType(\"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true,\n },\n});\n\ndefineType(\"TSParameterProperty\", {\n aliases: [\"LVal\"], // TODO: This isn't usable in general as an LVal. Should have a \"Parameter\" alias.\n visitor: [\"parameter\"],\n fields: {\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n parameter: {\n validate: assertNodeType(\"Identifier\", \"AssignmentPattern\"),\n },\n override: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSDeclareFunction\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"returnType\"],\n fields: {\n ...functionDeclarationCommon(),\n ...tSFunctionTypeAnnotationCommon(),\n },\n});\n\ndefineType(\"TSDeclareMethod\", {\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\"],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...tSFunctionTypeAnnotationCommon(),\n },\n});\n\ndefineType(\"TSQualifiedName\", {\n aliases: [\"TSEntityName\"],\n visitor: [\"left\", \"right\"],\n fields: {\n left: validateType(\"TSEntityName\"),\n right: validateType(\"Identifier\"),\n },\n});\n\nconst signatureDeclarationCommon = () => ({\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n [process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\"]: validateArrayOfType(\n [\"ArrayPattern\", \"Identifier\", \"ObjectPattern\", \"RestElement\"],\n ),\n [process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\"]:\n validateOptionalType(\"TSTypeAnnotation\"),\n});\n\nconst callConstructSignatureDeclaration = {\n aliases: [\"TSTypeElement\"],\n visitor: [\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n fields: signatureDeclarationCommon(),\n};\n\ndefineType(\"TSCallSignatureDeclaration\", callConstructSignatureDeclaration);\ndefineType(\n \"TSConstructSignatureDeclaration\",\n callConstructSignatureDeclaration,\n);\n\nconst namedTypeElementCommon = () => ({\n key: validateType(\"Expression\"),\n computed: { default: false },\n optional: validateOptional(bool),\n});\n\ndefineType(\"TSPropertySignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeAnnotation\"],\n fields: {\n ...namedTypeElementCommon(),\n readonly: validateOptional(bool),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n kind: {\n validate: assertOneOf(\"get\", \"set\"),\n },\n },\n});\n\ndefineType(\"TSMethodSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\n \"key\",\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n fields: {\n ...signatureDeclarationCommon(),\n ...namedTypeElementCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\"),\n },\n },\n});\n\ndefineType(\"TSIndexSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"parameters\", \"typeAnnotation\"],\n fields: {\n readonly: validateOptional(bool),\n static: validateOptional(bool),\n parameters: validateArrayOfType(\"Identifier\"), // Length must be 1\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n },\n});\n\nconst tsKeywordTypes = [\n \"TSAnyKeyword\",\n \"TSBooleanKeyword\",\n \"TSBigIntKeyword\",\n \"TSIntrinsicKeyword\",\n \"TSNeverKeyword\",\n \"TSNullKeyword\",\n \"TSNumberKeyword\",\n \"TSObjectKeyword\",\n \"TSStringKeyword\",\n \"TSSymbolKeyword\",\n \"TSUndefinedKeyword\",\n \"TSUnknownKeyword\",\n \"TSVoidKeyword\",\n] as const;\n\nfor (const type of tsKeywordTypes) {\n defineType(type, {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {},\n });\n}\n\ndefineType(\"TSThisType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {},\n});\n\nconst fnOrCtrBase = {\n aliases: [\"TSType\"],\n visitor: [\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n};\n\ndefineType(\"TSFunctionType\", {\n ...fnOrCtrBase,\n fields: signatureDeclarationCommon(),\n});\ndefineType(\"TSConstructorType\", {\n ...fnOrCtrBase,\n fields: {\n ...signatureDeclarationCommon(),\n abstract: validateOptional(bool),\n },\n});\n\ndefineType(\"TSTypeReference\", {\n aliases: [\"TSType\"],\n visitor: [\"typeName\", \"typeParameters\"],\n fields: {\n typeName: validateType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSTypePredicate\", {\n aliases: [\"TSType\"],\n visitor: [\"parameterName\", \"typeAnnotation\"],\n builder: [\"parameterName\", \"typeAnnotation\", \"asserts\"],\n fields: {\n parameterName: validateType([\"Identifier\", \"TSThisType\"]),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n asserts: validateOptional(bool),\n },\n});\n\ndefineType(\"TSTypeQuery\", {\n aliases: [\"TSType\"],\n visitor: [\"exprName\", \"typeParameters\"],\n fields: {\n exprName: validateType([\"TSEntityName\", \"TSImportType\"]),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSTypeLiteral\", {\n aliases: [\"TSType\"],\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"TSTypeElement\"),\n },\n});\n\ndefineType(\"TSArrayType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementType\"],\n fields: {\n elementType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTupleType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementTypes\"],\n fields: {\n elementTypes: validateArrayOfType([\"TSType\", \"TSNamedTupleMember\"]),\n },\n});\n\ndefineType(\"TSOptionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSRestType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSNamedTupleMember\", {\n visitor: [\"label\", \"elementType\"],\n builder: [\"label\", \"elementType\", \"optional\"],\n fields: {\n label: validateType(\"Identifier\"),\n optional: {\n validate: bool,\n default: false,\n },\n elementType: validateType(\"TSType\"),\n },\n});\n\nconst unionOrIntersection = {\n aliases: [\"TSType\"],\n visitor: [\"types\"],\n fields: {\n types: validateArrayOfType(\"TSType\"),\n },\n};\n\ndefineType(\"TSUnionType\", unionOrIntersection);\ndefineType(\"TSIntersectionType\", unionOrIntersection);\n\ndefineType(\"TSConditionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"checkType\", \"extendsType\", \"trueType\", \"falseType\"],\n fields: {\n checkType: validateType(\"TSType\"),\n extendsType: validateType(\"TSType\"),\n trueType: validateType(\"TSType\"),\n falseType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSInferType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\"],\n fields: {\n typeParameter: validateType(\"TSTypeParameter\"),\n },\n});\n\ndefineType(\"TSParenthesizedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTypeOperator\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n operator: validate(assertValueType(\"string\")),\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSIndexedAccessType\", {\n aliases: [\"TSType\"],\n visitor: [\"objectType\", \"indexType\"],\n fields: {\n objectType: validateType(\"TSType\"),\n indexType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSMappedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\", \"typeAnnotation\", \"nameType\"],\n fields: {\n readonly: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n typeParameter: validateType(\"TSTypeParameter\"),\n optional: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n typeAnnotation: validateOptionalType(\"TSType\"),\n nameType: validateOptionalType(\"TSType\"),\n },\n});\n\ndefineType(\"TSLiteralType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [\"literal\"],\n fields: {\n literal: {\n validate: (function () {\n const unaryExpression = assertNodeType(\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const unaryOperator = assertOneOf(\"-\");\n\n const literal = assertNodeType(\n \"NumericLiteral\",\n \"StringLiteral\",\n \"BooleanLiteral\",\n \"BigIntLiteral\",\n \"TemplateLiteral\",\n );\n function validator(parent: any, key: string, node: any) {\n // type A = -1 | 1;\n if (is(\"UnaryExpression\", node)) {\n // check operator first\n unaryOperator(node, \"operator\", node.operator);\n unaryExpression(node, \"argument\", node.argument);\n } else {\n // type A = 'foo' | 'bar' | false | 1;\n literal(parent, key, node);\n }\n }\n\n validator.oneOfNodeTypes = [\n \"NumericLiteral\",\n \"StringLiteral\",\n \"BooleanLiteral\",\n \"BigIntLiteral\",\n \"TemplateLiteral\",\n \"UnaryExpression\",\n ];\n\n return validator;\n })(),\n },\n },\n});\n\ndefineType(\"TSExpressionWithTypeArguments\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: validateType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSInterfaceDeclaration\", {\n // \"Statement\" alias prevents a semicolon from appearing after it in an export declaration.\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n extends: validateOptional(arrayOfType(\"TSExpressionWithTypeArguments\")),\n body: validateType(\"TSInterfaceBody\"),\n },\n});\n\ndefineType(\"TSInterfaceBody\", {\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"TSTypeElement\"),\n },\n});\n\ndefineType(\"TSTypeAliasDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"typeAnnotation\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSInstantiationExpression\", {\n aliases: [\"Expression\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\nconst TSTypeExpression = {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\", \"typeAnnotation\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeAnnotation: validateType(\"TSType\"),\n },\n};\n\ndefineType(\"TSAsExpression\", TSTypeExpression);\ndefineType(\"TSSatisfiesExpression\", TSTypeExpression);\n\ndefineType(\"TSTypeAssertion\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"typeAnnotation\", \"expression\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSEnumDeclaration\", {\n // \"Statement\" alias prevents a semicolon from appearing after it in an export declaration.\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"members\"],\n fields: {\n declare: validateOptional(bool),\n const: validateOptional(bool),\n id: validateType(\"Identifier\"),\n members: validateArrayOfType(\"TSEnumMember\"),\n initializer: validateOptionalType(\"Expression\"),\n },\n});\n\ndefineType(\"TSEnumMember\", {\n visitor: [\"id\", \"initializer\"],\n fields: {\n id: validateType([\"Identifier\", \"StringLiteral\"]),\n initializer: validateOptionalType(\"Expression\"),\n },\n});\n\ndefineType(\"TSModuleDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n global: validateOptional(bool),\n id: validateType([\"Identifier\", \"StringLiteral\"]),\n body: validateType([\"TSModuleBlock\", \"TSModuleDeclaration\"]),\n },\n});\n\ndefineType(\"TSModuleBlock\", {\n aliases: [\"Scopable\", \"Block\", \"BlockParent\", \"FunctionParent\"],\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"Statement\"),\n },\n});\n\ndefineType(\"TSImportType\", {\n aliases: [\"TSType\"],\n visitor: [\"argument\", \"qualifier\", \"typeParameters\"],\n fields: {\n argument: validateType(\"StringLiteral\"),\n qualifier: validateOptionalType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSImportEqualsDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\", \"moduleReference\"],\n fields: {\n isExport: validate(bool),\n id: validateType(\"Identifier\"),\n moduleReference: validateType([\n \"TSEntityName\",\n \"TSExternalModuleReference\",\n ]),\n importKind: {\n validate: assertOneOf(\"type\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSExternalModuleReference\", {\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"StringLiteral\"),\n },\n});\n\ndefineType(\"TSNonNullExpression\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSExportAssignment\", {\n aliases: [\"Statement\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSNamespaceExportDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\"],\n fields: {\n id: validateType(\"Identifier\"),\n },\n});\n\ndefineType(\"TSTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: {\n validate: assertNodeType(\"TSType\"),\n },\n },\n});\n\ndefineType(\"TSTypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TSType\")),\n ),\n },\n },\n});\n\ndefineType(\"TSTypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TSTypeParameter\")),\n ),\n },\n },\n});\n\ndefineType(\"TSTypeParameter\", {\n builder: [\"constraint\", \"default\", \"name\"],\n visitor: [\"constraint\", \"default\"],\n fields: {\n name: {\n validate: !process.env.BABEL_8_BREAKING\n ? assertValueType(\"string\")\n : assertNodeType(\"Identifier\"),\n },\n in: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n out: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n const: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n constraint: {\n validate: assertNodeType(\"TSType\"),\n optional: true,\n },\n default: {\n validate: assertNodeType(\"TSType\"),\n optional: true,\n },\n },\n});\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/definitions/utils.js b/node_modules/@babel/types/lib/definitions/utils.js index b5b04351..33d7cda6 100644 --- a/node_modules/@babel/types/lib/definitions/utils.js +++ b/node_modules/@babel/types/lib/definitions/utils.js @@ -24,20 +24,13 @@ exports.validateOptionalType = validateOptionalType; exports.validateType = validateType; var _is = require("../validators/is.js"); var _validate = require("../validators/validate.js"); -const VISITOR_KEYS = {}; -exports.VISITOR_KEYS = VISITOR_KEYS; -const ALIAS_KEYS = {}; -exports.ALIAS_KEYS = ALIAS_KEYS; -const FLIPPED_ALIAS_KEYS = {}; -exports.FLIPPED_ALIAS_KEYS = FLIPPED_ALIAS_KEYS; -const NODE_FIELDS = {}; -exports.NODE_FIELDS = NODE_FIELDS; -const BUILDER_KEYS = {}; -exports.BUILDER_KEYS = BUILDER_KEYS; -const DEPRECATED_KEYS = {}; -exports.DEPRECATED_KEYS = DEPRECATED_KEYS; -const NODE_PARENT_VALIDATIONS = {}; -exports.NODE_PARENT_VALIDATIONS = NODE_PARENT_VALIDATIONS; +const VISITOR_KEYS = exports.VISITOR_KEYS = {}; +const ALIAS_KEYS = exports.ALIAS_KEYS = {}; +const FLIPPED_ALIAS_KEYS = exports.FLIPPED_ALIAS_KEYS = {}; +const NODE_FIELDS = exports.NODE_FIELDS = {}; +const BUILDER_KEYS = exports.BUILDER_KEYS = {}; +const DEPRECATED_KEYS = exports.DEPRECATED_KEYS = {}; +const NODE_PARENT_VALIDATIONS = exports.NODE_PARENT_VALIDATIONS = {}; function getType(val) { if (Array.isArray(val)) { return "array"; diff --git a/node_modules/@babel/types/lib/definitions/utils.js.map b/node_modules/@babel/types/lib/definitions/utils.js.map index fe3fd094..30a7edc8 100644 --- a/node_modules/@babel/types/lib/definitions/utils.js.map +++ b/node_modules/@babel/types/lib/definitions/utils.js.map @@ -1 +1 @@ -{"version":3,"names":["_is","require","_validate","VISITOR_KEYS","exports","ALIAS_KEYS","FLIPPED_ALIAS_KEYS","NODE_FIELDS","BUILDER_KEYS","DEPRECATED_KEYS","NODE_PARENT_VALIDATIONS","getType","val","Array","isArray","validate","typeIs","typeName","assertNodeType","validateType","validateOptional","optional","validateOptionalType","arrayOf","elementType","chain","assertValueType","assertEach","arrayOfType","validateArrayOfType","callback","validator","node","key","i","length","subkey","v","process","env","BABEL_TYPES_8_BREAKING","validateChild","each","assertOneOf","values","indexOf","TypeError","JSON","stringify","oneOf","types","type","is","oneOfNodeTypes","assertNodeOrValueType","oneOfNodeOrValueTypes","valid","assertShape","shape","errors","property","Object","keys","validateField","error","push","message","join","shapeOf","assertOptionalChainStart","_current","current","callee","object","fns","args","fn","chainOf","Error","validTypeOpts","validFieldKeys","store","defineAliasedType","aliases","opts","defined","_store$opts$inherits$","_defined","inherits","slice","additional","filter","a","includes","unshift","defineType","fields","getOwnPropertyNames","field","def","default","deprecated","visitor","builder","k","deprecatedAlias","concat","undefined","forEach","alias"],"sources":["../../src/definitions/utils.ts"],"sourcesContent":["import is from \"../validators/is.ts\";\nimport { validateField, validateChild } from \"../validators/validate.ts\";\nimport type * as t from \"../index.ts\";\n\nexport const VISITOR_KEYS: Record<string, string[]> = {};\nexport const ALIAS_KEYS: Partial<Record<NodeTypesWithoutComment, string[]>> =\n {};\nexport const FLIPPED_ALIAS_KEYS: Record<string, NodeTypesWithoutComment[]> = {};\nexport const NODE_FIELDS: Record<string, FieldDefinitions> = {};\nexport const BUILDER_KEYS: Record<string, string[]> = {};\nexport const DEPRECATED_KEYS: Record<string, NodeTypesWithoutComment> = {};\nexport const NODE_PARENT_VALIDATIONS: Record<string, Validator> = {};\n\nfunction getType(val: any) {\n if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n}\n\ntype NodeTypesWithoutComment = t.Node[\"type\"] | keyof t.Aliases;\n\ntype NodeTypes = NodeTypesWithoutComment | t.Comment[\"type\"];\n\ntype PrimitiveTypes = ReturnType<typeof getType>;\n\ntype FieldDefinitions = {\n [x: string]: FieldOptions;\n};\n\ntype DefineTypeOpts = {\n fields?: FieldDefinitions;\n visitor?: Array<string>;\n aliases?: Array<string>;\n builder?: Array<string>;\n inherits?: NodeTypes;\n deprecatedAlias?: string;\n validate?: Validator;\n};\n\nexport type Validator = (\n | { type: PrimitiveTypes }\n | { each: Validator }\n | { chainOf: Validator[] }\n | { oneOf: any[] }\n | { oneOfNodeTypes: NodeTypes[] }\n | { oneOfNodeOrValueTypes: (NodeTypes | PrimitiveTypes)[] }\n | { shapeOf: { [x: string]: FieldOptions } }\n | {}\n) &\n ((node: t.Node, key: string, val: any) => void);\n\nexport type FieldOptions = {\n default?: string | number | boolean | [];\n optional?: boolean;\n deprecated?: boolean;\n validate?: Validator;\n};\n\nexport function validate(validate: Validator): FieldOptions {\n return { validate };\n}\n\nexport function typeIs(typeName: NodeTypes | NodeTypes[]) {\n return typeof typeName === \"string\"\n ? assertNodeType(typeName)\n : assertNodeType(...typeName);\n}\n\nexport function validateType(typeName: NodeTypes | NodeTypes[]) {\n return validate(typeIs(typeName));\n}\n\nexport function validateOptional(validate: Validator): FieldOptions {\n return { validate, optional: true };\n}\n\nexport function validateOptionalType(\n typeName: NodeTypes | NodeTypes[],\n): FieldOptions {\n return { validate: typeIs(typeName), optional: true };\n}\n\nexport function arrayOf(elementType: Validator): Validator {\n return chain(assertValueType(\"array\"), assertEach(elementType));\n}\n\nexport function arrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return arrayOf(typeIs(typeName));\n}\n\nexport function validateArrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return validate(arrayOfType(typeName));\n}\n\nexport function assertEach(callback: Validator): Validator {\n function validator(node: t.Node, key: string, val: any) {\n if (!Array.isArray(val)) return;\n\n for (let i = 0; i < val.length; i++) {\n const subkey = `${key}[${i}]`;\n const v = val[i];\n callback(node, subkey, v);\n if (process.env.BABEL_TYPES_8_BREAKING) validateChild(node, subkey, v);\n }\n }\n validator.each = callback;\n return validator;\n}\n\nexport function assertOneOf(...values: Array<any>): Validator {\n function validate(node: any, key: string, val: any) {\n if (values.indexOf(val) < 0) {\n throw new TypeError(\n `Property ${key} expected value to be one of ${JSON.stringify(\n values,\n )} but got ${JSON.stringify(val)}`,\n );\n }\n }\n\n validate.oneOf = values;\n\n return validate;\n}\n\nexport function assertNodeType(...types: NodeTypes[]): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeTypes = types;\n\n return validate;\n}\n\nexport function assertNodeOrValueType(\n ...types: (NodeTypes | PrimitiveTypes)[]\n): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (getType(val) === type || is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeOrValueTypes = types;\n\n return validate;\n}\n\nexport function assertValueType(type: PrimitiveTypes): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const valid = getType(val) === type;\n\n if (!valid) {\n throw new TypeError(\n `Property ${key} expected type of ${type} but got ${getType(val)}`,\n );\n }\n }\n\n validate.type = type;\n\n return validate;\n}\n\nexport function assertShape(shape: { [x: string]: FieldOptions }): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const errors = [];\n for (const property of Object.keys(shape)) {\n try {\n validateField(node, property, val[property], shape[property]);\n } catch (error) {\n if (error instanceof TypeError) {\n errors.push(error.message);\n continue;\n }\n throw error;\n }\n }\n if (errors.length) {\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected to have the following:\\n${errors.join(\"\\n\")}`,\n );\n }\n }\n\n validate.shapeOf = shape;\n\n return validate;\n}\n\nexport function assertOptionalChainStart(): Validator {\n function validate(node: t.Node) {\n let current = node;\n while (node) {\n const { type } = current;\n if (type === \"OptionalCallExpression\") {\n if (current.optional) return;\n current = current.callee;\n continue;\n }\n\n if (type === \"OptionalMemberExpression\") {\n if (current.optional) return;\n current = current.object;\n continue;\n }\n\n break;\n }\n\n throw new TypeError(\n `Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${current?.type}`,\n );\n }\n\n return validate;\n}\n\nexport function chain(...fns: Array<Validator>): Validator {\n function validate(...args: Parameters<Validator>) {\n for (const fn of fns) {\n fn(...args);\n }\n }\n validate.chainOf = fns;\n\n if (\n fns.length >= 2 &&\n \"type\" in fns[0] &&\n fns[0].type === \"array\" &&\n !(\"each\" in fns[1])\n ) {\n throw new Error(\n `An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator.`,\n );\n }\n\n return validate;\n}\n\nconst validTypeOpts = [\n \"aliases\",\n \"builder\",\n \"deprecatedAlias\",\n \"fields\",\n \"inherits\",\n \"visitor\",\n \"validate\",\n];\nconst validFieldKeys = [\"default\", \"optional\", \"deprecated\", \"validate\"];\n\nconst store = {} as Record<string, DefineTypeOpts>;\n\n// Wraps defineType to ensure these aliases are included.\nexport function defineAliasedType(...aliases: string[]) {\n return (type: string, opts: DefineTypeOpts = {}) => {\n let defined = opts.aliases;\n if (!defined) {\n if (opts.inherits) defined = store[opts.inherits].aliases?.slice();\n defined ??= [];\n opts.aliases = defined;\n }\n const additional = aliases.filter(a => !defined.includes(a));\n defined.unshift(...additional);\n defineType(type, opts);\n };\n}\n\nexport default function defineType(type: string, opts: DefineTypeOpts = {}) {\n const inherits = (opts.inherits && store[opts.inherits]) || {};\n\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 (\n Array.isArray(def) ? def.length > 0 : def && typeof def === \"object\"\n ) {\n throw new Error(\n \"field defaults can only be primitives or empty arrays currently\",\n );\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\n const visitor: Array<string> = opts.visitor || inherits.visitor || [];\n const aliases: Array<string> = opts.aliases || inherits.aliases || [];\n const builder: Array<string> =\n opts.builder || inherits.builder || opts.visitor || [];\n\n for (const k of Object.keys(opts)) {\n if (validTypeOpts.indexOf(k) === -1) {\n throw new Error(`Unknown type option \"${k}\" on ${type}`);\n }\n }\n\n if (opts.deprecatedAlias) {\n DEPRECATED_KEYS[opts.deprecatedAlias] = type as NodeTypesWithoutComment;\n }\n\n // ensure all field keys are represented in `fields`\n for (const key of visitor.concat(builder)) {\n fields[key] = fields[key] || {};\n }\n\n for (const key of Object.keys(fields)) {\n const field = fields[key];\n\n if (field.default !== undefined && builder.indexOf(key) === -1) {\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\n for (const k of Object.keys(field)) {\n if (validFieldKeys.indexOf(k) === -1) {\n throw new Error(`Unknown field key \"${k}\" on ${type}.${key}`);\n }\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 as NodeTypesWithoutComment] = opts.aliases = aliases;\n aliases.forEach(alias => {\n FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || [];\n FLIPPED_ALIAS_KEYS[alias].push(type as NodeTypesWithoutComment);\n });\n\n if (opts.validate) {\n NODE_PARENT_VALIDATIONS[type] = opts.validate;\n }\n\n store[type] = opts;\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_is","require","_validate","VISITOR_KEYS","exports","ALIAS_KEYS","FLIPPED_ALIAS_KEYS","NODE_FIELDS","BUILDER_KEYS","DEPRECATED_KEYS","NODE_PARENT_VALIDATIONS","getType","val","Array","isArray","validate","typeIs","typeName","assertNodeType","validateType","validateOptional","optional","validateOptionalType","arrayOf","elementType","chain","assertValueType","assertEach","arrayOfType","validateArrayOfType","callback","validator","node","key","i","length","subkey","v","process","env","BABEL_TYPES_8_BREAKING","validateChild","each","assertOneOf","values","indexOf","TypeError","JSON","stringify","oneOf","types","type","is","oneOfNodeTypes","assertNodeOrValueType","oneOfNodeOrValueTypes","valid","assertShape","shape","errors","property","Object","keys","validateField","error","push","message","join","shapeOf","assertOptionalChainStart","_current","current","callee","object","fns","args","fn","chainOf","Error","validTypeOpts","validFieldKeys","store","defineAliasedType","aliases","opts","defined","_store$opts$inherits$","_defined","inherits","slice","additional","filter","a","includes","unshift","defineType","fields","getOwnPropertyNames","field","def","default","deprecated","visitor","builder","k","deprecatedAlias","concat","undefined","forEach","alias"],"sources":["../../src/definitions/utils.ts"],"sourcesContent":["import is from \"../validators/is.ts\";\nimport { validateField, validateChild } from \"../validators/validate.ts\";\nimport type * as t from \"../index.ts\";\n\nexport const VISITOR_KEYS: Record<string, string[]> = {};\nexport const ALIAS_KEYS: Partial<Record<NodeTypesWithoutComment, string[]>> =\n {};\nexport const FLIPPED_ALIAS_KEYS: Record<string, NodeTypesWithoutComment[]> = {};\nexport const NODE_FIELDS: Record<string, FieldDefinitions> = {};\nexport const BUILDER_KEYS: Record<string, string[]> = {};\nexport const DEPRECATED_KEYS: Record<string, NodeTypesWithoutComment> = {};\nexport const NODE_PARENT_VALIDATIONS: Record<string, Validator> = {};\n\nfunction getType(val: any) {\n if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n}\n\ntype NodeTypesWithoutComment = t.Node[\"type\"] | keyof t.Aliases;\n\ntype NodeTypes = NodeTypesWithoutComment | t.Comment[\"type\"];\n\ntype PrimitiveTypes = ReturnType<typeof getType>;\n\ntype FieldDefinitions = {\n [x: string]: FieldOptions;\n};\n\ntype DefineTypeOpts = {\n fields?: FieldDefinitions;\n visitor?: Array<string>;\n aliases?: Array<string>;\n builder?: Array<string>;\n inherits?: NodeTypes;\n deprecatedAlias?: string;\n validate?: Validator;\n};\n\nexport type Validator = (\n | { type: PrimitiveTypes }\n | { each: Validator }\n | { chainOf: Validator[] }\n | { oneOf: any[] }\n | { oneOfNodeTypes: NodeTypes[] }\n | { oneOfNodeOrValueTypes: (NodeTypes | PrimitiveTypes)[] }\n | { shapeOf: { [x: string]: FieldOptions } }\n | {}\n) &\n ((node: t.Node, key: string, val: any) => void);\n\nexport type FieldOptions = {\n default?: string | number | boolean | [];\n optional?: boolean;\n deprecated?: boolean;\n validate?: Validator;\n};\n\nexport function validate(validate: Validator): FieldOptions {\n return { validate };\n}\n\nexport function typeIs(typeName: NodeTypes | NodeTypes[]) {\n return typeof typeName === \"string\"\n ? assertNodeType(typeName)\n : assertNodeType(...typeName);\n}\n\nexport function validateType(typeName: NodeTypes | NodeTypes[]) {\n return validate(typeIs(typeName));\n}\n\nexport function validateOptional(validate: Validator): FieldOptions {\n return { validate, optional: true };\n}\n\nexport function validateOptionalType(\n typeName: NodeTypes | NodeTypes[],\n): FieldOptions {\n return { validate: typeIs(typeName), optional: true };\n}\n\nexport function arrayOf(elementType: Validator): Validator {\n return chain(assertValueType(\"array\"), assertEach(elementType));\n}\n\nexport function arrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return arrayOf(typeIs(typeName));\n}\n\nexport function validateArrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return validate(arrayOfType(typeName));\n}\n\nexport function assertEach(callback: Validator): Validator {\n function validator(node: t.Node, key: string, val: any) {\n if (!Array.isArray(val)) return;\n\n for (let i = 0; i < val.length; i++) {\n const subkey = `${key}[${i}]`;\n const v = val[i];\n callback(node, subkey, v);\n if (process.env.BABEL_TYPES_8_BREAKING) validateChild(node, subkey, v);\n }\n }\n validator.each = callback;\n return validator;\n}\n\nexport function assertOneOf(...values: Array<any>): Validator {\n function validate(node: any, key: string, val: any) {\n if (values.indexOf(val) < 0) {\n throw new TypeError(\n `Property ${key} expected value to be one of ${JSON.stringify(\n values,\n )} but got ${JSON.stringify(val)}`,\n );\n }\n }\n\n validate.oneOf = values;\n\n return validate;\n}\n\nexport function assertNodeType(...types: NodeTypes[]): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeTypes = types;\n\n return validate;\n}\n\nexport function assertNodeOrValueType(\n ...types: (NodeTypes | PrimitiveTypes)[]\n): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (getType(val) === type || is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeOrValueTypes = types;\n\n return validate;\n}\n\nexport function assertValueType(type: PrimitiveTypes): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const valid = getType(val) === type;\n\n if (!valid) {\n throw new TypeError(\n `Property ${key} expected type of ${type} but got ${getType(val)}`,\n );\n }\n }\n\n validate.type = type;\n\n return validate;\n}\n\nexport function assertShape(shape: { [x: string]: FieldOptions }): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const errors = [];\n for (const property of Object.keys(shape)) {\n try {\n validateField(node, property, val[property], shape[property]);\n } catch (error) {\n if (error instanceof TypeError) {\n errors.push(error.message);\n continue;\n }\n throw error;\n }\n }\n if (errors.length) {\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected to have the following:\\n${errors.join(\"\\n\")}`,\n );\n }\n }\n\n validate.shapeOf = shape;\n\n return validate;\n}\n\nexport function assertOptionalChainStart(): Validator {\n function validate(node: t.Node) {\n let current = node;\n while (node) {\n const { type } = current;\n if (type === \"OptionalCallExpression\") {\n if (current.optional) return;\n current = current.callee;\n continue;\n }\n\n if (type === \"OptionalMemberExpression\") {\n if (current.optional) return;\n current = current.object;\n continue;\n }\n\n break;\n }\n\n throw new TypeError(\n `Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${current?.type}`,\n );\n }\n\n return validate;\n}\n\nexport function chain(...fns: Array<Validator>): Validator {\n function validate(...args: Parameters<Validator>) {\n for (const fn of fns) {\n fn(...args);\n }\n }\n validate.chainOf = fns;\n\n if (\n fns.length >= 2 &&\n \"type\" in fns[0] &&\n fns[0].type === \"array\" &&\n !(\"each\" in fns[1])\n ) {\n throw new Error(\n `An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator.`,\n );\n }\n\n return validate;\n}\n\nconst validTypeOpts = [\n \"aliases\",\n \"builder\",\n \"deprecatedAlias\",\n \"fields\",\n \"inherits\",\n \"visitor\",\n \"validate\",\n];\nconst validFieldKeys = [\"default\", \"optional\", \"deprecated\", \"validate\"];\n\nconst store = {} as Record<string, DefineTypeOpts>;\n\n// Wraps defineType to ensure these aliases are included.\nexport function defineAliasedType(...aliases: string[]) {\n return (type: string, opts: DefineTypeOpts = {}) => {\n let defined = opts.aliases;\n if (!defined) {\n if (opts.inherits) defined = store[opts.inherits].aliases?.slice();\n defined ??= [];\n opts.aliases = defined;\n }\n const additional = aliases.filter(a => !defined.includes(a));\n defined.unshift(...additional);\n defineType(type, opts);\n };\n}\n\nexport default function defineType(type: string, opts: DefineTypeOpts = {}) {\n const inherits = (opts.inherits && store[opts.inherits]) || {};\n\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 (\n Array.isArray(def) ? def.length > 0 : def && typeof def === \"object\"\n ) {\n throw new Error(\n \"field defaults can only be primitives or empty arrays currently\",\n );\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\n const visitor: Array<string> = opts.visitor || inherits.visitor || [];\n const aliases: Array<string> = opts.aliases || inherits.aliases || [];\n const builder: Array<string> =\n opts.builder || inherits.builder || opts.visitor || [];\n\n for (const k of Object.keys(opts)) {\n if (validTypeOpts.indexOf(k) === -1) {\n throw new Error(`Unknown type option \"${k}\" on ${type}`);\n }\n }\n\n if (opts.deprecatedAlias) {\n DEPRECATED_KEYS[opts.deprecatedAlias] = type as NodeTypesWithoutComment;\n }\n\n // ensure all field keys are represented in `fields`\n for (const key of visitor.concat(builder)) {\n fields[key] = fields[key] || {};\n }\n\n for (const key of Object.keys(fields)) {\n const field = fields[key];\n\n if (field.default !== undefined && builder.indexOf(key) === -1) {\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\n for (const k of Object.keys(field)) {\n if (validFieldKeys.indexOf(k) === -1) {\n throw new Error(`Unknown field key \"${k}\" on ${type}.${key}`);\n }\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 as NodeTypesWithoutComment] = opts.aliases = aliases;\n aliases.forEach(alias => {\n FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || [];\n FLIPPED_ALIAS_KEYS[alias].push(type as NodeTypesWithoutComment);\n });\n\n if (opts.validate) {\n NODE_PARENT_VALIDATIONS[type] = opts.validate;\n }\n\n store[type] = opts;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/index-legacy.d.ts b/node_modules/@babel/types/lib/index-legacy.d.ts index e745001d..8ecd7dce 100644 --- a/node_modules/@babel/types/lib/index-legacy.d.ts +++ b/node_modules/@babel/types/lib/index-legacy.d.ts @@ -1318,7 +1318,6 @@ export interface TSPropertySignature extends BaseNode { type: "TSPropertySignature"; key: Expression; typeAnnotation: TSTypeAnnotation | null; - initializer: Expression | null; computed: boolean; kind: "get" | "set"; optional: boolean | null; @@ -1977,7 +1976,7 @@ export function tsDeclareMethod(decorators: Array<Decorator> | null | undefined, export function tsQualifiedName(left: TSEntityName, right: Identifier): TSQualifiedName; export function tsCallSignatureDeclaration(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSCallSignatureDeclaration; export function tsConstructSignatureDeclaration(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSConstructSignatureDeclaration; -export function tsPropertySignature(key: Expression, typeAnnotation?: TSTypeAnnotation | null, initializer?: Expression | null): TSPropertySignature; +export function tsPropertySignature(key: Expression, typeAnnotation?: TSTypeAnnotation | null): TSPropertySignature; export function tsMethodSignature(key: Expression, typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSMethodSignature; export function tsIndexSignature(parameters: Array<Identifier>, typeAnnotation?: TSTypeAnnotation | null): TSIndexSignature; export function tsAnyKeyword(): TSAnyKeyword; diff --git a/node_modules/@babel/types/lib/index.d.ts b/node_modules/@babel/types/lib/index.d.ts index 1e3c2593..33d23a7b 100644 --- a/node_modules/@babel/types/lib/index.d.ts +++ b/node_modules/@babel/types/lib/index.d.ts @@ -1155,7 +1155,6 @@ interface TSPropertySignature extends BaseNode { type: "TSPropertySignature"; key: Expression; typeAnnotation?: TSTypeAnnotation | null; - initializer?: Expression | null; computed?: boolean; kind: "get" | "set"; optional?: boolean | null; @@ -2353,7 +2352,7 @@ declare function tsCallSignatureDeclaration(typeParameters: TSTypeParameterDecla declare function tsConstructSignatureDeclaration(typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSConstructSignatureDeclaration; -declare function tsPropertySignature(key: Expression, typeAnnotation?: TSTypeAnnotation | null, initializer?: Expression | null): TSPropertySignature; +declare function tsPropertySignature(key: Expression, typeAnnotation?: TSTypeAnnotation | null): TSPropertySignature; declare function tsMethodSignature(key: Expression, typeParameters: TSTypeParameterDeclaration | null | undefined, parameters: Array<ArrayPattern | Identifier | ObjectPattern | RestElement>, typeAnnotation?: TSTypeAnnotation | null): TSMethodSignature; @@ -2652,16 +2651,6 @@ declare namespace toKeyAlias { } //# sourceMappingURL=toKeyAlias.d.ts.map -/** - * Turn an array of statement `nodes` into a `SequenceExpression`. - * - * Variable declarations are turned into simple assignments and their - * declarations hoisted to the top of the current scope. - * - * Expression statements are just resolved to their expression. - */ -declare function toSequenceExpression(nodes: ReadonlyArray<Node>, scope: any): SequenceExpression | undefined; - declare const _default$2: { (node: AssignmentExpression, ignore?: boolean): ExpressionStatement; <T extends Statement>(node: T, ignore: false): T; @@ -2770,9 +2759,9 @@ declare function removePropertiesDeep<T extends Node>(tree: T, opts?: { */ declare function removeTypeDuplicates(nodesIn: ReadonlyArray<FlowType | false | null | undefined>): FlowType[]; -declare function getBindingIdentifiers(node: Node, duplicates: true, outerOnly?: boolean): Record<string, Array<Identifier>>; -declare function getBindingIdentifiers(node: Node, duplicates?: false, outerOnly?: boolean): Record<string, Identifier>; -declare function getBindingIdentifiers(node: Node, duplicates?: boolean, outerOnly?: boolean): Record<string, Identifier> | Record<string, Array<Identifier>>; +declare function getBindingIdentifiers(node: Node, duplicates: true, outerOnly?: boolean, newBindingsOnly?: boolean): Record<string, Array<Identifier>>; +declare function getBindingIdentifiers(node: Node, duplicates?: false, outerOnly?: boolean, newBindingsOnly?: boolean): Record<string, Identifier>; +declare function getBindingIdentifiers(node: Node, duplicates?: boolean, outerOnly?: boolean, newBindingsOnly?: boolean): Record<string, Identifier> | Record<string, Array<Identifier>>; declare namespace getBindingIdentifiers { var keys: { DeclareClass: string[]; @@ -3277,4 +3266,4 @@ declare const react: { buildChildren: typeof buildChildren; }; -export { ACCESSOR_TYPES, ALIAS_KEYS, ASSIGNMENT_OPERATORS, Accessor, Aliases, AnyTypeAnnotation, ArgumentPlaceholder, ArrayExpression, ArrayPattern, ArrayTypeAnnotation, ArrowFunctionExpression, AssignmentExpression, AssignmentPattern, AwaitExpression, BINARY_OPERATORS, BINARY_TYPES, BLOCKPARENT_TYPES, BLOCK_SCOPED_SYMBOL, BLOCK_TYPES, BOOLEAN_BINARY_OPERATORS, BOOLEAN_NUMBER_BINARY_OPERATORS, BOOLEAN_UNARY_OPERATORS, BUILDER_KEYS, BigIntLiteral, Binary, BinaryExpression, BindExpression, Block, BlockParent, BlockStatement, BooleanLiteral, BooleanLiteralTypeAnnotation, BooleanTypeAnnotation, BreakStatement, CLASS_TYPES, COMMENT_KEYS, COMPARISON_BINARY_OPERATORS, COMPLETIONSTATEMENT_TYPES, CONDITIONAL_TYPES, CallExpression, CatchClause, Class, ClassAccessorProperty, ClassBody, ClassDeclaration, ClassExpression, ClassImplements, ClassMethod, ClassPrivateMethod, ClassPrivateProperty, ClassProperty, Comment, CommentBlock, CommentLine, CommentTypeShorthand, CompletionStatement, Conditional, ConditionalExpression, ContinueStatement, DECLARATION_TYPES, DEPRECATED_ALIASES, DEPRECATED_KEYS, DebuggerStatement, DecimalLiteral, Declaration, DeclareClass, DeclareExportAllDeclaration, DeclareExportDeclaration, DeclareFunction, DeclareInterface, DeclareModule, DeclareModuleExports, DeclareOpaqueType, DeclareTypeAlias, DeclareVariable, DeclaredPredicate, Decorator, DeprecatedAliases, Directive, DirectiveLiteral, DoExpression, DoWhileStatement, ENUMBODY_TYPES, ENUMMEMBER_TYPES, EQUALITY_BINARY_OPERATORS, EXPORTDECLARATION_TYPES, EXPRESSIONWRAPPER_TYPES, EXPRESSION_TYPES, EmptyStatement, EmptyTypeAnnotation, EnumBody, EnumBooleanBody, EnumBooleanMember, EnumDeclaration, EnumDefaultedMember, EnumMember, EnumNumberBody, EnumNumberMember, EnumStringBody, EnumStringMember, EnumSymbolBody, ExistsTypeAnnotation, ExportAllDeclaration, ExportDeclaration, ExportDefaultDeclaration, ExportDefaultSpecifier, ExportNamedDeclaration, ExportNamespaceSpecifier, ExportSpecifier, Expression, ExpressionStatement, ExpressionWrapper, FLATTENABLE_KEYS, FLIPPED_ALIAS_KEYS, FLOWBASEANNOTATION_TYPES, FLOWDECLARATION_TYPES, FLOWPREDICATE_TYPES, FLOWTYPE_TYPES, FLOW_TYPES, FORXSTATEMENT_TYPES, FOR_INIT_KEYS, FOR_TYPES, FUNCTIONPARENT_TYPES, FUNCTION_TYPES, FieldOptions, File, Flow, FlowBaseAnnotation, FlowDeclaration, FlowPredicate, FlowType, For, ForInStatement, ForOfStatement, ForStatement, ForXStatement, Function, FunctionDeclaration, FunctionExpression, FunctionParent, FunctionTypeAnnotation, FunctionTypeParam, GenericTypeAnnotation, IMMUTABLE_TYPES, IMPORTOREXPORTDECLARATION_TYPES, INHERIT_KEYS, Identifier, IfStatement, Immutable, Import, ImportAttribute, ImportDeclaration, ImportDefaultSpecifier, ImportExpression, ImportNamespaceSpecifier, ImportOrExportDeclaration, ImportSpecifier, IndexedAccessType, InferredPredicate, InterfaceDeclaration, InterfaceExtends, InterfaceTypeAnnotation, InterpreterDirective, IntersectionTypeAnnotation, JSX, JSXAttribute, JSXClosingElement, JSXClosingFragment, JSXElement, JSXEmptyExpression, JSXExpressionContainer, JSXFragment, JSXIdentifier, JSXMemberExpression, JSXNamespacedName, JSXOpeningElement, JSXOpeningFragment, JSXSpreadAttribute, JSXSpreadChild, JSXText, JSX_TYPES, LITERAL_TYPES, LOGICAL_OPERATORS, LOOP_TYPES, LVAL_TYPES, LVal, LabeledStatement, Literal, LogicalExpression, Loop, METHOD_TYPES, MISCELLANEOUS_TYPES, MODULEDECLARATION_TYPES, MODULESPECIFIER_TYPES, MemberExpression, MetaProperty, Method, Miscellaneous, MixedTypeAnnotation, ModuleDeclaration, ModuleExpression, ModuleSpecifier, NODE_FIELDS, NODE_PARENT_VALIDATIONS, NOT_LOCAL_BINDING, NUMBER_BINARY_OPERATORS, NUMBER_UNARY_OPERATORS, NewExpression, Node, Noop, NullLiteral, NullLiteralTypeAnnotation, NullableTypeAnnotation, NumberLiteral$1 as NumberLiteral, NumberLiteralTypeAnnotation, NumberTypeAnnotation, NumericLiteral, OBJECTMEMBER_TYPES, ObjectExpression, ObjectMember, ObjectMethod, ObjectPattern, ObjectProperty, ObjectTypeAnnotation, ObjectTypeCallProperty, ObjectTypeIndexer, ObjectTypeInternalSlot, ObjectTypeProperty, ObjectTypeSpreadProperty, OpaqueType, OptionalCallExpression, OptionalIndexedAccessType, OptionalMemberExpression, PATTERNLIKE_TYPES, PATTERN_TYPES, PLACEHOLDERS, PLACEHOLDERS_ALIAS, PLACEHOLDERS_FLIPPED_ALIAS, PRIVATE_TYPES, PROPERTY_TYPES, PUREISH_TYPES, ParentMaps, ParenthesizedExpression, Pattern, PatternLike, PipelineBareFunction, PipelinePrimaryTopicReference, PipelineTopicExpression, Placeholder, Private, PrivateName, Program, Property, Pureish, QualifiedTypeIdentifier, RecordExpression, RegExpLiteral, RegexLiteral$1 as RegexLiteral, Options as RemovePropertiesOptions, RestElement, RestProperty$1 as RestProperty, ReturnStatement, SCOPABLE_TYPES, STANDARDIZED_TYPES, STATEMENT_OR_BLOCK_KEYS, STATEMENT_TYPES, STRING_UNARY_OPERATORS, Scopable, SequenceExpression, SourceLocation, SpreadElement, SpreadProperty$1 as SpreadProperty, Standardized, Statement, StaticBlock, StringLiteral, StringLiteralTypeAnnotation, StringTypeAnnotation, Super, SwitchCase, SwitchStatement, SymbolTypeAnnotation, TERMINATORLESS_TYPES, TSAnyKeyword, TSArrayType, TSAsExpression, TSBASETYPE_TYPES, TSBaseType, TSBigIntKeyword, TSBooleanKeyword, TSCallSignatureDeclaration, TSConditionalType, TSConstructSignatureDeclaration, TSConstructorType, TSDeclareFunction, TSDeclareMethod, TSENTITYNAME_TYPES, TSEntityName, 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, TSTYPEELEMENT_TYPES, TSTYPE_TYPES, TSThisType, TSTupleType, TSType, TSTypeAliasDeclaration, TSTypeAnnotation, TSTypeAssertion, TSTypeElement, TSTypeLiteral, TSTypeOperator, TSTypeParameter, TSTypeParameterDeclaration, TSTypeParameterInstantiation, TSTypePredicate, TSTypeQuery, TSTypeReference, TSUndefinedKeyword, TSUnionType, TSUnknownKeyword, TSVoidKeyword, TYPES, TYPESCRIPT_TYPES, TaggedTemplateExpression, TemplateElement, TemplateLiteral, Terminatorless, ThisExpression, ThisTypeAnnotation, ThrowStatement, TopicReference, TraversalAncestors, TraversalHandler, TraversalHandlers, TryStatement, TupleExpression, TupleTypeAnnotation, TypeAlias, TypeAnnotation, TypeCastExpression, TypeParameter, TypeParameterDeclaration, TypeParameterInstantiation, TypeScript, TypeofTypeAnnotation, UNARYLIKE_TYPES, UNARY_OPERATORS, UPDATE_OPERATORS, USERWHITESPACABLE_TYPES, UnaryExpression, UnaryLike, UnionTypeAnnotation, UpdateExpression, UserWhitespacable, V8IntrinsicIdentifier, VISITOR_KEYS, VariableDeclaration, VariableDeclarator, Variance, VoidTypeAnnotation, WHILE_TYPES, While, WhileStatement, WithStatement, YieldExpression, deprecationWarning as __internal__deprecationWarning, addComment, addComments, anyTypeAnnotation, appendToMemberExpression, argumentPlaceholder, arrayExpression, arrayPattern, arrayTypeAnnotation, arrowFunctionExpression, assertAccessor, assertAnyTypeAnnotation, assertArgumentPlaceholder, assertArrayExpression, assertArrayPattern, assertArrayTypeAnnotation, assertArrowFunctionExpression, assertAssignmentExpression, assertAssignmentPattern, assertAwaitExpression, assertBigIntLiteral, 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, assertFunctionParent, assertFunctionTypeAnnotation, assertFunctionTypeParam, assertGenericTypeAnnotation, assertIdentifier, assertIfStatement, assertImmutable, assertImport, assertImportAttribute, assertImportDeclaration, assertImportDefaultSpecifier, assertImportExpression, assertImportNamespaceSpecifier, assertImportOrExportDeclaration, assertImportSpecifier, assertIndexedAccessType, assertInferredPredicate, assertInterfaceDeclaration, assertInterfaceExtends, assertInterfaceTypeAnnotation, assertInterpreterDirective, assertIntersectionTypeAnnotation, assertJSX, assertJSXAttribute, assertJSXClosingElement, assertJSXClosingFragment, assertJSXElement, assertJSXEmptyExpression, assertJSXExpressionContainer, assertJSXFragment, assertJSXIdentifier, assertJSXMemberExpression, assertJSXNamespacedName, assertJSXOpeningElement, assertJSXOpeningFragment, assertJSXSpreadAttribute, assertJSXSpreadChild, assertJSXText, assertLVal, assertLabeledStatement, assertLiteral, assertLogicalExpression, assertLoop, assertMemberExpression, assertMetaProperty, assertMethod, assertMiscellaneous, assertMixedTypeAnnotation, assertModuleDeclaration, assertModuleExpression, assertModuleSpecifier, assertNewExpression, assertNode, 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, 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, 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, assertVoidTypeAnnotation, assertWhile, assertWhileStatement, assertWithStatement, assertYieldExpression, assignmentExpression, assignmentPattern, awaitExpression, bigIntLiteral, binaryExpression, bindExpression, blockStatement, booleanLiteral, booleanLiteralTypeAnnotation, booleanTypeAnnotation, breakStatement, buildMatchMemberExpression, buildUndefinedNode, callExpression, catchClause, classAccessorProperty, classBody, classDeclaration, classExpression, classImplements, classMethod, classPrivateMethod, classPrivateProperty, classProperty, clone, cloneDeep, cloneDeepWithoutLoc, cloneNode, cloneWithoutLoc, conditionalExpression, continueStatement, createFlowUnionType, createTSUnionType, _default$4 as createTypeAnnotationBasedOnTypeof, createFlowUnionType as createUnionTypeAnnotation, debuggerStatement, decimalLiteral, declareClass, declareExportAllDeclaration, declareExportDeclaration, declareFunction, declareInterface, declareModule, declareModuleExports, declareOpaqueType, declareTypeAlias, declareVariable, declaredPredicate, decorator, directive, directiveLiteral, doExpression, doWhileStatement, emptyStatement, emptyTypeAnnotation, ensureBlock, enumBooleanBody, enumBooleanMember, enumDeclaration, enumDefaultedMember, enumNumberBody, enumNumberMember, enumStringBody, enumStringMember, enumSymbolBody, existsTypeAnnotation, exportAllDeclaration, exportDefaultDeclaration, exportDefaultSpecifier, exportNamedDeclaration, exportNamespaceSpecifier, exportSpecifier, expressionStatement, file, forInStatement, forOfStatement, forStatement, functionDeclaration, functionExpression, functionTypeAnnotation, functionTypeParam, genericTypeAnnotation, getBindingIdentifiers, _default as getOuterBindingIdentifiers, identifier, ifStatement, _import as import, importAttribute, importDeclaration, importDefaultSpecifier, importExpression, importNamespaceSpecifier, importSpecifier, indexedAccessType, inferredPredicate, inheritInnerComments, inheritLeadingComments, inheritTrailingComments, inherits, inheritsComments, interfaceDeclaration, interfaceExtends, interfaceTypeAnnotation, interpreterDirective, intersectionTypeAnnotation, is, isAccessor, isAnyTypeAnnotation, isArgumentPlaceholder, isArrayExpression, isArrayPattern, isArrayTypeAnnotation, isArrowFunctionExpression, isAssignmentExpression, isAssignmentPattern, isAwaitExpression, isBigIntLiteral, isBinary, isBinaryExpression, isBindExpression, isBinding, isBlock, isBlockParent, isBlockScoped, isBlockStatement, isBooleanLiteral, isBooleanLiteralTypeAnnotation, isBooleanTypeAnnotation, isBreakStatement, isCallExpression, isCatchClause, isClass, isClassAccessorProperty, isClassBody, isClassDeclaration, isClassExpression, isClassImplements, isClassMethod, isClassPrivateMethod, isClassPrivateProperty, isClassProperty, isCompletionStatement, isConditional, isConditionalExpression, isContinueStatement, isDebuggerStatement, isDecimalLiteral, isDeclaration, isDeclareClass, isDeclareExportAllDeclaration, isDeclareExportDeclaration, isDeclareFunction, isDeclareInterface, isDeclareModule, isDeclareModuleExports, isDeclareOpaqueType, isDeclareTypeAlias, isDeclareVariable, isDeclaredPredicate, isDecorator, isDirective, isDirectiveLiteral, isDoExpression, isDoWhileStatement, isEmptyStatement, isEmptyTypeAnnotation, isEnumBody, isEnumBooleanBody, isEnumBooleanMember, isEnumDeclaration, isEnumDefaultedMember, isEnumMember, isEnumNumberBody, isEnumNumberMember, isEnumStringBody, isEnumStringMember, isEnumSymbolBody, isExistsTypeAnnotation, isExportAllDeclaration, isExportDeclaration, isExportDefaultDeclaration, isExportDefaultSpecifier, isExportNamedDeclaration, isExportNamespaceSpecifier, isExportSpecifier, isExpression, isExpressionStatement, isExpressionWrapper, isFile, isFlow, isFlowBaseAnnotation, isFlowDeclaration, isFlowPredicate, isFlowType, isFor, isForInStatement, isForOfStatement, isForStatement, isForXStatement, isFunction, isFunctionDeclaration, isFunctionExpression, isFunctionParent, isFunctionTypeAnnotation, isFunctionTypeParam, isGenericTypeAnnotation, isIdentifier, isIfStatement, isImmutable, isImport, isImportAttribute, isImportDeclaration, isImportDefaultSpecifier, isImportExpression, isImportNamespaceSpecifier, isImportOrExportDeclaration, isImportSpecifier, isIndexedAccessType, isInferredPredicate, isInterfaceDeclaration, isInterfaceExtends, isInterfaceTypeAnnotation, isInterpreterDirective, isIntersectionTypeAnnotation, isJSX, isJSXAttribute, isJSXClosingElement, isJSXClosingFragment, isJSXElement, isJSXEmptyExpression, isJSXExpressionContainer, isJSXFragment, isJSXIdentifier, isJSXMemberExpression, isJSXNamespacedName, isJSXOpeningElement, isJSXOpeningFragment, isJSXSpreadAttribute, isJSXSpreadChild, isJSXText, isLVal, isLabeledStatement, isLet, isLiteral, isLogicalExpression, isLoop, isMemberExpression, isMetaProperty, isMethod, isMiscellaneous, isMixedTypeAnnotation, isModuleDeclaration, isModuleExpression, isModuleSpecifier, isNewExpression, isNode, isNodesEquivalent, isNoop, isNullLiteral, isNullLiteralTypeAnnotation, isNullableTypeAnnotation, isNumberLiteral, isNumberLiteralTypeAnnotation, isNumberTypeAnnotation, isNumericLiteral, isObjectExpression, isObjectMember, isObjectMethod, isObjectPattern, isObjectProperty, isObjectTypeAnnotation, isObjectTypeCallProperty, isObjectTypeIndexer, isObjectTypeInternalSlot, isObjectTypeProperty, isObjectTypeSpreadProperty, isOpaqueType, isOptionalCallExpression, isOptionalIndexedAccessType, isOptionalMemberExpression, isParenthesizedExpression, isPattern, isPatternLike, isPipelineBareFunction, isPipelinePrimaryTopicReference, isPipelineTopicExpression, isPlaceholder, isPlaceholderType, isPrivate, isPrivateName, isProgram, isProperty, isPureish, isQualifiedTypeIdentifier, isRecordExpression, isReferenced, isRegExpLiteral, isRegexLiteral, isRestElement, isRestProperty, isReturnStatement, isScopable, isScope, isSequenceExpression, isSpecifierDefault, isSpreadElement, isSpreadProperty, isStandardized, isStatement, isStaticBlock, isStringLiteral, isStringLiteralTypeAnnotation, isStringTypeAnnotation, isSuper, isSwitchCase, isSwitchStatement, isSymbolTypeAnnotation, isTSAnyKeyword, isTSArrayType, isTSAsExpression, isTSBaseType, isTSBigIntKeyword, isTSBooleanKeyword, isTSCallSignatureDeclaration, isTSConditionalType, isTSConstructSignatureDeclaration, isTSConstructorType, isTSDeclareFunction, isTSDeclareMethod, isTSEntityName, 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, 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, isType, isTypeAlias, isTypeAnnotation, isTypeCastExpression, isTypeParameter, isTypeParameterDeclaration, isTypeParameterInstantiation, isTypeScript, isTypeofTypeAnnotation, isUnaryExpression, isUnaryLike, isUnionTypeAnnotation, isUpdateExpression, isUserWhitespacable, isV8IntrinsicIdentifier, isValidES3Identifier, isValidIdentifier, isVar, isVariableDeclaration, isVariableDeclarator, isVariance, isVoidTypeAnnotation, isWhile, isWhileStatement, isWithStatement, isYieldExpression, jsxAttribute as jSXAttribute, jsxClosingElement as jSXClosingElement, jsxClosingFragment as jSXClosingFragment, jsxElement as jSXElement, jsxEmptyExpression as jSXEmptyExpression, jsxExpressionContainer as jSXExpressionContainer, jsxFragment as jSXFragment, jsxIdentifier as jSXIdentifier, jsxMemberExpression as jSXMemberExpression, jsxNamespacedName as jSXNamespacedName, jsxOpeningElement as jSXOpeningElement, jsxOpeningFragment as jSXOpeningFragment, jsxSpreadAttribute as jSXSpreadAttribute, jsxSpreadChild as jSXSpreadChild, jsxText as jSXText, jsxAttribute, jsxClosingElement, jsxClosingFragment, jsxElement, jsxEmptyExpression, jsxExpressionContainer, jsxFragment, jsxIdentifier, jsxMemberExpression, jsxNamespacedName, jsxOpeningElement, jsxOpeningFragment, jsxSpreadAttribute, jsxSpreadChild, jsxText, labeledStatement, logicalExpression, matchesPattern, memberExpression, metaProperty, mixedTypeAnnotation, moduleExpression, newExpression, noop, nullLiteral, nullLiteralTypeAnnotation, nullableTypeAnnotation, NumberLiteral as numberLiteral, numberLiteralTypeAnnotation, numberTypeAnnotation, numericLiteral, objectExpression, objectMethod, objectPattern, objectProperty, objectTypeAnnotation, objectTypeCallProperty, objectTypeIndexer, objectTypeInternalSlot, objectTypeProperty, objectTypeSpreadProperty, opaqueType, optionalCallExpression, optionalIndexedAccessType, optionalMemberExpression, parenthesizedExpression, pipelineBareFunction, pipelinePrimaryTopicReference, pipelineTopicExpression, placeholder, prependToMemberExpression, privateName, program, qualifiedTypeIdentifier, react, recordExpression, regExpLiteral, RegexLiteral as regexLiteral, removeComments, removeProperties, removePropertiesDeep, removeTypeDuplicates, restElement, RestProperty as restProperty, returnStatement, sequenceExpression, shallowEqual, spreadElement, SpreadProperty as spreadProperty, staticBlock, stringLiteral, stringLiteralTypeAnnotation, stringTypeAnnotation, _super as super, switchCase, switchStatement, symbolTypeAnnotation, tsAnyKeyword as tSAnyKeyword, tsArrayType as tSArrayType, tsAsExpression as tSAsExpression, tsBigIntKeyword as tSBigIntKeyword, tsBooleanKeyword as tSBooleanKeyword, tsCallSignatureDeclaration as tSCallSignatureDeclaration, tsConditionalType as tSConditionalType, tsConstructSignatureDeclaration as tSConstructSignatureDeclaration, tsConstructorType as tSConstructorType, tsDeclareFunction as tSDeclareFunction, tsDeclareMethod as tSDeclareMethod, tsEnumDeclaration as tSEnumDeclaration, tsEnumMember as tSEnumMember, tsExportAssignment as tSExportAssignment, tsExpressionWithTypeArguments as tSExpressionWithTypeArguments, tsExternalModuleReference as tSExternalModuleReference, tsFunctionType as tSFunctionType, tsImportEqualsDeclaration as tSImportEqualsDeclaration, tsImportType as tSImportType, tsIndexSignature as tSIndexSignature, tsIndexedAccessType as tSIndexedAccessType, tsInferType as tSInferType, tsInstantiationExpression as tSInstantiationExpression, tsInterfaceBody as tSInterfaceBody, tsInterfaceDeclaration as tSInterfaceDeclaration, tsIntersectionType as tSIntersectionType, tsIntrinsicKeyword as tSIntrinsicKeyword, tsLiteralType as tSLiteralType, tsMappedType as tSMappedType, tsMethodSignature as tSMethodSignature, tsModuleBlock as tSModuleBlock, tsModuleDeclaration as tSModuleDeclaration, tsNamedTupleMember as tSNamedTupleMember, tsNamespaceExportDeclaration as tSNamespaceExportDeclaration, tsNeverKeyword as tSNeverKeyword, tsNonNullExpression as tSNonNullExpression, tsNullKeyword as tSNullKeyword, tsNumberKeyword as tSNumberKeyword, tsObjectKeyword as tSObjectKeyword, tsOptionalType as tSOptionalType, tsParameterProperty as tSParameterProperty, tsParenthesizedType as tSParenthesizedType, tsPropertySignature as tSPropertySignature, tsQualifiedName as tSQualifiedName, tsRestType as tSRestType, tsSatisfiesExpression as tSSatisfiesExpression, tsStringKeyword as tSStringKeyword, tsSymbolKeyword as tSSymbolKeyword, tsThisType as tSThisType, tsTupleType as tSTupleType, tsTypeAliasDeclaration as tSTypeAliasDeclaration, tsTypeAnnotation as tSTypeAnnotation, tsTypeAssertion as tSTypeAssertion, tsTypeLiteral as tSTypeLiteral, tsTypeOperator as tSTypeOperator, tsTypeParameter as tSTypeParameter, tsTypeParameterDeclaration as tSTypeParameterDeclaration, tsTypeParameterInstantiation as tSTypeParameterInstantiation, tsTypePredicate as tSTypePredicate, tsTypeQuery as tSTypeQuery, tsTypeReference as tSTypeReference, tsUndefinedKeyword as tSUndefinedKeyword, tsUnionType as tSUnionType, tsUnknownKeyword as tSUnknownKeyword, tsVoidKeyword as tSVoidKeyword, taggedTemplateExpression, templateElement, templateLiteral, thisExpression, thisTypeAnnotation, throwStatement, toBindingIdentifierName, toBlock, toComputedKey, _default$3 as toExpression, toIdentifier, toKeyAlias, toSequenceExpression, _default$2 as toStatement, topicReference, traverse, traverseFast, tryStatement, tsAnyKeyword, tsArrayType, tsAsExpression, tsBigIntKeyword, tsBooleanKeyword, tsCallSignatureDeclaration, tsConditionalType, tsConstructSignatureDeclaration, tsConstructorType, tsDeclareFunction, tsDeclareMethod, 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, tsThisType, tsTupleType, tsTypeAliasDeclaration, tsTypeAnnotation, tsTypeAssertion, tsTypeLiteral, tsTypeOperator, tsTypeParameter, tsTypeParameterDeclaration, tsTypeParameterInstantiation, tsTypePredicate, tsTypeQuery, tsTypeReference, tsUndefinedKeyword, tsUnionType, tsUnknownKeyword, tsVoidKeyword, tupleExpression, tupleTypeAnnotation, typeAlias, typeAnnotation, typeCastExpression, typeParameter, typeParameterDeclaration, typeParameterInstantiation, typeofTypeAnnotation, unaryExpression, unionTypeAnnotation, updateExpression, v8IntrinsicIdentifier, validate, _default$1 as valueToNode, variableDeclaration, variableDeclarator, variance, voidTypeAnnotation, whileStatement, withStatement, yieldExpression }; +export { ACCESSOR_TYPES, ALIAS_KEYS, ASSIGNMENT_OPERATORS, Accessor, Aliases, AnyTypeAnnotation, ArgumentPlaceholder, ArrayExpression, ArrayPattern, ArrayTypeAnnotation, ArrowFunctionExpression, AssignmentExpression, AssignmentPattern, AwaitExpression, BINARY_OPERATORS, BINARY_TYPES, BLOCKPARENT_TYPES, BLOCK_SCOPED_SYMBOL, BLOCK_TYPES, BOOLEAN_BINARY_OPERATORS, BOOLEAN_NUMBER_BINARY_OPERATORS, BOOLEAN_UNARY_OPERATORS, BUILDER_KEYS, BigIntLiteral, Binary, BinaryExpression, BindExpression, Block, BlockParent, BlockStatement, BooleanLiteral, BooleanLiteralTypeAnnotation, BooleanTypeAnnotation, BreakStatement, CLASS_TYPES, COMMENT_KEYS, COMPARISON_BINARY_OPERATORS, COMPLETIONSTATEMENT_TYPES, CONDITIONAL_TYPES, CallExpression, CatchClause, Class, ClassAccessorProperty, ClassBody, ClassDeclaration, ClassExpression, ClassImplements, ClassMethod, ClassPrivateMethod, ClassPrivateProperty, ClassProperty, Comment, CommentBlock, CommentLine, CommentTypeShorthand, CompletionStatement, Conditional, ConditionalExpression, ContinueStatement, DECLARATION_TYPES, DEPRECATED_ALIASES, DEPRECATED_KEYS, DebuggerStatement, DecimalLiteral, Declaration, DeclareClass, DeclareExportAllDeclaration, DeclareExportDeclaration, DeclareFunction, DeclareInterface, DeclareModule, DeclareModuleExports, DeclareOpaqueType, DeclareTypeAlias, DeclareVariable, DeclaredPredicate, Decorator, DeprecatedAliases, Directive, DirectiveLiteral, DoExpression, DoWhileStatement, ENUMBODY_TYPES, ENUMMEMBER_TYPES, EQUALITY_BINARY_OPERATORS, EXPORTDECLARATION_TYPES, EXPRESSIONWRAPPER_TYPES, EXPRESSION_TYPES, EmptyStatement, EmptyTypeAnnotation, EnumBody, EnumBooleanBody, EnumBooleanMember, EnumDeclaration, EnumDefaultedMember, EnumMember, EnumNumberBody, EnumNumberMember, EnumStringBody, EnumStringMember, EnumSymbolBody, ExistsTypeAnnotation, ExportAllDeclaration, ExportDeclaration, ExportDefaultDeclaration, ExportDefaultSpecifier, ExportNamedDeclaration, ExportNamespaceSpecifier, ExportSpecifier, Expression, ExpressionStatement, ExpressionWrapper, FLATTENABLE_KEYS, FLIPPED_ALIAS_KEYS, FLOWBASEANNOTATION_TYPES, FLOWDECLARATION_TYPES, FLOWPREDICATE_TYPES, FLOWTYPE_TYPES, FLOW_TYPES, FORXSTATEMENT_TYPES, FOR_INIT_KEYS, FOR_TYPES, FUNCTIONPARENT_TYPES, FUNCTION_TYPES, FieldOptions, File, Flow, FlowBaseAnnotation, FlowDeclaration, FlowPredicate, FlowType, For, ForInStatement, ForOfStatement, ForStatement, ForXStatement, Function, FunctionDeclaration, FunctionExpression, FunctionParent, FunctionTypeAnnotation, FunctionTypeParam, GenericTypeAnnotation, IMMUTABLE_TYPES, IMPORTOREXPORTDECLARATION_TYPES, INHERIT_KEYS, Identifier, IfStatement, Immutable, Import, ImportAttribute, ImportDeclaration, ImportDefaultSpecifier, ImportExpression, ImportNamespaceSpecifier, ImportOrExportDeclaration, ImportSpecifier, IndexedAccessType, InferredPredicate, InterfaceDeclaration, InterfaceExtends, InterfaceTypeAnnotation, InterpreterDirective, IntersectionTypeAnnotation, JSX, JSXAttribute, JSXClosingElement, JSXClosingFragment, JSXElement, JSXEmptyExpression, JSXExpressionContainer, JSXFragment, JSXIdentifier, JSXMemberExpression, JSXNamespacedName, JSXOpeningElement, JSXOpeningFragment, JSXSpreadAttribute, JSXSpreadChild, JSXText, JSX_TYPES, LITERAL_TYPES, LOGICAL_OPERATORS, LOOP_TYPES, LVAL_TYPES, LVal, LabeledStatement, Literal, LogicalExpression, Loop, METHOD_TYPES, MISCELLANEOUS_TYPES, MODULEDECLARATION_TYPES, MODULESPECIFIER_TYPES, MemberExpression, MetaProperty, Method, Miscellaneous, MixedTypeAnnotation, ModuleDeclaration, ModuleExpression, ModuleSpecifier, NODE_FIELDS, NODE_PARENT_VALIDATIONS, NOT_LOCAL_BINDING, NUMBER_BINARY_OPERATORS, NUMBER_UNARY_OPERATORS, NewExpression, Node, Noop, NullLiteral, NullLiteralTypeAnnotation, NullableTypeAnnotation, NumberLiteral$1 as NumberLiteral, NumberLiteralTypeAnnotation, NumberTypeAnnotation, NumericLiteral, OBJECTMEMBER_TYPES, ObjectExpression, ObjectMember, ObjectMethod, ObjectPattern, ObjectProperty, ObjectTypeAnnotation, ObjectTypeCallProperty, ObjectTypeIndexer, ObjectTypeInternalSlot, ObjectTypeProperty, ObjectTypeSpreadProperty, OpaqueType, OptionalCallExpression, OptionalIndexedAccessType, OptionalMemberExpression, PATTERNLIKE_TYPES, PATTERN_TYPES, PLACEHOLDERS, PLACEHOLDERS_ALIAS, PLACEHOLDERS_FLIPPED_ALIAS, PRIVATE_TYPES, PROPERTY_TYPES, PUREISH_TYPES, ParentMaps, ParenthesizedExpression, Pattern, PatternLike, PipelineBareFunction, PipelinePrimaryTopicReference, PipelineTopicExpression, Placeholder, Private, PrivateName, Program, Property, Pureish, QualifiedTypeIdentifier, RecordExpression, RegExpLiteral, RegexLiteral$1 as RegexLiteral, Options as RemovePropertiesOptions, RestElement, RestProperty$1 as RestProperty, ReturnStatement, SCOPABLE_TYPES, STANDARDIZED_TYPES, STATEMENT_OR_BLOCK_KEYS, STATEMENT_TYPES, STRING_UNARY_OPERATORS, Scopable, SequenceExpression, SourceLocation, SpreadElement, SpreadProperty$1 as SpreadProperty, Standardized, Statement, StaticBlock, StringLiteral, StringLiteralTypeAnnotation, StringTypeAnnotation, Super, SwitchCase, SwitchStatement, SymbolTypeAnnotation, TERMINATORLESS_TYPES, TSAnyKeyword, TSArrayType, TSAsExpression, TSBASETYPE_TYPES, TSBaseType, TSBigIntKeyword, TSBooleanKeyword, TSCallSignatureDeclaration, TSConditionalType, TSConstructSignatureDeclaration, TSConstructorType, TSDeclareFunction, TSDeclareMethod, TSENTITYNAME_TYPES, TSEntityName, 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, TSTYPEELEMENT_TYPES, TSTYPE_TYPES, TSThisType, TSTupleType, TSType, TSTypeAliasDeclaration, TSTypeAnnotation, TSTypeAssertion, TSTypeElement, TSTypeLiteral, TSTypeOperator, TSTypeParameter, TSTypeParameterDeclaration, TSTypeParameterInstantiation, TSTypePredicate, TSTypeQuery, TSTypeReference, TSUndefinedKeyword, TSUnionType, TSUnknownKeyword, TSVoidKeyword, TYPES, TYPESCRIPT_TYPES, TaggedTemplateExpression, TemplateElement, TemplateLiteral, Terminatorless, ThisExpression, ThisTypeAnnotation, ThrowStatement, TopicReference, TraversalAncestors, TraversalHandler, TraversalHandlers, TryStatement, TupleExpression, TupleTypeAnnotation, TypeAlias, TypeAnnotation, TypeCastExpression, TypeParameter, TypeParameterDeclaration, TypeParameterInstantiation, TypeScript, TypeofTypeAnnotation, UNARYLIKE_TYPES, UNARY_OPERATORS, UPDATE_OPERATORS, USERWHITESPACABLE_TYPES, UnaryExpression, UnaryLike, UnionTypeAnnotation, UpdateExpression, UserWhitespacable, V8IntrinsicIdentifier, VISITOR_KEYS, VariableDeclaration, VariableDeclarator, Variance, VoidTypeAnnotation, WHILE_TYPES, While, WhileStatement, WithStatement, YieldExpression, deprecationWarning as __internal__deprecationWarning, addComment, addComments, anyTypeAnnotation, appendToMemberExpression, argumentPlaceholder, arrayExpression, arrayPattern, arrayTypeAnnotation, arrowFunctionExpression, assertAccessor, assertAnyTypeAnnotation, assertArgumentPlaceholder, assertArrayExpression, assertArrayPattern, assertArrayTypeAnnotation, assertArrowFunctionExpression, assertAssignmentExpression, assertAssignmentPattern, assertAwaitExpression, assertBigIntLiteral, 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, assertFunctionParent, assertFunctionTypeAnnotation, assertFunctionTypeParam, assertGenericTypeAnnotation, assertIdentifier, assertIfStatement, assertImmutable, assertImport, assertImportAttribute, assertImportDeclaration, assertImportDefaultSpecifier, assertImportExpression, assertImportNamespaceSpecifier, assertImportOrExportDeclaration, assertImportSpecifier, assertIndexedAccessType, assertInferredPredicate, assertInterfaceDeclaration, assertInterfaceExtends, assertInterfaceTypeAnnotation, assertInterpreterDirective, assertIntersectionTypeAnnotation, assertJSX, assertJSXAttribute, assertJSXClosingElement, assertJSXClosingFragment, assertJSXElement, assertJSXEmptyExpression, assertJSXExpressionContainer, assertJSXFragment, assertJSXIdentifier, assertJSXMemberExpression, assertJSXNamespacedName, assertJSXOpeningElement, assertJSXOpeningFragment, assertJSXSpreadAttribute, assertJSXSpreadChild, assertJSXText, assertLVal, assertLabeledStatement, assertLiteral, assertLogicalExpression, assertLoop, assertMemberExpression, assertMetaProperty, assertMethod, assertMiscellaneous, assertMixedTypeAnnotation, assertModuleDeclaration, assertModuleExpression, assertModuleSpecifier, assertNewExpression, assertNode, 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, 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, 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, assertVoidTypeAnnotation, assertWhile, assertWhileStatement, assertWithStatement, assertYieldExpression, assignmentExpression, assignmentPattern, awaitExpression, bigIntLiteral, binaryExpression, bindExpression, blockStatement, booleanLiteral, booleanLiteralTypeAnnotation, booleanTypeAnnotation, breakStatement, buildMatchMemberExpression, buildUndefinedNode, callExpression, catchClause, classAccessorProperty, classBody, classDeclaration, classExpression, classImplements, classMethod, classPrivateMethod, classPrivateProperty, classProperty, clone, cloneDeep, cloneDeepWithoutLoc, cloneNode, cloneWithoutLoc, conditionalExpression, continueStatement, createFlowUnionType, createTSUnionType, _default$4 as createTypeAnnotationBasedOnTypeof, createFlowUnionType as createUnionTypeAnnotation, debuggerStatement, decimalLiteral, declareClass, declareExportAllDeclaration, declareExportDeclaration, declareFunction, declareInterface, declareModule, declareModuleExports, declareOpaqueType, declareTypeAlias, declareVariable, declaredPredicate, decorator, directive, directiveLiteral, doExpression, doWhileStatement, emptyStatement, emptyTypeAnnotation, ensureBlock, enumBooleanBody, enumBooleanMember, enumDeclaration, enumDefaultedMember, enumNumberBody, enumNumberMember, enumStringBody, enumStringMember, enumSymbolBody, existsTypeAnnotation, exportAllDeclaration, exportDefaultDeclaration, exportDefaultSpecifier, exportNamedDeclaration, exportNamespaceSpecifier, exportSpecifier, expressionStatement, file, forInStatement, forOfStatement, forStatement, functionDeclaration, functionExpression, functionTypeAnnotation, functionTypeParam, genericTypeAnnotation, getBindingIdentifiers, _default as getOuterBindingIdentifiers, identifier, ifStatement, _import as import, importAttribute, importDeclaration, importDefaultSpecifier, importExpression, importNamespaceSpecifier, importSpecifier, indexedAccessType, inferredPredicate, inheritInnerComments, inheritLeadingComments, inheritTrailingComments, inherits, inheritsComments, interfaceDeclaration, interfaceExtends, interfaceTypeAnnotation, interpreterDirective, intersectionTypeAnnotation, is, isAccessor, isAnyTypeAnnotation, isArgumentPlaceholder, isArrayExpression, isArrayPattern, isArrayTypeAnnotation, isArrowFunctionExpression, isAssignmentExpression, isAssignmentPattern, isAwaitExpression, isBigIntLiteral, isBinary, isBinaryExpression, isBindExpression, isBinding, isBlock, isBlockParent, isBlockScoped, isBlockStatement, isBooleanLiteral, isBooleanLiteralTypeAnnotation, isBooleanTypeAnnotation, isBreakStatement, isCallExpression, isCatchClause, isClass, isClassAccessorProperty, isClassBody, isClassDeclaration, isClassExpression, isClassImplements, isClassMethod, isClassPrivateMethod, isClassPrivateProperty, isClassProperty, isCompletionStatement, isConditional, isConditionalExpression, isContinueStatement, isDebuggerStatement, isDecimalLiteral, isDeclaration, isDeclareClass, isDeclareExportAllDeclaration, isDeclareExportDeclaration, isDeclareFunction, isDeclareInterface, isDeclareModule, isDeclareModuleExports, isDeclareOpaqueType, isDeclareTypeAlias, isDeclareVariable, isDeclaredPredicate, isDecorator, isDirective, isDirectiveLiteral, isDoExpression, isDoWhileStatement, isEmptyStatement, isEmptyTypeAnnotation, isEnumBody, isEnumBooleanBody, isEnumBooleanMember, isEnumDeclaration, isEnumDefaultedMember, isEnumMember, isEnumNumberBody, isEnumNumberMember, isEnumStringBody, isEnumStringMember, isEnumSymbolBody, isExistsTypeAnnotation, isExportAllDeclaration, isExportDeclaration, isExportDefaultDeclaration, isExportDefaultSpecifier, isExportNamedDeclaration, isExportNamespaceSpecifier, isExportSpecifier, isExpression, isExpressionStatement, isExpressionWrapper, isFile, isFlow, isFlowBaseAnnotation, isFlowDeclaration, isFlowPredicate, isFlowType, isFor, isForInStatement, isForOfStatement, isForStatement, isForXStatement, isFunction, isFunctionDeclaration, isFunctionExpression, isFunctionParent, isFunctionTypeAnnotation, isFunctionTypeParam, isGenericTypeAnnotation, isIdentifier, isIfStatement, isImmutable, isImport, isImportAttribute, isImportDeclaration, isImportDefaultSpecifier, isImportExpression, isImportNamespaceSpecifier, isImportOrExportDeclaration, isImportSpecifier, isIndexedAccessType, isInferredPredicate, isInterfaceDeclaration, isInterfaceExtends, isInterfaceTypeAnnotation, isInterpreterDirective, isIntersectionTypeAnnotation, isJSX, isJSXAttribute, isJSXClosingElement, isJSXClosingFragment, isJSXElement, isJSXEmptyExpression, isJSXExpressionContainer, isJSXFragment, isJSXIdentifier, isJSXMemberExpression, isJSXNamespacedName, isJSXOpeningElement, isJSXOpeningFragment, isJSXSpreadAttribute, isJSXSpreadChild, isJSXText, isLVal, isLabeledStatement, isLet, isLiteral, isLogicalExpression, isLoop, isMemberExpression, isMetaProperty, isMethod, isMiscellaneous, isMixedTypeAnnotation, isModuleDeclaration, isModuleExpression, isModuleSpecifier, isNewExpression, isNode, isNodesEquivalent, isNoop, isNullLiteral, isNullLiteralTypeAnnotation, isNullableTypeAnnotation, isNumberLiteral, isNumberLiteralTypeAnnotation, isNumberTypeAnnotation, isNumericLiteral, isObjectExpression, isObjectMember, isObjectMethod, isObjectPattern, isObjectProperty, isObjectTypeAnnotation, isObjectTypeCallProperty, isObjectTypeIndexer, isObjectTypeInternalSlot, isObjectTypeProperty, isObjectTypeSpreadProperty, isOpaqueType, isOptionalCallExpression, isOptionalIndexedAccessType, isOptionalMemberExpression, isParenthesizedExpression, isPattern, isPatternLike, isPipelineBareFunction, isPipelinePrimaryTopicReference, isPipelineTopicExpression, isPlaceholder, isPlaceholderType, isPrivate, isPrivateName, isProgram, isProperty, isPureish, isQualifiedTypeIdentifier, isRecordExpression, isReferenced, isRegExpLiteral, isRegexLiteral, isRestElement, isRestProperty, isReturnStatement, isScopable, isScope, isSequenceExpression, isSpecifierDefault, isSpreadElement, isSpreadProperty, isStandardized, isStatement, isStaticBlock, isStringLiteral, isStringLiteralTypeAnnotation, isStringTypeAnnotation, isSuper, isSwitchCase, isSwitchStatement, isSymbolTypeAnnotation, isTSAnyKeyword, isTSArrayType, isTSAsExpression, isTSBaseType, isTSBigIntKeyword, isTSBooleanKeyword, isTSCallSignatureDeclaration, isTSConditionalType, isTSConstructSignatureDeclaration, isTSConstructorType, isTSDeclareFunction, isTSDeclareMethod, isTSEntityName, 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, 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, isType, isTypeAlias, isTypeAnnotation, isTypeCastExpression, isTypeParameter, isTypeParameterDeclaration, isTypeParameterInstantiation, isTypeScript, isTypeofTypeAnnotation, isUnaryExpression, isUnaryLike, isUnionTypeAnnotation, isUpdateExpression, isUserWhitespacable, isV8IntrinsicIdentifier, isValidES3Identifier, isValidIdentifier, isVar, isVariableDeclaration, isVariableDeclarator, isVariance, isVoidTypeAnnotation, isWhile, isWhileStatement, isWithStatement, isYieldExpression, jsxAttribute as jSXAttribute, jsxClosingElement as jSXClosingElement, jsxClosingFragment as jSXClosingFragment, jsxElement as jSXElement, jsxEmptyExpression as jSXEmptyExpression, jsxExpressionContainer as jSXExpressionContainer, jsxFragment as jSXFragment, jsxIdentifier as jSXIdentifier, jsxMemberExpression as jSXMemberExpression, jsxNamespacedName as jSXNamespacedName, jsxOpeningElement as jSXOpeningElement, jsxOpeningFragment as jSXOpeningFragment, jsxSpreadAttribute as jSXSpreadAttribute, jsxSpreadChild as jSXSpreadChild, jsxText as jSXText, jsxAttribute, jsxClosingElement, jsxClosingFragment, jsxElement, jsxEmptyExpression, jsxExpressionContainer, jsxFragment, jsxIdentifier, jsxMemberExpression, jsxNamespacedName, jsxOpeningElement, jsxOpeningFragment, jsxSpreadAttribute, jsxSpreadChild, jsxText, labeledStatement, logicalExpression, matchesPattern, memberExpression, metaProperty, mixedTypeAnnotation, moduleExpression, newExpression, noop, nullLiteral, nullLiteralTypeAnnotation, nullableTypeAnnotation, NumberLiteral as numberLiteral, numberLiteralTypeAnnotation, numberTypeAnnotation, numericLiteral, objectExpression, objectMethod, objectPattern, objectProperty, objectTypeAnnotation, objectTypeCallProperty, objectTypeIndexer, objectTypeInternalSlot, objectTypeProperty, objectTypeSpreadProperty, opaqueType, optionalCallExpression, optionalIndexedAccessType, optionalMemberExpression, parenthesizedExpression, pipelineBareFunction, pipelinePrimaryTopicReference, pipelineTopicExpression, placeholder, prependToMemberExpression, privateName, program, qualifiedTypeIdentifier, react, recordExpression, regExpLiteral, RegexLiteral as regexLiteral, removeComments, removeProperties, removePropertiesDeep, removeTypeDuplicates, restElement, RestProperty as restProperty, returnStatement, sequenceExpression, shallowEqual, spreadElement, SpreadProperty as spreadProperty, staticBlock, stringLiteral, stringLiteralTypeAnnotation, stringTypeAnnotation, _super as super, switchCase, switchStatement, symbolTypeAnnotation, tsAnyKeyword as tSAnyKeyword, tsArrayType as tSArrayType, tsAsExpression as tSAsExpression, tsBigIntKeyword as tSBigIntKeyword, tsBooleanKeyword as tSBooleanKeyword, tsCallSignatureDeclaration as tSCallSignatureDeclaration, tsConditionalType as tSConditionalType, tsConstructSignatureDeclaration as tSConstructSignatureDeclaration, tsConstructorType as tSConstructorType, tsDeclareFunction as tSDeclareFunction, tsDeclareMethod as tSDeclareMethod, tsEnumDeclaration as tSEnumDeclaration, tsEnumMember as tSEnumMember, tsExportAssignment as tSExportAssignment, tsExpressionWithTypeArguments as tSExpressionWithTypeArguments, tsExternalModuleReference as tSExternalModuleReference, tsFunctionType as tSFunctionType, tsImportEqualsDeclaration as tSImportEqualsDeclaration, tsImportType as tSImportType, tsIndexSignature as tSIndexSignature, tsIndexedAccessType as tSIndexedAccessType, tsInferType as tSInferType, tsInstantiationExpression as tSInstantiationExpression, tsInterfaceBody as tSInterfaceBody, tsInterfaceDeclaration as tSInterfaceDeclaration, tsIntersectionType as tSIntersectionType, tsIntrinsicKeyword as tSIntrinsicKeyword, tsLiteralType as tSLiteralType, tsMappedType as tSMappedType, tsMethodSignature as tSMethodSignature, tsModuleBlock as tSModuleBlock, tsModuleDeclaration as tSModuleDeclaration, tsNamedTupleMember as tSNamedTupleMember, tsNamespaceExportDeclaration as tSNamespaceExportDeclaration, tsNeverKeyword as tSNeverKeyword, tsNonNullExpression as tSNonNullExpression, tsNullKeyword as tSNullKeyword, tsNumberKeyword as tSNumberKeyword, tsObjectKeyword as tSObjectKeyword, tsOptionalType as tSOptionalType, tsParameterProperty as tSParameterProperty, tsParenthesizedType as tSParenthesizedType, tsPropertySignature as tSPropertySignature, tsQualifiedName as tSQualifiedName, tsRestType as tSRestType, tsSatisfiesExpression as tSSatisfiesExpression, tsStringKeyword as tSStringKeyword, tsSymbolKeyword as tSSymbolKeyword, tsThisType as tSThisType, tsTupleType as tSTupleType, tsTypeAliasDeclaration as tSTypeAliasDeclaration, tsTypeAnnotation as tSTypeAnnotation, tsTypeAssertion as tSTypeAssertion, tsTypeLiteral as tSTypeLiteral, tsTypeOperator as tSTypeOperator, tsTypeParameter as tSTypeParameter, tsTypeParameterDeclaration as tSTypeParameterDeclaration, tsTypeParameterInstantiation as tSTypeParameterInstantiation, tsTypePredicate as tSTypePredicate, tsTypeQuery as tSTypeQuery, tsTypeReference as tSTypeReference, tsUndefinedKeyword as tSUndefinedKeyword, tsUnionType as tSUnionType, tsUnknownKeyword as tSUnknownKeyword, tsVoidKeyword as tSVoidKeyword, taggedTemplateExpression, templateElement, templateLiteral, thisExpression, thisTypeAnnotation, throwStatement, toBindingIdentifierName, toBlock, toComputedKey, _default$3 as toExpression, toIdentifier, toKeyAlias, _default$2 as toStatement, topicReference, traverse, traverseFast, tryStatement, tsAnyKeyword, tsArrayType, tsAsExpression, tsBigIntKeyword, tsBooleanKeyword, tsCallSignatureDeclaration, tsConditionalType, tsConstructSignatureDeclaration, tsConstructorType, tsDeclareFunction, tsDeclareMethod, 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, tsThisType, tsTupleType, tsTypeAliasDeclaration, tsTypeAnnotation, tsTypeAssertion, tsTypeLiteral, tsTypeOperator, tsTypeParameter, tsTypeParameterDeclaration, tsTypeParameterInstantiation, tsTypePredicate, tsTypeQuery, tsTypeReference, tsUndefinedKeyword, tsUnionType, tsUnknownKeyword, tsVoidKeyword, tupleExpression, tupleTypeAnnotation, typeAlias, typeAnnotation, typeCastExpression, typeParameter, typeParameterDeclaration, typeParameterInstantiation, typeofTypeAnnotation, unaryExpression, unionTypeAnnotation, updateExpression, v8IntrinsicIdentifier, validate, _default$1 as valueToNode, variableDeclaration, variableDeclarator, variance, voidTypeAnnotation, whileStatement, withStatement, yieldExpression }; diff --git a/node_modules/@babel/types/lib/index.js b/node_modules/@babel/types/lib/index.js index 33df87ac..84b756f0 100644 --- a/node_modules/@babel/types/lib/index.js +++ b/node_modules/@babel/types/lib/index.js @@ -29,7 +29,6 @@ var _exportNames = { toExpression: true, toIdentifier: true, toKeyAlias: true, - toSequenceExpression: true, toStatement: true, valueToNode: true, appendToMemberExpression: true, @@ -370,12 +369,6 @@ Object.defineProperty(exports, "toKeyAlias", { return _toKeyAlias.default; } }); -Object.defineProperty(exports, "toSequenceExpression", { - enumerable: true, - get: function () { - return _toSequenceExpression.default; - } -}); Object.defineProperty(exports, "toStatement", { enumerable: true, get: function () { @@ -504,7 +497,6 @@ var _toComputedKey = require("./converters/toComputedKey.js"); var _toExpression = require("./converters/toExpression.js"); var _toIdentifier = require("./converters/toIdentifier.js"); var _toKeyAlias = require("./converters/toKeyAlias.js"); -var _toSequenceExpression = require("./converters/toSequenceExpression.js"); var _toStatement = require("./converters/toStatement.js"); var _valueToNode = require("./converters/valueToNode.js"); var _index5 = require("./definitions/index.js"); @@ -572,11 +564,13 @@ Object.keys(_index6).forEach(function (key) { }); }); var _deprecationWarning = require("./utils/deprecationWarning.js"); -const react = { +const react = exports.react = { isReactComponent: _isReactComponent.default, isCompatTag: _isCompatTag.default, buildChildren: _buildChildren.default }; -exports.react = react; +{ + exports.toSequenceExpression = require("./converters/toSequenceExpression.js").default; +} //# sourceMappingURL=index.js.map diff --git a/node_modules/@babel/types/lib/index.js.flow b/node_modules/@babel/types/lib/index.js.flow index a1203c1a..62ab0a64 100644 --- a/node_modules/@babel/types/lib/index.js.flow +++ b/node_modules/@babel/types/lib/index.js.flow @@ -1291,7 +1291,6 @@ declare class BabelNodeTSPropertySignature extends BabelNode { type: "TSPropertySignature"; key: BabelNodeExpression; typeAnnotation?: BabelNodeTSTypeAnnotation; - initializer?: BabelNodeExpression; computed?: boolean; kind: "get" | "set"; optional?: boolean; @@ -1872,7 +1871,7 @@ declare module "@babel/types" { declare export function tsQualifiedName(left: BabelNodeTSEntityName, right: BabelNodeIdentifier): BabelNodeTSQualifiedName; declare export function tsCallSignatureDeclaration(typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters: Array<BabelNodeArrayPattern | BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeRestElement>, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSCallSignatureDeclaration; declare export function tsConstructSignatureDeclaration(typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters: Array<BabelNodeArrayPattern | BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeRestElement>, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSConstructSignatureDeclaration; - declare export function tsPropertySignature(key: BabelNodeExpression, typeAnnotation?: BabelNodeTSTypeAnnotation, initializer?: BabelNodeExpression): BabelNodeTSPropertySignature; + declare export function tsPropertySignature(key: BabelNodeExpression, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSPropertySignature; declare export function tsMethodSignature(key: BabelNodeExpression, typeParameters?: BabelNodeTSTypeParameterDeclaration, parameters: Array<BabelNodeArrayPattern | BabelNodeIdentifier | BabelNodeObjectPattern | BabelNodeRestElement>, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSMethodSignature; declare export function tsIndexSignature(parameters: Array<BabelNodeIdentifier>, typeAnnotation?: BabelNodeTSTypeAnnotation): BabelNodeTSIndexSignature; declare export function tsAnyKeyword(): BabelNodeTSAnyKeyword; diff --git a/node_modules/@babel/types/lib/index.js.map b/node_modules/@babel/types/lib/index.js.map index 8be6bd78..f04d8663 100644 --- a/node_modules/@babel/types/lib/index.js.map +++ b/node_modules/@babel/types/lib/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_isReactComponent","require","_isCompatTag","_buildChildren","_assertNode","_index","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_createTypeAnnotationBasedOnTypeof","_createFlowUnionType","_createTSUnionType","_index2","_uppercase","_productions","_cloneNode","_clone","_cloneDeep","_cloneDeepWithoutLoc","_cloneWithoutLoc","_addComment","_addComments","_inheritInnerComments","_inheritLeadingComments","_inheritsComments","_inheritTrailingComments","_removeComments","_index3","_index4","_ensureBlock","_toBindingIdentifierName","_toBlock","_toComputedKey","_toExpression","_toIdentifier","_toKeyAlias","_toSequenceExpression","_toStatement","_valueToNode","_index5","_appendToMemberExpression","_inherits","_prependToMemberExpression","_removeProperties","_removePropertiesDeep","_removeTypeDuplicates","_getBindingIdentifiers","_getOuterBindingIdentifiers","_traverse","_traverseFast","_shallowEqual","_is","_isBinding","_isBlockScoped","_isImmutable","_isLet","_isNode","_isNodesEquivalent","_isPlaceholderType","_isReferenced","_isScope","_isSpecifierDefault","_isType","_isValidES3Identifier","_isValidIdentifier","_isVar","_matchesPattern","_validate","_buildMatchMemberExpression","_index6","_deprecationWarning","react","isReactComponent","isCompatTag","buildChildren"],"sources":["../src/index.ts"],"sourcesContent":["import isReactComponent from \"./validators/react/isReactComponent.ts\";\nimport isCompatTag from \"./validators/react/isCompatTag.ts\";\nimport buildChildren from \"./builders/react/buildChildren.ts\";\n\n// asserts\nexport { default as assertNode } from \"./asserts/assertNode.ts\";\nexport * from \"./asserts/generated/index.ts\";\n\n// builders\nexport { default as createTypeAnnotationBasedOnTypeof } from \"./builders/flow/createTypeAnnotationBasedOnTypeof.ts\";\n/** @deprecated use createFlowUnionType instead */\nexport { default as createUnionTypeAnnotation } from \"./builders/flow/createFlowUnionType.ts\";\nexport { default as createFlowUnionType } from \"./builders/flow/createFlowUnionType.ts\";\nexport { default as createTSUnionType } from \"./builders/typescript/createTSUnionType.ts\";\nexport * from \"./builders/generated/index.ts\";\nexport * from \"./builders/generated/uppercase.js\";\nexport * from \"./builders/productions.ts\";\n\n// clone\nexport { default as cloneNode } from \"./clone/cloneNode.ts\";\nexport { default as clone } from \"./clone/clone.ts\";\nexport { default as cloneDeep } from \"./clone/cloneDeep.ts\";\nexport { default as cloneDeepWithoutLoc } from \"./clone/cloneDeepWithoutLoc.ts\";\nexport { default as cloneWithoutLoc } from \"./clone/cloneWithoutLoc.ts\";\n\n// comments\nexport { default as addComment } from \"./comments/addComment.ts\";\nexport { default as addComments } from \"./comments/addComments.ts\";\nexport { default as inheritInnerComments } from \"./comments/inheritInnerComments.ts\";\nexport { default as inheritLeadingComments } from \"./comments/inheritLeadingComments.ts\";\nexport { default as inheritsComments } from \"./comments/inheritsComments.ts\";\nexport { default as inheritTrailingComments } from \"./comments/inheritTrailingComments.ts\";\nexport { default as removeComments } from \"./comments/removeComments.ts\";\n\n// constants\nexport * from \"./constants/generated/index.ts\";\nexport * from \"./constants/index.ts\";\n\n// converters\nexport { default as ensureBlock } from \"./converters/ensureBlock.ts\";\nexport { default as toBindingIdentifierName } from \"./converters/toBindingIdentifierName.ts\";\nexport { default as toBlock } from \"./converters/toBlock.ts\";\nexport { default as toComputedKey } from \"./converters/toComputedKey.ts\";\nexport { default as toExpression } from \"./converters/toExpression.ts\";\nexport { default as toIdentifier } from \"./converters/toIdentifier.ts\";\nexport { default as toKeyAlias } from \"./converters/toKeyAlias.ts\";\nexport { default as toSequenceExpression } from \"./converters/toSequenceExpression.ts\";\nexport { default as toStatement } from \"./converters/toStatement.ts\";\nexport { default as valueToNode } from \"./converters/valueToNode.ts\";\n\n// definitions\nexport * from \"./definitions/index.ts\";\n\n// modifications\nexport { default as appendToMemberExpression } from \"./modifications/appendToMemberExpression.ts\";\nexport { default as inherits } from \"./modifications/inherits.ts\";\nexport { default as prependToMemberExpression } from \"./modifications/prependToMemberExpression.ts\";\nexport {\n default as removeProperties,\n type Options as RemovePropertiesOptions,\n} from \"./modifications/removeProperties.ts\";\nexport { default as removePropertiesDeep } from \"./modifications/removePropertiesDeep.ts\";\nexport { default as removeTypeDuplicates } from \"./modifications/flow/removeTypeDuplicates.ts\";\n\n// retrievers\nexport { default as getBindingIdentifiers } from \"./retrievers/getBindingIdentifiers.ts\";\nexport { default as getOuterBindingIdentifiers } from \"./retrievers/getOuterBindingIdentifiers.ts\";\n\n// traverse\nexport { default as traverse } from \"./traverse/traverse.ts\";\nexport * from \"./traverse/traverse.ts\";\nexport { default as traverseFast } from \"./traverse/traverseFast.ts\";\n\n// utils\nexport { default as shallowEqual } from \"./utils/shallowEqual.ts\";\n\n// validators\nexport { default as is } from \"./validators/is.ts\";\nexport { default as isBinding } from \"./validators/isBinding.ts\";\nexport { default as isBlockScoped } from \"./validators/isBlockScoped.ts\";\nexport { default as isImmutable } from \"./validators/isImmutable.ts\";\nexport { default as isLet } from \"./validators/isLet.ts\";\nexport { default as isNode } from \"./validators/isNode.ts\";\nexport { default as isNodesEquivalent } from \"./validators/isNodesEquivalent.ts\";\nexport { default as isPlaceholderType } from \"./validators/isPlaceholderType.ts\";\nexport { default as isReferenced } from \"./validators/isReferenced.ts\";\nexport { default as isScope } from \"./validators/isScope.ts\";\nexport { default as isSpecifierDefault } from \"./validators/isSpecifierDefault.ts\";\nexport { default as isType } from \"./validators/isType.ts\";\nexport { default as isValidES3Identifier } from \"./validators/isValidES3Identifier.ts\";\nexport { default as isValidIdentifier } from \"./validators/isValidIdentifier.ts\";\nexport { default as isVar } from \"./validators/isVar.ts\";\nexport { default as matchesPattern } from \"./validators/matchesPattern.ts\";\nexport { default as validate } from \"./validators/validate.ts\";\nexport { default as buildMatchMemberExpression } from \"./validators/buildMatchMemberExpression.ts\";\nexport * from \"./validators/generated/index.ts\";\n\n// react\nexport const react = {\n isReactComponent,\n isCompatTag,\n buildChildren,\n};\n\nexport type * from \"./ast-types/generated/index.ts\";\n\n// this is used by @babel/traverse to warn about deprecated visitors\nexport { default as __internal__deprecationWarning } from \"./utils/deprecationWarning.ts\";\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_isReactComponent","require","_isCompatTag","_buildChildren","_assertNode","_index","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_createTypeAnnotationBasedOnTypeof","_createFlowUnionType","_createTSUnionType","_index2","_uppercase","_productions","_cloneNode","_clone","_cloneDeep","_cloneDeepWithoutLoc","_cloneWithoutLoc","_addComment","_addComments","_inheritInnerComments","_inheritLeadingComments","_inheritsComments","_inheritTrailingComments","_removeComments","_index3","_index4","_ensureBlock","_toBindingIdentifierName","_toBlock","_toComputedKey","_toExpression","_toIdentifier","_toKeyAlias","_toStatement","_valueToNode","_index5","_appendToMemberExpression","_inherits","_prependToMemberExpression","_removeProperties","_removePropertiesDeep","_removeTypeDuplicates","_getBindingIdentifiers","_getOuterBindingIdentifiers","_traverse","_traverseFast","_shallowEqual","_is","_isBinding","_isBlockScoped","_isImmutable","_isLet","_isNode","_isNodesEquivalent","_isPlaceholderType","_isReferenced","_isScope","_isSpecifierDefault","_isType","_isValidES3Identifier","_isValidIdentifier","_isVar","_matchesPattern","_validate","_buildMatchMemberExpression","_index6","_deprecationWarning","react","isReactComponent","isCompatTag","buildChildren","toSequenceExpression","default"],"sources":["../src/index.ts"],"sourcesContent":["import isReactComponent from \"./validators/react/isReactComponent.ts\";\nimport isCompatTag from \"./validators/react/isCompatTag.ts\";\nimport buildChildren from \"./builders/react/buildChildren.ts\";\n\n// asserts\nexport { default as assertNode } from \"./asserts/assertNode.ts\";\nexport * from \"./asserts/generated/index.ts\";\n\n// builders\nexport { default as createTypeAnnotationBasedOnTypeof } from \"./builders/flow/createTypeAnnotationBasedOnTypeof.ts\";\n/** @deprecated use createFlowUnionType instead */\nexport { default as createUnionTypeAnnotation } from \"./builders/flow/createFlowUnionType.ts\";\nexport { default as createFlowUnionType } from \"./builders/flow/createFlowUnionType.ts\";\nexport { default as createTSUnionType } from \"./builders/typescript/createTSUnionType.ts\";\nexport * from \"./builders/generated/index.ts\";\nexport * from \"./builders/generated/uppercase.js\";\nexport * from \"./builders/productions.ts\";\n\n// clone\nexport { default as cloneNode } from \"./clone/cloneNode.ts\";\nexport { default as clone } from \"./clone/clone.ts\";\nexport { default as cloneDeep } from \"./clone/cloneDeep.ts\";\nexport { default as cloneDeepWithoutLoc } from \"./clone/cloneDeepWithoutLoc.ts\";\nexport { default as cloneWithoutLoc } from \"./clone/cloneWithoutLoc.ts\";\n\n// comments\nexport { default as addComment } from \"./comments/addComment.ts\";\nexport { default as addComments } from \"./comments/addComments.ts\";\nexport { default as inheritInnerComments } from \"./comments/inheritInnerComments.ts\";\nexport { default as inheritLeadingComments } from \"./comments/inheritLeadingComments.ts\";\nexport { default as inheritsComments } from \"./comments/inheritsComments.ts\";\nexport { default as inheritTrailingComments } from \"./comments/inheritTrailingComments.ts\";\nexport { default as removeComments } from \"./comments/removeComments.ts\";\n\n// constants\nexport * from \"./constants/generated/index.ts\";\nexport * from \"./constants/index.ts\";\n\n// converters\nexport { default as ensureBlock } from \"./converters/ensureBlock.ts\";\nexport { default as toBindingIdentifierName } from \"./converters/toBindingIdentifierName.ts\";\nexport { default as toBlock } from \"./converters/toBlock.ts\";\nexport { default as toComputedKey } from \"./converters/toComputedKey.ts\";\nexport { default as toExpression } from \"./converters/toExpression.ts\";\nexport { default as toIdentifier } from \"./converters/toIdentifier.ts\";\nexport { default as toKeyAlias } from \"./converters/toKeyAlias.ts\";\nexport { default as toStatement } from \"./converters/toStatement.ts\";\nexport { default as valueToNode } from \"./converters/valueToNode.ts\";\n\n// definitions\nexport * from \"./definitions/index.ts\";\n\n// modifications\nexport { default as appendToMemberExpression } from \"./modifications/appendToMemberExpression.ts\";\nexport { default as inherits } from \"./modifications/inherits.ts\";\nexport { default as prependToMemberExpression } from \"./modifications/prependToMemberExpression.ts\";\nexport {\n default as removeProperties,\n type Options as RemovePropertiesOptions,\n} from \"./modifications/removeProperties.ts\";\nexport { default as removePropertiesDeep } from \"./modifications/removePropertiesDeep.ts\";\nexport { default as removeTypeDuplicates } from \"./modifications/flow/removeTypeDuplicates.ts\";\n\n// retrievers\nexport { default as getBindingIdentifiers } from \"./retrievers/getBindingIdentifiers.ts\";\nexport { default as getOuterBindingIdentifiers } from \"./retrievers/getOuterBindingIdentifiers.ts\";\n\n// traverse\nexport { default as traverse } from \"./traverse/traverse.ts\";\nexport * from \"./traverse/traverse.ts\";\nexport { default as traverseFast } from \"./traverse/traverseFast.ts\";\n\n// utils\nexport { default as shallowEqual } from \"./utils/shallowEqual.ts\";\n\n// validators\nexport { default as is } from \"./validators/is.ts\";\nexport { default as isBinding } from \"./validators/isBinding.ts\";\nexport { default as isBlockScoped } from \"./validators/isBlockScoped.ts\";\nexport { default as isImmutable } from \"./validators/isImmutable.ts\";\nexport { default as isLet } from \"./validators/isLet.ts\";\nexport { default as isNode } from \"./validators/isNode.ts\";\nexport { default as isNodesEquivalent } from \"./validators/isNodesEquivalent.ts\";\nexport { default as isPlaceholderType } from \"./validators/isPlaceholderType.ts\";\nexport { default as isReferenced } from \"./validators/isReferenced.ts\";\nexport { default as isScope } from \"./validators/isScope.ts\";\nexport { default as isSpecifierDefault } from \"./validators/isSpecifierDefault.ts\";\nexport { default as isType } from \"./validators/isType.ts\";\nexport { default as isValidES3Identifier } from \"./validators/isValidES3Identifier.ts\";\nexport { default as isValidIdentifier } from \"./validators/isValidIdentifier.ts\";\nexport { default as isVar } from \"./validators/isVar.ts\";\nexport { default as matchesPattern } from \"./validators/matchesPattern.ts\";\nexport { default as validate } from \"./validators/validate.ts\";\nexport { default as buildMatchMemberExpression } from \"./validators/buildMatchMemberExpression.ts\";\nexport * from \"./validators/generated/index.ts\";\n\n// react\nexport const react = {\n isReactComponent,\n isCompatTag,\n buildChildren,\n};\n\nexport type * from \"./ast-types/generated/index.ts\";\n\n// this is used by @babel/traverse to warn about deprecated visitors\nexport { default as __internal__deprecationWarning } from \"./utils/deprecationWarning.ts\";\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.toSequenceExpression =\n // eslint-disable-next-line no-restricted-globals\n require(\"./converters/toSequenceExpression.js\").default;\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js b/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js index dc90bdb3..86b4d1d2 100644 --- a/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js +++ b/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js @@ -5,12 +5,15 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = getBindingIdentifiers; var _index = require("../validators/generated/index.js"); -function getBindingIdentifiers(node, duplicates, outerOnly) { +function getBindingIdentifiers(node, duplicates, outerOnly, newBindingsOnly) { const search = [].concat(node); const ids = Object.create(null); while (search.length) { const id = search.shift(); if (!id) continue; + if (newBindingsOnly && ((0, _index.isAssignmentExpression)(id) || (0, _index.isUnaryExpression)(id))) { + continue; + } const keys = getBindingIdentifiers.keys[id.type]; if ((0, _index.isIdentifier)(id)) { if (duplicates) { diff --git a/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map b/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map index 716cad87..c9e9acbd 100644 --- a/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map +++ b/node_modules/@babel/types/lib/retrievers/getBindingIdentifiers.js.map @@ -1 +1 @@ -{"version":3,"names":["_index","require","getBindingIdentifiers","node","duplicates","outerOnly","search","concat","ids","Object","create","length","id","shift","keys","type","isIdentifier","_ids","name","push","isExportDeclaration","isExportAllDeclaration","isDeclaration","declaration","isFunctionDeclaration","isFunctionExpression","i","key","nodes","Array","isArray","DeclareClass","DeclareFunction","DeclareModule","DeclareVariable","DeclareInterface","DeclareTypeAlias","DeclareOpaqueType","InterfaceDeclaration","TypeAlias","OpaqueType","CatchClause","LabeledStatement","UnaryExpression","AssignmentExpression","ImportSpecifier","ImportNamespaceSpecifier","ImportDefaultSpecifier","ImportDeclaration","ExportSpecifier","ExportNamespaceSpecifier","ExportDefaultSpecifier","FunctionDeclaration","FunctionExpression","ArrowFunctionExpression","ObjectMethod","ClassMethod","ClassPrivateMethod","ForInStatement","ForOfStatement","ClassDeclaration","ClassExpression","RestElement","UpdateExpression","ObjectProperty","AssignmentPattern","ArrayPattern","ObjectPattern","VariableDeclaration","VariableDeclarator"],"sources":["../../src/retrievers/getBindingIdentifiers.ts"],"sourcesContent":["import {\n isExportDeclaration,\n isIdentifier,\n isDeclaration,\n isFunctionDeclaration,\n isFunctionExpression,\n isExportAllDeclaration,\n} from \"../validators/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport { getBindingIdentifiers as default };\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates: true,\n outerOnly?: boolean,\n): Record<string, Array<t.Identifier>>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: false,\n outerOnly?: boolean,\n): Record<string, t.Identifier>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>>;\n\n/**\n * Return a list of binding identifiers associated with the input `node`.\n */\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>> {\n const search: t.Node[] = [].concat(node);\n const ids = Object.create(null);\n\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n\n const keys =\n // @ts-expect-error getBindingIdentifiers.keys do not cover all AST types\n getBindingIdentifiers.keys[id.type];\n\n if (isIdentifier(id)) {\n if (duplicates) {\n const _ids = (ids[id.name] = ids[id.name] || []);\n _ids.push(id);\n } else {\n ids[id.name] = id;\n }\n continue;\n }\n\n if (isExportDeclaration(id) && !isExportAllDeclaration(id)) {\n if (isDeclaration(id.declaration)) {\n search.push(id.declaration);\n }\n continue;\n }\n\n if (outerOnly) {\n if (isFunctionDeclaration(id)) {\n search.push(id.id);\n continue;\n }\n\n if (isFunctionExpression(id)) {\n continue;\n }\n }\n\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const nodes =\n // @ts-expect-error key must present in id\n id[key] as t.Node[] | t.Node | undefined | null;\n if (nodes) {\n Array.isArray(nodes) ? search.push(...nodes) : search.push(nodes);\n }\n }\n }\n }\n\n // $FlowIssue Object.create() seems broken\n return ids;\n}\n\n/**\n * Mapping of types to their identifier keys.\n */\ngetBindingIdentifiers.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\n CatchClause: [\"param\"],\n LabeledStatement: [\"label\"],\n UnaryExpression: [\"argument\"],\n AssignmentExpression: [\"left\"],\n\n ImportSpecifier: [\"local\"],\n ImportNamespaceSpecifier: [\"local\"],\n ImportDefaultSpecifier: [\"local\"],\n ImportDeclaration: [\"specifiers\"],\n\n ExportSpecifier: [\"exported\"],\n ExportNamespaceSpecifier: [\"exported\"],\n ExportDefaultSpecifier: [\"exported\"],\n\n FunctionDeclaration: [\"id\", \"params\"],\n FunctionExpression: [\"id\", \"params\"],\n ArrowFunctionExpression: [\"params\"],\n ObjectMethod: [\"params\"],\n ClassMethod: [\"params\"],\n ClassPrivateMethod: [\"params\"],\n\n ForInStatement: [\"left\"],\n ForOfStatement: [\"left\"],\n\n ClassDeclaration: [\"id\"],\n ClassExpression: [\"id\"],\n\n RestElement: [\"argument\"],\n UpdateExpression: [\"argument\"],\n\n ObjectProperty: [\"value\"],\n\n AssignmentPattern: [\"left\"],\n ArrayPattern: [\"elements\"],\n ObjectPattern: [\"properties\"],\n\n VariableDeclaration: [\"declarations\"],\n VariableDeclarator: [\"id\"],\n};\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_index","require","getBindingIdentifiers","node","duplicates","outerOnly","newBindingsOnly","search","concat","ids","Object","create","length","id","shift","isAssignmentExpression","isUnaryExpression","keys","type","isIdentifier","_ids","name","push","isExportDeclaration","isExportAllDeclaration","isDeclaration","declaration","isFunctionDeclaration","isFunctionExpression","i","key","nodes","Array","isArray","DeclareClass","DeclareFunction","DeclareModule","DeclareVariable","DeclareInterface","DeclareTypeAlias","DeclareOpaqueType","InterfaceDeclaration","TypeAlias","OpaqueType","CatchClause","LabeledStatement","UnaryExpression","AssignmentExpression","ImportSpecifier","ImportNamespaceSpecifier","ImportDefaultSpecifier","ImportDeclaration","ExportSpecifier","ExportNamespaceSpecifier","ExportDefaultSpecifier","FunctionDeclaration","FunctionExpression","ArrowFunctionExpression","ObjectMethod","ClassMethod","ClassPrivateMethod","ForInStatement","ForOfStatement","ClassDeclaration","ClassExpression","RestElement","UpdateExpression","ObjectProperty","AssignmentPattern","ArrayPattern","ObjectPattern","VariableDeclaration","VariableDeclarator"],"sources":["../../src/retrievers/getBindingIdentifiers.ts"],"sourcesContent":["import {\n isExportDeclaration,\n isIdentifier,\n isDeclaration,\n isFunctionDeclaration,\n isFunctionExpression,\n isExportAllDeclaration,\n isAssignmentExpression,\n isUnaryExpression,\n} from \"../validators/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport { getBindingIdentifiers as default };\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates: true,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record<string, Array<t.Identifier>>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: false,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record<string, t.Identifier>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>>;\n\n/**\n * Return a list of binding identifiers associated with the input `node`.\n */\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>> {\n const search: t.Node[] = [].concat(node);\n const ids = Object.create(null);\n\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n\n if (\n newBindingsOnly &&\n // These two nodes do not introduce _new_ bindings, but they are included\n // in getBindingIdentifiers.keys for backwards compatibility.\n // TODO(@nicolo-ribaudo): Check if we can remove them from .keys in a\n // backward-compatible way, and if not what we need to do to remove them\n // in Babel 8.\n (isAssignmentExpression(id) || isUnaryExpression(id))\n ) {\n continue;\n }\n\n const keys =\n // @ts-expect-error getBindingIdentifiers.keys do not cover all AST types\n getBindingIdentifiers.keys[id.type];\n\n if (isIdentifier(id)) {\n if (duplicates) {\n const _ids = (ids[id.name] = ids[id.name] || []);\n _ids.push(id);\n } else {\n ids[id.name] = id;\n }\n continue;\n }\n\n if (isExportDeclaration(id) && !isExportAllDeclaration(id)) {\n if (isDeclaration(id.declaration)) {\n search.push(id.declaration);\n }\n continue;\n }\n\n if (outerOnly) {\n if (isFunctionDeclaration(id)) {\n search.push(id.id);\n continue;\n }\n\n if (isFunctionExpression(id)) {\n continue;\n }\n }\n\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const nodes =\n // @ts-expect-error key must present in id\n id[key] as t.Node[] | t.Node | undefined | null;\n if (nodes) {\n Array.isArray(nodes) ? search.push(...nodes) : search.push(nodes);\n }\n }\n }\n }\n\n // $FlowIssue Object.create() seems broken\n return ids;\n}\n\n/**\n * Mapping of types to their identifier keys.\n */\ngetBindingIdentifiers.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\n CatchClause: [\"param\"],\n LabeledStatement: [\"label\"],\n UnaryExpression: [\"argument\"],\n AssignmentExpression: [\"left\"],\n\n ImportSpecifier: [\"local\"],\n ImportNamespaceSpecifier: [\"local\"],\n ImportDefaultSpecifier: [\"local\"],\n ImportDeclaration: [\"specifiers\"],\n\n ExportSpecifier: [\"exported\"],\n ExportNamespaceSpecifier: [\"exported\"],\n ExportDefaultSpecifier: [\"exported\"],\n\n FunctionDeclaration: [\"id\", \"params\"],\n FunctionExpression: [\"id\", \"params\"],\n ArrowFunctionExpression: [\"params\"],\n ObjectMethod: [\"params\"],\n ClassMethod: [\"params\"],\n ClassPrivateMethod: [\"params\"],\n\n ForInStatement: [\"left\"],\n ForOfStatement: [\"left\"],\n\n ClassDeclaration: [\"id\"],\n ClassExpression: [\"id\"],\n\n RestElement: [\"argument\"],\n UpdateExpression: [\"argument\"],\n\n ObjectProperty: [\"value\"],\n\n AssignmentPattern: [\"left\"],\n ArrayPattern: [\"elements\"],\n ObjectPattern: [\"properties\"],\n\n VariableDeclaration: [\"declarations\"],\n VariableDeclarator: [\"id\"],\n};\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js b/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js index 42425626..f51c47b5 100644 --- a/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js +++ b/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js @@ -5,8 +5,7 @@ Object.defineProperty(exports, "__esModule", { }); exports.default = void 0; var _getBindingIdentifiers = require("./getBindingIdentifiers.js"); -var _default = getOuterBindingIdentifiers; -exports.default = _default; +var _default = exports.default = getOuterBindingIdentifiers; function getOuterBindingIdentifiers(node, duplicates) { return (0, _getBindingIdentifiers.default)(node, duplicates, true); } diff --git a/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map b/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map index 48a2ea3f..cee1c55e 100644 --- a/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map +++ b/node_modules/@babel/types/lib/retrievers/getOuterBindingIdentifiers.js.map @@ -1 +1 @@ -{"version":3,"names":["_getBindingIdentifiers","require","_default","getOuterBindingIdentifiers","exports","default","node","duplicates","getBindingIdentifiers"],"sources":["../../src/retrievers/getOuterBindingIdentifiers.ts"],"sourcesContent":["import getBindingIdentifiers from \"./getBindingIdentifiers.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default getOuterBindingIdentifiers as {\n (node: t.Node, duplicates: true): Record<string, Array<t.Identifier>>;\n (node: t.Node, duplicates?: false): Record<string, t.Identifier>;\n (\n node: t.Node,\n duplicates?: boolean,\n ): Record<string, t.Identifier> | Record<string, Array<t.Identifier>>;\n};\n\nfunction getOuterBindingIdentifiers(\n node: t.Node,\n duplicates: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>> {\n return getBindingIdentifiers(node, duplicates, true);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAA+D,IAAAC,QAAA,GAGhDC,0BAA0B;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA;AASzC,SAASC,0BAA0BA,CACjCG,IAAY,EACZC,UAAmB,EACiD;EACpE,OAAO,IAAAC,8BAAqB,EAACF,IAAI,EAAEC,UAAU,EAAE,IAAI,CAAC;AACtD"}
\ No newline at end of file +{"version":3,"names":["_getBindingIdentifiers","require","_default","exports","default","getOuterBindingIdentifiers","node","duplicates","getBindingIdentifiers"],"sources":["../../src/retrievers/getOuterBindingIdentifiers.ts"],"sourcesContent":["import getBindingIdentifiers from \"./getBindingIdentifiers.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default getOuterBindingIdentifiers as {\n (node: t.Node, duplicates: true): Record<string, Array<t.Identifier>>;\n (node: t.Node, duplicates?: false): Record<string, t.Identifier>;\n (\n node: t.Node,\n duplicates?: boolean,\n ): Record<string, t.Identifier> | Record<string, Array<t.Identifier>>;\n};\n\nfunction getOuterBindingIdentifiers(\n node: t.Node,\n duplicates: boolean,\n): Record<string, t.Identifier> | Record<string, Array<t.Identifier>> {\n return getBindingIdentifiers(node, duplicates, true);\n}\n"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AAA+D,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGhDC,0BAA0B;AASzC,SAASA,0BAA0BA,CACjCC,IAAY,EACZC,UAAmB,EACiD;EACpE,OAAO,IAAAC,8BAAqB,EAACF,IAAI,EAAEC,UAAU,EAAE,IAAI,CAAC;AACtD"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/validators/generated/index.js.map b/node_modules/@babel/types/lib/validators/generated/index.js.map index 3bb2a91d..65b60d47 100644 --- a/node_modules/@babel/types/lib/validators/generated/index.js.map +++ b/node_modules/@babel/types/lib/validators/generated/index.js.map @@ -1 +1 @@ -{"version":3,"names":["_shallowEqual","require","_deprecationWarning","isArrayExpression","node","opts","type","shallowEqual","isAssignmentExpression","isBinaryExpression","isInterpreterDirective","isDirective","isDirectiveLiteral","isBlockStatement","isBreakStatement","isCallExpression","isCatchClause","isConditionalExpression","isContinueStatement","isDebuggerStatement","isDoWhileStatement","isEmptyStatement","isExpressionStatement","isFile","isForInStatement","isForStatement","isFunctionDeclaration","isFunctionExpression","isIdentifier","isIfStatement","isLabeledStatement","isStringLiteral","isNumericLiteral","isNullLiteral","isBooleanLiteral","isRegExpLiteral","isLogicalExpression","isMemberExpression","isNewExpression","isProgram","isObjectExpression","isObjectMethod","isObjectProperty","isRestElement","isReturnStatement","isSequenceExpression","isParenthesizedExpression","isSwitchCase","isSwitchStatement","isThisExpression","isThrowStatement","isTryStatement","isUnaryExpression","isUpdateExpression","isVariableDeclaration","isVariableDeclarator","isWhileStatement","isWithStatement","isAssignmentPattern","isArrayPattern","isArrowFunctionExpression","isClassBody","isClassExpression","isClassDeclaration","isExportAllDeclaration","isExportDefaultDeclaration","isExportNamedDeclaration","isExportSpecifier","isForOfStatement","isImportDeclaration","isImportDefaultSpecifier","isImportNamespaceSpecifier","isImportSpecifier","isImportExpression","isMetaProperty","isClassMethod","isObjectPattern","isSpreadElement","isSuper","isTaggedTemplateExpression","isTemplateElement","isTemplateLiteral","isYieldExpression","isAwaitExpression","isImport","isBigIntLiteral","isExportNamespaceSpecifier","isOptionalMemberExpression","isOptionalCallExpression","isClassProperty","isClassAccessorProperty","isClassPrivateProperty","isClassPrivateMethod","isPrivateName","isStaticBlock","isAnyTypeAnnotation","isArrayTypeAnnotation","isBooleanTypeAnnotation","isBooleanLiteralTypeAnnotation","isNullLiteralTypeAnnotation","isClassImplements","isDeclareClass","isDeclareFunction","isDeclareInterface","isDeclareModule","isDeclareModuleExports","isDeclareTypeAlias","isDeclareOpaqueType","isDeclareVariable","isDeclareExportDeclaration","isDeclareExportAllDeclaration","isDeclaredPredicate","isExistsTypeAnnotation","isFunctionTypeAnnotation","isFunctionTypeParam","isGenericTypeAnnotation","isInferredPredicate","isInterfaceExtends","isInterfaceDeclaration","isInterfaceTypeAnnotation","isIntersectionTypeAnnotation","isMixedTypeAnnotation","isEmptyTypeAnnotation","isNullableTypeAnnotation","isNumberLiteralTypeAnnotation","isNumberTypeAnnotation","isObjectTypeAnnotation","isObjectTypeInternalSlot","isObjectTypeCallProperty","isObjectTypeIndexer","isObjectTypeProperty","isObjectTypeSpreadProperty","isOpaqueType","isQualifiedTypeIdentifier","isStringLiteralTypeAnnotation","isStringTypeAnnotation","isSymbolTypeAnnotation","isThisTypeAnnotation","isTupleTypeAnnotation","isTypeofTypeAnnotation","isTypeAlias","isTypeAnnotation","isTypeCastExpression","isTypeParameter","isTypeParameterDeclaration","isTypeParameterInstantiation","isUnionTypeAnnotation","isVariance","isVoidTypeAnnotation","isEnumDeclaration","isEnumBooleanBody","isEnumNumberBody","isEnumStringBody","isEnumSymbolBody","isEnumBooleanMember","isEnumNumberMember","isEnumStringMember","isEnumDefaultedMember","isIndexedAccessType","isOptionalIndexedAccessType","isJSXAttribute","isJSXClosingElement","isJSXElement","isJSXEmptyExpression","isJSXExpressionContainer","isJSXSpreadChild","isJSXIdentifier","isJSXMemberExpression","isJSXNamespacedName","isJSXOpeningElement","isJSXSpreadAttribute","isJSXText","isJSXFragment","isJSXOpeningFragment","isJSXClosingFragment","isNoop","isPlaceholder","isV8IntrinsicIdentifier","isArgumentPlaceholder","isBindExpression","isImportAttribute","isDecorator","isDoExpression","isExportDefaultSpecifier","isRecordExpression","isTupleExpression","isDecimalLiteral","isModuleExpression","isTopicReference","isPipelineTopicExpression","isPipelineBareFunction","isPipelinePrimaryTopicReference","isTSParameterProperty","isTSDeclareFunction","isTSDeclareMethod","isTSQualifiedName","isTSCallSignatureDeclaration","isTSConstructSignatureDeclaration","isTSPropertySignature","isTSMethodSignature","isTSIndexSignature","isTSAnyKeyword","isTSBooleanKeyword","isTSBigIntKeyword","isTSIntrinsicKeyword","isTSNeverKeyword","isTSNullKeyword","isTSNumberKeyword","isTSObjectKeyword","isTSStringKeyword","isTSSymbolKeyword","isTSUndefinedKeyword","isTSUnknownKeyword","isTSVoidKeyword","isTSThisType","isTSFunctionType","isTSConstructorType","isTSTypeReference","isTSTypePredicate","isTSTypeQuery","isTSTypeLiteral","isTSArrayType","isTSTupleType","isTSOptionalType","isTSRestType","isTSNamedTupleMember","isTSUnionType","isTSIntersectionType","isTSConditionalType","isTSInferType","isTSParenthesizedType","isTSTypeOperator","isTSIndexedAccessType","isTSMappedType","isTSLiteralType","isTSExpressionWithTypeArguments","isTSInterfaceDeclaration","isTSInterfaceBody","isTSTypeAliasDeclaration","isTSInstantiationExpression","isTSAsExpression","isTSSatisfiesExpression","isTSTypeAssertion","isTSEnumDeclaration","isTSEnumMember","isTSModuleDeclaration","isTSModuleBlock","isTSImportType","isTSImportEqualsDeclaration","isTSExternalModuleReference","isTSNonNullExpression","isTSExportAssignment","isTSNamespaceExportDeclaration","isTSTypeAnnotation","isTSTypeParameterInstantiation","isTSTypeParameterDeclaration","isTSTypeParameter","isStandardized","expectedNode","isExpression","isBinary","isScopable","isBlockParent","isBlock","isStatement","isTerminatorless","isCompletionStatement","isConditional","isLoop","isWhile","isExpressionWrapper","isFor","isForXStatement","isFunction","isFunctionParent","isPureish","isDeclaration","isPatternLike","isLVal","isTSEntityName","isLiteral","isImmutable","isUserWhitespacable","isMethod","isObjectMember","isProperty","isUnaryLike","isPattern","isClass","isImportOrExportDeclaration","isExportDeclaration","isModuleSpecifier","isAccessor","isPrivate","isFlow","isFlowType","isFlowBaseAnnotation","isFlowDeclaration","isFlowPredicate","isEnumBody","isEnumMember","isJSX","isMiscellaneous","isTypeScript","isTSTypeElement","isTSType","isTSBaseType","isNumberLiteral","deprecationWarning","isRegexLiteral","isRestProperty","isSpreadProperty","isModuleDeclaration"],"sources":["../../../src/validators/generated/index.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\n\n/* eslint-disable no-fallthrough */\n\nimport shallowEqual from \"../../utils/shallowEqual.ts\";\nimport type * as t from \"../../index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\n\ntype Opts<Obj> = Partial<{\n [Prop in keyof Obj]: Obj[Prop] extends t.Node\n ? t.Node\n : Obj[Prop] extends t.Node[]\n ? t.Node[]\n : Obj[Prop];\n}>;\n\nexport function isArrayExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArrayExpression> | null,\n): node is t.ArrayExpression {\n if (!node) return false;\n\n if (node.type !== \"ArrayExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAssignmentExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.AssignmentExpression> | null,\n): node is t.AssignmentExpression {\n if (!node) return false;\n\n if (node.type !== \"AssignmentExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBinaryExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.BinaryExpression> | null,\n): node is t.BinaryExpression {\n if (!node) return false;\n\n if (node.type !== \"BinaryExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterpreterDirective(\n node: t.Node | null | undefined,\n opts?: Opts<t.InterpreterDirective> | null,\n): node is t.InterpreterDirective {\n if (!node) return false;\n\n if (node.type !== \"InterpreterDirective\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDirective(\n node: t.Node | null | undefined,\n opts?: Opts<t.Directive> | null,\n): node is t.Directive {\n if (!node) return false;\n\n if (node.type !== \"Directive\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDirectiveLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.DirectiveLiteral> | null,\n): node is t.DirectiveLiteral {\n if (!node) return false;\n\n if (node.type !== \"DirectiveLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlockStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.BlockStatement> | null,\n): node is t.BlockStatement {\n if (!node) return false;\n\n if (node.type !== \"BlockStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBreakStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.BreakStatement> | null,\n): node is t.BreakStatement {\n if (!node) return false;\n\n if (node.type !== \"BreakStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCallExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.CallExpression> | null,\n): node is t.CallExpression {\n if (!node) return false;\n\n if (node.type !== \"CallExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCatchClause(\n node: t.Node | null | undefined,\n opts?: Opts<t.CatchClause> | null,\n): node is t.CatchClause {\n if (!node) return false;\n\n if (node.type !== \"CatchClause\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isConditionalExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ConditionalExpression> | null,\n): node is t.ConditionalExpression {\n if (!node) return false;\n\n if (node.type !== \"ConditionalExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isContinueStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ContinueStatement> | null,\n): node is t.ContinueStatement {\n if (!node) return false;\n\n if (node.type !== \"ContinueStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDebuggerStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.DebuggerStatement> | null,\n): node is t.DebuggerStatement {\n if (!node) return false;\n\n if (node.type !== \"DebuggerStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDoWhileStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.DoWhileStatement> | null,\n): node is t.DoWhileStatement {\n if (!node) return false;\n\n if (node.type !== \"DoWhileStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEmptyStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.EmptyStatement> | null,\n): node is t.EmptyStatement {\n if (!node) return false;\n\n if (node.type !== \"EmptyStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpressionStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExpressionStatement> | null,\n): node is t.ExpressionStatement {\n if (!node) return false;\n\n if (node.type !== \"ExpressionStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFile(\n node: t.Node | null | undefined,\n opts?: Opts<t.File> | null,\n): node is t.File {\n if (!node) return false;\n\n if (node.type !== \"File\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForInStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ForInStatement> | null,\n): node is t.ForInStatement {\n if (!node) return false;\n\n if (node.type !== \"ForInStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ForStatement> | null,\n): node is t.ForStatement {\n if (!node) return false;\n\n if (node.type !== \"ForStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionDeclaration> | null,\n): node is t.FunctionDeclaration {\n if (!node) return false;\n\n if (node.type !== \"FunctionDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionExpression> | null,\n): node is t.FunctionExpression {\n if (!node) return false;\n\n if (node.type !== \"FunctionExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.Identifier> | null,\n): node is t.Identifier {\n if (!node) return false;\n\n if (node.type !== \"Identifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIfStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.IfStatement> | null,\n): node is t.IfStatement {\n if (!node) return false;\n\n if (node.type !== \"IfStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLabeledStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.LabeledStatement> | null,\n): node is t.LabeledStatement {\n if (!node) return false;\n\n if (node.type !== \"LabeledStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.StringLiteral> | null,\n): node is t.StringLiteral {\n if (!node) return false;\n\n if (node.type !== \"StringLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumericLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.NumericLiteral> | null,\n): node is t.NumericLiteral {\n if (!node) return false;\n\n if (node.type !== \"NumericLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.NullLiteral> | null,\n): node is t.NullLiteral {\n if (!node) return false;\n\n if (node.type !== \"NullLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.BooleanLiteral> | null,\n): node is t.BooleanLiteral {\n if (!node) return false;\n\n if (node.type !== \"BooleanLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRegExpLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.RegExpLiteral> | null,\n): node is t.RegExpLiteral {\n if (!node) return false;\n\n if (node.type !== \"RegExpLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLogicalExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.LogicalExpression> | null,\n): node is t.LogicalExpression {\n if (!node) return false;\n\n if (node.type !== \"LogicalExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMemberExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.MemberExpression> | null,\n): node is t.MemberExpression {\n if (!node) return false;\n\n if (node.type !== \"MemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNewExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.NewExpression> | null,\n): node is t.NewExpression {\n if (!node) return false;\n\n if (node.type !== \"NewExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isProgram(\n node: t.Node | null | undefined,\n opts?: Opts<t.Program> | null,\n): node is t.Program {\n if (!node) return false;\n\n if (node.type !== \"Program\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectExpression> | null,\n): node is t.ObjectExpression {\n if (!node) return false;\n\n if (node.type !== \"ObjectExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectMethod> | null,\n): node is t.ObjectMethod {\n if (!node) return false;\n\n if (node.type !== \"ObjectMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectProperty> | null,\n): node is t.ObjectProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRestElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.RestElement> | null,\n): node is t.RestElement {\n if (!node) return false;\n\n if (node.type !== \"RestElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isReturnStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ReturnStatement> | null,\n): node is t.ReturnStatement {\n if (!node) return false;\n\n if (node.type !== \"ReturnStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSequenceExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.SequenceExpression> | null,\n): node is t.SequenceExpression {\n if (!node) return false;\n\n if (node.type !== \"SequenceExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isParenthesizedExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ParenthesizedExpression> | null,\n): node is t.ParenthesizedExpression {\n if (!node) return false;\n\n if (node.type !== \"ParenthesizedExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSwitchCase(\n node: t.Node | null | undefined,\n opts?: Opts<t.SwitchCase> | null,\n): node is t.SwitchCase {\n if (!node) return false;\n\n if (node.type !== \"SwitchCase\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSwitchStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.SwitchStatement> | null,\n): node is t.SwitchStatement {\n if (!node) return false;\n\n if (node.type !== \"SwitchStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThisExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ThisExpression> | null,\n): node is t.ThisExpression {\n if (!node) return false;\n\n if (node.type !== \"ThisExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThrowStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ThrowStatement> | null,\n): node is t.ThrowStatement {\n if (!node) return false;\n\n if (node.type !== \"ThrowStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTryStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.TryStatement> | null,\n): node is t.TryStatement {\n if (!node) return false;\n\n if (node.type !== \"TryStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnaryExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.UnaryExpression> | null,\n): node is t.UnaryExpression {\n if (!node) return false;\n\n if (node.type !== \"UnaryExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUpdateExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.UpdateExpression> | null,\n): node is t.UpdateExpression {\n if (!node) return false;\n\n if (node.type !== \"UpdateExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariableDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.VariableDeclaration> | null,\n): node is t.VariableDeclaration {\n if (!node) return false;\n\n if (node.type !== \"VariableDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariableDeclarator(\n node: t.Node | null | undefined,\n opts?: Opts<t.VariableDeclarator> | null,\n): node is t.VariableDeclarator {\n if (!node) return false;\n\n if (node.type !== \"VariableDeclarator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWhileStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.WhileStatement> | null,\n): node is t.WhileStatement {\n if (!node) return false;\n\n if (node.type !== \"WhileStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWithStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.WithStatement> | null,\n): node is t.WithStatement {\n if (!node) return false;\n\n if (node.type !== \"WithStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAssignmentPattern(\n node: t.Node | null | undefined,\n opts?: Opts<t.AssignmentPattern> | null,\n): node is t.AssignmentPattern {\n if (!node) return false;\n\n if (node.type !== \"AssignmentPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrayPattern(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArrayPattern> | null,\n): node is t.ArrayPattern {\n if (!node) return false;\n\n if (node.type !== \"ArrayPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrowFunctionExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArrowFunctionExpression> | null,\n): node is t.ArrowFunctionExpression {\n if (!node) return false;\n\n if (node.type !== \"ArrowFunctionExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassBody> | null,\n): node is t.ClassBody {\n if (!node) return false;\n\n if (node.type !== \"ClassBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassExpression> | null,\n): node is t.ClassExpression {\n if (!node) return false;\n\n if (node.type !== \"ClassExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassDeclaration> | null,\n): node is t.ClassDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ClassDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportAllDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportAllDeclaration> | null,\n): node is t.ExportAllDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ExportAllDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDefaultDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportDefaultDeclaration> | null,\n): node is t.ExportDefaultDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ExportDefaultDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportNamedDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportNamedDeclaration> | null,\n): node is t.ExportNamedDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ExportNamedDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportSpecifier> | null,\n): node is t.ExportSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ExportSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForOfStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ForOfStatement> | null,\n): node is t.ForOfStatement {\n if (!node) return false;\n\n if (node.type !== \"ForOfStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportDeclaration> | null,\n): node is t.ImportDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ImportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportDefaultSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportDefaultSpecifier> | null,\n): node is t.ImportDefaultSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ImportDefaultSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportNamespaceSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportNamespaceSpecifier> | null,\n): node is t.ImportNamespaceSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ImportNamespaceSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportSpecifier> | null,\n): node is t.ImportSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ImportSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportExpression> | null,\n): node is t.ImportExpression {\n if (!node) return false;\n\n if (node.type !== \"ImportExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMetaProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.MetaProperty> | null,\n): node is t.MetaProperty {\n if (!node) return false;\n\n if (node.type !== \"MetaProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassMethod> | null,\n): node is t.ClassMethod {\n if (!node) return false;\n\n if (node.type !== \"ClassMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectPattern(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectPattern> | null,\n): node is t.ObjectPattern {\n if (!node) return false;\n\n if (node.type !== \"ObjectPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSpreadElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.SpreadElement> | null,\n): node is t.SpreadElement {\n if (!node) return false;\n\n if (node.type !== \"SpreadElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSuper(\n node: t.Node | null | undefined,\n opts?: Opts<t.Super> | null,\n): node is t.Super {\n if (!node) return false;\n\n if (node.type !== \"Super\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTaggedTemplateExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TaggedTemplateExpression> | null,\n): node is t.TaggedTemplateExpression {\n if (!node) return false;\n\n if (node.type !== \"TaggedTemplateExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTemplateElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.TemplateElement> | null,\n): node is t.TemplateElement {\n if (!node) return false;\n\n if (node.type !== \"TemplateElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTemplateLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.TemplateLiteral> | null,\n): node is t.TemplateLiteral {\n if (!node) return false;\n\n if (node.type !== \"TemplateLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isYieldExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.YieldExpression> | null,\n): node is t.YieldExpression {\n if (!node) return false;\n\n if (node.type !== \"YieldExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAwaitExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.AwaitExpression> | null,\n): node is t.AwaitExpression {\n if (!node) return false;\n\n if (node.type !== \"AwaitExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImport(\n node: t.Node | null | undefined,\n opts?: Opts<t.Import> | null,\n): node is t.Import {\n if (!node) return false;\n\n if (node.type !== \"Import\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBigIntLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.BigIntLiteral> | null,\n): node is t.BigIntLiteral {\n if (!node) return false;\n\n if (node.type !== \"BigIntLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportNamespaceSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportNamespaceSpecifier> | null,\n): node is t.ExportNamespaceSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ExportNamespaceSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalMemberExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.OptionalMemberExpression> | null,\n): node is t.OptionalMemberExpression {\n if (!node) return false;\n\n if (node.type !== \"OptionalMemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalCallExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.OptionalCallExpression> | null,\n): node is t.OptionalCallExpression {\n if (!node) return false;\n\n if (node.type !== \"OptionalCallExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassProperty> | null,\n): node is t.ClassProperty {\n if (!node) return false;\n\n if (node.type !== \"ClassProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassAccessorProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassAccessorProperty> | null,\n): node is t.ClassAccessorProperty {\n if (!node) return false;\n\n if (node.type !== \"ClassAccessorProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassPrivateProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassPrivateProperty> | null,\n): node is t.ClassPrivateProperty {\n if (!node) return false;\n\n if (node.type !== \"ClassPrivateProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassPrivateMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassPrivateMethod> | null,\n): node is t.ClassPrivateMethod {\n if (!node) return false;\n\n if (node.type !== \"ClassPrivateMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPrivateName(\n node: t.Node | null | undefined,\n opts?: Opts<t.PrivateName> | null,\n): node is t.PrivateName {\n if (!node) return false;\n\n if (node.type !== \"PrivateName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStaticBlock(\n node: t.Node | null | undefined,\n opts?: Opts<t.StaticBlock> | null,\n): node is t.StaticBlock {\n if (!node) return false;\n\n if (node.type !== \"StaticBlock\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAnyTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.AnyTypeAnnotation> | null,\n): node is t.AnyTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"AnyTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrayTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArrayTypeAnnotation> | null,\n): node is t.ArrayTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ArrayTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.BooleanTypeAnnotation> | null,\n): node is t.BooleanTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"BooleanTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.BooleanLiteralTypeAnnotation> | null,\n): node is t.BooleanLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"BooleanLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.NullLiteralTypeAnnotation> | null,\n): node is t.NullLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NullLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassImplements(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassImplements> | null,\n): node is t.ClassImplements {\n if (!node) return false;\n\n if (node.type !== \"ClassImplements\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareClass(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareClass> | null,\n): node is t.DeclareClass {\n if (!node) return false;\n\n if (node.type !== \"DeclareClass\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareFunction(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareFunction> | null,\n): node is t.DeclareFunction {\n if (!node) return false;\n\n if (node.type !== \"DeclareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareInterface(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareInterface> | null,\n): node is t.DeclareInterface {\n if (!node) return false;\n\n if (node.type !== \"DeclareInterface\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareModule(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareModule> | null,\n): node is t.DeclareModule {\n if (!node) return false;\n\n if (node.type !== \"DeclareModule\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareModuleExports(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareModuleExports> | null,\n): node is t.DeclareModuleExports {\n if (!node) return false;\n\n if (node.type !== \"DeclareModuleExports\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareTypeAlias(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareTypeAlias> | null,\n): node is t.DeclareTypeAlias {\n if (!node) return false;\n\n if (node.type !== \"DeclareTypeAlias\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareOpaqueType(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareOpaqueType> | null,\n): node is t.DeclareOpaqueType {\n if (!node) return false;\n\n if (node.type !== \"DeclareOpaqueType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareVariable(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareVariable> | null,\n): node is t.DeclareVariable {\n if (!node) return false;\n\n if (node.type !== \"DeclareVariable\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareExportDeclaration> | null,\n): node is t.DeclareExportDeclaration {\n if (!node) return false;\n\n if (node.type !== \"DeclareExportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareExportAllDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareExportAllDeclaration> | null,\n): node is t.DeclareExportAllDeclaration {\n if (!node) return false;\n\n if (node.type !== \"DeclareExportAllDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclaredPredicate(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclaredPredicate> | null,\n): node is t.DeclaredPredicate {\n if (!node) return false;\n\n if (node.type !== \"DeclaredPredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExistsTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExistsTypeAnnotation> | null,\n): node is t.ExistsTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ExistsTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionTypeAnnotation> | null,\n): node is t.FunctionTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"FunctionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionTypeParam(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionTypeParam> | null,\n): node is t.FunctionTypeParam {\n if (!node) return false;\n\n if (node.type !== \"FunctionTypeParam\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isGenericTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.GenericTypeAnnotation> | null,\n): node is t.GenericTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"GenericTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInferredPredicate(\n node: t.Node | null | undefined,\n opts?: Opts<t.InferredPredicate> | null,\n): node is t.InferredPredicate {\n if (!node) return false;\n\n if (node.type !== \"InferredPredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceExtends(\n node: t.Node | null | undefined,\n opts?: Opts<t.InterfaceExtends> | null,\n): node is t.InterfaceExtends {\n if (!node) return false;\n\n if (node.type !== \"InterfaceExtends\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.InterfaceDeclaration> | null,\n): node is t.InterfaceDeclaration {\n if (!node) return false;\n\n if (node.type !== \"InterfaceDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.InterfaceTypeAnnotation> | null,\n): node is t.InterfaceTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"InterfaceTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIntersectionTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.IntersectionTypeAnnotation> | null,\n): node is t.IntersectionTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"IntersectionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMixedTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.MixedTypeAnnotation> | null,\n): node is t.MixedTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"MixedTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEmptyTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.EmptyTypeAnnotation> | null,\n): node is t.EmptyTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"EmptyTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullableTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.NullableTypeAnnotation> | null,\n): node is t.NullableTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NullableTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumberLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.NumberLiteralTypeAnnotation> | null,\n): node is t.NumberLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NumberLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumberTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.NumberTypeAnnotation> | null,\n): node is t.NumberTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NumberTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeAnnotation> | null,\n): node is t.ObjectTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeInternalSlot(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeInternalSlot> | null,\n): node is t.ObjectTypeInternalSlot {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeInternalSlot\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeCallProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeCallProperty> | null,\n): node is t.ObjectTypeCallProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeCallProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeIndexer(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeIndexer> | null,\n): node is t.ObjectTypeIndexer {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeIndexer\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeProperty> | null,\n): node is t.ObjectTypeProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeSpreadProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeSpreadProperty> | null,\n): node is t.ObjectTypeSpreadProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeSpreadProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOpaqueType(\n node: t.Node | null | undefined,\n opts?: Opts<t.OpaqueType> | null,\n): node is t.OpaqueType {\n if (!node) return false;\n\n if (node.type !== \"OpaqueType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isQualifiedTypeIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.QualifiedTypeIdentifier> | null,\n): node is t.QualifiedTypeIdentifier {\n if (!node) return false;\n\n if (node.type !== \"QualifiedTypeIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.StringLiteralTypeAnnotation> | null,\n): node is t.StringLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"StringLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.StringTypeAnnotation> | null,\n): node is t.StringTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"StringTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSymbolTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.SymbolTypeAnnotation> | null,\n): node is t.SymbolTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"SymbolTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThisTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.ThisTypeAnnotation> | null,\n): node is t.ThisTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ThisTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTupleTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TupleTypeAnnotation> | null,\n): node is t.TupleTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TupleTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeofTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeofTypeAnnotation> | null,\n): node is t.TypeofTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TypeofTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeAlias(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeAlias> | null,\n): node is t.TypeAlias {\n if (!node) return false;\n\n if (node.type !== \"TypeAlias\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeAnnotation> | null,\n): node is t.TypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeCastExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeCastExpression> | null,\n): node is t.TypeCastExpression {\n if (!node) return false;\n\n if (node.type !== \"TypeCastExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameter(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeParameter> | null,\n): node is t.TypeParameter {\n if (!node) return false;\n\n if (node.type !== \"TypeParameter\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameterDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeParameterDeclaration> | null,\n): node is t.TypeParameterDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TypeParameterDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameterInstantiation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeParameterInstantiation> | null,\n): node is t.TypeParameterInstantiation {\n if (!node) return false;\n\n if (node.type !== \"TypeParameterInstantiation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnionTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.UnionTypeAnnotation> | null,\n): node is t.UnionTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"UnionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariance(\n node: t.Node | null | undefined,\n opts?: Opts<t.Variance> | null,\n): node is t.Variance {\n if (!node) return false;\n\n if (node.type !== \"Variance\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVoidTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.VoidTypeAnnotation> | null,\n): node is t.VoidTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"VoidTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumDeclaration> | null,\n): node is t.EnumDeclaration {\n if (!node) return false;\n\n if (node.type !== \"EnumDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBooleanBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumBooleanBody> | null,\n): node is t.EnumBooleanBody {\n if (!node) return false;\n\n if (node.type !== \"EnumBooleanBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumNumberBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumNumberBody> | null,\n): node is t.EnumNumberBody {\n if (!node) return false;\n\n if (node.type !== \"EnumNumberBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumStringBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumStringBody> | null,\n): node is t.EnumStringBody {\n if (!node) return false;\n\n if (node.type !== \"EnumStringBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumSymbolBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumSymbolBody> | null,\n): node is t.EnumSymbolBody {\n if (!node) return false;\n\n if (node.type !== \"EnumSymbolBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBooleanMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumBooleanMember> | null,\n): node is t.EnumBooleanMember {\n if (!node) return false;\n\n if (node.type !== \"EnumBooleanMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumNumberMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumNumberMember> | null,\n): node is t.EnumNumberMember {\n if (!node) return false;\n\n if (node.type !== \"EnumNumberMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumStringMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumStringMember> | null,\n): node is t.EnumStringMember {\n if (!node) return false;\n\n if (node.type !== \"EnumStringMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumDefaultedMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumDefaultedMember> | null,\n): node is t.EnumDefaultedMember {\n if (!node) return false;\n\n if (node.type !== \"EnumDefaultedMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIndexedAccessType(\n node: t.Node | null | undefined,\n opts?: Opts<t.IndexedAccessType> | null,\n): node is t.IndexedAccessType {\n if (!node) return false;\n\n if (node.type !== \"IndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalIndexedAccessType(\n node: t.Node | null | undefined,\n opts?: Opts<t.OptionalIndexedAccessType> | null,\n): node is t.OptionalIndexedAccessType {\n if (!node) return false;\n\n if (node.type !== \"OptionalIndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXAttribute(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXAttribute> | null,\n): node is t.JSXAttribute {\n if (!node) return false;\n\n if (node.type !== \"JSXAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXClosingElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXClosingElement> | null,\n): node is t.JSXClosingElement {\n if (!node) return false;\n\n if (node.type !== \"JSXClosingElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXElement> | null,\n): node is t.JSXElement {\n if (!node) return false;\n\n if (node.type !== \"JSXElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXEmptyExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXEmptyExpression> | null,\n): node is t.JSXEmptyExpression {\n if (!node) return false;\n\n if (node.type !== \"JSXEmptyExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXExpressionContainer(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXExpressionContainer> | null,\n): node is t.JSXExpressionContainer {\n if (!node) return false;\n\n if (node.type !== \"JSXExpressionContainer\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXSpreadChild(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXSpreadChild> | null,\n): node is t.JSXSpreadChild {\n if (!node) return false;\n\n if (node.type !== \"JSXSpreadChild\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXIdentifier> | null,\n): node is t.JSXIdentifier {\n if (!node) return false;\n\n if (node.type !== \"JSXIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXMemberExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXMemberExpression> | null,\n): node is t.JSXMemberExpression {\n if (!node) return false;\n\n if (node.type !== \"JSXMemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXNamespacedName(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXNamespacedName> | null,\n): node is t.JSXNamespacedName {\n if (!node) return false;\n\n if (node.type !== \"JSXNamespacedName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXOpeningElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXOpeningElement> | null,\n): node is t.JSXOpeningElement {\n if (!node) return false;\n\n if (node.type !== \"JSXOpeningElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXSpreadAttribute(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXSpreadAttribute> | null,\n): node is t.JSXSpreadAttribute {\n if (!node) return false;\n\n if (node.type !== \"JSXSpreadAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXText(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXText> | null,\n): node is t.JSXText {\n if (!node) return false;\n\n if (node.type !== \"JSXText\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXFragment(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXFragment> | null,\n): node is t.JSXFragment {\n if (!node) return false;\n\n if (node.type !== \"JSXFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXOpeningFragment(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXOpeningFragment> | null,\n): node is t.JSXOpeningFragment {\n if (!node) return false;\n\n if (node.type !== \"JSXOpeningFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXClosingFragment(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXClosingFragment> | null,\n): node is t.JSXClosingFragment {\n if (!node) return false;\n\n if (node.type !== \"JSXClosingFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNoop(\n node: t.Node | null | undefined,\n opts?: Opts<t.Noop> | null,\n): node is t.Noop {\n if (!node) return false;\n\n if (node.type !== \"Noop\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPlaceholder(\n node: t.Node | null | undefined,\n opts?: Opts<t.Placeholder> | null,\n): node is t.Placeholder {\n if (!node) return false;\n\n if (node.type !== \"Placeholder\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isV8IntrinsicIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.V8IntrinsicIdentifier> | null,\n): node is t.V8IntrinsicIdentifier {\n if (!node) return false;\n\n if (node.type !== \"V8IntrinsicIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArgumentPlaceholder(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArgumentPlaceholder> | null,\n): node is t.ArgumentPlaceholder {\n if (!node) return false;\n\n if (node.type !== \"ArgumentPlaceholder\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBindExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.BindExpression> | null,\n): node is t.BindExpression {\n if (!node) return false;\n\n if (node.type !== \"BindExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportAttribute(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportAttribute> | null,\n): node is t.ImportAttribute {\n if (!node) return false;\n\n if (node.type !== \"ImportAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDecorator(\n node: t.Node | null | undefined,\n opts?: Opts<t.Decorator> | null,\n): node is t.Decorator {\n if (!node) return false;\n\n if (node.type !== \"Decorator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDoExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.DoExpression> | null,\n): node is t.DoExpression {\n if (!node) return false;\n\n if (node.type !== \"DoExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDefaultSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportDefaultSpecifier> | null,\n): node is t.ExportDefaultSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ExportDefaultSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRecordExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.RecordExpression> | null,\n): node is t.RecordExpression {\n if (!node) return false;\n\n if (node.type !== \"RecordExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTupleExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TupleExpression> | null,\n): node is t.TupleExpression {\n if (!node) return false;\n\n if (node.type !== \"TupleExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDecimalLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.DecimalLiteral> | null,\n): node is t.DecimalLiteral {\n if (!node) return false;\n\n if (node.type !== \"DecimalLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isModuleExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ModuleExpression> | null,\n): node is t.ModuleExpression {\n if (!node) return false;\n\n if (node.type !== \"ModuleExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTopicReference(\n node: t.Node | null | undefined,\n opts?: Opts<t.TopicReference> | null,\n): node is t.TopicReference {\n if (!node) return false;\n\n if (node.type !== \"TopicReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelineTopicExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.PipelineTopicExpression> | null,\n): node is t.PipelineTopicExpression {\n if (!node) return false;\n\n if (node.type !== \"PipelineTopicExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelineBareFunction(\n node: t.Node | null | undefined,\n opts?: Opts<t.PipelineBareFunction> | null,\n): node is t.PipelineBareFunction {\n if (!node) return false;\n\n if (node.type !== \"PipelineBareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelinePrimaryTopicReference(\n node: t.Node | null | undefined,\n opts?: Opts<t.PipelinePrimaryTopicReference> | null,\n): node is t.PipelinePrimaryTopicReference {\n if (!node) return false;\n\n if (node.type !== \"PipelinePrimaryTopicReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSParameterProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSParameterProperty> | null,\n): node is t.TSParameterProperty {\n if (!node) return false;\n\n if (node.type !== \"TSParameterProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSDeclareFunction(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSDeclareFunction> | null,\n): node is t.TSDeclareFunction {\n if (!node) return false;\n\n if (node.type !== \"TSDeclareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSDeclareMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSDeclareMethod> | null,\n): node is t.TSDeclareMethod {\n if (!node) return false;\n\n if (node.type !== \"TSDeclareMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSQualifiedName(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSQualifiedName> | null,\n): node is t.TSQualifiedName {\n if (!node) return false;\n\n if (node.type !== \"TSQualifiedName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSCallSignatureDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSCallSignatureDeclaration> | null,\n): node is t.TSCallSignatureDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSCallSignatureDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConstructSignatureDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSConstructSignatureDeclaration> | null,\n): node is t.TSConstructSignatureDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSConstructSignatureDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSPropertySignature(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSPropertySignature> | null,\n): node is t.TSPropertySignature {\n if (!node) return false;\n\n if (node.type !== \"TSPropertySignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSMethodSignature(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSMethodSignature> | null,\n): node is t.TSMethodSignature {\n if (!node) return false;\n\n if (node.type !== \"TSMethodSignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIndexSignature(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSIndexSignature> | null,\n): node is t.TSIndexSignature {\n if (!node) return false;\n\n if (node.type !== \"TSIndexSignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSAnyKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSAnyKeyword> | null,\n): node is t.TSAnyKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSAnyKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBooleanKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSBooleanKeyword> | null,\n): node is t.TSBooleanKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSBooleanKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBigIntKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSBigIntKeyword> | null,\n): node is t.TSBigIntKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSBigIntKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIntrinsicKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSIntrinsicKeyword> | null,\n): node is t.TSIntrinsicKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSIntrinsicKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNeverKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNeverKeyword> | null,\n): node is t.TSNeverKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSNeverKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNullKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNullKeyword> | null,\n): node is t.TSNullKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSNullKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNumberKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNumberKeyword> | null,\n): node is t.TSNumberKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSNumberKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSObjectKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSObjectKeyword> | null,\n): node is t.TSObjectKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSObjectKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSStringKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSStringKeyword> | null,\n): node is t.TSStringKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSStringKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSSymbolKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSSymbolKeyword> | null,\n): node is t.TSSymbolKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSSymbolKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUndefinedKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSUndefinedKeyword> | null,\n): node is t.TSUndefinedKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSUndefinedKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUnknownKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSUnknownKeyword> | null,\n): node is t.TSUnknownKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSUnknownKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSVoidKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSVoidKeyword> | null,\n): node is t.TSVoidKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSVoidKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSThisType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSThisType> | null,\n): node is t.TSThisType {\n if (!node) return false;\n\n if (node.type !== \"TSThisType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSFunctionType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSFunctionType> | null,\n): node is t.TSFunctionType {\n if (!node) return false;\n\n if (node.type !== \"TSFunctionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConstructorType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSConstructorType> | null,\n): node is t.TSConstructorType {\n if (!node) return false;\n\n if (node.type !== \"TSConstructorType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeReference(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeReference> | null,\n): node is t.TSTypeReference {\n if (!node) return false;\n\n if (node.type !== \"TSTypeReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypePredicate(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypePredicate> | null,\n): node is t.TSTypePredicate {\n if (!node) return false;\n\n if (node.type !== \"TSTypePredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeQuery(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeQuery> | null,\n): node is t.TSTypeQuery {\n if (!node) return false;\n\n if (node.type !== \"TSTypeQuery\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeLiteral> | null,\n): node is t.TSTypeLiteral {\n if (!node) return false;\n\n if (node.type !== \"TSTypeLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSArrayType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSArrayType> | null,\n): node is t.TSArrayType {\n if (!node) return false;\n\n if (node.type !== \"TSArrayType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTupleType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTupleType> | null,\n): node is t.TSTupleType {\n if (!node) return false;\n\n if (node.type !== \"TSTupleType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSOptionalType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSOptionalType> | null,\n): node is t.TSOptionalType {\n if (!node) return false;\n\n if (node.type !== \"TSOptionalType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSRestType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSRestType> | null,\n): node is t.TSRestType {\n if (!node) return false;\n\n if (node.type !== \"TSRestType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNamedTupleMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNamedTupleMember> | null,\n): node is t.TSNamedTupleMember {\n if (!node) return false;\n\n if (node.type !== \"TSNamedTupleMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUnionType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSUnionType> | null,\n): node is t.TSUnionType {\n if (!node) return false;\n\n if (node.type !== \"TSUnionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIntersectionType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSIntersectionType> | null,\n): node is t.TSIntersectionType {\n if (!node) return false;\n\n if (node.type !== \"TSIntersectionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConditionalType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSConditionalType> | null,\n): node is t.TSConditionalType {\n if (!node) return false;\n\n if (node.type !== \"TSConditionalType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInferType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSInferType> | null,\n): node is t.TSInferType {\n if (!node) return false;\n\n if (node.type !== \"TSInferType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSParenthesizedType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSParenthesizedType> | null,\n): node is t.TSParenthesizedType {\n if (!node) return false;\n\n if (node.type !== \"TSParenthesizedType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeOperator(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeOperator> | null,\n): node is t.TSTypeOperator {\n if (!node) return false;\n\n if (node.type !== \"TSTypeOperator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIndexedAccessType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSIndexedAccessType> | null,\n): node is t.TSIndexedAccessType {\n if (!node) return false;\n\n if (node.type !== \"TSIndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSMappedType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSMappedType> | null,\n): node is t.TSMappedType {\n if (!node) return false;\n\n if (node.type !== \"TSMappedType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSLiteralType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSLiteralType> | null,\n): node is t.TSLiteralType {\n if (!node) return false;\n\n if (node.type !== \"TSLiteralType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExpressionWithTypeArguments(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSExpressionWithTypeArguments> | null,\n): node is t.TSExpressionWithTypeArguments {\n if (!node) return false;\n\n if (node.type !== \"TSExpressionWithTypeArguments\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInterfaceDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSInterfaceDeclaration> | null,\n): node is t.TSInterfaceDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSInterfaceDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInterfaceBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSInterfaceBody> | null,\n): node is t.TSInterfaceBody {\n if (!node) return false;\n\n if (node.type !== \"TSInterfaceBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAliasDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeAliasDeclaration> | null,\n): node is t.TSTypeAliasDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAliasDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInstantiationExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSInstantiationExpression> | null,\n): node is t.TSInstantiationExpression {\n if (!node) return false;\n\n if (node.type !== \"TSInstantiationExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSAsExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSAsExpression> | null,\n): node is t.TSAsExpression {\n if (!node) return false;\n\n if (node.type !== \"TSAsExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSSatisfiesExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSSatisfiesExpression> | null,\n): node is t.TSSatisfiesExpression {\n if (!node) return false;\n\n if (node.type !== \"TSSatisfiesExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAssertion(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeAssertion> | null,\n): node is t.TSTypeAssertion {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAssertion\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEnumDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSEnumDeclaration> | null,\n): node is t.TSEnumDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSEnumDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEnumMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSEnumMember> | null,\n): node is t.TSEnumMember {\n if (!node) return false;\n\n if (node.type !== \"TSEnumMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSModuleDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSModuleDeclaration> | null,\n): node is t.TSModuleDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSModuleDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSModuleBlock(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSModuleBlock> | null,\n): node is t.TSModuleBlock {\n if (!node) return false;\n\n if (node.type !== \"TSModuleBlock\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSImportType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSImportType> | null,\n): node is t.TSImportType {\n if (!node) return false;\n\n if (node.type !== \"TSImportType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSImportEqualsDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSImportEqualsDeclaration> | null,\n): node is t.TSImportEqualsDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSImportEqualsDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExternalModuleReference(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSExternalModuleReference> | null,\n): node is t.TSExternalModuleReference {\n if (!node) return false;\n\n if (node.type !== \"TSExternalModuleReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNonNullExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNonNullExpression> | null,\n): node is t.TSNonNullExpression {\n if (!node) return false;\n\n if (node.type !== \"TSNonNullExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExportAssignment(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSExportAssignment> | null,\n): node is t.TSExportAssignment {\n if (!node) return false;\n\n if (node.type !== \"TSExportAssignment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNamespaceExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNamespaceExportDeclaration> | null,\n): node is t.TSNamespaceExportDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSNamespaceExportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeAnnotation> | null,\n): node is t.TSTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameterInstantiation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeParameterInstantiation> | null,\n): node is t.TSTypeParameterInstantiation {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameterInstantiation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameterDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeParameterDeclaration> | null,\n): node is t.TSTypeParameterDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameterDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameter(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeParameter> | null,\n): node is t.TSTypeParameter {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameter\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStandardized(\n node: t.Node | null | undefined,\n opts?: Opts<t.Standardized> | null,\n): node is t.Standardized {\n if (!node) return false;\n\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 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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.Expression> | null,\n): node is t.Expression {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBinary(\n node: t.Node | null | undefined,\n opts?: Opts<t.Binary> | null,\n): node is t.Binary {\n if (!node) return false;\n\n switch (node.type) {\n case \"BinaryExpression\":\n case \"LogicalExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isScopable(\n node: t.Node | null | undefined,\n opts?: Opts<t.Scopable> | null,\n): node is t.Scopable {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlockParent(\n node: t.Node | null | undefined,\n opts?: Opts<t.BlockParent> | null,\n): node is t.BlockParent {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlock(\n node: t.Node | null | undefined,\n opts?: Opts<t.Block> | null,\n): node is t.Block {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.Statement> | null,\n): node is t.Statement {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTerminatorless(\n node: t.Node | null | undefined,\n opts?: Opts<t.Terminatorless> | null,\n): node is t.Terminatorless {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCompletionStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.CompletionStatement> | null,\n): node is t.CompletionStatement {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isConditional(\n node: t.Node | null | undefined,\n opts?: Opts<t.Conditional> | null,\n): node is t.Conditional {\n if (!node) return false;\n\n switch (node.type) {\n case \"ConditionalExpression\":\n case \"IfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLoop(\n node: t.Node | null | undefined,\n opts?: Opts<t.Loop> | null,\n): node is t.Loop {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWhile(\n node: t.Node | null | undefined,\n opts?: Opts<t.While> | null,\n): node is t.While {\n if (!node) return false;\n\n switch (node.type) {\n case \"DoWhileStatement\":\n case \"WhileStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpressionWrapper(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExpressionWrapper> | null,\n): node is t.ExpressionWrapper {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExpressionStatement\":\n case \"ParenthesizedExpression\":\n case \"TypeCastExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFor(\n node: t.Node | null | undefined,\n opts?: Opts<t.For> | null,\n): node is t.For {\n if (!node) return false;\n\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForXStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ForXStatement> | null,\n): node is t.ForXStatement {\n if (!node) return false;\n\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunction(\n node: t.Node | null | undefined,\n opts?: Opts<t.Function> | null,\n): node is t.Function {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionParent(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionParent> | null,\n): node is t.FunctionParent {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPureish(\n node: t.Node | null | undefined,\n opts?: Opts<t.Pureish> | null,\n): node is t.Pureish {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.Declaration> | null,\n): node is t.Declaration {\n if (!node) return false;\n\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 break;\n case \"Placeholder\":\n if (node.expectedNode === \"Declaration\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPatternLike(\n node: t.Node | null | undefined,\n opts?: Opts<t.PatternLike> | null,\n): node is t.PatternLike {\n if (!node) return false;\n\n switch (node.type) {\n case \"Identifier\":\n case \"RestElement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Pattern\":\n case \"Identifier\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLVal(\n node: t.Node | null | undefined,\n opts?: Opts<t.LVal> | null,\n): node is t.LVal {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEntityName(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSEntityName> | null,\n): node is t.TSEntityName {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.Literal> | null,\n): node is t.Literal {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImmutable(\n node: t.Node | null | undefined,\n opts?: Opts<t.Immutable> | null,\n): node is t.Immutable {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUserWhitespacable(\n node: t.Node | null | undefined,\n opts?: Opts<t.UserWhitespacable> | null,\n): node is t.UserWhitespacable {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.Method> | null,\n): node is t.Method {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectMember> | null,\n): node is t.ObjectMember {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.Property> | null,\n): node is t.Property {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnaryLike(\n node: t.Node | null | undefined,\n opts?: Opts<t.UnaryLike> | null,\n): node is t.UnaryLike {\n if (!node) return false;\n\n switch (node.type) {\n case \"UnaryExpression\":\n case \"SpreadElement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPattern(\n node: t.Node | null | undefined,\n opts?: Opts<t.Pattern> | null,\n): node is t.Pattern {\n if (!node) return false;\n\n switch (node.type) {\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Pattern\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClass(\n node: t.Node | null | undefined,\n opts?: Opts<t.Class> | null,\n): node is t.Class {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportOrExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportOrExportDeclaration> | null,\n): node is t.ImportOrExportDeclaration {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportDeclaration> | null,\n): node is t.ExportDeclaration {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isModuleSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ModuleSpecifier> | null,\n): node is t.ModuleSpecifier {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAccessor(\n node: t.Node | null | undefined,\n opts?: Opts<t.Accessor> | null,\n): node is t.Accessor {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassAccessorProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPrivate(\n node: t.Node | null | undefined,\n opts?: Opts<t.Private> | null,\n): node is t.Private {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n case \"PrivateName\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlow(\n node: t.Node | null | undefined,\n opts?: Opts<t.Flow> | null,\n): node is t.Flow {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowType(\n node: t.Node | null | undefined,\n opts?: Opts<t.FlowType> | null,\n): node is t.FlowType {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowBaseAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.FlowBaseAnnotation> | null,\n): node is t.FlowBaseAnnotation {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.FlowDeclaration> | null,\n): node is t.FlowDeclaration {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowPredicate(\n node: t.Node | null | undefined,\n opts?: Opts<t.FlowPredicate> | null,\n): node is t.FlowPredicate {\n if (!node) return false;\n\n switch (node.type) {\n case \"DeclaredPredicate\":\n case \"InferredPredicate\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumBody> | null,\n): node is t.EnumBody {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumMember> | null,\n): node is t.EnumMember {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSX(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSX> | null,\n): node is t.JSX {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMiscellaneous(\n node: t.Node | null | undefined,\n opts?: Opts<t.Miscellaneous> | null,\n): node is t.Miscellaneous {\n if (!node) return false;\n\n switch (node.type) {\n case \"Noop\":\n case \"Placeholder\":\n case \"V8IntrinsicIdentifier\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeScript(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeScript> | null,\n): node is t.TypeScript {\n if (!node) return false;\n\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 \"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 \"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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeElement> | null,\n): node is t.TSTypeElement {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSType> | null,\n): node is t.TSType {\n if (!node) return false;\n\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 \"TSLiteralType\":\n case \"TSExpressionWithTypeArguments\":\n case \"TSImportType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBaseType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSBaseType> | null,\n): node is t.TSBaseType {\n if (!node) return false;\n\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 \"TSLiteralType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isNumericLiteral`\n */\nexport function isNumberLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.NumberLiteral> | null,\n): boolean {\n deprecationWarning(\"isNumberLiteral\", \"isNumericLiteral\");\n if (!node) return false;\n\n if (node.type !== \"NumberLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isRegExpLiteral`\n */\nexport function isRegexLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.RegexLiteral> | null,\n): boolean {\n deprecationWarning(\"isRegexLiteral\", \"isRegExpLiteral\");\n if (!node) return false;\n\n if (node.type !== \"RegexLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isRestElement`\n */\nexport function isRestProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.RestProperty> | null,\n): boolean {\n deprecationWarning(\"isRestProperty\", \"isRestElement\");\n if (!node) return false;\n\n if (node.type !== \"RestProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isSpreadElement`\n */\nexport function isSpreadProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.SpreadProperty> | null,\n): boolean {\n deprecationWarning(\"isSpreadProperty\", \"isSpreadElement\");\n if (!node) return false;\n\n if (node.type !== \"SpreadProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isImportOrExportDeclaration`\n */\nexport function isModuleDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ModuleDeclaration> | null,\n): node is t.ImportOrExportDeclaration {\n deprecationWarning(\"isModuleDeclaration\", \"isImportOrExportDeclaration\");\n return isImportOrExportDeclaration(node, opts);\n}\n"],"mappings":"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"}
\ No newline at end of file +{"version":3,"names":["_shallowEqual","require","_deprecationWarning","isArrayExpression","node","opts","type","shallowEqual","isAssignmentExpression","isBinaryExpression","isInterpreterDirective","isDirective","isDirectiveLiteral","isBlockStatement","isBreakStatement","isCallExpression","isCatchClause","isConditionalExpression","isContinueStatement","isDebuggerStatement","isDoWhileStatement","isEmptyStatement","isExpressionStatement","isFile","isForInStatement","isForStatement","isFunctionDeclaration","isFunctionExpression","isIdentifier","isIfStatement","isLabeledStatement","isStringLiteral","isNumericLiteral","isNullLiteral","isBooleanLiteral","isRegExpLiteral","isLogicalExpression","isMemberExpression","isNewExpression","isProgram","isObjectExpression","isObjectMethod","isObjectProperty","isRestElement","isReturnStatement","isSequenceExpression","isParenthesizedExpression","isSwitchCase","isSwitchStatement","isThisExpression","isThrowStatement","isTryStatement","isUnaryExpression","isUpdateExpression","isVariableDeclaration","isVariableDeclarator","isWhileStatement","isWithStatement","isAssignmentPattern","isArrayPattern","isArrowFunctionExpression","isClassBody","isClassExpression","isClassDeclaration","isExportAllDeclaration","isExportDefaultDeclaration","isExportNamedDeclaration","isExportSpecifier","isForOfStatement","isImportDeclaration","isImportDefaultSpecifier","isImportNamespaceSpecifier","isImportSpecifier","isImportExpression","isMetaProperty","isClassMethod","isObjectPattern","isSpreadElement","isSuper","isTaggedTemplateExpression","isTemplateElement","isTemplateLiteral","isYieldExpression","isAwaitExpression","isImport","isBigIntLiteral","isExportNamespaceSpecifier","isOptionalMemberExpression","isOptionalCallExpression","isClassProperty","isClassAccessorProperty","isClassPrivateProperty","isClassPrivateMethod","isPrivateName","isStaticBlock","isAnyTypeAnnotation","isArrayTypeAnnotation","isBooleanTypeAnnotation","isBooleanLiteralTypeAnnotation","isNullLiteralTypeAnnotation","isClassImplements","isDeclareClass","isDeclareFunction","isDeclareInterface","isDeclareModule","isDeclareModuleExports","isDeclareTypeAlias","isDeclareOpaqueType","isDeclareVariable","isDeclareExportDeclaration","isDeclareExportAllDeclaration","isDeclaredPredicate","isExistsTypeAnnotation","isFunctionTypeAnnotation","isFunctionTypeParam","isGenericTypeAnnotation","isInferredPredicate","isInterfaceExtends","isInterfaceDeclaration","isInterfaceTypeAnnotation","isIntersectionTypeAnnotation","isMixedTypeAnnotation","isEmptyTypeAnnotation","isNullableTypeAnnotation","isNumberLiteralTypeAnnotation","isNumberTypeAnnotation","isObjectTypeAnnotation","isObjectTypeInternalSlot","isObjectTypeCallProperty","isObjectTypeIndexer","isObjectTypeProperty","isObjectTypeSpreadProperty","isOpaqueType","isQualifiedTypeIdentifier","isStringLiteralTypeAnnotation","isStringTypeAnnotation","isSymbolTypeAnnotation","isThisTypeAnnotation","isTupleTypeAnnotation","isTypeofTypeAnnotation","isTypeAlias","isTypeAnnotation","isTypeCastExpression","isTypeParameter","isTypeParameterDeclaration","isTypeParameterInstantiation","isUnionTypeAnnotation","isVariance","isVoidTypeAnnotation","isEnumDeclaration","isEnumBooleanBody","isEnumNumberBody","isEnumStringBody","isEnumSymbolBody","isEnumBooleanMember","isEnumNumberMember","isEnumStringMember","isEnumDefaultedMember","isIndexedAccessType","isOptionalIndexedAccessType","isJSXAttribute","isJSXClosingElement","isJSXElement","isJSXEmptyExpression","isJSXExpressionContainer","isJSXSpreadChild","isJSXIdentifier","isJSXMemberExpression","isJSXNamespacedName","isJSXOpeningElement","isJSXSpreadAttribute","isJSXText","isJSXFragment","isJSXOpeningFragment","isJSXClosingFragment","isNoop","isPlaceholder","isV8IntrinsicIdentifier","isArgumentPlaceholder","isBindExpression","isImportAttribute","isDecorator","isDoExpression","isExportDefaultSpecifier","isRecordExpression","isTupleExpression","isDecimalLiteral","isModuleExpression","isTopicReference","isPipelineTopicExpression","isPipelineBareFunction","isPipelinePrimaryTopicReference","isTSParameterProperty","isTSDeclareFunction","isTSDeclareMethod","isTSQualifiedName","isTSCallSignatureDeclaration","isTSConstructSignatureDeclaration","isTSPropertySignature","isTSMethodSignature","isTSIndexSignature","isTSAnyKeyword","isTSBooleanKeyword","isTSBigIntKeyword","isTSIntrinsicKeyword","isTSNeverKeyword","isTSNullKeyword","isTSNumberKeyword","isTSObjectKeyword","isTSStringKeyword","isTSSymbolKeyword","isTSUndefinedKeyword","isTSUnknownKeyword","isTSVoidKeyword","isTSThisType","isTSFunctionType","isTSConstructorType","isTSTypeReference","isTSTypePredicate","isTSTypeQuery","isTSTypeLiteral","isTSArrayType","isTSTupleType","isTSOptionalType","isTSRestType","isTSNamedTupleMember","isTSUnionType","isTSIntersectionType","isTSConditionalType","isTSInferType","isTSParenthesizedType","isTSTypeOperator","isTSIndexedAccessType","isTSMappedType","isTSLiteralType","isTSExpressionWithTypeArguments","isTSInterfaceDeclaration","isTSInterfaceBody","isTSTypeAliasDeclaration","isTSInstantiationExpression","isTSAsExpression","isTSSatisfiesExpression","isTSTypeAssertion","isTSEnumDeclaration","isTSEnumMember","isTSModuleDeclaration","isTSModuleBlock","isTSImportType","isTSImportEqualsDeclaration","isTSExternalModuleReference","isTSNonNullExpression","isTSExportAssignment","isTSNamespaceExportDeclaration","isTSTypeAnnotation","isTSTypeParameterInstantiation","isTSTypeParameterDeclaration","isTSTypeParameter","isStandardized","expectedNode","isExpression","isBinary","isScopable","isBlockParent","isBlock","isStatement","isTerminatorless","isCompletionStatement","isConditional","isLoop","isWhile","isExpressionWrapper","isFor","isForXStatement","isFunction","isFunctionParent","isPureish","isDeclaration","isPatternLike","isLVal","isTSEntityName","isLiteral","isImmutable","isUserWhitespacable","isMethod","isObjectMember","isProperty","isUnaryLike","isPattern","isClass","isImportOrExportDeclaration","isExportDeclaration","isModuleSpecifier","isAccessor","isPrivate","isFlow","isFlowType","isFlowBaseAnnotation","isFlowDeclaration","isFlowPredicate","isEnumBody","isEnumMember","isJSX","isMiscellaneous","isTypeScript","isTSTypeElement","isTSType","isTSBaseType","isNumberLiteral","deprecationWarning","isRegexLiteral","isRestProperty","isSpreadProperty","isModuleDeclaration"],"sources":["../../../src/validators/generated/index.ts"],"sourcesContent":["/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\n\n/* eslint-disable no-fallthrough */\n\nimport shallowEqual from \"../../utils/shallowEqual.ts\";\nimport type * as t from \"../../index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\n\ntype Opts<Obj> = Partial<{\n [Prop in keyof Obj]: Obj[Prop] extends t.Node\n ? t.Node\n : Obj[Prop] extends t.Node[]\n ? t.Node[]\n : Obj[Prop];\n}>;\n\nexport function isArrayExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArrayExpression> | null,\n): node is t.ArrayExpression {\n if (!node) return false;\n\n if (node.type !== \"ArrayExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAssignmentExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.AssignmentExpression> | null,\n): node is t.AssignmentExpression {\n if (!node) return false;\n\n if (node.type !== \"AssignmentExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBinaryExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.BinaryExpression> | null,\n): node is t.BinaryExpression {\n if (!node) return false;\n\n if (node.type !== \"BinaryExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterpreterDirective(\n node: t.Node | null | undefined,\n opts?: Opts<t.InterpreterDirective> | null,\n): node is t.InterpreterDirective {\n if (!node) return false;\n\n if (node.type !== \"InterpreterDirective\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDirective(\n node: t.Node | null | undefined,\n opts?: Opts<t.Directive> | null,\n): node is t.Directive {\n if (!node) return false;\n\n if (node.type !== \"Directive\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDirectiveLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.DirectiveLiteral> | null,\n): node is t.DirectiveLiteral {\n if (!node) return false;\n\n if (node.type !== \"DirectiveLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlockStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.BlockStatement> | null,\n): node is t.BlockStatement {\n if (!node) return false;\n\n if (node.type !== \"BlockStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBreakStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.BreakStatement> | null,\n): node is t.BreakStatement {\n if (!node) return false;\n\n if (node.type !== \"BreakStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCallExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.CallExpression> | null,\n): node is t.CallExpression {\n if (!node) return false;\n\n if (node.type !== \"CallExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCatchClause(\n node: t.Node | null | undefined,\n opts?: Opts<t.CatchClause> | null,\n): node is t.CatchClause {\n if (!node) return false;\n\n if (node.type !== \"CatchClause\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isConditionalExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ConditionalExpression> | null,\n): node is t.ConditionalExpression {\n if (!node) return false;\n\n if (node.type !== \"ConditionalExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isContinueStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ContinueStatement> | null,\n): node is t.ContinueStatement {\n if (!node) return false;\n\n if (node.type !== \"ContinueStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDebuggerStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.DebuggerStatement> | null,\n): node is t.DebuggerStatement {\n if (!node) return false;\n\n if (node.type !== \"DebuggerStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDoWhileStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.DoWhileStatement> | null,\n): node is t.DoWhileStatement {\n if (!node) return false;\n\n if (node.type !== \"DoWhileStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEmptyStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.EmptyStatement> | null,\n): node is t.EmptyStatement {\n if (!node) return false;\n\n if (node.type !== \"EmptyStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpressionStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExpressionStatement> | null,\n): node is t.ExpressionStatement {\n if (!node) return false;\n\n if (node.type !== \"ExpressionStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFile(\n node: t.Node | null | undefined,\n opts?: Opts<t.File> | null,\n): node is t.File {\n if (!node) return false;\n\n if (node.type !== \"File\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForInStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ForInStatement> | null,\n): node is t.ForInStatement {\n if (!node) return false;\n\n if (node.type !== \"ForInStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ForStatement> | null,\n): node is t.ForStatement {\n if (!node) return false;\n\n if (node.type !== \"ForStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionDeclaration> | null,\n): node is t.FunctionDeclaration {\n if (!node) return false;\n\n if (node.type !== \"FunctionDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionExpression> | null,\n): node is t.FunctionExpression {\n if (!node) return false;\n\n if (node.type !== \"FunctionExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.Identifier> | null,\n): node is t.Identifier {\n if (!node) return false;\n\n if (node.type !== \"Identifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIfStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.IfStatement> | null,\n): node is t.IfStatement {\n if (!node) return false;\n\n if (node.type !== \"IfStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLabeledStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.LabeledStatement> | null,\n): node is t.LabeledStatement {\n if (!node) return false;\n\n if (node.type !== \"LabeledStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.StringLiteral> | null,\n): node is t.StringLiteral {\n if (!node) return false;\n\n if (node.type !== \"StringLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumericLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.NumericLiteral> | null,\n): node is t.NumericLiteral {\n if (!node) return false;\n\n if (node.type !== \"NumericLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.NullLiteral> | null,\n): node is t.NullLiteral {\n if (!node) return false;\n\n if (node.type !== \"NullLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.BooleanLiteral> | null,\n): node is t.BooleanLiteral {\n if (!node) return false;\n\n if (node.type !== \"BooleanLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRegExpLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.RegExpLiteral> | null,\n): node is t.RegExpLiteral {\n if (!node) return false;\n\n if (node.type !== \"RegExpLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLogicalExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.LogicalExpression> | null,\n): node is t.LogicalExpression {\n if (!node) return false;\n\n if (node.type !== \"LogicalExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMemberExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.MemberExpression> | null,\n): node is t.MemberExpression {\n if (!node) return false;\n\n if (node.type !== \"MemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNewExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.NewExpression> | null,\n): node is t.NewExpression {\n if (!node) return false;\n\n if (node.type !== \"NewExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isProgram(\n node: t.Node | null | undefined,\n opts?: Opts<t.Program> | null,\n): node is t.Program {\n if (!node) return false;\n\n if (node.type !== \"Program\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectExpression> | null,\n): node is t.ObjectExpression {\n if (!node) return false;\n\n if (node.type !== \"ObjectExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectMethod> | null,\n): node is t.ObjectMethod {\n if (!node) return false;\n\n if (node.type !== \"ObjectMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectProperty> | null,\n): node is t.ObjectProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRestElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.RestElement> | null,\n): node is t.RestElement {\n if (!node) return false;\n\n if (node.type !== \"RestElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isReturnStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ReturnStatement> | null,\n): node is t.ReturnStatement {\n if (!node) return false;\n\n if (node.type !== \"ReturnStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSequenceExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.SequenceExpression> | null,\n): node is t.SequenceExpression {\n if (!node) return false;\n\n if (node.type !== \"SequenceExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isParenthesizedExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ParenthesizedExpression> | null,\n): node is t.ParenthesizedExpression {\n if (!node) return false;\n\n if (node.type !== \"ParenthesizedExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSwitchCase(\n node: t.Node | null | undefined,\n opts?: Opts<t.SwitchCase> | null,\n): node is t.SwitchCase {\n if (!node) return false;\n\n if (node.type !== \"SwitchCase\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSwitchStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.SwitchStatement> | null,\n): node is t.SwitchStatement {\n if (!node) return false;\n\n if (node.type !== \"SwitchStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThisExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ThisExpression> | null,\n): node is t.ThisExpression {\n if (!node) return false;\n\n if (node.type !== \"ThisExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThrowStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ThrowStatement> | null,\n): node is t.ThrowStatement {\n if (!node) return false;\n\n if (node.type !== \"ThrowStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTryStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.TryStatement> | null,\n): node is t.TryStatement {\n if (!node) return false;\n\n if (node.type !== \"TryStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnaryExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.UnaryExpression> | null,\n): node is t.UnaryExpression {\n if (!node) return false;\n\n if (node.type !== \"UnaryExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUpdateExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.UpdateExpression> | null,\n): node is t.UpdateExpression {\n if (!node) return false;\n\n if (node.type !== \"UpdateExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariableDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.VariableDeclaration> | null,\n): node is t.VariableDeclaration {\n if (!node) return false;\n\n if (node.type !== \"VariableDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariableDeclarator(\n node: t.Node | null | undefined,\n opts?: Opts<t.VariableDeclarator> | null,\n): node is t.VariableDeclarator {\n if (!node) return false;\n\n if (node.type !== \"VariableDeclarator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWhileStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.WhileStatement> | null,\n): node is t.WhileStatement {\n if (!node) return false;\n\n if (node.type !== \"WhileStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWithStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.WithStatement> | null,\n): node is t.WithStatement {\n if (!node) return false;\n\n if (node.type !== \"WithStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAssignmentPattern(\n node: t.Node | null | undefined,\n opts?: Opts<t.AssignmentPattern> | null,\n): node is t.AssignmentPattern {\n if (!node) return false;\n\n if (node.type !== \"AssignmentPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrayPattern(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArrayPattern> | null,\n): node is t.ArrayPattern {\n if (!node) return false;\n\n if (node.type !== \"ArrayPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrowFunctionExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArrowFunctionExpression> | null,\n): node is t.ArrowFunctionExpression {\n if (!node) return false;\n\n if (node.type !== \"ArrowFunctionExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassBody> | null,\n): node is t.ClassBody {\n if (!node) return false;\n\n if (node.type !== \"ClassBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassExpression> | null,\n): node is t.ClassExpression {\n if (!node) return false;\n\n if (node.type !== \"ClassExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassDeclaration> | null,\n): node is t.ClassDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ClassDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportAllDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportAllDeclaration> | null,\n): node is t.ExportAllDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ExportAllDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDefaultDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportDefaultDeclaration> | null,\n): node is t.ExportDefaultDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ExportDefaultDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportNamedDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportNamedDeclaration> | null,\n): node is t.ExportNamedDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ExportNamedDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportSpecifier> | null,\n): node is t.ExportSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ExportSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForOfStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ForOfStatement> | null,\n): node is t.ForOfStatement {\n if (!node) return false;\n\n if (node.type !== \"ForOfStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportDeclaration> | null,\n): node is t.ImportDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ImportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportDefaultSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportDefaultSpecifier> | null,\n): node is t.ImportDefaultSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ImportDefaultSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportNamespaceSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportNamespaceSpecifier> | null,\n): node is t.ImportNamespaceSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ImportNamespaceSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportSpecifier> | null,\n): node is t.ImportSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ImportSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportExpression> | null,\n): node is t.ImportExpression {\n if (!node) return false;\n\n if (node.type !== \"ImportExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMetaProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.MetaProperty> | null,\n): node is t.MetaProperty {\n if (!node) return false;\n\n if (node.type !== \"MetaProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassMethod> | null,\n): node is t.ClassMethod {\n if (!node) return false;\n\n if (node.type !== \"ClassMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectPattern(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectPattern> | null,\n): node is t.ObjectPattern {\n if (!node) return false;\n\n if (node.type !== \"ObjectPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSpreadElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.SpreadElement> | null,\n): node is t.SpreadElement {\n if (!node) return false;\n\n if (node.type !== \"SpreadElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSuper(\n node: t.Node | null | undefined,\n opts?: Opts<t.Super> | null,\n): node is t.Super {\n if (!node) return false;\n\n if (node.type !== \"Super\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTaggedTemplateExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TaggedTemplateExpression> | null,\n): node is t.TaggedTemplateExpression {\n if (!node) return false;\n\n if (node.type !== \"TaggedTemplateExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTemplateElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.TemplateElement> | null,\n): node is t.TemplateElement {\n if (!node) return false;\n\n if (node.type !== \"TemplateElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTemplateLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.TemplateLiteral> | null,\n): node is t.TemplateLiteral {\n if (!node) return false;\n\n if (node.type !== \"TemplateLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isYieldExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.YieldExpression> | null,\n): node is t.YieldExpression {\n if (!node) return false;\n\n if (node.type !== \"YieldExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAwaitExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.AwaitExpression> | null,\n): node is t.AwaitExpression {\n if (!node) return false;\n\n if (node.type !== \"AwaitExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImport(\n node: t.Node | null | undefined,\n opts?: Opts<t.Import> | null,\n): node is t.Import {\n if (!node) return false;\n\n if (node.type !== \"Import\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBigIntLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.BigIntLiteral> | null,\n): node is t.BigIntLiteral {\n if (!node) return false;\n\n if (node.type !== \"BigIntLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportNamespaceSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportNamespaceSpecifier> | null,\n): node is t.ExportNamespaceSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ExportNamespaceSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalMemberExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.OptionalMemberExpression> | null,\n): node is t.OptionalMemberExpression {\n if (!node) return false;\n\n if (node.type !== \"OptionalMemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalCallExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.OptionalCallExpression> | null,\n): node is t.OptionalCallExpression {\n if (!node) return false;\n\n if (node.type !== \"OptionalCallExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassProperty> | null,\n): node is t.ClassProperty {\n if (!node) return false;\n\n if (node.type !== \"ClassProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassAccessorProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassAccessorProperty> | null,\n): node is t.ClassAccessorProperty {\n if (!node) return false;\n\n if (node.type !== \"ClassAccessorProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassPrivateProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassPrivateProperty> | null,\n): node is t.ClassPrivateProperty {\n if (!node) return false;\n\n if (node.type !== \"ClassPrivateProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassPrivateMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassPrivateMethod> | null,\n): node is t.ClassPrivateMethod {\n if (!node) return false;\n\n if (node.type !== \"ClassPrivateMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPrivateName(\n node: t.Node | null | undefined,\n opts?: Opts<t.PrivateName> | null,\n): node is t.PrivateName {\n if (!node) return false;\n\n if (node.type !== \"PrivateName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStaticBlock(\n node: t.Node | null | undefined,\n opts?: Opts<t.StaticBlock> | null,\n): node is t.StaticBlock {\n if (!node) return false;\n\n if (node.type !== \"StaticBlock\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAnyTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.AnyTypeAnnotation> | null,\n): node is t.AnyTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"AnyTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrayTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArrayTypeAnnotation> | null,\n): node is t.ArrayTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ArrayTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.BooleanTypeAnnotation> | null,\n): node is t.BooleanTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"BooleanTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.BooleanLiteralTypeAnnotation> | null,\n): node is t.BooleanLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"BooleanLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.NullLiteralTypeAnnotation> | null,\n): node is t.NullLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NullLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassImplements(\n node: t.Node | null | undefined,\n opts?: Opts<t.ClassImplements> | null,\n): node is t.ClassImplements {\n if (!node) return false;\n\n if (node.type !== \"ClassImplements\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareClass(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareClass> | null,\n): node is t.DeclareClass {\n if (!node) return false;\n\n if (node.type !== \"DeclareClass\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareFunction(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareFunction> | null,\n): node is t.DeclareFunction {\n if (!node) return false;\n\n if (node.type !== \"DeclareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareInterface(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareInterface> | null,\n): node is t.DeclareInterface {\n if (!node) return false;\n\n if (node.type !== \"DeclareInterface\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareModule(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareModule> | null,\n): node is t.DeclareModule {\n if (!node) return false;\n\n if (node.type !== \"DeclareModule\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareModuleExports(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareModuleExports> | null,\n): node is t.DeclareModuleExports {\n if (!node) return false;\n\n if (node.type !== \"DeclareModuleExports\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareTypeAlias(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareTypeAlias> | null,\n): node is t.DeclareTypeAlias {\n if (!node) return false;\n\n if (node.type !== \"DeclareTypeAlias\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareOpaqueType(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareOpaqueType> | null,\n): node is t.DeclareOpaqueType {\n if (!node) return false;\n\n if (node.type !== \"DeclareOpaqueType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareVariable(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareVariable> | null,\n): node is t.DeclareVariable {\n if (!node) return false;\n\n if (node.type !== \"DeclareVariable\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareExportDeclaration> | null,\n): node is t.DeclareExportDeclaration {\n if (!node) return false;\n\n if (node.type !== \"DeclareExportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareExportAllDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclareExportAllDeclaration> | null,\n): node is t.DeclareExportAllDeclaration {\n if (!node) return false;\n\n if (node.type !== \"DeclareExportAllDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclaredPredicate(\n node: t.Node | null | undefined,\n opts?: Opts<t.DeclaredPredicate> | null,\n): node is t.DeclaredPredicate {\n if (!node) return false;\n\n if (node.type !== \"DeclaredPredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExistsTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExistsTypeAnnotation> | null,\n): node is t.ExistsTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ExistsTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionTypeAnnotation> | null,\n): node is t.FunctionTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"FunctionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionTypeParam(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionTypeParam> | null,\n): node is t.FunctionTypeParam {\n if (!node) return false;\n\n if (node.type !== \"FunctionTypeParam\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isGenericTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.GenericTypeAnnotation> | null,\n): node is t.GenericTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"GenericTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInferredPredicate(\n node: t.Node | null | undefined,\n opts?: Opts<t.InferredPredicate> | null,\n): node is t.InferredPredicate {\n if (!node) return false;\n\n if (node.type !== \"InferredPredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceExtends(\n node: t.Node | null | undefined,\n opts?: Opts<t.InterfaceExtends> | null,\n): node is t.InterfaceExtends {\n if (!node) return false;\n\n if (node.type !== \"InterfaceExtends\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.InterfaceDeclaration> | null,\n): node is t.InterfaceDeclaration {\n if (!node) return false;\n\n if (node.type !== \"InterfaceDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.InterfaceTypeAnnotation> | null,\n): node is t.InterfaceTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"InterfaceTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIntersectionTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.IntersectionTypeAnnotation> | null,\n): node is t.IntersectionTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"IntersectionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMixedTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.MixedTypeAnnotation> | null,\n): node is t.MixedTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"MixedTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEmptyTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.EmptyTypeAnnotation> | null,\n): node is t.EmptyTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"EmptyTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullableTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.NullableTypeAnnotation> | null,\n): node is t.NullableTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NullableTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumberLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.NumberLiteralTypeAnnotation> | null,\n): node is t.NumberLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NumberLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumberTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.NumberTypeAnnotation> | null,\n): node is t.NumberTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NumberTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeAnnotation> | null,\n): node is t.ObjectTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeInternalSlot(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeInternalSlot> | null,\n): node is t.ObjectTypeInternalSlot {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeInternalSlot\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeCallProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeCallProperty> | null,\n): node is t.ObjectTypeCallProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeCallProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeIndexer(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeIndexer> | null,\n): node is t.ObjectTypeIndexer {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeIndexer\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeProperty> | null,\n): node is t.ObjectTypeProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeSpreadProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectTypeSpreadProperty> | null,\n): node is t.ObjectTypeSpreadProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeSpreadProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOpaqueType(\n node: t.Node | null | undefined,\n opts?: Opts<t.OpaqueType> | null,\n): node is t.OpaqueType {\n if (!node) return false;\n\n if (node.type !== \"OpaqueType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isQualifiedTypeIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.QualifiedTypeIdentifier> | null,\n): node is t.QualifiedTypeIdentifier {\n if (!node) return false;\n\n if (node.type !== \"QualifiedTypeIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.StringLiteralTypeAnnotation> | null,\n): node is t.StringLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"StringLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.StringTypeAnnotation> | null,\n): node is t.StringTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"StringTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSymbolTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.SymbolTypeAnnotation> | null,\n): node is t.SymbolTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"SymbolTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThisTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.ThisTypeAnnotation> | null,\n): node is t.ThisTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ThisTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTupleTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TupleTypeAnnotation> | null,\n): node is t.TupleTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TupleTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeofTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeofTypeAnnotation> | null,\n): node is t.TypeofTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TypeofTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeAlias(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeAlias> | null,\n): node is t.TypeAlias {\n if (!node) return false;\n\n if (node.type !== \"TypeAlias\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeAnnotation> | null,\n): node is t.TypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeCastExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeCastExpression> | null,\n): node is t.TypeCastExpression {\n if (!node) return false;\n\n if (node.type !== \"TypeCastExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameter(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeParameter> | null,\n): node is t.TypeParameter {\n if (!node) return false;\n\n if (node.type !== \"TypeParameter\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameterDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeParameterDeclaration> | null,\n): node is t.TypeParameterDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TypeParameterDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameterInstantiation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeParameterInstantiation> | null,\n): node is t.TypeParameterInstantiation {\n if (!node) return false;\n\n if (node.type !== \"TypeParameterInstantiation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnionTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.UnionTypeAnnotation> | null,\n): node is t.UnionTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"UnionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariance(\n node: t.Node | null | undefined,\n opts?: Opts<t.Variance> | null,\n): node is t.Variance {\n if (!node) return false;\n\n if (node.type !== \"Variance\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVoidTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.VoidTypeAnnotation> | null,\n): node is t.VoidTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"VoidTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumDeclaration> | null,\n): node is t.EnumDeclaration {\n if (!node) return false;\n\n if (node.type !== \"EnumDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBooleanBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumBooleanBody> | null,\n): node is t.EnumBooleanBody {\n if (!node) return false;\n\n if (node.type !== \"EnumBooleanBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumNumberBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumNumberBody> | null,\n): node is t.EnumNumberBody {\n if (!node) return false;\n\n if (node.type !== \"EnumNumberBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumStringBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumStringBody> | null,\n): node is t.EnumStringBody {\n if (!node) return false;\n\n if (node.type !== \"EnumStringBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumSymbolBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumSymbolBody> | null,\n): node is t.EnumSymbolBody {\n if (!node) return false;\n\n if (node.type !== \"EnumSymbolBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBooleanMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumBooleanMember> | null,\n): node is t.EnumBooleanMember {\n if (!node) return false;\n\n if (node.type !== \"EnumBooleanMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumNumberMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumNumberMember> | null,\n): node is t.EnumNumberMember {\n if (!node) return false;\n\n if (node.type !== \"EnumNumberMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumStringMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumStringMember> | null,\n): node is t.EnumStringMember {\n if (!node) return false;\n\n if (node.type !== \"EnumStringMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumDefaultedMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumDefaultedMember> | null,\n): node is t.EnumDefaultedMember {\n if (!node) return false;\n\n if (node.type !== \"EnumDefaultedMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIndexedAccessType(\n node: t.Node | null | undefined,\n opts?: Opts<t.IndexedAccessType> | null,\n): node is t.IndexedAccessType {\n if (!node) return false;\n\n if (node.type !== \"IndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalIndexedAccessType(\n node: t.Node | null | undefined,\n opts?: Opts<t.OptionalIndexedAccessType> | null,\n): node is t.OptionalIndexedAccessType {\n if (!node) return false;\n\n if (node.type !== \"OptionalIndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXAttribute(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXAttribute> | null,\n): node is t.JSXAttribute {\n if (!node) return false;\n\n if (node.type !== \"JSXAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXClosingElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXClosingElement> | null,\n): node is t.JSXClosingElement {\n if (!node) return false;\n\n if (node.type !== \"JSXClosingElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXElement> | null,\n): node is t.JSXElement {\n if (!node) return false;\n\n if (node.type !== \"JSXElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXEmptyExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXEmptyExpression> | null,\n): node is t.JSXEmptyExpression {\n if (!node) return false;\n\n if (node.type !== \"JSXEmptyExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXExpressionContainer(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXExpressionContainer> | null,\n): node is t.JSXExpressionContainer {\n if (!node) return false;\n\n if (node.type !== \"JSXExpressionContainer\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXSpreadChild(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXSpreadChild> | null,\n): node is t.JSXSpreadChild {\n if (!node) return false;\n\n if (node.type !== \"JSXSpreadChild\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXIdentifier> | null,\n): node is t.JSXIdentifier {\n if (!node) return false;\n\n if (node.type !== \"JSXIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXMemberExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXMemberExpression> | null,\n): node is t.JSXMemberExpression {\n if (!node) return false;\n\n if (node.type !== \"JSXMemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXNamespacedName(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXNamespacedName> | null,\n): node is t.JSXNamespacedName {\n if (!node) return false;\n\n if (node.type !== \"JSXNamespacedName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXOpeningElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXOpeningElement> | null,\n): node is t.JSXOpeningElement {\n if (!node) return false;\n\n if (node.type !== \"JSXOpeningElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXSpreadAttribute(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXSpreadAttribute> | null,\n): node is t.JSXSpreadAttribute {\n if (!node) return false;\n\n if (node.type !== \"JSXSpreadAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXText(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXText> | null,\n): node is t.JSXText {\n if (!node) return false;\n\n if (node.type !== \"JSXText\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXFragment(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXFragment> | null,\n): node is t.JSXFragment {\n if (!node) return false;\n\n if (node.type !== \"JSXFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXOpeningFragment(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXOpeningFragment> | null,\n): node is t.JSXOpeningFragment {\n if (!node) return false;\n\n if (node.type !== \"JSXOpeningFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXClosingFragment(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSXClosingFragment> | null,\n): node is t.JSXClosingFragment {\n if (!node) return false;\n\n if (node.type !== \"JSXClosingFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNoop(\n node: t.Node | null | undefined,\n opts?: Opts<t.Noop> | null,\n): node is t.Noop {\n if (!node) return false;\n\n if (node.type !== \"Noop\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPlaceholder(\n node: t.Node | null | undefined,\n opts?: Opts<t.Placeholder> | null,\n): node is t.Placeholder {\n if (!node) return false;\n\n if (node.type !== \"Placeholder\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isV8IntrinsicIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.V8IntrinsicIdentifier> | null,\n): node is t.V8IntrinsicIdentifier {\n if (!node) return false;\n\n if (node.type !== \"V8IntrinsicIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArgumentPlaceholder(\n node: t.Node | null | undefined,\n opts?: Opts<t.ArgumentPlaceholder> | null,\n): node is t.ArgumentPlaceholder {\n if (!node) return false;\n\n if (node.type !== \"ArgumentPlaceholder\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBindExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.BindExpression> | null,\n): node is t.BindExpression {\n if (!node) return false;\n\n if (node.type !== \"BindExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportAttribute(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportAttribute> | null,\n): node is t.ImportAttribute {\n if (!node) return false;\n\n if (node.type !== \"ImportAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDecorator(\n node: t.Node | null | undefined,\n opts?: Opts<t.Decorator> | null,\n): node is t.Decorator {\n if (!node) return false;\n\n if (node.type !== \"Decorator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDoExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.DoExpression> | null,\n): node is t.DoExpression {\n if (!node) return false;\n\n if (node.type !== \"DoExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDefaultSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportDefaultSpecifier> | null,\n): node is t.ExportDefaultSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ExportDefaultSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRecordExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.RecordExpression> | null,\n): node is t.RecordExpression {\n if (!node) return false;\n\n if (node.type !== \"RecordExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTupleExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TupleExpression> | null,\n): node is t.TupleExpression {\n if (!node) return false;\n\n if (node.type !== \"TupleExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDecimalLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.DecimalLiteral> | null,\n): node is t.DecimalLiteral {\n if (!node) return false;\n\n if (node.type !== \"DecimalLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isModuleExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.ModuleExpression> | null,\n): node is t.ModuleExpression {\n if (!node) return false;\n\n if (node.type !== \"ModuleExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTopicReference(\n node: t.Node | null | undefined,\n opts?: Opts<t.TopicReference> | null,\n): node is t.TopicReference {\n if (!node) return false;\n\n if (node.type !== \"TopicReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelineTopicExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.PipelineTopicExpression> | null,\n): node is t.PipelineTopicExpression {\n if (!node) return false;\n\n if (node.type !== \"PipelineTopicExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelineBareFunction(\n node: t.Node | null | undefined,\n opts?: Opts<t.PipelineBareFunction> | null,\n): node is t.PipelineBareFunction {\n if (!node) return false;\n\n if (node.type !== \"PipelineBareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelinePrimaryTopicReference(\n node: t.Node | null | undefined,\n opts?: Opts<t.PipelinePrimaryTopicReference> | null,\n): node is t.PipelinePrimaryTopicReference {\n if (!node) return false;\n\n if (node.type !== \"PipelinePrimaryTopicReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSParameterProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSParameterProperty> | null,\n): node is t.TSParameterProperty {\n if (!node) return false;\n\n if (node.type !== \"TSParameterProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSDeclareFunction(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSDeclareFunction> | null,\n): node is t.TSDeclareFunction {\n if (!node) return false;\n\n if (node.type !== \"TSDeclareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSDeclareMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSDeclareMethod> | null,\n): node is t.TSDeclareMethod {\n if (!node) return false;\n\n if (node.type !== \"TSDeclareMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSQualifiedName(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSQualifiedName> | null,\n): node is t.TSQualifiedName {\n if (!node) return false;\n\n if (node.type !== \"TSQualifiedName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSCallSignatureDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSCallSignatureDeclaration> | null,\n): node is t.TSCallSignatureDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSCallSignatureDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConstructSignatureDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSConstructSignatureDeclaration> | null,\n): node is t.TSConstructSignatureDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSConstructSignatureDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSPropertySignature(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSPropertySignature> | null,\n): node is t.TSPropertySignature {\n if (!node) return false;\n\n if (node.type !== \"TSPropertySignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSMethodSignature(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSMethodSignature> | null,\n): node is t.TSMethodSignature {\n if (!node) return false;\n\n if (node.type !== \"TSMethodSignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIndexSignature(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSIndexSignature> | null,\n): node is t.TSIndexSignature {\n if (!node) return false;\n\n if (node.type !== \"TSIndexSignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSAnyKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSAnyKeyword> | null,\n): node is t.TSAnyKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSAnyKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBooleanKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSBooleanKeyword> | null,\n): node is t.TSBooleanKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSBooleanKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBigIntKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSBigIntKeyword> | null,\n): node is t.TSBigIntKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSBigIntKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIntrinsicKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSIntrinsicKeyword> | null,\n): node is t.TSIntrinsicKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSIntrinsicKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNeverKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNeverKeyword> | null,\n): node is t.TSNeverKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSNeverKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNullKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNullKeyword> | null,\n): node is t.TSNullKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSNullKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNumberKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNumberKeyword> | null,\n): node is t.TSNumberKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSNumberKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSObjectKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSObjectKeyword> | null,\n): node is t.TSObjectKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSObjectKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSStringKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSStringKeyword> | null,\n): node is t.TSStringKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSStringKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSSymbolKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSSymbolKeyword> | null,\n): node is t.TSSymbolKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSSymbolKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUndefinedKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSUndefinedKeyword> | null,\n): node is t.TSUndefinedKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSUndefinedKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUnknownKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSUnknownKeyword> | null,\n): node is t.TSUnknownKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSUnknownKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSVoidKeyword(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSVoidKeyword> | null,\n): node is t.TSVoidKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSVoidKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSThisType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSThisType> | null,\n): node is t.TSThisType {\n if (!node) return false;\n\n if (node.type !== \"TSThisType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSFunctionType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSFunctionType> | null,\n): node is t.TSFunctionType {\n if (!node) return false;\n\n if (node.type !== \"TSFunctionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConstructorType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSConstructorType> | null,\n): node is t.TSConstructorType {\n if (!node) return false;\n\n if (node.type !== \"TSConstructorType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeReference(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeReference> | null,\n): node is t.TSTypeReference {\n if (!node) return false;\n\n if (node.type !== \"TSTypeReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypePredicate(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypePredicate> | null,\n): node is t.TSTypePredicate {\n if (!node) return false;\n\n if (node.type !== \"TSTypePredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeQuery(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeQuery> | null,\n): node is t.TSTypeQuery {\n if (!node) return false;\n\n if (node.type !== \"TSTypeQuery\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeLiteral> | null,\n): node is t.TSTypeLiteral {\n if (!node) return false;\n\n if (node.type !== \"TSTypeLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSArrayType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSArrayType> | null,\n): node is t.TSArrayType {\n if (!node) return false;\n\n if (node.type !== \"TSArrayType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTupleType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTupleType> | null,\n): node is t.TSTupleType {\n if (!node) return false;\n\n if (node.type !== \"TSTupleType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSOptionalType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSOptionalType> | null,\n): node is t.TSOptionalType {\n if (!node) return false;\n\n if (node.type !== \"TSOptionalType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSRestType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSRestType> | null,\n): node is t.TSRestType {\n if (!node) return false;\n\n if (node.type !== \"TSRestType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNamedTupleMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNamedTupleMember> | null,\n): node is t.TSNamedTupleMember {\n if (!node) return false;\n\n if (node.type !== \"TSNamedTupleMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUnionType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSUnionType> | null,\n): node is t.TSUnionType {\n if (!node) return false;\n\n if (node.type !== \"TSUnionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIntersectionType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSIntersectionType> | null,\n): node is t.TSIntersectionType {\n if (!node) return false;\n\n if (node.type !== \"TSIntersectionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConditionalType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSConditionalType> | null,\n): node is t.TSConditionalType {\n if (!node) return false;\n\n if (node.type !== \"TSConditionalType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInferType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSInferType> | null,\n): node is t.TSInferType {\n if (!node) return false;\n\n if (node.type !== \"TSInferType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSParenthesizedType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSParenthesizedType> | null,\n): node is t.TSParenthesizedType {\n if (!node) return false;\n\n if (node.type !== \"TSParenthesizedType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeOperator(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeOperator> | null,\n): node is t.TSTypeOperator {\n if (!node) return false;\n\n if (node.type !== \"TSTypeOperator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIndexedAccessType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSIndexedAccessType> | null,\n): node is t.TSIndexedAccessType {\n if (!node) return false;\n\n if (node.type !== \"TSIndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSMappedType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSMappedType> | null,\n): node is t.TSMappedType {\n if (!node) return false;\n\n if (node.type !== \"TSMappedType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSLiteralType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSLiteralType> | null,\n): node is t.TSLiteralType {\n if (!node) return false;\n\n if (node.type !== \"TSLiteralType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExpressionWithTypeArguments(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSExpressionWithTypeArguments> | null,\n): node is t.TSExpressionWithTypeArguments {\n if (!node) return false;\n\n if (node.type !== \"TSExpressionWithTypeArguments\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInterfaceDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSInterfaceDeclaration> | null,\n): node is t.TSInterfaceDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSInterfaceDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInterfaceBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSInterfaceBody> | null,\n): node is t.TSInterfaceBody {\n if (!node) return false;\n\n if (node.type !== \"TSInterfaceBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAliasDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeAliasDeclaration> | null,\n): node is t.TSTypeAliasDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAliasDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInstantiationExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSInstantiationExpression> | null,\n): node is t.TSInstantiationExpression {\n if (!node) return false;\n\n if (node.type !== \"TSInstantiationExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSAsExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSAsExpression> | null,\n): node is t.TSAsExpression {\n if (!node) return false;\n\n if (node.type !== \"TSAsExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSSatisfiesExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSSatisfiesExpression> | null,\n): node is t.TSSatisfiesExpression {\n if (!node) return false;\n\n if (node.type !== \"TSSatisfiesExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAssertion(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeAssertion> | null,\n): node is t.TSTypeAssertion {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAssertion\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEnumDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSEnumDeclaration> | null,\n): node is t.TSEnumDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSEnumDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEnumMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSEnumMember> | null,\n): node is t.TSEnumMember {\n if (!node) return false;\n\n if (node.type !== \"TSEnumMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSModuleDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSModuleDeclaration> | null,\n): node is t.TSModuleDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSModuleDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSModuleBlock(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSModuleBlock> | null,\n): node is t.TSModuleBlock {\n if (!node) return false;\n\n if (node.type !== \"TSModuleBlock\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSImportType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSImportType> | null,\n): node is t.TSImportType {\n if (!node) return false;\n\n if (node.type !== \"TSImportType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSImportEqualsDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSImportEqualsDeclaration> | null,\n): node is t.TSImportEqualsDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSImportEqualsDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExternalModuleReference(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSExternalModuleReference> | null,\n): node is t.TSExternalModuleReference {\n if (!node) return false;\n\n if (node.type !== \"TSExternalModuleReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNonNullExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNonNullExpression> | null,\n): node is t.TSNonNullExpression {\n if (!node) return false;\n\n if (node.type !== \"TSNonNullExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExportAssignment(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSExportAssignment> | null,\n): node is t.TSExportAssignment {\n if (!node) return false;\n\n if (node.type !== \"TSExportAssignment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNamespaceExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSNamespaceExportDeclaration> | null,\n): node is t.TSNamespaceExportDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSNamespaceExportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeAnnotation> | null,\n): node is t.TSTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameterInstantiation(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeParameterInstantiation> | null,\n): node is t.TSTypeParameterInstantiation {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameterInstantiation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameterDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeParameterDeclaration> | null,\n): node is t.TSTypeParameterDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameterDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameter(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeParameter> | null,\n): node is t.TSTypeParameter {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameter\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStandardized(\n node: t.Node | null | undefined,\n opts?: Opts<t.Standardized> | null,\n): node is t.Standardized {\n if (!node) return false;\n\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 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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpression(\n node: t.Node | null | undefined,\n opts?: Opts<t.Expression> | null,\n): node is t.Expression {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBinary(\n node: t.Node | null | undefined,\n opts?: Opts<t.Binary> | null,\n): node is t.Binary {\n if (!node) return false;\n\n switch (node.type) {\n case \"BinaryExpression\":\n case \"LogicalExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isScopable(\n node: t.Node | null | undefined,\n opts?: Opts<t.Scopable> | null,\n): node is t.Scopable {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlockParent(\n node: t.Node | null | undefined,\n opts?: Opts<t.BlockParent> | null,\n): node is t.BlockParent {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlock(\n node: t.Node | null | undefined,\n opts?: Opts<t.Block> | null,\n): node is t.Block {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.Statement> | null,\n): node is t.Statement {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTerminatorless(\n node: t.Node | null | undefined,\n opts?: Opts<t.Terminatorless> | null,\n): node is t.Terminatorless {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCompletionStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.CompletionStatement> | null,\n): node is t.CompletionStatement {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isConditional(\n node: t.Node | null | undefined,\n opts?: Opts<t.Conditional> | null,\n): node is t.Conditional {\n if (!node) return false;\n\n switch (node.type) {\n case \"ConditionalExpression\":\n case \"IfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLoop(\n node: t.Node | null | undefined,\n opts?: Opts<t.Loop> | null,\n): node is t.Loop {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWhile(\n node: t.Node | null | undefined,\n opts?: Opts<t.While> | null,\n): node is t.While {\n if (!node) return false;\n\n switch (node.type) {\n case \"DoWhileStatement\":\n case \"WhileStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpressionWrapper(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExpressionWrapper> | null,\n): node is t.ExpressionWrapper {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExpressionStatement\":\n case \"ParenthesizedExpression\":\n case \"TypeCastExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFor(\n node: t.Node | null | undefined,\n opts?: Opts<t.For> | null,\n): node is t.For {\n if (!node) return false;\n\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForXStatement(\n node: t.Node | null | undefined,\n opts?: Opts<t.ForXStatement> | null,\n): node is t.ForXStatement {\n if (!node) return false;\n\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunction(\n node: t.Node | null | undefined,\n opts?: Opts<t.Function> | null,\n): node is t.Function {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionParent(\n node: t.Node | null | undefined,\n opts?: Opts<t.FunctionParent> | null,\n): node is t.FunctionParent {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPureish(\n node: t.Node | null | undefined,\n opts?: Opts<t.Pureish> | null,\n): node is t.Pureish {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.Declaration> | null,\n): node is t.Declaration {\n if (!node) return false;\n\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 break;\n case \"Placeholder\":\n if (node.expectedNode === \"Declaration\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPatternLike(\n node: t.Node | null | undefined,\n opts?: Opts<t.PatternLike> | null,\n): node is t.PatternLike {\n if (!node) return false;\n\n switch (node.type) {\n case \"Identifier\":\n case \"RestElement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Pattern\":\n case \"Identifier\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLVal(\n node: t.Node | null | undefined,\n opts?: Opts<t.LVal> | null,\n): node is t.LVal {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEntityName(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSEntityName> | null,\n): node is t.TSEntityName {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.Literal> | null,\n): node is t.Literal {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImmutable(\n node: t.Node | null | undefined,\n opts?: Opts<t.Immutable> | null,\n): node is t.Immutable {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUserWhitespacable(\n node: t.Node | null | undefined,\n opts?: Opts<t.UserWhitespacable> | null,\n): node is t.UserWhitespacable {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMethod(\n node: t.Node | null | undefined,\n opts?: Opts<t.Method> | null,\n): node is t.Method {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.ObjectMember> | null,\n): node is t.ObjectMember {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.Property> | null,\n): node is t.Property {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnaryLike(\n node: t.Node | null | undefined,\n opts?: Opts<t.UnaryLike> | null,\n): node is t.UnaryLike {\n if (!node) return false;\n\n switch (node.type) {\n case \"UnaryExpression\":\n case \"SpreadElement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPattern(\n node: t.Node | null | undefined,\n opts?: Opts<t.Pattern> | null,\n): node is t.Pattern {\n if (!node) return false;\n\n switch (node.type) {\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Pattern\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClass(\n node: t.Node | null | undefined,\n opts?: Opts<t.Class> | null,\n): node is t.Class {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportOrExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ImportOrExportDeclaration> | null,\n): node is t.ImportOrExportDeclaration {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ExportDeclaration> | null,\n): node is t.ExportDeclaration {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isModuleSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts<t.ModuleSpecifier> | null,\n): node is t.ModuleSpecifier {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAccessor(\n node: t.Node | null | undefined,\n opts?: Opts<t.Accessor> | null,\n): node is t.Accessor {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassAccessorProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPrivate(\n node: t.Node | null | undefined,\n opts?: Opts<t.Private> | null,\n): node is t.Private {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n case \"PrivateName\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlow(\n node: t.Node | null | undefined,\n opts?: Opts<t.Flow> | null,\n): node is t.Flow {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowType(\n node: t.Node | null | undefined,\n opts?: Opts<t.FlowType> | null,\n): node is t.FlowType {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowBaseAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts<t.FlowBaseAnnotation> | null,\n): node is t.FlowBaseAnnotation {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.FlowDeclaration> | null,\n): node is t.FlowDeclaration {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowPredicate(\n node: t.Node | null | undefined,\n opts?: Opts<t.FlowPredicate> | null,\n): node is t.FlowPredicate {\n if (!node) return false;\n\n switch (node.type) {\n case \"DeclaredPredicate\":\n case \"InferredPredicate\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBody(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumBody> | null,\n): node is t.EnumBody {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumMember(\n node: t.Node | null | undefined,\n opts?: Opts<t.EnumMember> | null,\n): node is t.EnumMember {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSX(\n node: t.Node | null | undefined,\n opts?: Opts<t.JSX> | null,\n): node is t.JSX {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMiscellaneous(\n node: t.Node | null | undefined,\n opts?: Opts<t.Miscellaneous> | null,\n): node is t.Miscellaneous {\n if (!node) return false;\n\n switch (node.type) {\n case \"Noop\":\n case \"Placeholder\":\n case \"V8IntrinsicIdentifier\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeScript(\n node: t.Node | null | undefined,\n opts?: Opts<t.TypeScript> | null,\n): node is t.TypeScript {\n if (!node) return false;\n\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 \"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 \"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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeElement(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSTypeElement> | null,\n): node is t.TSTypeElement {\n if (!node) return false;\n\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\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSType> | null,\n): node is t.TSType {\n if (!node) return false;\n\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 \"TSLiteralType\":\n case \"TSExpressionWithTypeArguments\":\n case \"TSImportType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBaseType(\n node: t.Node | null | undefined,\n opts?: Opts<t.TSBaseType> | null,\n): node is t.TSBaseType {\n if (!node) return false;\n\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 \"TSLiteralType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isNumericLiteral`\n */\nexport function isNumberLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.NumberLiteral> | null,\n): boolean {\n deprecationWarning(\"isNumberLiteral\", \"isNumericLiteral\");\n if (!node) return false;\n\n if (node.type !== \"NumberLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isRegExpLiteral`\n */\nexport function isRegexLiteral(\n node: t.Node | null | undefined,\n opts?: Opts<t.RegexLiteral> | null,\n): boolean {\n deprecationWarning(\"isRegexLiteral\", \"isRegExpLiteral\");\n if (!node) return false;\n\n if (node.type !== \"RegexLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isRestElement`\n */\nexport function isRestProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.RestProperty> | null,\n): boolean {\n deprecationWarning(\"isRestProperty\", \"isRestElement\");\n if (!node) return false;\n\n if (node.type !== \"RestProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isSpreadElement`\n */\nexport function isSpreadProperty(\n node: t.Node | null | undefined,\n opts?: Opts<t.SpreadProperty> | null,\n): boolean {\n deprecationWarning(\"isSpreadProperty\", \"isSpreadElement\");\n if (!node) return false;\n\n if (node.type !== \"SpreadProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isImportOrExportDeclaration`\n */\nexport function isModuleDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts<t.ModuleDeclaration> | null,\n): node is t.ImportOrExportDeclaration {\n deprecationWarning(\"isModuleDeclaration\", \"isImportOrExportDeclaration\");\n return isImportOrExportDeclaration(node, opts);\n}\n"],"mappings":"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"}
\ No newline at end of file diff --git a/node_modules/@babel/types/lib/validators/react/isReactComponent.js b/node_modules/@babel/types/lib/validators/react/isReactComponent.js index 63f878a2..34b34672 100644 --- a/node_modules/@babel/types/lib/validators/react/isReactComponent.js +++ b/node_modules/@babel/types/lib/validators/react/isReactComponent.js @@ -6,7 +6,6 @@ Object.defineProperty(exports, "__esModule", { exports.default = void 0; var _buildMatchMemberExpression = require("../buildMatchMemberExpression.js"); const isReactComponent = (0, _buildMatchMemberExpression.default)("React.Component"); -var _default = isReactComponent; -exports.default = _default; +var _default = exports.default = isReactComponent; //# sourceMappingURL=isReactComponent.js.map diff --git a/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map b/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map index e96cd983..bedda10e 100644 --- a/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map +++ b/node_modules/@babel/types/lib/validators/react/isReactComponent.js.map @@ -1 +1 @@ -{"version":3,"names":["_buildMatchMemberExpression","require","isReactComponent","buildMatchMemberExpression","_default","exports","default"],"sources":["../../../src/validators/react/isReactComponent.ts"],"sourcesContent":["import buildMatchMemberExpression from \"../buildMatchMemberExpression.ts\";\n\nconst isReactComponent = buildMatchMemberExpression(\"React.Component\");\n\nexport default isReactComponent;\n"],"mappings":";;;;;;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AAEA,MAAMC,gBAAgB,GAAG,IAAAC,mCAA0B,EAAC,iBAAiB,CAAC;AAAC,IAAAC,QAAA,GAExDF,gBAAgB;AAAAG,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
\ No newline at end of file +{"version":3,"names":["_buildMatchMemberExpression","require","isReactComponent","buildMatchMemberExpression","_default","exports","default"],"sources":["../../../src/validators/react/isReactComponent.ts"],"sourcesContent":["import buildMatchMemberExpression from \"../buildMatchMemberExpression.ts\";\n\nconst isReactComponent = buildMatchMemberExpression(\"React.Component\");\n\nexport default isReactComponent;\n"],"mappings":";;;;;;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AAEA,MAAMC,gBAAgB,GAAG,IAAAC,mCAA0B,EAAC,iBAAiB,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAExDJ,gBAAgB"}
\ No newline at end of file diff --git a/node_modules/@babel/types/package.json b/node_modules/@babel/types/package.json index 4acb0bf1..4badbc93 100644 --- a/node_modules/@babel/types/package.json +++ b/node_modules/@babel/types/package.json @@ -1,6 +1,6 @@ { "name": "@babel/types", - "version": "7.23.0", + "version": "7.23.6", "description": "Babel Types is a Lodash-esque utility library for AST nodes", "author": "The Babel Team (https://babel.dev/team)", "homepage": "https://babel.dev/docs/en/next/babel-types", @@ -24,13 +24,13 @@ } }, "dependencies": { - "@babel/helper-string-parser": "^7.22.5", + "@babel/helper-string-parser": "^7.23.4", "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "devDependencies": { - "@babel/generator": "^7.23.0", - "@babel/parser": "^7.23.0", + "@babel/generator": "^7.23.6", + "@babel/parser": "^7.23.6", "glob": "^7.2.0" }, "engines": { |
