This commit is contained in:
aaron 2024-11-04 11:06:36 -08:00
parent 6ec1c95a71
commit c4f1b00f46
1347 changed files with 21736 additions and 15286 deletions

View file

@ -4,9 +4,9 @@
"description": "this plugin will update statuses to show what game is being played - fuck discord", "description": "this plugin will update statuses to show what game is being played - fuck discord",
"homepage_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate", "homepage_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate",
"support_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate/issues", "support_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdate/issues",
"release_notes_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdatereleases/tag/v0.2.3", "release_notes_url": "https://gitlab.peanutsmediaserver.com/aaron/gameStatusUpdatereleases/tag/v0.2.5",
"icon_path": "assets/starter-template-icon.svg", "icon_path": "assets/starter-template-icon.svg",
"version": "0.2.4", "version": "0.2.6",
"min_server_version": "6.2.1", "min_server_version": "6.2.1",
"server": { "server": {
"executables": { "executables": {

File diff suppressed because one or more lines are too long

604
node_modules/.package-lock.json generated vendored

File diff suppressed because it is too large Load diff

View file

@ -1,33 +1,94 @@
"use strict"; 'use strict';
Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, '__esModule', { value: true });
value: true
}); var picocolors = require('picocolors');
exports.codeFrameColumns = codeFrameColumns; var jsTokens = require('js-tokens');
exports.default = _default; var helperValidatorIdentifier = require('@babel/helper-validator-identifier');
var _highlight = require("@babel/highlight");
var _picocolors = _interopRequireWildcard(require("picocolors"), true); function isColorSupported() {
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); } return (typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? false : picocolors.isColorSupported
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 && {}.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 colors = typeof process === "object" && (process.env.FORCE_COLOR === "0" || process.env.FORCE_COLOR === "false") ? (0, _picocolors.createColors)(false) : _picocolors.default; }
const compose = (f, g) => v => f(g(v)); const compose = (f, g) => v => f(g(v));
let pcWithForcedColor = undefined; function buildDefs(colors) {
function getColors(forceColor) {
if (forceColor) {
var _pcWithForcedColor;
(_pcWithForcedColor = pcWithForcedColor) != null ? _pcWithForcedColor : pcWithForcedColor = (0, _picocolors.createColors)(true);
return pcWithForcedColor;
}
return colors;
}
let deprecationWarningShown = false;
function getDefs(colors) {
return { return {
keyword: colors.cyan,
capitalized: colors.yellow,
jsxIdentifier: colors.yellow,
punctuator: colors.yellow,
number: colors.magenta,
string: colors.green,
regex: colors.magenta,
comment: colors.gray,
invalid: compose(compose(colors.white, colors.bgRed), colors.bold),
gutter: colors.gray, gutter: colors.gray,
marker: compose(colors.red, colors.bold), marker: compose(colors.red, colors.bold),
message: compose(colors.red, colors.bold) message: compose(colors.red, colors.bold),
reset: colors.reset
}; };
} }
const defsOn = buildDefs(picocolors.createColors(true));
const defsOff = buildDefs(picocolors.createColors(false));
function getDefs(enabled) {
return enabled ? defsOn : defsOff;
}
const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]);
const NEWLINE$1 = /\r\n|[\n\r\u2028\u2029]/;
const BRACKET = /^[()[\]{}]$/;
let tokenize;
{
const JSX_TAG = /^[a-z][\w-]*$/i;
const getTokenType = function (token, offset, text) {
if (token.type === "name") {
if (helperValidatorIdentifier.isKeyword(token.value) || helperValidatorIdentifier.isStrictReservedWord(token.value, true) || sometimesKeywords.has(token.value)) {
return "keyword";
}
if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.slice(offset - 2, offset) === "</")) {
return "jsxIdentifier";
}
if (token.value[0] !== token.value[0].toLowerCase()) {
return "capitalized";
}
}
if (token.type === "punctuator" && BRACKET.test(token.value)) {
return "bracket";
}
if (token.type === "invalid" && (token.value === "@" || token.value === "#")) {
return "punctuator";
}
return token.type;
};
tokenize = function* (text) {
let match;
while (match = jsTokens.default.exec(text)) {
const token = jsTokens.matchToToken(match);
yield {
type: getTokenType(token, match.index, text),
value: token.value
};
}
};
}
function highlight(text) {
if (text === "") return "";
const defs = getDefs(true);
let highlighted = "";
for (const {
type,
value
} of tokenize(text)) {
if (type in defs) {
highlighted += value.split(NEWLINE$1).map(str => defs[type](str)).join("\n");
} else {
highlighted += value;
}
}
return highlighted;
}
let deprecationWarningShown = false;
const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; const NEWLINE = /\r\n|[\n\r\u2028\u2029]/;
function getMarkerLines(loc, source, opts) { function getMarkerLines(loc, source, opts) {
const startLoc = Object.assign({ const startLoc = Object.assign({
@ -86,12 +147,8 @@ function getMarkerLines(loc, source, opts) {
}; };
} }
function codeFrameColumns(rawLines, loc, opts = {}) { function codeFrameColumns(rawLines, loc, opts = {}) {
const highlighted = (opts.highlightCode || opts.forceColor) && (0, _highlight.shouldHighlight)(opts); const shouldHighlight = opts.forceColor || isColorSupported() && opts.highlightCode;
const colors = getColors(opts.forceColor); const defs = getDefs(shouldHighlight);
const defs = getDefs(colors);
const maybeHighlight = (fmt, string) => {
return highlighted ? fmt(string) : string;
};
const lines = rawLines.split(NEWLINE); const lines = rawLines.split(NEWLINE);
const { const {
start, start,
@ -100,7 +157,7 @@ function codeFrameColumns(rawLines, loc, opts = {}) {
} = getMarkerLines(loc, lines, opts); } = getMarkerLines(loc, lines, opts);
const hasColumns = loc.start && typeof loc.start.column === "number"; const hasColumns = loc.start && typeof loc.start.column === "number";
const numberMaxWidth = String(end).length; const numberMaxWidth = String(end).length;
const highlightedLines = highlighted ? (0, _highlight.default)(rawLines, opts) : rawLines; const highlightedLines = shouldHighlight ? highlight(rawLines) : rawLines;
let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => { let frame = highlightedLines.split(NEWLINE, end).slice(start, end).map((line, index) => {
const number = start + 1 + index; const number = start + 1 + index;
const paddedNumber = ` ${number}`.slice(-numberMaxWidth); const paddedNumber = ` ${number}`.slice(-numberMaxWidth);
@ -112,26 +169,26 @@ function codeFrameColumns(rawLines, loc, opts = {}) {
if (Array.isArray(hasMarker)) { if (Array.isArray(hasMarker)) {
const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " "); const markerSpacing = line.slice(0, Math.max(hasMarker[0] - 1, 0)).replace(/[^\t]/g, " ");
const numberOfMarkers = hasMarker[1] || 1; const numberOfMarkers = hasMarker[1] || 1;
markerLine = ["\n ", maybeHighlight(defs.gutter, gutter.replace(/\d/g, " ")), " ", markerSpacing, maybeHighlight(defs.marker, "^").repeat(numberOfMarkers)].join(""); markerLine = ["\n ", defs.gutter(gutter.replace(/\d/g, " ")), " ", markerSpacing, defs.marker("^").repeat(numberOfMarkers)].join("");
if (lastMarkerLine && opts.message) { if (lastMarkerLine && opts.message) {
markerLine += " " + maybeHighlight(defs.message, opts.message); markerLine += " " + defs.message(opts.message);
} }
} }
return [maybeHighlight(defs.marker, ">"), maybeHighlight(defs.gutter, gutter), line.length > 0 ? ` ${line}` : "", markerLine].join(""); return [defs.marker(">"), defs.gutter(gutter), line.length > 0 ? ` ${line}` : "", markerLine].join("");
} else { } else {
return ` ${maybeHighlight(defs.gutter, gutter)}${line.length > 0 ? ` ${line}` : ""}`; return ` ${defs.gutter(gutter)}${line.length > 0 ? ` ${line}` : ""}`;
} }
}).join("\n"); }).join("\n");
if (opts.message && !hasColumns) { if (opts.message && !hasColumns) {
frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`; frame = `${" ".repeat(numberMaxWidth + 1)}${opts.message}\n${frame}`;
} }
if (highlighted) { if (shouldHighlight) {
return colors.reset(frame); return defs.reset(frame);
} else { } else {
return frame; return frame;
} }
} }
function _default(rawLines, lineNumber, colNumber, opts = {}) { function index (rawLines, lineNumber, colNumber, opts = {}) {
if (!deprecationWarningShown) { if (!deprecationWarningShown) {
deprecationWarningShown = true; deprecationWarningShown = true;
const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`."; const message = "Passing lineNumber and colNumber is deprecated to @babel/code-frame. Please use `codeFrameColumns`.";
@ -153,4 +210,7 @@ function _default(rawLines, lineNumber, colNumber, opts = {}) {
return codeFrameColumns(rawLines, location, opts); return codeFrameColumns(rawLines, location, opts);
} }
exports.codeFrameColumns = codeFrameColumns;
exports.default = index;
exports.highlight = highlight;
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/code-frame", "name": "@babel/code-frame",
"version": "7.24.7", "version": "7.26.2",
"description": "Generate errors that contain a code frame that point to source locations.", "description": "Generate errors that contain a code frame that point to source locations.",
"author": "The Babel Team (https://babel.dev/team)", "author": "The Babel Team (https://babel.dev/team)",
"homepage": "https://babel.dev/docs/en/next/babel-code-frame", "homepage": "https://babel.dev/docs/en/next/babel-code-frame",
@ -16,7 +16,8 @@
}, },
"main": "./lib/index.js", "main": "./lib/index.js",
"dependencies": { "dependencies": {
"@babel/highlight": "^7.24.7", "@babel/helper-validator-identifier": "^7.25.9",
"js-tokens": "^4.0.0",
"picocolors": "^1.0.0" "picocolors": "^1.0.0"
}, },
"devDependencies": { "devDependencies": {

View file

@ -5,6 +5,16 @@
"edge": "126", "edge": "126",
"firefox": "129", "firefox": "129",
"safari": "17.4", "safari": "17.4",
"node": "23",
"ios": "17.4",
"electron": "31.0"
},
"transform-regexp-modifiers": {
"chrome": "125",
"opera": "111",
"edge": "125",
"firefox": "132",
"node": "23",
"electron": "31.0" "electron": "31.0"
}, },
"transform-unicode-sets-regex": { "transform-unicode-sets-regex": {

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/compat-data", "name": "@babel/compat-data",
"version": "7.25.4", "version": "7.26.2",
"author": "The Babel Team (https://babel.dev/team)", "author": "The Babel Team (https://babel.dev/team)",
"license": "MIT", "license": "MIT",
"description": "", "description": "",

View file

@ -1,13 +0,0 @@
/* This file is automatically generated by scripts/generators/tsconfig.js */
{
"extends": [
"../../tsconfig.base.json",
"../../tsconfig.paths.json"
],
"include": [
"../../packages/babel-compat-data/src/**/*.ts",
"../../lib/globals.d.ts",
"../../scripts/repo-utils/*.d.ts"
],
"references": []
}

File diff suppressed because one or more lines are too long

View file

@ -29,6 +29,15 @@ const propertyNames = [
for (const name of functionNames) { for (const name of functionNames) {
exports[name] = function (...args) { exports[name] = function (...args) {
if (
process.env.BABEL_8_BREAKING &&
typeof args[args.length - 1] !== "function"
) {
throw new Error(
`Starting from Babel 8.0.0, the '${name}' function expects a callback. If you need to call it synchronously, please use '${name}Sync'.`
);
}
babelP.then(babel => { babelP.then(babel => {
babel[name](...args); babel[name](...args);
}); });

View file

@ -52,6 +52,7 @@ var _patternToRegex = require("../pattern-to-regex.js");
var _configError = require("../../errors/config-error.js"); var _configError = require("../../errors/config-error.js");
var fs = require("../../gensync-utils/fs.js"); var fs = require("../../gensync-utils/fs.js");
var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js"); var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js");
var _async = require("../../gensync-utils/async.js");
const debug = _debug()("babel:config:loading:files:configuration"); const debug = _debug()("babel:config:loading:files:configuration");
const ROOT_CONFIG_FILENAMES = exports.ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json", "babel.config.cts"]; 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 RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json", ".babelrc.cts"];
@ -65,7 +66,7 @@ const runConfig = (0, _caching.makeWeakCache)(function* runConfig(options, cache
}); });
function* readConfigCode(filepath, data) { function* readConfigCode(filepath, data) {
if (!_fs().existsSync(filepath)) return null; if (!_fs().existsSync(filepath)) return null;
let options = yield* (0, _moduleTypes.default)(filepath, "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously."); let options = yield* (0, _moduleTypes.default)(filepath, (yield* (0, _async.isAsync)()) ? "auto" : "require", "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", "You appear to be using a configuration file that contains top-level " + "await, which is only supported when running Babel asynchronously.");
let cacheNeedsConfiguration = false; let cacheNeedsConfiguration = false;
if (typeof options === "function") { if (typeof options === "function") {
({ ({
@ -102,7 +103,7 @@ function buildConfigFileObject(options, filepath) {
} }
const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => { const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => {
const babel = file.options["babel"]; const babel = file.options["babel"];
if (typeof babel === "undefined") return null; if (babel === undefined) return null;
if (typeof babel !== "object" || Array.isArray(babel) || babel === null) { if (typeof babel !== "object" || Array.isArray(babel) || babel === null) {
throw new _configError.default(`.babel property must be an object`, file.filepath); throw new _configError.default(`.babel property must be an object`, file.filepath);
} }
@ -135,7 +136,7 @@ const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => {
}); });
const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => { const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => {
const ignoreDir = _path().dirname(filepath); const ignoreDir = _path().dirname(filepath);
const ignorePatterns = content.split("\n").map(line => line.replace(/#.*$/, "").trim()).filter(line => !!line); const ignorePatterns = content.split("\n").map(line => line.replace(/#.*$/, "").trim()).filter(Boolean);
for (const pattern of ignorePatterns) { for (const pattern of ignorePatterns) {
if (pattern[0] === "!") { if (pattern[0] === "!") {
throw new _configError.default(`Negation of file paths is not supported.`, filepath); throw new _configError.default(`Negation of file paths is not supported.`, filepath);

File diff suppressed because one or more lines are too long

View file

@ -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,CAAC,eAAeD,IAAI,gBAAgBF,OAAO,eAAe,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,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAAC","ignoreList":[]} {"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\ntype Resolved =\n | { loader: \"require\"; filepath: string }\n | { loader: \"import\"; filepath: string };\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): Resolved | null {\n return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): Resolved | 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,CAAC,eAAeD,IAAI,gBAAgBF,OAAO,eAAe,CAAC;AAC5E;AAGO,UAAUI,qBAAqBA,CAEpCJ,OAAe,EACS;EACxB,OAAO,IAAI;AACb;AAEO,MAAMK,qBAA+B,GAAAC,OAAA,CAAAD,qBAAA,GAAG,EAAE;AAO1C,SAASE,aAAaA,CAACL,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAGO,SAASQ,aAAaA,CAACN,IAAY,EAAEF,OAAe,EAAmB;EAC5E,OAAO,IAAI;AACb;AAEO,SAASS,UAAUA,CACxBP,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAEO,SAASU,UAAUA,CACxBR,IAAY,EACZF,OAAe,EAId;EACD,MAAM,IAAIG,KAAK,CACb,sBAAsBD,IAAI,gBAAgBF,OAAO,eACnD,CAAC;AACH;AAAC","ignoreList":[]}

View file

@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
}); });
exports.default = loadCodeDefault; exports.default = loadCodeDefault;
exports.supportsESM = void 0; exports.supportsESM = void 0;
var _async = require("../../gensync-utils/async.js"); var _async3 = require("../../gensync-utils/async.js");
function _path() { function _path() {
const data = require("path"); const data = require("path");
_path = function () { _path = function () {
@ -37,8 +37,8 @@ function _debug() {
var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js"); var _rewriteStackTrace = require("../../errors/rewrite-stack-trace.js");
var _configError = require("../../errors/config-error.js"); var _configError = require("../../errors/config-error.js");
var _transformFile = require("../../transform-file.js"); var _transformFile = require("../../transform-file.js");
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
const debug = _debug()("babel:config:loading:files:module-types"); const debug = _debug()("babel:config:loading:files:module-types");
{ {
try { try {
@ -60,48 +60,67 @@ function loadCjsDefault(filepath) {
LOADING_CJS_FILES.delete(filepath); LOADING_CJS_FILES.delete(filepath);
} }
{ {
var _module; return module != null && (module.__esModule || module[Symbol.toStringTag] === "Module") ? module.default || (arguments[1] ? module : undefined) : module;
return (_module = module) != null && _module.__esModule ? module.default || (arguments[1] ? module : undefined) : module;
} }
} }
const loadMjsDefault = (0, _rewriteStackTrace.endHiddenCallStack)(function () { const loadMjsFromPath = (0, _rewriteStackTrace.endHiddenCallStack)(function () {
var _loadMjsDefault = _asyncToGenerator(function* (filepath) { var _loadMjsFromPath = _asyncToGenerator(function* (filepath) {
const url = (0, _url().pathToFileURL)(filepath).toString(); const url = (0, _url().pathToFileURL)(filepath).toString() + "?import";
{ {
if (!import_) { if (!import_) {
throw new _configError.default("Internal error: Native ECMAScript modules aren't supported by this platform.\n", filepath); throw new _configError.default("Internal error: Native ECMAScript modules aren't supported by this platform.\n", filepath);
} }
return (yield import_(url)).default; return yield import_(url);
} }
}); });
function loadMjsDefault(_x) { function loadMjsFromPath(_x) {
return _loadMjsDefault.apply(this, arguments); return _loadMjsFromPath.apply(this, arguments);
} }
return loadMjsDefault; return loadMjsFromPath;
}()); }());
function* loadCodeDefault(filepath, asyncError) { const SUPPORTED_EXTENSIONS = new Set([".js", ".mjs", ".cjs", ".cts"]);
switch (_path().extname(filepath)) { const asyncModules = new Set();
case ".cjs": function* loadCodeDefault(filepath, loader, esmError, tlaError) {
var _async2;
let async;
let ext = _path().extname(filepath);
if (!SUPPORTED_EXTENSIONS.has(ext)) ext = ".js";
const pattern = `${loader} ${ext}`;
switch (pattern) {
case "require .cjs":
case "auto .cjs":
{ {
return loadCjsDefault(filepath, arguments[2]); return loadCjsDefault(filepath, arguments[2]);
} }
case ".mjs": case "require .cts":
break; case "auto .cts":
case ".cts":
return loadCtsDefault(filepath); return loadCtsDefault(filepath);
default: case "auto .js":
case "require .js":
case "require .mjs":
try { try {
{ {
return loadCjsDefault(filepath, arguments[2]); return loadCjsDefault(filepath, arguments[2]);
} }
} catch (e) { } catch (e) {
if (e.code !== "ERR_REQUIRE_ESM") throw e; if (e.code === "ERR_REQUIRE_ASYNC_MODULE" || e.code === "ERR_REQUIRE_CYCLE_MODULE" && asyncModules.has(filepath)) {
var _async;
asyncModules.add(filepath);
if (!((_async = async) != null ? _async : async = yield* (0, _async3.isAsync)())) {
throw new _configError.default(tlaError, filepath);
}
} else if (e.code === "ERR_REQUIRE_ESM" || ext === ".mjs") {} else {
throw e;
} }
} }
if (yield* (0, _async.isAsync)()) { case "auto .mjs":
return yield* (0, _async.waitFor)(loadMjsDefault(filepath)); if ((_async2 = async) != null ? _async2 : async = yield* (0, _async3.isAsync)()) {
return (yield* (0, _async3.waitFor)(loadMjsFromPath(filepath))).default;
}
throw new _configError.default(esmError, filepath);
default:
throw new Error("Internal Babel error: unreachable code.");
} }
throw new _configError.default(asyncError, filepath);
} }
function loadCtsDefault(filepath) { function loadCtsDefault(filepath) {
const ext = ".cts"; const ext = ".cts";

File diff suppressed because one or more lines are too long

View file

@ -49,8 +49,11 @@ const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;
const resolvePlugin = exports.resolvePlugin = resolveStandardizedName.bind(null, "plugin"); const resolvePlugin = exports.resolvePlugin = resolveStandardizedName.bind(null, "plugin");
const resolvePreset = exports.resolvePreset = resolveStandardizedName.bind(null, "preset"); const resolvePreset = exports.resolvePreset = resolveStandardizedName.bind(null, "preset");
function* loadPlugin(name, dirname) { function* loadPlugin(name, dirname) {
const filepath = resolvePlugin(name, dirname, yield* (0, _async.isAsync)()); const {
const value = yield* requireModule("plugin", filepath); filepath,
loader
} = resolvePlugin(name, dirname, yield* (0, _async.isAsync)());
const value = yield* requireModule("plugin", loader, filepath);
debug("Loaded plugin %o from %o.", name, dirname); debug("Loaded plugin %o from %o.", name, dirname);
return { return {
filepath, filepath,
@ -58,8 +61,11 @@ function* loadPlugin(name, dirname) {
}; };
} }
function* loadPreset(name, dirname) { function* loadPreset(name, dirname) {
const filepath = resolvePreset(name, dirname, yield* (0, _async.isAsync)()); const {
const value = yield* requireModule("preset", filepath); filepath,
loader
} = resolvePreset(name, dirname, yield* (0, _async.isAsync)());
const value = yield* requireModule("preset", loader, filepath);
debug("Loaded preset %o from %o.", name, dirname); debug("Loaded preset %o from %o.", name, dirname);
return { return {
filepath, filepath,
@ -154,7 +160,10 @@ function resolveStandardizedNameForRequire(type, name, dirname) {
while (!res.done) { while (!res.done) {
res = it.next(tryRequireResolve(res.value, dirname)); res = it.next(tryRequireResolve(res.value, dirname));
} }
return res.value; return {
loader: "require",
filepath: res.value
};
} }
function resolveStandardizedNameForImport(type, name, dirname) { function resolveStandardizedNameForImport(type, name, dirname) {
const parentUrl = (0, _url().pathToFileURL)(_path().join(dirname, "./babel-virtual-resolve-base.js")).href; const parentUrl = (0, _url().pathToFileURL)(_path().join(dirname, "./babel-virtual-resolve-base.js")).href;
@ -163,15 +172,18 @@ function resolveStandardizedNameForImport(type, name, dirname) {
while (!res.done) { while (!res.done) {
res = it.next(tryImportMetaResolve(res.value, parentUrl)); res = it.next(tryImportMetaResolve(res.value, parentUrl));
} }
return (0, _url().fileURLToPath)(res.value); return {
loader: "auto",
filepath: (0, _url().fileURLToPath)(res.value)
};
} }
function resolveStandardizedName(type, name, dirname, resolveESM) { function resolveStandardizedName(type, name, dirname, allowAsync) {
if (!_moduleTypes.supportsESM || !resolveESM) { if (!_moduleTypes.supportsESM || !allowAsync) {
return resolveStandardizedNameForRequire(type, name, dirname); return resolveStandardizedNameForRequire(type, name, dirname);
} }
try { try {
const resolved = resolveStandardizedNameForImport(type, name, dirname); const resolved = resolveStandardizedNameForImport(type, name, dirname);
if (!(0, _fs().existsSync)(resolved)) { if (!(0, _fs().existsSync)(resolved.filepath)) {
throw Object.assign(new Error(`Could not resolve "${name}" in file ${dirname}.`), { throw Object.assign(new Error(`Could not resolve "${name}" in file ${dirname}.`), {
type: "MODULE_NOT_FOUND" type: "MODULE_NOT_FOUND"
}); });
@ -190,7 +202,7 @@ function resolveStandardizedName(type, name, dirname, resolveESM) {
{ {
var LOADING_MODULES = new Set(); var LOADING_MODULES = new Set();
} }
function* requireModule(type, name) { function* requireModule(type, loader, name) {
{ {
if (!(yield* (0, _async.isAsync)()) && LOADING_MODULES.has(name)) { if (!(yield* (0, _async.isAsync)()) && LOADING_MODULES.has(name)) {
throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.'); throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.');
@ -201,7 +213,7 @@ function* requireModule(type, name) {
LOADING_MODULES.add(name); LOADING_MODULES.add(name);
} }
{ {
return yield* (0, _moduleTypes.default)(name, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously.", true); return yield* (0, _moduleTypes.default)(name, loader, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously " + "or when using the Node.js `--experimental-require-module` flag.", `You appear to be using a ${type} that contains top-level await, ` + "which is only supported when running Babel asynchronously.", true);
} }
} catch (err) { } catch (err) {
err.message = `[BABEL]: ${err.message} (While processing: ${name})`; err.message = `[BABEL]: ${err.message} (While processing: ${name})`;

File diff suppressed because one or more lines are too long

View file

@ -235,9 +235,9 @@ const instantiatePlugin = (0, _caching.makeWeakCache)(function* ({
const inherits = yield* (0, _async.forwardAsync)(loadPluginDescriptor, run => { const inherits = yield* (0, _async.forwardAsync)(loadPluginDescriptor, run => {
return cache.invalidate(data => run(inheritsDescriptor, data)); return cache.invalidate(data => run(inheritsDescriptor, data));
}); });
plugin.pre = chain(inherits.pre, plugin.pre); plugin.pre = chainMaybeAsync(inherits.pre, plugin.pre);
plugin.post = chain(inherits.post, plugin.post); plugin.post = chainMaybeAsync(inherits.post, plugin.post);
plugin.manipulateOptions = chain(inherits.manipulateOptions, plugin.manipulateOptions); plugin.manipulateOptions = chainMaybeAsync(inherits.manipulateOptions, plugin.manipulateOptions);
plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]); plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]);
if (inherits.externalDependencies.length > 0) { if (inherits.externalDependencies.length > 0) {
if (externalDependencies.length === 0) { if (externalDependencies.length === 0) {
@ -296,13 +296,15 @@ function* loadPresetDescriptor(descriptor, context) {
externalDependencies: preset.externalDependencies externalDependencies: preset.externalDependencies
}; };
} }
function chain(a, b) { function chainMaybeAsync(a, b) {
const fns = [a, b].filter(Boolean); if (!a) return b;
if (fns.length <= 1) return fns[0]; if (!b) return a;
return function (...args) { return function (...args) {
for (const fn of fns) { const res = a.apply(this, args);
fn.apply(this, args); if (res && typeof res.then === "function") {
return res.then(() => b.apply(this, args));
} }
return b.apply(this, args);
}; };
} }
0 && 0; 0 && 0;

File diff suppressed because one or more lines are too long

View file

@ -17,7 +17,7 @@ var _index = require("../../index.js");
var _caching = require("../caching.js"); var _caching = require("../caching.js");
function makeConfigAPI(cache) { function makeConfigAPI(cache) {
const env = value => cache.using(data => { const env = value => cache.using(data => {
if (typeof value === "undefined") return data.envName; if (value === undefined) return data.envName;
if (typeof value === "function") { if (typeof value === "function") {
return (0, _caching.assertSimpleType)(value(data.envName)); return (0, _caching.assertSimpleType)(value(data.envName));
} }

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -21,7 +21,7 @@ var _options = require("./validation/options.js");
var _index = require("./files/index.js"); var _index = require("./files/index.js");
var _resolveTargets = require("./resolve-targets.js"); var _resolveTargets = require("./resolve-targets.js");
const _excluded = ["showIgnoredFiles"]; const _excluded = ["showIgnoredFiles"];
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }
function resolveRootMode(rootDir, rootMode) { function resolveRootMode(rootDir, rootMode) {
switch (rootMode) { switch (rootMode) {
case "root": case "root":

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -15,8 +15,8 @@ function _gensync() {
}; };
return data; return data;
} }
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
const runGenerator = _gensync()(function* (item) { const runGenerator = _gensync()(function* (item) {
return yield* item; return yield* item;
}); });

File diff suppressed because one or more lines are too long

View file

@ -94,18 +94,7 @@ Object.defineProperty(exports, "parseSync", {
return _parse.parseSync; return _parse.parseSync;
} }
}); });
Object.defineProperty(exports, "resolvePlugin", { exports.resolvePreset = exports.resolvePlugin = void 0;
enumerable: true,
get: function () {
return _index.resolvePlugin;
}
});
Object.defineProperty(exports, "resolvePreset", {
enumerable: true,
get: function () {
return _index.resolvePreset;
}
});
Object.defineProperty((0, exports), "template", { Object.defineProperty((0, exports), "template", {
enumerable: true, enumerable: true,
get: function () { get: function () {
@ -181,7 +170,7 @@ Object.defineProperty((0, exports), "traverse", {
exports.version = exports.types = void 0; exports.version = exports.types = void 0;
var _file = require("./transformation/file/file.js"); var _file = require("./transformation/file/file.js");
var _buildExternalHelpers = require("./tools/build-external-helpers.js"); var _buildExternalHelpers = require("./tools/build-external-helpers.js");
var _index = require("./config/files/index.js"); var resolvers = require("./config/files/index.js");
var _environment = require("./config/helpers/environment.js"); var _environment = require("./config/helpers/environment.js");
function _types() { function _types() {
const data = require("@babel/types"); const data = require("@babel/types");
@ -224,7 +213,11 @@ var _transformAst = require("./transform-ast.js");
var _parse = require("./parse.js"); var _parse = require("./parse.js");
var thisFile = require("./index.js"); var thisFile = require("./index.js");
; ;
const version = exports.version = "7.25.2"; const version = exports.version = "7.26.0";
const resolvePlugin = (name, dirname) => resolvers.resolvePlugin(name, dirname, false).filepath;
exports.resolvePlugin = resolvePlugin;
const resolvePreset = (name, dirname) => resolvers.resolvePreset(name, dirname, false).filepath;
exports.resolvePreset = resolvePreset;
const DEFAULT_EXTENSIONS = exports.DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); const DEFAULT_EXTENSIONS = exports.DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]);
; ;
{ {

File diff suppressed because one or more lines are too long

View file

@ -1 +1 @@
{"version":3,"names":["_parser","data","require","_codeFrame","_missingPluginHelper","parser","pluginPasses","parserOpts","highlightCode","filename","code","results","plugins","plugin","parserOverride","ast","parse","undefined","push","length","then","Error","err","message","loc","missingPlugin","codeFrame","codeFrameColumns","start","line","column","generateMissingPluginMessage"],"sources":["../../src/parser/index.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\nimport { parse, type File as ParseResult } from \"@babel/parser\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport generateMissingPluginMessage from \"./util/missing-plugin-helper.ts\";\nimport type { PluginPasses } from \"../config/index.ts\";\n\nexport type { ParseResult };\n\nexport default function* parser(\n pluginPasses: PluginPasses,\n { parserOpts, highlightCode = true, filename = \"unknown\" }: any,\n code: string,\n): Handler<ParseResult> {\n try {\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { parserOverride } = plugin;\n if (parserOverride) {\n const ast = parserOverride(code, parserOpts, parse);\n\n if (ast !== undefined) results.push(ast);\n }\n }\n }\n\n if (results.length === 0) {\n return parse(code, parserOpts);\n } else if (results.length === 1) {\n // @ts-expect-error - If we want to allow async parsers\n yield* [];\n if (typeof results[0].then === \"function\") {\n throw new Error(\n `You appear to be using an async parser plugin, ` +\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 return results[0];\n }\n // TODO: Add an error code\n throw new Error(\"More than one plugin attempted to override parsing.\");\n } catch (err) {\n if (err.code === \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\") {\n err.message +=\n \"\\nConsider renaming the file to '.mjs', or setting sourceType:module \" +\n \"or sourceType:unambiguous in your Babel config for this file.\";\n // err.code will be changed to BABEL_PARSE_ERROR later.\n }\n\n const { loc, missingPlugin } = err;\n if (loc) {\n const codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line: loc.line,\n column: loc.column + 1,\n },\n },\n {\n highlightCode,\n },\n );\n if (missingPlugin) {\n err.message =\n `${filename}: ` +\n generateMissingPluginMessage(\n missingPlugin[0],\n loc,\n codeFrame,\n filename,\n );\n } else {\n err.message = `${filename}: ${err.message}\\n\\n` + codeFrame;\n }\n err.code = \"BABEL_PARSE_ERROR\";\n }\n throw err;\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAG,oBAAA,GAAAF,OAAA;AAKe,UAAUG,MAAMA,CAC7BC,YAA0B,EAC1B;EAAEC,UAAU;EAAEC,aAAa,GAAG,IAAI;EAAEC,QAAQ,GAAG;AAAe,CAAC,EAC/DC,IAAY,EACU;EACtB,IAAI;IACF,MAAMC,OAAO,GAAG,EAAE;IAClB,KAAK,MAAMC,OAAO,IAAIN,YAAY,EAAE;MAClC,KAAK,MAAMO,MAAM,IAAID,OAAO,EAAE;QAC5B,MAAM;UAAEE;QAAe,CAAC,GAAGD,MAAM;QACjC,IAAIC,cAAc,EAAE;UAClB,MAAMC,GAAG,GAAGD,cAAc,CAACJ,IAAI,EAAEH,UAAU,EAAES,eAAK,CAAC;UAEnD,IAAID,GAAG,KAAKE,SAAS,EAAEN,OAAO,CAACO,IAAI,CAACH,GAAG,CAAC;QAC1C;MACF;IACF;IAEA,IAAIJ,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO,IAAAH,eAAK,EAACN,IAAI,EAAEH,UAAU,CAAC;IAChC,CAAC,MAAM,IAAII,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MAE/B,OAAO,EAAE;MACT,IAAI,OAAOR,OAAO,CAAC,CAAC,CAAC,CAACS,IAAI,KAAK,UAAU,EAAE;QACzC,MAAM,IAAIC,KAAK,CACb,iDAAiD,GAC/C,wDAAwD,GACxD,8DAA8D,GAC9D,2BACJ,CAAC;MACH;MACA,OAAOV,OAAO,CAAC,CAAC,CAAC;IACnB;IAEA,MAAM,IAAIU,KAAK,CAAC,qDAAqD,CAAC;EACxE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,IAAIA,GAAG,CAACZ,IAAI,KAAK,yCAAyC,EAAE;MAC1DY,GAAG,CAACC,OAAO,IACT,uEAAuE,GACvE,+DAA+D;IAEnE;IAEA,MAAM;MAAEC,GAAG;MAAEC;IAAc,CAAC,GAAGH,GAAG;IAClC,IAAIE,GAAG,EAAE;MACP,MAAME,SAAS,GAAG,IAAAC,6BAAgB,EAChCjB,IAAI,EACJ;QACEkB,KAAK,EAAE;UACLC,IAAI,EAAEL,GAAG,CAACK,IAAI;UACdC,MAAM,EAAEN,GAAG,CAACM,MAAM,GAAG;QACvB;MACF,CAAC,EACD;QACEtB;MACF,CACF,CAAC;MACD,IAAIiB,aAAa,EAAE;QACjBH,GAAG,CAACC,OAAO,GACT,GAAGd,QAAQ,IAAI,GACf,IAAAsB,4BAA4B,EAC1BN,aAAa,CAAC,CAAC,CAAC,EAChBD,GAAG,EACHE,SAAS,EACTjB,QACF,CAAC;MACL,CAAC,MAAM;QACLa,GAAG,CAACC,OAAO,GAAG,GAAGd,QAAQ,KAAKa,GAAG,CAACC,OAAO,MAAM,GAAGG,SAAS;MAC7D;MACAJ,GAAG,CAACZ,IAAI,GAAG,mBAAmB;IAChC;IACA,MAAMY,GAAG;EACX;AACF;AAAC","ignoreList":[]} {"version":3,"names":["_parser","data","require","_codeFrame","_missingPluginHelper","parser","pluginPasses","parserOpts","highlightCode","filename","code","results","plugins","plugin","parserOverride","ast","parse","undefined","push","length","then","Error","err","message","loc","missingPlugin","codeFrame","codeFrameColumns","start","line","column","generateMissingPluginMessage"],"sources":["../../src/parser/index.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\nimport { parse, type File as ParseResult } from \"@babel/parser\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport generateMissingPluginMessage from \"./util/missing-plugin-helper.ts\";\nimport type { PluginPasses } from \"../config/index.ts\";\n\nexport type { ParseResult };\n\nexport default function* parser(\n pluginPasses: PluginPasses,\n { parserOpts, highlightCode = true, filename = \"unknown\" }: any,\n code: string,\n): Handler<ParseResult> {\n try {\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { parserOverride } = plugin;\n if (parserOverride) {\n const ast = parserOverride(code, parserOpts, parse);\n\n if (ast !== undefined) results.push(ast);\n }\n }\n }\n\n if (results.length === 0) {\n return parse(code, parserOpts);\n } else if (results.length === 1) {\n // If we want to allow async parsers\n yield* [];\n if (typeof results[0].then === \"function\") {\n throw new Error(\n `You appear to be using an async parser plugin, ` +\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 return results[0];\n }\n // TODO: Add an error code\n throw new Error(\"More than one plugin attempted to override parsing.\");\n } catch (err) {\n if (err.code === \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\") {\n err.message +=\n \"\\nConsider renaming the file to '.mjs', or setting sourceType:module \" +\n \"or sourceType:unambiguous in your Babel config for this file.\";\n // err.code will be changed to BABEL_PARSE_ERROR later.\n }\n\n const { loc, missingPlugin } = err;\n if (loc) {\n const codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line: loc.line,\n column: loc.column + 1,\n },\n },\n {\n highlightCode,\n },\n );\n if (missingPlugin) {\n err.message =\n `${filename}: ` +\n generateMissingPluginMessage(\n missingPlugin[0],\n loc,\n codeFrame,\n filename,\n );\n } else {\n err.message = `${filename}: ${err.message}\\n\\n` + codeFrame;\n }\n err.code = \"BABEL_PARSE_ERROR\";\n }\n throw err;\n }\n}\n"],"mappings":";;;;;;AACA,SAAAA,QAAA;EAAA,MAAAC,IAAA,GAAAC,OAAA;EAAAF,OAAA,YAAAA,CAAA;IAAA,OAAAC,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,SAAAE,WAAA;EAAA,MAAAF,IAAA,GAAAC,OAAA;EAAAC,UAAA,YAAAA,CAAA;IAAA,OAAAF,IAAA;EAAA;EAAA,OAAAA,IAAA;AAAA;AACA,IAAAG,oBAAA,GAAAF,OAAA;AAKe,UAAUG,MAAMA,CAC7BC,YAA0B,EAC1B;EAAEC,UAAU;EAAEC,aAAa,GAAG,IAAI;EAAEC,QAAQ,GAAG;AAAe,CAAC,EAC/DC,IAAY,EACU;EACtB,IAAI;IACF,MAAMC,OAAO,GAAG,EAAE;IAClB,KAAK,MAAMC,OAAO,IAAIN,YAAY,EAAE;MAClC,KAAK,MAAMO,MAAM,IAAID,OAAO,EAAE;QAC5B,MAAM;UAAEE;QAAe,CAAC,GAAGD,MAAM;QACjC,IAAIC,cAAc,EAAE;UAClB,MAAMC,GAAG,GAAGD,cAAc,CAACJ,IAAI,EAAEH,UAAU,EAAES,eAAK,CAAC;UAEnD,IAAID,GAAG,KAAKE,SAAS,EAAEN,OAAO,CAACO,IAAI,CAACH,GAAG,CAAC;QAC1C;MACF;IACF;IAEA,IAAIJ,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MACxB,OAAO,IAAAH,eAAK,EAACN,IAAI,EAAEH,UAAU,CAAC;IAChC,CAAC,MAAM,IAAII,OAAO,CAACQ,MAAM,KAAK,CAAC,EAAE;MAE/B,OAAO,EAAE;MACT,IAAI,OAAOR,OAAO,CAAC,CAAC,CAAC,CAACS,IAAI,KAAK,UAAU,EAAE;QACzC,MAAM,IAAIC,KAAK,CACb,iDAAiD,GAC/C,wDAAwD,GACxD,8DAA8D,GAC9D,2BACJ,CAAC;MACH;MACA,OAAOV,OAAO,CAAC,CAAC,CAAC;IACnB;IAEA,MAAM,IAAIU,KAAK,CAAC,qDAAqD,CAAC;EACxE,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,IAAIA,GAAG,CAACZ,IAAI,KAAK,yCAAyC,EAAE;MAC1DY,GAAG,CAACC,OAAO,IACT,uEAAuE,GACvE,+DAA+D;IAEnE;IAEA,MAAM;MAAEC,GAAG;MAAEC;IAAc,CAAC,GAAGH,GAAG;IAClC,IAAIE,GAAG,EAAE;MACP,MAAME,SAAS,GAAG,IAAAC,6BAAgB,EAChCjB,IAAI,EACJ;QACEkB,KAAK,EAAE;UACLC,IAAI,EAAEL,GAAG,CAACK,IAAI;UACdC,MAAM,EAAEN,GAAG,CAACM,MAAM,GAAG;QACvB;MACF,CAAC,EACD;QACEtB;MACF,CACF,CAAC;MACD,IAAIiB,aAAa,EAAE;QACjBH,GAAG,CAACC,OAAO,GACT,GAAGd,QAAQ,IAAI,GACf,IAAAsB,4BAA4B,EAC1BN,aAAa,CAAC,CAAC,CAAC,EAChBD,GAAG,EACHE,SAAS,EACTjB,QACF,CAAC;MACL,CAAC,MAAM;QACLa,GAAG,CAACC,OAAO,GAAG,GAAGd,QAAQ,KAAKa,GAAG,CAACC,OAAO,MAAM,GAAGG,SAAS;MAC7D;MACAJ,GAAG,CAACZ,IAAI,GAAG,mBAAmB;IAChC;IACA,MAAMY,GAAG;EACX;AACF;AAAC","ignoreList":[]}

View file

@ -87,12 +87,6 @@ const pluginNameMap = {
url: "https://github.com/babel/babel/tree/main/packages/babel-preset-react" url: "https://github.com/babel/babel/tree/main/packages/babel-preset-react"
} }
}, },
importAttributes: {
syntax: {
name: "@babel/plugin-syntax-import-attributes",
url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes"
}
},
pipelineOperator: { pipelineOperator: {
syntax: { syntax: {
name: "@babel/plugin-syntax-pipeline-operator", name: "@babel/plugin-syntax-pipeline-operator",
@ -204,6 +198,12 @@ const pluginNameMap = {
url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions" url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions"
} }
}, },
importAttributes: {
syntax: {
name: "@babel/plugin-syntax-import-attributes",
url: "https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes"
}
},
importMeta: { importMeta: {
syntax: { syntax: {
name: "@babel/plugin-syntax-import-meta", name: "@babel/plugin-syntax-import-meta",

File diff suppressed because one or more lines are too long

View file

@ -17,6 +17,7 @@ var _normalizeOpts = require("./normalize-opts.js");
var _normalizeFile = require("./normalize-file.js"); var _normalizeFile = require("./normalize-file.js");
var _generate = require("./file/generate.js"); var _generate = require("./file/generate.js");
var _deepArray = require("../config/helpers/deep-array.js"); var _deepArray = require("../config/helpers/deep-array.js");
var _async = require("../gensync-utils/async.js");
function* run(config, code, ast) { function* run(config, code, ast) {
const file = yield* (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast); const file = yield* (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast);
const opts = file.opts; const opts = file.opts;
@ -57,24 +58,21 @@ function* run(config, code, ast) {
}; };
} }
function* transformFile(file, pluginPasses) { function* transformFile(file, pluginPasses) {
const async = yield* (0, _async.isAsync)();
for (const pluginPairs of pluginPasses) { for (const pluginPairs of pluginPasses) {
const passPairs = []; const passPairs = [];
const passes = []; const passes = [];
const visitors = []; const visitors = [];
for (const plugin of pluginPairs.concat([(0, _blockHoistPlugin.default)()])) { for (const plugin of pluginPairs.concat([(0, _blockHoistPlugin.default)()])) {
const pass = new _pluginPass.default(file, plugin.key, plugin.options); const pass = new _pluginPass.default(file, plugin.key, plugin.options, async);
passPairs.push([plugin, pass]); passPairs.push([plugin, pass]);
passes.push(pass); passes.push(pass);
visitors.push(plugin.visitor); visitors.push(plugin.visitor);
} }
for (const [plugin, pass] of passPairs) { for (const [plugin, pass] of passPairs) {
const fn = plugin.pre; if (plugin.pre) {
if (fn) { const fn = (0, _async.maybeAsync)(plugin.pre, `You appear to be using an async plugin/preset, but Babel has been called synchronously`);
const result = fn.call(pass, file); yield* fn.call(pass, file);
yield* [];
if (isThenable(result)) {
throw new Error(`You appear to be using an plugin with an async .pre, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`);
}
} }
} }
const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod); const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod);
@ -82,20 +80,13 @@ function* transformFile(file, pluginPasses) {
(0, _traverse().default)(file.ast, visitor, file.scope); (0, _traverse().default)(file.ast, visitor, file.scope);
} }
for (const [plugin, pass] of passPairs) { for (const [plugin, pass] of passPairs) {
const fn = plugin.post; if (plugin.post) {
if (fn) { const fn = (0, _async.maybeAsync)(plugin.post, `You appear to be using an async plugin/preset, but Babel has been called synchronously`);
const result = fn.call(pass, file); yield* fn.call(pass, file);
yield* [];
if (isThenable(result)) {
throw new Error(`You appear to be using an plugin with an async .post, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`);
} }
} }
} }
} }
}
function isThenable(val) {
return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function";
}
0 && 0; 0 && 0;
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

File diff suppressed because one or more lines are too long

View file

@ -5,18 +5,20 @@ Object.defineProperty(exports, "__esModule", {
}); });
exports.default = void 0; exports.default = void 0;
class PluginPass { class PluginPass {
constructor(file, key, options) { constructor(file, key, options, isAsync) {
this._map = new Map(); this._map = new Map();
this.key = void 0; this.key = void 0;
this.file = void 0; this.file = void 0;
this.opts = void 0; this.opts = void 0;
this.cwd = void 0; this.cwd = void 0;
this.filename = void 0; this.filename = void 0;
this.isAsync = void 0;
this.key = key; this.key = key;
this.file = file; this.file = file;
this.opts = options || {}; this.opts = options || {};
this.cwd = file.opts.cwd; this.cwd = file.opts.cwd;
this.filename = file.opts.filename; this.filename = file.opts.filename;
this.isAsync = isAsync;
} }
set(key, val) { set(key, val) {
this._map.set(key, val); this._map.set(key, val);

View file

@ -1 +1 @@
{"version":3,"names":["PluginPass","constructor","file","key","options","_map","Map","opts","cwd","filename","set","val","get","availableHelper","name","versionRange","addHelper","buildCodeFrameError","node","msg","_Error","exports","default","prototype","getModuleName","addImport"],"sources":["../../src/transformation/plugin-pass.ts"],"sourcesContent":["import type * as t from \"@babel/types\";\nimport type File from \"./file/file.ts\";\n\nexport default class PluginPass<Options = object> {\n _map: Map<unknown, unknown> = new Map();\n key: string | undefined | null;\n file: File;\n opts: Partial<Options>;\n\n // The working directory that Babel's programmatic options are loaded\n // relative to.\n cwd: string;\n\n // The absolute path of the file being compiled.\n filename: string | void;\n\n constructor(file: File, key?: string | null, options?: Options) {\n this.key = key;\n this.file = file;\n this.opts = options || {};\n this.cwd = file.opts.cwd;\n this.filename = file.opts.filename;\n }\n\n set(key: unknown, val: unknown) {\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n availableHelper(name: string, versionRange?: string | null) {\n return this.file.availableHelper(name, versionRange);\n }\n\n addHelper(name: string) {\n return this.file.addHelper(name);\n }\n\n buildCodeFrameError(\n node: t.Node | undefined | null,\n msg: string,\n _Error?: typeof Error,\n ) {\n return this.file.buildCodeFrameError(node, msg, _Error);\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n (PluginPass as any).prototype.getModuleName = function getModuleName(\n this: PluginPass,\n ): string | undefined {\n // @ts-expect-error only exists in Babel 7\n return this.file.getModuleName();\n };\n (PluginPass as any).prototype.addImport = function addImport(\n this: PluginPass,\n ): void {\n // @ts-expect-error only exists in Babel 7\n this.file.addImport();\n };\n}\n"],"mappings":";;;;;;AAGe,MAAMA,UAAU,CAAmB;EAahDC,WAAWA,CAACC,IAAU,EAAEC,GAAmB,EAAEC,OAAiB,EAAE;IAAA,KAZhEC,IAAI,GAA0B,IAAIC,GAAG,CAAC,CAAC;IAAA,KACvCH,GAAG;IAAA,KACHD,IAAI;IAAA,KACJK,IAAI;IAAA,KAIJC,GAAG;IAAA,KAGHC,QAAQ;IAGN,IAAI,CAACN,GAAG,GAAGA,GAAG;IACd,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACK,IAAI,GAAGH,OAAO,IAAI,CAAC,CAAC;IACzB,IAAI,CAACI,GAAG,GAAGN,IAAI,CAACK,IAAI,CAACC,GAAG;IACxB,IAAI,CAACC,QAAQ,GAAGP,IAAI,CAACK,IAAI,CAACE,QAAQ;EACpC;EAEAC,GAAGA,CAACP,GAAY,EAAEQ,GAAY,EAAE;IAC9B,IAAI,CAACN,IAAI,CAACK,GAAG,CAACP,GAAG,EAAEQ,GAAG,CAAC;EACzB;EAEAC,GAAGA,CAACT,GAAY,EAAO;IACrB,OAAO,IAAI,CAACE,IAAI,CAACO,GAAG,CAACT,GAAG,CAAC;EAC3B;EAEAU,eAAeA,CAACC,IAAY,EAAEC,YAA4B,EAAE;IAC1D,OAAO,IAAI,CAACb,IAAI,CAACW,eAAe,CAACC,IAAI,EAAEC,YAAY,CAAC;EACtD;EAEAC,SAASA,CAACF,IAAY,EAAE;IACtB,OAAO,IAAI,CAACZ,IAAI,CAACc,SAAS,CAACF,IAAI,CAAC;EAClC;EAEAG,mBAAmBA,CACjBC,IAA+B,EAC/BC,GAAW,EACXC,MAAqB,EACrB;IACA,OAAO,IAAI,CAAClB,IAAI,CAACe,mBAAmB,CAACC,IAAI,EAAEC,GAAG,EAAEC,MAAM,CAAC;EACzD;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAtB,UAAA;AAEkC;EAChCA,UAAU,CAASuB,SAAS,CAACC,aAAa,GAAG,SAASA,aAAaA,CAAA,EAE9C;IAEpB,OAAO,IAAI,CAACtB,IAAI,CAACsB,aAAa,CAAC,CAAC;EAClC,CAAC;EACAxB,UAAU,CAASuB,SAAS,CAACE,SAAS,GAAG,SAASA,SAASA,CAAA,EAEpD;IAEN,IAAI,CAACvB,IAAI,CAACuB,SAAS,CAAC,CAAC;EACvB,CAAC;AACH;AAAC","ignoreList":[]} {"version":3,"names":["PluginPass","constructor","file","key","options","isAsync","_map","Map","opts","cwd","filename","set","val","get","availableHelper","name","versionRange","addHelper","buildCodeFrameError","node","msg","_Error","exports","default","prototype","getModuleName","addImport"],"sources":["../../src/transformation/plugin-pass.ts"],"sourcesContent":["import type * as t from \"@babel/types\";\nimport type File from \"./file/file.ts\";\n\nexport default class PluginPass<Options = object> {\n _map: Map<unknown, unknown> = new Map();\n key: string | undefined | null;\n file: File;\n opts: Partial<Options>;\n\n /**\n * The working directory that Babel's programmatic options are loaded\n * relative to.\n */\n cwd: string;\n\n /** The absolute path of the file being compiled. */\n filename: string | void;\n\n /**\n * Is Babel executed in async mode or not.\n */\n isAsync: boolean;\n\n constructor(\n file: File,\n key: string | null,\n options: Options | undefined,\n isAsync: boolean,\n ) {\n this.key = key;\n this.file = file;\n this.opts = options || {};\n this.cwd = file.opts.cwd;\n this.filename = file.opts.filename;\n this.isAsync = isAsync;\n }\n\n set(key: unknown, val: unknown) {\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n availableHelper(name: string, versionRange?: string | null) {\n return this.file.availableHelper(name, versionRange);\n }\n\n addHelper(name: string) {\n return this.file.addHelper(name);\n }\n\n buildCodeFrameError(\n node: t.Node | undefined | null,\n msg: string,\n _Error?: typeof Error,\n ) {\n return this.file.buildCodeFrameError(node, msg, _Error);\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n (PluginPass as any).prototype.getModuleName = function getModuleName(\n this: PluginPass,\n ): string | undefined {\n // @ts-expect-error only exists in Babel 7\n return this.file.getModuleName();\n };\n (PluginPass as any).prototype.addImport = function addImport(\n this: PluginPass,\n ): void {\n // @ts-expect-error only exists in Babel 7\n this.file.addImport();\n };\n}\n"],"mappings":";;;;;;AAGe,MAAMA,UAAU,CAAmB;EAoBhDC,WAAWA,CACTC,IAAU,EACVC,GAAkB,EAClBC,OAA4B,EAC5BC,OAAgB,EAChB;IAAA,KAxBFC,IAAI,GAA0B,IAAIC,GAAG,CAAC,CAAC;IAAA,KACvCJ,GAAG;IAAA,KACHD,IAAI;IAAA,KACJM,IAAI;IAAA,KAMJC,GAAG;IAAA,KAGHC,QAAQ;IAAA,KAKRL,OAAO;IAQL,IAAI,CAACF,GAAG,GAAGA,GAAG;IACd,IAAI,CAACD,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACM,IAAI,GAAGJ,OAAO,IAAI,CAAC,CAAC;IACzB,IAAI,CAACK,GAAG,GAAGP,IAAI,CAACM,IAAI,CAACC,GAAG;IACxB,IAAI,CAACC,QAAQ,GAAGR,IAAI,CAACM,IAAI,CAACE,QAAQ;IAClC,IAAI,CAACL,OAAO,GAAGA,OAAO;EACxB;EAEAM,GAAGA,CAACR,GAAY,EAAES,GAAY,EAAE;IAC9B,IAAI,CAACN,IAAI,CAACK,GAAG,CAACR,GAAG,EAAES,GAAG,CAAC;EACzB;EAEAC,GAAGA,CAACV,GAAY,EAAO;IACrB,OAAO,IAAI,CAACG,IAAI,CAACO,GAAG,CAACV,GAAG,CAAC;EAC3B;EAEAW,eAAeA,CAACC,IAAY,EAAEC,YAA4B,EAAE;IAC1D,OAAO,IAAI,CAACd,IAAI,CAACY,eAAe,CAACC,IAAI,EAAEC,YAAY,CAAC;EACtD;EAEAC,SAASA,CAACF,IAAY,EAAE;IACtB,OAAO,IAAI,CAACb,IAAI,CAACe,SAAS,CAACF,IAAI,CAAC;EAClC;EAEAG,mBAAmBA,CACjBC,IAA+B,EAC/BC,GAAW,EACXC,MAAqB,EACrB;IACA,OAAO,IAAI,CAACnB,IAAI,CAACgB,mBAAmB,CAACC,IAAI,EAAEC,GAAG,EAAEC,MAAM,CAAC;EACzD;AACF;AAACC,OAAA,CAAAC,OAAA,GAAAvB,UAAA;AAEkC;EAChCA,UAAU,CAASwB,SAAS,CAACC,aAAa,GAAG,SAASA,aAAaA,CAAA,EAE9C;IAEpB,OAAO,IAAI,CAACvB,IAAI,CAACuB,aAAa,CAAC,CAAC;EAClC,CAAC;EACAzB,UAAU,CAASwB,SAAS,CAACE,SAAS,GAAG,SAASA,SAASA,CAAA,EAEpD;IAEN,IAAI,CAACxB,IAAI,CAACwB,SAAS,CAAC,CAAC;EACvB,CAAC;AACH;AAAC","ignoreList":[]}

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/core", "name": "@babel/core",
"version": "7.25.2", "version": "7.26.0",
"description": "Babel compiler core.", "description": "Babel compiler core.",
"main": "./lib/index.js", "main": "./lib/index.js",
"author": "The Babel Team (https://babel.dev/team)", "author": "The Babel Team (https://babel.dev/team)",
@ -47,15 +47,15 @@
}, },
"dependencies": { "dependencies": {
"@ampproject/remapping": "^2.2.0", "@ampproject/remapping": "^2.2.0",
"@babel/code-frame": "^7.24.7", "@babel/code-frame": "^7.26.0",
"@babel/generator": "^7.25.0", "@babel/generator": "^7.26.0",
"@babel/helper-compilation-targets": "^7.25.2", "@babel/helper-compilation-targets": "^7.25.9",
"@babel/helper-module-transforms": "^7.25.2", "@babel/helper-module-transforms": "^7.26.0",
"@babel/helpers": "^7.25.0", "@babel/helpers": "^7.26.0",
"@babel/parser": "^7.25.0", "@babel/parser": "^7.26.0",
"@babel/template": "^7.25.0", "@babel/template": "^7.25.9",
"@babel/traverse": "^7.25.2", "@babel/traverse": "^7.25.9",
"@babel/types": "^7.25.2", "@babel/types": "^7.26.0",
"convert-source-map": "^2.0.0", "convert-source-map": "^2.0.0",
"debug": "^4.1.0", "debug": "^4.1.0",
"gensync": "^1.0.0-beta.2", "gensync": "^1.0.0-beta.2",
@ -63,12 +63,12 @@
"semver": "^6.3.1" "semver": "^6.3.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/helper-transform-fixture-test-runner": "^7.25.2", "@babel/helper-transform-fixture-test-runner": "^7.26.0",
"@babel/plugin-syntax-flow": "^7.24.7", "@babel/plugin-syntax-flow": "^7.26.0",
"@babel/plugin-transform-flow-strip-types": "^7.25.2", "@babel/plugin-transform-flow-strip-types": "^7.25.9",
"@babel/plugin-transform-modules-commonjs": "^7.24.8", "@babel/plugin-transform-modules-commonjs": "^7.25.9",
"@babel/preset-env": "^7.25.2", "@babel/preset-env": "^7.26.0",
"@babel/preset-typescript": "^7.24.7", "@babel/preset-typescript": "^7.26.0",
"@jridgewell/trace-mapping": "^0.3.25", "@jridgewell/trace-mapping": "^0.3.25",
"@types/convert-source-map": "^2.0.0", "@types/convert-source-map": "^2.0.0",
"@types/debug": "^4.1.0", "@types/debug": "^4.1.0",

View file

@ -74,13 +74,17 @@ export function* resolveShowConfigPath(
export const ROOT_CONFIG_FILENAMES: string[] = []; export const ROOT_CONFIG_FILENAMES: string[] = [];
type Resolved =
| { loader: "require"; filepath: string }
| { loader: "import"; filepath: string };
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
export function resolvePlugin(name: string, dirname: string): string | null { export function resolvePlugin(name: string, dirname: string): Resolved | null {
return null; return null;
} }
// eslint-disable-next-line @typescript-eslint/no-unused-vars // eslint-disable-next-line @typescript-eslint/no-unused-vars
export function resolvePreset(name: string, dirname: string): string | null { export function resolvePreset(name: string, dirname: string): Resolved | null {
return null; return null;
} }

File diff suppressed because one or more lines are too long

View file

@ -36,6 +36,7 @@ function Program(node) {
function BlockStatement(node) { function BlockStatement(node) {
var _node$directives2; var _node$directives2;
this.tokenChar(123); this.tokenChar(123);
const exit = this.enterDelimited();
const directivesLen = (_node$directives2 = node.directives) == null ? void 0 : _node$directives2.length; const directivesLen = (_node$directives2 = node.directives) == null ? void 0 : _node$directives2.length;
if (directivesLen) { if (directivesLen) {
var _node$directives$trai2; var _node$directives$trai2;
@ -48,7 +49,6 @@ function BlockStatement(node) {
this.newline(newline); this.newline(newline);
} }
} }
const exit = this.enterForStatementInit(false);
this.printSequence(node.body, { this.printSequence(node.body, {
indent: true indent: true
}); });

File diff suppressed because one or more lines are too long

View file

@ -58,20 +58,55 @@ function ClassBody(node) {
this.tokenChar(125); this.tokenChar(125);
} else { } else {
this.newline(); this.newline();
const exit = this.enterForStatementInit(false); const separator = classBodyEmptySemicolonsPrinter(this, node);
this.printSequence(node.body, { separator == null || separator(-1);
indent: true const exit = this.enterDelimited();
this.printJoin(node.body, {
statement: true,
indent: true,
separator,
printTrailingSeparator: true
}); });
exit(); exit();
if (!this.endsWith(10)) this.newline(); if (!this.endsWith(10)) this.newline();
this.rightBrace(node); this.rightBrace(node);
} }
} }
function classBodyEmptySemicolonsPrinter(printer, node) {
if (!printer.tokenMap || node.start == null || node.end == null) {
return null;
}
const indexes = printer.tokenMap.getIndexes(node);
if (!indexes) return null;
let k = 1;
let occurrenceCount = 0;
let nextLocIndex = 0;
const advanceNextLocIndex = () => {
while (nextLocIndex < node.body.length && node.body[nextLocIndex].start == null) {
nextLocIndex++;
}
};
advanceNextLocIndex();
return i => {
if (nextLocIndex <= i) {
nextLocIndex = i + 1;
advanceNextLocIndex();
}
const end = nextLocIndex === node.body.length ? node.end : node.body[nextLocIndex].start;
let tok;
while (k < indexes.length && printer.tokenMap.matchesOriginal(tok = printer._tokens[indexes[k]], ";") && tok.start < end) {
printer.token(";", undefined, occurrenceCount++);
k++;
}
};
}
function ClassProperty(node) { function ClassProperty(node) {
var _node$key$loc;
this.printJoin(node.decorators); this.printJoin(node.decorators);
if (!node.static && !this.format.preserveFormat) {
var _node$key$loc;
const endLine = (_node$key$loc = node.key.loc) == null || (_node$key$loc = _node$key$loc.end) == null ? void 0 : _node$key$loc.line; const endLine = (_node$key$loc = node.key.loc) == null || (_node$key$loc = _node$key$loc.end) == null ? void 0 : _node$key$loc.line;
if (endLine) this.catchUp(endLine); if (endLine) this.catchUp(endLine);
}
this.tsPrintClassMemberModifiers(node); this.tsPrintClassMemberModifiers(node);
if (node.computed) { if (node.computed) {
this.tokenChar(91); this.tokenChar(91);
@ -154,10 +189,12 @@ function ClassPrivateMethod(node) {
this.print(node.body); this.print(node.body);
} }
function _classMethodHead(node) { function _classMethodHead(node) {
var _node$key$loc3;
this.printJoin(node.decorators); this.printJoin(node.decorators);
if (!this.format.preserveFormat) {
var _node$key$loc3;
const endLine = (_node$key$loc3 = node.key.loc) == null || (_node$key$loc3 = _node$key$loc3.end) == null ? void 0 : _node$key$loc3.line; const endLine = (_node$key$loc3 = node.key.loc) == null || (_node$key$loc3 = _node$key$loc3.end) == null ? void 0 : _node$key$loc3.line;
if (endLine) this.catchUp(endLine); if (endLine) this.catchUp(endLine);
}
this.tsPrintClassMemberModifiers(node); this.tsPrintClassMemberModifiers(node);
this._methodHead(node); this._methodHead(node);
} }

File diff suppressed because one or more lines are too long

View file

@ -36,7 +36,8 @@ const {
isCallExpression, isCallExpression,
isLiteral, isLiteral,
isMemberExpression, isMemberExpression,
isNewExpression isNewExpression,
isPattern
} = _t; } = _t;
function UnaryExpression(node) { function UnaryExpression(node) {
const { const {
@ -61,7 +62,9 @@ function DoExpression(node) {
} }
function ParenthesizedExpression(node) { function ParenthesizedExpression(node) {
this.tokenChar(40); this.tokenChar(40);
const exit = this.enterDelimited();
this.print(node.expression); this.print(node.expression);
exit();
this.rightParens(node); this.rightParens(node);
} }
function UpdateExpression(node) { function UpdateExpression(node) {
@ -69,7 +72,7 @@ function UpdateExpression(node) {
this.token(node.operator); this.token(node.operator);
this.print(node.argument); this.print(node.argument);
} else { } else {
this.printTerminatorless(node.argument, true); this.print(node.argument, true);
this.token(node.operator); this.token(node.operator);
} }
} }
@ -98,9 +101,14 @@ function NewExpression(node, parent) {
if (node.optional) { if (node.optional) {
this.token("?."); this.token("?.");
} }
if (node.arguments.length === 0 && this.tokenMap && !this.tokenMap.endMatches(node, ")")) {
return;
}
this.tokenChar(40); this.tokenChar(40);
const exit = this.enterForStatementInit(false); const exit = this.enterDelimited();
this.printList(node.arguments); this.printList(node.arguments, {
printTrailingSeparator: this.shouldPrintTrailingComma(")")
});
exit(); exit();
this.rightParens(node); this.rightParens(node);
} }
@ -161,7 +169,7 @@ function OptionalCallExpression(node) {
} }
this.print(node.typeArguments); this.print(node.typeArguments);
this.tokenChar(40); this.tokenChar(40);
const exit = this.enterForStatementInit(false); const exit = this.enterDelimited();
this.printList(node.arguments); this.printList(node.arguments);
exit(); exit();
this.rightParens(node); this.rightParens(node);
@ -171,8 +179,10 @@ function CallExpression(node) {
this.print(node.typeArguments); this.print(node.typeArguments);
this.print(node.typeParameters); this.print(node.typeParameters);
this.tokenChar(40); this.tokenChar(40);
const exit = this.enterForStatementInit(false); const exit = this.enterDelimited();
this.printList(node.arguments); this.printList(node.arguments, {
printTrailingSeparator: this.shouldPrintTrailingComma(")")
});
exit(); exit();
this.rightParens(node); this.rightParens(node);
} }
@ -183,7 +193,7 @@ function AwaitExpression(node) {
this.word("await"); this.word("await");
if (node.argument) { if (node.argument) {
this.space(); this.space();
this.printTerminatorless(node.argument, false); this.printTerminatorless(node.argument);
} }
} }
function YieldExpression(node) { function YieldExpression(node) {
@ -197,7 +207,7 @@ function YieldExpression(node) {
} else { } else {
if (node.argument) { if (node.argument) {
this.space(); this.space();
this.printTerminatorless(node.argument, false); this.printTerminatorless(node.argument);
} }
} }
} }
@ -211,7 +221,7 @@ function ExpressionStatement(node) {
} }
function AssignmentPattern(node) { function AssignmentPattern(node) {
this.print(node.left); this.print(node.left);
if (node.left.type === "Identifier") { if (node.left.type === "Identifier" || isPattern(node.left)) {
if (node.left.optional) this.tokenChar(63); if (node.left.optional) this.tokenChar(63);
this.print(node.left.typeAnnotation); this.print(node.left.typeAnnotation);
} }
@ -247,7 +257,7 @@ function MemberExpression(node) {
computed = true; computed = true;
} }
if (computed) { if (computed) {
const exit = this.enterForStatementInit(false); const exit = this.enterDelimited();
this.tokenChar(91); this.tokenChar(91);
this.print(node.property); this.print(node.property);
this.tokenChar(93); this.tokenChar(93);

File diff suppressed because one or more lines are too long

View file

@ -399,9 +399,9 @@ function InterfaceDeclaration(node) {
this.space(); this.space();
this._interfaceish(node); this._interfaceish(node);
} }
function andSeparator() { function andSeparator(occurrenceCount) {
this.space(); this.space();
this.tokenChar(38); this.token("&", false, occurrenceCount);
this.space(); this.space();
} }
function InterfaceTypeAnnotation(node) { function InterfaceTypeAnnotation(node) {
@ -624,9 +624,9 @@ function QualifiedTypeIdentifier(node) {
function SymbolTypeAnnotation() { function SymbolTypeAnnotation() {
this.word("symbol"); this.word("symbol");
} }
function orSeparator() { function orSeparator(occurrenceCount) {
this.space(); this.space();
this.tokenChar(124); this.token("|", false, occurrenceCount);
this.space(); this.space();
} }
function UnionTypeAnnotation(node) { function UnionTypeAnnotation(node) {

File diff suppressed because one or more lines are too long

View file

@ -89,13 +89,13 @@ function JSXOpeningElement(node) {
} }
if (node.selfClosing) { if (node.selfClosing) {
this.space(); this.space();
this.token("/>"); this.tokenChar(47);
} else { }
this.tokenChar(62); this.tokenChar(62);
} }
}
function JSXClosingElement(node) { function JSXClosingElement(node) {
this.token("</"); this.tokenChar(60);
this.tokenChar(47);
this.print(node.name); this.print(node.name);
this.tokenChar(62); this.tokenChar(62);
} }

File diff suppressed because one or more lines are too long

View file

@ -11,6 +11,7 @@ exports._param = _param;
exports._parameters = _parameters; exports._parameters = _parameters;
exports._params = _params; exports._params = _params;
exports._predicate = _predicate; exports._predicate = _predicate;
exports._shouldPrintArrowParamsParens = _shouldPrintArrowParamsParens;
var _t = require("@babel/types"); var _t = require("@babel/types");
var _index = require("../node/index.js"); var _index = require("../node/index.js");
const { const {
@ -23,22 +24,23 @@ function _params(node, idNode, parentNode) {
this.sourceIdentifierName(nameInfo.name, nameInfo.pos); this.sourceIdentifierName(nameInfo.name, nameInfo.pos);
} }
this.tokenChar(40); this.tokenChar(40);
this._parameters(node.params); this._parameters(node.params, ")");
this.tokenChar(41);
const noLineTerminator = node.type === "ArrowFunctionExpression"; const noLineTerminator = node.type === "ArrowFunctionExpression";
this.print(node.returnType, noLineTerminator); this.print(node.returnType, noLineTerminator);
this._noLineTerminator = noLineTerminator; this._noLineTerminator = noLineTerminator;
} }
function _parameters(parameters) { function _parameters(parameters, endToken) {
const exit = this.enterForStatementInit(false); const exit = this.enterDelimited();
const trailingComma = this.shouldPrintTrailingComma(endToken);
const paramLength = parameters.length; const paramLength = parameters.length;
for (let i = 0; i < paramLength; i++) { for (let i = 0; i < paramLength; i++) {
this._param(parameters[i]); this._param(parameters[i]);
if (i < parameters.length - 1) { if (trailingComma || i < paramLength - 1) {
this.tokenChar(44); this.token(",", null, i);
this.space(); this.space();
} }
} }
this.token(endToken);
exit(); exit();
} }
function _param(parameter) { function _param(parameter) {
@ -89,12 +91,16 @@ function _predicate(node, noLineTerminatorAfter) {
function _functionHead(node, parent) { function _functionHead(node, parent) {
if (node.async) { if (node.async) {
this.word("async"); this.word("async");
if (!this.format.preserveFormat) {
this._endsWithInnerRaw = false; this._endsWithInnerRaw = false;
}
this.space(); this.space();
} }
this.word("function"); this.word("function");
if (node.generator) { if (node.generator) {
if (!this.format.preserveFormat) {
this._endsWithInnerRaw = false; this._endsWithInnerRaw = false;
}
this.tokenChar(42); this.tokenChar(42);
} }
this.space(); this.space();
@ -116,11 +122,10 @@ function ArrowFunctionExpression(node, parent) {
this.word("async", true); this.word("async", true);
this.space(); this.space();
} }
let firstParam; if (this._shouldPrintArrowParamsParens(node)) {
if (!this.format.retainLines && node.params.length === 1 && isIdentifier(firstParam = node.params[0]) && !hasTypesOrComments(node, firstParam)) {
this.print(firstParam, true);
} else {
this._params(node, undefined, parent); this._params(node, undefined, parent);
} else {
this.print(node.params[0], true);
} }
this._predicate(node, true); this._predicate(node, true);
this.space(); this.space();
@ -130,9 +135,25 @@ function ArrowFunctionExpression(node, parent) {
this.tokenContext |= _index.TokenContext.arrowBody; this.tokenContext |= _index.TokenContext.arrowBody;
this.print(node.body); this.print(node.body);
} }
function hasTypesOrComments(node, param) { function _shouldPrintArrowParamsParens(node) {
var _param$leadingComment, _param$trailingCommen; var _firstParam$leadingCo, _firstParam$trailingC;
return !!(node.typeParameters || node.returnType || node.predicate || param.typeAnnotation || param.optional || (_param$leadingComment = param.leadingComments) != null && _param$leadingComment.length || (_param$trailingCommen = param.trailingComments) != null && _param$trailingCommen.length); if (node.params.length !== 1) return true;
if (node.typeParameters || node.returnType || node.predicate) {
return true;
}
const firstParam = node.params[0];
if (!isIdentifier(firstParam) || firstParam.typeAnnotation || firstParam.optional || (_firstParam$leadingCo = firstParam.leadingComments) != null && _firstParam$leadingCo.length || (_firstParam$trailingC = firstParam.trailingComments) != null && _firstParam$trailingC.length) {
return true;
}
if (this.tokenMap) {
if (node.loc == null) return true;
if (this.tokenMap.findMatching(node, "(") !== null) return true;
const arrowToken = this.tokenMap.findMatching(node, "=>");
if ((arrowToken == null ? void 0 : arrowToken.loc) == null) return true;
return arrowToken.loc.start.line !== node.loc.start.line;
}
if (this.format.retainLines) return true;
return false;
} }
function _getFuncIdName(idNode, parent) { function _getFuncIdName(idNode, parent) {
let id = idNode; let id = idNode;

File diff suppressed because one or more lines are too long

View file

@ -66,7 +66,7 @@ function ExportNamespaceSpecifier(node) {
this.print(node.exported); this.print(node.exported);
} }
let warningShown = false; let warningShown = false;
function _printAttributes(node) { function _printAttributes(node, hasPreviousBrace) {
const { const {
importAttributesKeyword importAttributesKeyword
} = this.format; } = this.format;
@ -91,11 +91,14 @@ Please specify the "importAttributesKeyword" generator option, whose value can b
this.printList(attributes || assertions); this.printList(attributes || assertions);
return; return;
} }
this.tokenChar(123); const occurrenceCount = hasPreviousBrace ? 1 : 0;
this.token("{", null, occurrenceCount);
this.space(); this.space();
this.printList(attributes || assertions); this.printList(attributes || assertions, {
printTrailingSeparator: this.shouldPrintTrailingComma("}")
});
this.space(); this.space();
this.tokenChar(125); this.token("}", null, occurrenceCount);
} }
function ExportAllDeclaration(node) { function ExportAllDeclaration(node) {
var _node$attributes, _node$assertions; var _node$attributes, _node$assertions;
@ -112,7 +115,7 @@ function ExportAllDeclaration(node) {
if ((_node$attributes = node.attributes) != null && _node$attributes.length || (_node$assertions = node.assertions) != null && _node$assertions.length) { if ((_node$attributes = node.attributes) != null && _node$attributes.length || (_node$assertions = node.assertions) != null && _node$assertions.length) {
this.print(node.source, true); this.print(node.source, true);
this.space(); this.space();
this._printAttributes(node); this._printAttributes(node, false);
} else { } else {
this.print(node.source); this.print(node.source);
} }
@ -151,11 +154,15 @@ function ExportNamedDeclaration(node) {
break; break;
} }
} }
let hasBrace = false;
if (specifiers.length || !specifiers.length && !hasSpecial) { if (specifiers.length || !specifiers.length && !hasSpecial) {
hasBrace = true;
this.tokenChar(123); this.tokenChar(123);
if (specifiers.length) { if (specifiers.length) {
this.space(); this.space();
this.printList(specifiers); this.printList(specifiers, {
printTrailingSeparator: this.shouldPrintTrailingComma("}")
});
this.space(); this.space();
} }
this.tokenChar(125); this.tokenChar(125);
@ -168,7 +175,7 @@ function ExportNamedDeclaration(node) {
if ((_node$attributes2 = node.attributes) != null && _node$attributes2.length || (_node$assertions2 = node.assertions) != null && _node$assertions2.length) { if ((_node$attributes2 = node.attributes) != null && _node$attributes2.length || (_node$assertions2 = node.assertions) != null && _node$assertions2.length) {
this.print(node.source, true); this.print(node.source, true);
this.space(); this.space();
this._printAttributes(node); this._printAttributes(node, hasBrace);
} else { } else {
this.print(node.source); this.print(node.source);
} }
@ -220,13 +227,18 @@ function ImportDeclaration(node) {
break; break;
} }
} }
let hasBrace = false;
if (specifiers.length) { if (specifiers.length) {
hasBrace = true;
this.tokenChar(123); this.tokenChar(123);
this.space(); this.space();
this.printList(specifiers); this.printList(specifiers, {
printTrailingSeparator: this.shouldPrintTrailingComma("}")
});
this.space(); this.space();
this.tokenChar(125); this.tokenChar(125);
} else if (isTypeKind && !hasSpecifiers) { } else if (isTypeKind && !hasSpecifiers) {
hasBrace = true;
this.tokenChar(123); this.tokenChar(123);
this.tokenChar(125); this.tokenChar(125);
} }
@ -238,7 +250,7 @@ function ImportDeclaration(node) {
if ((_node$attributes3 = node.attributes) != null && _node$attributes3.length || (_node$assertions3 = node.assertions) != null && _node$assertions3.length) { if ((_node$attributes3 = node.attributes) != null && _node$attributes3.length || (_node$assertions3 = node.assertions) != null && _node$assertions3.length) {
this.print(node.source, true); this.print(node.source, true);
this.space(); this.space();
this._printAttributes(node); this._printAttributes(node, hasBrace);
} else { } else {
this.print(node.source); this.print(node.source);
} }

File diff suppressed because one or more lines are too long

View file

@ -77,7 +77,7 @@ function ForStatement(node) {
this.space(); this.space();
this.tokenChar(40); this.tokenChar(40);
{ {
const exit = this.enterForStatementInit(true); const exit = this.enterForStatementInit();
this.tokenContext |= _index.TokenContext.forHead; this.tokenContext |= _index.TokenContext.forHead;
this.print(node.init); this.print(node.init);
exit(); exit();
@ -87,7 +87,7 @@ function ForStatement(node) {
this.space(); this.space();
this.print(node.test); this.print(node.test);
} }
this.tokenChar(59); this.token(";", false, 1);
if (node.update) { if (node.update) {
this.space(); this.space();
this.print(node.update); this.print(node.update);
@ -114,7 +114,7 @@ function ForXStatement(node) {
this.noIndentInnerCommentsHere(); this.noIndentInnerCommentsHere();
this.tokenChar(40); this.tokenChar(40);
{ {
const exit = isForOf ? null : this.enterForStatementInit(true); const exit = isForOf ? null : this.enterForStatementInit();
this.tokenContext |= isForOf ? _index.TokenContext.forOfHead : _index.TokenContext.forInHead; this.tokenContext |= isForOf ? _index.TokenContext.forOfHead : _index.TokenContext.forInHead;
this.print(node.left); this.print(node.left);
exit == null || exit(); exit == null || exit();
@ -140,28 +140,28 @@ function DoWhileStatement(node) {
this.tokenChar(41); this.tokenChar(41);
this.semicolon(); this.semicolon();
} }
function printStatementAfterKeyword(printer, node, isLabel) { function printStatementAfterKeyword(printer, node) {
if (node) { if (node) {
printer.space(); printer.space();
printer.printTerminatorless(node, isLabel); printer.printTerminatorless(node);
} }
printer.semicolon(); printer.semicolon();
} }
function BreakStatement(node) { function BreakStatement(node) {
this.word("break"); this.word("break");
printStatementAfterKeyword(this, node.label, true); printStatementAfterKeyword(this, node.label);
} }
function ContinueStatement(node) { function ContinueStatement(node) {
this.word("continue"); this.word("continue");
printStatementAfterKeyword(this, node.label, true); printStatementAfterKeyword(this, node.label);
} }
function ReturnStatement(node) { function ReturnStatement(node) {
this.word("return"); this.word("return");
printStatementAfterKeyword(this, node.argument, false); printStatementAfterKeyword(this, node.argument);
} }
function ThrowStatement(node) { function ThrowStatement(node) {
this.word("throw"); this.word("throw");
printStatementAfterKeyword(this, node.argument, false); printStatementAfterKeyword(this, node.argument);
} }
function LabeledStatement(node) { function LabeledStatement(node) {
this.print(node.label); this.print(node.label);
@ -260,8 +260,8 @@ function VariableDeclaration(node, parent) {
} }
} }
this.printList(node.declarations, { this.printList(node.declarations, {
separator: hasInits ? function () { separator: hasInits ? function (occurrenceCount) {
this.tokenChar(44); this.token(",", false, occurrenceCount);
this.newline(); this.newline();
} : undefined, } : undefined,
indent: node.declarations.length > 1 ? true : false indent: node.declarations.length > 1 ? true : false

File diff suppressed because one or more lines are too long

View file

@ -23,6 +23,10 @@ function TemplateLiteral(node) {
this.token(partRaw + "${", true); this.token(partRaw + "${", true);
this.print(node.expressions[i]); this.print(node.expressions[i]);
partRaw = "}"; partRaw = "}";
if (this.tokenMap) {
const token = this.tokenMap.findMatching(node, "}", i);
if (token) this._catchUpTo(token.loc.start);
}
} }
} }
this.token(partRaw + "`", true); this.token(partRaw + "`", true);

View file

@ -1 +1 @@
{"version":3,"names":["TaggedTemplateExpression","node","print","tag","typeParameters","quasi","TemplateElement","Error","TemplateLiteral","quasis","partRaw","i","length","value","raw","token","expressions"],"sources":["../../src/generators/template-literals.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function TaggedTemplateExpression(\n this: Printer,\n node: t.TaggedTemplateExpression,\n) {\n this.print(node.tag);\n this.print(node.typeParameters); // TS\n this.print(node.quasi);\n}\n\nexport function TemplateElement(this: Printer) {\n throw new Error(\"TemplateElement printing is handled in TemplateLiteral\");\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n const quasis = node.quasis;\n\n let partRaw = \"`\";\n\n for (let i = 0; i < quasis.length; i++) {\n partRaw += quasis[i].value.raw;\n\n if (i + 1 < quasis.length) {\n this.token(partRaw + \"${\", true);\n this.print(node.expressions[i]);\n partRaw = \"}\";\n }\n }\n\n this.token(partRaw + \"`\", true);\n}\n"],"mappings":";;;;;;;;AAGO,SAASA,wBAAwBA,CAEtCC,IAAgC,EAChC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAAC;EACpB,IAAI,CAACD,KAAK,CAACD,IAAI,CAACG,cAAc,CAAC;EAC/B,IAAI,CAACF,KAAK,CAACD,IAAI,CAACI,KAAK,CAAC;AACxB;AAEO,SAASC,eAAeA,CAAA,EAAgB;EAC7C,MAAM,IAAIC,KAAK,CAAC,wDAAwD,CAAC;AAC3E;AAEO,SAASC,eAAeA,CAAgBP,IAAuB,EAAE;EACtE,MAAMQ,MAAM,GAAGR,IAAI,CAACQ,MAAM;EAE1B,IAAIC,OAAO,GAAG,GAAG;EAEjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACtCD,OAAO,IAAID,MAAM,CAACE,CAAC,CAAC,CAACE,KAAK,CAACC,GAAG;IAE9B,IAAIH,CAAC,GAAG,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAE;MACzB,IAAI,CAACG,KAAK,CAACL,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC;MAChC,IAAI,CAACR,KAAK,CAACD,IAAI,CAACe,WAAW,CAACL,CAAC,CAAC,CAAC;MAC/BD,OAAO,GAAG,GAAG;IACf;EACF;EAEA,IAAI,CAACK,KAAK,CAACL,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC;AACjC","ignoreList":[]} {"version":3,"names":["TaggedTemplateExpression","node","print","tag","typeParameters","quasi","TemplateElement","Error","TemplateLiteral","quasis","partRaw","i","length","value","raw","token","expressions","tokenMap","findMatching","_catchUpTo","loc","start"],"sources":["../../src/generators/template-literals.ts"],"sourcesContent":["import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function TaggedTemplateExpression(\n this: Printer,\n node: t.TaggedTemplateExpression,\n) {\n this.print(node.tag);\n this.print(node.typeParameters); // TS\n this.print(node.quasi);\n}\n\nexport function TemplateElement(this: Printer) {\n throw new Error(\"TemplateElement printing is handled in TemplateLiteral\");\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n const quasis = node.quasis;\n\n let partRaw = \"`\";\n\n for (let i = 0; i < quasis.length; i++) {\n partRaw += quasis[i].value.raw;\n\n if (i + 1 < quasis.length) {\n this.token(partRaw + \"${\", true);\n this.print(node.expressions[i]);\n partRaw = \"}\";\n\n // In Babel 7 we have indivirual tokens for ${ and }, so the automatic\n // catchup logic does not work. Manually look for those tokens.\n if (!process.env.BABEL_8_BREAKING && this.tokenMap) {\n const token = this.tokenMap.findMatching(node, \"}\", i);\n if (token) this._catchUpTo(token.loc.start);\n }\n }\n }\n\n this.token(partRaw + \"`\", true);\n}\n"],"mappings":";;;;;;;;AAGO,SAASA,wBAAwBA,CAEtCC,IAAgC,EAChC;EACA,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,GAAG,CAAC;EACpB,IAAI,CAACD,KAAK,CAACD,IAAI,CAACG,cAAc,CAAC;EAC/B,IAAI,CAACF,KAAK,CAACD,IAAI,CAACI,KAAK,CAAC;AACxB;AAEO,SAASC,eAAeA,CAAA,EAAgB;EAC7C,MAAM,IAAIC,KAAK,CAAC,wDAAwD,CAAC;AAC3E;AAEO,SAASC,eAAeA,CAAgBP,IAAuB,EAAE;EACtE,MAAMQ,MAAM,GAAGR,IAAI,CAACQ,MAAM;EAE1B,IAAIC,OAAO,GAAG,GAAG;EAEjB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACtCD,OAAO,IAAID,MAAM,CAACE,CAAC,CAAC,CAACE,KAAK,CAACC,GAAG;IAE9B,IAAIH,CAAC,GAAG,CAAC,GAAGF,MAAM,CAACG,MAAM,EAAE;MACzB,IAAI,CAACG,KAAK,CAACL,OAAO,GAAG,IAAI,EAAE,IAAI,CAAC;MAChC,IAAI,CAACR,KAAK,CAACD,IAAI,CAACe,WAAW,CAACL,CAAC,CAAC,CAAC;MAC/BD,OAAO,GAAG,GAAG;MAIb,IAAqC,IAAI,CAACO,QAAQ,EAAE;QAClD,MAAMF,KAAK,GAAG,IAAI,CAACE,QAAQ,CAACC,YAAY,CAACjB,IAAI,EAAE,GAAG,EAAEU,CAAC,CAAC;QACtD,IAAII,KAAK,EAAE,IAAI,CAACI,UAAU,CAACJ,KAAK,CAACK,GAAG,CAACC,KAAK,CAAC;MAC7C;IACF;EACF;EAEA,IAAI,CAACN,KAAK,CAACL,OAAO,GAAG,GAAG,EAAE,IAAI,CAAC;AACjC","ignoreList":[]}

View file

@ -23,16 +23,32 @@ exports.SpreadElement = exports.RestElement = RestElement;
exports.StringLiteral = StringLiteral; exports.StringLiteral = StringLiteral;
exports.TopicReference = TopicReference; exports.TopicReference = TopicReference;
exports.TupleExpression = TupleExpression; exports.TupleExpression = TupleExpression;
exports._getRawIdentifier = _getRawIdentifier;
var _t = require("@babel/types"); var _t = require("@babel/types");
var _jsesc = require("jsesc"); var _jsesc = require("jsesc");
const { const {
isAssignmentPattern, isAssignmentPattern,
isIdentifier isIdentifier
} = _t; } = _t;
let lastRawIdentNode = null;
let lastRawIdentResult = "";
function _getRawIdentifier(node) {
if (node === lastRawIdentNode) return lastRawIdentResult;
lastRawIdentNode = node;
const {
name
} = node;
const token = this.tokenMap.find(node, tok => tok.value === name);
if (token) {
lastRawIdentResult = this._originalCode.slice(token.start, token.end);
return lastRawIdentResult;
}
return lastRawIdentResult = node.name;
}
function Identifier(node) { function Identifier(node) {
var _node$loc; var _node$loc;
this.sourceIdentifierName(((_node$loc = node.loc) == null ? void 0 : _node$loc.identifierName) || node.name); this.sourceIdentifierName(((_node$loc = node.loc) == null ? void 0 : _node$loc.identifierName) || node.name);
this.word(node.name); this.word(this.tokenMap ? this._getRawIdentifier(node) : node.name);
} }
function ArgumentPlaceholder() { function ArgumentPlaceholder() {
this.tokenChar(63); this.tokenChar(63);
@ -45,11 +61,12 @@ function ObjectExpression(node) {
const props = node.properties; const props = node.properties;
this.tokenChar(123); this.tokenChar(123);
if (props.length) { if (props.length) {
const exit = this.enterForStatementInit(false); const exit = this.enterDelimited();
this.space(); this.space();
this.printList(props, { this.printList(props, {
indent: true, indent: true,
statement: true statement: true,
printTrailingSeparator: this.shouldPrintTrailingComma("}")
}); });
this.space(); this.space();
exit(); exit();
@ -87,15 +104,17 @@ function ArrayExpression(node) {
const elems = node.elements; const elems = node.elements;
const len = elems.length; const len = elems.length;
this.tokenChar(91); this.tokenChar(91);
const exit = this.enterForStatementInit(false); const exit = this.enterDelimited();
for (let i = 0; i < elems.length; i++) { for (let i = 0; i < elems.length; i++) {
const elem = elems[i]; const elem = elems[i];
if (elem) { if (elem) {
if (i > 0) this.space(); if (i > 0) this.space();
this.print(elem); this.print(elem);
if (i < len - 1) this.tokenChar(44); if (i < len - 1 || this.shouldPrintTrailingComma("]")) {
this.token(",", false, i);
}
} else { } else {
this.tokenChar(44); this.token(",", false, i);
} }
} }
exit(); exit();
@ -121,7 +140,8 @@ function RecordExpression(node) {
this.space(); this.space();
this.printList(props, { this.printList(props, {
indent: true, indent: true,
statement: true statement: true,
printTrailingSeparator: this.shouldPrintTrailingComma(endToken)
}); });
this.space(); this.space();
} }
@ -149,7 +169,9 @@ function TupleExpression(node) {
if (elem) { if (elem) {
if (i > 0) this.space(); if (i > 0) this.space();
this.print(elem); this.print(elem);
if (i < len - 1) this.tokenChar(44); if (i < len - 1 || this.shouldPrintTrailingComma(endToken)) {
this.token(",", false, i);
}
} }
} }
this.token(endToken); this.token(endToken);

File diff suppressed because one or more lines are too long

View file

@ -9,6 +9,7 @@ exports.TSSatisfiesExpression = exports.TSAsExpression = TSTypeExpression;
exports.TSBigIntKeyword = TSBigIntKeyword; exports.TSBigIntKeyword = TSBigIntKeyword;
exports.TSBooleanKeyword = TSBooleanKeyword; exports.TSBooleanKeyword = TSBooleanKeyword;
exports.TSCallSignatureDeclaration = TSCallSignatureDeclaration; exports.TSCallSignatureDeclaration = TSCallSignatureDeclaration;
exports.TSInterfaceHeritage = exports.TSExpressionWithTypeArguments = exports.TSClassImplements = TSClassImplements;
exports.TSConditionalType = TSConditionalType; exports.TSConditionalType = TSConditionalType;
exports.TSConstructSignatureDeclaration = TSConstructSignatureDeclaration; exports.TSConstructSignatureDeclaration = TSConstructSignatureDeclaration;
exports.TSConstructorType = TSConstructorType; exports.TSConstructorType = TSConstructorType;
@ -17,7 +18,6 @@ exports.TSDeclareMethod = TSDeclareMethod;
exports.TSEnumDeclaration = TSEnumDeclaration; exports.TSEnumDeclaration = TSEnumDeclaration;
exports.TSEnumMember = TSEnumMember; exports.TSEnumMember = TSEnumMember;
exports.TSExportAssignment = TSExportAssignment; exports.TSExportAssignment = TSExportAssignment;
exports.TSExpressionWithTypeArguments = TSExpressionWithTypeArguments;
exports.TSExternalModuleReference = TSExternalModuleReference; exports.TSExternalModuleReference = TSExternalModuleReference;
exports.TSFunctionType = TSFunctionType; exports.TSFunctionType = TSFunctionType;
exports.TSImportEqualsDeclaration = TSImportEqualsDeclaration; exports.TSImportEqualsDeclaration = TSImportEqualsDeclaration;
@ -70,19 +70,22 @@ exports.tsPrintClassMemberModifiers = tsPrintClassMemberModifiers;
exports.tsPrintFunctionOrConstructorType = tsPrintFunctionOrConstructorType; exports.tsPrintFunctionOrConstructorType = tsPrintFunctionOrConstructorType;
exports.tsPrintPropertyOrMethodName = tsPrintPropertyOrMethodName; exports.tsPrintPropertyOrMethodName = tsPrintPropertyOrMethodName;
exports.tsPrintSignatureDeclarationBase = tsPrintSignatureDeclarationBase; exports.tsPrintSignatureDeclarationBase = tsPrintSignatureDeclarationBase;
exports.tsPrintTypeLiteralOrInterfaceBody = tsPrintTypeLiteralOrInterfaceBody; function TSTypeAnnotation(node, parent) {
function TSTypeAnnotation(node) { this.token((parent.type === "TSFunctionType" || parent.type === "TSConstructorType") && parent.typeAnnotation === node ? "=>" : ":");
this.tokenChar(58);
this.space(); this.space();
if (node.optional) this.tokenChar(63); if (node.optional) this.tokenChar(63);
this.print(node.typeAnnotation); this.print(node.typeAnnotation);
} }
function TSTypeParameterInstantiation(node, parent) { function TSTypeParameterInstantiation(node, parent) {
this.tokenChar(60); this.tokenChar(60);
this.printList(node.params, {}); let printTrailingSeparator = parent.type === "ArrowFunctionExpression" && node.params.length === 1;
if (parent.type === "ArrowFunctionExpression" && node.params.length === 1) { if (this.tokenMap && node.start != null && node.end != null) {
this.tokenChar(44); printTrailingSeparator && (printTrailingSeparator = !!this.tokenMap.find(node, t => this.tokenMap.matchesOriginal(t, ",")));
printTrailingSeparator || (printTrailingSeparator = this.shouldPrintTrailingComma(">"));
} }
this.printList(node.params, {
printTrailingSeparator
});
this.tokenChar(62); this.tokenChar(62);
} }
function TSTypeParameter(node) { function TSTypeParameter(node) {
@ -138,13 +141,24 @@ function TSQualifiedName(node) {
} }
function TSCallSignatureDeclaration(node) { function TSCallSignatureDeclaration(node) {
this.tsPrintSignatureDeclarationBase(node); this.tsPrintSignatureDeclarationBase(node);
this.semicolon(); maybePrintTrailingCommaOrSemicolon(this, node);
}
function maybePrintTrailingCommaOrSemicolon(printer, node) {
if (!printer.tokenMap || !node.start || !node.end) {
printer.semicolon();
return;
}
if (printer.tokenMap.endMatches(node, ",")) {
printer.token(",");
} else if (printer.tokenMap.endMatches(node, ";")) {
printer.semicolon();
}
} }
function TSConstructSignatureDeclaration(node) { function TSConstructSignatureDeclaration(node) {
this.word("new"); this.word("new");
this.space(); this.space();
this.tsPrintSignatureDeclarationBase(node); this.tsPrintSignatureDeclarationBase(node);
this.semicolon(); maybePrintTrailingCommaOrSemicolon(this, node);
} }
function TSPropertySignature(node) { function TSPropertySignature(node) {
const { const {
@ -156,7 +170,7 @@ function TSPropertySignature(node) {
} }
this.tsPrintPropertyOrMethodName(node); this.tsPrintPropertyOrMethodName(node);
this.print(node.typeAnnotation); this.print(node.typeAnnotation);
this.semicolon(); maybePrintTrailingCommaOrSemicolon(this, node);
} }
function tsPrintPropertyOrMethodName(node) { function tsPrintPropertyOrMethodName(node) {
if (node.computed) { if (node.computed) {
@ -180,7 +194,7 @@ function TSMethodSignature(node) {
} }
this.tsPrintPropertyOrMethodName(node); this.tsPrintPropertyOrMethodName(node);
this.tsPrintSignatureDeclarationBase(node); this.tsPrintSignatureDeclarationBase(node);
this.semicolon(); maybePrintTrailingCommaOrSemicolon(this, node);
} }
function TSIndexSignature(node) { function TSIndexSignature(node) {
const { const {
@ -196,10 +210,9 @@ function TSIndexSignature(node) {
this.space(); this.space();
} }
this.tokenChar(91); this.tokenChar(91);
this._parameters(node.parameters); this._parameters(node.parameters, "]");
this.tokenChar(93);
this.print(node.typeAnnotation); this.print(node.typeAnnotation);
this.semicolon(); maybePrintTrailingCommaOrSemicolon(this, node);
} }
function TSAnyKeyword() { function TSAnyKeyword() {
this.word("any"); this.word("any");
@ -262,17 +275,14 @@ function tsPrintFunctionOrConstructorType(node) {
const parameters = node.parameters; const parameters = node.parameters;
this.print(typeParameters); this.print(typeParameters);
this.tokenChar(40); this.tokenChar(40);
this._parameters(parameters); this._parameters(parameters, ")");
this.tokenChar(41);
this.space();
this.token("=>");
this.space(); this.space();
const returnType = node.typeAnnotation; const returnType = node.typeAnnotation;
this.print(returnType.typeAnnotation); this.print(returnType);
} }
function TSTypeReference(node) { function TSTypeReference(node) {
this.print(node.typeName, true); this.print(node.typeName, !!node.typeParameters);
this.print(node.typeParameters, true); this.print(node.typeParameters);
} }
function TSTypePredicate(node) { function TSTypePredicate(node) {
if (node.asserts) { if (node.asserts) {
@ -296,23 +306,10 @@ function TSTypeQuery(node) {
} }
} }
function TSTypeLiteral(node) { function TSTypeLiteral(node) {
this.tsPrintTypeLiteralOrInterfaceBody(node.members, node); printBraced(this, node, () => this.printJoin(node.members, {
} indent: true,
function tsPrintTypeLiteralOrInterfaceBody(members, node) { statement: true
tsPrintBraced(this, members, node); }));
}
function tsPrintBraced(printer, members, node) {
printer.token("{");
if (members.length) {
printer.indent();
printer.newline();
for (const member of members) {
printer.print(member);
printer.newline();
}
printer.dedent();
}
printer.rightBrace(node);
} }
function TSArrayType(node) { function TSArrayType(node) {
this.print(node.elementType, true); this.print(node.elementType, true);
@ -321,7 +318,9 @@ function TSArrayType(node) {
} }
function TSTupleType(node) { function TSTupleType(node) {
this.tokenChar(91); this.tokenChar(91);
this.printList(node.elementTypes); this.printList(node.elementTypes, {
printTrailingSeparator: this.shouldPrintTrailingComma("]")
});
this.tokenChar(93); this.tokenChar(93);
} }
function TSOptionalType(node) { function TSOptionalType(node) {
@ -346,10 +345,16 @@ function TSIntersectionType(node) {
tsPrintUnionOrIntersectionType(this, node, "&"); tsPrintUnionOrIntersectionType(this, node, "&");
} }
function tsPrintUnionOrIntersectionType(printer, node, sep) { function tsPrintUnionOrIntersectionType(printer, node, sep) {
var _printer$tokenMap;
let hasLeadingToken = 0;
if ((_printer$tokenMap = printer.tokenMap) != null && _printer$tokenMap.startMatches(node, sep)) {
hasLeadingToken = 1;
printer.token(sep);
}
printer.printJoin(node.types, { printer.printJoin(node.types, {
separator() { separator(i) {
this.space(); this.space();
this.token(sep); this.token(sep, null, i + hasLeadingToken);
this.space(); this.space();
} }
}); });
@ -370,8 +375,7 @@ function TSConditionalType(node) {
this.print(node.falseType); this.print(node.falseType);
} }
function TSInferType(node) { function TSInferType(node) {
this.token("infer"); this.word("infer");
this.space();
this.print(node.typeParameter); this.print(node.typeParameter);
} }
function TSParenthesizedType(node) { function TSParenthesizedType(node) {
@ -398,6 +402,7 @@ function TSMappedType(node) {
typeAnnotation typeAnnotation
} = node; } = node;
this.tokenChar(123); this.tokenChar(123);
const exit = this.enterDelimited();
this.space(); this.space();
if (readonly) { if (readonly) {
tokenIfPlusMinus(this, readonly); tokenIfPlusMinus(this, readonly);
@ -431,6 +436,7 @@ function TSMappedType(node) {
this.print(typeAnnotation); this.print(typeAnnotation);
} }
this.space(); this.space();
exit();
this.tokenChar(125); this.tokenChar(125);
} }
function tokenIfPlusMinus(self, tok) { function tokenIfPlusMinus(self, tok) {
@ -441,7 +447,7 @@ function tokenIfPlusMinus(self, tok) {
function TSLiteralType(node) { function TSLiteralType(node) {
this.print(node.literal); this.print(node.literal);
} }
function TSExpressionWithTypeArguments(node) { function TSClassImplements(node) {
this.print(node.expression); this.print(node.expression);
this.print(node.typeParameters); this.print(node.typeParameters);
} }
@ -471,7 +477,10 @@ function TSInterfaceDeclaration(node) {
this.print(body); this.print(body);
} }
function TSInterfaceBody(node) { function TSInterfaceBody(node) {
this.tsPrintTypeLiteralOrInterfaceBody(node.body, node); printBraced(this, node, () => this.printJoin(node.body, {
indent: true,
statement: true
}));
} }
function TSTypeAliasDeclaration(node) { function TSTypeAliasDeclaration(node) {
const { const {
@ -495,14 +504,12 @@ function TSTypeAliasDeclaration(node) {
this.semicolon(); this.semicolon();
} }
function TSTypeExpression(node) { function TSTypeExpression(node) {
var _expression$trailingC;
const { const {
type, type,
expression, expression,
typeAnnotation typeAnnotation
} = node; } = node;
const forceParens = (_expression$trailingC = expression.trailingComments) == null ? void 0 : _expression$trailingC.some(c => c.type === "CommentLine" || /[\r\n\u2028\u2029]/.test(c.value)); this.print(expression, true);
this.print(expression, true, undefined, forceParens);
this.space(); this.space();
this.word(type === "TSAsExpression" ? "as" : "satisfies"); this.word(type === "TSAsExpression" ? "as" : "satisfies");
this.space(); this.space();
@ -542,7 +549,14 @@ function TSEnumDeclaration(node) {
this.space(); this.space();
this.print(id); this.print(id);
this.space(); this.space();
tsPrintBraced(this, members, node); printBraced(this, node, () => {
var _this$shouldPrintTrai;
return this.printList(members, {
indent: true,
statement: true,
printTrailingSeparator: (_this$shouldPrintTrai = this.shouldPrintTrailingComma("}")) != null ? _this$shouldPrintTrai : true
});
});
} }
function TSEnumMember(node) { function TSEnumMember(node) {
const { const {
@ -556,19 +570,19 @@ function TSEnumMember(node) {
this.space(); this.space();
this.print(initializer); this.print(initializer);
} }
this.tokenChar(44);
} }
function TSModuleDeclaration(node) { function TSModuleDeclaration(node) {
const { const {
declare, declare,
id id,
kind
} = node; } = node;
if (declare) { if (declare) {
this.word("declare"); this.word("declare");
this.space(); this.space();
} }
if (!node.global) { if (!node.global) {
this.word(id.type === "Identifier" ? "namespace" : "module"); this.word(kind != null ? kind : id.type === "Identifier" ? "namespace" : "module");
this.space(); this.space();
} }
this.print(id); this.print(id);
@ -586,7 +600,9 @@ function TSModuleDeclaration(node) {
this.print(body); this.print(body);
} }
function TSModuleBlock(node) { function TSModuleBlock(node) {
tsPrintBraced(this, node.body, node); printBraced(this, node, () => this.printSequence(node.body, {
indent: true
}));
} }
function TSImportType(node) { function TSImportType(node) {
const { const {
@ -659,36 +675,43 @@ function tsPrintSignatureDeclarationBase(node) {
const parameters = node.parameters; const parameters = node.parameters;
this.print(typeParameters); this.print(typeParameters);
this.tokenChar(40); this.tokenChar(40);
this._parameters(parameters); this._parameters(parameters, ")");
this.tokenChar(41);
const returnType = node.typeAnnotation; const returnType = node.typeAnnotation;
this.print(returnType); this.print(returnType);
} }
function tsPrintClassMemberModifiers(node) { function tsPrintClassMemberModifiers(node) {
const isField = node.type === "ClassAccessorProperty" || node.type === "ClassProperty"; const isField = node.type === "ClassAccessorProperty" || node.type === "ClassProperty";
if (isField && node.declare) { printModifiersList(this, node, [isField && node.declare && "declare", node.accessibility]);
this.word("declare");
this.space();
}
if (node.accessibility) {
this.word(node.accessibility);
this.space();
}
if (node.static) { if (node.static) {
this.word("static"); this.word("static");
this.space(); this.space();
} }
if (node.override) { printModifiersList(this, node, [node.override && "override", node.abstract && "abstract", isField && node.readonly && "readonly"]);
this.word("override");
this.space();
} }
if (node.abstract) { function printBraced(printer, node, cb) {
this.word("abstract"); printer.token("{");
this.space(); const exit = printer.enterDelimited();
cb();
exit();
printer.rightBrace(node);
} }
if (isField && node.readonly) { function printModifiersList(printer, node, modifiers) {
this.word("readonly"); var _printer$tokenMap2;
this.space(); const modifiersSet = new Set();
for (const modifier of modifiers) {
if (modifier) modifiersSet.add(modifier);
}
(_printer$tokenMap2 = printer.tokenMap) == null || _printer$tokenMap2.find(node, tok => {
if (modifiersSet.has(tok.value)) {
printer.token(tok.value);
printer.space();
modifiersSet.delete(tok.value);
return modifiersSet.size === 0;
}
});
for (const modifier of modifiersSet) {
printer.word(modifier);
printer.space();
} }
} }

File diff suppressed because one or more lines are too long

View file

@ -6,11 +6,32 @@ Object.defineProperty(exports, "__esModule", {
exports.default = generate; exports.default = generate;
var _sourceMap = require("./source-map.js"); var _sourceMap = require("./source-map.js");
var _printer = require("./printer.js"); var _printer = require("./printer.js");
function normalizeOptions(code, opts) { function normalizeOptions(code, opts, ast) {
if (opts.experimental_preserveFormat) {
if (typeof code !== "string") {
throw new Error("`experimental_preserveFormat` requires the original `code` to be passed to @babel/generator as a string");
}
if (!opts.retainLines) {
throw new Error("`experimental_preserveFormat` requires `retainLines` to be set to `true`");
}
if (opts.compact && opts.compact !== "auto") {
throw new Error("`experimental_preserveFormat` is not compatible with the `compact` option");
}
if (opts.minified) {
throw new Error("`experimental_preserveFormat` is not compatible with the `minified` option");
}
if (opts.jsescOption) {
throw new Error("`experimental_preserveFormat` is not compatible with the `jsescOption` option");
}
if (!Array.isArray(ast.tokens)) {
throw new Error("`experimental_preserveFormat` requires the AST to have attatched the token of the input code. Make sure to enable the `tokens: true` parser option.");
}
}
const format = { const format = {
auxiliaryCommentBefore: opts.auxiliaryCommentBefore, auxiliaryCommentBefore: opts.auxiliaryCommentBefore,
auxiliaryCommentAfter: opts.auxiliaryCommentAfter, auxiliaryCommentAfter: opts.auxiliaryCommentAfter,
shouldPrintComment: opts.shouldPrintComment, shouldPrintComment: opts.shouldPrintComment,
preserveFormat: opts.experimental_preserveFormat,
retainLines: opts.retainLines, retainLines: opts.retainLines,
retainFunctionParens: opts.retainFunctionParens, retainFunctionParens: opts.retainFunctionParens,
comments: opts.comments == null || opts.comments, comments: opts.comments == null || opts.comments,
@ -47,7 +68,7 @@ function normalizeOptions(code, opts) {
console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`); console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`);
} }
} }
if (format.compact) { if (format.compact || format.preserveFormat) {
format.indent.adjustMultilineComment = false; format.indent.adjustMultilineComment = false;
} }
const { const {
@ -70,7 +91,7 @@ function normalizeOptions(code, opts) {
this._format = void 0; this._format = void 0;
this._map = void 0; this._map = void 0;
this._ast = ast; this._ast = ast;
this._format = normalizeOptions(code, opts); this._format = normalizeOptions(code, opts, ast);
this._map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; this._map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null;
} }
generate() { generate() {
@ -80,9 +101,9 @@ function normalizeOptions(code, opts) {
}; };
} }
function generate(ast, opts = {}, code) { function generate(ast, opts = {}, code) {
const format = normalizeOptions(code, opts); const format = normalizeOptions(code, opts, ast);
const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null;
const printer = new _printer.default(format, map); const printer = new _printer.default(format, map, ast.tokens, typeof code === "string" ? code : null);
return printer.generate(ast); return printer.generate(ast);
} }

File diff suppressed because one or more lines are too long

View file

@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
value: true value: true
}); });
exports.TokenContext = void 0; exports.TokenContext = void 0;
exports.isLastChild = isLastChild;
exports.needsParens = needsParens; exports.needsParens = needsParens;
exports.needsWhitespace = needsWhitespace; exports.needsWhitespace = needsWhitespace;
exports.needsWhitespaceAfter = needsWhitespaceAfter; exports.needsWhitespaceAfter = needsWhitespaceAfter;
@ -13,6 +14,7 @@ var parens = require("./parentheses.js");
var _t = require("@babel/types"); var _t = require("@babel/types");
const { const {
FLIPPED_ALIAS_KEYS, FLIPPED_ALIAS_KEYS,
VISITOR_KEYS,
isCallExpression, isCallExpression,
isDecorator, isDecorator,
isExpressionStatement, isExpressionStatement,
@ -33,9 +35,9 @@ function expandAliases(obj) {
const map = new Map(); const map = new Map();
function add(type, func) { function add(type, func) {
const fn = map.get(type); const fn = map.get(type);
map.set(type, fn ? function (node, parent, stack, inForInit) { map.set(type, fn ? function (node, parent, stack, inForInit, getRawIdentifier) {
var _fn; var _fn;
return (_fn = fn(node, parent, stack, inForInit)) != null ? _fn : func(node, parent, stack, inForInit); return (_fn = fn(node, parent, stack, inForInit, getRawIdentifier)) != null ? _fn : func(node, parent, stack, inForInit, getRawIdentifier);
} : func); } : func);
} }
for (const type of Object.keys(obj)) { for (const type of Object.keys(obj)) {
@ -76,7 +78,7 @@ function needsWhitespaceBefore(node, parent) {
function needsWhitespaceAfter(node, parent) { function needsWhitespaceAfter(node, parent) {
return needsWhitespace(node, parent, 2); return needsWhitespace(node, parent, 2);
} }
function needsParens(node, parent, tokenContext, inForInit) { function needsParens(node, parent, tokenContext, inForInit, getRawIdentifier) {
var _expandedParens$get; var _expandedParens$get;
if (!parent) return false; if (!parent) return false;
if (isNewExpression(parent) && parent.callee === node) { if (isNewExpression(parent) && parent.callee === node) {
@ -85,7 +87,7 @@ function needsParens(node, parent, tokenContext, inForInit) {
if (isDecorator(parent)) { if (isDecorator(parent)) {
return !isDecoratorMemberExpression(node) && !(isCallExpression(node) && isDecoratorMemberExpression(node.callee)) && !isParenthesizedExpression(node); return !isDecoratorMemberExpression(node) && !(isCallExpression(node) && isDecoratorMemberExpression(node.callee)) && !isParenthesizedExpression(node);
} }
return (_expandedParens$get = expandedParens.get(node.type)) == null ? void 0 : _expandedParens$get(node, parent, tokenContext, inForInit); return (_expandedParens$get = expandedParens.get(node.type)) == null ? void 0 : _expandedParens$get(node, parent, tokenContext, inForInit, getRawIdentifier);
} }
function isDecoratorMemberExpression(node) { function isDecoratorMemberExpression(node) {
switch (node.type) { switch (node.type) {
@ -97,5 +99,21 @@ function isDecoratorMemberExpression(node) {
return false; return false;
} }
} }
function isLastChild(parent, child) {
const visitorKeys = VISITOR_KEYS[parent.type];
for (let i = visitorKeys.length - 1; i >= 0; i--) {
const val = parent[visitorKeys[i]];
if (val === child) {
return true;
} else if (Array.isArray(val)) {
let j = val.length - 1;
while (j >= 0 && val[j] === null) j--;
return j >= 0 && val[j] === child;
} else if (val) {
return false;
}
}
return false;
}
//# sourceMappingURL=index.js.map //# sourceMappingURL=index.js.map

File diff suppressed because one or more lines are too long

View file

@ -65,7 +65,8 @@ function NullableTypeAnnotation(node, parent) {
} }
function FunctionTypeAnnotation(node, parent, tokenContext) { function FunctionTypeAnnotation(node, parent, tokenContext) {
const parentType = parent.type; const parentType = parent.type;
return parentType === "UnionTypeAnnotation" || parentType === "IntersectionTypeAnnotation" || parentType === "ArrayTypeAnnotation" || Boolean(tokenContext & _index.TokenContext.arrowFlowReturnType); return (parentType === "UnionTypeAnnotation" || parentType === "IntersectionTypeAnnotation" || parentType === "ArrayTypeAnnotation" || Boolean(tokenContext & _index.TokenContext.arrowFlowReturnType)
);
} }
function UpdateExpression(node, parent) { function UpdateExpression(node, parent) {
return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent); return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent);
@ -189,7 +190,7 @@ function LogicalExpression(node, parent) {
return parent.operator !== "??"; return parent.operator !== "??";
} }
} }
function Identifier(node, parent, tokenContext) { function Identifier(node, parent, tokenContext, _inForInit, getRawIdentifier) {
var _node$extra; var _node$extra;
const parentType = parent.type; const parentType = parent.type;
if ((_node$extra = node.extra) != null && _node$extra.parenthesized && parentType === "AssignmentExpression" && parent.left === node) { if ((_node$extra = node.extra) != null && _node$extra.parenthesized && parentType === "AssignmentExpression" && parent.left === node) {
@ -198,6 +199,9 @@ function Identifier(node, parent, tokenContext) {
return true; return true;
} }
} }
if (getRawIdentifier && getRawIdentifier(node) !== node.name) {
return false;
}
if (node.name === "let") { if (node.name === "let") {
const isFollowedByBracket = isMemberExpression(parent, { const isFollowedByBracket = isMemberExpression(parent, {
object: node, object: node,

File diff suppressed because one or more lines are too long

View file

@ -7,8 +7,10 @@ exports.default = void 0;
var _buffer = require("./buffer.js"); var _buffer = require("./buffer.js");
var n = require("./node/index.js"); var n = require("./node/index.js");
var _t = require("@babel/types"); var _t = require("@babel/types");
var _tokenMap = require("./token-map.js");
var generatorFunctions = require("./generators/index.js"); var generatorFunctions = require("./generators/index.js");
const { const {
isExpression,
isFunction, isFunction,
isStatement, isStatement,
isClassBody, isClassBody,
@ -19,19 +21,24 @@ const SCIENTIFIC_NOTATION = /e/i;
const ZERO_DECIMAL_INTEGER = /\.0+$/; const ZERO_DECIMAL_INTEGER = /\.0+$/;
const HAS_NEWLINE = /[\n\r\u2028\u2029]/; const HAS_NEWLINE = /[\n\r\u2028\u2029]/;
const HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\n\r\u2028\u2029]|\*\//; const HAS_NEWLINE_OR_BlOCK_COMMENT_END = /[\n\r\u2028\u2029]|\*\//;
function commentIsNewline(c) {
return c.type === "CommentLine" || HAS_NEWLINE.test(c.value);
}
const { const {
needsParens needsParens
} = n; } = n;
class Printer { class Printer {
constructor(format, map) { constructor(format, map, tokens, originalCode) {
this.inForStatementInit = false; this.inForStatementInit = false;
this.tokenContext = 0; this.tokenContext = 0;
this._tokens = null;
this._originalCode = null;
this._currentNode = null; this._currentNode = null;
this._indent = 0; this._indent = 0;
this._indentRepeat = 0; this._indentRepeat = 0;
this._insideAux = false; this._insideAux = false;
this._parenPushNewlineState = null;
this._noLineTerminator = false; this._noLineTerminator = false;
this._noLineTerminatorAfterNode = null;
this._printAuxAfterOnNextUserNode = false; this._printAuxAfterOnNextUserNode = false;
this._printedComments = new Set(); this._printedComments = new Set();
this._endsWithInteger = false; this._endsWithInteger = false;
@ -40,39 +47,79 @@ class Printer {
this._lastCommentLine = 0; this._lastCommentLine = 0;
this._endsWithInnerRaw = false; this._endsWithInnerRaw = false;
this._indentInnerComments = true; this._indentInnerComments = true;
this.tokenMap = null;
this._boundGetRawIdentifier = this._getRawIdentifier.bind(this);
this.format = format; this.format = format;
this._tokens = tokens;
this._originalCode = originalCode;
this._indentRepeat = format.indent.style.length; this._indentRepeat = format.indent.style.length;
this._inputMap = map == null ? void 0 : map._inputMap; this._inputMap = map == null ? void 0 : map._inputMap;
this._buf = new _buffer.default(map, format.indent.style[0]); this._buf = new _buffer.default(map, format.indent.style[0]);
} }
enterForStatementInit(val) { enterForStatementInit() {
const old = this.inForStatementInit; if (this.inForStatementInit) return () => {};
if (old === val) return () => {}; this.inForStatementInit = true;
this.inForStatementInit = val;
return () => { return () => {
this.inForStatementInit = old; this.inForStatementInit = false;
};
}
enterDelimited() {
const oldInForStatementInit = this.inForStatementInit;
const oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;
if (oldInForStatementInit === false && oldNoLineTerminatorAfterNode === null) {
return () => {};
}
this.inForStatementInit = false;
this._noLineTerminatorAfterNode = null;
return () => {
this.inForStatementInit = oldInForStatementInit;
this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;
}; };
} }
generate(ast) { generate(ast) {
if (this.format.preserveFormat) {
this.tokenMap = new _tokenMap.TokenMap(ast, this._tokens, this._originalCode);
}
this.print(ast); this.print(ast);
this._maybeAddAuxComment(); this._maybeAddAuxComment();
return this._buf.get(); return this._buf.get();
} }
indent() { indent() {
if (this.format.compact || this.format.concise) return; const {
format
} = this;
if (format.preserveFormat || format.compact || format.concise) {
return;
}
this._indent++; this._indent++;
} }
dedent() { dedent() {
if (this.format.compact || this.format.concise) return; const {
format
} = this;
if (format.preserveFormat || format.compact || format.concise) {
return;
}
this._indent--; this._indent--;
} }
semicolon(force = false) { semicolon(force = false) {
this._maybeAddAuxComment(); this._maybeAddAuxComment();
if (force) { if (force) {
this._appendChar(59); this._appendChar(59);
} else { this._noLineTerminator = false;
this._queue(59); return;
} }
if (this.tokenMap) {
const node = this._currentNode;
if (node.start != null && node.end != null) {
if (!this.tokenMap.endMatches(node, ";")) {
return;
}
const indexes = this.tokenMap.getIndexes(this._currentNode);
this._catchUpTo(this._tokens[indexes[indexes.length - 1]].loc.start);
}
}
this._queue(59);
this._noLineTerminator = false; this._noLineTerminator = false;
} }
rightBrace(node) { rightBrace(node) {
@ -87,7 +134,10 @@ class Printer {
this.tokenChar(41); this.tokenChar(41);
} }
space(force = false) { space(force = false) {
if (this.format.compact) return; const {
format
} = this;
if (format.compact || format.preserveFormat) return;
if (force) { if (force) {
this._space(); this._space();
} else if (this._buf.hasContent()) { } else if (this._buf.hasContent()) {
@ -99,7 +149,7 @@ class Printer {
} }
word(str, noLineTerminatorAfter = false) { word(str, noLineTerminatorAfter = false) {
this.tokenContext = 0; this.tokenContext = 0;
this._maybePrintInnerComments(); this._maybePrintInnerComments(str);
if (this._endsWithWord || this._endsWithDiv && str.charCodeAt(0) === 47) { if (this._endsWithWord || this._endsWithDiv && str.charCodeAt(0) === 47) {
this._space(); this._space();
} }
@ -119,21 +169,21 @@ class Printer {
this.word(str); this.word(str);
this._endsWithInteger = Number.isInteger(number) && !isNonDecimalLiteral(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) { token(str, maybeNewline = false, occurrenceCount = 0) {
this.tokenContext = 0; this.tokenContext = 0;
this._maybePrintInnerComments(); this._maybePrintInnerComments(str, occurrenceCount);
const lastChar = this.getLastChar(); const lastChar = this.getLastChar();
const strFirst = str.charCodeAt(0); const strFirst = str.charCodeAt(0);
if (lastChar === 33 && (str === "--" || strFirst === 61) || strFirst === 43 && lastChar === 43 || strFirst === 45 && lastChar === 45 || strFirst === 46 && this._endsWithInteger) { if (lastChar === 33 && (str === "--" || strFirst === 61) || strFirst === 43 && lastChar === 43 || strFirst === 45 && lastChar === 45 || strFirst === 46 && this._endsWithInteger) {
this._space(); this._space();
} }
this._maybeAddAuxComment(); this._maybeAddAuxComment();
this._append(str, maybeNewline); this._append(str, maybeNewline, occurrenceCount);
this._noLineTerminator = false; this._noLineTerminator = false;
} }
tokenChar(char) { tokenChar(char) {
this.tokenContext = 0; this.tokenContext = 0;
this._maybePrintInnerComments(); this._maybePrintInnerComments(String.fromCharCode(char));
const lastChar = this.getLastChar(); const lastChar = this.getLastChar();
if (char === 43 && lastChar === 43 || char === 45 && lastChar === 45 || char === 46 && this._endsWithInteger) { if (char === 43 && lastChar === 43 || char === 45 && lastChar === 45 || char === 46 && this._endsWithInteger) {
this._space(); this._space();
@ -184,7 +234,7 @@ class Printer {
this._buf.source(prop, loc); this._buf.source(prop, loc);
} }
sourceWithOffset(prop, loc, columnOffset) { sourceWithOffset(prop, loc, columnOffset) {
if (!loc) return; if (!loc || this.format.preserveFormat) return;
this._catchUp(prop, loc); this._catchUp(prop, loc);
this._buf.sourceWithOffset(prop, loc, columnOffset); this._buf.sourceWithOffset(prop, loc, columnOffset);
} }
@ -200,8 +250,11 @@ class Printer {
_newline() { _newline() {
this._queue(10); this._queue(10);
} }
_append(str, maybeNewline) { _append(str, maybeNewline, occurrenceCount = 0) {
this._maybeAddParen(str); if (this.tokenMap) {
const token = this.tokenMap.findMatching(this._currentNode, str, occurrenceCount);
if (token) this._catchUpTo(token.loc.start);
}
this._maybeIndent(str.charCodeAt(0)); this._maybeIndent(str.charCodeAt(0));
this._buf.append(str, maybeNewline); this._buf.append(str, maybeNewline);
this._endsWithWord = false; this._endsWithWord = false;
@ -209,7 +262,10 @@ class Printer {
this._endsWithDiv = false; this._endsWithDiv = false;
} }
_appendChar(char) { _appendChar(char) {
this._maybeAddParenChar(char); if (this.tokenMap) {
const token = this.tokenMap.findMatching(this._currentNode, String.fromCharCode(char));
if (token) this._catchUpTo(token.loc.start);
}
this._maybeIndent(char); this._maybeIndent(char);
this._buf.appendChar(char); this._buf.appendChar(char);
this._endsWithWord = false; this._endsWithWord = false;
@ -217,7 +273,6 @@ class Printer {
this._endsWithDiv = false; this._endsWithDiv = false;
} }
_queue(char) { _queue(char) {
this._maybeAddParenChar(char);
this._maybeIndent(char); this._maybeIndent(char);
this._buf.queue(char); this._buf.queue(char);
this._endsWithWord = false; this._endsWithWord = false;
@ -233,47 +288,6 @@ class Printer {
return true; return true;
} }
} }
_maybeAddParenChar(char) {
const parenPushNewlineState = this._parenPushNewlineState;
if (!parenPushNewlineState) return;
if (char === 32) {
return;
}
if (char !== 10) {
this._parenPushNewlineState = null;
return;
}
this.tokenChar(40);
this.indent();
parenPushNewlineState.printed = true;
}
_maybeAddParen(str) {
const parenPushNewlineState = this._parenPushNewlineState;
if (!parenPushNewlineState) return;
const len = str.length;
let i;
for (i = 0; i < len && str.charCodeAt(i) === 32; i++) continue;
if (i === len) {
return;
}
const cha = str.charCodeAt(i);
if (cha !== 10) {
if (cha !== 47 || i + 1 === len) {
this._parenPushNewlineState = null;
return;
}
const chaPost = str.charCodeAt(i + 1);
if (chaPost === 42) {
return;
} else if (chaPost !== 47) {
this._parenPushNewlineState = null;
return;
}
}
this.tokenChar(40);
this.indent();
parenPushNewlineState.printed = true;
}
catchUp(line) { catchUp(line) {
if (!this.format.retainLines) return; if (!this.format.retainLines) return;
const count = line - this._buf.getCurrentLine(); const count = line - this._buf.getCurrentLine();
@ -282,38 +296,45 @@ class Printer {
} }
} }
_catchUp(prop, loc) { _catchUp(prop, loc) {
var _loc$prop; const {
if (!this.format.retainLines) return; format
const line = loc == null || (_loc$prop = loc[prop]) == null ? void 0 : _loc$prop.line; } = this;
if (line != null) { if (!format.preserveFormat) {
if (format.retainLines && loc != null && loc[prop]) {
this.catchUp(loc[prop].line);
}
return;
}
const pos = loc == null ? void 0 : loc[prop];
if (pos != null) this._catchUpTo(pos);
}
_catchUpTo({
line,
column,
index
}) {
const count = line - this._buf.getCurrentLine(); const count = line - this._buf.getCurrentLine();
if (count > 0 && this._noLineTerminator) {
return;
}
for (let i = 0; i < count; i++) { for (let i = 0; i < count; i++) {
this._newline(); this._newline();
} }
const spacesCount = count > 0 ? column : column - this._buf.getCurrentColumn();
if (spacesCount > 0) {
const spaces = this._originalCode ? this._originalCode.slice(index - spacesCount, index).replace(/[^\t\x0B\f \xA0\u1680\u2000-\u200A\u202F\u205F\u3000\uFEFF]/gu, " ") : " ".repeat(spacesCount);
this._append(spaces, false);
} }
} }
_getIndent() { _getIndent() {
return this._indentRepeat * this._indent; return this._indentRepeat * this._indent;
} }
printTerminatorless(node, isLabel) { printTerminatorless(node) {
if (isLabel) {
this._noLineTerminator = true; this._noLineTerminator = true;
this.print(node); this.print(node);
} else {
const terminatorState = {
printed: false
};
this._parenPushNewlineState = terminatorState;
this.print(node);
if (terminatorState.printed) {
this.dedent();
this.newline();
this.tokenChar(41);
} }
} print(node, noLineTerminatorAfter, trailingCommentsLineOffset) {
} var _node$extra, _node$leadingComments, _node$leadingComments2;
print(node, noLineTerminatorAfter, trailingCommentsLineOffset, forceParens) {
var _node$extra, _node$leadingComments;
if (!node) return; if (!node) return;
this._endsWithInnerRaw = false; this._endsWithInnerRaw = false;
const nodeType = node.type; const nodeType = node.type;
@ -332,7 +353,7 @@ class Printer {
this._insideAux = node.loc == null; this._insideAux = node.loc == null;
this._maybeAddAuxComment(this._insideAux && !oldInAux); this._maybeAddAuxComment(this._insideAux && !oldInAux);
const parenthesized = (_node$extra = node.extra) == null ? void 0 : _node$extra.parenthesized; const parenthesized = (_node$extra = node.extra) == null ? void 0 : _node$extra.parenthesized;
let shouldPrintParens = forceParens || parenthesized && format.retainFunctionParens && nodeType === "FunctionExpression" || needsParens(node, parent, this.tokenContext, this.inForStatementInit); let shouldPrintParens = parenthesized && format.preserveFormat || parenthesized && format.retainFunctionParens && nodeType === "FunctionExpression" || needsParens(node, parent, this.tokenContext, this.inForStatementInit, format.preserveFormat ? this._boundGetRawIdentifier : undefined);
if (!shouldPrintParens && parenthesized && (_node$leadingComments = node.leadingComments) != null && _node$leadingComments.length && node.leadingComments[0].type === "CommentBlock") { if (!shouldPrintParens && parenthesized && (_node$leadingComments = node.leadingComments) != null && _node$leadingComments.length && node.leadingComments[0].type === "CommentBlock") {
const parentType = parent == null ? void 0 : parent.type; const parentType = parent == null ? void 0 : parent.type;
switch (parentType) { switch (parentType) {
@ -349,11 +370,35 @@ class Printer {
shouldPrintParens = true; shouldPrintParens = true;
} }
} }
let exitInForStatementInit; let indentParenthesized = false;
if (!shouldPrintParens && this._noLineTerminator && ((_node$leadingComments2 = node.leadingComments) != null && _node$leadingComments2.some(commentIsNewline) || this.format.retainLines && node.loc && node.loc.start.line > this._buf.getCurrentLine())) {
shouldPrintParens = true;
indentParenthesized = true;
}
let oldNoLineTerminatorAfterNode;
let oldInForStatementInitWasTrue;
if (!shouldPrintParens) {
noLineTerminatorAfter || (noLineTerminatorAfter = parent && this._noLineTerminatorAfterNode === parent && n.isLastChild(parent, node));
if (noLineTerminatorAfter) {
var _node$trailingComment;
if ((_node$trailingComment = node.trailingComments) != null && _node$trailingComment.some(commentIsNewline)) {
if (isExpression(node)) shouldPrintParens = true;
} else {
oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;
this._noLineTerminatorAfterNode = node;
}
}
}
if (shouldPrintParens) { if (shouldPrintParens) {
this.tokenChar(40); this.tokenChar(40);
if (indentParenthesized) this.indent();
this._endsWithInnerRaw = false; this._endsWithInnerRaw = false;
exitInForStatementInit = this.enterForStatementInit(false); if (this.inForStatementInit) {
oldInForStatementInitWasTrue = true;
this.inForStatementInit = false;
}
oldNoLineTerminatorAfterNode = this._noLineTerminatorAfterNode;
this._noLineTerminatorAfterNode = null;
} }
this._lastCommentLine = 0; this._lastCommentLine = 0;
this._printLeadingComments(node, parent); this._printLeadingComments(node, parent);
@ -361,9 +406,13 @@ class Printer {
this.exactSource(loc, printMethod.bind(this, node, parent)); this.exactSource(loc, printMethod.bind(this, node, parent));
if (shouldPrintParens) { if (shouldPrintParens) {
this._printTrailingComments(node, parent); this._printTrailingComments(node, parent);
if (indentParenthesized) {
this.dedent();
this.newline();
}
this.tokenChar(41); this.tokenChar(41);
this._noLineTerminator = noLineTerminatorAfter; this._noLineTerminator = noLineTerminatorAfter;
exitInForStatementInit(); if (oldInForStatementInitWasTrue) this.inForStatementInit = true;
} else if (noLineTerminatorAfter && !this._noLineTerminator) { } else if (noLineTerminatorAfter && !this._noLineTerminator) {
this._noLineTerminator = true; this._noLineTerminator = true;
this._printTrailingComments(node, parent); this._printTrailingComments(node, parent);
@ -373,6 +422,9 @@ class Printer {
this._currentNode = parent; this._currentNode = parent;
format.concise = oldConcise; format.concise = oldConcise;
this._insideAux = oldInAux; this._insideAux = oldInAux;
if (oldNoLineTerminatorAfterNode !== undefined) {
this._noLineTerminatorAfterNode = oldNoLineTerminatorAfterNode;
}
this._endsWithInnerRaw = false; this._endsWithInnerRaw = false;
} }
_maybeAddAuxComment(enteredPositionlessNode) { _maybeAddAuxComment(enteredPositionlessNode) {
@ -432,10 +484,12 @@ class Printer {
if (opts.statement) this._printNewline(i === 0, newlineOpts); if (opts.statement) this._printNewline(i === 0, newlineOpts);
this.print(node, undefined, opts.trailingCommentsLineOffset || 0); this.print(node, undefined, opts.trailingCommentsLineOffset || 0);
opts.iterator == null || opts.iterator(node, i); opts.iterator == null || opts.iterator(node, i);
if (i < len - 1) separator == null || separator(); if (separator != null) {
if (i < len - 1) separator(i, false);else if (opts.printTrailingSeparator) separator(i, true);
}
if (opts.statement) { if (opts.statement) {
var _node$trailingComment; var _node$trailingComment2;
if (!((_node$trailingComment = node.trailingComments) != null && _node$trailingComment.length)) { if (!((_node$trailingComment2 = node.trailingComments) != null && _node$trailingComment2.length)) {
this._lastCommentLine = 0; this._lastCommentLine = 0;
} }
if (i + 1 === len) { if (i + 1 === len) {
@ -480,12 +534,15 @@ class Printer {
if (!(comments != null && comments.length)) return; if (!(comments != null && comments.length)) return;
this._printComments(0, comments, node, parent); this._printComments(0, comments, node, parent);
} }
_maybePrintInnerComments() { _maybePrintInnerComments(nextTokenStr, nextTokenOccurrenceCount) {
if (this._endsWithInnerRaw) this.printInnerComments(); if (this._endsWithInnerRaw) {
var _this$tokenMap;
this.printInnerComments((_this$tokenMap = this.tokenMap) == null ? void 0 : _this$tokenMap.findMatching(this._currentNode, nextTokenStr, nextTokenOccurrenceCount));
}
this._endsWithInnerRaw = true; this._endsWithInnerRaw = true;
this._indentInnerComments = true; this._indentInnerComments = true;
} }
printInnerComments() { printInnerComments(nextToken) {
const node = this._currentNode; const node = this._currentNode;
const comments = node.innerComments; const comments = node.innerComments;
if (!(comments != null && comments.length)) return; if (!(comments != null && comments.length)) return;
@ -493,7 +550,7 @@ class Printer {
const indent = this._indentInnerComments; const indent = this._indentInnerComments;
const printedCommentsCount = this._printedComments.size; const printedCommentsCount = this._printedComments.size;
if (indent) this.indent(); if (indent) this.indent();
this._printComments(1, comments, node); this._printComments(1, comments, node, undefined, undefined, nextToken);
if (hasSpace && printedCommentsCount !== this._printedComments.size) { if (hasSpace && printedCommentsCount !== this._printedComments.size) {
this.space(); this.space();
} }
@ -514,6 +571,12 @@ class Printer {
} }
this.printJoin(items, opts); this.printJoin(items, opts);
} }
shouldPrintTrailingComma(listEnd) {
if (!this.tokenMap) return null;
const listEndIndex = this.tokenMap.findLastIndex(this._currentNode, token => this.tokenMap.matchesOriginal(token, listEnd));
if (listEndIndex <= 0) return null;
return this.tokenMap.matchesOriginal(this._tokens[listEndIndex - 1], ",");
}
_printNewline(newLine, opts) { _printNewline(newLine, opts) {
const format = this.format; const format = this.format;
if (format.retainLines || format.compact) return; if (format.retainLines || format.compact) return;
@ -537,12 +600,18 @@ class Printer {
this.newline(1); this.newline(1);
} }
} }
_shouldPrintComment(comment) { _shouldPrintComment(comment, nextToken) {
if (comment.ignore) return 0; if (comment.ignore) return 0;
if (this._printedComments.has(comment)) return 0; if (this._printedComments.has(comment)) return 0;
if (this._noLineTerminator && HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)) { if (this._noLineTerminator && HAS_NEWLINE_OR_BlOCK_COMMENT_END.test(comment.value)) {
return 2; return 2;
} }
if (nextToken && this.tokenMap) {
const commentTok = this.tokenMap.find(this._currentNode, token => token.value === comment.value);
if (commentTok && commentTok.start > nextToken.start) {
return 2;
}
}
this._printedComments.add(comment); this._printedComments.add(comment);
if (!this.format.shouldPrintComment(comment.value)) { if (!this.format.shouldPrintComment(comment.value)) {
return 0; return 0;
@ -562,14 +631,6 @@ class Printer {
} }
let val; let val;
if (isBlockComment) { 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}*/`; val = `/*${comment.value}*/`;
if (this.format.indent.adjustMultilineComment) { if (this.format.indent.adjustMultilineComment) {
var _comment$loc; var _comment$loc;
@ -603,7 +664,7 @@ class Printer {
this.newline(1); this.newline(1);
} }
} }
_printComments(type, comments, node, parent, lineOffset = 0) { _printComments(type, comments, node, parent, lineOffset = 0, nextToken) {
const nodeLoc = node.loc; const nodeLoc = node.loc;
const len = comments.length; const len = comments.length;
let hasLoc = !!nodeLoc; let hasLoc = !!nodeLoc;
@ -614,7 +675,7 @@ class Printer {
const maybeNewline = this._noLineTerminator ? function () {} : this.newline.bind(this); const maybeNewline = this._noLineTerminator ? function () {} : this.newline.bind(this);
for (let i = 0; i < len; i++) { for (let i = 0; i < len; i++) {
const comment = comments[i]; const comment = comments[i];
const shouldPrint = this._shouldPrintComment(comment); const shouldPrint = this._shouldPrintComment(comment, nextToken);
if (shouldPrint === 2) { if (shouldPrint === 2) {
hasLoc = false; hasLoc = false;
break; break;
@ -687,9 +748,9 @@ Object.assign(Printer.prototype, generatorFunctions);
Printer.prototype.Noop = function Noop() {}; Printer.prototype.Noop = function Noop() {};
} }
var _default = exports.default = Printer; var _default = exports.default = Printer;
function commaSeparator() { function commaSeparator(occurrenceCount, last) {
this.tokenChar(44); this.token(",", false, occurrenceCount);
this.space(); if (!last) this.space();
} }
//# sourceMappingURL=printer.js.map //# sourceMappingURL=printer.js.map

File diff suppressed because one or more lines are too long

191
node_modules/@babel/generator/lib/token-map.js generated vendored Normal file
View file

@ -0,0 +1,191 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TokenMap = void 0;
var _t = require("@babel/types");
const {
traverseFast,
VISITOR_KEYS
} = _t;
class TokenMap {
constructor(ast, tokens, source) {
this._tokens = void 0;
this._source = void 0;
this._nodesToTokenIndexes = new Map();
this._nodesOccurrencesCountCache = new Map();
this._tokensCache = new Map();
this._tokens = tokens;
this._source = source;
traverseFast(ast, node => {
const indexes = this._getTokensIndexesOfNode(node);
if (indexes.length > 0) this._nodesToTokenIndexes.set(node, indexes);
});
this._tokensCache = null;
}
has(node) {
return this._nodesToTokenIndexes.has(node);
}
getIndexes(node) {
return this._nodesToTokenIndexes.get(node);
}
find(node, condition) {
const indexes = this._nodesToTokenIndexes.get(node);
if (indexes) {
for (let k = 0; k < indexes.length; k++) {
const index = indexes[k];
const tok = this._tokens[index];
if (condition(tok, index)) return tok;
}
}
return null;
}
findLastIndex(node, condition) {
const indexes = this._nodesToTokenIndexes.get(node);
if (indexes) {
for (let k = indexes.length - 1; k >= 0; k--) {
const index = indexes[k];
const tok = this._tokens[index];
if (condition(tok, index)) return index;
}
}
return -1;
}
findMatching(node, test, occurrenceCount = 0) {
const indexes = this._nodesToTokenIndexes.get(node);
if (indexes) {
let i = 0;
const count = occurrenceCount;
if (count > 1) {
const cache = this._nodesOccurrencesCountCache.get(node);
if (cache && cache.test === test && cache.count < count) {
i = cache.i + 1;
occurrenceCount -= cache.count + 1;
}
}
for (; i < indexes.length; i++) {
const tok = this._tokens[indexes[i]];
if (this.matchesOriginal(tok, test)) {
if (occurrenceCount === 0) {
if (count > 0) {
this._nodesOccurrencesCountCache.set(node, {
test,
count,
i
});
}
return tok;
}
occurrenceCount--;
}
}
}
return null;
}
matchesOriginal(token, test) {
if (token.end - token.start !== test.length) return false;
if (token.value != null) return token.value === test;
return this._source.startsWith(test, token.start);
}
startMatches(node, test) {
const indexes = this._nodesToTokenIndexes.get(node);
if (!indexes) return false;
const tok = this._tokens[indexes[0]];
if (tok.start !== node.start) return false;
return this.matchesOriginal(tok, test);
}
endMatches(node, test) {
const indexes = this._nodesToTokenIndexes.get(node);
if (!indexes) return false;
const tok = this._tokens[indexes[indexes.length - 1]];
if (tok.end !== node.end) return false;
return this.matchesOriginal(tok, test);
}
_getTokensIndexesOfNode(node) {
if (node.start == null || node.end == null) return [];
const {
first,
last
} = this._findTokensOfNode(node, 0, this._tokens.length - 1);
let low = first;
const children = childrenIterator(node);
if ((node.type === "ExportNamedDeclaration" || node.type === "ExportDefaultDeclaration") && node.declaration && node.declaration.type === "ClassDeclaration") {
children.next();
}
const indexes = [];
for (const child of children) {
if (child == null) continue;
if (child.start == null || child.end == null) continue;
const childTok = this._findTokensOfNode(child, low, last);
const high = childTok.first;
for (let k = low; k < high; k++) indexes.push(k);
low = childTok.last + 1;
}
for (let k = low; k <= last; k++) indexes.push(k);
return indexes;
}
_findTokensOfNode(node, low, high) {
const cached = this._tokensCache.get(node);
if (cached) return cached;
const first = this._findFirstTokenOfNode(node.start, low, high);
const last = this._findLastTokenOfNode(node.end, first, high);
this._tokensCache.set(node, {
first,
last
});
return {
first,
last
};
}
_findFirstTokenOfNode(start, low, high) {
while (low <= high) {
const mid = high + low >> 1;
if (start < this._tokens[mid].start) {
high = mid - 1;
} else if (start > this._tokens[mid].start) {
low = mid + 1;
} else {
return mid;
}
}
return low;
}
_findLastTokenOfNode(end, low, high) {
while (low <= high) {
const mid = high + low >> 1;
if (end < this._tokens[mid].end) {
high = mid - 1;
} else if (end > this._tokens[mid].end) {
low = mid + 1;
} else {
return mid;
}
}
return high;
}
}
exports.TokenMap = TokenMap;
function* childrenIterator(node) {
if (node.type === "TemplateLiteral") {
yield node.quasis[0];
for (let i = 1; i < node.quasis.length; i++) {
yield node.expressions[i - 1];
yield node.quasis[i];
}
return;
}
const keys = VISITOR_KEYS[node.type];
for (const key of keys) {
const child = node[key];
if (!child) continue;
if (Array.isArray(child)) {
yield* child;
} else {
yield child;
}
}
}
//# sourceMappingURL=token-map.js.map

1
node_modules/@babel/generator/lib/token-map.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/generator", "name": "@babel/generator",
"version": "7.25.6", "version": "7.26.2",
"description": "Turns an AST into code.", "description": "Turns an AST into code.",
"author": "The Babel Team (https://babel.dev/team)", "author": "The Babel Team (https://babel.dev/team)",
"license": "MIT", "license": "MIT",
@ -19,14 +19,16 @@
"lib" "lib"
], ],
"dependencies": { "dependencies": {
"@babel/types": "^7.25.6", "@babel/parser": "^7.26.2",
"@babel/types": "^7.26.0",
"@jridgewell/gen-mapping": "^0.3.5", "@jridgewell/gen-mapping": "^0.3.5",
"@jridgewell/trace-mapping": "^0.3.25", "@jridgewell/trace-mapping": "^0.3.25",
"jsesc": "^2.5.1" "jsesc": "^3.0.2"
}, },
"devDependencies": { "devDependencies": {
"@babel/helper-fixtures": "^7.24.8", "@babel/core": "^7.26.0",
"@babel/parser": "^7.25.6", "@babel/helper-fixtures": "^7.26.0",
"@babel/plugin-transform-typescript": "^7.25.9",
"@jridgewell/sourcemap-codec": "^1.4.15", "@jridgewell/sourcemap-codec": "^1.4.15",
"@types/jsesc": "^2.5.0", "@types/jsesc": "^2.5.0",
"charcodes": "^0.2.0" "charcodes": "^0.2.0"

View file

@ -159,7 +159,8 @@ function getTargets(inputTargets = {}, options = {}) {
esmodules esmodules
} = inputTargets; } = inputTargets;
const { const {
configPath = "." configPath = ".",
onBrowserslistConfigFound
} = options; } = options;
validateBrowsers(browsers); validateBrowsers(browsers);
const input = generateTargets(inputTargets); const input = generateTargets(inputTargets);
@ -168,11 +169,17 @@ function getTargets(inputTargets = {}, options = {}) {
const hasTargets = shouldParseBrowsers || Object.keys(targets).length > 0; const hasTargets = shouldParseBrowsers || Object.keys(targets).length > 0;
const shouldSearchForConfig = !options.ignoreBrowserslistConfig && !hasTargets; const shouldSearchForConfig = !options.ignoreBrowserslistConfig && !hasTargets;
if (!browsers && shouldSearchForConfig) { if (!browsers && shouldSearchForConfig) {
browsers = process.env.BROWSERSLIST;
if (!browsers) {
const configFile = options.configFile || process.env.BROWSERSLIST_CONFIG || _browserslist.findConfigFile(configPath);
if (configFile != null) {
onBrowserslistConfigFound == null || onBrowserslistConfigFound(configFile);
browsers = _browserslist.loadConfig({ browsers = _browserslist.loadConfig({
config: options.configFile, config: configFile,
path: configPath,
env: options.browserslistEnv env: options.browserslistEnv
}); });
}
}
if (browsers == null) { if (browsers == null) {
{ {
browsers = []; browsers = [];

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/helper-compilation-targets", "name": "@babel/helper-compilation-targets",
"version": "7.25.2", "version": "7.25.9",
"author": "The Babel Team (https://babel.dev/team)", "author": "The Babel Team (https://babel.dev/team)",
"license": "MIT", "license": "MIT",
"description": "Helper functions on Babel compilation targets", "description": "Helper functions on Babel compilation targets",
@ -25,14 +25,14 @@
"babel-plugin" "babel-plugin"
], ],
"dependencies": { "dependencies": {
"@babel/compat-data": "^7.25.2", "@babel/compat-data": "^7.25.9",
"@babel/helper-validator-option": "^7.24.8", "@babel/helper-validator-option": "^7.25.9",
"browserslist": "^4.23.1", "browserslist": "^4.24.0",
"lru-cache": "^5.1.1", "lru-cache": "^5.1.1",
"semver": "^6.3.1" "semver": "^6.3.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/helper-plugin-test-runner": "^7.24.7", "@babel/helper-plugin-test-runner": "^7.25.9",
"@types/lru-cache": "^5.1.1", "@types/lru-cache": "^5.1.1",
"@types/semver": "^5.5.0" "@types/semver": "^5.5.0"
}, },

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/helper-module-imports", "name": "@babel/helper-module-imports",
"version": "7.24.7", "version": "7.25.9",
"description": "Babel helper functions for inserting module loads", "description": "Babel helper functions for inserting module loads",
"author": "The Babel Team (https://babel.dev/team)", "author": "The Babel Team (https://babel.dev/team)",
"homepage": "https://babel.dev/docs/en/next/babel-helper-module-imports", "homepage": "https://babel.dev/docs/en/next/babel-helper-module-imports",
@ -15,11 +15,11 @@
}, },
"main": "./lib/index.js", "main": "./lib/index.js",
"dependencies": { "dependencies": {
"@babel/traverse": "^7.24.7", "@babel/traverse": "^7.25.9",
"@babel/types": "^7.24.7" "@babel/types": "^7.25.9"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.24.7" "@babel/core": "^7.25.9"
}, },
"engines": { "engines": {
"node": ">=6.9.0" "node": ">=6.9.0"

View file

@ -4,9 +4,7 @@ Object.defineProperty(exports, "__esModule", {
value: true value: true
}); });
exports.default = rewriteLiveReferences; exports.default = rewriteLiveReferences;
var _assert = require("assert");
var _core = require("@babel/core"); var _core = require("@babel/core");
var _helperSimpleAccess = require("@babel/helper-simple-access");
function isInType(path) { function isInType(path) {
do { do {
switch (path.parent.type) { switch (path.parent.type) {
@ -54,10 +52,6 @@ function rewriteLiveReferences(programPath, metadata, wrapReference) {
exported exported
}; };
programPath.traverse(rewriteBindingInitVisitor, rewriteBindingInitVisitorState); programPath.traverse(rewriteBindingInitVisitor, rewriteBindingInitVisitorState);
const bindingNames = new Set([...Array.from(imported.keys()), ...Array.from(exported.keys())]);
{
(0, _helperSimpleAccess.default)(programPath, bindingNames, false);
}
const rewriteReferencesVisitorState = { const rewriteReferencesVisitorState = {
seen: new WeakSet(), seen: new WeakSet(),
metadata, metadata,
@ -269,14 +263,25 @@ const rewriteReferencesVisitor = {
const exportedNames = exported.get(localName); const exportedNames = exported.get(localName);
const importData = imported.get(localName); const importData = imported.get(localName);
if ((exportedNames == null ? void 0 : exportedNames.length) > 0 || importData) { if ((exportedNames == null ? void 0 : exportedNames.length) > 0 || importData) {
_assert(path.node.operator === "=", "Path was not simplified");
const assignment = path.node; const assignment = path.node;
if (importData) { if (importData) {
assignment.left = buildImportReference(importData, left.node); assignment.left = buildImportReference(importData, left.node);
assignment.right = _core.types.sequenceExpression([assignment.right, buildImportThrow(localName)]); assignment.right = _core.types.sequenceExpression([assignment.right, buildImportThrow(localName)]);
} }
path.replaceWith(buildBindingExportAssignmentExpression(this.metadata, exportedNames, assignment, path.scope)); const {
operator
} = assignment;
let newExpr;
if (operator === "=") {
newExpr = assignment;
} else if (operator === "&&=" || operator === "||=" || operator === "??=") {
newExpr = _core.types.assignmentExpression("=", assignment.left, _core.types.logicalExpression(operator.slice(0, -1), _core.types.cloneNode(assignment.left), assignment.right));
} else {
newExpr = _core.types.assignmentExpression("=", assignment.left, _core.types.binaryExpression(operator.slice(0, -1), _core.types.cloneNode(assignment.left), assignment.right));
}
path.replaceWith(buildBindingExportAssignmentExpression(this.metadata, exportedNames, newExpr, path.scope));
requeueInParent(path); requeueInParent(path);
path.skip();
} }
} else { } else {
const ids = left.getOuterBindingIdentifiers(); const ids = left.getOuterBindingIdentifiers();
@ -304,7 +309,7 @@ const rewriteReferencesVisitor = {
} }
} }
}, },
"ForOfStatement|ForInStatement"(path) { ForXStatement(path) {
const { const {
scope, scope,
node node

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/helper-module-transforms", "name": "@babel/helper-module-transforms",
"version": "7.25.2", "version": "7.26.0",
"description": "Babel helper functions for implementing ES6 module transformations", "description": "Babel helper functions for implementing ES6 module transformations",
"author": "The Babel Team (https://babel.dev/team)", "author": "The Babel Team (https://babel.dev/team)",
"homepage": "https://babel.dev/docs/en/next/babel-helper-module-transforms", "homepage": "https://babel.dev/docs/en/next/babel-helper-module-transforms",
@ -15,13 +15,12 @@
}, },
"main": "./lib/index.js", "main": "./lib/index.js",
"dependencies": { "dependencies": {
"@babel/helper-module-imports": "^7.24.7", "@babel/helper-module-imports": "^7.25.9",
"@babel/helper-simple-access": "^7.24.7", "@babel/helper-validator-identifier": "^7.25.9",
"@babel/helper-validator-identifier": "^7.24.7", "@babel/traverse": "^7.25.9"
"@babel/traverse": "^7.25.2"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.25.2" "@babel/core": "^7.26.0"
}, },
"peerDependencies": { "peerDependencies": {
"@babel/core": "^7.0.0" "@babel/core": "^7.0.0"

View file

@ -1,22 +0,0 @@
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.

View file

@ -1,19 +0,0 @@
# @babel/helper-simple-access
> Babel helper for ensuring that access to a given value is performed through simple accesses
See our website [@babel/helper-simple-access](https://babeljs.io/docs/babel-helper-simple-access) for more information.
## Install
Using npm:
```sh
npm install --save @babel/helper-simple-access
```
or using yarn:
```sh
yarn add @babel/helper-simple-access
```

View file

@ -1,91 +0,0 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = simplifyAccess;
var _t = require("@babel/types");
const {
LOGICAL_OPERATORS,
assignmentExpression,
binaryExpression,
cloneNode,
identifier,
logicalExpression,
numericLiteral,
sequenceExpression,
unaryExpression
} = _t;
const simpleAssignmentVisitor = {
AssignmentExpression: {
exit(path) {
const {
scope,
seen,
bindingNames
} = this;
if (path.node.operator === "=") return;
if (seen.has(path.node)) return;
seen.add(path.node);
const left = path.get("left");
if (!left.isIdentifier()) return;
const localName = left.node.name;
if (!bindingNames.has(localName)) return;
if (scope.getBinding(localName) !== path.scope.getBinding(localName)) {
return;
}
const operator = path.node.operator.slice(0, -1);
if (LOGICAL_OPERATORS.includes(operator)) {
path.replaceWith(logicalExpression(operator, path.node.left, assignmentExpression("=", cloneNode(path.node.left), path.node.right)));
} else {
path.node.right = binaryExpression(operator, cloneNode(path.node.left), path.node.right);
path.node.operator = "=";
}
}
}
};
{
simpleAssignmentVisitor.UpdateExpression = {
exit(path) {
if (!this.includeUpdateExpression) return;
const {
scope,
bindingNames
} = this;
const arg = path.get("argument");
if (!arg.isIdentifier()) return;
const localName = arg.node.name;
if (!bindingNames.has(localName)) return;
if (scope.getBinding(localName) !== path.scope.getBinding(localName)) {
return;
}
if (path.parentPath.isExpressionStatement() && !path.isCompletionRecord()) {
const operator = path.node.operator === "++" ? "+=" : "-=";
path.replaceWith(assignmentExpression(operator, arg.node, numericLiteral(1)));
} else if (path.node.prefix) {
path.replaceWith(assignmentExpression("=", identifier(localName), binaryExpression(path.node.operator[0], unaryExpression("+", arg.node), numericLiteral(1))));
} else {
const old = path.scope.generateUidIdentifierBasedOnNode(arg.node, "old");
const varName = old.name;
path.scope.push({
id: old
});
const binary = binaryExpression(path.node.operator[0], identifier(varName), numericLiteral(1));
path.replaceWith(sequenceExpression([assignmentExpression("=", identifier(varName), unaryExpression("+", arg.node)), assignmentExpression("=", cloneNode(arg.node), binary), identifier(varName)]));
}
}
};
}
function simplifyAccess(path, bindingNames) {
{
var _arguments$;
path.traverse(simpleAssignmentVisitor, {
scope: path.scope,
bindingNames,
seen: new WeakSet(),
includeUpdateExpression: (_arguments$ = arguments[2]) != null ? _arguments$ : true
});
}
}
//# sourceMappingURL=index.js.map

File diff suppressed because one or more lines are too long

View file

@ -1,28 +0,0 @@
{
"name": "@babel/helper-simple-access",
"version": "7.24.7",
"description": "Babel helper for ensuring that access to a given value is performed through simple accesses",
"author": "The Babel Team (https://babel.dev/team)",
"homepage": "https://babel.dev/docs/en/next/babel-helper-simple-access",
"license": "MIT",
"publishConfig": {
"access": "public"
},
"repository": {
"type": "git",
"url": "https://github.com/babel/babel.git",
"directory": "packages/babel-helper-simple-access"
},
"main": "./lib/index.js",
"dependencies": {
"@babel/traverse": "^7.24.7",
"@babel/types": "^7.24.7"
},
"devDependencies": {
"@babel/core": "^7.24.7"
},
"engines": {
"node": ">=6.9.0"
},
"type": "commonjs"
}

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/helper-string-parser", "name": "@babel/helper-string-parser",
"version": "7.24.8", "version": "7.25.9",
"description": "A utility package to parse strings", "description": "A utility package to parse strings",
"repository": { "repository": {
"type": "git", "type": "git",

View file

@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", {
exports.isIdentifierChar = isIdentifierChar; exports.isIdentifierChar = isIdentifierChar;
exports.isIdentifierName = isIdentifierName; exports.isIdentifierName = isIdentifierName;
exports.isIdentifierStart = isIdentifierStart; exports.isIdentifierStart = isIdentifierStart;
let 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"; let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c8a\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7cd\ua7d0\ua7d1\ua7d3\ua7d5-\ua7dc\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
let 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"; let nonASCIIidentifierChars = "\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0897-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0cf3\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ece\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u200c\u200d\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\u30fb\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f\uff65";
const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
const 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]; const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 4, 51, 13, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 39, 27, 10, 22, 251, 41, 7, 1, 17, 2, 60, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 20, 1, 64, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 31, 9, 2, 0, 3, 0, 2, 37, 2, 0, 26, 0, 2, 0, 45, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 200, 32, 32, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 16, 0, 2, 12, 2, 33, 125, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1071, 18, 5, 26, 3994, 6, 582, 6842, 29, 1763, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 433, 44, 212, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 42, 9, 8936, 3, 2, 6, 2, 1, 2, 290, 16, 0, 30, 2, 3, 0, 15, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 7, 5, 262, 61, 147, 44, 11, 6, 17, 0, 322, 29, 19, 43, 485, 27, 229, 29, 3, 0, 496, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4153, 7, 221, 3, 5761, 15, 7472, 16, 621, 2467, 541, 1507, 4938, 6, 4191];
const 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]; const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 7, 9, 32, 4, 318, 1, 80, 3, 71, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 3, 0, 158, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 68, 8, 2, 0, 3, 0, 2, 3, 2, 4, 2, 0, 15, 1, 83, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 7, 19, 58, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 343, 9, 54, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 10, 1, 2, 0, 49, 6, 4, 4, 14, 10, 5350, 0, 7, 14, 11465, 27, 2343, 9, 87, 9, 39, 4, 60, 6, 26, 9, 535, 9, 470, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4178, 9, 519, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 101, 0, 161, 6, 10, 9, 357, 0, 62, 13, 499, 13, 245, 1, 2, 9, 726, 6, 110, 6, 6, 9, 4759, 9, 787719, 239];
function isInAstralSet(code, set) { function isInAstralSet(code, set) {
let pos = 0x10000; let pos = 0x10000;
for (let i = 0, length = set.length; i < length; i += 2) { for (let i = 0, length = set.length; i < length; i += 2) {

File diff suppressed because one or more lines are too long

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/helper-validator-identifier", "name": "@babel/helper-validator-identifier",
"version": "7.24.7", "version": "7.25.9",
"description": "Validate identifier/keywords name", "description": "Validate identifier/keywords name",
"repository": { "repository": {
"type": "git", "type": "git",
@ -20,7 +20,7 @@
"./package.json": "./package.json" "./package.json": "./package.json"
}, },
"devDependencies": { "devDependencies": {
"@unicode/unicode-15.1.0": "^1.5.2", "@unicode/unicode-16.0.0": "^1.0.0",
"charcodes": "^0.2.0" "charcodes": "^0.2.0"
}, },
"engines": { "engines": {

View file

@ -1,73 +0,0 @@
"use strict";
// Always use the latest available version of Unicode!
// https://tc39.github.io/ecma262/#sec-conformance
const version = "15.1.0";
const start = require(
"@unicode/unicode-" + version + "/Binary_Property/ID_Start/code-points.js"
).filter(function (ch) {
return ch > 0x7f;
});
let last = -1;
const cont = require(
"@unicode/unicode-" + version + "/Binary_Property/ID_Continue/code-points.js"
).filter(function (ch) {
return ch > 0x7f && search(start, ch, last + 1) === -1;
});
function search(arr, ch, starting) {
for (let i = starting; arr[i] <= ch && i < arr.length; last = i++) {
if (arr[i] === ch) return i;
}
return -1;
}
function pad(str, width) {
while (str.length < width) str = "0" + str;
return str;
}
function esc(code) {
const hex = code.toString(16);
if (hex.length <= 2) return "\\x" + pad(hex, 2);
else return "\\u" + pad(hex, 4);
}
function generate(chars) {
const astral = [];
let re = "";
for (let i = 0, at = 0x10000; i < chars.length; i++) {
const from = chars[i];
let to = from;
while (i < chars.length - 1 && chars[i + 1] === to + 1) {
i++;
to++;
}
if (to <= 0xffff) {
if (from === to) re += esc(from);
else if (from + 1 === to) re += esc(from) + esc(to);
else re += esc(from) + "-" + esc(to);
} else {
astral.push(from - at, to - from);
at = to;
}
}
return { nonASCII: re, astral: astral };
}
const startData = generate(start);
const contData = generate(cont);
console.log("/* prettier-ignore */");
console.log('let nonASCIIidentifierStartChars = "' + startData.nonASCII + '";');
console.log("/* prettier-ignore */");
console.log('let nonASCIIidentifierChars = "' + contData.nonASCII + '";');
console.log("/* prettier-ignore */");
console.log(
"const astralIdentifierStartCodes = " + JSON.stringify(startData.astral) + ";"
);
console.log("/* prettier-ignore */");
console.log(
"const astralIdentifierCodes = " + JSON.stringify(contData.astral) + ";"
);

View file

@ -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 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","ignoreList":[]} {"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,CAAC,IAAIH,MAAM;AACvC,kBAAkB,IAAAI,8BAAc,EAACJ,MAAM,EAAEH,gBAAgB,CAAC,IAAI,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,EAC1B,IAAID,IAAI,6BACV,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,EACzB,IAAID,IAAI,4BACV,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,OAAO,GAAG,IAAI,CAACpB,UAAU,KAAKoB,OAAO,EAAE;EACzC;AACF;AAACC,OAAA,CAAAvB,eAAA,GAAAA,eAAA","ignoreList":[]}

View file

@ -1,6 +1,6 @@
{ {
"name": "@babel/helper-validator-option", "name": "@babel/helper-validator-option",
"version": "7.24.8", "version": "7.25.9",
"description": "Validate plugin/preset options", "description": "Validate plugin/preset options",
"repository": { "repository": {
"type": "git", "type": "git",

Some files were not shown because too many files have changed in this diff Show more