@babel/core
Advanced tools
| import gensync from 'gensync'; | ||
| const runGenerator = gensync(function* (item) { | ||
| return yield* item; | ||
| }); | ||
| const isAsync = gensync({ | ||
| sync: () => false, | ||
| errback: cb => cb(null, true) | ||
| }); | ||
| function maybeAsync(fn, message) { | ||
| return gensync({ | ||
| sync(...args) { | ||
| const result = fn.apply(this, args); | ||
| if (isThenable(result)) throw new Error(message); | ||
| return result; | ||
| }, | ||
| async(...args) { | ||
| return Promise.resolve(fn.apply(this, args)); | ||
| } | ||
| }); | ||
| } | ||
| const withKind = gensync({ | ||
| sync: cb => cb("sync"), | ||
| async: async cb => cb("async") | ||
| }); | ||
| function forwardAsync(action, cb) { | ||
| const g = gensync(action); | ||
| return withKind(kind => { | ||
| const adapted = g[kind]; | ||
| return cb(adapted); | ||
| }); | ||
| } | ||
| const onFirstPause = gensync({ | ||
| name: "onFirstPause", | ||
| arity: 2, | ||
| sync: function (item) { | ||
| return runGenerator.sync(item); | ||
| }, | ||
| errback: function (item, firstPause, cb) { | ||
| let completed = false; | ||
| runGenerator.errback(item, (err, value) => { | ||
| completed = true; | ||
| cb(err, value); | ||
| }); | ||
| if (!completed) { | ||
| firstPause(); | ||
| } | ||
| } | ||
| }); | ||
| const waitFor = gensync({ | ||
| sync: x => x, | ||
| async: async x => x | ||
| }); | ||
| function isThenable(val) { | ||
| return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; | ||
| } | ||
| function mergeOptions(target, source) { | ||
| for (const k of Object.keys(source)) { | ||
| if ((k === "parserOpts" || k === "generatorOpts" || k === "assumptions") && source[k]) { | ||
| const parserOpts = source[k]; | ||
| const targetObj = target[k] || (target[k] = {}); | ||
| mergeDefaultFields(targetObj, parserOpts); | ||
| } else { | ||
| const val = source[k]; | ||
| if (val !== undefined) target[k] = val; | ||
| } | ||
| } | ||
| } | ||
| function mergeDefaultFields(target, source) { | ||
| for (const k of Object.keys(source)) { | ||
| const val = source[k]; | ||
| if (val !== undefined) target[k] = val; | ||
| } | ||
| } | ||
| function isIterableIterator(value) { | ||
| return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function"; | ||
| } | ||
| const synchronize = gen => { | ||
| return gensync(gen).sync; | ||
| }; | ||
| function* genTrue() { | ||
| return true; | ||
| } | ||
| function makeWeakCache(handler) { | ||
| return makeCachedFunction(WeakMap, handler); | ||
| } | ||
| function makeWeakCacheSync(handler) { | ||
| return synchronize(makeWeakCache(handler)); | ||
| } | ||
| function makeStrongCache(handler) { | ||
| return makeCachedFunction(Map, handler); | ||
| } | ||
| function makeStrongCacheSync(handler) { | ||
| return synchronize(makeStrongCache(handler)); | ||
| } | ||
| function makeCachedFunction(CallCache, handler) { | ||
| const callCacheSync = new CallCache(); | ||
| const callCacheAsync = new CallCache(); | ||
| const futureCache = new CallCache(); | ||
| return function* cachedFunction(arg, data) { | ||
| const asyncContext = yield* isAsync(); | ||
| const callCache = asyncContext ? callCacheAsync : callCacheSync; | ||
| const cached = yield* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data); | ||
| if (cached.valid) return cached.value; | ||
| const cache = new CacheConfigurator(data); | ||
| const handlerResult = handler(arg, cache); | ||
| let finishLock; | ||
| let value; | ||
| if (isIterableIterator(handlerResult)) { | ||
| value = yield* onFirstPause(handlerResult, () => { | ||
| finishLock = setupAsyncLocks(cache, futureCache, arg); | ||
| }); | ||
| } else { | ||
| value = handlerResult; | ||
| } | ||
| updateFunctionCache(callCache, cache, arg, value); | ||
| if (finishLock) { | ||
| futureCache.delete(arg); | ||
| finishLock.release(value); | ||
| } | ||
| return value; | ||
| }; | ||
| } | ||
| function* getCachedValue(cache, arg, data) { | ||
| const cachedValue = cache.get(arg); | ||
| if (cachedValue) { | ||
| for (const { | ||
| value, | ||
| valid | ||
| } of cachedValue) { | ||
| if (yield* valid(data)) return { | ||
| valid: true, | ||
| value | ||
| }; | ||
| } | ||
| } | ||
| return { | ||
| valid: false, | ||
| value: null | ||
| }; | ||
| } | ||
| function* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data) { | ||
| const cached = yield* getCachedValue(callCache, arg, data); | ||
| if (cached.valid) { | ||
| return cached; | ||
| } | ||
| if (asyncContext) { | ||
| const cached = yield* getCachedValue(futureCache, arg, data); | ||
| if (cached.valid) { | ||
| const value = yield* waitFor(cached.value.promise); | ||
| return { | ||
| valid: true, | ||
| value | ||
| }; | ||
| } | ||
| } | ||
| return { | ||
| valid: false, | ||
| value: null | ||
| }; | ||
| } | ||
| function setupAsyncLocks(config, futureCache, arg) { | ||
| const finishLock = new Lock(); | ||
| updateFunctionCache(futureCache, config, arg, finishLock); | ||
| return finishLock; | ||
| } | ||
| function updateFunctionCache(cache, config, arg, value) { | ||
| if (!config.configured()) config.forever(); | ||
| let cachedValue = cache.get(arg); | ||
| config.deactivate(); | ||
| switch (config.mode()) { | ||
| case "forever": | ||
| cachedValue = [{ | ||
| value, | ||
| valid: genTrue | ||
| }]; | ||
| cache.set(arg, cachedValue); | ||
| break; | ||
| case "invalidate": | ||
| cachedValue = [{ | ||
| value, | ||
| valid: config.validator() | ||
| }]; | ||
| cache.set(arg, cachedValue); | ||
| break; | ||
| case "valid": | ||
| if (cachedValue) { | ||
| cachedValue.push({ | ||
| value, | ||
| valid: config.validator() | ||
| }); | ||
| } else { | ||
| cachedValue = [{ | ||
| value, | ||
| valid: config.validator() | ||
| }]; | ||
| cache.set(arg, cachedValue); | ||
| } | ||
| } | ||
| } | ||
| class CacheConfigurator { | ||
| _active = true; | ||
| _never = false; | ||
| _forever = false; | ||
| _invalidate = false; | ||
| _configured = false; | ||
| _pairs = []; | ||
| _data; | ||
| constructor(data) { | ||
| this._data = data; | ||
| } | ||
| simple() { | ||
| return makeSimpleConfigurator(this); | ||
| } | ||
| mode() { | ||
| if (this._never) return "never"; | ||
| if (this._forever) return "forever"; | ||
| if (this._invalidate) return "invalidate"; | ||
| return "valid"; | ||
| } | ||
| forever() { | ||
| if (!this._active) { | ||
| throw new Error("Cannot change caching after evaluation has completed."); | ||
| } | ||
| if (this._never) { | ||
| throw new Error("Caching has already been configured with .never()"); | ||
| } | ||
| this._forever = true; | ||
| this._configured = true; | ||
| } | ||
| never() { | ||
| if (!this._active) { | ||
| throw new Error("Cannot change caching after evaluation has completed."); | ||
| } | ||
| if (this._forever) { | ||
| throw new Error("Caching has already been configured with .forever()"); | ||
| } | ||
| this._never = true; | ||
| this._configured = true; | ||
| } | ||
| using(handler) { | ||
| if (!this._active) { | ||
| throw new Error("Cannot change caching after evaluation has completed."); | ||
| } | ||
| if (this._never || this._forever) { | ||
| throw new Error("Caching has already been configured with .never or .forever()"); | ||
| } | ||
| this._configured = true; | ||
| const key = handler(this._data); | ||
| const fn = maybeAsync(handler, `You appear to be using an async cache handler, but Babel has been called synchronously`); | ||
| if (isThenable(key)) { | ||
| return key.then(key => { | ||
| this._pairs.push([key, fn]); | ||
| return key; | ||
| }); | ||
| } | ||
| this._pairs.push([key, fn]); | ||
| return key; | ||
| } | ||
| invalidate(handler) { | ||
| this._invalidate = true; | ||
| return this.using(handler); | ||
| } | ||
| validator() { | ||
| const pairs = this._pairs; | ||
| return function* (data) { | ||
| for (const [key, fn] of pairs) { | ||
| if (key !== (yield* fn(data))) return false; | ||
| } | ||
| return true; | ||
| }; | ||
| } | ||
| deactivate() { | ||
| this._active = false; | ||
| } | ||
| configured() { | ||
| return this._configured; | ||
| } | ||
| } | ||
| function makeSimpleConfigurator(cache) { | ||
| function cacheFn(val) { | ||
| if (typeof val === "boolean") { | ||
| if (val) cache.forever();else cache.never(); | ||
| return; | ||
| } | ||
| return cache.using(() => assertSimpleType(val())); | ||
| } | ||
| cacheFn.forever = () => cache.forever(); | ||
| cacheFn.never = () => cache.never(); | ||
| cacheFn.using = cb => cache.using(() => assertSimpleType(cb())); | ||
| cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb())); | ||
| return cacheFn; | ||
| } | ||
| function assertSimpleType(value) { | ||
| if (isThenable(value)) { | ||
| throw new Error(`You appear to be using an async cache handler, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously handle your caching logic.`); | ||
| } | ||
| if (value != null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number") { | ||
| throw new Error("Cache keys must be either string, boolean, number, null, or undefined."); | ||
| } | ||
| return value; | ||
| } | ||
| class Lock { | ||
| released = false; | ||
| promise; | ||
| _resolve; | ||
| constructor() { | ||
| this.promise = new Promise(resolve => { | ||
| this._resolve = resolve; | ||
| }); | ||
| } | ||
| release(value) { | ||
| this.released = true; | ||
| this._resolve(value); | ||
| } | ||
| } | ||
| export { assertSimpleType, forwardAsync, isAsync, isThenable, makeStrongCache, makeStrongCacheSync, makeWeakCache, makeWeakCacheSync, maybeAsync, mergeOptions, waitFor }; | ||
| //# sourceMappingURL=caching-shared.js.map |
| {"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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"} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| 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;;;;"} |
| import 'gensync'; | ||
| export { d as assertSimpleType, m as makeStrongCache, c as makeStrongCacheSync, a as makeWeakCache, b as makeWeakCacheSync } from '../caching-2iA7hK9v.js'; | ||
| export { assertSimpleType, makeStrongCache, makeStrongCacheSync, makeWeakCache, makeWeakCacheSync } from '../caching-shared.js'; | ||
| //# sourceMappingURL=caching.js.map |
| import path from 'node:path'; | ||
| import { m as makeStrongCache, i as isAsync, w as waitFor, a as makeWeakCache, b as makeWeakCacheSync } from '../../caching-2iA7hK9v.js'; | ||
| import { r as readFile, t as transformFileSync, s as stat } from '../../transform-file-CmOAdXTw.js'; | ||
| import { makeStrongCache, isAsync, waitFor, makeWeakCache, makeWeakCacheSync } from '../../caching-shared.js'; | ||
| import { readFile, transformFileSync, stat } from '../../transform-file-shared.js'; | ||
| import fs, { existsSync } from 'node:fs'; | ||
| import { C as ConfigError, m as makeConfigAPI, p as pathToPattern } from '../../index-DBcMGCJP.js'; | ||
| import { ConfigError, makeConfigAPI, pathToPattern } from '../../index-shared.js'; | ||
| import { createDebug } from 'obug'; | ||
@@ -13,17 +13,2 @@ import json5 from 'json5'; | ||
| import { resolve } from 'import-meta-resolve'; | ||
| import '@babel/helpers'; | ||
| import '@babel/traverse'; | ||
| import '@babel/code-frame'; | ||
| import '@babel/types'; | ||
| import 'semver'; | ||
| import '@babel/generator'; | ||
| import '@babel/template'; | ||
| import '#config/files'; | ||
| import '@babel/parser'; | ||
| import 'convert-source-map'; | ||
| import '@jridgewell/remapping'; | ||
| import '#transform-file'; | ||
| import '../resolve-targets.js'; | ||
| import '@babel/helper-compilation-targets'; | ||
| import '#config/resolve-targets'; | ||
@@ -30,0 +15,0 @@ function makeStaticFileCache(fn) { |
@@ -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 // @ts-expect-error todo(flow->ts)\n if (typeof options.then === \"function\") {\n // @ts-expect-error We use ?. in case options is a thenable but not a promise\n options.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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOO,SAASA,mBAAmBA,CACjCC,EAA6C,EAC7C;AACA,EAAA,OAAOC,eAAe,CAAC,WACrBC,QAAgB,EAChBC,KAA8B,EACX;IACnB,MAAMC,MAAM,GAAGD,KAAK,CAACE,UAAU,CAAC,MAAMC,SAAS,CAACJ,QAAQ,CAAC,CAAC;IAE1D,IAAIE,MAAM,KAAK,IAAI,EAAE;AACnB,MAAA,OAAO,IAAI;AACb,IAAA;AAEA,IAAA,OAAOJ,EAAE,CAACE,QAAQ,EAAE,OAAOK,QAAW,CAACL,QAAQ,EAAE,MAAM,CAAC,CAAC;AAC3D,EAAA,CAAC,CAAC;AACJ;AAEA,SAASI,SAASA,CAACJ,QAAgB,EAAiB;EAClD,IAAI,CAACM,EAAM,CAACC,UAAU,CAACP,QAAQ,CAAC,EAAE,OAAO,IAAI;EAE7C,IAAI;IACF,OAAO,CAACM,EAAM,CAACE,QAAQ,CAACR,QAAQ,CAAC,CAACS,KAAK;EACzC,CAAC,CAAC,OAAOC,CAAC,EAAE;AACV,IAAA,IAAIA,CAAC,CAACC,IAAI,KAAK,QAAQ,IAAID,CAAC,CAACC,IAAI,KAAK,SAAS,EAAE,MAAMD,CAAC;AAC1D,EAAA;AAEA,EAAA,OAAO,IAAI;AACb;;AC1BA,MAAME,gBAAgB,GAAG,cAAc;AAEvC,MAAMC,iBAAiB,GAAGhB,mBAAmB,CAC3C,CAACG,QAAQ,EAAEc,OAAO,KAAiB;AACjC,EAAA,IAAIC,OAAO;EACX,IAAI;AACFA,IAAAA,OAAO,GAAGC,IAAI,CAACC,KAAK,CAACH,OAAO,CAAY;EAC1C,CAAC,CAAC,OAAOI,GAAG,EAAE;IACZ,MAAM,IAAIC,WAAW,CACnB,CAAA,2BAAA,EAA8BD,GAAG,CAACE,OAAO,CAAA,CAAE,EAC3CpB,QACF,CAAC;AACH,EAAA;EAEA,IAAI,CAACe,OAAO,EAAE,MAAM,IAAIM,KAAK,CAAC,CAAA,EAAGrB,QAAQ,CAAA,oBAAA,CAAsB,CAAC;AAEhE,EAAA,IAAI,OAAOe,OAAO,KAAK,QAAQ,EAAE;IAC/B,MAAM,IAAII,WAAW,CACnB,CAAA,uBAAA,EAA0B,OAAOJ,OAAO,CAAA,CAAE,EAC1Cf,QACF,CAAC;AACH,EAAA;AACA,EAAA,IAAIsB,KAAK,CAACC,OAAO,CAACR,OAAO,CAAC,EAAE;AAC1B,IAAA,MAAM,IAAII,WAAW,CAAC,CAAA,sCAAA,CAAwC,EAAEnB,QAAQ,CAAC;AAC3E,EAAA;EAEA,OAAO;IACLA,QAAQ;AACRwB,IAAAA,OAAO,EAAEC,IAAI,CAACD,OAAO,CAACxB,QAAQ,CAAC;AAC/Be,IAAAA;GACD;AACH,CACF,CAAC;AAOM,UAAUW,eAAeA,CAAC1B,QAAgB,EAA4B;EAC3E,IAAI2B,GAAG,GAAG,IAAI;EACd,MAAMC,WAAW,GAAG,EAAE;EACtB,IAAIC,SAAS,GAAG,IAAI;AAEpB,EAAA,IAAIL,OAAO,GAAGC,IAAI,CAACD,OAAO,CAACxB,QAAQ,CAAC;EACpC,OAAO,CAAC2B,GAAG,IAAIF,IAAI,CAACK,QAAQ,CAACN,OAAO,CAAC,KAAK,cAAc,EAAE;AACxDI,IAAAA,WAAW,CAACG,IAAI,CAACP,OAAO,CAAC;AAEzBG,IAAAA,GAAG,GAAG,OAAOd,iBAAiB,CAACY,IAAI,CAACO,IAAI,CAACR,OAAO,EAAEZ,gBAAgB,CAAC,CAAC;AAEpE,IAAA,MAAMqB,OAAO,GAAGR,IAAI,CAACD,OAAO,CAACA,OAAO,CAAC;IACrC,IAAIA,OAAO,KAAKS,OAAO,EAAE;AACvBJ,MAAAA,SAAS,GAAG,KAAK;AACjB,MAAA;AACF,IAAA;AACAL,IAAAA,OAAO,GAAGS,OAAO;AACnB,EAAA;EAEA,OAAO;IAAEjC,QAAQ;IAAE4B,WAAW;IAAED,GAAG;AAAEE,IAAAA;GAAW;AAClD;;ACtDA,MAAMK,OAAK,GAAGC,WAAW,CAAC,yCAAyC,CAAC;AAEpE,MAAMC,SAAO,GAAGC,aAAa,CAACC,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;AAE9C,MAAMC,iBAAiB,GAAG,IAAIC,GAAG,EAAE;AAEnC,SAASC,cAAcA,CAAC3C,QAAgB,EAAE;AAMxC,EAAA,IAAIyC,iBAAiB,CAACG,GAAG,CAAC5C,QAAQ,CAAC,EAAE;AACnCkC,IAAAA,OAAK,CAAC,mCAAmC,EAAElC,QAAQ,CAAC;AACpD,IAAA,OAAO,EAAE;AACX,EAAA;AAEA,EAAA,IAAI6C,MAAM;EACV,IAAI;AACFJ,IAAAA,iBAAiB,CAACK,GAAG,CAAC9C,QAAQ,CAAC;AAC/B6C,IAAAA,MAAM,GAAGE,kBAAkB,CAACX,SAAO,CAAC,CAACpC,QAAQ,CAAC;AAChD,EAAA,CAAC,SAAS;AACRyC,IAAAA,iBAAiB,CAACO,MAAM,CAAChD,QAAQ,CAAC;AACpC,EAAA;EAEA,OAAO6C,MAAM,IAAI,IAAI,KAClBA,MAAM,CAACI,UAAU,IAAIJ,MAAM,CAACK,MAAM,CAACC,WAAW,CAAC,KAAK,QAAQ,CAAC,GAC5DN,MAAM,CAACO,OAAO,GACdP,MAAM;AACZ;AAEA,MAAMQ,eAAe,GAAGN,kBAAkB,CAAC,eAAeM,eAAeA,CACvErD,QAAgB,EAChB;EAEA,MAAMwC,GAAG,GAAGc,aAAa,CAACtD,QAAQ,CAAC,CAACuD,QAAQ,EAAE,GAAG,SAAS;EAE1D,OAAO,MAAM,OAAOf,GAAG,CAAC;AAC1B,CAAC,CAAC;AAEF,MAAMgB,mBAAmB,GAAIC,GAAW,IAAK,CAAA;AAC7C,gBAAA,EAAkBA,GAAG,CAAA;AACrB;AACA;AACA,2BAAA,EAA6BA,GAAG,CAAA;AAChC,CAAC;AAED,MAAMC,oBAAoB,GAAG;AAC3B,EAAA,KAAK,EAAE,SAAS;AAChB,EAAA,MAAM,EAAE,KAAK;AACb,EAAA,MAAM,EAAE,KAAK;AACb,EAAA,KAAK,EAAE,SAAS;AAChB,EAAA,MAAM,EAAE,KAAK;AACb,EAAA,MAAM,EAAE;AACV,CAAU;AAEV,MAAMC,YAAY,GAAG,IAAIjB,GAAG,EAAE;AAEf,UAAUkB,eAAeA,CACtC5D,QAAgB,EAChB6D,MAA0B,EAC1BC,QAAgB,EAChBC,QAAgB,EACE;AAClB,EAAA,IAAIC,KAAK;AAET,EAAA,MAAMP,GAAG,GAAGhC,IAAI,CAACwC,OAAO,CAACjE,QAAQ,CAAC;AAClC,EAAA,MAAMkE,IAAI,GAAGT,GAAG,KAAK,KAAK,IAAIA,GAAG,KAAK,MAAM,IAAIA,GAAG,KAAK,MAAM;AAE9D,EAAA,MAAMU,IAAI,GACRT,oBAAoB,CAClBU,MAAM,CAACC,MAAM,CAACX,oBAAoB,EAAED,GAAG,CAAC,GACnCA,GAAG,GACH,KAAe,CACrB;AAEH,EAAA,MAAMa,OAAO,GAAG,CAAA,EAAGT,MAAM,CAAA,CAAA,EAAIM,IAAI,CAAA,CAAW;AAC5C,EAAA,QAAQG,OAAO;AACb,IAAA,KAAK,aAAa;AAClB,IAAA,KAAK,UAAU;AACb,MAAA,IAAIJ,IAAI,EAAE;QACR,OAAOK,eAAe,CAACvE,QAAQ,EAAEyD,GAAG,EAAE,MAAMd,cAAc,CAAC3C,QAAQ,CAAC,CAAC;AACvE,MAAA,CAAC,MAAM;QACL,OAAO2C,cAAc,CAAC3C,QAAQ,CAAC;AACjC,MAAA;AAEF,IAAA,KAAK,cAAc;AACnB,IAAA,KAAK,iBAAiB;AACtB,IAAA,KAAK,aAAa;MAChB,IAAI;AACF,QAAA,IAAIkE,IAAI,EAAE;UACR,OAAOK,eAAe,CAACvE,QAAQ,EAAEyD,GAAG,EAAE,MAAMd,cAAc,CAAC3C,QAAQ,CAAC,CAAC;AACvE,QAAA,CAAC,MAAM;UACL,OAAO2C,cAAc,CAAC3C,QAAQ,CAAC;AACjC,QAAA;MACF,CAAC,CAAC,OAAOU,CAAC,EAAE;AACV,QAAA,IACEA,CAAC,CAACC,IAAI,KAAK,0BAA0B,IAMpCD,CAAC,CAACC,IAAI,KAAK,0BAA0B,IAAIgD,YAAY,CAACf,GAAG,CAAC5C,QAAQ,CAAE,EACrE;AACA2D,UAAAA,YAAY,CAACb,GAAG,CAAC9C,QAAQ,CAAC;UAC1B,IAAI,EAAEgE,KAAK,KAAK,OAAOQ,OAAO,EAAE,CAAC,EAAE;AACjC,YAAA,MAAM,IAAIrD,WAAW,CAAC4C,QAAQ,EAAE/D,QAAQ,CAAC;AAC3C,UAAA;QAEF,CAAC,MAAM,IAAIU,CAAC,CAACC,IAAI,KAAK,iBAAiB,EAAE,CAExC,MAAM;AACL,UAAA,MAAMD,CAAC;AACT,QAAA;AACF,MAAA;AAEF,IAAA,KAAK,UAAU;AACb,MAAA,IAAIsD,KAAK,KAAK,OAAOQ,OAAO,EAAE,CAAC,EAAE;QAC/B,MAAMC,OAAO,GAAGP,IAAI,GAChBK,eAAe,CAACvE,QAAQ,EAAEyD,GAAG,EAAE,MAAMJ,eAAe,CAACrD,QAAQ,CAAC,CAAC,GAC/DqD,eAAe,CAACrD,QAAQ,CAAC;AAE7B,QAAA,OAAO,CAAC,OAAO0E,OAAO,CAACD,OAAO,CAAC,EAAErB,OAAO;AAC1C,MAAA;AACA,MAAA,IAAIc,IAAI,EAAE;QACR,MAAM,IAAI/C,WAAW,CAACqC,mBAAmB,CAACC,GAAG,CAAC,EAAEzD,QAAQ,CAAC;AAC3D,MAAA,CAAC,MAAM;AACL,QAAA,MAAM,IAAImB,WAAW,CAAC2C,QAAQ,EAAE9D,QAAQ,CAAC;AAC3C,MAAA;AACF,IAAA;AACE,MAAA,MAAM,IAAIqB,KAAK,CAAC,yCAAyC,CAAC;AAC9D;AACF;AAEA,SAASkD,eAAeA,CACtBvE,QAAgB,EAChByD,GAAW,EACXkB,QAAiB,EACd;EACH,IACEC,OAAO,CAACC,QAAQ,CAACC,UAAU,IAC3B1C,SAAO,CAAC2C,UAAU,CAAC,KAAK,CAAC,IACzB3C,SAAO,CAAC2C,UAAU,CAAC,MAAM,CAAC,IAC1B3C,SAAO,CAAC2C,UAAU,CAAC,MAAM,CAAC,EAC1B;IACA,OAAOJ,QAAQ,EAAE;AACnB,EAAA;EAEA,IAAIlB,GAAG,KAAK,MAAM,EAAE;IAClB,MAAM,IAAItC,WAAW,CAACqC,mBAAmB,CAACC,GAAG,CAAC,EAAEzD,QAAQ,CAAC;AAC3D,EAAA;AAEA,EAAA,MAAMgF,IAAkB,GAAG;AACzBC,IAAAA,OAAO,EAAE,KAAK;AACdC,IAAAA,UAAU,EAAE,KAAK;AACjBC,IAAAA,UAAU,EAAE,aAAa;AACzBC,IAAAA,UAAU,EAAE,QAAQ;AACpBC,IAAAA,cAAc,EAAE5D,IAAI,CAACK,QAAQ,CAAC9B,QAAQ,CAAC;AACvCsF,IAAAA,OAAO,EAAE,CACP,CACEC,WAAW,CAACvF,QAAQ,CAAC,EACrB;AACEwF,MAAAA,qBAAqB,EAAE,IAAI;AAC3BC,MAAAA,kBAAkB,EAAE;AACtB,KAAC,CACF;GAEJ;AAED,EAAA,IAAIC,OAAqC,GAAG,UAAUC,CAAC,EAAEC,QAAQ,EAAE;IAEjE,IAAIF,OAAO,IAAIE,QAAQ,CAACC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAExC,MAAA,OAAOF,CAAC,CAACG,QAAQ,CACfC,iBAAiB,CAACH,QAAQ,EAAE;AAC1B,QAAA,GAAGZ,IAAI;AACPY,QAAAA;AACF,OAAC,CAAC,CAAEjF,IAAI,EACRiF,QACF,CAAC;AACH,IAAA;IACA,OAAOxD,SAAO,CAAC2C,UAAU,CAAC,KAAK,CAAC,CAACY,CAAC,EAAEC,QAAQ,CAAC;EAC/C,CAAC;AACDxD,EAAAA,SAAO,CAAC2C,UAAU,CAACtB,GAAG,CAAC,GAAGiC,OAAO;EAEjC,IAAI;IACF,OAAOf,QAAQ,EAAE;AACnB,EAAA,CAAC,SAAS;AACR,IAAA,IAAIvC,SAAO,CAAC2C,UAAU,CAACtB,GAAG,CAAC,KAAKiC,OAAO,EAAE,OAAOtD,SAAO,CAAC2C,UAAU,CAACtB,GAAG,CAAC;AACvEiC,IAAAA,OAAO,GAAGM,SAAS;AACrB,EAAA;AACF;AAEA,SAAST,WAAWA,CAACvF,QAAgB,EAAE;EACrC,IAAI;IACF,OAAOoC,SAAO,CAAC,0BAA0B,CAAC;EAC5C,CAAC,CAAC,OAAO6D,KAAK,EAAE;AACd,IAAA,IAAIA,KAAK,CAACtF,IAAI,KAAK,kBAAkB,EAAE,MAAMsF,KAAK;IAElD,MAAM7E,OAAO,GACX,yIAAyI;AAE3I,IAAA,MAAM,IAAID,WAAW,CAACC,OAAO,EAAEpB,QAAQ,CAAC;AAC1C,EAAA;AACF;;ACpMA,MAAMoC,SAAO,GAAGC,aAAa,CAACC,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;AAE9C,MAAMN,OAAK,GAAGC,WAAW,CAAC,0CAA0C,CAAC;MAExD+D,qBAAqB,GAAG,CACnC,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB;AAEpB,MAAMC,yBAAyB,GAAG,CAChC,UAAU,EACV,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,CACf;AAED,MAAMC,oBAAoB,GAAG,cAAc;AAO3C,MAAMC,SAAS,GAAGC,aAAa,CAAC,UAAUD,SAASA,CACjDtF,OAAiB,EACjBd,KAAyC,EAIxC;AAED,EAAA,OAAO,EAAE;EAET,OAAO;IACLc,OAAO,EAAEgC,kBAAkB,CAAChC,OAAyC,CAAC,CACpEwF,aAAa,CAACtG,KAAK,CACrB,CAAC;AACDuG,IAAAA,uBAAuB,EAAE,CAACvG,KAAK,CAACwG,UAAU;GAC3C;AACH,CAAC,CAAC;AAEF,UAAUC,cAAcA,CACtB1G,QAAgB,EAChB2G,IAAqB,EACO;EAC5B,IAAI,CAACrG,EAAM,CAACC,UAAU,CAACP,QAAQ,CAAC,EAAE,OAAO,IAAI;EAE7C,IAAIe,OAAO,GAAG,OAAO6C,eAAe,CAClC5D,QAAQ,EACR,CAAC,OAAOwE,OAAO,EAAE,IAAI,MAAM,GAAG,SAAS,EACvC,kEAAkE,GAChE,kEAAkE,GAClE,iEAAiE,EACnE,sEAAsE,GACpE,mEACJ,CAAC;EAED,IAAIgC,uBAAuB,GAAG,KAAK;AACnC,EAAA,IAAI,OAAOzF,OAAO,KAAK,UAAU,EAAE;IACjC,CAAC;MAAEA,OAAO;AAAEyF,MAAAA;AAAwB,KAAC,GAAG,OAAOH,SAAS,CAACtF,OAAO,EAAE4F,IAAI,CAAC;AACzE,EAAA;AAEA,EAAA,IAAI,CAAC5F,OAAO,IAAI,OAAOA,OAAO,KAAK,QAAQ,IAAIO,KAAK,CAACC,OAAO,CAACR,OAAO,CAAC,EAAE;AACrE,IAAA,MAAM,IAAII,WAAW,CACnB,CAAA,sDAAA,CAAwD,EACxDnB,QACF,CAAC;AACH,EAAA;AAGA,EAAA,IAAI,OAAOe,OAAO,CAAC6F,IAAI,KAAK,UAAU,EAAE;AAEtC7F,IAAAA,OAAO,CAAC8F,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC;AACzB,IAAA,MAAM,IAAI1F,WAAW,CACnB,CAAA,+CAAA,CAAiD,GAC/C,CAAA,sDAAA,CAAwD,GACxD,CAAA,2CAAA,CAA6C,GAC7C,CAAA,kEAAA,CAAoE,GACpE,CAAA,wEAAA,CAA0E,EAC5EnB,QACF,CAAC;AACH,EAAA;AAEA,EAAA,IAAIwG,uBAAuB,EAAEM,gBAAgB,CAAC9G,QAAQ,CAAC;AAEvD,EAAA,OAAO+G,qBAAqB,CAAChG,OAAO,EAAEf,QAAQ,CAAC;AACjD;AAIA,MAAMgH,MAAM,GAAyC,IAAIC,OAAO,EAG7D;AACH,SAASF,qBAAqBA,CAC5BhG,OAAqB,EACrBf,QAAgB,EACJ;AACZ,EAAA,IAAIkH,qBAAqB,GAAGF,MAAM,CAACG,GAAG,CAACpG,OAAO,CAAC;EAC/C,IAAI,CAACmG,qBAAqB,EAAE;IAC1BF,MAAM,CAACI,GAAG,CAACrG,OAAO,EAAGmG,qBAAqB,GAAG,IAAIG,GAAG,EAAG,CAAC;AAC1D,EAAA;AAEA,EAAA,IAAInC,UAAU,GAAGgC,qBAAqB,CAACC,GAAG,CAACnH,QAAQ,CAAC;EACpD,IAAI,CAACkF,UAAU,EAAE;AACfA,IAAAA,UAAU,GAAG;MACXlF,QAAQ;AACRwB,MAAAA,OAAO,EAAEC,IAAI,CAACD,OAAO,CAACxB,QAAQ,CAAC;AAC/Be,MAAAA;KACD;AACDmG,IAAAA,qBAAqB,CAACE,GAAG,CAACpH,QAAQ,EAAEkF,UAAU,CAAC;AACjD,EAAA;AAEA,EAAA,OAAOA,UAAU;AACnB;AAEA,MAAMoC,oBAAoB,GAAGC,iBAAiB,CAC3CC,IAAgB,IAAwB;AACvC,EAAA,MAAMC,KAAc,GAAGD,IAAI,CAACzG,OAAO,CAAC0G,KAAK;AAEzC,EAAA,IAAIA,KAAK,KAAKzB,SAAS,EAAE,OAAO,IAAI;AAEpC,EAAA,IAAI,OAAOyB,KAAK,KAAK,QAAQ,IAAInG,KAAK,CAACC,OAAO,CAACkG,KAAK,CAAC,IAAIA,KAAK,KAAK,IAAI,EAAE;IACvE,MAAM,IAAItG,WAAW,CAAC,CAAA,iCAAA,CAAmC,EAAEqG,IAAI,CAACxH,QAAQ,CAAC;AAC3E,EAAA;EAEA,OAAO;IACLA,QAAQ,EAAEwH,IAAI,CAACxH,QAAQ;IACvBwB,OAAO,EAAEgG,IAAI,CAAChG,OAAO;AACrBT,IAAAA,OAAO,EAAE0G;GACV;AACH,CACF,CAAC;AAED,MAAMC,eAAe,GAAG7H,mBAAmB,CAAC,CAACG,QAAQ,EAAEc,OAAO,KAAiB;AAC7E,EAAA,IAAIC,OAAO;EACX,IAAI;AACFA,IAAAA,OAAO,GAAG4G,KAAK,CAAC1G,KAAK,CAACH,OAAO,CAAC;EAChC,CAAC,CAAC,OAAOI,GAAG,EAAE;IACZ,MAAM,IAAIC,WAAW,CACnB,CAAA,6BAAA,EAAgCD,GAAG,CAACE,OAAO,CAAA,CAAE,EAC7CpB,QACF,CAAC;AACH,EAAA;EAEA,IAAI,CAACe,OAAO,EAAE,MAAM,IAAII,WAAW,CAAC,CAAA,kBAAA,CAAoB,EAAEnB,QAAQ,CAAC;AAEnE,EAAA,IAAI,OAAOe,OAAO,KAAK,QAAQ,EAAE;IAC/B,MAAM,IAAII,WAAW,CAAC,CAAA,uBAAA,EAA0B,OAAOJ,OAAO,CAAA,CAAE,EAAEf,QAAQ,CAAC;AAC7E,EAAA;AACA,EAAA,IAAIsB,KAAK,CAACC,OAAO,CAACR,OAAO,CAAC,EAAE;AAC1B,IAAA,MAAM,IAAII,WAAW,CAAC,CAAA,sCAAA,CAAwC,EAAEnB,QAAQ,CAAC;AAC3E,EAAA;EAEA,OAAOe,OAAO,CAAC6G,OAAO;EAEtB,OAAO;IACL5H,QAAQ;AACRwB,IAAAA,OAAO,EAAEC,IAAI,CAACD,OAAO,CAACxB,QAAQ,CAAC;AAC/Be,IAAAA;GACD;AACH,CAAC,CAAC;AAEF,MAAM8G,gBAAgB,GAAGhI,mBAAmB,CAAC,CAACG,QAAQ,EAAEc,OAAO,KAAK;AAClE,EAAA,MAAMgH,SAAS,GAAGrG,IAAI,CAACD,OAAO,CAACxB,QAAQ,CAAC;AACxC,EAAA,MAAM+H,cAAc,GAAGjH,OAAO,CAC3BkH,KAAK,CAAC,IAAI,CAAC,CACXC,GAAG,CAACC,IAAI,IAAIA,IAAI,CAACC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAACC,IAAI,EAAE,CAAC,CAC7CC,MAAM,CAACC,OAAO,CAAC;AAElB,EAAA,KAAK,MAAMhE,OAAO,IAAIyD,cAAc,EAAE;AACpC,IAAA,IAAIzD,OAAO,CAACiE,UAAU,CAAC,GAAG,CAAC,EAAE;AAC3B,MAAA,MAAM,IAAIpH,WAAW,CACnB,CAAA,wCAAA,CAA0C,EAC1CnB,QACF,CAAC;AACH,IAAA;AACF,EAAA;EAEA,OAAO;IACLA,QAAQ;AACRwB,IAAAA,OAAO,EAAEC,IAAI,CAACD,OAAO,CAACxB,QAAQ,CAAC;AAC/BwI,IAAAA,MAAM,EAAET,cAAc,CAACE,GAAG,CAAC3D,OAAO,IAChCmE,aAAkB,CAACnE,OAAO,EAAEwD,SAAS,CACvC;GACD;AACH,CAAC,CAAC;AAEK,SAASY,iBAAiBA,CAACC,OAAe,EAAiB;EAChE,IAAInH,OAAO,GAAGmH,OAAO;EACrB,SAAS;AACP,IAAA,KAAK,MAAM/C,QAAQ,IAAIM,qBAAqB,EAAE;AAC5C,MAAA,IAAI5F,EAAM,CAACC,UAAU,CAACkB,IAAI,CAACO,IAAI,CAACR,OAAO,EAAEoE,QAAQ,CAAC,CAAC,EAAE;AACnD,QAAA,OAAOpE,OAAO;AAChB,MAAA;AACF,IAAA;AAEA,IAAA,MAAMoH,OAAO,GAAGnH,IAAI,CAACD,OAAO,CAACA,OAAO,CAAC;IACrC,IAAIA,OAAO,KAAKoH,OAAO,EAAE;AACzBpH,IAAAA,OAAO,GAAGoH,OAAO;AACnB,EAAA;AAEA,EAAA,OAAO,IAAI;AACb;AAEO,UAAUC,kBAAkBA,CACjCC,WAA4B,EAC5BC,OAAe,EACfC,MAAkC,EACT;EACzB,IAAIC,MAAM,GAAG,IAAI;EACjB,IAAIT,MAAM,GAAG,IAAI;EAEjB,MAAMhH,OAAO,GAAGC,IAAI,CAACD,OAAO,CAACsH,WAAW,CAAC9I,QAAQ,CAAC;AAElD,EAAA,KAAK,MAAMkJ,GAAG,IAAIJ,WAAW,CAAClH,WAAW,EAAE;IACzC,IAAI,CAACqH,MAAM,EAAE;AACXA,MAAAA,MAAM,GAAG,OAAOE,aAAa,CAC3BhD,yBAAyB,EACzB+C,GAAG,EACHH,OAAO,EACPC,MAAM,EACNF,WAAW,CAACnH,GAAG,EAAEH,OAAO,KAAK0H,GAAG,GAC5B5B,oBAAoB,CAACwB,WAAW,CAACnH,GAAG,CAAC,GACrC,IACN,CAAC;AACH,IAAA;IAEA,IAAI,CAAC6G,MAAM,EAAE;MACX,MAAMY,SAAS,GAAG3H,IAAI,CAACO,IAAI,CAACkH,GAAG,EAAE9C,oBAAoB,CAAC;AACtDoC,MAAAA,MAAM,GAAG,OAAOX,gBAAgB,CAACuB,SAAS,CAAC;AAE3C,MAAA,IAAIZ,MAAM,EAAE;QACVtG,OAAK,CAAC,0BAA0B,EAAEsG,MAAM,CAACxI,QAAQ,EAAEwB,OAAO,CAAC;AAC7D,MAAA;AACF,IAAA;AACF,EAAA;EAEA,OAAO;IAAEyH,MAAM;AAAET,IAAAA;GAAQ;AAC3B;AAEO,SAASa,cAAcA,CAC5B7H,OAAe,EACfuH,OAAe,EACfC,MAAkC,EACN;EAC5B,OAAOG,aAAa,CAACjD,qBAAqB,EAAE1E,OAAO,EAAEuH,OAAO,EAAEC,MAAM,CAAC;AACvE;AAEA,UAAUG,aAAaA,CACrBG,KAAe,EACf9H,OAAe,EACfuH,OAAe,EACfC,MAAkC,EAClCO,cAAiC,GAAG,IAAI,EACZ;AAC5B,EAAA,MAAMC,OAAO,GAAG,OAAOC,OAAO,CAACC,GAAG,CAChCJ,KAAK,CAACrB,GAAG,CAACrC,QAAQ,IAChB+D,UAAU,CAAClI,IAAI,CAACO,IAAI,CAACR,OAAO,EAAEoE,QAAQ,CAAC,EAAEmD,OAAO,EAAEC,MAAM,CAC1D,CACF,CAAC;EACD,MAAMC,MAAM,GAAGO,OAAO,CAACI,MAAM,CAAC,CAACL,cAAiC,EAAEN,MAAM,KAAK;IAC3E,IAAIA,MAAM,IAAIM,cAAc,EAAE;MAC5B,MAAM,IAAIpI,WAAW,CACnB,CAAA,wDAAA,CAA0D,GACxD,MAAMM,IAAI,CAACK,QAAQ,CAACyH,cAAc,CAACvJ,QAAQ,CAAC,CAAA,EAAA,CAAI,GAChD,CAAA,GAAA,EAAMiJ,MAAM,CAACjJ,QAAQ,CAAA,EAAA,CAAI,GACzB,CAAA,KAAA,EAAQwB,OAAO,CAAA,CACnB,CAAC;AACH,IAAA;IAEA,OAAOyH,MAAM,IAAIM,cAAc;EACjC,CAAC,EAAEA,cAAc,CAAC;AAElB,EAAA,IAAIN,MAAM,EAAE;IACV/G,OAAK,CAAC,iCAAiC,EAAE+G,MAAM,CAACjJ,QAAQ,EAAEwB,OAAO,CAAC;AACpE,EAAA;AACA,EAAA,OAAOyH,MAAM;AACf;AAEO,UAAUY,UAAUA,CACzBC,IAAY,EACZtI,OAAe,EACfuH,OAAe,EACfC,MAAkC,EACb;AACrB,EAAA,MAAMhJ,QAAQ,GAAGoC,SAAO,CAAC2H,OAAO,CAACD,IAAI,EAAE;IAAEE,KAAK,EAAE,CAACxI,OAAO;AAAE,GAAC,CAAC;EAE5D,MAAMyI,IAAI,GAAG,OAAON,UAAU,CAAC3J,QAAQ,EAAE+I,OAAO,EAAEC,MAAM,CAAC;EACzD,IAAI,CAACiB,IAAI,EAAE;AACT,IAAA,MAAM,IAAI9I,WAAW,CACnB,CAAA,0CAAA,CAA4C,EAC5CnB,QACF,CAAC;AACH,EAAA;AAEAkC,EAAAA,OAAK,CAAC,2BAA2B,EAAE4H,IAAI,EAAEtI,OAAO,CAAC;AACjD,EAAA,OAAOyI,IAAI;AACb;AAMA,SAASN,UAAUA,CACjB3J,QAAgB,EAChB+I,OAAe,EACfC,MAAkC,EACN;AAC5B,EAAA,MAAMvF,GAAG,GAAGhC,IAAI,CAACwC,OAAO,CAACjE,QAAQ,CAAC;AAClC,EAAA,QAAQyD,GAAG;AACT,IAAA,KAAK,KAAK;AACV,IAAA,KAAK,MAAM;AACX,IAAA,KAAK,MAAM;AACX,IAAA,KAAK,KAAK;AACV,IAAA,KAAK,MAAM;AACX,IAAA,KAAK,MAAM;MACT,OAAOiD,cAAc,CAAC1G,QAAQ,EAAE;QAAE+I,OAAO;AAAEC,QAAAA;AAAO,OAAC,CAAC;AACtD,IAAA;MACE,OAAOtB,eAAe,CAAC1H,QAAQ,CAAC;AACpC;AACF;AAEO,UAAUkK,qBAAqBA,CACpC1I,OAAe,EACS;AACxB,EAAA,MAAM2I,UAAU,GAAGvF,OAAO,CAACwF,GAAG,CAACC,qBAAqB;EACpD,IAAIF,UAAU,IAAI,IAAI,EAAE;IACtB,MAAMG,YAAY,GAAG7I,IAAI,CAACsI,OAAO,CAACvI,OAAO,EAAE2I,UAAU,CAAC;IACtD,MAAMI,KAAK,GAAI,OAAOlK,IAAO,CAACiK,YAAY,CAAG;AAC7C,IAAA,IAAI,CAACC,KAAK,CAACC,MAAM,EAAE,EAAE;AACnB,MAAA,MAAM,IAAInJ,KAAK,CACb,CAAA,EAAGiJ,YAAY,sFACjB,CAAC;AACH,IAAA;AACA,IAAA,OAAOA,YAAY;AACrB,EAAA;AACA,EAAA,OAAO,IAAI;AACb;AAEA,SAASxD,gBAAgBA,CAAC9G,QAAgB,EAAS;EACjD,MAAM,IAAImB,WAAW,CACnB,CAAA;AACJ;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAA,CAAG,EACCnB,QACF,CAAC;AACH;;ACvYA,MAAMoC,SAAO,GAAGC,aAAa,CAACC,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC;AAE9C,MAAMN,KAAK,GAAGC,WAAW,CAAC,oCAAoC,CAAC;AAE/D,MAAMsI,QAAQ,GAAG,UAAU;AAC3B,MAAMC,sBAAsB,GAAG,sCAAsC;AACrE,MAAMC,sBAAsB,GAAG,sCAAsC;AACrE,MAAMC,mBAAmB,GAAG,gCAAgC;AAC5D,MAAMC,mBAAmB,GAAG,gCAAgC;AAC5D,MAAMC,mBAAmB,GACvB,+DAA+D;AACjE,MAAMC,mBAAmB,GACvB,+DAA+D;AACjE,MAAMC,oBAAoB,GAAG,sBAAsB;AAE5C,MAAMC,aAAa,GAAGC,uBAAuB,CAACC,IAAI,CAAC,IAAI,EAAE,QAAQ;AACjE,MAAMC,aAAa,GAAGF,uBAAuB,CAACC,IAAI,CAAC,IAAI,EAAE,QAAQ;AAEjE,UAAUE,UAAUA,CACzBvB,IAAY,EACZtI,OAAe,EACgC;EAC/C,MAAM;IAAExB,QAAQ;AAAE6D,IAAAA;GAAQ,GAAGoH,aAAa,CAACnB,IAAI,EAAEtI,OAAO,EAAE,OAAOgD,OAAO,EAAE,CAAC;EAE3E,MAAM8G,KAAK,GAAG,OAAOC,aAAa,CAAC,QAAQ,EAAE1H,MAAM,EAAE7D,QAAQ,CAAC;AAC9DkC,EAAAA,KAAK,CAAC,2BAA2B,EAAE4H,IAAI,EAAEtI,OAAO,CAAC;EAEjD,OAAO;IAAExB,QAAQ;AAAEsL,IAAAA;GAAO;AAC5B;AAEO,UAAUE,UAAUA,CACzB1B,IAAY,EACZtI,OAAe,EACgC;EAC/C,MAAM;IAAExB,QAAQ;AAAE6D,IAAAA;GAAQ,GAAGuH,aAAa,CAACtB,IAAI,EAAEtI,OAAO,EAAE,OAAOgD,OAAO,EAAE,CAAC;EAE3E,MAAM8G,KAAK,GAAG,OAAOC,aAAa,CAAC,QAAQ,EAAE1H,MAAM,EAAE7D,QAAQ,CAAC;AAE9DkC,EAAAA,KAAK,CAAC,2BAA2B,EAAE4H,IAAI,EAAEtI,OAAO,CAAC;EAEjD,OAAO;IAAExB,QAAQ;AAAEsL,IAAAA;GAAO;AAC5B;AAEA,SAASG,eAAeA,CAACtH,IAAyB,EAAE2F,IAAY,EAAE;EAEhE,IAAIrI,IAAI,CAACiK,UAAU,CAAC5B,IAAI,CAAC,EAAE,OAAOA,IAAI;AAEtC,EAAA,MAAM6B,QAAQ,GAAGxH,IAAI,KAAK,QAAQ;EAElC,OACE2F,IAAI,CAED3B,OAAO,CACNwD,QAAQ,GAAGhB,sBAAsB,GAAGD,sBAAsB,EAC1D,CAAA,MAAA,EAASvG,IAAI,GACf,CAAC,CAEAgE,OAAO,CACNwD,QAAQ,GAAGd,mBAAmB,GAAGD,mBAAmB,EACpD,CAAA,EAAA,EAAKzG,IAAI,CAAA,CAAA,CACX,CAAC,CAEAgE,OAAO,CACNwD,QAAQ,GAAGZ,mBAAmB,GAAGD,mBAAmB,EACpD,CAAA,QAAA,EAAW3G,IAAI,CAAA,CAAA,CACjB,CAAC,CAEAgE,OAAO,CAAC6C,oBAAoB,EAAE,CAAA,SAAA,EAAY7G,IAAI,CAAA,CAAE,CAAC,CAEjDgE,OAAO,CAACsC,QAAQ,EAAE,EAAE,CAAC;AAE5B;AAIA,UAAUmB,yBAAyBA,CACjCzH,IAAyB,EACzB2F,IAAY,EAC8B;AAC1C,EAAA,MAAM+B,gBAAgB,GAAGJ,eAAe,CAACtH,IAAI,EAAE2F,IAAI,CAAC;EACpD,MAAM;IAAE7D,KAAK;AAAEqF,IAAAA;GAAO,GAAG,MAAMO,gBAAgB;AAC/C,EAAA,IAAI,CAAC5F,KAAK,EAAE,OAAOqF,KAAK;AAGxB,EAAA,IAAIrF,KAAK,CAACtF,IAAI,KAAK,kBAAkB,EAAE,MAAMsF,KAAK;EAElD,IAAI4F,gBAAgB,KAAK/B,IAAI,IAAI,CAAC,CAAC,MAAMA,IAAI,EAAE7D,KAAK,EAAE;AACpDA,IAAAA,KAAK,CAAC7E,OAAO,IAAI,+BAA+B0I,IAAI,CAAA,eAAA,EAAkBA,IAAI,CAAA,CAAA,CAAG;AAC/E,EAAA;AAEA,EAAA,IAAI,CAAC,CAAC,MAAM2B,eAAe,CAACtH,IAAI,EAAE,SAAS,GAAG2F,IAAI,CAAC,EAAE7D,KAAK,EAAE;AAC1DA,IAAAA,KAAK,CAAC7E,OAAO,IAAI,CAAA,yBAAA,EAA4B0I,IAAI,CAAA,EAAA,CAAI;AACvD,EAAA;EAEA,MAAMgC,YAAY,GAAG3H,IAAI,KAAK,QAAQ,GAAG,QAAQ,GAAG,QAAQ;EAC5D,IAAI,CAAC,CAAC,MAAMsH,eAAe,CAACK,YAAY,EAAEhC,IAAI,CAAC,EAAE7D,KAAK,EAAE;AACtDA,IAAAA,KAAK,CAAC7E,OAAO,IAAI,mCAAmC0K,YAAY,CAAA,MAAA,EAAS3H,IAAI,CAAA,CAAA,CAAG;AAClF,EAAA;EAEA,IAAIA,IAAI,KAAK,QAAQ,EAAE;IACrB,MAAM4H,aAAa,GAAGF,gBAAgB,CAAC1D,OAAO,CAAC,YAAY,EAAE,aAAa,CAAC;IAC3E,IAAI4D,aAAa,KAAKF,gBAAgB,IAAI,CAAC,CAAC,MAAME,aAAa,EAAE9F,KAAK,EAAE;AACtEA,MAAAA,KAAK,CAAC7E,OAAO,IAAI,CAAA,kBAAA,EAAqB2K,aAAa,CAAA,EAAA,CAAI;AACzD,IAAA;AACF,EAAA;EAEA9F,KAAK,CAAC7E,OAAO,IAAI,CAAA;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AAEC,EAAA,MAAM6E,KAAK;AACb;AAEA,SAAS+F,iBAAiBA,CACxBC,EAAU,EACVzK,OAA2B,EACX;EAChB,IAAI;AACF,IAAA,IAAIA,OAAO,EAAE;MACX,OAAO;AAAEyE,QAAAA,KAAK,EAAE,IAAI;AAAEqF,QAAAA,KAAK,EAAElJ,SAAO,CAAC2H,OAAO,CAACkC,EAAE,EAAE;UAAEjC,KAAK,EAAE,CAACxI,OAAO;SAAG;OAAG;AAC1E,IAAA,CAAC,MAAM;MACL,OAAO;AAAEyE,QAAAA,KAAK,EAAE,IAAI;AAAEqF,QAAAA,KAAK,EAAElJ,SAAO,CAAC2H,OAAO,CAACkC,EAAE;OAAG;AACpD,IAAA;EACF,CAAC,CAAC,OAAOhG,KAAK,EAAE;IACd,OAAO;MAAEA,KAAK;AAAEqF,MAAAA,KAAK,EAAE;KAAM;AAC/B,EAAA;AACF;AAEA,SAASY,oBAAoBA,CAC3BD,EAA2C,EAC3ClL,OAAgD,EAChC;EAChB,IAAI;IACF,OAAO;AAAEkF,MAAAA,KAAK,EAAE,IAAI;AAAEqF,MAAAA,KAAK,EAAEa,OAAiB,CAACF,EAAE,EAAElL,OAAO;KAAG;EAC/D,CAAC,CAAC,OAAOkF,KAAK,EAAE;IACd,OAAO;MAAEA,KAAK;AAAEqF,MAAAA,KAAK,EAAE;KAAM;AAC/B,EAAA;AACF;AAEA,SAASc,iCAAiCA,CACxCjI,IAAyB,EACzB2F,IAAY,EACZtI,OAAe,EACf;AACA,EAAA,MAAM6K,EAAE,GAAGT,yBAAyB,CAACzH,IAAI,EAAE2F,IAAI,CAAC;AAChD,EAAA,IAAIwC,GAAG,GAAGD,EAAE,CAACE,IAAI,EAAE;AACnB,EAAA,OAAO,CAACD,GAAG,CAACE,IAAI,EAAE;AAChBF,IAAAA,GAAG,GAAGD,EAAE,CAACE,IAAI,CAACP,iBAAiB,CAACM,GAAG,CAAChB,KAAK,EAAE9J,OAAO,CAAC,CAAC;AACtD,EAAA;EACA,OAAO;AAAEqC,IAAAA,MAAM,EAAE,SAAkB;IAAE7D,QAAQ,EAAEsM,GAAG,CAAChB;GAAO;AAC5D;AACA,SAASmB,gCAAgCA,CACvCtI,IAAyB,EACzB2F,IAAY,EACZtI,OAAe,EACf;AACA,EAAA,MAAMkL,SAAS,GAAGpJ,aAAa,CAC7B7B,IAAI,CAACO,IAAI,CAACR,OAAO,EAAE,iCAAiC,CACtD,CAAC,CAACmL,IAAI;AAEN,EAAA,MAAMN,EAAE,GAAGT,yBAAyB,CAACzH,IAAI,EAAE2F,IAAI,CAAC;AAChD,EAAA,IAAIwC,GAAG,GAAGD,EAAE,CAACE,IAAI,EAAE;AACnB,EAAA,OAAO,CAACD,GAAG,CAACE,IAAI,EAAE;AAChBF,IAAAA,GAAG,GAAGD,EAAE,CAACE,IAAI,CAACL,oBAAoB,CAACI,GAAG,CAAChB,KAAK,EAAEoB,SAAS,CAAC,CAAC;AAC3D,EAAA;EACA,OAAO;AAAE7I,IAAAA,MAAM,EAAE,MAAe;AAAE7D,IAAAA,QAAQ,EAAE4M,aAAa,CAACN,GAAG,CAAChB,KAAK;GAAG;AACxE;AAEA,SAASJ,uBAAuBA,CAC9B/G,IAAyB,EACzB2F,IAAY,EACZtI,OAAe,EACfqL,UAAmB,EACnB;EACA,IAAI,CAACA,UAAU,EAAE;AACf,IAAA,OAAOT,iCAAiC,CAACjI,IAAI,EAAE2F,IAAI,EAAEtI,OAAO,CAAC;AAC/D,EAAA;EAEA,IAAI;IACF,MAAMsL,QAAQ,GAAGL,gCAAgC,CAACtI,IAAI,EAAE2F,IAAI,EAAEtI,OAAO,CAAC;AAEtE,IAAA,IAAI,CAACjB,UAAU,CAACuM,QAAQ,CAAC9M,QAAQ,CAAC,EAAE;AAClC,MAAA,MAAMoE,MAAM,CAAC2I,MAAM,CACjB,IAAI1L,KAAK,CAAC,CAAA,mBAAA,EAAsByI,IAAI,CAAA,UAAA,EAAatI,OAAO,CAAA,CAAA,CAAG,CAAC,EAC5D;AAAE2C,QAAAA,IAAI,EAAE;AAAmB,OAC7B,CAAC;AACH,IAAA;AACA,IAAA,OAAO2I,QAAQ;EACjB,CAAC,CAAC,OAAOpM,CAAC,EAAE;IACV,IAAI;AACF,MAAA,OAAO0L,iCAAiC,CAACjI,IAAI,EAAE2F,IAAI,EAAEtI,OAAO,CAAC;IAC/D,CAAC,CAAC,OAAOwL,EAAE,EAAE;AACX,MAAA,IAAItM,CAAC,CAACyD,IAAI,KAAK,kBAAkB,EAAE,MAAMzD,CAAC;AAC1C,MAAA,IAAIsM,EAAE,CAAC7I,IAAI,KAAK,kBAAkB,EAAE,MAAM6I,EAAE;AAC5C,MAAA,MAAMtM,CAAC;AACT,IAAA;AACF,EAAA;AACF;AAEA,UAAU6K,aAAaA,CACrBpH,IAAY,EACZN,MAA0B,EAC1BiG,IAAY,EACM;EAClB,IAAI;IACF,OAAO,OAAOlG,eAAe,CAC3BkG,IAAI,EACJjG,MAAM,EACN,qDAAqDM,IAAI,CAAA,EAAA,CAAI,GAC3D,4DAA4D,GAC5D,iEAAiE,EACnE,CAAA,yBAAA,EAA4BA,IAAI,CAAA,gCAAA,CAAkC,GAChE,4DACJ,CAAC;EACH,CAAC,CAAC,OAAOjD,GAAG,EAAE;IACZA,GAAG,CAACE,OAAO,GAAG,CAAA,SAAA,EAAYF,GAAG,CAACE,OAAO,CAAA,oBAAA,EAAuB0I,IAAI,CAAA,CAAA,CAAG;AACnE,IAAA,MAAM5I,GAAG;AACX,EAAA;AACF;;;;"} | ||
| {"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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"} |
+1
-16
@@ -1,2 +0,2 @@ | ||
| export { D as DEFAULT_EXTENSIONS, F as File, b as buildExternalHelpers, c as createConfigItem, a as createConfigItemAsync, d as createConfigItemSync, g as getEnv, e as loadOptions, f as loadOptionsAsync, h as loadOptionsSync, i as loadPartialConfig, j as loadPartialConfigAsync, k as loadPartialConfigSync, n as parse, o as parseAsync, q as parseSync, s as resolvePlugin, t as resolvePreset, u as transform, v as transformAsync, w as transformFromAst, x as transformFromAstAsync, y as transformFromAstSync, z as transformSync, A as version } from './index-DBcMGCJP.js'; | ||
| export { DEFAULT_EXTENSIONS, File, buildExternalHelpers, createConfigItem, createConfigItemAsync, createConfigItemSync, getEnv, loadOptions, loadOptionsAsync, loadOptionsSync, loadPartialConfig, loadPartialConfigAsync, loadPartialConfigSync, parse, parseAsync, parseSync, resolvePlugin, resolvePreset, transform, transformAsync, transformFromAst, transformFromAstAsync, transformFromAstSync, transformSync, version } from './index-shared.js'; | ||
| import '#config/files'; | ||
@@ -9,17 +9,2 @@ import * as _t from '@babel/types'; | ||
| export { transformFile, transformFileAsync, transformFileSync } from '#transform-file'; | ||
| import '@babel/helpers'; | ||
| import '@babel/code-frame'; | ||
| import 'semver'; | ||
| import '@babel/generator'; | ||
| import 'gensync'; | ||
| import './caching-2iA7hK9v.js'; | ||
| import 'node:path'; | ||
| import 'node:fs'; | ||
| import 'obug'; | ||
| import 'convert-source-map'; | ||
| import '@jridgewell/remapping'; | ||
| import './errors/rewrite-stack-trace.js'; | ||
| import './config/resolve-targets.js'; | ||
| import '@babel/helper-compilation-targets'; | ||
| import '#config/resolve-targets'; | ||
| //# sourceMappingURL=index.js.map |
+1
-1
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;"} | ||
| {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"} |
| import 'gensync'; | ||
| import './index-DBcMGCJP.js'; | ||
| export { a as transformFile, b as transformFileAsync, t as transformFileSync } from './transform-file-CmOAdXTw.js'; | ||
| import '@babel/helpers'; | ||
| import '@babel/traverse'; | ||
| import '@babel/code-frame'; | ||
| import '@babel/types'; | ||
| import 'semver'; | ||
| import '@babel/generator'; | ||
| import '@babel/template'; | ||
| import '#config/files'; | ||
| import '@babel/parser'; | ||
| import './caching-2iA7hK9v.js'; | ||
| import 'node:path'; | ||
| import 'node:fs'; | ||
| import 'obug'; | ||
| import 'convert-source-map'; | ||
| import '@jridgewell/remapping'; | ||
| import './errors/rewrite-stack-trace.js'; | ||
| import '#transform-file'; | ||
| import './config/resolve-targets.js'; | ||
| import '@babel/helper-compilation-targets'; | ||
| import '#config/resolve-targets'; | ||
| import './index-shared.js'; | ||
| export { transformFile, transformFileAsync, transformFileSync } from './transform-file-shared.js'; | ||
| //# 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":[],"sourcesContent":[],"names":[],"mappings":";;"} |
+15
-16
| { | ||
| "name": "@babel/core", | ||
| "version": "8.0.0-rc.3", | ||
| "version": "8.0.0-rc.4", | ||
| "description": "Babel compiler core.", | ||
@@ -41,11 +41,10 @@ "main": "./lib/index.js", | ||
| "dependencies": { | ||
| "@babel/code-frame": "^8.0.0-rc.3", | ||
| "@babel/generator": "^8.0.0-rc.3", | ||
| "@babel/helper-compilation-targets": "^8.0.0-rc.3", | ||
| "@babel/helpers": "^8.0.0-rc.3", | ||
| "@babel/parser": "^8.0.0-rc.3", | ||
| "@babel/template": "^8.0.0-rc.3", | ||
| "@babel/traverse": "^8.0.0-rc.3", | ||
| "@babel/types": "^8.0.0-rc.3", | ||
| "@jridgewell/remapping": "^2.3.5", | ||
| "@babel/code-frame": "^8.0.0-rc.4", | ||
| "@babel/generator": "^8.0.0-rc.4", | ||
| "@babel/helper-compilation-targets": "^8.0.0-rc.4", | ||
| "@babel/helpers": "^8.0.0-rc.4", | ||
| "@babel/parser": "^8.0.0-rc.4", | ||
| "@babel/template": "^8.0.0-rc.4", | ||
| "@babel/traverse": "^8.0.0-rc.4", | ||
| "@babel/types": "^8.0.0-rc.4", | ||
| "@types/gensync": "^1.0.0", | ||
@@ -60,8 +59,8 @@ "convert-source-map": "^2.0.0", | ||
| "devDependencies": { | ||
| "@babel/helper-transform-fixture-test-runner": "^8.0.0-rc.3", | ||
| "@babel/plugin-syntax-flow": "^8.0.0-rc.3", | ||
| "@babel/plugin-transform-flow-strip-types": "^8.0.0-rc.3", | ||
| "@babel/plugin-transform-modules-commonjs": "^8.0.0-rc.3", | ||
| "@babel/preset-env": "^8.0.0-rc.3", | ||
| "@babel/preset-typescript": "^8.0.0-rc.3", | ||
| "@babel/helper-transform-fixture-test-runner": "^8.0.0-rc.4", | ||
| "@babel/plugin-syntax-flow": "^8.0.0-rc.4", | ||
| "@babel/plugin-transform-flow-strip-types": "^8.0.0-rc.4", | ||
| "@babel/plugin-transform-modules-commonjs": "^8.0.0-rc.4", | ||
| "@babel/preset-env": "^8.0.0-rc.4", | ||
| "@babel/preset-typescript": "^8.0.0-rc.4", | ||
| "@jridgewell/trace-mapping": "^0.3.28", | ||
@@ -68,0 +67,0 @@ "@types/convert-source-map": "^2.0.0", |
| import gensync from 'gensync'; | ||
| const runGenerator = gensync(function* (item) { | ||
| return yield* item; | ||
| }); | ||
| const isAsync = gensync({ | ||
| sync: () => false, | ||
| errback: cb => cb(null, true) | ||
| }); | ||
| function maybeAsync(fn, message) { | ||
| return gensync({ | ||
| sync(...args) { | ||
| const result = fn.apply(this, args); | ||
| if (isThenable(result)) throw new Error(message); | ||
| return result; | ||
| }, | ||
| async(...args) { | ||
| return Promise.resolve(fn.apply(this, args)); | ||
| } | ||
| }); | ||
| } | ||
| const withKind = gensync({ | ||
| sync: cb => cb("sync"), | ||
| async: async cb => cb("async") | ||
| }); | ||
| function forwardAsync(action, cb) { | ||
| const g = gensync(action); | ||
| return withKind(kind => { | ||
| const adapted = g[kind]; | ||
| return cb(adapted); | ||
| }); | ||
| } | ||
| const onFirstPause = gensync({ | ||
| name: "onFirstPause", | ||
| arity: 2, | ||
| sync: function (item) { | ||
| return runGenerator.sync(item); | ||
| }, | ||
| errback: function (item, firstPause, cb) { | ||
| let completed = false; | ||
| runGenerator.errback(item, (err, value) => { | ||
| completed = true; | ||
| cb(err, value); | ||
| }); | ||
| if (!completed) { | ||
| firstPause(); | ||
| } | ||
| } | ||
| }); | ||
| const waitFor = gensync({ | ||
| sync: x => x, | ||
| async: async x => x | ||
| }); | ||
| function isThenable(val) { | ||
| return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; | ||
| } | ||
| function mergeOptions(target, source) { | ||
| for (const k of Object.keys(source)) { | ||
| if ((k === "parserOpts" || k === "generatorOpts" || k === "assumptions") && source[k]) { | ||
| const parserOpts = source[k]; | ||
| const targetObj = target[k] || (target[k] = {}); | ||
| mergeDefaultFields(targetObj, parserOpts); | ||
| } else { | ||
| const val = source[k]; | ||
| if (val !== undefined) target[k] = val; | ||
| } | ||
| } | ||
| } | ||
| function mergeDefaultFields(target, source) { | ||
| for (const k of Object.keys(source)) { | ||
| const val = source[k]; | ||
| if (val !== undefined) target[k] = val; | ||
| } | ||
| } | ||
| function isIterableIterator(value) { | ||
| return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function"; | ||
| } | ||
| const synchronize = gen => { | ||
| return gensync(gen).sync; | ||
| }; | ||
| function* genTrue() { | ||
| return true; | ||
| } | ||
| function makeWeakCache(handler) { | ||
| return makeCachedFunction(WeakMap, handler); | ||
| } | ||
| function makeWeakCacheSync(handler) { | ||
| return synchronize(makeWeakCache(handler)); | ||
| } | ||
| function makeStrongCache(handler) { | ||
| return makeCachedFunction(Map, handler); | ||
| } | ||
| function makeStrongCacheSync(handler) { | ||
| return synchronize(makeStrongCache(handler)); | ||
| } | ||
| function makeCachedFunction(CallCache, handler) { | ||
| const callCacheSync = new CallCache(); | ||
| const callCacheAsync = new CallCache(); | ||
| const futureCache = new CallCache(); | ||
| return function* cachedFunction(arg, data) { | ||
| const asyncContext = yield* isAsync(); | ||
| const callCache = asyncContext ? callCacheAsync : callCacheSync; | ||
| const cached = yield* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data); | ||
| if (cached.valid) return cached.value; | ||
| const cache = new CacheConfigurator(data); | ||
| const handlerResult = handler(arg, cache); | ||
| let finishLock; | ||
| let value; | ||
| if (isIterableIterator(handlerResult)) { | ||
| value = yield* onFirstPause(handlerResult, () => { | ||
| finishLock = setupAsyncLocks(cache, futureCache, arg); | ||
| }); | ||
| } else { | ||
| value = handlerResult; | ||
| } | ||
| updateFunctionCache(callCache, cache, arg, value); | ||
| if (finishLock) { | ||
| futureCache.delete(arg); | ||
| finishLock.release(value); | ||
| } | ||
| return value; | ||
| }; | ||
| } | ||
| function* getCachedValue(cache, arg, data) { | ||
| const cachedValue = cache.get(arg); | ||
| if (cachedValue) { | ||
| for (const { | ||
| value, | ||
| valid | ||
| } of cachedValue) { | ||
| if (yield* valid(data)) return { | ||
| valid: true, | ||
| value | ||
| }; | ||
| } | ||
| } | ||
| return { | ||
| valid: false, | ||
| value: null | ||
| }; | ||
| } | ||
| function* getCachedValueOrWait(asyncContext, callCache, futureCache, arg, data) { | ||
| const cached = yield* getCachedValue(callCache, arg, data); | ||
| if (cached.valid) { | ||
| return cached; | ||
| } | ||
| if (asyncContext) { | ||
| const cached = yield* getCachedValue(futureCache, arg, data); | ||
| if (cached.valid) { | ||
| const value = yield* waitFor(cached.value.promise); | ||
| return { | ||
| valid: true, | ||
| value | ||
| }; | ||
| } | ||
| } | ||
| return { | ||
| valid: false, | ||
| value: null | ||
| }; | ||
| } | ||
| function setupAsyncLocks(config, futureCache, arg) { | ||
| const finishLock = new Lock(); | ||
| updateFunctionCache(futureCache, config, arg, finishLock); | ||
| return finishLock; | ||
| } | ||
| function updateFunctionCache(cache, config, arg, value) { | ||
| if (!config.configured()) config.forever(); | ||
| let cachedValue = cache.get(arg); | ||
| config.deactivate(); | ||
| switch (config.mode()) { | ||
| case "forever": | ||
| cachedValue = [{ | ||
| value, | ||
| valid: genTrue | ||
| }]; | ||
| cache.set(arg, cachedValue); | ||
| break; | ||
| case "invalidate": | ||
| cachedValue = [{ | ||
| value, | ||
| valid: config.validator() | ||
| }]; | ||
| cache.set(arg, cachedValue); | ||
| break; | ||
| case "valid": | ||
| if (cachedValue) { | ||
| cachedValue.push({ | ||
| value, | ||
| valid: config.validator() | ||
| }); | ||
| } else { | ||
| cachedValue = [{ | ||
| value, | ||
| valid: config.validator() | ||
| }]; | ||
| cache.set(arg, cachedValue); | ||
| } | ||
| } | ||
| } | ||
| class CacheConfigurator { | ||
| _active = true; | ||
| _never = false; | ||
| _forever = false; | ||
| _invalidate = false; | ||
| _configured = false; | ||
| _pairs = []; | ||
| _data; | ||
| constructor(data) { | ||
| this._data = data; | ||
| } | ||
| simple() { | ||
| return makeSimpleConfigurator(this); | ||
| } | ||
| mode() { | ||
| if (this._never) return "never"; | ||
| if (this._forever) return "forever"; | ||
| if (this._invalidate) return "invalidate"; | ||
| return "valid"; | ||
| } | ||
| forever() { | ||
| if (!this._active) { | ||
| throw new Error("Cannot change caching after evaluation has completed."); | ||
| } | ||
| if (this._never) { | ||
| throw new Error("Caching has already been configured with .never()"); | ||
| } | ||
| this._forever = true; | ||
| this._configured = true; | ||
| } | ||
| never() { | ||
| if (!this._active) { | ||
| throw new Error("Cannot change caching after evaluation has completed."); | ||
| } | ||
| if (this._forever) { | ||
| throw new Error("Caching has already been configured with .forever()"); | ||
| } | ||
| this._never = true; | ||
| this._configured = true; | ||
| } | ||
| using(handler) { | ||
| if (!this._active) { | ||
| throw new Error("Cannot change caching after evaluation has completed."); | ||
| } | ||
| if (this._never || this._forever) { | ||
| throw new Error("Caching has already been configured with .never or .forever()"); | ||
| } | ||
| this._configured = true; | ||
| const key = handler(this._data); | ||
| const fn = maybeAsync(handler, `You appear to be using an async cache handler, but Babel has been called synchronously`); | ||
| if (isThenable(key)) { | ||
| return key.then(key => { | ||
| this._pairs.push([key, fn]); | ||
| return key; | ||
| }); | ||
| } | ||
| this._pairs.push([key, fn]); | ||
| return key; | ||
| } | ||
| invalidate(handler) { | ||
| this._invalidate = true; | ||
| return this.using(handler); | ||
| } | ||
| validator() { | ||
| const pairs = this._pairs; | ||
| return function* (data) { | ||
| for (const [key, fn] of pairs) { | ||
| if (key !== (yield* fn(data))) return false; | ||
| } | ||
| return true; | ||
| }; | ||
| } | ||
| deactivate() { | ||
| this._active = false; | ||
| } | ||
| configured() { | ||
| return this._configured; | ||
| } | ||
| } | ||
| function makeSimpleConfigurator(cache) { | ||
| function cacheFn(val) { | ||
| if (typeof val === "boolean") { | ||
| if (val) cache.forever();else cache.never(); | ||
| return; | ||
| } | ||
| return cache.using(() => assertSimpleType(val())); | ||
| } | ||
| cacheFn.forever = () => cache.forever(); | ||
| cacheFn.never = () => cache.never(); | ||
| cacheFn.using = cb => cache.using(() => assertSimpleType(cb())); | ||
| cacheFn.invalidate = cb => cache.invalidate(() => assertSimpleType(cb())); | ||
| return cacheFn; | ||
| } | ||
| function assertSimpleType(value) { | ||
| if (isThenable(value)) { | ||
| throw new Error(`You appear to be using an async cache handler, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously handle your caching logic.`); | ||
| } | ||
| if (value != null && typeof value !== "string" && typeof value !== "boolean" && typeof value !== "number") { | ||
| throw new Error("Cache keys must be either string, boolean, number, null, or undefined."); | ||
| } | ||
| return value; | ||
| } | ||
| class Lock { | ||
| released = false; | ||
| promise; | ||
| _resolve; | ||
| constructor() { | ||
| this.promise = new Promise(resolve => { | ||
| this._resolve = resolve; | ||
| }); | ||
| } | ||
| release(value) { | ||
| this.released = true; | ||
| this._resolve(value); | ||
| } | ||
| } | ||
| export { makeWeakCache as a, makeWeakCacheSync as b, makeStrongCacheSync as c, assertSimpleType as d, mergeOptions as e, maybeAsync as f, isThenable as g, forwardAsync as h, isAsync as i, makeStrongCache as m, waitFor as w }; | ||
| //# sourceMappingURL=caching-2iA7hK9v.js.map |
| {"version":3,"file":"caching-2iA7hK9v.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 object, 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 object, 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 // @ts-expect-error todo(flow->ts): improve function return type annotation\n return key.then((key: unknown) => {\n this._pairs.push([key, fn]);\n return key;\n });\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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"} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
| import gensync from 'gensync'; | ||
| import { l as loadConfig, r as run } from './index-DBcMGCJP.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 { transformFile as a, transformFileAsync as b, readFile as r, stat as s, transformFileSync as t }; | ||
| //# sourceMappingURL=transform-file-CmOAdXTw.js.map |
| {"version":3,"file":"transform-file-CmOAdXTw.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;;;;"} |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 4 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 4 instances in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
16
-5.88%569526
-1.36%4578
-1.91%22
4.76%- Removed
- Removed
Updated
Updated
Updated
Updated
Updated
Updated