You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@babel/cli

Package Overview
Dependencies
Maintainers
4
Versions
147
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/cli - npm Package Compare versions

Comparing version
8.0.0-rc.2
to
8.0.0-rc.3
+4
-5
bin/babel.js
#!/usr/bin/env node
/* eslint-disable unicorn/prefer-node-protocol */
import mod from "node:module";
import "../lib/babel/index.js";
// Enable Node compile cache to speed up initialization
const mod = require("module");
if (mod.enableCompileCache != null) mod.enableCompileCache();
require("../lib/babel");
mod.enableCompileCache?.();

@@ -1,1 +0,1 @@

{"version":3,"names":["slash","path","fs","util","watcher","FILE_TYPE","Object","freeze","NON_COMPILABLE","COMPILED","IGNORED","ERR_COMPILATION","outputFileSync","filePath","data","mkdirSync","dirname","recursive","writeFileSync","cliOptions","babelOptions","write","src","base","relative","isCompilableExtension","extensions","withExtension","keepFileExtension","extname","outFileExtension","dest","getDest","res","compile","sourceFileName","map","outputMap","sourceMaps","hasDataSourcemap","code","mapLoc","addSourceMappingUrl","file","basename","JSON","stringify","chmod","verbose","console","log","process","cwd","err","watch","error","filename","join","outDir","handleFile","written","copyFiles","copyIgnored","readFileSync","handle","filenameOrDir","existsSync","stat","statSync","isDirectory","count","files","readdir","includeDotfiles","compiledFiles","startTime","logSuccess","debounce","diff","hrtime","Math","round","enable","enableGlobbing","skipInitialBuild","deleteDirOnStart","deleteDir","filenames","quiet","flush","processing","getBase","length","absoluteBase","resolve","filenameToBaseMap","Map","absoluteFilename","absoluteFilenames","sep","get","undefined","absoluteFilenameOrDir","startsWith","set","forEach","startWatcher","onFilesChange","Promise","all","filter","Boolean"],"sources":["../../src/babel/dir.ts"],"sourcesContent":["import slash from \"slash\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\n\nimport * as util from \"./util.ts\";\nimport * as watcher from \"./watcher.ts\";\nimport type { CmdOptions } from \"./options.ts\";\n\nconst FILE_TYPE = Object.freeze({\n NON_COMPILABLE: \"NON_COMPILABLE\",\n COMPILED: \"COMPILED\",\n IGNORED: \"IGNORED\",\n ERR_COMPILATION: \"ERR_COMPILATION\",\n} as const);\n\nfunction outputFileSync(filePath: string, data: string | Buffer): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n fs.writeFileSync(filePath, data);\n}\n\nexport default async function ({\n cliOptions,\n babelOptions,\n}: CmdOptions): Promise<void> {\n async function write(\n src: string,\n base: string,\n ): Promise<keyof typeof FILE_TYPE> {\n let relative = path.relative(base, src);\n\n if (!util.isCompilableExtension(relative, cliOptions.extensions)) {\n return FILE_TYPE.NON_COMPILABLE;\n }\n\n relative = util.withExtension(\n relative,\n cliOptions.keepFileExtension\n ? path.extname(relative)\n : cliOptions.outFileExtension,\n );\n\n const dest = getDest(relative, base);\n\n try {\n const res = await util.compile(src, {\n ...babelOptions,\n sourceFileName: slash(path.relative(dest + \"/..\", src)),\n });\n\n if (!res) return FILE_TYPE.IGNORED;\n\n if (res.map) {\n let outputMap: \"both\" | \"external\" | false = false;\n if (babelOptions.sourceMaps && babelOptions.sourceMaps !== \"inline\") {\n outputMap = \"external\";\n } else if (babelOptions.sourceMaps == null) {\n outputMap = util.hasDataSourcemap(res.code) ? \"external\" : \"both\";\n }\n\n if (outputMap) {\n const mapLoc = dest + \".map\";\n if (outputMap === \"external\") {\n res.code = util.addSourceMappingUrl(res.code, mapLoc);\n }\n res.map.file = path.basename(relative);\n outputFileSync(mapLoc, JSON.stringify(res.map));\n }\n }\n\n outputFileSync(dest, res.code);\n util.chmod(src, dest);\n\n if (cliOptions.verbose) {\n console.log(path.relative(process.cwd(), src) + \" -> \" + dest);\n }\n\n return FILE_TYPE.COMPILED;\n } catch (err) {\n if (cliOptions.watch) {\n console.error(err);\n return FILE_TYPE.ERR_COMPILATION;\n }\n\n throw err;\n }\n }\n\n function getDest(filename: string, base: string): string {\n if (cliOptions.relative) {\n return path.join(base, cliOptions.outDir, filename);\n }\n return path.join(cliOptions.outDir, filename);\n }\n\n async function handleFile(src: string, base: string): Promise<boolean> {\n const written = await write(src, base);\n\n if (\n (cliOptions.copyFiles && written === FILE_TYPE.NON_COMPILABLE) ||\n (cliOptions.copyIgnored && written === FILE_TYPE.IGNORED)\n ) {\n const filename = path.relative(base, src);\n const dest = getDest(filename, base);\n outputFileSync(dest, fs.readFileSync(src));\n util.chmod(src, dest);\n }\n return written === FILE_TYPE.COMPILED;\n }\n\n async function handle(filenameOrDir: string): Promise<number> {\n if (!fs.existsSync(filenameOrDir)) return 0;\n\n const stat = fs.statSync(filenameOrDir);\n\n if (stat.isDirectory()) {\n const dirname = filenameOrDir;\n\n let count = 0;\n\n const files = util.readdir(dirname, cliOptions.includeDotfiles);\n for (const filename of files) {\n const written = await handleFile(filename, dirname);\n if (written) count += 1;\n }\n\n return count;\n } else {\n const filename = filenameOrDir;\n const written = await handleFile(filename, path.dirname(filename));\n\n return written ? 1 : 0;\n }\n }\n\n let compiledFiles = 0;\n let startTime: [number, number] | null = null;\n\n const logSuccess = util.debounce(function () {\n if (startTime === null) {\n // This should never happen, but just in case it's better\n // to ignore the log message rather than making @babel/cli crash.\n return;\n }\n\n const diff = process.hrtime(startTime);\n\n console.log(\n `Successfully compiled ${compiledFiles} ${\n compiledFiles !== 1 ? \"files\" : \"file\"\n } with Babel (${diff[0] * 1e3 + Math.round(diff[1] / 1e6)}ms).`,\n );\n compiledFiles = 0;\n startTime = null;\n }, 100);\n\n if (cliOptions.watch) watcher.enable({ enableGlobbing: true });\n\n if (!cliOptions.skipInitialBuild) {\n if (cliOptions.deleteDirOnStart) {\n util.deleteDir(cliOptions.outDir);\n }\n\n fs.mkdirSync(cliOptions.outDir, { recursive: true });\n\n startTime = process.hrtime();\n\n for (const filename of cliOptions.filenames) {\n // compiledFiles is just incremented without reading its value, so we\n // don't risk race conditions.\n compiledFiles += await handle(filename);\n }\n\n if (!cliOptions.quiet) {\n logSuccess();\n logSuccess.flush();\n }\n }\n\n if (cliOptions.watch) {\n // This, alongside with debounce, allows us to only log\n // when we are sure that all the files have been compiled.\n let processing = 0;\n const { filenames } = cliOptions;\n let getBase: (filename: string) => string | null;\n if (filenames.length === 1) {\n // fast path: If there is only one filenames, we know it must be the base\n const base = filenames[0];\n const absoluteBase = path.resolve(base);\n getBase = filename => {\n return filename === absoluteBase ? path.dirname(base) : base;\n };\n } else {\n // A map from absolute compiled file path to its base, from which\n // the output destination will be determined\n const filenameToBaseMap = new Map<string, string>(\n filenames.map(filename => {\n const absoluteFilename = path.resolve(filename);\n return [absoluteFilename, path.dirname(filename)];\n }),\n );\n\n const absoluteFilenames = new Map<string, string>(\n filenames.map(filename => {\n const absoluteFilename = path.resolve(filename);\n return [absoluteFilename, filename];\n }),\n );\n\n const { sep } = path;\n // determine base from the absolute file path\n getBase = filename => {\n const base = filenameToBaseMap.get(filename);\n if (base !== undefined) {\n return base;\n }\n for (const [absoluteFilenameOrDir, relative] of absoluteFilenames) {\n if (filename.startsWith(absoluteFilenameOrDir + sep)) {\n filenameToBaseMap.set(filename, relative);\n return relative;\n }\n }\n // Can't determine the base, probably external deps\n return \"\";\n };\n }\n\n filenames.forEach(filenameOrDir => {\n watcher.watch(filenameOrDir);\n });\n\n watcher.startWatcher();\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.onFilesChange(async filenames => {\n processing++;\n if (startTime === null) startTime = process.hrtime();\n\n try {\n const written = await Promise.all(\n filenames.map(filename => handleFile(filename, getBase(filename))),\n );\n\n compiledFiles += written.filter(Boolean).length;\n } catch (err) {\n console.error(err);\n }\n\n processing--;\n if (processing === 0 && !cliOptions.quiet) logSuccess();\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}
{"version":3,"names":["slash","path","fs","util","watcher","FILE_TYPE","Object","freeze","NON_COMPILABLE","COMPILED","IGNORED","ERR_COMPILATION","outputFileSync","filePath","data","mkdirSync","dirname","recursive","writeFileSync","cliOptions","babelOptions","write","src","base","relative","isCompilableExtension","extensions","withExtension","keepFileExtension","extname","outFileExtension","dest","getDest","res","compile","sourceFileName","map","outputMap","sourceMaps","hasDataSourcemap","code","mapLoc","addSourceMappingUrl","file","basename","JSON","stringify","chmod","verbose","console","log","process","cwd","err","watch","error","filename","join","outDir","handleFile","written","copyFiles","copyIgnored","readFileSync","handle","filenameOrDir","existsSync","stat","statSync","isDirectory","count","files","readdir","includeDotfiles","compiledFiles","startTime","logSuccess","debounce","diff","hrtime","Math","round","enable","enableGlobbing","skipInitialBuild","deleteDirOnStart","deleteDir","filenames","quiet","flush","processing","getBase","length","absoluteBase","resolve","filenameToBaseMap","Map","absoluteFilename","absoluteFilenames","sep","get","undefined","absoluteFilenameOrDir","startsWith","set","forEach","startWatcher","onFilesChange","Promise","all","filter","Boolean"],"sources":["../../src/babel/dir.ts"],"sourcesContent":["import slash from \"slash\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\n\nimport * as util from \"./util.ts\";\nimport * as watcher from \"./watcher.ts\";\nimport type { CmdOptions } from \"./options.ts\";\n\nconst FILE_TYPE = Object.freeze({\n NON_COMPILABLE: \"NON_COMPILABLE\",\n COMPILED: \"COMPILED\",\n IGNORED: \"IGNORED\",\n ERR_COMPILATION: \"ERR_COMPILATION\",\n} as const);\n\nfunction outputFileSync(filePath: string, data: string | Buffer): void {\n fs.mkdirSync(path.dirname(filePath), { recursive: true });\n fs.writeFileSync(filePath, data);\n}\n\nexport default async function ({\n cliOptions,\n babelOptions,\n}: CmdOptions): Promise<void> {\n async function write(\n src: string,\n base: string,\n ): Promise<keyof typeof FILE_TYPE> {\n let relative = path.relative(base, src);\n\n if (!util.isCompilableExtension(relative, cliOptions.extensions)) {\n return FILE_TYPE.NON_COMPILABLE;\n }\n\n relative = util.withExtension(\n relative,\n cliOptions.keepFileExtension\n ? path.extname(relative)\n : cliOptions.outFileExtension,\n );\n\n const dest = getDest(relative, base);\n\n try {\n const res = await util.compile(src, {\n ...babelOptions,\n sourceFileName: slash(path.relative(dest + \"/..\", src)),\n });\n\n if (!res) return FILE_TYPE.IGNORED;\n\n if (res.map) {\n let outputMap: \"both\" | \"external\" | false = false;\n if (babelOptions.sourceMaps && babelOptions.sourceMaps !== \"inline\") {\n outputMap = \"external\";\n } else if (babelOptions.sourceMaps == null) {\n outputMap = util.hasDataSourcemap(res.code!) ? \"external\" : \"both\";\n }\n\n if (outputMap) {\n const mapLoc = dest + \".map\";\n if (outputMap === \"external\") {\n res.code = util.addSourceMappingUrl(res.code!, mapLoc);\n }\n res.map.file = path.basename(relative);\n outputFileSync(mapLoc, JSON.stringify(res.map));\n }\n }\n\n outputFileSync(dest, res.code!);\n util.chmod(src, dest);\n\n if (cliOptions.verbose) {\n console.log(path.relative(process.cwd(), src) + \" -> \" + dest);\n }\n\n return FILE_TYPE.COMPILED;\n } catch (err) {\n if (cliOptions.watch) {\n console.error(err);\n return FILE_TYPE.ERR_COMPILATION;\n }\n\n throw err;\n }\n }\n\n function getDest(filename: string, base: string): string {\n if (cliOptions.relative) {\n return path.join(base, cliOptions.outDir, filename);\n }\n return path.join(cliOptions.outDir, filename);\n }\n\n async function handleFile(src: string, base: string): Promise<boolean> {\n const written = await write(src, base);\n\n if (\n (cliOptions.copyFiles && written === FILE_TYPE.NON_COMPILABLE) ||\n (cliOptions.copyIgnored && written === FILE_TYPE.IGNORED)\n ) {\n const filename = path.relative(base, src);\n const dest = getDest(filename, base);\n outputFileSync(dest, fs.readFileSync(src));\n util.chmod(src, dest);\n }\n return written === FILE_TYPE.COMPILED;\n }\n\n async function handle(filenameOrDir: string): Promise<number> {\n if (!fs.existsSync(filenameOrDir)) return 0;\n\n const stat = fs.statSync(filenameOrDir);\n\n if (stat.isDirectory()) {\n const dirname = filenameOrDir;\n\n let count = 0;\n\n const files = util.readdir(dirname, cliOptions.includeDotfiles);\n for (const filename of files) {\n const written = await handleFile(filename, dirname);\n if (written) count += 1;\n }\n\n return count;\n } else {\n const filename = filenameOrDir;\n const written = await handleFile(filename, path.dirname(filename));\n\n return written ? 1 : 0;\n }\n }\n\n let compiledFiles = 0;\n let startTime: [number, number] | null = null;\n\n const logSuccess = util.debounce(function () {\n if (startTime === null) {\n // This should never happen, but just in case it's better\n // to ignore the log message rather than making @babel/cli crash.\n return;\n }\n\n const diff = process.hrtime(startTime);\n\n console.log(\n `Successfully compiled ${compiledFiles} ${\n compiledFiles !== 1 ? \"files\" : \"file\"\n } with Babel (${diff[0] * 1e3 + Math.round(diff[1] / 1e6)}ms).`,\n );\n compiledFiles = 0;\n startTime = null;\n }, 100);\n\n if (cliOptions.watch) watcher.enable({ enableGlobbing: true });\n\n if (!cliOptions.skipInitialBuild) {\n if (cliOptions.deleteDirOnStart) {\n util.deleteDir(cliOptions.outDir);\n }\n\n fs.mkdirSync(cliOptions.outDir, { recursive: true });\n\n startTime = process.hrtime();\n\n for (const filename of cliOptions.filenames) {\n // compiledFiles is just incremented without reading its value, so we\n // don't risk race conditions.\n compiledFiles += await handle(filename);\n }\n\n if (!cliOptions.quiet) {\n logSuccess();\n logSuccess.flush();\n }\n }\n\n if (cliOptions.watch) {\n // This, alongside with debounce, allows us to only log\n // when we are sure that all the files have been compiled.\n let processing = 0;\n const { filenames } = cliOptions;\n let getBase: (filename: string) => string | null;\n if (filenames.length === 1) {\n // fast path: If there is only one filenames, we know it must be the base\n const base = filenames[0];\n const absoluteBase = path.resolve(base);\n getBase = filename => {\n return filename === absoluteBase ? path.dirname(base) : base;\n };\n } else {\n // A map from absolute compiled file path to its base, from which\n // the output destination will be determined\n const filenameToBaseMap = new Map<string, string>(\n filenames.map(filename => {\n const absoluteFilename = path.resolve(filename);\n return [absoluteFilename, path.dirname(filename)];\n }),\n );\n\n const absoluteFilenames = new Map<string, string>(\n filenames.map(filename => {\n const absoluteFilename = path.resolve(filename);\n return [absoluteFilename, filename];\n }),\n );\n\n const { sep } = path;\n // determine base from the absolute file path\n getBase = filename => {\n const base = filenameToBaseMap.get(filename);\n if (base !== undefined) {\n return base;\n }\n for (const [absoluteFilenameOrDir, relative] of absoluteFilenames) {\n if (filename.startsWith(absoluteFilenameOrDir + sep)) {\n filenameToBaseMap.set(filename, relative);\n return relative;\n }\n }\n // Can't determine the base, probably external deps\n return \"\";\n };\n }\n\n filenames.forEach(filenameOrDir => {\n watcher.watch(filenameOrDir);\n });\n\n watcher.startWatcher();\n\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n watcher.onFilesChange(async filenames => {\n processing++;\n if (startTime === null) startTime = process.hrtime();\n\n try {\n const written = await Promise.all(\n filenames.map(filename => handleFile(filename, getBase(filename)!)),\n );\n\n compiledFiles += written.filter(Boolean).length;\n } catch (err) {\n console.error(err);\n }\n\n processing--;\n if (processing === 0 && !cliOptions.quiet) logSuccess();\n });\n }\n}\n"],"mappings":"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","ignoreList":[]}

@@ -1,1 +0,1 @@

{"version":3,"names":["convertSourceMap","AnyMap","encodedMap","slash","path","fs","util","watcher","cliOptions","babelOptions","buildResult","fileResults","mapSections","code","offset","hasRawMap","result","map","push","line","column","version","names","sources","mappings","countNewlines","file","sourceMapTarget","basename","outFile","sections","sourceRoot","sourceMaps","fromObject","toComment","count","index","indexOf","output","mkdirSync","dirname","recursive","outputMap","hasDataSourcemap","mapLoc","addSourceMappingUrl","writeFileSync","JSON","stringify","process","stdout","write","readStdin","Promise","resolve","reject","stdin","setEncoding","on","chunk","read","res","transformRepl","filename","sourceFileName","walk","filenames","_filenames","forEach","existsSync","stat","statSync","isDirectory","readdirForCompilable","includeDotfiles","extensions","results","all","sourceFilename","relative","compile","err","watch","console","error","files","enable","enableGlobbing","skipInitialBuild","startWatcher","onFilesChange","changes","event","cause","actionableChange","some","isCompilableExtension","includes","verbose","log","catch","length"],"sources":["../../src/babel/file.ts"],"sourcesContent":["import convertSourceMap from \"convert-source-map\";\nimport { AnyMap, encodedMap } from \"@jridgewell/trace-mapping\";\nimport slash from \"slash\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\n\nimport * as util from \"./util.ts\";\nimport type { CmdOptions } from \"./options.ts\";\nimport * as watcher from \"./watcher.ts\";\n\nimport type {\n EncodedSourceMap,\n SectionedSourceMap,\n SourceMapInput,\n TraceMap,\n} from \"@jridgewell/trace-mapping\";\nimport type { FileResult } from \"@babel/core\";\n\ntype CompilationOutput = {\n code: string;\n map: SourceMapInput;\n hasRawMap: boolean;\n};\n\nexport default async function ({\n cliOptions,\n babelOptions,\n}: CmdOptions): Promise<void> {\n function buildResult(fileResults: FileResult[]): CompilationOutput {\n const mapSections: SectionedSourceMap[\"sections\"] = [];\n\n let code = \"\";\n let offset = 0;\n\n let hasRawMap = false;\n\n for (const result of fileResults) {\n if (!result) continue;\n\n hasRawMap = !!result.map;\n\n mapSections.push({\n offset: { line: offset, column: 0 },\n map: (result.map as EncodedSourceMap) || {\n version: 3,\n names: [],\n sources: [],\n mappings: [],\n },\n });\n\n code += result.code + \"\\n\";\n offset += countNewlines(result.code) + 1;\n }\n\n const map = new AnyMap({\n version: 3,\n file:\n cliOptions.sourceMapTarget ||\n path.basename(cliOptions.outFile || \"\") ||\n \"stdout\",\n sections: mapSections,\n });\n // For some reason, the spec doesn't allow sourceRoot when constructing a\n // sectioned sourcemap. But AllMap returns a regular sourcemap, we can\n // freely add to with a sourceRoot.\n map.sourceRoot = babelOptions.sourceRoot;\n\n // add the inline sourcemap comment if we've either explicitly asked for inline source\n // maps, or we've requested them without any output file\n if (\n babelOptions.sourceMaps === \"inline\" ||\n (!cliOptions.outFile && babelOptions.sourceMaps)\n ) {\n code += \"\\n\" + convertSourceMap.fromObject(encodedMap(map)).toComment();\n }\n\n return {\n map: map,\n code: code,\n hasRawMap: hasRawMap,\n };\n }\n\n function countNewlines(code: string): number {\n let count = 0;\n let index = -1;\n while ((index = code.indexOf(\"\\n\", index + 1)) !== -1) {\n count++;\n }\n return count;\n }\n\n function output(fileResults: FileResult[]): void {\n const result = buildResult(fileResults);\n\n if (cliOptions.outFile) {\n fs.mkdirSync(path.dirname(cliOptions.outFile), { recursive: true });\n\n let outputMap: \"both\" | \"external\" | false = false;\n if (babelOptions.sourceMaps && babelOptions.sourceMaps !== \"inline\") {\n outputMap = \"external\";\n } else if (babelOptions.sourceMaps == null && result.hasRawMap) {\n outputMap = util.hasDataSourcemap(result.code) ? \"external\" : \"both\";\n }\n\n if (outputMap) {\n const mapLoc = cliOptions.outFile + \".map\";\n if (outputMap === \"external\") {\n result.code = util.addSourceMappingUrl(result.code, mapLoc);\n }\n fs.writeFileSync(\n mapLoc,\n JSON.stringify(encodedMap(result.map as TraceMap)),\n );\n }\n\n fs.writeFileSync(cliOptions.outFile, result.code);\n } else {\n process.stdout.write(result.code + \"\\n\");\n }\n }\n\n function readStdin(): Promise<string> {\n return new Promise((resolve, reject): void => {\n let code = \"\";\n\n process.stdin.setEncoding(\"utf8\");\n\n process.stdin.on(\"readable\", function () {\n const chunk = process.stdin.read();\n if (chunk !== null) code += chunk;\n });\n\n process.stdin.on(\"end\", function () {\n resolve(code);\n });\n process.stdin.on(\"error\", reject);\n });\n }\n\n async function stdin(): Promise<void> {\n const code = await readStdin();\n\n const res = await util.transformRepl(cliOptions.filename, code, {\n ...babelOptions,\n sourceFileName: \"stdin\",\n });\n\n output([res]);\n }\n\n async function walk(filenames: string[]): Promise<void> {\n const _filenames: string[] = [];\n\n filenames.forEach(function (filename) {\n if (!fs.existsSync(filename)) return;\n\n const stat = fs.statSync(filename);\n if (stat.isDirectory()) {\n _filenames.push(\n ...util.readdirForCompilable(\n filename,\n cliOptions.includeDotfiles,\n cliOptions.extensions,\n ),\n );\n } else {\n _filenames.push(filename);\n }\n });\n\n const results = await Promise.all(\n _filenames.map(async function (filename: string): Promise<any> {\n let sourceFilename = filename;\n if (cliOptions.outFile) {\n sourceFilename = path.relative(\n path.dirname(cliOptions.outFile),\n sourceFilename,\n );\n }\n sourceFilename = slash(sourceFilename);\n\n try {\n return await util.compile(filename, {\n ...babelOptions,\n sourceFileName: sourceFilename,\n // Since we're compiling everything to be merged together,\n // \"inline\" applies to the final output file, but not to the individual\n // files being concatenated.\n sourceMaps:\n babelOptions.sourceMaps === \"inline\"\n ? true\n : babelOptions.sourceMaps,\n });\n } catch (err) {\n if (!cliOptions.watch) {\n throw err;\n }\n\n console.error(err);\n return null;\n }\n }),\n );\n\n output(results);\n }\n\n async function files(filenames: string[]): Promise<void> {\n if (cliOptions.watch) {\n watcher.enable({ enableGlobbing: false });\n }\n\n if (!cliOptions.skipInitialBuild) {\n await walk(filenames);\n }\n\n if (cliOptions.watch) {\n filenames.forEach(watcher.watch);\n\n watcher.startWatcher();\n\n watcher.onFilesChange((changes, event, cause) => {\n const actionableChange = changes.some(\n filename =>\n util.isCompilableExtension(filename, cliOptions.extensions) ||\n filenames.includes(filename),\n );\n if (!actionableChange) return;\n\n if (cliOptions.verbose) {\n console.log(`${event} ${cause}`);\n }\n\n walk(filenames).catch(err => {\n console.error(err);\n });\n });\n }\n }\n\n if (cliOptions.filenames.length) {\n await files(cliOptions.filenames);\n } else {\n await stdin();\n }\n}\n"],"mappings":"AAAA,OAAOA,gBAAgB,MAAM,oBAAoB;AACjD,SAASC,MAAM,EAAEC,UAAU,QAAQ,2BAA2B;AAC9D,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,IAAI,MAAM,WAAW;AAC5B,OAAOC,EAAE,MAAM,SAAS;AAExB,OAAO,KAAKC,IAAI,MAAM,WAAW;AAEjC,OAAO,KAAKC,OAAO,MAAM,cAAc;AAgBvC,eAAe,gBAAgB;EAC7BC,UAAU;EACVC;AACU,CAAC,EAAiB;EAC5B,SAASC,WAAWA,CAACC,WAAyB,EAAqB;IACjE,MAAMC,WAA2C,GAAG,EAAE;IAEtD,IAAIC,IAAI,GAAG,EAAE;IACb,IAAIC,MAAM,GAAG,CAAC;IAEd,IAAIC,SAAS,GAAG,KAAK;IAErB,KAAK,MAAMC,MAAM,IAAIL,WAAW,EAAE;MAChC,IAAI,CAACK,MAAM,EAAE;MAEbD,SAAS,GAAG,CAAC,CAACC,MAAM,CAACC,GAAG;MAExBL,WAAW,CAACM,IAAI,CAAC;QACfJ,MAAM,EAAE;UAAEK,IAAI,EAAEL,MAAM;UAAEM,MAAM,EAAE;QAAE,CAAC;QACnCH,GAAG,EAAGD,MAAM,CAACC,GAAG,IAAyB;UACvCI,OAAO,EAAE,CAAC;UACVC,KAAK,EAAE,EAAE;UACTC,OAAO,EAAE,EAAE;UACXC,QAAQ,EAAE;QACZ;MACF,CAAC,CAAC;MAEFX,IAAI,IAAIG,MAAM,CAACH,IAAI,GAAG,IAAI;MAC1BC,MAAM,IAAIW,aAAa,CAACT,MAAM,CAACH,IAAI,CAAC,GAAG,CAAC;IAC1C;IAEA,MAAMI,GAAG,GAAG,IAAIhB,MAAM,CAAC;MACrBoB,OAAO,EAAE,CAAC;MACVK,IAAI,EACFlB,UAAU,CAACmB,eAAe,IAC1BvB,IAAI,CAACwB,QAAQ,CAACpB,UAAU,CAACqB,OAAO,IAAI,EAAE,CAAC,IACvC,QAAQ;MACVC,QAAQ,EAAElB;IACZ,CAAC,CAAC;IAIFK,GAAG,CAACc,UAAU,GAAGtB,YAAY,CAACsB,UAAU;IAIxC,IACEtB,YAAY,CAACuB,UAAU,KAAK,QAAQ,IACnC,CAACxB,UAAU,CAACqB,OAAO,IAAIpB,YAAY,CAACuB,UAAW,EAChD;MACAnB,IAAI,IAAI,IAAI,GAAGb,gBAAgB,CAACiC,UAAU,CAAC/B,UAAU,CAACe,GAAG,CAAC,CAAC,CAACiB,SAAS,CAAC,CAAC;IACzE;IAEA,OAAO;MACLjB,GAAG,EAAEA,GAAG;MACRJ,IAAI,EAAEA,IAAI;MACVE,SAAS,EAAEA;IACb,CAAC;EACH;EAEA,SAASU,aAAaA,CAACZ,IAAY,EAAU;IAC3C,IAAIsB,KAAK,GAAG,CAAC;IACb,IAAIC,KAAK,GAAG,CAAC,CAAC;IACd,OAAO,CAACA,KAAK,GAAGvB,IAAI,CAACwB,OAAO,CAAC,IAAI,EAAED,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE;MACrDD,KAAK,EAAE;IACT;IACA,OAAOA,KAAK;EACd;EAEA,SAASG,MAAMA,CAAC3B,WAAyB,EAAQ;IAC/C,MAAMK,MAAM,GAAGN,WAAW,CAACC,WAAW,CAAC;IAEvC,IAAIH,UAAU,CAACqB,OAAO,EAAE;MACtBxB,EAAE,CAACkC,SAAS,CAACnC,IAAI,CAACoC,OAAO,CAAChC,UAAU,CAACqB,OAAO,CAAC,EAAE;QAAEY,SAAS,EAAE;MAAK,CAAC,CAAC;MAEnE,IAAIC,SAAsC,GAAG,KAAK;MAClD,IAAIjC,YAAY,CAACuB,UAAU,IAAIvB,YAAY,CAACuB,UAAU,KAAK,QAAQ,EAAE;QACnEU,SAAS,GAAG,UAAU;MACxB,CAAC,MAAM,IAAIjC,YAAY,CAACuB,UAAU,IAAI,IAAI,IAAIhB,MAAM,CAACD,SAAS,EAAE;QAC9D2B,SAAS,GAAGpC,IAAI,CAACqC,gBAAgB,CAAC3B,MAAM,CAACH,IAAI,CAAC,GAAG,UAAU,GAAG,MAAM;MACtE;MAEA,IAAI6B,SAAS,EAAE;QACb,MAAME,MAAM,GAAGpC,UAAU,CAACqB,OAAO,GAAG,MAAM;QAC1C,IAAIa,SAAS,KAAK,UAAU,EAAE;UAC5B1B,MAAM,CAACH,IAAI,GAAGP,IAAI,CAACuC,mBAAmB,CAAC7B,MAAM,CAACH,IAAI,EAAE+B,MAAM,CAAC;QAC7D;QACAvC,EAAE,CAACyC,aAAa,CACdF,MAAM,EACNG,IAAI,CAACC,SAAS,CAAC9C,UAAU,CAACc,MAAM,CAACC,GAAe,CAAC,CACnD,CAAC;MACH;MAEAZ,EAAE,CAACyC,aAAa,CAACtC,UAAU,CAACqB,OAAO,EAAEb,MAAM,CAACH,IAAI,CAAC;IACnD,CAAC,MAAM;MACLoC,OAAO,CAACC,MAAM,CAACC,KAAK,CAACnC,MAAM,CAACH,IAAI,GAAG,IAAI,CAAC;IAC1C;EACF;EAEA,SAASuC,SAASA,CAAA,EAAoB;IACpC,OAAO,IAAIC,OAAO,CAAC,CAACC,OAAO,EAAEC,MAAM,KAAW;MAC5C,IAAI1C,IAAI,GAAG,EAAE;MAEboC,OAAO,CAACO,KAAK,CAACC,WAAW,CAAC,MAAM,CAAC;MAEjCR,OAAO,CAACO,KAAK,CAACE,EAAE,CAAC,UAAU,EAAE,YAAY;QACvC,MAAMC,KAAK,GAAGV,OAAO,CAACO,KAAK,CAACI,IAAI,CAAC,CAAC;QAClC,IAAID,KAAK,KAAK,IAAI,EAAE9C,IAAI,IAAI8C,KAAK;MACnC,CAAC,CAAC;MAEFV,OAAO,CAACO,KAAK,CAACE,EAAE,CAAC,KAAK,EAAE,YAAY;QAClCJ,OAAO,CAACzC,IAAI,CAAC;MACf,CAAC,CAAC;MACFoC,OAAO,CAACO,KAAK,CAACE,EAAE,CAAC,OAAO,EAAEH,MAAM,CAAC;IACnC,CAAC,CAAC;EACJ;EAEA,eAAeC,KAAKA,CAAA,EAAkB;IACpC,MAAM3C,IAAI,GAAG,MAAMuC,SAAS,CAAC,CAAC;IAE9B,MAAMS,GAAG,GAAG,MAAMvD,IAAI,CAACwD,aAAa,CAACtD,UAAU,CAACuD,QAAQ,EAAElD,IAAI,EAAE;MAC9D,GAAGJ,YAAY;MACfuD,cAAc,EAAE;IAClB,CAAC,CAAC;IAEF1B,MAAM,CAAC,CAACuB,GAAG,CAAC,CAAC;EACf;EAEA,eAAeI,IAAIA,CAACC,SAAmB,EAAiB;IACtD,MAAMC,UAAoB,GAAG,EAAE;IAE/BD,SAAS,CAACE,OAAO,CAAC,UAAUL,QAAQ,EAAE;MACpC,IAAI,CAAC1D,EAAE,CAACgE,UAAU,CAACN,QAAQ,CAAC,EAAE;MAE9B,MAAMO,IAAI,GAAGjE,EAAE,CAACkE,QAAQ,CAACR,QAAQ,CAAC;MAClC,IAAIO,IAAI,CAACE,WAAW,CAAC,CAAC,EAAE;QACtBL,UAAU,CAACjD,IAAI,CACb,GAAGZ,IAAI,CAACmE,oBAAoB,CAC1BV,QAAQ,EACRvD,UAAU,CAACkE,eAAe,EAC1BlE,UAAU,CAACmE,UACb,CACF,CAAC;MACH,CAAC,MAAM;QACLR,UAAU,CAACjD,IAAI,CAAC6C,QAAQ,CAAC;MAC3B;IACF,CAAC,CAAC;IAEF,MAAMa,OAAO,GAAG,MAAMvB,OAAO,CAACwB,GAAG,CAC/BV,UAAU,CAAClD,GAAG,CAAC,gBAAgB8C,QAAgB,EAAgB;MAC7D,IAAIe,cAAc,GAAGf,QAAQ;MAC7B,IAAIvD,UAAU,CAACqB,OAAO,EAAE;QACtBiD,cAAc,GAAG1E,IAAI,CAAC2E,QAAQ,CAC5B3E,IAAI,CAACoC,OAAO,CAAChC,UAAU,CAACqB,OAAO,CAAC,EAChCiD,cACF,CAAC;MACH;MACAA,cAAc,GAAG3E,KAAK,CAAC2E,cAAc,CAAC;MAEtC,IAAI;QACF,OAAO,MAAMxE,IAAI,CAAC0E,OAAO,CAACjB,QAAQ,EAAE;UAClC,GAAGtD,YAAY;UACfuD,cAAc,EAAEc,cAAc;UAI9B9C,UAAU,EACRvB,YAAY,CAACuB,UAAU,KAAK,QAAQ,GAChC,IAAI,GACJvB,YAAY,CAACuB;QACrB,CAAC,CAAC;MACJ,CAAC,CAAC,OAAOiD,GAAG,EAAE;QACZ,IAAI,CAACzE,UAAU,CAAC0E,KAAK,EAAE;UACrB,MAAMD,GAAG;QACX;QAEAE,OAAO,CAACC,KAAK,CAACH,GAAG,CAAC;QAClB,OAAO,IAAI;MACb;IACF,CAAC,CACH,CAAC;IAED3C,MAAM,CAACsC,OAAO,CAAC;EACjB;EAEA,eAAeS,KAAKA,CAACnB,SAAmB,EAAiB;IACvD,IAAI1D,UAAU,CAAC0E,KAAK,EAAE;MACpB3E,OAAO,CAAC+E,MAAM,CAAC;QAAEC,cAAc,EAAE;MAAM,CAAC,CAAC;IAC3C;IAEA,IAAI,CAAC/E,UAAU,CAACgF,gBAAgB,EAAE;MAChC,MAAMvB,IAAI,CAACC,SAAS,CAAC;IACvB;IAEA,IAAI1D,UAAU,CAAC0E,KAAK,EAAE;MACpBhB,SAAS,CAACE,OAAO,CAAC7D,OAAO,CAAC2E,KAAK,CAAC;MAEhC3E,OAAO,CAACkF,YAAY,CAAC,CAAC;MAEtBlF,OAAO,CAACmF,aAAa,CAAC,CAACC,OAAO,EAAEC,KAAK,EAAEC,KAAK,KAAK;QAC/C,MAAMC,gBAAgB,GAAGH,OAAO,CAACI,IAAI,CACnChC,QAAQ,IACNzD,IAAI,CAAC0F,qBAAqB,CAACjC,QAAQ,EAAEvD,UAAU,CAACmE,UAAU,CAAC,IAC3DT,SAAS,CAAC+B,QAAQ,CAAClC,QAAQ,CAC/B,CAAC;QACD,IAAI,CAAC+B,gBAAgB,EAAE;QAEvB,IAAItF,UAAU,CAAC0F,OAAO,EAAE;UACtBf,OAAO,CAACgB,GAAG,CAAC,GAAGP,KAAK,IAAIC,KAAK,EAAE,CAAC;QAClC;QAEA5B,IAAI,CAACC,SAAS,CAAC,CAACkC,KAAK,CAACnB,GAAG,IAAI;UAC3BE,OAAO,CAACC,KAAK,CAACH,GAAG,CAAC;QACpB,CAAC,CAAC;MACJ,CAAC,CAAC;IACJ;EACF;EAEA,IAAIzE,UAAU,CAAC0D,SAAS,CAACmC,MAAM,EAAE;IAC/B,MAAMhB,KAAK,CAAC7E,UAAU,CAAC0D,SAAS,CAAC;EACnC,CAAC,MAAM;IACL,MAAMV,KAAK,CAAC,CAAC;EACf;AACF","ignoreList":[]}
{"version":3,"names":["convertSourceMap","AnyMap","encodedMap","slash","path","fs","util","watcher","cliOptions","babelOptions","buildResult","fileResults","mapSections","code","offset","hasRawMap","result","map","push","line","column","version","names","sources","mappings","countNewlines","file","sourceMapTarget","basename","outFile","sections","sourceRoot","sourceMaps","fromObject","toComment","count","index","indexOf","output","mkdirSync","dirname","recursive","outputMap","hasDataSourcemap","mapLoc","addSourceMappingUrl","writeFileSync","JSON","stringify","process","stdout","write","readStdin","Promise","resolve","reject","stdin","setEncoding","on","chunk","read","res","transformRepl","filename","sourceFileName","walk","filenames","_filenames","forEach","existsSync","stat","statSync","isDirectory","readdirForCompilable","includeDotfiles","extensions","results","all","sourceFilename","relative","compile","err","watch","console","error","files","enable","enableGlobbing","skipInitialBuild","startWatcher","onFilesChange","changes","event","cause","actionableChange","some","isCompilableExtension","includes","verbose","log","catch","length"],"sources":["../../src/babel/file.ts"],"sourcesContent":["import convertSourceMap from \"convert-source-map\";\nimport { AnyMap, encodedMap } from \"@jridgewell/trace-mapping\";\nimport slash from \"slash\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\n\nimport * as util from \"./util.ts\";\nimport type { CmdOptions } from \"./options.ts\";\nimport * as watcher from \"./watcher.ts\";\n\nimport type {\n EncodedSourceMap,\n SectionedSourceMap,\n SourceMapInput,\n TraceMap,\n} from \"@jridgewell/trace-mapping\";\nimport type { FileResult } from \"@babel/core\";\n\ntype CompilationOutput = {\n code: string;\n map: SourceMapInput;\n hasRawMap: boolean;\n};\n\nexport default async function ({\n cliOptions,\n babelOptions,\n}: CmdOptions): Promise<void> {\n function buildResult(fileResults: FileResult[]): CompilationOutput {\n const mapSections: SectionedSourceMap[\"sections\"] = [];\n\n let code = \"\";\n let offset = 0;\n\n let hasRawMap = false;\n\n for (const result of fileResults) {\n if (!result) continue;\n\n hasRawMap = !!result.map;\n\n mapSections.push({\n offset: { line: offset, column: 0 },\n map: (result.map as EncodedSourceMap) || {\n version: 3,\n names: [],\n sources: [],\n mappings: [],\n },\n });\n\n code += result.code + \"\\n\";\n offset += countNewlines(result.code!) + 1;\n }\n\n const map = new AnyMap({\n version: 3,\n file:\n cliOptions.sourceMapTarget ||\n path.basename(cliOptions.outFile || \"\") ||\n \"stdout\",\n sections: mapSections,\n });\n // For some reason, the spec doesn't allow sourceRoot when constructing a\n // sectioned sourcemap. But AllMap returns a regular sourcemap, we can\n // freely add to with a sourceRoot.\n map.sourceRoot = babelOptions.sourceRoot;\n\n // add the inline sourcemap comment if we've either explicitly asked for inline source\n // maps, or we've requested them without any output file\n if (\n babelOptions.sourceMaps === \"inline\" ||\n (!cliOptions.outFile && babelOptions.sourceMaps)\n ) {\n code += \"\\n\" + convertSourceMap.fromObject(encodedMap(map)).toComment();\n }\n\n return {\n map: map,\n code: code,\n hasRawMap: hasRawMap,\n };\n }\n\n function countNewlines(code: string): number {\n let count = 0;\n let index = -1;\n while ((index = code.indexOf(\"\\n\", index + 1)) !== -1) {\n count++;\n }\n return count;\n }\n\n function output(fileResults: FileResult[]): void {\n const result = buildResult(fileResults);\n\n if (cliOptions.outFile) {\n fs.mkdirSync(path.dirname(cliOptions.outFile), { recursive: true });\n\n let outputMap: \"both\" | \"external\" | false = false;\n if (babelOptions.sourceMaps && babelOptions.sourceMaps !== \"inline\") {\n outputMap = \"external\";\n } else if (babelOptions.sourceMaps == null && result.hasRawMap) {\n outputMap = util.hasDataSourcemap(result.code) ? \"external\" : \"both\";\n }\n\n if (outputMap) {\n const mapLoc = cliOptions.outFile + \".map\";\n if (outputMap === \"external\") {\n result.code = util.addSourceMappingUrl(result.code, mapLoc);\n }\n fs.writeFileSync(\n mapLoc,\n JSON.stringify(encodedMap(result.map as TraceMap)),\n );\n }\n\n fs.writeFileSync(cliOptions.outFile, result.code);\n } else {\n process.stdout.write(result.code + \"\\n\");\n }\n }\n\n function readStdin(): Promise<string> {\n return new Promise((resolve, reject): void => {\n let code = \"\";\n\n process.stdin.setEncoding(\"utf8\");\n\n process.stdin.on(\"readable\", function () {\n const chunk = process.stdin.read();\n if (chunk !== null) code += chunk;\n });\n\n process.stdin.on(\"end\", function () {\n resolve(code);\n });\n process.stdin.on(\"error\", reject);\n });\n }\n\n async function stdin(): Promise<void> {\n const code = await readStdin();\n\n const res = await util.transformRepl(cliOptions.filename, code, {\n ...babelOptions,\n sourceFileName: \"stdin\",\n });\n\n output([res]);\n }\n\n async function walk(filenames: string[]): Promise<void> {\n const _filenames: string[] = [];\n\n filenames.forEach(function (filename) {\n if (!fs.existsSync(filename)) return;\n\n const stat = fs.statSync(filename);\n if (stat.isDirectory()) {\n _filenames.push(\n ...util.readdirForCompilable(\n filename,\n cliOptions.includeDotfiles,\n cliOptions.extensions,\n ),\n );\n } else {\n _filenames.push(filename);\n }\n });\n\n const results = await Promise.all(\n _filenames.map(async function (filename: string): Promise<any> {\n let sourceFilename = filename;\n if (cliOptions.outFile) {\n sourceFilename = path.relative(\n path.dirname(cliOptions.outFile),\n sourceFilename,\n );\n }\n sourceFilename = slash(sourceFilename);\n\n try {\n return await util.compile(filename, {\n ...babelOptions,\n sourceFileName: sourceFilename,\n // Since we're compiling everything to be merged together,\n // \"inline\" applies to the final output file, but not to the individual\n // files being concatenated.\n sourceMaps:\n babelOptions.sourceMaps === \"inline\"\n ? true\n : babelOptions.sourceMaps,\n });\n } catch (err) {\n if (!cliOptions.watch) {\n throw err;\n }\n\n console.error(err);\n return null;\n }\n }),\n );\n\n output(results);\n }\n\n async function files(filenames: string[]): Promise<void> {\n if (cliOptions.watch) {\n watcher.enable({ enableGlobbing: false });\n }\n\n if (!cliOptions.skipInitialBuild) {\n await walk(filenames);\n }\n\n if (cliOptions.watch) {\n filenames.forEach(watcher.watch);\n\n watcher.startWatcher();\n\n watcher.onFilesChange((changes, event, cause) => {\n const actionableChange = changes.some(\n filename =>\n util.isCompilableExtension(filename, cliOptions.extensions) ||\n filenames.includes(filename),\n );\n if (!actionableChange) return;\n\n if (cliOptions.verbose) {\n console.log(`${event} ${cause}`);\n }\n\n walk(filenames).catch(err => {\n console.error(err);\n });\n });\n }\n }\n\n if (cliOptions.filenames.length) {\n await files(cliOptions.filenames);\n } else {\n await stdin();\n }\n}\n"],"mappings":"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","ignoreList":[]}

@@ -43,3 +43,3 @@ import fs from "node:fs";

program.argument("[files...]", "List of files to compile.");
program.version("8.0.0-rc.2" + " (@babel/core " + version + ")");
program.version("8.0.0-rc.3" + " (@babel/core " + version + ")");
program.usage("[options] [files...]");

@@ -46,0 +46,0 @@ export default function parseArgv(args) {

@@ -1,1 +0,1 @@

{"version":3,"names":["babel","path","fs","watcher","chmod","src","dest","chmodSync","statSync","mode","_","console","warn","alphasort","a","b","localeCompare","readdir","dirname","includeDotfiles","filter","readdirSync","recursive","withFileTypes","dirent","isDirectory","filename","name","startsWith","map","join","parentPath","sort","readdirForCompilable","altExts","isCompilableExtension","exts","DEFAULT_EXTENSIONS","ext","extname","includes","addSourceMappingUrl","code","loc","basename","hasDataSourcemap","pos","lastIndexOf","length","CALLER","supportsStaticESM","supportsDynamicImport","supportsExportNamespaceFrom","transformRepl","opts","sourceMaps","caller","Promise","resolve","reject","transform","err","result","compile","transformFileAsync","updateExternalDependencies","externalDependencies","deleteDir","rmSync","force","process","on","error","exitCode","withExtension","newBasename","debounce","fn","time","timer","debounced","clearTimeout","setTimeout","flush"],"sources":["../../src/babel/util.ts"],"sourcesContent":["import * as babel from \"@babel/core\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\n\nimport * as watcher from \"./watcher.ts\";\n\nimport type { FileResult, InputOptions } from \"@babel/core\";\n\nexport function chmod(src: string, dest: string): void {\n try {\n fs.chmodSync(dest, fs.statSync(src).mode);\n } catch (_) {\n console.warn(`Cannot change permissions of ${dest}`);\n }\n}\n\nexport function alphasort(a: string, b: string) {\n return a.localeCompare(b, \"en\");\n}\n\ntype ReaddirFilter = (filename: string) => boolean;\n\nexport function readdir(\n dirname: string,\n includeDotfiles: boolean,\n filter?: ReaddirFilter,\n): string[] {\n return (\n fs\n .readdirSync(dirname, { recursive: true, withFileTypes: true })\n .filter(dirent => {\n // exclude directory entries from readdir results\n if (dirent.isDirectory()) return false;\n const filename = dirent.name;\n return (\n (includeDotfiles || !filename.startsWith(\".\")) &&\n (!filter || filter(filename))\n );\n })\n .map(dirent => path.join(dirent.parentPath, dirent.name))\n // readdirSyncRecursive conducts BFS, sort the entries so we can match the DFS behaviour of fs-readdir-recursive\n // https://github.com/nodejs/node/blob/d6b12f5b77e35c58a611d614cf0aac674ec2c3ed/lib/fs.js#L1421\n .sort(alphasort)\n );\n}\n\nexport function readdirForCompilable(\n dirname: string,\n includeDotfiles: boolean,\n altExts?: string[],\n): string[] {\n return readdir(dirname, includeDotfiles, function (filename) {\n return isCompilableExtension(filename, altExts);\n });\n}\n\n/**\n * Test if a filename ends with a compilable extension.\n */\nexport function isCompilableExtension(\n filename: string,\n altExts?: readonly string[],\n): boolean {\n const exts = altExts || babel.DEFAULT_EXTENSIONS;\n const ext = path.extname(filename);\n return exts.includes(ext);\n}\n\nexport function addSourceMappingUrl(code: string, loc: string): string {\n return code + \"\\n//# sourceMappingURL=\" + path.basename(loc);\n}\n\nexport function hasDataSourcemap(code: string): boolean {\n const pos = code.lastIndexOf(\"\\n\", code.length - 2);\n return pos !== -1 && code.lastIndexOf(\"//# sourceMappingURL\") < pos;\n}\n\nconst CALLER = {\n name: \"@babel/cli\",\n supportsStaticESM: false,\n supportsDynamicImport: false,\n supportsExportNamespaceFrom: false,\n};\n\nexport function transformRepl(filename: string, code: string, opts: any) {\n opts = {\n ...opts,\n sourceMaps: opts.sourceMaps === \"inline\" ? true : opts.sourceMaps,\n caller: CALLER,\n filename,\n };\n\n return new Promise<FileResult>((resolve, reject) => {\n babel.transform(code, opts, (err, result) => {\n if (err) reject(err);\n else resolve(result);\n });\n });\n}\n\nexport async function compile(filename: string, opts: InputOptions) {\n opts = {\n ...opts,\n caller: CALLER,\n };\n\n const result = await babel.transformFileAsync(filename, opts);\n\n if (result) {\n watcher.updateExternalDependencies(filename, result.externalDependencies);\n }\n\n return result;\n}\n\nexport function deleteDir(path: string): void {\n fs.rmSync(path, { force: true, recursive: true });\n}\n\nprocess.on(\"uncaughtException\", function (err) {\n console.error(err);\n process.exitCode = 1;\n});\n\nexport function withExtension(filename: string, ext: string = \".js\") {\n const newBasename = path.basename(filename, path.extname(filename)) + ext;\n return path.join(path.dirname(filename), newBasename);\n}\n\nexport function debounce(fn: () => void, time: number) {\n let timer: NodeJS.Timeout;\n function debounced() {\n clearTimeout(timer);\n timer = setTimeout(fn, time);\n }\n debounced.flush = () => {\n clearTimeout(timer);\n fn();\n };\n return debounced;\n}\n"],"mappings":"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","ignoreList":[]}
{"version":3,"names":["babel","path","fs","watcher","chmod","src","dest","chmodSync","statSync","mode","_","console","warn","alphasort","a","b","localeCompare","readdir","dirname","includeDotfiles","filter","readdirSync","recursive","withFileTypes","dirent","isDirectory","filename","name","startsWith","map","join","parentPath","sort","readdirForCompilable","altExts","isCompilableExtension","exts","DEFAULT_EXTENSIONS","ext","extname","includes","addSourceMappingUrl","code","loc","basename","hasDataSourcemap","pos","lastIndexOf","length","CALLER","supportsStaticESM","supportsDynamicImport","supportsExportNamespaceFrom","transformRepl","opts","sourceMaps","caller","Promise","resolve","reject","transform","err","result","compile","transformFileAsync","updateExternalDependencies","externalDependencies","deleteDir","rmSync","force","process","on","error","exitCode","withExtension","newBasename","debounce","fn","time","timer","debounced","clearTimeout","setTimeout","flush"],"sources":["../../src/babel/util.ts"],"sourcesContent":["import * as babel from \"@babel/core\";\nimport path from \"node:path\";\nimport fs from \"node:fs\";\n\nimport * as watcher from \"./watcher.ts\";\n\nimport type { FileResult, InputOptions } from \"@babel/core\";\n\nexport function chmod(src: string, dest: string): void {\n try {\n fs.chmodSync(dest, fs.statSync(src).mode);\n } catch (_) {\n console.warn(`Cannot change permissions of ${dest}`);\n }\n}\n\nexport function alphasort(a: string, b: string) {\n return a.localeCompare(b, \"en\");\n}\n\ntype ReaddirFilter = (filename: string) => boolean;\n\nexport function readdir(\n dirname: string,\n includeDotfiles: boolean,\n filter?: ReaddirFilter,\n): string[] {\n return (\n fs\n .readdirSync(dirname, { recursive: true, withFileTypes: true })\n .filter(dirent => {\n // exclude directory entries from readdir results\n if (dirent.isDirectory()) return false;\n const filename = dirent.name;\n return (\n (includeDotfiles || !filename.startsWith(\".\")) &&\n (!filter || filter(filename))\n );\n })\n .map(dirent => path.join(dirent.parentPath, dirent.name))\n // readdirSyncRecursive conducts BFS, sort the entries so we can match the DFS behaviour of fs-readdir-recursive\n // https://github.com/nodejs/node/blob/d6b12f5b77e35c58a611d614cf0aac674ec2c3ed/lib/fs.js#L1421\n .sort(alphasort)\n );\n}\n\nexport function readdirForCompilable(\n dirname: string,\n includeDotfiles: boolean,\n altExts?: string[],\n): string[] {\n return readdir(dirname, includeDotfiles, function (filename) {\n return isCompilableExtension(filename, altExts);\n });\n}\n\n/**\n * Test if a filename ends with a compilable extension.\n */\nexport function isCompilableExtension(\n filename: string,\n altExts?: readonly string[],\n): boolean {\n const exts = altExts || babel.DEFAULT_EXTENSIONS;\n const ext = path.extname(filename);\n return exts.includes(ext);\n}\n\nexport function addSourceMappingUrl(code: string, loc: string): string {\n return code + \"\\n//# sourceMappingURL=\" + path.basename(loc);\n}\n\nexport function hasDataSourcemap(code: string): boolean {\n const pos = code.lastIndexOf(\"\\n\", code.length - 2);\n return pos !== -1 && code.lastIndexOf(\"//# sourceMappingURL\") < pos;\n}\n\nconst CALLER = {\n name: \"@babel/cli\",\n supportsStaticESM: false,\n supportsDynamicImport: false,\n supportsExportNamespaceFrom: false,\n};\n\nexport function transformRepl(filename: string, code: string, opts: any) {\n opts = {\n ...opts,\n sourceMaps: opts.sourceMaps === \"inline\" ? true : opts.sourceMaps,\n caller: CALLER,\n filename,\n };\n\n return new Promise<FileResult>((resolve, reject) => {\n babel.transform(code, opts, (err, result) => {\n if (err) reject(err);\n else resolve(result!);\n });\n });\n}\n\nexport async function compile(filename: string, opts: InputOptions) {\n opts = {\n ...opts,\n caller: CALLER,\n };\n\n const result = await babel.transformFileAsync(filename, opts);\n\n if (result) {\n watcher.updateExternalDependencies(filename, result.externalDependencies);\n }\n\n return result;\n}\n\nexport function deleteDir(path: string): void {\n fs.rmSync(path, { force: true, recursive: true });\n}\n\nprocess.on(\"uncaughtException\", function (err) {\n console.error(err);\n process.exitCode = 1;\n});\n\nexport function withExtension(filename: string, ext: string = \".js\") {\n const newBasename = path.basename(filename, path.extname(filename)) + ext;\n return path.join(path.dirname(filename), newBasename);\n}\n\nexport function debounce(fn: () => void, time: number) {\n let timer: NodeJS.Timeout;\n function debounced() {\n clearTimeout(timer);\n timer = setTimeout(fn, time);\n }\n debounced.flush = () => {\n clearTimeout(timer);\n fn();\n };\n return debounced;\n}\n"],"mappings":"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","ignoreList":[]}

@@ -1,1 +0,1 @@

{"version":3,"names":["createRequire","path","fileToDeps","Map","depToFiles","isWatchMode","watcher","watchQueue","Set","hasStarted","enable","enableGlobbing","FSWatcher","requireChokidar","options","disableGlobbing","persistent","ignoreInitial","awaitWriteFinish","stabilityThreshold","pollInterval","on","unwatchFile","startWatcher","dep","add","clear","console","log","watch","filename","Error","resolve","onFilesChange","callback","event","absoluteFile","get","updateExternalDependencies","dependencies","absFilename","absDependencies","Array","from","deps","has","removeFileDependency","set","delete","size","unwatch","require","import","meta","url","err","error"],"sources":["../../src/babel/watcher.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport path from \"node:path\";\nimport type { WatchOptions, FSWatcher } from \"chokidar\";\n\nconst fileToDeps = new Map<string, Set<string>>();\nconst depToFiles = new Map<string, Set<string>>();\n\nlet isWatchMode = false;\nlet watcher: FSWatcher;\nconst watchQueue = new Set<string>();\nlet hasStarted = false;\n\nexport function enable({ enableGlobbing }: { enableGlobbing: boolean }) {\n isWatchMode = true;\n\n const { FSWatcher } = requireChokidar();\n\n const options: WatchOptions = {\n disableGlobbing: !enableGlobbing,\n persistent: true,\n ignoreInitial: true,\n awaitWriteFinish: {\n stabilityThreshold: 50,\n pollInterval: 10,\n },\n };\n watcher = new FSWatcher(options);\n\n watcher.on(\"unlink\", unwatchFile);\n}\n\nexport function startWatcher() {\n hasStarted = true;\n\n for (const dep of watchQueue) {\n watcher.add(dep);\n }\n watchQueue.clear();\n\n watcher.on(\"ready\", () => {\n console.log(\"The watcher is ready.\");\n });\n}\n\nexport function watch(filename: string): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .watch called when not in watch mode.\",\n );\n }\n\n if (!hasStarted) {\n watchQueue.add(path.resolve(filename));\n } else {\n watcher.add(path.resolve(filename));\n }\n}\n\n/**\n * Call @param callback whenever a dependency (source file)/\n * external dependency (non-source file) changes.\n *\n * Handles mapping external dependencies to their corresponding\n * dependencies.\n */\nexport function onFilesChange(\n callback: (filenames: string[], event: string, cause: string) => void,\n): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .onFilesChange called when not in watch mode.\",\n );\n }\n\n watcher.on(\"all\", (event, filename) => {\n if (event !== \"change\" && event !== \"add\") return;\n\n const absoluteFile = path.resolve(filename);\n callback(\n [absoluteFile, ...(depToFiles.get(absoluteFile) ?? [])],\n event,\n absoluteFile,\n );\n });\n}\n\nexport function updateExternalDependencies(\n filename: string,\n dependencies: Set<string>,\n) {\n if (!isWatchMode) return;\n\n // Use absolute paths\n const absFilename = path.resolve(filename);\n const absDependencies = new Set(\n Array.from(dependencies, dep => path.resolve(dep)),\n );\n\n const deps = fileToDeps.get(absFilename);\n if (deps) {\n for (const dep of deps) {\n if (!absDependencies.has(dep)) {\n removeFileDependency(absFilename, dep);\n }\n }\n }\n for (const dep of absDependencies) {\n let deps = depToFiles.get(dep);\n if (!deps) {\n depToFiles.set(dep, (deps = new Set()));\n\n if (!hasStarted) {\n watchQueue.add(dep);\n } else {\n watcher.add(dep);\n }\n }\n\n deps.add(absFilename);\n }\n\n fileToDeps.set(absFilename, absDependencies);\n}\n\nfunction removeFileDependency(filename: string, dep: string) {\n const deps = depToFiles.get(dep);\n deps.delete(filename);\n\n if (deps.size === 0) {\n depToFiles.delete(dep);\n\n if (!hasStarted) {\n watchQueue.delete(dep);\n } else {\n watcher.unwatch(dep);\n }\n }\n}\n\nfunction unwatchFile(filename: string) {\n const deps = fileToDeps.get(filename);\n if (!deps) return;\n\n for (const dep of deps) {\n removeFileDependency(filename, dep);\n }\n fileToDeps.delete(filename);\n}\n\nfunction requireChokidar(): any {\n const require = createRequire(import.meta.url);\n\n try {\n return require(\"chokidar\");\n } catch (err) {\n console.error(\n \"The optional dependency chokidar failed to install and is required for \" +\n \"--watch. Chokidar is likely not supported on your platform.\",\n );\n throw err;\n }\n}\n"],"mappings":"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","ignoreList":[]}
{"version":3,"names":["createRequire","path","fileToDeps","Map","depToFiles","isWatchMode","watcher","watchQueue","Set","hasStarted","enable","enableGlobbing","FSWatcher","requireChokidar","options","disableGlobbing","persistent","ignoreInitial","awaitWriteFinish","stabilityThreshold","pollInterval","on","unwatchFile","startWatcher","dep","add","clear","console","log","watch","filename","Error","resolve","onFilesChange","callback","event","absoluteFile","get","updateExternalDependencies","dependencies","absFilename","absDependencies","Array","from","deps","has","removeFileDependency","set","delete","size","unwatch","require","import","meta","url","err","error"],"sources":["../../src/babel/watcher.ts"],"sourcesContent":["import { createRequire } from \"node:module\";\nimport path from \"node:path\";\nimport type { WatchOptions, FSWatcher } from \"chokidar\";\n\nconst fileToDeps = new Map<string, Set<string>>();\nconst depToFiles = new Map<string, Set<string>>();\n\nlet isWatchMode = false;\nlet watcher: FSWatcher;\nconst watchQueue = new Set<string>();\nlet hasStarted = false;\n\nexport function enable({ enableGlobbing }: { enableGlobbing: boolean }) {\n isWatchMode = true;\n\n const { FSWatcher } = requireChokidar();\n\n const options: WatchOptions = {\n disableGlobbing: !enableGlobbing,\n persistent: true,\n ignoreInitial: true,\n awaitWriteFinish: {\n stabilityThreshold: 50,\n pollInterval: 10,\n },\n };\n watcher = new FSWatcher(options);\n\n watcher.on(\"unlink\", unwatchFile);\n}\n\nexport function startWatcher() {\n hasStarted = true;\n\n for (const dep of watchQueue) {\n watcher.add(dep);\n }\n watchQueue.clear();\n\n watcher.on(\"ready\", () => {\n console.log(\"The watcher is ready.\");\n });\n}\n\nexport function watch(filename: string): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .watch called when not in watch mode.\",\n );\n }\n\n if (!hasStarted) {\n watchQueue.add(path.resolve(filename));\n } else {\n watcher.add(path.resolve(filename));\n }\n}\n\n/**\n * Call @param callback whenever a dependency (source file)/\n * external dependency (non-source file) changes.\n *\n * Handles mapping external dependencies to their corresponding\n * dependencies.\n */\nexport function onFilesChange(\n callback: (filenames: string[], event: string, cause: string) => void,\n): void {\n if (!isWatchMode) {\n throw new Error(\n \"Internal Babel error: .onFilesChange called when not in watch mode.\",\n );\n }\n\n watcher.on(\"all\", (event, filename) => {\n if (event !== \"change\" && event !== \"add\") return;\n\n const absoluteFile = path.resolve(filename);\n callback(\n [absoluteFile, ...(depToFiles.get(absoluteFile) ?? [])],\n event,\n absoluteFile,\n );\n });\n}\n\nexport function updateExternalDependencies(\n filename: string,\n dependencies: Set<string>,\n) {\n if (!isWatchMode) return;\n\n // Use absolute paths\n const absFilename = path.resolve(filename);\n const absDependencies = new Set(\n Array.from(dependencies, dep => path.resolve(dep)),\n );\n\n const deps = fileToDeps.get(absFilename);\n if (deps) {\n for (const dep of deps) {\n if (!absDependencies.has(dep)) {\n removeFileDependency(absFilename, dep);\n }\n }\n }\n for (const dep of absDependencies) {\n let deps = depToFiles.get(dep);\n if (!deps) {\n depToFiles.set(dep, (deps = new Set()));\n\n if (!hasStarted) {\n watchQueue.add(dep);\n } else {\n watcher.add(dep);\n }\n }\n\n deps.add(absFilename);\n }\n\n fileToDeps.set(absFilename, absDependencies);\n}\n\nfunction removeFileDependency(filename: string, dep: string) {\n const deps = depToFiles.get(dep)!;\n deps.delete(filename);\n\n if (deps.size === 0) {\n depToFiles.delete(dep);\n\n if (!hasStarted) {\n watchQueue.delete(dep);\n } else {\n watcher.unwatch(dep);\n }\n }\n}\n\nfunction unwatchFile(filename: string) {\n const deps = fileToDeps.get(filename);\n if (!deps) return;\n\n for (const dep of deps) {\n removeFileDependency(filename, dep);\n }\n fileToDeps.delete(filename);\n}\n\nfunction requireChokidar(): any {\n const require = createRequire(import.meta.url);\n\n try {\n return require(\"chokidar\");\n } catch (err) {\n console.error(\n \"The optional dependency chokidar failed to install and is required for \" +\n \"--watch. Chokidar is likely not supported on your platform.\",\n );\n throw err;\n }\n}\n"],"mappings":"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","ignoreList":[]}
{
"name": "@babel/cli",
"version": "8.0.0-rc.2",
"version": "8.0.0-rc.3",
"description": "Babel command line.",

@@ -37,7 +37,7 @@ "author": "The Babel Team (https://babel.dev/team)",

"peerDependencies": {
"@babel/core": "^8.0.0-rc.2"
"@babel/core": "^8.0.0-rc.3"
},
"devDependencies": {
"@babel/core": "^8.0.0-rc.2",
"@babel/helper-transform-fixture-test-runner": "^8.0.0-rc.2",
"@babel/core": "^8.0.0-rc.3",
"@babel/helper-transform-fixture-test-runner": "^8.0.0-rc.3",
"@types/fs-readdir-recursive": "^1.1.0",

@@ -54,6 +54,2 @@ "@types/glob": "^7.2.0",

"exports": {
".": {
"types": "./lib/index.d.ts",
"default": "./lib/index.js"
},
"./package.json": "./package.json"

@@ -60,0 +56,0 @@ },

#!/usr/bin/env node
import mod from "node:module";
import "../lib/babel/index.js";
mod.enableCompileCache?.();