Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@babel/core

Package Overview
Dependencies
Maintainers
4
Versions
227
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@babel/core - npm Package Compare versions

Comparing version
8.0.0-rc.5
to
8.0.0-rc.6
+14
lib/fs-shared.js
import fs from 'node:fs';
import gensync from 'gensync';
const readFile = gensync({
sync: fs.readFileSync,
errback: fs.readFile
});
const stat = gensync({
sync: fs.statSync,
errback: fs.stat
});
export { readFile, stat };
//# sourceMappingURL=fs-shared.js.map
{"version":3,"file":"fs-shared.js","sources":["../src/gensync-utils/fs.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport gensync from \"gensync\";\n\nexport const readFile = gensync<[filepath: string, encoding: \"utf8\"], string>({\n sync: fs.readFileSync,\n errback: fs.readFile,\n});\n\nexport const stat = gensync({\n sync: fs.statSync,\n errback: fs.stat,\n});\n"],"names":["readFile","gensync","sync","fs","readFileSync","errback","stat","statSync"],"mappings":";;;AAGO,MAAMA,QAAQ,GAAGC,OAAO,CAA+C;EAC5EC,IAAI,EAAEC,EAAE,CAACC,YAAY;EACrBC,OAAO,EAAEF,EAAE,CAACH;AACd,CAAC;AAEM,MAAMM,IAAI,GAAGL,OAAO,CAAC;EAC1BC,IAAI,EAAEC,EAAE,CAACI,QAAQ;EACjBF,OAAO,EAAEF,EAAE,CAACG;AACd,CAAC;;;;"}
function readInputSourceMapFile() {
throw new Error("Reading input source map files is not supported in browsers");
}
export { readInputSourceMapFile as default };
//# sourceMappingURL=read-input-source-map-file-browser.js.map
{"version":3,"file":"read-input-source-map-file-browser.js","sources":["../../src/transformation/read-input-source-map-file-browser.ts"],"sourcesContent":["export default function readInputSourceMapFile(): never {\n throw new Error(\n \"Reading input source map files is not supported in browsers\",\n );\n}\n"],"names":["readInputSourceMapFile","Error"],"mappings":"AAAe,SAASA,sBAAsBA,GAAU;AACtD,EAAA,MAAM,IAAIC,KAAK,CACb,6DACF,CAAC;AACH;;;;"}
import fs from 'node:fs';
import path from 'node:path';
import { findUpSync } from 'find-up-simple';
import { createDebug } from 'obug';
import convertSourceMap from 'convert-source-map';
const debug = createDebug("babel:transform:file");
function getInputMapPath(filename, root, inputMapURL) {
const inputFileDir = path.dirname(filename);
const inputMapPath = path.resolve(inputFileDir, inputMapURL);
const relativeToInputFileDir = path.relative(inputFileDir, inputMapPath);
if (relativeToInputFileDir.startsWith("..") || path.isAbsolute(relativeToInputFileDir)) {
const inputPackageJSONPath = findUpSync("package.json", {
cwd: inputFileDir,
stopAt: root
});
const inputFileRoot = inputPackageJSONPath ? path.dirname(inputPackageJSONPath) : root;
const relativeInputMapPath = path.relative(inputFileRoot, inputMapPath);
if (relativeInputMapPath.startsWith("..") || path.isAbsolute(relativeInputMapPath)) {
debug(`discarding input sourcemap "${inputMapPath}" outside of package root "${inputFileRoot}"`);
return null;
}
}
return inputMapPath;
}
function readInputSourceMapFile(filename, root, inputMapURL) {
const inputMapPath = getInputMapPath(filename, root, inputMapURL);
if (inputMapPath) {
const inputMapContent = fs.readFileSync(inputMapPath, "utf8");
return convertSourceMap.fromJSON(inputMapContent);
}
return null;
}
export { readInputSourceMapFile as default };
//# sourceMappingURL=read-input-source-map-file.js.map
{"version":3,"file":"read-input-source-map-file.js","sources":["../../src/transformation/read-input-source-map-file.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { findUpSync } from \"find-up-simple\";\nimport { createDebug } from \"obug\";\nimport convertSourceMap from \"convert-source-map\";\nimport type { SourceMapConverter } from \"convert-source-map\";\n\nconst debug = createDebug(\"babel:transform:file\");\n\nfunction getInputMapPath(\n filename: string,\n root: string,\n inputMapURL: string,\n): string | null {\n const inputFileDir = path.dirname(filename);\n const inputMapPath = path.resolve(inputFileDir, inputMapURL);\n const relativeToInputFileDir = path.relative(inputFileDir, inputMapPath);\n\n if (\n relativeToInputFileDir.startsWith(\"..\") ||\n path.isAbsolute(relativeToInputFileDir)\n ) {\n const inputPackageJSONPath = findUpSync(\"package.json\", {\n cwd: inputFileDir,\n stopAt: root,\n });\n const inputFileRoot = inputPackageJSONPath\n ? path.dirname(inputPackageJSONPath)\n : root;\n const relativeInputMapPath = path.relative(inputFileRoot, inputMapPath);\n if (\n relativeInputMapPath.startsWith(\"..\") ||\n path.isAbsolute(relativeInputMapPath)\n ) {\n debug(\n `discarding input sourcemap \"${inputMapPath}\" outside of package root \"${inputFileRoot}\"`,\n );\n return null;\n }\n }\n return inputMapPath;\n}\n\nexport default function readInputSourceMapFile(\n filename: string,\n root: string,\n inputMapURL: string,\n): SourceMapConverter | null {\n const inputMapPath = getInputMapPath(filename, root, inputMapURL);\n if (inputMapPath) {\n const inputMapContent = fs.readFileSync(inputMapPath, \"utf8\");\n return convertSourceMap.fromJSON(inputMapContent);\n }\n return null;\n}\n"],"names":["debug","createDebug","getInputMapPath","filename","root","inputMapURL","inputFileDir","path","dirname","inputMapPath","resolve","relativeToInputFileDir","relative","startsWith","isAbsolute","inputPackageJSONPath","findUpSync","cwd","stopAt","inputFileRoot","relativeInputMapPath","readInputSourceMapFile","inputMapContent","fs","readFileSync","convertSourceMap","fromJSON"],"mappings":";;;;;;AAOA,MAAMA,KAAK,GAAGC,WAAW,CAAC,sBAAsB,CAAC;AAEjD,SAASC,eAAeA,CACtBC,QAAgB,EAChBC,IAAY,EACZC,WAAmB,EACJ;AACf,EAAA,MAAMC,YAAY,GAAGC,IAAI,CAACC,OAAO,CAACL,QAAQ,CAAC;EAC3C,MAAMM,YAAY,GAAGF,IAAI,CAACG,OAAO,CAACJ,YAAY,EAAED,WAAW,CAAC;EAC5D,MAAMM,sBAAsB,GAAGJ,IAAI,CAACK,QAAQ,CAACN,YAAY,EAAEG,YAAY,CAAC;AAExE,EAAA,IACEE,sBAAsB,CAACE,UAAU,CAAC,IAAI,CAAC,IACvCN,IAAI,CAACO,UAAU,CAACH,sBAAsB,CAAC,EACvC;AACA,IAAA,MAAMI,oBAAoB,GAAGC,UAAU,CAAC,cAAc,EAAE;AACtDC,MAAAA,GAAG,EAAEX,YAAY;AACjBY,MAAAA,MAAM,EAAEd;AACV,KAAC,CAAC;IACF,MAAMe,aAAa,GAAGJ,oBAAoB,GACtCR,IAAI,CAACC,OAAO,CAACO,oBAAoB,CAAC,GAClCX,IAAI;IACR,MAAMgB,oBAAoB,GAAGb,IAAI,CAACK,QAAQ,CAACO,aAAa,EAAEV,YAAY,CAAC;AACvE,IAAA,IACEW,oBAAoB,CAACP,UAAU,CAAC,IAAI,CAAC,IACrCN,IAAI,CAACO,UAAU,CAACM,oBAAoB,CAAC,EACrC;AACApB,MAAAA,KAAK,CACH,CAAA,4BAAA,EAA+BS,YAAY,CAAA,2BAAA,EAA8BU,aAAa,GACxF,CAAC;AACD,MAAA,OAAO,IAAI;AACb,IAAA;AACF,EAAA;AACA,EAAA,OAAOV,YAAY;AACrB;AAEe,SAASY,sBAAsBA,CAC5ClB,QAAgB,EAChBC,IAAY,EACZC,WAAmB,EACQ;EAC3B,MAAMI,YAAY,GAAGP,eAAe,CAACC,QAAQ,EAAEC,IAAI,EAAEC,WAAW,CAAC;AACjE,EAAA,IAAII,YAAY,EAAE;IAChB,MAAMa,eAAe,GAAGC,EAAE,CAACC,YAAY,CAACf,YAAY,EAAE,MAAM,CAAC;AAC7D,IAAA,OAAOgB,gBAAgB,CAACC,QAAQ,CAACJ,eAAe,CAAC;AACnD,EAAA;AACA,EAAA,OAAO,IAAI;AACb;;;;"}
+1
-1

@@ -102,3 +102,3 @@ import gensync from 'gensync';

const futureCache = new CallCache();
return function* cachedFunction(arg, data) {
return function* cachedFunction(arg, data = undefined) {
const asyncContext = yield* isAsync();

@@ -105,0 +105,0 @@ const callCache = asyncContext ? callCacheAsync : callCacheSync;

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

{"version":3,"file":"caching-shared.js","sources":["../src/gensync-utils/async.ts","../src/config/util.ts","../src/config/caching.ts"],"sourcesContent":["import gensync, { type Gensync, type Handler, type Callback } from \"gensync\";\n\ntype MaybePromise<T> = T | Promise<T>;\n\nconst runGenerator: {\n sync<Return>(gen: Handler<Return>): Return;\n async<Return>(gen: Handler<Return>): Promise<Return>;\n errback<Return>(gen: Handler<Return>, cb: Callback<Return>): void;\n} = gensync(function* (item: Handler<any>): Handler<any> {\n return yield* item;\n});\n\n// This Gensync returns true if the current execution context is\n// asynchronous, otherwise it returns false.\nexport const isAsync = gensync({\n sync: () => false,\n errback: cb => cb(null, true),\n});\n\n// This function wraps any functions (which could be either synchronous or\n// asynchronous) with a Gensync. If the wrapped function returns a promise\n// but the current execution context is synchronous, it will throw the\n// provided error.\n// This is used to handle user-provided functions which could be asynchronous.\nexport function maybeAsync<Args extends unknown[], Return>(\n fn: (...args: Args) => Return,\n message: string,\n): Gensync<Args, Return> {\n return gensync({\n sync(...args) {\n const result = fn.apply(this, args);\n if (isThenable(result)) throw new Error(message);\n return result;\n },\n async(...args) {\n return Promise.resolve(fn.apply(this, args));\n },\n });\n}\n\nconst withKind = gensync({\n sync: cb => cb(\"sync\"),\n async: async cb => cb(\"async\"),\n}) as <T>(cb: (kind: \"sync\" | \"async\") => MaybePromise<T>) => Handler<T>;\n\n// This function wraps a generator (or a Gensync) into another function which,\n// when called, will run the provided generator in a sync or async way, depending\n// on the execution context where this forwardAsync function is called.\n// This is useful, for example, when passing a callback to a function which isn't\n// aware of gensync, but it only knows about synchronous and asynchronous functions.\n// An example is cache.using, which being exposed to the user must be as simple as\n// possible:\n// yield* forwardAsync(gensyncFn, wrappedFn =>\n// cache.using(x => {\n// // Here we don't know about gensync. wrappedFn is a\n// // normal sync or async function\n// return wrappedFn(x);\n// })\n// )\nexport function forwardAsync<Args extends unknown[], Return>(\n action: (...args: Args) => Handler<Return>,\n cb: (\n adapted: (...args: Args) => MaybePromise<Return>,\n ) => MaybePromise<Return>,\n): Handler<Return> {\n const g = gensync(action);\n return withKind(kind => {\n const adapted = g[kind];\n return cb(adapted);\n });\n}\n\n// If the given generator is executed asynchronously, the first time that it\n// is paused (i.e. When it yields a gensync generator which can't be run\n// synchronously), call the \"firstPause\" callback.\nexport const onFirstPause = gensync<\n [gen: Handler<unknown>, firstPause: () => void],\n unknown\n>({\n name: \"onFirstPause\",\n arity: 2,\n sync: function (item) {\n return runGenerator.sync(item);\n },\n errback: function (item, firstPause, cb) {\n let completed = false;\n\n runGenerator.errback(item, (err, value) => {\n completed = true;\n cb(err, value);\n });\n\n if (!completed) {\n firstPause();\n }\n },\n}) as <T>(gen: Handler<T>, firstPause: () => void) => Handler<T>;\n\n// Wait for the given promise to be resolved\nexport const waitFor = gensync({\n sync: x => x,\n async: async x => x,\n}) as <T>(p: T | Promise<T>) => Handler<T>;\n\nexport function isThenable<T = any>(val: any): val is PromiseLike<T> {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n","import type { InputOptions, ResolvedOptions } from \"./validation/options.ts\";\n\nexport function mergeOptions(\n target: InputOptions | ResolvedOptions,\n source: InputOptions,\n): void {\n for (const k of Object.keys(source)) {\n if (\n (k === \"parserOpts\" || k === \"generatorOpts\" || k === \"assumptions\") &&\n source[k]\n ) {\n const parserOpts = source[k];\n const targetObj = target[k] || (target[k] = {});\n mergeDefaultFields(targetObj, parserOpts);\n } else {\n //@ts-expect-error k must index source\n const val = source[k];\n //@ts-expect-error assigning source to target\n if (val !== undefined) target[k] = val as any;\n }\n }\n}\n\nfunction mergeDefaultFields<T extends object>(target: T, source: T) {\n for (const k of Object.keys(source) as (keyof T)[]) {\n const val = source[k];\n if (val !== undefined) target[k] = val;\n }\n}\n\nexport function isIterableIterator(value: any): value is IterableIterator<any> {\n return (\n !!value &&\n typeof value.next === \"function\" &&\n typeof value[Symbol.iterator] === \"function\"\n );\n}\n","import gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport {\n maybeAsync,\n isAsync,\n onFirstPause,\n waitFor,\n isThenable,\n} from \"../gensync-utils/async.ts\";\nimport { isIterableIterator } from \"./util.ts\";\n\nexport type { CacheConfigurator };\n\nexport type SimpleCacheConfigurator = {\n (forever: boolean): void;\n <T extends SimpleType>(handler: () => T): T;\n\n forever: () => void;\n never: () => void;\n using: <T extends SimpleType>(handler: () => T) => T;\n invalidate: <T extends SimpleType>(handler: () => T) => T;\n};\n\nexport type CacheEntry<ResultT, SideChannel> = {\n value: ResultT;\n valid: (channel: SideChannel) => Handler<boolean>;\n}[];\n\nconst synchronize = <ArgsT extends unknown[], ResultT>(\n gen: (...args: ArgsT) => Handler<ResultT>,\n): ((...args: ArgsT) => ResultT) => {\n return gensync(gen).sync;\n};\n\n// eslint-disable-next-line require-yield\nfunction* genTrue() {\n return true;\n}\n\nexport function makeWeakCache<ArgT extends WeakKey, ResultT, SideChannel>(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator<SideChannel>,\n ) => Handler<ResultT> | ResultT,\n): (arg: ArgT, data?: SideChannel) => Handler<ResultT> {\n return makeCachedFunction<ArgT, ResultT, SideChannel>(WeakMap, handler);\n}\n\nexport function makeWeakCacheSync<ArgT extends WeakKey, ResultT, SideChannel>(\n handler: (arg: ArgT, cache?: CacheConfigurator<SideChannel>) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeWeakCache<ArgT, ResultT, SideChannel>(handler),\n );\n}\n\nexport function makeStrongCache<ArgT, ResultT, SideChannel>(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator<SideChannel>,\n ) => Handler<ResultT> | ResultT,\n): (arg: ArgT, data?: SideChannel) => Handler<ResultT> {\n return makeCachedFunction<ArgT, ResultT, SideChannel>(Map, handler);\n}\n\nexport function makeStrongCacheSync<ArgT, ResultT, SideChannel>(\n handler: (arg: ArgT, cache?: CacheConfigurator<SideChannel>) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeStrongCache<ArgT, ResultT, SideChannel>(handler),\n );\n}\n\n/* NOTE: Part of the logic explained in this comment is explained in the\n * getCachedValueOrWait and setupAsyncLocks functions.\n *\n * > There are only two hard things in Computer Science: cache invalidation and naming things.\n * > -- Phil Karlton\n *\n * I don't know if Phil was also thinking about handling a cache whose invalidation function is\n * defined asynchronously is considered, but it is REALLY hard to do correctly.\n *\n * The implemented logic (only when gensync is run asynchronously) is the following:\n * 1. If there is a valid cache associated to the current \"arg\" parameter,\n * a. RETURN the cached value\n * 3. If there is a FinishLock associated to the current \"arg\" parameter representing a valid cache,\n * a. Wait for that lock to be released\n * b. RETURN the value associated with that lock\n * 5. Start executing the function to be cached\n * a. If it pauses on a promise, then\n * i. Let FinishLock be a new lock\n * ii. Store FinishLock as associated to the current \"arg\" parameter\n * iii. Wait for the function to finish executing\n * iv. Release FinishLock\n * v. Send the function result to anyone waiting on FinishLock\n * 6. Store the result in the cache\n * 7. RETURN the result\n */\nfunction makeCachedFunction<ArgT, ResultT, SideChannel>(\n CallCache: new <Cached>() => CacheMap<ArgT, Cached, SideChannel>,\n handler: (\n arg: ArgT,\n cache: CacheConfigurator<SideChannel>,\n ) => Handler<ResultT> | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler<ResultT> {\n const callCacheSync = new CallCache<ResultT>();\n const callCacheAsync = new CallCache<ResultT>();\n const futureCache = new CallCache<Lock<ResultT>>();\n\n return function* cachedFunction(arg: ArgT, data: SideChannel) {\n const asyncContext = yield* isAsync();\n const callCache = asyncContext ? callCacheAsync : callCacheSync;\n\n const cached = yield* getCachedValueOrWait<ArgT, ResultT, SideChannel>(\n asyncContext,\n callCache,\n futureCache,\n arg,\n data,\n );\n if (cached.valid) return cached.value;\n\n const cache = new CacheConfigurator(data);\n\n const handlerResult: Handler<ResultT> | ResultT = handler(arg, cache);\n\n let finishLock: Lock<ResultT>;\n let value: ResultT;\n\n if (isIterableIterator(handlerResult)) {\n value = yield* onFirstPause(handlerResult, () => {\n finishLock = setupAsyncLocks(cache, futureCache, arg);\n });\n } else {\n value = handlerResult;\n }\n\n updateFunctionCache(callCache, cache, arg, value);\n\n if (finishLock!) {\n futureCache.delete(arg);\n finishLock.release(value);\n }\n\n return value;\n };\n}\n\ntype CacheMap<ArgT, ResultT, SideChannel> =\n | Map<ArgT, CacheEntry<ResultT, SideChannel>>\n // @ts-expect-error todo(flow->ts): add `extends object` constraint to ArgT\n | WeakMap<ArgT, CacheEntry<ResultT, SideChannel>>;\n\nfunction* getCachedValue<ArgT, ResultT, SideChannel>(\n cache: CacheMap<ArgT, ResultT, SideChannel>,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cachedValue: CacheEntry<ResultT, SideChannel> | void = cache.get(arg);\n\n if (cachedValue) {\n for (const { value, valid } of cachedValue) {\n if (yield* valid(data)) return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction* getCachedValueOrWait<ArgT, ResultT, SideChannel>(\n asyncContext: boolean,\n callCache: CacheMap<ArgT, ResultT, SideChannel>,\n futureCache: CacheMap<ArgT, Lock<ResultT>, SideChannel>,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cached = yield* getCachedValue(callCache, arg, data);\n if (cached.valid) {\n return cached;\n }\n\n if (asyncContext) {\n const cached = yield* getCachedValue(futureCache, arg, data);\n if (cached.valid) {\n const value = yield* waitFor<ResultT>(cached.value.promise);\n return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction setupAsyncLocks<ArgT, ResultT, SideChannel>(\n config: CacheConfigurator<SideChannel>,\n futureCache: CacheMap<ArgT, Lock<ResultT>, SideChannel>,\n arg: ArgT,\n): Lock<ResultT> {\n const finishLock = new Lock<ResultT>();\n\n updateFunctionCache(futureCache, config, arg, finishLock);\n\n return finishLock;\n}\n\nfunction updateFunctionCache<\n ArgT,\n ResultT,\n SideChannel,\n Cache extends CacheMap<ArgT, ResultT, SideChannel>,\n>(\n cache: Cache,\n config: CacheConfigurator<SideChannel>,\n arg: ArgT,\n value: ResultT,\n) {\n if (!config.configured()) config.forever();\n\n let cachedValue: CacheEntry<ResultT, SideChannel> | void = cache.get(arg);\n\n config.deactivate();\n\n switch (config.mode()) {\n case \"forever\":\n cachedValue = [{ value, valid: genTrue }];\n cache.set(arg, cachedValue);\n break;\n case \"invalidate\":\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n break;\n case \"valid\":\n if (cachedValue) {\n cachedValue.push({ value, valid: config.validator() });\n } else {\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n }\n }\n}\n\nclass CacheConfigurator<SideChannel = void> {\n _active: boolean = true;\n _never: boolean = false;\n _forever: boolean = false;\n _invalidate: boolean = false;\n\n _configured: boolean = false;\n\n _pairs: [\n cachedValue: unknown,\n handler: (data: SideChannel) => Handler<unknown>,\n ][] = [];\n\n _data: SideChannel;\n\n constructor(data: SideChannel) {\n this._data = data;\n }\n\n simple() {\n return makeSimpleConfigurator(this);\n }\n\n mode() {\n if (this._never) return \"never\";\n if (this._forever) return \"forever\";\n if (this._invalidate) return \"invalidate\";\n return \"valid\";\n }\n\n forever() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never) {\n throw new Error(\"Caching has already been configured with .never()\");\n }\n this._forever = true;\n this._configured = true;\n }\n\n never() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._forever) {\n throw new Error(\"Caching has already been configured with .forever()\");\n }\n this._never = true;\n this._configured = true;\n }\n\n using<T>(handler: (data: SideChannel) => T): T {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never || this._forever) {\n throw new Error(\n \"Caching has already been configured with .never or .forever()\",\n );\n }\n this._configured = true;\n\n const key = handler(this._data);\n\n const fn = maybeAsync(\n handler,\n `You appear to be using an async cache handler, but Babel has been called synchronously`,\n );\n\n if (isThenable(key)) {\n return key.then((key: unknown) => {\n this._pairs.push([key, fn]);\n return key;\n }) as T;\n }\n\n this._pairs.push([key, fn]);\n return key;\n }\n\n invalidate<T>(handler: (data: SideChannel) => T): T {\n this._invalidate = true;\n return this.using(handler);\n }\n\n validator(): (data: SideChannel) => Handler<boolean> {\n const pairs = this._pairs;\n return function* (data: SideChannel) {\n for (const [key, fn] of pairs) {\n if (key !== (yield* fn(data))) return false;\n }\n return true;\n };\n }\n\n deactivate() {\n this._active = false;\n }\n\n configured() {\n return this._configured;\n }\n}\n\nfunction makeSimpleConfigurator(\n cache: CacheConfigurator<any>,\n): SimpleCacheConfigurator {\n function cacheFn(val: any) {\n if (typeof val === \"boolean\") {\n if (val) cache.forever();\n else cache.never();\n return;\n }\n\n return cache.using(() => assertSimpleType(val()));\n }\n cacheFn.forever = () => cache.forever();\n cacheFn.never = () => cache.never();\n cacheFn.using = (cb: () => SimpleType) =>\n cache.using(() => assertSimpleType(cb()));\n cacheFn.invalidate = (cb: () => SimpleType) =>\n cache.invalidate(() => assertSimpleType(cb()));\n\n return cacheFn as any;\n}\n\n// Types are limited here so that in the future these values can be used\n// as part of Babel's caching logic.\nexport type SimpleType =\n | string\n | boolean\n | number\n | null\n | undefined\n | Promise<SimpleType>;\nexport function assertSimpleType(value: unknown): SimpleType {\n if (isThenable(value)) {\n throw new Error(\n `You appear to be using an async cache handler, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously handle your caching logic.`,\n );\n }\n\n if (\n value != null &&\n typeof value !== \"string\" &&\n typeof value !== \"boolean\" &&\n typeof value !== \"number\"\n ) {\n throw new Error(\n \"Cache keys must be either string, boolean, number, null, or undefined.\",\n );\n }\n return value;\n}\n\nclass Lock<T> {\n released: boolean = false;\n promise: Promise<T>;\n _resolve: undefined | ((value: T) => void);\n\n constructor() {\n this.promise = new Promise(resolve => {\n this._resolve = resolve;\n });\n }\n\n release(value: T) {\n this.released = true;\n this._resolve!(value);\n }\n}\n"],"names":["runGenerator","gensync","item","isAsync","sync","errback","cb","maybeAsync","fn","message","args","result","apply","isThenable","Error","async","Promise","resolve","withKind","forwardAsync","action","g","kind","adapted","onFirstPause","name","arity","firstPause","completed","err","value","waitFor","x","val","then","mergeOptions","target","source","k","Object","keys","parserOpts","targetObj","mergeDefaultFields","undefined","isIterableIterator","next","Symbol","iterator","synchronize","gen","genTrue","makeWeakCache","handler","makeCachedFunction","WeakMap","makeWeakCacheSync","makeStrongCache","Map","makeStrongCacheSync","CallCache","callCacheSync","callCacheAsync","futureCache","cachedFunction","arg","data","asyncContext","callCache","cached","getCachedValueOrWait","valid","cache","CacheConfigurator","handlerResult","finishLock","setupAsyncLocks","updateFunctionCache","delete","release","getCachedValue","cachedValue","get","promise","config","Lock","configured","forever","deactivate","mode","set","validator","push","_active","_never","_forever","_invalidate","_configured","_pairs","_data","constructor","simple","makeSimpleConfigurator","never","using","key","invalidate","pairs","cacheFn","assertSimpleType","released","_resolve"],"mappings":"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"}
{"version":3,"file":"caching-shared.js","sources":["../src/gensync-utils/async.ts","../src/config/util.ts","../src/config/caching.ts"],"sourcesContent":["import gensync, { type Gensync, type Handler, type Callback } from \"gensync\";\n\ntype MaybePromise<T> = T | Promise<T>;\n\nconst runGenerator: {\n sync<Return>(gen: Handler<Return>): Return;\n async<Return>(gen: Handler<Return>): Promise<Return>;\n errback<Return>(gen: Handler<Return>, cb: Callback<Return>): void;\n} = gensync(function* (item: Handler<any>): Handler<any> {\n return yield* item;\n});\n\n// This Gensync returns true if the current execution context is\n// asynchronous, otherwise it returns false.\nexport const isAsync = gensync({\n sync: () => false,\n errback: cb => cb(null, true),\n});\n\n// This function wraps any functions (which could be either synchronous or\n// asynchronous) with a Gensync. If the wrapped function returns a promise\n// but the current execution context is synchronous, it will throw the\n// provided error.\n// This is used to handle user-provided functions which could be asynchronous.\nexport function maybeAsync<Args extends unknown[], Return>(\n fn: (...args: Args) => Return,\n message: string,\n): Gensync<Args, Return> {\n return gensync({\n sync(...args) {\n const result = fn.apply(this, args);\n if (isThenable(result)) throw new Error(message);\n return result;\n },\n async(...args) {\n return Promise.resolve(fn.apply(this, args));\n },\n });\n}\n\nconst withKind = gensync({\n sync: cb => cb(\"sync\"),\n async: async cb => cb(\"async\"),\n}) as <T>(cb: (kind: \"sync\" | \"async\") => MaybePromise<T>) => Handler<T>;\n\n// This function wraps a generator (or a Gensync) into another function which,\n// when called, will run the provided generator in a sync or async way, depending\n// on the execution context where this forwardAsync function is called.\n// This is useful, for example, when passing a callback to a function which isn't\n// aware of gensync, but it only knows about synchronous and asynchronous functions.\n// An example is cache.using, which being exposed to the user must be as simple as\n// possible:\n// yield* forwardAsync(gensyncFn, wrappedFn =>\n// cache.using(x => {\n// // Here we don't know about gensync. wrappedFn is a\n// // normal sync or async function\n// return wrappedFn(x);\n// })\n// )\nexport function forwardAsync<Args extends unknown[], Return>(\n action: (...args: Args) => Handler<Return>,\n cb: (\n adapted: (...args: Args) => MaybePromise<Return>,\n ) => MaybePromise<Return>,\n): Handler<Return> {\n const g = gensync(action);\n return withKind(kind => {\n const adapted = g[kind];\n return cb(adapted);\n });\n}\n\n// If the given generator is executed asynchronously, the first time that it\n// is paused (i.e. When it yields a gensync generator which can't be run\n// synchronously), call the \"firstPause\" callback.\nexport const onFirstPause = gensync<\n [gen: Handler<unknown>, firstPause: () => void],\n unknown\n>({\n name: \"onFirstPause\",\n arity: 2,\n sync: function (item) {\n return runGenerator.sync(item);\n },\n errback: function (item, firstPause, cb) {\n let completed = false;\n\n runGenerator.errback(item, (err, value) => {\n completed = true;\n cb(err, value);\n });\n\n if (!completed) {\n firstPause();\n }\n },\n}) as <T>(gen: Handler<T>, firstPause: () => void) => Handler<T>;\n\n// Wait for the given promise to be resolved\nexport const waitFor = gensync({\n sync: x => x,\n async: async x => x,\n}) as <T>(p: T | Promise<T>) => Handler<T>;\n\nexport function isThenable<T = any>(val: any): val is PromiseLike<T> {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n","import type { InputOptions, ResolvedOptions } from \"./validation/options.ts\";\n\nexport function mergeOptions(\n target: InputOptions | ResolvedOptions,\n source: InputOptions,\n): void {\n for (const k of Object.keys(source)) {\n if (\n (k === \"parserOpts\" || k === \"generatorOpts\" || k === \"assumptions\") &&\n source[k]\n ) {\n const parserOpts = source[k];\n const targetObj = target[k] || (target[k] = {});\n mergeDefaultFields(targetObj, parserOpts);\n } else {\n //@ts-expect-error k must index source\n const val = source[k];\n //@ts-expect-error assigning source to target\n if (val !== undefined) target[k] = val as any;\n }\n }\n}\n\nfunction mergeDefaultFields<T extends object>(target: T, source: T) {\n for (const k of Object.keys(source) as (keyof T)[]) {\n const val = source[k];\n if (val !== undefined) target[k] = val;\n }\n}\n\nexport function isIterableIterator(value: any): value is IterableIterator<any> {\n return (\n !!value &&\n typeof value.next === \"function\" &&\n typeof value[Symbol.iterator] === \"function\"\n );\n}\n","import gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport {\n maybeAsync,\n isAsync,\n onFirstPause,\n waitFor,\n isThenable,\n} from \"../gensync-utils/async.ts\";\nimport { isIterableIterator } from \"./util.ts\";\n\nexport type { CacheConfigurator };\n\nexport type SimpleCacheConfigurator = {\n (forever: boolean): void;\n <T extends SimpleType>(handler: () => T): T;\n\n forever: () => void;\n never: () => void;\n using: <T extends SimpleType>(handler: () => T) => T;\n invalidate: <T extends SimpleType>(handler: () => T) => T;\n};\n\nexport type CacheEntry<ResultT, SideChannel> = {\n value: ResultT;\n valid: (channel: SideChannel) => Handler<boolean>;\n}[];\n\nconst synchronize = <ArgsT extends unknown[], ResultT>(\n gen: (...args: ArgsT) => Handler<ResultT>,\n): ((...args: ArgsT) => ResultT) => {\n return gensync(gen).sync;\n};\n\n// eslint-disable-next-line require-yield\nfunction* genTrue() {\n return true;\n}\n\nexport function makeWeakCache<ArgT extends WeakKey, ResultT, SideChannel>(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator<SideChannel>,\n ) => Handler<ResultT> | ResultT,\n): (arg: ArgT, data?: SideChannel) => Handler<ResultT> {\n return makeCachedFunction<ArgT, ResultT, SideChannel>(WeakMap, handler);\n}\n\nexport function makeWeakCacheSync<ArgT extends WeakKey, ResultT, SideChannel>(\n handler: (arg: ArgT, cache?: CacheConfigurator<SideChannel>) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel | undefined], ResultT>(\n makeWeakCache<ArgT, ResultT, SideChannel>(handler),\n );\n}\n\nexport function makeStrongCache<ArgT, ResultT, SideChannel>(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator<SideChannel>,\n ) => Handler<ResultT> | ResultT,\n): (arg: ArgT, data?: SideChannel) => Handler<ResultT> {\n return makeCachedFunction<ArgT, ResultT, SideChannel>(Map, handler);\n}\n\nexport function makeStrongCacheSync<ArgT, ResultT, SideChannel>(\n handler: (arg: ArgT, cache?: CacheConfigurator<SideChannel>) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel | undefined], ResultT>(\n makeStrongCache<ArgT, ResultT, SideChannel>(handler),\n );\n}\n\n/* NOTE: Part of the logic explained in this comment is explained in the\n * getCachedValueOrWait and setupAsyncLocks functions.\n *\n * > There are only two hard things in Computer Science: cache invalidation and naming things.\n * > -- Phil Karlton\n *\n * I don't know if Phil was also thinking about handling a cache whose invalidation function is\n * defined asynchronously is considered, but it is REALLY hard to do correctly.\n *\n * The implemented logic (only when gensync is run asynchronously) is the following:\n * 1. If there is a valid cache associated to the current \"arg\" parameter,\n * a. RETURN the cached value\n * 3. If there is a FinishLock associated to the current \"arg\" parameter representing a valid cache,\n * a. Wait for that lock to be released\n * b. RETURN the value associated with that lock\n * 5. Start executing the function to be cached\n * a. If it pauses on a promise, then\n * i. Let FinishLock be a new lock\n * ii. Store FinishLock as associated to the current \"arg\" parameter\n * iii. Wait for the function to finish executing\n * iv. Release FinishLock\n * v. Send the function result to anyone waiting on FinishLock\n * 6. Store the result in the cache\n * 7. RETURN the result\n */\nfunction makeCachedFunction<ArgT, ResultT, SideChannel>(\n CallCache: new <Cached>() => CacheMap<ArgT, Cached, SideChannel>,\n handler: (\n arg: ArgT,\n cache: CacheConfigurator<SideChannel>,\n ) => Handler<ResultT> | ResultT,\n): (arg: ArgT, data?: SideChannel) => Handler<ResultT> {\n const callCacheSync = new CallCache<ResultT>();\n const callCacheAsync = new CallCache<ResultT>();\n const futureCache = new CallCache<Lock<ResultT>>();\n\n return function* cachedFunction(\n arg: ArgT,\n data: SideChannel = undefined as SideChannel,\n ) {\n const asyncContext = yield* isAsync();\n const callCache = asyncContext ? callCacheAsync : callCacheSync;\n\n const cached = yield* getCachedValueOrWait<ArgT, ResultT, SideChannel>(\n asyncContext,\n callCache,\n futureCache,\n arg,\n data,\n );\n if (cached.valid) return cached.value;\n\n const cache = new CacheConfigurator(data);\n\n const handlerResult: Handler<ResultT> | ResultT = handler(arg, cache);\n\n let finishLock: Lock<ResultT>;\n let value: ResultT;\n\n if (isIterableIterator(handlerResult)) {\n value = yield* onFirstPause(handlerResult, () => {\n finishLock = setupAsyncLocks(cache, futureCache, arg);\n });\n } else {\n value = handlerResult;\n }\n\n updateFunctionCache(callCache, cache, arg, value);\n\n if (finishLock!) {\n futureCache.delete(arg);\n finishLock.release(value);\n }\n\n return value;\n };\n}\n\ntype CacheMap<ArgT, ResultT, SideChannel> =\n | Map<ArgT, CacheEntry<ResultT, SideChannel>>\n // @ts-expect-error todo(flow->ts): add `extends object` constraint to ArgT\n | WeakMap<ArgT, CacheEntry<ResultT, SideChannel>>;\n\nfunction* getCachedValue<ArgT, ResultT, SideChannel>(\n cache: CacheMap<ArgT, ResultT, SideChannel>,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cachedValue: CacheEntry<ResultT, SideChannel> | void = cache.get(arg);\n\n if (cachedValue) {\n for (const { value, valid } of cachedValue) {\n if (yield* valid(data)) return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction* getCachedValueOrWait<ArgT, ResultT, SideChannel>(\n asyncContext: boolean,\n callCache: CacheMap<ArgT, ResultT, SideChannel>,\n futureCache: CacheMap<ArgT, Lock<ResultT>, SideChannel>,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cached = yield* getCachedValue(callCache, arg, data);\n if (cached.valid) {\n return cached;\n }\n\n if (asyncContext) {\n const cached = yield* getCachedValue(futureCache, arg, data);\n if (cached.valid) {\n const value = yield* waitFor<ResultT>(cached.value.promise);\n return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction setupAsyncLocks<ArgT, ResultT, SideChannel>(\n config: CacheConfigurator<SideChannel>,\n futureCache: CacheMap<ArgT, Lock<ResultT>, SideChannel>,\n arg: ArgT,\n): Lock<ResultT> {\n const finishLock = new Lock<ResultT>();\n\n updateFunctionCache(futureCache, config, arg, finishLock);\n\n return finishLock;\n}\n\nfunction updateFunctionCache<\n ArgT,\n ResultT,\n SideChannel,\n Cache extends CacheMap<ArgT, ResultT, SideChannel>,\n>(\n cache: Cache,\n config: CacheConfigurator<SideChannel>,\n arg: ArgT,\n value: ResultT,\n) {\n if (!config.configured()) config.forever();\n\n let cachedValue: CacheEntry<ResultT, SideChannel> | void = cache.get(arg);\n\n config.deactivate();\n\n switch (config.mode()) {\n case \"forever\":\n cachedValue = [{ value, valid: genTrue }];\n cache.set(arg, cachedValue);\n break;\n case \"invalidate\":\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n break;\n case \"valid\":\n if (cachedValue) {\n cachedValue.push({ value, valid: config.validator() });\n } else {\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n }\n }\n}\n\nclass CacheConfigurator<SideChannel = void> {\n _active: boolean = true;\n _never: boolean = false;\n _forever: boolean = false;\n _invalidate: boolean = false;\n\n _configured: boolean = false;\n\n _pairs: [\n cachedValue: unknown,\n handler: (data: SideChannel) => Handler<unknown>,\n ][] = [];\n\n _data: SideChannel;\n\n constructor(data: SideChannel) {\n this._data = data;\n }\n\n simple() {\n return makeSimpleConfigurator(this);\n }\n\n mode() {\n if (this._never) return \"never\";\n if (this._forever) return \"forever\";\n if (this._invalidate) return \"invalidate\";\n return \"valid\";\n }\n\n forever() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never) {\n throw new Error(\"Caching has already been configured with .never()\");\n }\n this._forever = true;\n this._configured = true;\n }\n\n never() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._forever) {\n throw new Error(\"Caching has already been configured with .forever()\");\n }\n this._never = true;\n this._configured = true;\n }\n\n using<T>(handler: (data: SideChannel) => T): T {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never || this._forever) {\n throw new Error(\n \"Caching has already been configured with .never or .forever()\",\n );\n }\n this._configured = true;\n\n const key = handler(this._data);\n\n const fn = maybeAsync(\n handler,\n `You appear to be using an async cache handler, but Babel has been called synchronously`,\n );\n\n if (isThenable(key)) {\n return key.then((key: unknown) => {\n this._pairs.push([key, fn]);\n return key;\n }) as T;\n }\n\n this._pairs.push([key, fn]);\n return key;\n }\n\n invalidate<T>(handler: (data: SideChannel) => T): T {\n this._invalidate = true;\n return this.using(handler);\n }\n\n validator(): (data: SideChannel) => Handler<boolean> {\n const pairs = this._pairs;\n return function* (data: SideChannel) {\n for (const [key, fn] of pairs) {\n if (key !== (yield* fn(data))) return false;\n }\n return true;\n };\n }\n\n deactivate() {\n this._active = false;\n }\n\n configured() {\n return this._configured;\n }\n}\n\nfunction makeSimpleConfigurator(\n cache: CacheConfigurator<any>,\n): SimpleCacheConfigurator {\n function cacheFn(val: any) {\n if (typeof val === \"boolean\") {\n if (val) cache.forever();\n else cache.never();\n return;\n }\n\n return cache.using(() => assertSimpleType(val()));\n }\n cacheFn.forever = () => cache.forever();\n cacheFn.never = () => cache.never();\n cacheFn.using = (cb: () => SimpleType) =>\n cache.using(() => assertSimpleType(cb()));\n cacheFn.invalidate = (cb: () => SimpleType) =>\n cache.invalidate(() => assertSimpleType(cb()));\n\n return cacheFn as any;\n}\n\n// Types are limited here so that in the future these values can be used\n// as part of Babel's caching logic.\nexport type SimpleType =\n | string\n | boolean\n | number\n | null\n | undefined\n | Promise<SimpleType>;\nexport function assertSimpleType(value: unknown): SimpleType {\n if (isThenable(value)) {\n throw new Error(\n `You appear to be using an async cache handler, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously handle your caching logic.`,\n );\n }\n\n if (\n value != null &&\n typeof value !== \"string\" &&\n typeof value !== \"boolean\" &&\n typeof value !== \"number\"\n ) {\n throw new Error(\n \"Cache keys must be either string, boolean, number, null, or undefined.\",\n );\n }\n return value;\n}\n\nclass Lock<T> {\n released: boolean = false;\n promise: Promise<T>;\n _resolve: undefined | ((value: T) => void);\n\n constructor() {\n this.promise = new Promise(resolve => {\n this._resolve = resolve;\n });\n }\n\n release(value: T) {\n this.released = true;\n this._resolve!(value);\n }\n}\n"],"names":["runGenerator","gensync","item","isAsync","sync","errback","cb","maybeAsync","fn","message","args","result","apply","isThenable","Error","async","Promise","resolve","withKind","forwardAsync","action","g","kind","adapted","onFirstPause","name","arity","firstPause","completed","err","value","waitFor","x","val","then","mergeOptions","target","source","k","Object","keys","parserOpts","targetObj","mergeDefaultFields","undefined","isIterableIterator","next","Symbol","iterator","synchronize","gen","genTrue","makeWeakCache","handler","makeCachedFunction","WeakMap","makeWeakCacheSync","makeStrongCache","Map","makeStrongCacheSync","CallCache","callCacheSync","callCacheAsync","futureCache","cachedFunction","arg","data","asyncContext","callCache","cached","getCachedValueOrWait","valid","cache","CacheConfigurator","handlerResult","finishLock","setupAsyncLocks","updateFunctionCache","delete","release","getCachedValue","cachedValue","get","promise","config","Lock","configured","forever","deactivate","mode","set","validator","push","_active","_never","_forever","_invalidate","_configured","_pairs","_data","constructor","simple","makeSimpleConfigurator","never","using","key","invalidate","pairs","cacheFn","assertSimpleType","released","_resolve"],"mappings":"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"}
import path from 'node:path';
import { makeStrongCache, isAsync, waitFor, makeWeakCache, makeWeakCacheSync } from '../../caching-shared.js';
import { readFile, transformFileSync, stat } from '../../transform-file-shared.js';
import { readFile, stat } from '../../fs-shared.js';
import fs, { existsSync } from 'node:fs';

@@ -112,3 +112,2 @@ import { ConfigError, makeConfigAPI, pathToPattern } from '../../index-shared.js';

};
const asyncModules = new Set();
function* loadCodeDefault(filepath, loader, esmError, tlaError) {

@@ -123,7 +122,3 @@ let async;

case "auto cjs":
if (isTS) {
return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));
} else {
return loadCjsDefault(filepath);
}
return loadCjsDefault(filepath);
case "auto unknown":

@@ -133,14 +128,9 @@ case "require unknown":

try {
if (isTS) {
return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));
} else {
return loadCjsDefault(filepath);
}
return loadCjsDefault(filepath);
} catch (e) {
if (e.code === "ERR_REQUIRE_ASYNC_MODULE" || e.code === "ERR_REQUIRE_CYCLE_MODULE" && asyncModules.has(filepath)) {
asyncModules.add(filepath);
if (e.code === "ERR_REQUIRE_ASYNC_MODULE") {
if (!(async ??= yield* isAsync())) {
throw new ConfigError(tlaError, filepath);
}
} else if (e.code === "ERR_REQUIRE_ESM") ; else {
} else {
throw e;

@@ -151,4 +141,3 @@ }

if (async ?? (yield* isAsync())) {
const promise = isTS ? ensureTsSupport(filepath, ext, () => loadMjsFromPath(filepath)) : loadMjsFromPath(filepath);
return (yield* waitFor(promise)).default;
return (yield* waitFor(loadMjsFromPath(filepath))).default;
}

@@ -164,46 +153,2 @@ if (isTS) {

}
function ensureTsSupport(filepath, ext, callback) {
if (process.features.typescript || require$3.extensions[".ts"] || require$3.extensions[".cts"] || require$3.extensions[".mts"]) {
return callback();
}
if (ext !== ".cts") {
throw new ConfigError(tsNotSupportedError(ext), filepath);
}
const opts = {
babelrc: false,
configFile: false,
sourceType: "unambiguous",
sourceMaps: "inline",
sourceFileName: path.basename(filepath),
presets: [[getTSPreset(filepath), {
onlyRemoveTypeImports: true,
optimizeConstEnums: true
}]]
};
let handler = function (m, filename) {
if (handler && filename.endsWith(".cts")) {
return m._compile(transformFileSync(filename, {
...opts,
filename
}).code, filename);
}
return require$3.extensions[".js"](m, filename);
};
require$3.extensions[ext] = handler;
try {
return callback();
} finally {
if (require$3.extensions[ext] === handler) delete require$3.extensions[ext];
handler = undefined;
}
}
function getTSPreset(filepath) {
try {
return require$3("@babel/preset-typescript");
} catch (error) {
if (error.code !== "MODULE_NOT_FOUND") throw error;
const message = "You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!";
throw new ConfigError(message, filepath);
}
}

@@ -210,0 +155,0 @@ const require$2 = createRequire(import.meta.url);

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

{"version":3,"file":"index.js","sources":["../../../src/config/files/utils.ts","../../../src/config/files/package.ts","../../../src/config/files/module-types.ts","../../../src/config/files/configuration.ts","../../../src/config/files/plugins.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { makeStrongCache } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport * as fs from \"../../gensync-utils/fs.ts\";\nimport nodeFs from \"node:fs\";\n\nexport function makeStaticFileCache<T>(\n fn: (filepath: string, contents: string) => T,\n) {\n return makeStrongCache(function* (\n filepath: string,\n cache: CacheConfigurator<void>,\n ): Handler<null | T> {\n const cached = cache.invalidate(() => fileMtime(filepath));\n\n if (cached === null) {\n return null;\n }\n\n return fn(filepath, yield* fs.readFile(filepath, \"utf8\"));\n });\n}\n\nfunction fileMtime(filepath: string): number | null {\n if (!nodeFs.existsSync(filepath)) return null;\n\n try {\n return +nodeFs.statSync(filepath).mtime;\n } catch (e) {\n if (e.code !== \"ENOENT\" && e.code !== \"ENOTDIR\") throw e;\n }\n\n return null;\n}\n","import path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport { makeStaticFileCache } from \"./utils.ts\";\n\nimport type { ConfigFile, FilePackageData } from \"./types.ts\";\n\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst PACKAGE_FILENAME = \"package.json\";\n\nconst readConfigPackage = makeStaticFileCache(\n (filepath, content): ConfigFile => {\n let options;\n try {\n options = JSON.parse(content) as unknown;\n } catch (err) {\n throw new ConfigError(\n `Error while parsing JSON - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new Error(`${filepath}: No config detected`);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(\n `Config returned typeof ${typeof options}`,\n filepath,\n );\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n },\n);\n\n/**\n * Find metadata about the package that this file is inside of. Resolution\n * of Babel's config requires general package information to decide when to\n * search for .babelrc files\n */\nexport function* findPackageData(filepath: string): Handler<FilePackageData> {\n let pkg = null;\n const directories = [];\n let isPackage = true;\n\n let dirname = path.dirname(filepath);\n while (!pkg && path.basename(dirname) !== \"node_modules\") {\n directories.push(dirname);\n\n pkg = yield* readConfigPackage(path.join(dirname, PACKAGE_FILENAME));\n\n const nextLoc = path.dirname(dirname);\n if (dirname === nextLoc) {\n isPackage = false;\n break;\n }\n dirname = nextLoc;\n }\n\n return { filepath, directories, pkg, isPackage };\n}\n","import { isAsync, waitFor } from \"../../gensync-utils/async.ts\";\nimport type { Handler } from \"gensync\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { createRequire } from \"node:module\";\nimport { createDebug } from \"obug\";\n\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport type { InputOptions } from \"../index.ts\";\nimport { transformFileSync } from \"../../transform-file.ts\";\n\nconst debug = createDebug(\"babel:config:loading:files:module-types\");\n\nconst require = createRequire(import.meta.url);\n\nconst LOADING_CJS_FILES = new Set();\n\nfunction loadCjsDefault(filepath: string) {\n // The `require()` call below can make this code reentrant if a require hook\n // like @babel/register has been loaded into the system. That would cause\n // Babel to attempt to compile the `.babelrc.js` file as it loads below. To\n // cover this case, we auto-ignore re-entrant config processing. ESM loaders\n // do not have this problem, because loaders do not apply to themselves.\n if (LOADING_CJS_FILES.has(filepath)) {\n debug(\"Auto-ignoring usage of config %o.\", filepath);\n return {};\n }\n\n let module;\n try {\n LOADING_CJS_FILES.add(filepath);\n module = endHiddenCallStack(require)(filepath);\n } finally {\n LOADING_CJS_FILES.delete(filepath);\n }\n\n return module != null &&\n (module.__esModule || module[Symbol.toStringTag] === \"Module\")\n ? module.default\n : module;\n}\n\nconst loadMjsFromPath = endHiddenCallStack(async function loadMjsFromPath(\n filepath: string,\n) {\n // Add ?import as a workaround for https://github.com/nodejs/node/issues/55500\n const url = pathToFileURL(filepath).toString() + \"?import\";\n\n return await import(url);\n});\n\nconst tsNotSupportedError = (ext: string) => `\\\nYou are using a ${ext} config file, but Babel only supports transpiling .cts configs. Either:\n- Use a .cts config file\n- Update to Node.js 23.6.0, which has native TypeScript support\n- Install tsx to transpile ${ext} files on the fly\\\n`;\n\nconst SUPPORTED_EXTENSIONS = {\n \".js\": \"unknown\",\n \".mjs\": \"esm\",\n \".cjs\": \"cjs\",\n \".ts\": \"unknown\",\n \".mts\": \"esm\",\n \".cts\": \"cjs\",\n} as const;\n\nconst asyncModules = new Set();\n\nexport default function* loadCodeDefault(\n filepath: string,\n loader: \"require\" | \"auto\",\n esmError: string,\n tlaError: string,\n): Handler<unknown> {\n let async;\n\n const ext = path.extname(filepath);\n const isTS = ext === \".ts\" || ext === \".cts\" || ext === \".mts\";\n\n const type =\n SUPPORTED_EXTENSIONS[\n Object.hasOwn(SUPPORTED_EXTENSIONS, ext)\n ? (ext as keyof typeof SUPPORTED_EXTENSIONS)\n : (\".js\" as const)\n ];\n\n const pattern = `${loader} ${type}` as const;\n switch (pattern) {\n case \"require cjs\":\n case \"auto cjs\":\n if (isTS) {\n return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));\n } else {\n return loadCjsDefault(filepath);\n }\n\n case \"auto unknown\":\n case \"require unknown\":\n case \"require esm\":\n try {\n if (isTS) {\n return ensureTsSupport(filepath, ext, () => loadCjsDefault(filepath));\n } else {\n return loadCjsDefault(filepath);\n }\n } catch (e) {\n if (\n e.code === \"ERR_REQUIRE_ASYNC_MODULE\" ||\n // Node.js 13.0.0 throws ERR_REQUIRE_CYCLE_MODULE instead of\n // ERR_REQUIRE_ASYNC_MODULE when requiring a module a second time\n // https://github.com/nodejs/node/issues/55516\n // This `asyncModules` won't catch all of such cases, but it will\n // at least catch those caused by Babel trying to load a module twice.\n (e.code === \"ERR_REQUIRE_CYCLE_MODULE\" && asyncModules.has(filepath))\n ) {\n asyncModules.add(filepath);\n if (!(async ??= yield* isAsync())) {\n throw new ConfigError(tlaError, filepath);\n }\n // fall through: require() failed due to TLA\n } else if (e.code === \"ERR_REQUIRE_ESM\") {\n // fall through: require() failed due to ESM\n } else {\n throw e;\n }\n }\n // fall through: require() failed due to ESM or TLA, try import()\n case \"auto esm\":\n if (async ?? (yield* isAsync())) {\n const promise = isTS\n ? ensureTsSupport(filepath, ext, () => loadMjsFromPath(filepath))\n : loadMjsFromPath(filepath);\n\n return (yield* waitFor(promise)).default;\n }\n if (isTS) {\n throw new ConfigError(tsNotSupportedError(ext), filepath);\n } else {\n throw new ConfigError(esmError, filepath);\n }\n default:\n throw new Error(\"Internal Babel error: unreachable code.\");\n }\n}\n\nfunction ensureTsSupport<T>(\n filepath: string,\n ext: string,\n callback: () => T,\n): T {\n if (\n process.features.typescript ||\n require.extensions[\".ts\"] ||\n require.extensions[\".cts\"] ||\n require.extensions[\".mts\"]\n ) {\n return callback();\n }\n\n if (ext !== \".cts\") {\n throw new ConfigError(tsNotSupportedError(ext), filepath);\n }\n\n const opts: InputOptions = {\n babelrc: false,\n configFile: false,\n sourceType: \"unambiguous\",\n sourceMaps: \"inline\",\n sourceFileName: path.basename(filepath),\n presets: [\n [\n getTSPreset(filepath),\n {\n onlyRemoveTypeImports: true,\n optimizeConstEnums: true,\n },\n ],\n ],\n };\n\n let handler: NodeJS.RequireExtensions[\"\"] = function (m, filename) {\n // If we want to support `.ts`, `.d.ts` must be handled specially.\n if (handler && filename.endsWith(\".cts\")) {\n // @ts-expect-error Undocumented API\n return m._compile(\n transformFileSync(filename, {\n ...opts,\n filename,\n })!.code,\n filename,\n );\n }\n return require.extensions[\".js\"](m, filename);\n };\n require.extensions[ext] = handler;\n\n try {\n return callback();\n } finally {\n if (require.extensions[ext] === handler) delete require.extensions[ext];\n handler = undefined;\n }\n}\n\nfunction getTSPreset(filepath: string) {\n try {\n return require(\"@babel/preset-typescript\");\n } catch (error) {\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n const message =\n \"You appear to be using a .cts file as Babel configuration, but the `@babel/preset-typescript` package was not found: please install it!\";\n\n throw new ConfigError(message, filepath);\n }\n}\n","import { createDebug } from \"obug\";\nimport nodeFs from \"node:fs\";\nimport path from \"node:path\";\nimport json5 from \"json5\";\nimport gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport { makeWeakCache, makeWeakCacheSync } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport { makeConfigAPI } from \"../helpers/config-api.ts\";\nimport type { ConfigAPI } from \"../helpers/config-api.ts\";\nimport { makeStaticFileCache } from \"./utils.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport pathPatternToRegex from \"../pattern-to-regex.ts\";\nimport type { FilePackageData, RelativeConfig, ConfigFile } from \"./types.ts\";\nimport type { CallerMetadata, InputOptions } from \"../validation/options.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport * as fs from \"../../gensync-utils/fs.ts\";\n\nimport { createRequire } from \"node:module\";\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nconst require = createRequire(import.meta.url);\n\nconst debug = createDebug(\"babel:config:loading:files:configuration\");\n\nexport const ROOT_CONFIG_FILENAMES = [\n \"babel.config.js\",\n \"babel.config.cjs\",\n \"babel.config.mjs\",\n \"babel.config.json\",\n \"babel.config.cts\",\n \"babel.config.ts\",\n \"babel.config.mts\",\n];\nconst RELATIVE_CONFIG_FILENAMES = [\n \".babelrc\",\n \".babelrc.js\",\n \".babelrc.cjs\",\n \".babelrc.mjs\",\n \".babelrc.json\",\n \".babelrc.cts\",\n];\n\nconst BABELIGNORE_FILENAME = \".babelignore\";\n\ntype ConfigCacheData = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\n\nconst runConfig = makeWeakCache(function* runConfig(\n options: Function,\n cache: CacheConfigurator<ConfigCacheData>,\n): Handler<{\n options: InputOptions | null;\n cacheNeedsConfiguration: boolean;\n}> {\n // if we want to make it possible to use async configs\n yield* [];\n\n return {\n options: endHiddenCallStack(options as any as (api: ConfigAPI) => any)(\n makeConfigAPI(cache),\n ),\n cacheNeedsConfiguration: !cache.configured(),\n };\n});\n\nfunction* readConfigCode(\n filepath: string,\n data: ConfigCacheData,\n): Handler<ConfigFile | null> {\n if (!nodeFs.existsSync(filepath)) return null;\n\n let options = yield* loadCodeDefault(\n filepath,\n (yield* isAsync()) ? \"auto\" : \"require\",\n \"You appear to be using a native ECMAScript module configuration \" +\n \"file, which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n \"You appear to be using a configuration file that contains top-level \" +\n \"await, which is only supported when running Babel asynchronously.\",\n );\n\n let cacheNeedsConfiguration = false;\n if (typeof options === \"function\") {\n ({ options, cacheNeedsConfiguration } = yield* runConfig(options, data));\n }\n\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new ConfigError(\n `Configuration should be an exported JavaScript object.`,\n filepath,\n );\n }\n\n if (typeof (options as any).then === \"function\") {\n // We use ?. in case options is a thenable but not a promise\n (options as any).catch?.(() => {});\n throw new ConfigError(\n `You appear to be using an async configuration, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously return your config.`,\n filepath,\n );\n }\n\n if (cacheNeedsConfiguration) throwConfigError(filepath);\n\n return buildConfigFileObject(options, filepath);\n}\n\n// We cache the generated ConfigFile object rather than creating a new one\n// every time, so that it can be used as a cache key in other functions.\nconst cfboaf /* configFilesByOptionsAndFilepath */ = new WeakMap<\n InputOptions,\n Map<string, ConfigFile>\n>();\nfunction buildConfigFileObject(\n options: InputOptions,\n filepath: string,\n): ConfigFile {\n let configFilesByFilepath = cfboaf.get(options);\n if (!configFilesByFilepath) {\n cfboaf.set(options, (configFilesByFilepath = new Map()));\n }\n\n let configFile = configFilesByFilepath.get(filepath);\n if (!configFile) {\n configFile = {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n configFilesByFilepath.set(filepath, configFile);\n }\n\n return configFile;\n}\n\nconst packageToBabelConfig = makeWeakCacheSync(\n (file: ConfigFile): ConfigFile | null => {\n const babel: unknown = file.options.babel;\n\n if (babel === undefined) return null;\n\n if (typeof babel !== \"object\" || Array.isArray(babel) || babel === null) {\n throw new ConfigError(`.babel property must be an object`, file.filepath);\n }\n\n return {\n filepath: file.filepath,\n dirname: file.dirname,\n options: babel,\n };\n },\n);\n\nconst readConfigJSON5 = makeStaticFileCache((filepath, content): ConfigFile => {\n let options;\n try {\n options = json5.parse(content);\n } catch (err) {\n throw new ConfigError(\n `Error while parsing config - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new ConfigError(`No config detected`, filepath);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(`Config returned typeof ${typeof options}`, filepath);\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n delete options.$schema;\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n});\n\nconst readIgnoreConfig = makeStaticFileCache((filepath, content) => {\n const ignoreDir = path.dirname(filepath);\n const ignorePatterns = content\n .split(\"\\n\")\n .map(line => line.replace(/^#.*$/, \"\").trim())\n .filter(Boolean);\n\n for (const pattern of ignorePatterns) {\n if (pattern.startsWith(\"!\")) {\n throw new ConfigError(\n `Negation of file paths is not supported.`,\n filepath,\n );\n }\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n ignore: ignorePatterns.map(pattern =>\n pathPatternToRegex(pattern, ignoreDir),\n ),\n };\n});\n\nexport function findConfigUpwards(rootDir: string): string | null {\n let dirname = rootDir;\n for (;;) {\n for (const filename of ROOT_CONFIG_FILENAMES) {\n if (nodeFs.existsSync(path.join(dirname, filename))) {\n return dirname;\n }\n }\n\n const nextDir = path.dirname(dirname);\n if (dirname === nextDir) break;\n dirname = nextDir;\n }\n\n return null;\n}\n\nexport function* findRelativeConfig(\n packageData: FilePackageData,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<RelativeConfig> {\n let config = null;\n let ignore = null;\n\n const dirname = path.dirname(packageData.filepath);\n\n for (const loc of packageData.directories) {\n if (!config) {\n config = yield* loadOneConfig(\n RELATIVE_CONFIG_FILENAMES,\n loc,\n envName,\n caller,\n packageData.pkg?.dirname === loc\n ? packageToBabelConfig(packageData.pkg)\n : null,\n );\n }\n\n if (!ignore) {\n const ignoreLoc = path.join(loc, BABELIGNORE_FILENAME);\n ignore = yield* readIgnoreConfig(ignoreLoc);\n\n if (ignore) {\n debug(\"Found ignore %o from %o.\", ignore.filepath, dirname);\n }\n }\n }\n\n return { config, ignore };\n}\n\nexport function findRootConfig(\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller);\n}\n\nfunction* loadOneConfig(\n names: string[],\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n previousConfig: ConfigFile | null = null,\n): Handler<ConfigFile | null> {\n const configs = yield* gensync.all(\n names.map(filename =>\n readConfig(path.join(dirname, filename), envName, caller),\n ),\n );\n const config = configs.reduce((previousConfig: ConfigFile | null, config) => {\n if (config && previousConfig) {\n throw new ConfigError(\n `Multiple configuration files found. Please remove one:\\n` +\n ` - ${path.basename(previousConfig.filepath)}\\n` +\n ` - ${config.filepath}\\n` +\n `from ${dirname}`,\n );\n }\n\n return config || previousConfig;\n }, previousConfig);\n\n if (config) {\n debug(\"Found configuration %o from %o.\", config.filepath, dirname);\n }\n return config;\n}\n\nexport function* loadConfig(\n name: string,\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile> {\n const filepath = require.resolve(name, { paths: [dirname] });\n\n const conf = yield* readConfig(filepath, envName, caller);\n if (!conf) {\n throw new ConfigError(\n `Config file contains no configuration data`,\n filepath,\n );\n }\n\n debug(\"Loaded config %o from %o.\", name, dirname);\n return conf;\n}\n\n/**\n * Read the given config file, returning the result. Returns null if no config was found, but will\n * throw if there are parsing errors while loading a config.\n */\nfunction readConfig(\n filepath: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n const ext = path.extname(filepath);\n switch (ext) {\n case \".js\":\n case \".cjs\":\n case \".mjs\":\n case \".ts\":\n case \".cts\":\n case \".mts\":\n return readConfigCode(filepath, { envName, caller });\n default:\n return readConfigJSON5(filepath);\n }\n}\n\nexport function* resolveShowConfigPath(\n dirname: string,\n): Handler<string | null> {\n const targetPath = process.env.BABEL_SHOW_CONFIG_FOR;\n if (targetPath != null) {\n const absolutePath = path.resolve(dirname, targetPath);\n const stats = (yield* fs.stat(absolutePath))!;\n if (!stats.isFile()) {\n throw new Error(\n `${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`,\n );\n }\n return absolutePath;\n }\n return null;\n}\n\nfunction throwConfigError(filepath: string): never {\n throw new ConfigError(\n `\\\nCaching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured\nfor various types of caching, using the first param of their handler functions:\n\nmodule.exports = function(api) {\n // The API exposes the following:\n\n // Cache the returned value forever and don't call this function again.\n api.cache(true);\n\n // Don't cache at all. Not recommended because it will be very slow.\n api.cache(false);\n\n // Cached based on the value of some function. If this function returns a value different from\n // a previously-encountered value, the plugins will re-evaluate.\n var env = api.cache(() => process.env.NODE_ENV);\n\n // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for\n // any possible NODE_ENV value that might come up during plugin execution.\n var isProd = api.cache(() => process.env.NODE_ENV === \"production\");\n\n // .cache(fn) will perform a linear search though instances to find the matching plugin based\n // based on previous instantiated plugins. If you want to recreate the plugin and discard the\n // previous instance whenever something changes, you may use:\n var isProd = api.cache.invalidate(() => process.env.NODE_ENV === \"production\");\n\n // Note, we also expose the following more-verbose versions of the above examples:\n api.cache.forever(); // api.cache(true)\n api.cache.never(); // api.cache(false)\n api.cache.using(fn); // api.cache(fn)\n\n // Return the value that will be cached.\n return { };\n};`,\n filepath,\n );\n}\n","/**\n * This file handles all logic for converting string-based configuration references into loaded objects.\n */\n\nimport { createDebug } from \"obug\";\nimport path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\nimport { resolve as importMetaResolve } from \"import-meta-resolve\";\n\nimport { createRequire } from \"node:module\";\nimport { existsSync } from \"node:fs\";\nconst require = createRequire(import.meta.url);\n\nconst debug = createDebug(\"babel:config:loading:files:plugins\");\n\nconst EXACT_RE = /^module:/;\nconst BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-plugin-)/;\nconst BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-preset-)/;\nconst BABEL_PLUGIN_ORG_RE = /^(@babel\\/)(?!plugin-|[^/]+\\/)/;\nconst BABEL_PRESET_ORG_RE = /^(@babel\\/)(?!preset-|[^/]+\\/)/;\nconst OTHER_PLUGIN_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-plugin(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_PRESET_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-preset(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;\n\nexport const resolvePlugin = resolveStandardizedName.bind(null, \"plugin\");\nexport const resolvePreset = resolveStandardizedName.bind(null, \"preset\");\n\nexport function* loadPlugin(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const { filepath, loader } = resolvePlugin(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"plugin\", loader, filepath);\n debug(\"Loaded plugin %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nexport function* loadPreset(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const { filepath, loader } = resolvePreset(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"preset\", loader, filepath);\n\n debug(\"Loaded preset %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nfunction standardizeName(type: \"plugin\" | \"preset\", name: string) {\n // Let absolute and relative paths through.\n if (path.isAbsolute(name)) return name;\n\n const isPreset = type === \"preset\";\n\n return (\n name\n // foo -> babel-preset-foo\n .replace(\n isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE,\n `babel-${type}-`,\n )\n // @babel/es2015 -> @babel/preset-es2015\n .replace(\n isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE,\n `$1${type}-`,\n )\n // @foo/mypreset -> @foo/babel-preset-mypreset\n .replace(\n isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE,\n `$1babel-${type}-`,\n )\n // @foo -> @foo/babel-preset\n .replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`)\n // module:mypreset -> mypreset\n .replace(EXACT_RE, \"\")\n );\n}\n\ntype Result<T> = { error: Error; value: null } | { error: null; value: T };\n\nfunction* resolveAlternativesHelper(\n type: \"plugin\" | \"preset\",\n name: string,\n): Iterator<string, string, Result<string>> {\n const standardizedName = standardizeName(type, name);\n const { error, value } = yield standardizedName;\n if (!error) return value;\n\n // @ts-expect-error code may not index error\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n if (standardizedName !== name && !(yield name).error) {\n error.message += `\\n- If you want to resolve \"${name}\", use \"module:${name}\"`;\n }\n\n if (!(yield standardizeName(type, \"@babel/\" + name)).error) {\n error.message += `\\n- Did you mean \"@babel/${name}\"?`;\n }\n\n const oppositeType = type === \"preset\" ? \"plugin\" : \"preset\";\n if (!(yield standardizeName(oppositeType, name)).error) {\n error.message += `\\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;\n }\n\n if (type === \"plugin\") {\n const transformName = standardizedName.replace(\"-proposal-\", \"-transform-\");\n if (transformName !== standardizedName && !(yield transformName).error) {\n error.message += `\\n- Did you mean \"${transformName}\"?`;\n }\n }\n\n error.message += `\\n\nMake sure that all the Babel plugins and presets you are using\nare defined as dependencies or devDependencies in your package.json\nfile. It's possible that the missing plugin is loaded by a preset\nyou are using that forgot to add the plugin to its dependencies: you\ncan workaround this problem by explicitly adding the missing package\nto your top-level package.json.\n`;\n\n throw error;\n}\n\nfunction tryRequireResolve(\n id: string,\n dirname: string | undefined,\n): Result<string> {\n try {\n if (dirname) {\n return { error: null, value: require.resolve(id, { paths: [dirname] }) };\n } else {\n return { error: null, value: require.resolve(id) };\n }\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction tryImportMetaResolve(\n id: Parameters<typeof importMetaResolve>[0],\n options: Parameters<typeof importMetaResolve>[1],\n): Result<string> {\n try {\n return { error: null, value: importMetaResolve(id, options) };\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction resolveStandardizedNameForRequire(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryRequireResolve(res.value, dirname));\n }\n return { loader: \"require\" as const, filepath: res.value };\n}\nfunction resolveStandardizedNameForImport(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const parentUrl = pathToFileURL(\n path.join(dirname, \"./babel-virtual-resolve-base.js\"),\n ).href;\n\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryImportMetaResolve(res.value, parentUrl));\n }\n return { loader: \"auto\" as const, filepath: fileURLToPath(res.value) };\n}\n\nfunction resolveStandardizedName(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n allowAsync: boolean,\n) {\n if (!allowAsync) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n }\n\n try {\n const resolved = resolveStandardizedNameForImport(type, name, dirname);\n // import-meta-resolve 4.0 does not throw if the module is not found.\n if (!existsSync(resolved.filepath)) {\n throw Object.assign(\n new Error(`Could not resolve \"${name}\" in file ${dirname}.`),\n { type: \"MODULE_NOT_FOUND\" },\n );\n }\n return resolved;\n } catch (e) {\n try {\n return resolveStandardizedNameForRequire(type, name, dirname);\n } catch (e2) {\n if (e.type === \"MODULE_NOT_FOUND\") throw e;\n if (e2.type === \"MODULE_NOT_FOUND\") throw e2;\n throw e;\n }\n }\n}\n\nfunction* requireModule(\n type: string,\n loader: \"require\" | \"auto\",\n name: string,\n): Handler<unknown> {\n try {\n return yield* loadCodeDefault(\n name,\n loader,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n `You appear to be using a ${type} that contains top-level await, ` +\n \"which is only supported when running Babel asynchronously.\",\n );\n } catch (err) {\n err.message = `[BABEL]: ${err.message} (While processing: ${name})`;\n throw err;\n }\n}\n"],"names":["makeStaticFileCache","fn","makeStrongCache","filepath","cache","cached","invalidate","fileMtime","fs","nodeFs","existsSync","statSync","mtime","e","code","PACKAGE_FILENAME","readConfigPackage","content","options","JSON","parse","err","ConfigError","message","Error","Array","isArray","dirname","path","findPackageData","pkg","directories","isPackage","basename","push","join","nextLoc","debug","createDebug","require","createRequire","import","meta","url","LOADING_CJS_FILES","Set","loadCjsDefault","has","module","add","endHiddenCallStack","delete","__esModule","Symbol","toStringTag","default","loadMjsFromPath","pathToFileURL","toString","tsNotSupportedError","ext","SUPPORTED_EXTENSIONS","asyncModules","loadCodeDefault","loader","esmError","tlaError","async","extname","isTS","type","Object","hasOwn","pattern","ensureTsSupport","isAsync","promise","waitFor","callback","process","features","typescript","extensions","opts","babelrc","configFile","sourceType","sourceMaps","sourceFileName","presets","getTSPreset","onlyRemoveTypeImports","optimizeConstEnums","handler","m","filename","endsWith","_compile","transformFileSync","undefined","error","ROOT_CONFIG_FILENAMES","RELATIVE_CONFIG_FILENAMES","BABELIGNORE_FILENAME","runConfig","makeWeakCache","makeConfigAPI","cacheNeedsConfiguration","configured","readConfigCode","data","then","catch","throwConfigError","buildConfigFileObject","cfboaf","WeakMap","configFilesByFilepath","get","set","Map","packageToBabelConfig","makeWeakCacheSync","file","babel","readConfigJSON5","json5","$schema","readIgnoreConfig","ignoreDir","ignorePatterns","split","map","line","replace","trim","filter","Boolean","startsWith","ignore","pathPatternToRegex","findConfigUpwards","rootDir","nextDir","findRelativeConfig","packageData","envName","caller","config","loc","loadOneConfig","ignoreLoc","findRootConfig","names","previousConfig","configs","gensync","all","readConfig","reduce","loadConfig","name","resolve","paths","conf","resolveShowConfigPath","targetPath","env","BABEL_SHOW_CONFIG_FOR","absolutePath","stats","isFile","EXACT_RE","BABEL_PLUGIN_PREFIX_RE","BABEL_PRESET_PREFIX_RE","BABEL_PLUGIN_ORG_RE","BABEL_PRESET_ORG_RE","OTHER_PLUGIN_ORG_RE","OTHER_PRESET_ORG_RE","OTHER_ORG_DEFAULT_RE","resolvePlugin","resolveStandardizedName","bind","resolvePreset","loadPlugin","value","requireModule","loadPreset","standardizeName","isAbsolute","isPreset","resolveAlternativesHelper","standardizedName","oppositeType","transformName","tryRequireResolve","id","tryImportMetaResolve","importMetaResolve","resolveStandardizedNameForRequire","it","res","next","done","resolveStandardizedNameForImport","parentUrl","href","fileURLToPath","allowAsync","resolved","assign","e2"],"mappings":"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"}
{"version":3,"file":"index.js","sources":["../../../src/config/files/utils.ts","../../../src/config/files/package.ts","../../../src/config/files/module-types.ts","../../../src/config/files/configuration.ts","../../../src/config/files/plugins.ts"],"sourcesContent":["import type { Handler } from \"gensync\";\n\nimport { makeStrongCache } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport * as fs from \"../../gensync-utils/fs.ts\";\nimport nodeFs from \"node:fs\";\n\nexport function makeStaticFileCache<T>(\n fn: (filepath: string, contents: string) => T,\n) {\n return makeStrongCache(function* (\n filepath: string,\n cache: CacheConfigurator<void>,\n ): Handler<null | T> {\n const cached = cache.invalidate(() => fileMtime(filepath));\n\n if (cached === null) {\n return null;\n }\n\n return fn(filepath, yield* fs.readFile(filepath, \"utf8\"));\n });\n}\n\nfunction fileMtime(filepath: string): number | null {\n if (!nodeFs.existsSync(filepath)) return null;\n\n try {\n return +nodeFs.statSync(filepath).mtime;\n } catch (e) {\n if (e.code !== \"ENOENT\" && e.code !== \"ENOTDIR\") throw e;\n }\n\n return null;\n}\n","import path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport { makeStaticFileCache } from \"./utils.ts\";\n\nimport type { ConfigFile, FilePackageData } from \"./types.ts\";\n\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst PACKAGE_FILENAME = \"package.json\";\n\nconst readConfigPackage = makeStaticFileCache(\n (filepath, content): ConfigFile => {\n let options;\n try {\n options = JSON.parse(content) as unknown;\n } catch (err) {\n throw new ConfigError(\n `Error while parsing JSON - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new Error(`${filepath}: No config detected`);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(\n `Config returned typeof ${typeof options}`,\n filepath,\n );\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n },\n);\n\n/**\n * Find metadata about the package that this file is inside of. Resolution\n * of Babel's config requires general package information to decide when to\n * search for .babelrc files\n */\nexport function* findPackageData(filepath: string): Handler<FilePackageData> {\n let pkg = null;\n const directories = [];\n let isPackage = true;\n\n let dirname = path.dirname(filepath);\n while (!pkg && path.basename(dirname) !== \"node_modules\") {\n directories.push(dirname);\n\n pkg = yield* readConfigPackage(path.join(dirname, PACKAGE_FILENAME));\n\n const nextLoc = path.dirname(dirname);\n if (dirname === nextLoc) {\n isPackage = false;\n break;\n }\n dirname = nextLoc;\n }\n\n return { filepath, directories, pkg, isPackage };\n}\n","import { isAsync, waitFor } from \"../../gensync-utils/async.ts\";\nimport type { Handler } from \"gensync\";\nimport path from \"node:path\";\nimport { pathToFileURL } from \"node:url\";\nimport { createRequire } from \"node:module\";\nimport { createDebug } from \"obug\";\n\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst debug = createDebug(\"babel:config:loading:files:module-types\");\n\nconst require = createRequire(import.meta.url);\n\nconst LOADING_CJS_FILES = new Set();\n\nfunction loadCjsDefault(filepath: string) {\n // The `require()` call below can make this code reentrant if a require hook\n // like @babel/register has been loaded into the system. That would cause\n // Babel to attempt to compile the `.babelrc.js` file as it loads below. To\n // cover this case, we auto-ignore re-entrant config processing. ESM loaders\n // do not have this problem, because loaders do not apply to themselves.\n if (LOADING_CJS_FILES.has(filepath)) {\n debug(\"Auto-ignoring usage of config %o.\", filepath);\n return {};\n }\n\n let module;\n try {\n LOADING_CJS_FILES.add(filepath);\n module = endHiddenCallStack(require)(filepath);\n } finally {\n LOADING_CJS_FILES.delete(filepath);\n }\n\n return module != null &&\n (module.__esModule || module[Symbol.toStringTag] === \"Module\")\n ? module.default\n : module;\n}\n\nconst loadMjsFromPath = endHiddenCallStack(async function loadMjsFromPath(\n filepath: string,\n) {\n // Add ?import as a workaround for https://github.com/nodejs/node/issues/55500\n const url = pathToFileURL(filepath).toString() + \"?import\";\n\n return await import(url);\n});\n\nconst tsNotSupportedError = (ext: string) => `\\\nYou are using a ${ext} config file, but Babel only supports transpiling .cts configs. Either:\n- Use a .cts config file\n- Update to Node.js 23.6.0, which has native TypeScript support\n- Install tsx to transpile ${ext} files on the fly\\\n`;\n\nconst SUPPORTED_EXTENSIONS = {\n \".js\": \"unknown\",\n \".mjs\": \"esm\",\n \".cjs\": \"cjs\",\n \".ts\": \"unknown\",\n \".mts\": \"esm\",\n \".cts\": \"cjs\",\n} as const;\n\nexport default function* loadCodeDefault(\n filepath: string,\n loader: \"require\" | \"auto\",\n esmError: string,\n tlaError: string,\n): Handler<unknown> {\n let async;\n\n const ext = path.extname(filepath);\n const isTS = ext === \".ts\" || ext === \".cts\" || ext === \".mts\";\n\n const type =\n SUPPORTED_EXTENSIONS[\n Object.hasOwn(SUPPORTED_EXTENSIONS, ext)\n ? (ext as keyof typeof SUPPORTED_EXTENSIONS)\n : (\".js\" as const)\n ];\n\n const pattern = `${loader} ${type}` as const;\n switch (pattern) {\n case \"require cjs\":\n case \"auto cjs\":\n return loadCjsDefault(filepath);\n\n case \"auto unknown\":\n case \"require unknown\":\n case \"require esm\":\n try {\n return loadCjsDefault(filepath);\n } catch (e) {\n if (e.code === \"ERR_REQUIRE_ASYNC_MODULE\") {\n if (!(async ??= yield* isAsync())) {\n throw new ConfigError(tlaError, filepath);\n }\n // fall through: require() failed due to TLA\n } else {\n throw e;\n }\n }\n // fall through: require() failed due to TLA, try import()\n case \"auto esm\":\n if (async ?? (yield* isAsync())) {\n return (yield* waitFor(loadMjsFromPath(filepath))).default;\n }\n if (isTS) {\n throw new ConfigError(tsNotSupportedError(ext), filepath);\n } else {\n throw new ConfigError(esmError, filepath);\n }\n default:\n throw new Error(\"Internal Babel error: unreachable code.\");\n }\n}\n","import { createDebug } from \"obug\";\nimport nodeFs from \"node:fs\";\nimport path from \"node:path\";\nimport json5 from \"json5\";\nimport gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport { makeWeakCache, makeWeakCacheSync } from \"../caching.ts\";\nimport type { CacheConfigurator } from \"../caching.ts\";\nimport { makeConfigAPI } from \"../helpers/config-api.ts\";\nimport type { ConfigAPI } from \"../helpers/config-api.ts\";\nimport { makeStaticFileCache } from \"./utils.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport pathPatternToRegex from \"../pattern-to-regex.ts\";\nimport type { FilePackageData, RelativeConfig, ConfigFile } from \"./types.ts\";\nimport type { CallerMetadata, InputOptions } from \"../validation/options.ts\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nimport * as fs from \"../../gensync-utils/fs.ts\";\n\nimport { createRequire } from \"node:module\";\nimport { endHiddenCallStack } from \"../../errors/rewrite-stack-trace.ts\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nconst require = createRequire(import.meta.url);\n\nconst debug = createDebug(\"babel:config:loading:files:configuration\");\n\nexport const ROOT_CONFIG_FILENAMES = [\n \"babel.config.js\",\n \"babel.config.cjs\",\n \"babel.config.mjs\",\n \"babel.config.json\",\n \"babel.config.cts\",\n \"babel.config.ts\",\n \"babel.config.mts\",\n];\nconst RELATIVE_CONFIG_FILENAMES = [\n \".babelrc\",\n \".babelrc.js\",\n \".babelrc.cjs\",\n \".babelrc.mjs\",\n \".babelrc.json\",\n \".babelrc.cts\",\n];\n\nconst BABELIGNORE_FILENAME = \".babelignore\";\n\ntype ConfigCacheData = {\n envName: string;\n caller: CallerMetadata | undefined;\n};\n\nconst runConfig = makeWeakCache(function* runConfig(\n options: Function,\n cache: CacheConfigurator<ConfigCacheData>,\n): Handler<{\n options: InputOptions | null;\n cacheNeedsConfiguration: boolean;\n}> {\n // if we want to make it possible to use async configs\n yield* [];\n\n return {\n options: endHiddenCallStack(options as any as (api: ConfigAPI) => any)(\n makeConfigAPI(cache),\n ),\n cacheNeedsConfiguration: !cache.configured(),\n };\n});\n\nfunction* readConfigCode(\n filepath: string,\n data: ConfigCacheData,\n): Handler<ConfigFile | null> {\n if (!nodeFs.existsSync(filepath)) return null;\n\n let options = yield* loadCodeDefault(\n filepath,\n (yield* isAsync()) ? \"auto\" : \"require\",\n \"You appear to be using a native ECMAScript module configuration \" +\n \"file, which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n \"You appear to be using a configuration file that contains top-level \" +\n \"await, which is only supported when running Babel asynchronously.\",\n );\n\n let cacheNeedsConfiguration = false;\n if (typeof options === \"function\") {\n ({ options, cacheNeedsConfiguration } = yield* runConfig(options, data));\n }\n\n if (!options || typeof options !== \"object\" || Array.isArray(options)) {\n throw new ConfigError(\n `Configuration should be an exported JavaScript object.`,\n filepath,\n );\n }\n\n if (typeof (options as any).then === \"function\") {\n // We use ?. in case options is a thenable but not a promise\n (options as any).catch?.(() => {});\n throw new ConfigError(\n `You appear to be using an async configuration, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously return your config.`,\n filepath,\n );\n }\n\n if (cacheNeedsConfiguration) throwConfigError(filepath);\n\n return buildConfigFileObject(options, filepath);\n}\n\n// We cache the generated ConfigFile object rather than creating a new one\n// every time, so that it can be used as a cache key in other functions.\nconst cfboaf /* configFilesByOptionsAndFilepath */ = new WeakMap<\n InputOptions,\n Map<string, ConfigFile>\n>();\nfunction buildConfigFileObject(\n options: InputOptions,\n filepath: string,\n): ConfigFile {\n let configFilesByFilepath = cfboaf.get(options);\n if (!configFilesByFilepath) {\n cfboaf.set(options, (configFilesByFilepath = new Map()));\n }\n\n let configFile = configFilesByFilepath.get(filepath);\n if (!configFile) {\n configFile = {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n configFilesByFilepath.set(filepath, configFile);\n }\n\n return configFile;\n}\n\nconst packageToBabelConfig = makeWeakCacheSync(\n (file: ConfigFile): ConfigFile | null => {\n const babel: unknown = file.options.babel;\n\n if (babel === undefined) return null;\n\n if (typeof babel !== \"object\" || Array.isArray(babel) || babel === null) {\n throw new ConfigError(`.babel property must be an object`, file.filepath);\n }\n\n return {\n filepath: file.filepath,\n dirname: file.dirname,\n options: babel,\n };\n },\n);\n\nconst readConfigJSON5 = makeStaticFileCache((filepath, content): ConfigFile => {\n let options;\n try {\n options = json5.parse(content);\n } catch (err) {\n throw new ConfigError(\n `Error while parsing config - ${err.message}`,\n filepath,\n );\n }\n\n if (!options) throw new ConfigError(`No config detected`, filepath);\n\n if (typeof options !== \"object\") {\n throw new ConfigError(`Config returned typeof ${typeof options}`, filepath);\n }\n if (Array.isArray(options)) {\n throw new ConfigError(`Expected config object but found array`, filepath);\n }\n\n delete options.$schema;\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n options,\n };\n});\n\nconst readIgnoreConfig = makeStaticFileCache((filepath, content) => {\n const ignoreDir = path.dirname(filepath);\n const ignorePatterns = content\n .split(\"\\n\")\n .map(line => line.replace(/^#.*$/, \"\").trim())\n .filter(Boolean);\n\n for (const pattern of ignorePatterns) {\n if (pattern.startsWith(\"!\")) {\n throw new ConfigError(\n `Negation of file paths is not supported.`,\n filepath,\n );\n }\n }\n\n return {\n filepath,\n dirname: path.dirname(filepath),\n ignore: ignorePatterns.map(pattern =>\n pathPatternToRegex(pattern, ignoreDir),\n ),\n };\n});\n\nexport function findConfigUpwards(rootDir: string): string | null {\n let dirname = rootDir;\n for (;;) {\n for (const filename of ROOT_CONFIG_FILENAMES) {\n if (nodeFs.existsSync(path.join(dirname, filename))) {\n return dirname;\n }\n }\n\n const nextDir = path.dirname(dirname);\n if (dirname === nextDir) break;\n dirname = nextDir;\n }\n\n return null;\n}\n\nexport function* findRelativeConfig(\n packageData: FilePackageData,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<RelativeConfig> {\n let config = null;\n let ignore = null;\n\n const dirname = path.dirname(packageData.filepath);\n\n for (const loc of packageData.directories) {\n if (!config) {\n config = yield* loadOneConfig(\n RELATIVE_CONFIG_FILENAMES,\n loc,\n envName,\n caller,\n packageData.pkg?.dirname === loc\n ? packageToBabelConfig(packageData.pkg)\n : null,\n );\n }\n\n if (!ignore) {\n const ignoreLoc = path.join(loc, BABELIGNORE_FILENAME);\n ignore = yield* readIgnoreConfig(ignoreLoc);\n\n if (ignore) {\n debug(\"Found ignore %o from %o.\", ignore.filepath, dirname);\n }\n }\n }\n\n return { config, ignore };\n}\n\nexport function findRootConfig(\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller);\n}\n\nfunction* loadOneConfig(\n names: string[],\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n previousConfig: ConfigFile | null = null,\n): Handler<ConfigFile | null> {\n const configs = yield* gensync.all(\n names.map(filename =>\n readConfig(path.join(dirname, filename), envName, caller),\n ),\n );\n const config = configs.reduce((previousConfig: ConfigFile | null, config) => {\n if (config && previousConfig) {\n throw new ConfigError(\n `Multiple configuration files found. Please remove one:\\n` +\n ` - ${path.basename(previousConfig.filepath)}\\n` +\n ` - ${config.filepath}\\n` +\n `from ${dirname}`,\n );\n }\n\n return config || previousConfig;\n }, previousConfig);\n\n if (config) {\n debug(\"Found configuration %o from %o.\", config.filepath, dirname);\n }\n return config;\n}\n\nexport function* loadConfig(\n name: string,\n dirname: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile> {\n const filepath = require.resolve(name, { paths: [dirname] });\n\n const conf = yield* readConfig(filepath, envName, caller);\n if (!conf) {\n throw new ConfigError(\n `Config file contains no configuration data`,\n filepath,\n );\n }\n\n debug(\"Loaded config %o from %o.\", name, dirname);\n return conf;\n}\n\n/**\n * Read the given config file, returning the result. Returns null if no config was found, but will\n * throw if there are parsing errors while loading a config.\n */\nfunction readConfig(\n filepath: string,\n envName: string,\n caller: CallerMetadata | undefined,\n): Handler<ConfigFile | null> {\n const ext = path.extname(filepath);\n switch (ext) {\n case \".js\":\n case \".cjs\":\n case \".mjs\":\n case \".ts\":\n case \".cts\":\n case \".mts\":\n return readConfigCode(filepath, { envName, caller });\n default:\n return readConfigJSON5(filepath);\n }\n}\n\nexport function* resolveShowConfigPath(\n dirname: string,\n): Handler<string | null> {\n const targetPath = process.env.BABEL_SHOW_CONFIG_FOR;\n if (targetPath != null) {\n const absolutePath = path.resolve(dirname, targetPath);\n const stats = (yield* fs.stat(absolutePath))!;\n if (!stats.isFile()) {\n throw new Error(\n `${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`,\n );\n }\n return absolutePath;\n }\n return null;\n}\n\nfunction throwConfigError(filepath: string): never {\n throw new ConfigError(\n `\\\nCaching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured\nfor various types of caching, using the first param of their handler functions:\n\nmodule.exports = function(api) {\n // The API exposes the following:\n\n // Cache the returned value forever and don't call this function again.\n api.cache(true);\n\n // Don't cache at all. Not recommended because it will be very slow.\n api.cache(false);\n\n // Cached based on the value of some function. If this function returns a value different from\n // a previously-encountered value, the plugins will re-evaluate.\n var env = api.cache(() => process.env.NODE_ENV);\n\n // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for\n // any possible NODE_ENV value that might come up during plugin execution.\n var isProd = api.cache(() => process.env.NODE_ENV === \"production\");\n\n // .cache(fn) will perform a linear search though instances to find the matching plugin based\n // based on previous instantiated plugins. If you want to recreate the plugin and discard the\n // previous instance whenever something changes, you may use:\n var isProd = api.cache.invalidate(() => process.env.NODE_ENV === \"production\");\n\n // Note, we also expose the following more-verbose versions of the above examples:\n api.cache.forever(); // api.cache(true)\n api.cache.never(); // api.cache(false)\n api.cache.using(fn); // api.cache(fn)\n\n // Return the value that will be cached.\n return { };\n};`,\n filepath,\n );\n}\n","/**\n * This file handles all logic for converting string-based configuration references into loaded objects.\n */\n\nimport { createDebug } from \"obug\";\nimport path from \"node:path\";\nimport type { Handler } from \"gensync\";\nimport { isAsync } from \"../../gensync-utils/async.ts\";\nimport loadCodeDefault from \"./module-types.ts\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\n\nimport { resolve as importMetaResolve } from \"import-meta-resolve\";\n\nimport { createRequire } from \"node:module\";\nimport { existsSync } from \"node:fs\";\nconst require = createRequire(import.meta.url);\n\nconst debug = createDebug(\"babel:config:loading:files:plugins\");\n\nconst EXACT_RE = /^module:/;\nconst BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-plugin-)/;\nconst BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\\/|babel-preset-)/;\nconst BABEL_PLUGIN_ORG_RE = /^(@babel\\/)(?!plugin-|[^/]+\\/)/;\nconst BABEL_PRESET_ORG_RE = /^(@babel\\/)(?!preset-|[^/]+\\/)/;\nconst OTHER_PLUGIN_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-plugin(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_PRESET_ORG_RE =\n /^(@(?!babel\\/)[^/]+\\/)(?![^/]*babel-preset(?:-|\\/|$)|[^/]+\\/)/;\nconst OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/;\n\nexport const resolvePlugin = resolveStandardizedName.bind(null, \"plugin\");\nexport const resolvePreset = resolveStandardizedName.bind(null, \"preset\");\n\nexport function* loadPlugin(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const { filepath, loader } = resolvePlugin(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"plugin\", loader, filepath);\n debug(\"Loaded plugin %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nexport function* loadPreset(\n name: string,\n dirname: string,\n): Handler<{ filepath: string; value: unknown }> {\n const { filepath, loader } = resolvePreset(name, dirname, yield* isAsync());\n\n const value = yield* requireModule(\"preset\", loader, filepath);\n\n debug(\"Loaded preset %o from %o.\", name, dirname);\n\n return { filepath, value };\n}\n\nfunction standardizeName(type: \"plugin\" | \"preset\", name: string) {\n // Let absolute and relative paths through.\n if (path.isAbsolute(name)) return name;\n\n const isPreset = type === \"preset\";\n\n return (\n name\n // foo -> babel-preset-foo\n .replace(\n isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE,\n `babel-${type}-`,\n )\n // @babel/es2015 -> @babel/preset-es2015\n .replace(\n isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE,\n `$1${type}-`,\n )\n // @foo/mypreset -> @foo/babel-preset-mypreset\n .replace(\n isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE,\n `$1babel-${type}-`,\n )\n // @foo -> @foo/babel-preset\n .replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`)\n // module:mypreset -> mypreset\n .replace(EXACT_RE, \"\")\n );\n}\n\ntype Result<T> = { error: Error; value: null } | { error: null; value: T };\n\nfunction* resolveAlternativesHelper(\n type: \"plugin\" | \"preset\",\n name: string,\n): Iterator<string, string, Result<string>> {\n const standardizedName = standardizeName(type, name);\n const { error, value } = yield standardizedName;\n if (!error) return value;\n\n // @ts-expect-error code may not index error\n if (error.code !== \"MODULE_NOT_FOUND\") throw error;\n\n if (standardizedName !== name && !(yield name).error) {\n error.message += `\\n- If you want to resolve \"${name}\", use \"module:${name}\"`;\n }\n\n if (!(yield standardizeName(type, \"@babel/\" + name)).error) {\n error.message += `\\n- Did you mean \"@babel/${name}\"?`;\n }\n\n const oppositeType = type === \"preset\" ? \"plugin\" : \"preset\";\n if (!(yield standardizeName(oppositeType, name)).error) {\n error.message += `\\n- Did you accidentally pass a ${oppositeType} as a ${type}?`;\n }\n\n if (type === \"plugin\") {\n const transformName = standardizedName.replace(\"-proposal-\", \"-transform-\");\n if (transformName !== standardizedName && !(yield transformName).error) {\n error.message += `\\n- Did you mean \"${transformName}\"?`;\n }\n }\n\n error.message += `\\n\nMake sure that all the Babel plugins and presets you are using\nare defined as dependencies or devDependencies in your package.json\nfile. It's possible that the missing plugin is loaded by a preset\nyou are using that forgot to add the plugin to its dependencies: you\ncan workaround this problem by explicitly adding the missing package\nto your top-level package.json.\n`;\n\n throw error;\n}\n\nfunction tryRequireResolve(\n id: string,\n dirname: string | undefined,\n): Result<string> {\n try {\n if (dirname) {\n return { error: null, value: require.resolve(id, { paths: [dirname] }) };\n } else {\n return { error: null, value: require.resolve(id) };\n }\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction tryImportMetaResolve(\n id: Parameters<typeof importMetaResolve>[0],\n options: Parameters<typeof importMetaResolve>[1],\n): Result<string> {\n try {\n return { error: null, value: importMetaResolve(id, options) };\n } catch (error) {\n return { error, value: null };\n }\n}\n\nfunction resolveStandardizedNameForRequire(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryRequireResolve(res.value, dirname));\n }\n return { loader: \"require\" as const, filepath: res.value };\n}\nfunction resolveStandardizedNameForImport(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n) {\n const parentUrl = pathToFileURL(\n path.join(dirname, \"./babel-virtual-resolve-base.js\"),\n ).href;\n\n const it = resolveAlternativesHelper(type, name);\n let res = it.next();\n while (!res.done) {\n res = it.next(tryImportMetaResolve(res.value, parentUrl));\n }\n return { loader: \"auto\" as const, filepath: fileURLToPath(res.value) };\n}\n\nfunction resolveStandardizedName(\n type: \"plugin\" | \"preset\",\n name: string,\n dirname: string,\n allowAsync: boolean,\n) {\n if (!allowAsync) {\n return resolveStandardizedNameForRequire(type, name, dirname);\n }\n\n try {\n const resolved = resolveStandardizedNameForImport(type, name, dirname);\n // import-meta-resolve 4.0 does not throw if the module is not found.\n if (!existsSync(resolved.filepath)) {\n throw Object.assign(\n new Error(`Could not resolve \"${name}\" in file ${dirname}.`),\n { type: \"MODULE_NOT_FOUND\" },\n );\n }\n return resolved;\n } catch (e) {\n try {\n return resolveStandardizedNameForRequire(type, name, dirname);\n } catch (e2) {\n if (e.type === \"MODULE_NOT_FOUND\") throw e;\n if (e2.type === \"MODULE_NOT_FOUND\") throw e2;\n throw e;\n }\n }\n}\n\nfunction* requireModule(\n type: string,\n loader: \"require\" | \"auto\",\n name: string,\n): Handler<unknown> {\n try {\n return yield* loadCodeDefault(\n name,\n loader,\n `You appear to be using a native ECMAScript module ${type}, ` +\n \"which is only supported when running Babel asynchronously \" +\n \"or when using the Node.js `--experimental-require-module` flag.\",\n `You appear to be using a ${type} that contains top-level await, ` +\n \"which is only supported when running Babel asynchronously.\",\n );\n } catch (err) {\n err.message = `[BABEL]: ${err.message} (While processing: ${name})`;\n throw err;\n }\n}\n"],"names":["makeStaticFileCache","fn","makeStrongCache","filepath","cache","cached","invalidate","fileMtime","fs","nodeFs","existsSync","statSync","mtime","e","code","PACKAGE_FILENAME","readConfigPackage","content","options","JSON","parse","err","ConfigError","message","Error","Array","isArray","dirname","path","findPackageData","pkg","directories","isPackage","basename","push","join","nextLoc","debug","createDebug","require","createRequire","import","meta","url","LOADING_CJS_FILES","Set","loadCjsDefault","has","module","add","endHiddenCallStack","delete","__esModule","Symbol","toStringTag","default","loadMjsFromPath","pathToFileURL","toString","tsNotSupportedError","ext","SUPPORTED_EXTENSIONS","loadCodeDefault","loader","esmError","tlaError","async","extname","isTS","type","Object","hasOwn","pattern","isAsync","waitFor","ROOT_CONFIG_FILENAMES","RELATIVE_CONFIG_FILENAMES","BABELIGNORE_FILENAME","runConfig","makeWeakCache","makeConfigAPI","cacheNeedsConfiguration","configured","readConfigCode","data","then","catch","throwConfigError","buildConfigFileObject","cfboaf","WeakMap","configFilesByFilepath","get","set","Map","configFile","packageToBabelConfig","makeWeakCacheSync","file","babel","undefined","readConfigJSON5","json5","$schema","readIgnoreConfig","ignoreDir","ignorePatterns","split","map","line","replace","trim","filter","Boolean","startsWith","ignore","pathPatternToRegex","findConfigUpwards","rootDir","filename","nextDir","findRelativeConfig","packageData","envName","caller","config","loc","loadOneConfig","ignoreLoc","findRootConfig","names","previousConfig","configs","gensync","all","readConfig","reduce","loadConfig","name","resolve","paths","conf","resolveShowConfigPath","targetPath","process","env","BABEL_SHOW_CONFIG_FOR","absolutePath","stats","isFile","EXACT_RE","BABEL_PLUGIN_PREFIX_RE","BABEL_PRESET_PREFIX_RE","BABEL_PLUGIN_ORG_RE","BABEL_PRESET_ORG_RE","OTHER_PLUGIN_ORG_RE","OTHER_PRESET_ORG_RE","OTHER_ORG_DEFAULT_RE","resolvePlugin","resolveStandardizedName","bind","resolvePreset","loadPlugin","value","requireModule","loadPreset","standardizeName","isAbsolute","isPreset","resolveAlternativesHelper","standardizedName","error","oppositeType","transformName","tryRequireResolve","id","tryImportMetaResolve","importMetaResolve","resolveStandardizedNameForRequire","it","res","next","done","resolveStandardizedNameForImport","parentUrl","href","fileURLToPath","allowAsync","resolved","assign","e2"],"mappings":"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"}

@@ -334,3 +334,3 @@ import * as _babel_traverse from '@babel/traverse';

post?: (this: S, file: File) => void | Promise<void>;
inherits?: (api: PluginAPI, options: unknown, dirname: string) => PluginObject;
inherits?: (api: PluginAPI, options: any, dirname: string) => PluginObject;
visitor?: Visitor$1<S>;

@@ -337,0 +337,0 @@ parserOverride?: (...args: [...Parameters<typeof parse$1>, typeof parse$1]) => ReturnType<typeof parse$1>;

@@ -1,4 +0,26 @@

import 'gensync';
import './index-shared.js';
export { transformFile, transformFileAsync, transformFileSync } from './transform-file-shared.js';
import gensync from 'gensync';
import { loadConfig, run } from './index-shared.js';
import { readFile } from './fs-shared.js';
const transformFileRunner = gensync(function* (filename, opts) {
const options = {
...opts,
filename
};
const config = yield* loadConfig(options);
if (config === null) return null;
const code = yield* readFile(filename, "utf8");
return yield* run(config, code);
});
function transformFile(...args) {
transformFileRunner.errback(...args);
}
function transformFileSync(...args) {
return transformFileRunner.sync(...args);
}
function transformFileAsync(...args) {
return transformFileRunner.async(...args);
}
export { transformFile, transformFileAsync, transformFileSync };
//# sourceMappingURL=transform-file.js.map

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

{"version":3,"file":"transform-file.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
{"version":3,"file":"transform-file.js","sources":["../src/transform-file.ts"],"sourcesContent":["import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\nimport * as fs from \"./gensync-utils/fs.ts\";\n\ntype transformFileBrowserType = typeof import(\"./transform-file-browser\");\ntype transformFileType = typeof import(\"./transform-file\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of transform-file-browser, since this file may be replaced at bundle time with\n// transform-file-browser.\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n({}) as any as transformFileBrowserType as transformFileType;\n\nconst transformFileRunner = gensync(function* (\n filename: string,\n opts?: InputOptions,\n): Handler<FileResult | null> {\n const options = { ...opts, filename };\n\n const config: ResolvedConfig | null = yield* loadConfig(options);\n if (config === null) return null;\n\n const code = yield* fs.readFile(filename, \"utf8\");\n return yield* run(config, code);\n});\n\n// @ts-expect-error TS doesn't detect that this signature is compatible\nexport function transformFile(\n filename: string,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n filename: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n ...args: Parameters<typeof transformFileRunner.errback>\n) {\n transformFileRunner.errback(...args);\n}\n\nexport function transformFileSync(\n ...args: Parameters<typeof transformFileRunner.sync>\n) {\n return transformFileRunner.sync(...args);\n}\nexport function transformFileAsync(\n ...args: Parameters<typeof transformFileRunner.async>\n) {\n return transformFileRunner.async(...args);\n}\n"],"names":["transformFileRunner","gensync","filename","opts","options","config","loadConfig","code","fs","run","transformFile","args","errback","transformFileSync","sync","transformFileAsync","async"],"mappings":";;;;AAiBA,MAAMA,mBAAmB,GAAGC,OAAO,CAAC,WAClCC,QAAgB,EAChBC,IAAmB,EACS;AAC5B,EAAA,MAAMC,OAAO,GAAG;AAAE,IAAA,GAAGD,IAAI;AAAED,IAAAA;GAAU;AAErC,EAAA,MAAMG,MAA6B,GAAG,OAAOC,UAAU,CAACF,OAAO,CAAC;AAChE,EAAA,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,MAAME,IAAI,GAAG,OAAOC,QAAW,CAACN,QAAQ,EAAE,MAAM,CAAC;AACjD,EAAA,OAAO,OAAOO,GAAG,CAACJ,MAAM,EAAEE,IAAI,CAAC;AACjC,CAAC,CAAC;AAYK,SAASG,aAAaA,CAC3B,GAAGC,IAAoD,EACvD;AACAX,EAAAA,mBAAmB,CAACY,OAAO,CAAC,GAAGD,IAAI,CAAC;AACtC;AAEO,SAASE,iBAAiBA,CAC/B,GAAGF,IAAiD,EACpD;AACA,EAAA,OAAOX,mBAAmB,CAACc,IAAI,CAAC,GAAGH,IAAI,CAAC;AAC1C;AACO,SAASI,kBAAkBA,CAChC,GAAGJ,IAAkD,EACrD;AACA,EAAA,OAAOX,mBAAmB,CAACgB,KAAK,CAAC,GAAGL,IAAI,CAAC;AAC3C;;;;"}
{
"name": "@babel/core",
"version": "8.0.0-rc.5",
"version": "8.0.0-rc.6",
"description": "Babel compiler core.",

@@ -41,12 +41,13 @@ "main": "./lib/index.js",

"dependencies": {
"@babel/code-frame": "^8.0.0-rc.5",
"@babel/generator": "^8.0.0-rc.5",
"@babel/helper-compilation-targets": "^8.0.0-rc.5",
"@babel/helpers": "^8.0.0-rc.5",
"@babel/parser": "^8.0.0-rc.5",
"@babel/template": "^8.0.0-rc.5",
"@babel/traverse": "^8.0.0-rc.5",
"@babel/types": "^8.0.0-rc.5",
"@types/gensync": "^1.0.0",
"@babel/code-frame": "^8.0.0-rc.6",
"@babel/generator": "^8.0.0-rc.6",
"@babel/helper-compilation-targets": "^8.0.0-rc.6",
"@babel/helpers": "^8.0.0-rc.6",
"@babel/parser": "^8.0.0-rc.6",
"@babel/template": "^8.0.0-rc.6",
"@babel/traverse": "^8.0.0-rc.6",
"@babel/types": "^8.0.0-rc.6",
"@types/gensync": "^1.0.5",
"convert-source-map": "^2.0.0",
"find-up-simple": "^1.0.1",
"gensync": "^1.0.0-beta.2",

@@ -59,9 +60,10 @@ "import-meta-resolve": "^4.2.0",

"devDependencies": {
"@babel/helper-transform-fixture-test-runner": "^8.0.0-rc.5",
"@babel/plugin-syntax-flow": "^8.0.0-rc.5",
"@babel/plugin-syntax-jsx": "^8.0.0-rc.5",
"@babel/plugin-transform-flow-strip-types": "^8.0.0-rc.5",
"@babel/plugin-transform-modules-commonjs": "^8.0.0-rc.5",
"@babel/preset-env": "^8.0.0-rc.5",
"@babel/preset-typescript": "^8.0.0-rc.5",
"@babel/helper-transform-fixture-test-runner": "^8.0.0-rc.6",
"@babel/plugin-syntax-flow": "^8.0.0-rc.6",
"@babel/plugin-syntax-jsx": "^8.0.0-rc.6",
"@babel/plugin-transform-flow-strip-types": "^8.0.0-rc.6",
"@babel/plugin-transform-modules-commonjs": "^8.0.0-rc.6",
"@babel/preset-env": "^8.0.0-rc.6",
"@babel/preset-typescript": "^8.0.0-rc.6",
"@cspotcode/source-map-support": "^0.8.1",
"@jridgewell/trace-mapping": "^0.3.28",

@@ -74,10 +76,2 @@ "@types/convert-source-map": "^2.0.0",

},
"peerDependencies": {
"@babel/preset-typescript": "^8.0.0-0"
},
"peerDependenciesMeta": {
"@babel/preset-typescript": {
"optional": true
}
},
"exports": {

@@ -118,2 +112,11 @@ ".": {

},
"#transformation/read-input-source-map-file": {
"babel-src": {
"browser": "./src/transformation/read-input-source-map-file-browser.ts",
"default": "./src/transformation/read-input-source-map-file.ts"
},
"types": "./lib/index.d.ts",
"browser": "./lib/transformation/read-input-source-map-file-browser.js",
"default": "./lib/transformation/read-input-source-map-file.js"
},
"#hack-for-rollup-inlining-order-1": "./lib/errors/rewrite-stack-trace.js",

@@ -120,0 +123,0 @@ "#hack-for-rollup-inlining-order-2": "./lib/config/caching.js"

import gensync from 'gensync';
import { loadConfig, run } from './index-shared.js';
import fs from 'node:fs';
const readFile = gensync({
sync: fs.readFileSync,
errback: fs.readFile
});
const stat = gensync({
sync: fs.statSync,
errback: fs.stat
});
const transformFileRunner = gensync(function* (filename, opts) {
const options = {
...opts,
filename
};
const config = yield* loadConfig(options);
if (config === null) return null;
const code = yield* readFile(filename, "utf8");
return yield* run(config, code);
});
function transformFile(...args) {
transformFileRunner.errback(...args);
}
function transformFileSync(...args) {
return transformFileRunner.sync(...args);
}
function transformFileAsync(...args) {
return transformFileRunner.async(...args);
}
export { readFile, stat, transformFile, transformFileAsync, transformFileSync };
//# sourceMappingURL=transform-file-shared.js.map
{"version":3,"file":"transform-file-shared.js","sources":["../src/gensync-utils/fs.ts","../src/transform-file.ts"],"sourcesContent":["import fs from \"node:fs\";\nimport gensync from \"gensync\";\n\nexport const readFile = gensync<[filepath: string, encoding: \"utf8\"], string>({\n sync: fs.readFileSync,\n errback: fs.readFile,\n});\n\nexport const stat = gensync({\n sync: fs.statSync,\n errback: fs.stat,\n});\n","import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\nimport * as fs from \"./gensync-utils/fs.ts\";\n\ntype transformFileBrowserType = typeof import(\"./transform-file-browser\");\ntype transformFileType = typeof import(\"./transform-file\");\n\n// Kind of gross, but essentially asserting that the exports of this module are the same as the\n// exports of transform-file-browser, since this file may be replaced at bundle time with\n// transform-file-browser.\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\n({}) as any as transformFileBrowserType as transformFileType;\n\nconst transformFileRunner = gensync(function* (\n filename: string,\n opts?: InputOptions,\n): Handler<FileResult | null> {\n const options = { ...opts, filename };\n\n const config: ResolvedConfig | null = yield* loadConfig(options);\n if (config === null) return null;\n\n const code = yield* fs.readFile(filename, \"utf8\");\n return yield* run(config, code);\n});\n\n// @ts-expect-error TS doesn't detect that this signature is compatible\nexport function transformFile(\n filename: string,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n filename: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n): void;\nexport function transformFile(\n ...args: Parameters<typeof transformFileRunner.errback>\n) {\n transformFileRunner.errback(...args);\n}\n\nexport function transformFileSync(\n ...args: Parameters<typeof transformFileRunner.sync>\n) {\n return transformFileRunner.sync(...args);\n}\nexport function transformFileAsync(\n ...args: Parameters<typeof transformFileRunner.async>\n) {\n return transformFileRunner.async(...args);\n}\n"],"names":["readFile","gensync","sync","fs","readFileSync","errback","stat","statSync","transformFileRunner","filename","opts","options","config","loadConfig","code","run","transformFile","args","transformFileSync","transformFileAsync","async"],"mappings":";;;;AAGO,MAAMA,QAAQ,GAAGC,OAAO,CAA+C;EAC5EC,IAAI,EAAEC,EAAE,CAACC,YAAY;EACrBC,OAAO,EAAEF,EAAE,CAACH;AACd,CAAC;AAEM,MAAMM,IAAI,GAAGL,OAAO,CAAC;EAC1BC,IAAI,EAAEC,EAAE,CAACI,QAAQ;EACjBF,OAAO,EAAEF,EAAE,CAACG;AACd,CAAC;;ACMD,MAAME,mBAAmB,GAAGP,OAAO,CAAC,WAClCQ,QAAgB,EAChBC,IAAmB,EACS;AAC5B,EAAA,MAAMC,OAAO,GAAG;AAAE,IAAA,GAAGD,IAAI;AAAED,IAAAA;GAAU;AAErC,EAAA,MAAMG,MAA6B,GAAG,OAAOC,UAAU,CAACF,OAAO,CAAC;AAChE,EAAA,IAAIC,MAAM,KAAK,IAAI,EAAE,OAAO,IAAI;EAEhC,MAAME,IAAI,GAAG,OAAOX,QAAW,CAACM,QAAQ,EAAE,MAAM,CAAC;AACjD,EAAA,OAAO,OAAOM,GAAG,CAACH,MAAM,EAAEE,IAAI,CAAC;AACjC,CAAC,CAAC;AAYK,SAASE,aAAaA,CAC3B,GAAGC,IAAoD,EACvD;AACAT,EAAAA,mBAAmB,CAACH,OAAO,CAAC,GAAGY,IAAI,CAAC;AACtC;AAEO,SAASC,iBAAiBA,CAC/B,GAAGD,IAAiD,EACpD;AACA,EAAA,OAAOT,mBAAmB,CAACN,IAAI,CAAC,GAAGe,IAAI,CAAC;AAC1C;AACO,SAASE,kBAAkBA,CAChC,GAAGF,IAAkD,EACrD;AACA,EAAA,OAAOT,mBAAmB,CAACY,KAAK,CAAC,GAAGH,IAAI,CAAC;AAC3C;;;;"}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display