diff options
Diffstat (limited to 'node_modules/@babel/core')
64 files changed, 9993 insertions, 0 deletions
diff --git a/node_modules/@babel/core/LICENSE b/node_modules/@babel/core/LICENSE new file mode 100644 index 0000000..f31575e --- /dev/null +++ b/node_modules/@babel/core/LICENSE @@ -0,0 +1,22 @@ +MIT License + +Copyright (c) 2014-present Sebastian McKenzie and other contributors + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/@babel/core/README.md b/node_modules/@babel/core/README.md new file mode 100644 index 0000000..9b3a950 --- /dev/null +++ b/node_modules/@babel/core/README.md @@ -0,0 +1,19 @@ +# @babel/core + +> Babel compiler core. + +See our website [@babel/core](https://babeljs.io/docs/en/babel-core) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen) associated with this package. + +## Install + +Using npm: + +```sh +npm install --save-dev @babel/core +``` + +or using yarn: + +```sh +yarn add @babel/core --dev +``` diff --git a/node_modules/@babel/core/lib/config/cache-contexts.js b/node_modules/@babel/core/lib/config/cache-contexts.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/node_modules/@babel/core/lib/config/cache-contexts.js diff --git a/node_modules/@babel/core/lib/config/caching.js b/node_modules/@babel/core/lib/config/caching.js new file mode 100644 index 0000000..16c6e9e --- /dev/null +++ b/node_modules/@babel/core/lib/config/caching.js @@ -0,0 +1,325 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.assertSimpleType = assertSimpleType; +exports.makeStrongCache = makeStrongCache; +exports.makeStrongCacheSync = makeStrongCacheSync; +exports.makeWeakCache = makeWeakCache; +exports.makeWeakCacheSync = makeWeakCacheSync; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _async = require("../gensync-utils/async"); + +var _util = require("./util"); + +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* (0, _async.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 ((0, _util.isIterableIterator)(handlerResult)) { +      const gen = handlerResult; +      value = yield* (0, _async.onFirstPause)(gen, () => { +        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* (0, _async.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 { +  constructor(data) { +    this._active = true; +    this._never = false; +    this._forever = false; +    this._invalidate = false; +    this._configured = false; +    this._pairs = []; +    this._data = void 0; +    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 = (0, _async.maybeAsync)(handler, `You appear to be using an async cache handler, but Babel has been called synchronously`); + +    if ((0, _async.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 ((0, _async.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 { +  constructor() { +    this.released = false; +    this.promise = void 0; +    this._resolve = void 0; +    this.promise = new Promise(resolve => { +      this._resolve = resolve; +    }); +  } + +  release(value) { +    this.released = true; + +    this._resolve(value); +  } + +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/config-chain.js b/node_modules/@babel/core/lib/config/config-chain.js new file mode 100644 index 0000000..aa5c5f2 --- /dev/null +++ b/node_modules/@babel/core/lib/config/config-chain.js @@ -0,0 +1,564 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.buildPresetChain = buildPresetChain; +exports.buildPresetChainWalker = void 0; +exports.buildRootChain = buildRootChain; + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +function _debug() { +  const data = require("debug"); + +  _debug = function () { +    return data; +  }; + +  return data; +} + +var _options = require("./validation/options"); + +var _patternToRegex = require("./pattern-to-regex"); + +var _printer = require("./printer"); + +var _files = require("./files"); + +var _caching = require("./caching"); + +var _configDescriptors = require("./config-descriptors"); + +const debug = _debug()("babel:config:config-chain"); + +function* buildPresetChain(arg, context) { +  const chain = yield* buildPresetChainWalker(arg, context); +  if (!chain) return null; +  return { +    plugins: dedupDescriptors(chain.plugins), +    presets: dedupDescriptors(chain.presets), +    options: chain.options.map(o => normalizeOptions(o)), +    files: new Set() +  }; +} + +const buildPresetChainWalker = makeChainWalker({ +  root: preset => loadPresetDescriptors(preset), +  env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName), +  overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index), +  overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName), +  createLogger: () => () => {} +}); +exports.buildPresetChainWalker = buildPresetChainWalker; +const loadPresetDescriptors = (0, _caching.makeWeakCacheSync)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors)); +const loadPresetEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName))); +const loadPresetOverridesDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index))); +const loadPresetOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(preset => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index, envName)))); + +function* buildRootChain(opts, context) { +  let configReport, babelRcReport; +  const programmaticLogger = new _printer.ConfigPrinter(); +  const programmaticChain = yield* loadProgrammaticChain({ +    options: opts, +    dirname: context.cwd +  }, context, undefined, programmaticLogger); +  if (!programmaticChain) return null; +  const programmaticReport = yield* programmaticLogger.output(); +  let configFile; + +  if (typeof opts.configFile === "string") { +    configFile = yield* (0, _files.loadConfig)(opts.configFile, context.cwd, context.envName, context.caller); +  } else if (opts.configFile !== false) { +    configFile = yield* (0, _files.findRootConfig)(context.root, context.envName, context.caller); +  } + +  let { +    babelrc, +    babelrcRoots +  } = opts; +  let babelrcRootsDirectory = context.cwd; +  const configFileChain = emptyChain(); +  const configFileLogger = new _printer.ConfigPrinter(); + +  if (configFile) { +    const validatedFile = validateConfigFile(configFile); +    const result = yield* loadFileChain(validatedFile, context, undefined, configFileLogger); +    if (!result) return null; +    configReport = yield* configFileLogger.output(); + +    if (babelrc === undefined) { +      babelrc = validatedFile.options.babelrc; +    } + +    if (babelrcRoots === undefined) { +      babelrcRootsDirectory = validatedFile.dirname; +      babelrcRoots = validatedFile.options.babelrcRoots; +    } + +    mergeChain(configFileChain, result); +  } + +  let ignoreFile, babelrcFile; +  let isIgnored = false; +  const fileChain = emptyChain(); + +  if ((babelrc === true || babelrc === undefined) && typeof context.filename === "string") { +    const pkgData = yield* (0, _files.findPackageData)(context.filename); + +    if (pkgData && babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)) { +      ({ +        ignore: ignoreFile, +        config: babelrcFile +      } = yield* (0, _files.findRelativeConfig)(pkgData, context.envName, context.caller)); + +      if (ignoreFile) { +        fileChain.files.add(ignoreFile.filepath); +      } + +      if (ignoreFile && shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)) { +        isIgnored = true; +      } + +      if (babelrcFile && !isIgnored) { +        const validatedFile = validateBabelrcFile(babelrcFile); +        const babelrcLogger = new _printer.ConfigPrinter(); +        const result = yield* loadFileChain(validatedFile, context, undefined, babelrcLogger); + +        if (!result) { +          isIgnored = true; +        } else { +          babelRcReport = yield* babelrcLogger.output(); +          mergeChain(fileChain, result); +        } +      } + +      if (babelrcFile && isIgnored) { +        fileChain.files.add(babelrcFile.filepath); +      } +    } +  } + +  if (context.showConfig) { +    console.log(`Babel configs on "${context.filename}" (ascending priority):\n` + [configReport, babelRcReport, programmaticReport].filter(x => !!x).join("\n\n") + "\n-----End Babel configs-----"); +  } + +  const chain = mergeChain(mergeChain(mergeChain(emptyChain(), configFileChain), fileChain), programmaticChain); +  return { +    plugins: isIgnored ? [] : dedupDescriptors(chain.plugins), +    presets: isIgnored ? [] : dedupDescriptors(chain.presets), +    options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)), +    fileHandling: isIgnored ? "ignored" : "transpile", +    ignore: ignoreFile || undefined, +    babelrc: babelrcFile || undefined, +    config: configFile || undefined, +    files: chain.files +  }; +} + +function babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory) { +  if (typeof babelrcRoots === "boolean") return babelrcRoots; +  const absoluteRoot = context.root; + +  if (babelrcRoots === undefined) { +    return pkgData.directories.indexOf(absoluteRoot) !== -1; +  } + +  let babelrcPatterns = babelrcRoots; + +  if (!Array.isArray(babelrcPatterns)) { +    babelrcPatterns = [babelrcPatterns]; +  } + +  babelrcPatterns = babelrcPatterns.map(pat => { +    return typeof pat === "string" ? _path().resolve(babelrcRootsDirectory, pat) : pat; +  }); + +  if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) { +    return pkgData.directories.indexOf(absoluteRoot) !== -1; +  } + +  return babelrcPatterns.some(pat => { +    if (typeof pat === "string") { +      pat = (0, _patternToRegex.default)(pat, babelrcRootsDirectory); +    } + +    return pkgData.directories.some(directory => { +      return matchPattern(pat, babelrcRootsDirectory, directory, context); +    }); +  }); +} + +const validateConfigFile = (0, _caching.makeWeakCacheSync)(file => ({ +  filepath: file.filepath, +  dirname: file.dirname, +  options: (0, _options.validate)("configfile", file.options) +})); +const validateBabelrcFile = (0, _caching.makeWeakCacheSync)(file => ({ +  filepath: file.filepath, +  dirname: file.dirname, +  options: (0, _options.validate)("babelrcfile", file.options) +})); +const validateExtendFile = (0, _caching.makeWeakCacheSync)(file => ({ +  filepath: file.filepath, +  dirname: file.dirname, +  options: (0, _options.validate)("extendsfile", file.options) +})); +const loadProgrammaticChain = makeChainWalker({ +  root: input => buildRootDescriptors(input, "base", _configDescriptors.createCachedDescriptors), +  env: (input, envName) => buildEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, envName), +  overrides: (input, index) => buildOverrideDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index), +  overridesEnv: (input, index, envName) => buildOverrideEnvDescriptors(input, "base", _configDescriptors.createCachedDescriptors, index, envName), +  createLogger: (input, context, baseLogger) => buildProgrammaticLogger(input, context, baseLogger) +}); +const loadFileChainWalker = makeChainWalker({ +  root: file => loadFileDescriptors(file), +  env: (file, envName) => loadFileEnvDescriptors(file)(envName), +  overrides: (file, index) => loadFileOverridesDescriptors(file)(index), +  overridesEnv: (file, index, envName) => loadFileOverridesEnvDescriptors(file)(index)(envName), +  createLogger: (file, context, baseLogger) => buildFileLogger(file.filepath, context, baseLogger) +}); + +function* loadFileChain(input, context, files, baseLogger) { +  const chain = yield* loadFileChainWalker(input, context, files, baseLogger); + +  if (chain) { +    chain.files.add(input.filepath); +  } + +  return chain; +} + +const loadFileDescriptors = (0, _caching.makeWeakCacheSync)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors)); +const loadFileEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(envName => buildEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, envName))); +const loadFileOverridesDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => buildOverrideDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index))); +const loadFileOverridesEnvDescriptors = (0, _caching.makeWeakCacheSync)(file => (0, _caching.makeStrongCacheSync)(index => (0, _caching.makeStrongCacheSync)(envName => buildOverrideEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index, envName)))); + +function buildFileLogger(filepath, context, baseLogger) { +  if (!baseLogger) { +    return () => {}; +  } + +  return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Config, { +    filepath +  }); +} + +function buildRootDescriptors({ +  dirname, +  options +}, alias, descriptors) { +  return descriptors(dirname, options, alias); +} + +function buildProgrammaticLogger(_, context, baseLogger) { +  var _context$caller; + +  if (!baseLogger) { +    return () => {}; +  } + +  return baseLogger.configure(context.showConfig, _printer.ChainFormatter.Programmatic, { +    callerName: (_context$caller = context.caller) == null ? void 0 : _context$caller.name +  }); +} + +function buildEnvDescriptors({ +  dirname, +  options +}, alias, descriptors, envName) { +  const opts = options.env && options.env[envName]; +  return opts ? descriptors(dirname, opts, `${alias}.env["${envName}"]`) : null; +} + +function buildOverrideDescriptors({ +  dirname, +  options +}, alias, descriptors, index) { +  const opts = options.overrides && options.overrides[index]; +  if (!opts) throw new Error("Assertion failure - missing override"); +  return descriptors(dirname, opts, `${alias}.overrides[${index}]`); +} + +function buildOverrideEnvDescriptors({ +  dirname, +  options +}, alias, descriptors, index, envName) { +  const override = options.overrides && options.overrides[index]; +  if (!override) throw new Error("Assertion failure - missing override"); +  const opts = override.env && override.env[envName]; +  return opts ? descriptors(dirname, opts, `${alias}.overrides[${index}].env["${envName}"]`) : null; +} + +function makeChainWalker({ +  root, +  env, +  overrides, +  overridesEnv, +  createLogger +}) { +  return function* (input, context, files = new Set(), baseLogger) { +    const { +      dirname +    } = input; +    const flattenedConfigs = []; +    const rootOpts = root(input); + +    if (configIsApplicable(rootOpts, dirname, context)) { +      flattenedConfigs.push({ +        config: rootOpts, +        envName: undefined, +        index: undefined +      }); +      const envOpts = env(input, context.envName); + +      if (envOpts && configIsApplicable(envOpts, dirname, context)) { +        flattenedConfigs.push({ +          config: envOpts, +          envName: context.envName, +          index: undefined +        }); +      } + +      (rootOpts.options.overrides || []).forEach((_, index) => { +        const overrideOps = overrides(input, index); + +        if (configIsApplicable(overrideOps, dirname, context)) { +          flattenedConfigs.push({ +            config: overrideOps, +            index, +            envName: undefined +          }); +          const overrideEnvOpts = overridesEnv(input, index, context.envName); + +          if (overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context)) { +            flattenedConfigs.push({ +              config: overrideEnvOpts, +              index, +              envName: context.envName +            }); +          } +        } +      }); +    } + +    if (flattenedConfigs.some(({ +      config: { +        options: { +          ignore, +          only +        } +      } +    }) => shouldIgnore(context, ignore, only, dirname))) { +      return null; +    } + +    const chain = emptyChain(); +    const logger = createLogger(input, context, baseLogger); + +    for (const { +      config, +      index, +      envName +    } of flattenedConfigs) { +      if (!(yield* mergeExtendsChain(chain, config.options, dirname, context, files, baseLogger))) { +        return null; +      } + +      logger(config, index, envName); +      yield* mergeChainOpts(chain, config); +    } + +    return chain; +  }; +} + +function* mergeExtendsChain(chain, opts, dirname, context, files, baseLogger) { +  if (opts.extends === undefined) return true; +  const file = yield* (0, _files.loadConfig)(opts.extends, dirname, context.envName, context.caller); + +  if (files.has(file)) { +    throw new Error(`Configuration cycle detected loading ${file.filepath}.\n` + `File already loaded following the config chain:\n` + Array.from(files, file => ` - ${file.filepath}`).join("\n")); +  } + +  files.add(file); +  const fileChain = yield* loadFileChain(validateExtendFile(file), context, files, baseLogger); +  files.delete(file); +  if (!fileChain) return false; +  mergeChain(chain, fileChain); +  return true; +} + +function mergeChain(target, source) { +  target.options.push(...source.options); +  target.plugins.push(...source.plugins); +  target.presets.push(...source.presets); + +  for (const file of source.files) { +    target.files.add(file); +  } + +  return target; +} + +function* mergeChainOpts(target, { +  options, +  plugins, +  presets +}) { +  target.options.push(options); +  target.plugins.push(...(yield* plugins())); +  target.presets.push(...(yield* presets())); +  return target; +} + +function emptyChain() { +  return { +    options: [], +    presets: [], +    plugins: [], +    files: new Set() +  }; +} + +function normalizeOptions(opts) { +  const options = Object.assign({}, opts); +  delete options.extends; +  delete options.env; +  delete options.overrides; +  delete options.plugins; +  delete options.presets; +  delete options.passPerPreset; +  delete options.ignore; +  delete options.only; +  delete options.test; +  delete options.include; +  delete options.exclude; + +  if (Object.prototype.hasOwnProperty.call(options, "sourceMap")) { +    options.sourceMaps = options.sourceMap; +    delete options.sourceMap; +  } + +  return options; +} + +function dedupDescriptors(items) { +  const map = new Map(); +  const descriptors = []; + +  for (const item of items) { +    if (typeof item.value === "function") { +      const fnKey = item.value; +      let nameMap = map.get(fnKey); + +      if (!nameMap) { +        nameMap = new Map(); +        map.set(fnKey, nameMap); +      } + +      let desc = nameMap.get(item.name); + +      if (!desc) { +        desc = { +          value: item +        }; +        descriptors.push(desc); +        if (!item.ownPass) nameMap.set(item.name, desc); +      } else { +        desc.value = item; +      } +    } else { +      descriptors.push({ +        value: item +      }); +    } +  } + +  return descriptors.reduce((acc, desc) => { +    acc.push(desc.value); +    return acc; +  }, []); +} + +function configIsApplicable({ +  options +}, dirname, context) { +  return (options.test === undefined || configFieldIsApplicable(context, options.test, dirname)) && (options.include === undefined || configFieldIsApplicable(context, options.include, dirname)) && (options.exclude === undefined || !configFieldIsApplicable(context, options.exclude, dirname)); +} + +function configFieldIsApplicable(context, test, dirname) { +  const patterns = Array.isArray(test) ? test : [test]; +  return matchesPatterns(context, patterns, dirname); +} + +function ignoreListReplacer(_key, value) { +  if (value instanceof RegExp) { +    return String(value); +  } + +  return value; +} + +function shouldIgnore(context, ignore, only, dirname) { +  if (ignore && matchesPatterns(context, ignore, dirname)) { +    var _context$filename; + +    const message = `No config is applied to "${(_context$filename = context.filename) != null ? _context$filename : "(unknown)"}" because it matches one of \`ignore: ${JSON.stringify(ignore, ignoreListReplacer)}\` from "${dirname}"`; +    debug(message); + +    if (context.showConfig) { +      console.log(message); +    } + +    return true; +  } + +  if (only && !matchesPatterns(context, only, dirname)) { +    var _context$filename2; + +    const message = `No config is applied to "${(_context$filename2 = context.filename) != null ? _context$filename2 : "(unknown)"}" because it fails to match one of \`only: ${JSON.stringify(only, ignoreListReplacer)}\` from "${dirname}"`; +    debug(message); + +    if (context.showConfig) { +      console.log(message); +    } + +    return true; +  } + +  return false; +} + +function matchesPatterns(context, patterns, dirname) { +  return patterns.some(pattern => matchPattern(pattern, dirname, context.filename, context)); +} + +function matchPattern(pattern, dirname, pathToTest, context) { +  if (typeof pattern === "function") { +    return !!pattern(pathToTest, { +      dirname, +      envName: context.envName, +      caller: context.caller +    }); +  } + +  if (typeof pathToTest !== "string") { +    throw new Error(`Configuration contains string/RegExp pattern, but no filename was passed to Babel`); +  } + +  if (typeof pattern === "string") { +    pattern = (0, _patternToRegex.default)(pattern, dirname); +  } + +  return pattern.test(pathToTest); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/config-descriptors.js b/node_modules/@babel/core/lib/config/config-descriptors.js new file mode 100644 index 0000000..2f0a7a5 --- /dev/null +++ b/node_modules/@babel/core/lib/config/config-descriptors.js @@ -0,0 +1,244 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.createCachedDescriptors = createCachedDescriptors; +exports.createDescriptor = createDescriptor; +exports.createUncachedDescriptors = createUncachedDescriptors; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _files = require("./files"); + +var _item = require("./item"); + +var _caching = require("./caching"); + +var _resolveTargets = require("./resolve-targets"); + +function isEqualDescriptor(a, b) { +  return a.name === b.name && a.value === b.value && a.options === b.options && a.dirname === b.dirname && a.alias === b.alias && a.ownPass === b.ownPass && (a.file && a.file.request) === (b.file && b.file.request) && (a.file && a.file.resolved) === (b.file && b.file.resolved); +} + +function* handlerOf(value) { +  return value; +} + +function optionsWithResolvedBrowserslistConfigFile(options, dirname) { +  if (typeof options.browserslistConfigFile === "string") { +    options.browserslistConfigFile = (0, _resolveTargets.resolveBrowserslistConfigFile)(options.browserslistConfigFile, dirname); +  } + +  return options; +} + +function createCachedDescriptors(dirname, options, alias) { +  const { +    plugins, +    presets, +    passPerPreset +  } = options; +  return { +    options: optionsWithResolvedBrowserslistConfigFile(options, dirname), +    plugins: plugins ? () => createCachedPluginDescriptors(plugins, dirname)(alias) : () => handlerOf([]), +    presets: presets ? () => createCachedPresetDescriptors(presets, dirname)(alias)(!!passPerPreset) : () => handlerOf([]) +  }; +} + +function createUncachedDescriptors(dirname, options, alias) { +  let plugins; +  let presets; +  return { +    options: optionsWithResolvedBrowserslistConfigFile(options, dirname), + +    *plugins() { +      if (!plugins) { +        plugins = yield* createPluginDescriptors(options.plugins || [], dirname, alias); +      } + +      return plugins; +    }, + +    *presets() { +      if (!presets) { +        presets = yield* createPresetDescriptors(options.presets || [], dirname, alias, !!options.passPerPreset); +      } + +      return presets; +    } + +  }; +} + +const PRESET_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPresetDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { +  const dirname = cache.using(dir => dir); +  return (0, _caching.makeStrongCacheSync)(alias => (0, _caching.makeStrongCache)(function* (passPerPreset) { +    const descriptors = yield* createPresetDescriptors(items, dirname, alias, passPerPreset); +    return descriptors.map(desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc)); +  })); +}); +const PLUGIN_DESCRIPTOR_CACHE = new WeakMap(); +const createCachedPluginDescriptors = (0, _caching.makeWeakCacheSync)((items, cache) => { +  const dirname = cache.using(dir => dir); +  return (0, _caching.makeStrongCache)(function* (alias) { +    const descriptors = yield* createPluginDescriptors(items, dirname, alias); +    return descriptors.map(desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc)); +  }); +}); +const DEFAULT_OPTIONS = {}; + +function loadCachedDescriptor(cache, desc) { +  const { +    value, +    options = DEFAULT_OPTIONS +  } = desc; +  if (options === false) return desc; +  let cacheByOptions = cache.get(value); + +  if (!cacheByOptions) { +    cacheByOptions = new WeakMap(); +    cache.set(value, cacheByOptions); +  } + +  let possibilities = cacheByOptions.get(options); + +  if (!possibilities) { +    possibilities = []; +    cacheByOptions.set(options, possibilities); +  } + +  if (possibilities.indexOf(desc) === -1) { +    const matches = possibilities.filter(possibility => isEqualDescriptor(possibility, desc)); + +    if (matches.length > 0) { +      return matches[0]; +    } + +    possibilities.push(desc); +  } + +  return desc; +} + +function* createPresetDescriptors(items, dirname, alias, passPerPreset) { +  return yield* createDescriptors("preset", items, dirname, alias, passPerPreset); +} + +function* createPluginDescriptors(items, dirname, alias) { +  return yield* createDescriptors("plugin", items, dirname, alias); +} + +function* createDescriptors(type, items, dirname, alias, ownPass) { +  const descriptors = yield* _gensync().all(items.map((item, index) => createDescriptor(item, dirname, { +    type, +    alias: `${alias}$${index}`, +    ownPass: !!ownPass +  }))); +  assertNoDuplicates(descriptors); +  return descriptors; +} + +function* createDescriptor(pair, dirname, { +  type, +  alias, +  ownPass +}) { +  const desc = (0, _item.getItemDescriptor)(pair); + +  if (desc) { +    return desc; +  } + +  let name; +  let options; +  let value = pair; + +  if (Array.isArray(value)) { +    if (value.length === 3) { +      [value, options, name] = value; +    } else { +      [value, options] = value; +    } +  } + +  let file = undefined; +  let filepath = null; + +  if (typeof value === "string") { +    if (typeof type !== "string") { +      throw new Error("To resolve a string-based item, the type of item must be given"); +    } + +    const resolver = type === "plugin" ? _files.loadPlugin : _files.loadPreset; +    const request = value; +    ({ +      filepath, +      value +    } = yield* resolver(value, dirname)); +    file = { +      request, +      resolved: filepath +    }; +  } + +  if (!value) { +    throw new Error(`Unexpected falsy value: ${String(value)}`); +  } + +  if (typeof value === "object" && value.__esModule) { +    if (value.default) { +      value = value.default; +    } else { +      throw new Error("Must export a default export when using ES6 modules."); +    } +  } + +  if (typeof value !== "object" && typeof value !== "function") { +    throw new Error(`Unsupported format: ${typeof value}. Expected an object or a function.`); +  } + +  if (filepath !== null && typeof value === "object" && value) { +    throw new Error(`Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`); +  } + +  return { +    name, +    alias: filepath || alias, +    value, +    options, +    dirname, +    ownPass, +    file +  }; +} + +function assertNoDuplicates(items) { +  const map = new Map(); + +  for (const item of items) { +    if (typeof item.value !== "function") continue; +    let nameMap = map.get(item.value); + +    if (!nameMap) { +      nameMap = new Set(); +      map.set(item.value, nameMap); +    } + +    if (nameMap.has(item.name)) { +      const conflicts = items.filter(i => i.value === item.value); +      throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they need separate names, e.g.`, ``, `  plugins: [`, `    ['some-plugin', {}],`, `    ['some-plugin', {}, 'some unique name'],`, `  ]`, ``, `Duplicates detected are:`, `${JSON.stringify(conflicts, null, 2)}`].join("\n")); +    } + +    nameMap.add(item.name); +  } +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/configuration.js b/node_modules/@babel/core/lib/config/files/configuration.js new file mode 100644 index 0000000..f6cbf0c --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/configuration.js @@ -0,0 +1,358 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.ROOT_CONFIG_FILENAMES = void 0; +exports.findConfigUpwards = findConfigUpwards; +exports.findRelativeConfig = findRelativeConfig; +exports.findRootConfig = findRootConfig; +exports.loadConfig = loadConfig; +exports.resolveShowConfigPath = resolveShowConfigPath; + +function _debug() { +  const data = require("debug"); + +  _debug = function () { +    return data; +  }; + +  return data; +} + +function _fs() { +  const data = require("fs"); + +  _fs = function () { +    return data; +  }; + +  return data; +} + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +function _json() { +  const data = require("json5"); + +  _json = function () { +    return data; +  }; + +  return data; +} + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _caching = require("../caching"); + +var _configApi = require("../helpers/config-api"); + +var _utils = require("./utils"); + +var _moduleTypes = require("./module-types"); + +var _patternToRegex = require("../pattern-to-regex"); + +var fs = require("../../gensync-utils/fs"); + +function _module() { +  const data = require("module"); + +  _module = function () { +    return data; +  }; + +  return data; +} + +const debug = _debug()("babel:config:loading:files:configuration"); + +const ROOT_CONFIG_FILENAMES = ["babel.config.js", "babel.config.cjs", "babel.config.mjs", "babel.config.json"]; +exports.ROOT_CONFIG_FILENAMES = ROOT_CONFIG_FILENAMES; +const RELATIVE_CONFIG_FILENAMES = [".babelrc", ".babelrc.js", ".babelrc.cjs", ".babelrc.mjs", ".babelrc.json"]; +const BABELIGNORE_FILENAME = ".babelignore"; + +function findConfigUpwards(rootDir) { +  let dirname = rootDir; + +  for (;;) { +    for (const filename of ROOT_CONFIG_FILENAMES) { +      if (_fs().existsSync(_path().join(dirname, filename))) { +        return dirname; +      } +    } + +    const nextDir = _path().dirname(dirname); + +    if (dirname === nextDir) break; +    dirname = nextDir; +  } + +  return null; +} + +function* findRelativeConfig(packageData, envName, caller) { +  let config = null; +  let ignore = null; + +  const dirname = _path().dirname(packageData.filepath); + +  for (const loc of packageData.directories) { +    if (!config) { +      var _packageData$pkg; + +      config = yield* loadOneConfig(RELATIVE_CONFIG_FILENAMES, loc, envName, caller, ((_packageData$pkg = packageData.pkg) == null ? void 0 : _packageData$pkg.dirname) === loc ? packageToBabelConfig(packageData.pkg) : null); +    } + +    if (!ignore) { +      const ignoreLoc = _path().join(loc, BABELIGNORE_FILENAME); + +      ignore = yield* readIgnoreConfig(ignoreLoc); + +      if (ignore) { +        debug("Found ignore %o from %o.", ignore.filepath, dirname); +      } +    } +  } + +  return { +    config, +    ignore +  }; +} + +function findRootConfig(dirname, envName, caller) { +  return loadOneConfig(ROOT_CONFIG_FILENAMES, dirname, envName, caller); +} + +function* loadOneConfig(names, dirname, envName, caller, previousConfig = null) { +  const configs = yield* _gensync().all(names.map(filename => readConfig(_path().join(dirname, filename), envName, caller))); +  const config = configs.reduce((previousConfig, config) => { +    if (config && previousConfig) { +      throw new Error(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().basename(previousConfig.filepath)}\n` + ` - ${config.filepath}\n` + `from ${dirname}`); +    } + +    return config || previousConfig; +  }, previousConfig); + +  if (config) { +    debug("Found configuration %o from %o.", config.filepath, dirname); +  } + +  return config; +} + +function* loadConfig(name, dirname, envName, caller) { +  const filepath = (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { +    paths: [b] +  }, M = require("module")) => { +    let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + +    if (f) return f; +    f = new Error(`Cannot resolve module '${r}'`); +    f.code = "MODULE_NOT_FOUND"; +    throw f; +  })(name, { +    paths: [dirname] +  }); +  const conf = yield* readConfig(filepath, envName, caller); + +  if (!conf) { +    throw new Error(`Config file ${filepath} contains no configuration data`); +  } + +  debug("Loaded config %o from %o.", name, dirname); +  return conf; +} + +function readConfig(filepath, envName, caller) { +  const ext = _path().extname(filepath); + +  return ext === ".js" || ext === ".cjs" || ext === ".mjs" ? readConfigJS(filepath, { +    envName, +    caller +  }) : readConfigJSON5(filepath); +} + +const LOADING_CONFIGS = new Set(); +const readConfigJS = (0, _caching.makeStrongCache)(function* readConfigJS(filepath, cache) { +  if (!_fs().existsSync(filepath)) { +    cache.never(); +    return null; +  } + +  if (LOADING_CONFIGS.has(filepath)) { +    cache.never(); +    debug("Auto-ignoring usage of config %o.", filepath); +    return { +      filepath, +      dirname: _path().dirname(filepath), +      options: {} +    }; +  } + +  let options; + +  try { +    LOADING_CONFIGS.add(filepath); +    options = yield* (0, _moduleTypes.default)(filepath, "You appear to be using a native ECMAScript module configuration " + "file, which is only supported when running Babel asynchronously."); +  } catch (err) { +    err.message = `${filepath}: Error while loading config - ${err.message}`; +    throw err; +  } finally { +    LOADING_CONFIGS.delete(filepath); +  } + +  let assertCache = false; + +  if (typeof options === "function") { +    yield* []; +    options = options((0, _configApi.makeConfigAPI)(cache)); +    assertCache = true; +  } + +  if (!options || typeof options !== "object" || Array.isArray(options)) { +    throw new Error(`${filepath}: Configuration should be an exported JavaScript object.`); +  } + +  if (typeof options.then === "function") { +    throw new Error(`You appear to be using an async configuration, ` + `which your current version of Babel does not support. ` + `We may add support for this in the future, ` + `but if you're on the most recent version of @babel/core and still ` + `seeing this error, then you'll need to synchronously return your config.`); +  } + +  if (assertCache && !cache.configured()) throwConfigError(); +  return { +    filepath, +    dirname: _path().dirname(filepath), +    options +  }; +}); +const packageToBabelConfig = (0, _caching.makeWeakCacheSync)(file => { +  const babel = file.options["babel"]; +  if (typeof babel === "undefined") return null; + +  if (typeof babel !== "object" || Array.isArray(babel) || babel === null) { +    throw new Error(`${file.filepath}: .babel property must be an object`); +  } + +  return { +    filepath: file.filepath, +    dirname: file.dirname, +    options: babel +  }; +}); +const readConfigJSON5 = (0, _utils.makeStaticFileCache)((filepath, content) => { +  let options; + +  try { +    options = _json().parse(content); +  } catch (err) { +    err.message = `${filepath}: Error while parsing config - ${err.message}`; +    throw err; +  } + +  if (!options) throw new Error(`${filepath}: No config detected`); + +  if (typeof options !== "object") { +    throw new Error(`${filepath}: Config returned typeof ${typeof options}`); +  } + +  if (Array.isArray(options)) { +    throw new Error(`${filepath}: Expected config object but found array`); +  } + +  delete options["$schema"]; +  return { +    filepath, +    dirname: _path().dirname(filepath), +    options +  }; +}); +const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => { +  const ignoreDir = _path().dirname(filepath); + +  const ignorePatterns = content.split("\n").map(line => line.replace(/#(.*?)$/, "").trim()).filter(line => !!line); + +  for (const pattern of ignorePatterns) { +    if (pattern[0] === "!") { +      throw new Error(`Negation of file paths is not supported.`); +    } +  } + +  return { +    filepath, +    dirname: _path().dirname(filepath), +    ignore: ignorePatterns.map(pattern => (0, _patternToRegex.default)(pattern, ignoreDir)) +  }; +}); + +function* resolveShowConfigPath(dirname) { +  const targetPath = process.env.BABEL_SHOW_CONFIG_FOR; + +  if (targetPath != null) { +    const absolutePath = _path().resolve(dirname, targetPath); + +    const stats = yield* fs.stat(absolutePath); + +    if (!stats.isFile()) { +      throw new Error(`${absolutePath}: BABEL_SHOW_CONFIG_FOR must refer to a regular file, directories are not supported.`); +    } + +    return absolutePath; +  } + +  return null; +} + +function throwConfigError() { +  throw new Error(`\ +Caching was left unconfigured. Babel's plugins, presets, and .babelrc.js files can be configured +for various types of caching, using the first param of their handler functions: + +module.exports = function(api) { +  // The API exposes the following: + +  // Cache the returned value forever and don't call this function again. +  api.cache(true); + +  // Don't cache at all. Not recommended because it will be very slow. +  api.cache(false); + +  // Cached based on the value of some function. If this function returns a value different from +  // a previously-encountered value, the plugins will re-evaluate. +  var env = api.cache(() => process.env.NODE_ENV); + +  // If testing for a specific env, we recommend specifics to avoid instantiating a plugin for +  // any possible NODE_ENV value that might come up during plugin execution. +  var isProd = api.cache(() => process.env.NODE_ENV === "production"); + +  // .cache(fn) will perform a linear search though instances to find the matching plugin based +  // based on previous instantiated plugins. If you want to recreate the plugin and discard the +  // previous instance whenever something changes, you may use: +  var isProd = api.cache.invalidate(() => process.env.NODE_ENV === "production"); + +  // Note, we also expose the following more-verbose versions of the above examples: +  api.cache.forever(); // api.cache(true) +  api.cache.never();   // api.cache(false) +  api.cache.using(fn); // api.cache(fn) + +  // Return the value that will be cached. +  return { }; +};`); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/import-meta-resolve.js b/node_modules/@babel/core/lib/config/files/import-meta-resolve.js new file mode 100644 index 0000000..6e1c905 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/import-meta-resolve.js @@ -0,0 +1,41 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = resolve; + +function _module() { +  const data = require("module"); + +  _module = function () { +    return data; +  }; + +  return data; +} + +var _importMetaResolve = require("../../vendor/import-meta-resolve"); + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +let import_; + +try { +  import_ = require("./import").default; +} catch (_unused) {} + +const importMetaResolveP = import_ && process.execArgv.includes("--experimental-import-meta-resolve") ? import_("data:text/javascript,export default import.meta.resolve").then(m => m.default || _importMetaResolve.resolve, () => _importMetaResolve.resolve) : Promise.resolve(_importMetaResolve.resolve); + +function resolve(_x, _x2) { +  return _resolve.apply(this, arguments); +} + +function _resolve() { +  _resolve = _asyncToGenerator(function* (specifier, parent) { +    return (yield importMetaResolveP)(specifier, parent); +  }); +  return _resolve.apply(this, arguments); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/import.js b/node_modules/@babel/core/lib/config/files/import.js new file mode 100644 index 0000000..c0acc2b --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/import.js @@ -0,0 +1,10 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = import_; + +function import_(filepath) { +  return import(filepath); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/index-browser.js b/node_modules/@babel/core/lib/config/files/index-browser.js new file mode 100644 index 0000000..c73168b --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/index-browser.js @@ -0,0 +1,67 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.ROOT_CONFIG_FILENAMES = void 0; +exports.findConfigUpwards = findConfigUpwards; +exports.findPackageData = findPackageData; +exports.findRelativeConfig = findRelativeConfig; +exports.findRootConfig = findRootConfig; +exports.loadConfig = loadConfig; +exports.loadPlugin = loadPlugin; +exports.loadPreset = loadPreset; +exports.resolvePlugin = resolvePlugin; +exports.resolvePreset = resolvePreset; +exports.resolveShowConfigPath = resolveShowConfigPath; + +function findConfigUpwards(rootDir) { +  return null; +} + +function* findPackageData(filepath) { +  return { +    filepath, +    directories: [], +    pkg: null, +    isPackage: false +  }; +} + +function* findRelativeConfig(pkgData, envName, caller) { +  return { +    config: null, +    ignore: null +  }; +} + +function* findRootConfig(dirname, envName, caller) { +  return null; +} + +function* loadConfig(name, dirname, envName, caller) { +  throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); +} + +function* resolveShowConfigPath(dirname) { +  return null; +} + +const ROOT_CONFIG_FILENAMES = []; +exports.ROOT_CONFIG_FILENAMES = ROOT_CONFIG_FILENAMES; + +function resolvePlugin(name, dirname) { +  return null; +} + +function resolvePreset(name, dirname) { +  return null; +} + +function loadPlugin(name, dirname) { +  throw new Error(`Cannot load plugin ${name} relative to ${dirname} in a browser`); +} + +function loadPreset(name, dirname) { +  throw new Error(`Cannot load preset ${name} relative to ${dirname} in a browser`); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/index.js b/node_modules/@babel/core/lib/config/files/index.js new file mode 100644 index 0000000..075410c --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/index.js @@ -0,0 +1,86 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +Object.defineProperty(exports, "ROOT_CONFIG_FILENAMES", { +  enumerable: true, +  get: function () { +    return _configuration.ROOT_CONFIG_FILENAMES; +  } +}); +Object.defineProperty(exports, "findConfigUpwards", { +  enumerable: true, +  get: function () { +    return _configuration.findConfigUpwards; +  } +}); +Object.defineProperty(exports, "findPackageData", { +  enumerable: true, +  get: function () { +    return _package.findPackageData; +  } +}); +Object.defineProperty(exports, "findRelativeConfig", { +  enumerable: true, +  get: function () { +    return _configuration.findRelativeConfig; +  } +}); +Object.defineProperty(exports, "findRootConfig", { +  enumerable: true, +  get: function () { +    return _configuration.findRootConfig; +  } +}); +Object.defineProperty(exports, "loadConfig", { +  enumerable: true, +  get: function () { +    return _configuration.loadConfig; +  } +}); +Object.defineProperty(exports, "loadPlugin", { +  enumerable: true, +  get: function () { +    return plugins.loadPlugin; +  } +}); +Object.defineProperty(exports, "loadPreset", { +  enumerable: true, +  get: function () { +    return plugins.loadPreset; +  } +}); +exports.resolvePreset = exports.resolvePlugin = void 0; +Object.defineProperty(exports, "resolveShowConfigPath", { +  enumerable: true, +  get: function () { +    return _configuration.resolveShowConfigPath; +  } +}); + +var _package = require("./package"); + +var _configuration = require("./configuration"); + +var plugins = require("./plugins"); + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +({}); + +const resolvePlugin = _gensync()(plugins.resolvePlugin).sync; + +exports.resolvePlugin = resolvePlugin; + +const resolvePreset = _gensync()(plugins.resolvePreset).sync; + +exports.resolvePreset = resolvePreset;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/module-types.js b/node_modules/@babel/core/lib/config/files/module-types.js new file mode 100644 index 0000000..35d8220 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/module-types.js @@ -0,0 +1,108 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = loadCjsOrMjsDefault; +exports.supportsESM = void 0; + +var _async = require("../../gensync-utils/async"); + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +function _url() { +  const data = require("url"); + +  _url = function () { +    return data; +  }; + +  return data; +} + +function _module() { +  const data = require("module"); + +  _module = function () { +    return data; +  }; + +  return data; +} + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +let import_; + +try { +  import_ = require("./import").default; +} catch (_unused) {} + +const supportsESM = !!import_; +exports.supportsESM = supportsESM; + +function* loadCjsOrMjsDefault(filepath, asyncError, fallbackToTranspiledModule = false) { +  switch (guessJSModuleType(filepath)) { +    case "cjs": +      return loadCjsDefault(filepath, fallbackToTranspiledModule); + +    case "unknown": +      try { +        return loadCjsDefault(filepath, fallbackToTranspiledModule); +      } catch (e) { +        if (e.code !== "ERR_REQUIRE_ESM") throw e; +      } + +    case "mjs": +      if (yield* (0, _async.isAsync)()) { +        return yield* (0, _async.waitFor)(loadMjsDefault(filepath)); +      } + +      throw new Error(asyncError); +  } +} + +function guessJSModuleType(filename) { +  switch (_path().extname(filename)) { +    case ".cjs": +      return "cjs"; + +    case ".mjs": +      return "mjs"; + +    default: +      return "unknown"; +  } +} + +function loadCjsDefault(filepath, fallbackToTranspiledModule) { +  const module = require(filepath); + +  return module != null && module.__esModule ? module.default || (fallbackToTranspiledModule ? module : undefined) : module; +} + +function loadMjsDefault(_x) { +  return _loadMjsDefault.apply(this, arguments); +} + +function _loadMjsDefault() { +  _loadMjsDefault = _asyncToGenerator(function* (filepath) { +    if (!import_) { +      throw new Error("Internal error: Native ECMAScript modules aren't supported" + " by this platform.\n"); +    } + +    const module = yield import_((0, _url().pathToFileURL)(filepath)); +    return module.default; +  }); +  return _loadMjsDefault.apply(this, arguments); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/package.js b/node_modules/@babel/core/lib/config/files/package.js new file mode 100644 index 0000000..0e08bfe --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/package.js @@ -0,0 +1,76 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.findPackageData = findPackageData; + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +var _utils = require("./utils"); + +const PACKAGE_FILENAME = "package.json"; + +function* findPackageData(filepath) { +  let pkg = null; +  const directories = []; +  let isPackage = true; + +  let dirname = _path().dirname(filepath); + +  while (!pkg && _path().basename(dirname) !== "node_modules") { +    directories.push(dirname); +    pkg = yield* readConfigPackage(_path().join(dirname, PACKAGE_FILENAME)); + +    const nextLoc = _path().dirname(dirname); + +    if (dirname === nextLoc) { +      isPackage = false; +      break; +    } + +    dirname = nextLoc; +  } + +  return { +    filepath, +    directories, +    pkg, +    isPackage +  }; +} + +const readConfigPackage = (0, _utils.makeStaticFileCache)((filepath, content) => { +  let options; + +  try { +    options = JSON.parse(content); +  } catch (err) { +    err.message = `${filepath}: Error while parsing JSON - ${err.message}`; +    throw err; +  } + +  if (!options) throw new Error(`${filepath}: No config detected`); + +  if (typeof options !== "object") { +    throw new Error(`${filepath}: Config returned typeof ${typeof options}`); +  } + +  if (Array.isArray(options)) { +    throw new Error(`${filepath}: Expected config object but found array`); +  } + +  return { +    filepath, +    dirname: _path().dirname(filepath), +    options +  }; +});
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/plugins.js b/node_modules/@babel/core/lib/config/files/plugins.js new file mode 100644 index 0000000..8af6e49 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/plugins.js @@ -0,0 +1,273 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.loadPlugin = loadPlugin; +exports.loadPreset = loadPreset; +exports.resolvePlugin = resolvePlugin; +exports.resolvePreset = resolvePreset; + +function _debug() { +  const data = require("debug"); + +  _debug = function () { +    return data; +  }; + +  return data; +} + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _async = require("../../gensync-utils/async"); + +var _moduleTypes = require("./module-types"); + +function _url() { +  const data = require("url"); + +  _url = function () { +    return data; +  }; + +  return data; +} + +var _importMetaResolve = require("./import-meta-resolve"); + +function _module() { +  const data = require("module"); + +  _module = function () { +    return data; +  }; + +  return data; +} + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +const debug = _debug()("babel:config:loading:files:plugins"); + +const EXACT_RE = /^module:/; +const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/; +const BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-preset-)/; +const BABEL_PLUGIN_ORG_RE = /^(@babel\/)(?!plugin-|[^/]+\/)/; +const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/; +const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/; +const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/; +const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/; + +function* resolvePlugin(name, dirname) { +  return yield* resolveStandardizedName("plugin", name, dirname); +} + +function* resolvePreset(name, dirname) { +  return yield* resolveStandardizedName("preset", name, dirname); +} + +function* loadPlugin(name, dirname) { +  const filepath = yield* resolvePlugin(name, dirname); +  const value = yield* requireModule("plugin", filepath); +  debug("Loaded plugin %o from %o.", name, dirname); +  return { +    filepath, +    value +  }; +} + +function* loadPreset(name, dirname) { +  const filepath = yield* resolvePreset(name, dirname); +  const value = yield* requireModule("preset", filepath); +  debug("Loaded preset %o from %o.", name, dirname); +  return { +    filepath, +    value +  }; +} + +function standardizeName(type, name) { +  if (_path().isAbsolute(name)) return name; +  const isPreset = type === "preset"; +  return name.replace(isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE, `babel-${type}-`).replace(isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE, `$1${type}-`).replace(isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE, `$1babel-${type}-`).replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`).replace(EXACT_RE, ""); +} + +function* resolveAlternativesHelper(type, name) { +  const standardizedName = standardizeName(type, name); +  const { +    error, +    value +  } = yield standardizedName; +  if (!error) return value; +  if (error.code !== "MODULE_NOT_FOUND") throw error; + +  if (standardizedName !== name && !(yield name).error) { +    error.message += `\n- If you want to resolve "${name}", use "module:${name}"`; +  } + +  if (!(yield standardizeName(type, "@babel/" + name)).error) { +    error.message += `\n- Did you mean "@babel/${name}"?`; +  } + +  const oppositeType = type === "preset" ? "plugin" : "preset"; + +  if (!(yield standardizeName(oppositeType, name)).error) { +    error.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`; +  } + +  throw error; +} + +function tryRequireResolve(id, { +  paths: [dirname] +}) { +  try { +    return { +      error: null, +      value: (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { +        paths: [b] +      }, M = require("module")) => { +        let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); + +        if (f) return f; +        f = new Error(`Cannot resolve module '${r}'`); +        f.code = "MODULE_NOT_FOUND"; +        throw f; +      })(id, { +        paths: [dirname] +      }) +    }; +  } catch (error) { +    return { +      error, +      value: null +    }; +  } +} + +function tryImportMetaResolve(_x, _x2) { +  return _tryImportMetaResolve.apply(this, arguments); +} + +function _tryImportMetaResolve() { +  _tryImportMetaResolve = _asyncToGenerator(function* (id, options) { +    try { +      return { +        error: null, +        value: yield (0, _importMetaResolve.default)(id, options) +      }; +    } catch (error) { +      return { +        error, +        value: null +      }; +    } +  }); +  return _tryImportMetaResolve.apply(this, arguments); +} + +function resolveStandardizedNameForRequrie(type, name, dirname) { +  const it = resolveAlternativesHelper(type, name); +  let res = it.next(); + +  while (!res.done) { +    res = it.next(tryRequireResolve(res.value, { +      paths: [dirname] +    })); +  } + +  return res.value; +} + +function resolveStandardizedNameForImport(_x3, _x4, _x5) { +  return _resolveStandardizedNameForImport.apply(this, arguments); +} + +function _resolveStandardizedNameForImport() { +  _resolveStandardizedNameForImport = _asyncToGenerator(function* (type, name, dirname) { +    const parentUrl = (0, _url().pathToFileURL)(_path().join(dirname, "./babel-virtual-resolve-base.js")).href; +    const it = resolveAlternativesHelper(type, name); +    let res = it.next(); + +    while (!res.done) { +      res = it.next(yield tryImportMetaResolve(res.value, parentUrl)); +    } + +    return (0, _url().fileURLToPath)(res.value); +  }); +  return _resolveStandardizedNameForImport.apply(this, arguments); +} + +const resolveStandardizedName = _gensync()({ +  sync(type, name, dirname = process.cwd()) { +    return resolveStandardizedNameForRequrie(type, name, dirname); +  }, + +  async(type, name, dirname = process.cwd()) { +    return _asyncToGenerator(function* () { +      if (!_moduleTypes.supportsESM) { +        return resolveStandardizedNameForRequrie(type, name, dirname); +      } + +      try { +        return yield resolveStandardizedNameForImport(type, name, dirname); +      } catch (e) { +        try { +          return resolveStandardizedNameForRequrie(type, name, dirname); +        } catch (e2) { +          if (e.type === "MODULE_NOT_FOUND") throw e; +          if (e2.type === "MODULE_NOT_FOUND") throw e2; +          throw e; +        } +      } +    })(); +  } + +}); + +{ +  var LOADING_MODULES = new Set(); +} + +function* requireModule(type, name) { +  { +    if (!(yield* (0, _async.isAsync)()) && LOADING_MODULES.has(name)) { +      throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.'); +    } +  } + +  try { +    { +      LOADING_MODULES.add(name); +    } +    return yield* (0, _moduleTypes.default)(name, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously.", true); +  } catch (err) { +    err.message = `[BABEL]: ${err.message} (While processing: ${name})`; +    throw err; +  } finally { +    { +      LOADING_MODULES.delete(name); +    } +  } +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/files/types.js b/node_modules/@babel/core/lib/config/files/types.js new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/types.js diff --git a/node_modules/@babel/core/lib/config/files/utils.js b/node_modules/@babel/core/lib/config/files/utils.js new file mode 100644 index 0000000..6da68c0 --- /dev/null +++ b/node_modules/@babel/core/lib/config/files/utils.js @@ -0,0 +1,44 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.makeStaticFileCache = makeStaticFileCache; + +var _caching = require("../caching"); + +var fs = require("../../gensync-utils/fs"); + +function _fs2() { +  const data = require("fs"); + +  _fs2 = function () { +    return data; +  }; + +  return data; +} + +function makeStaticFileCache(fn) { +  return (0, _caching.makeStrongCache)(function* (filepath, cache) { +    const cached = cache.invalidate(() => fileMtime(filepath)); + +    if (cached === null) { +      return null; +    } + +    return fn(filepath, yield* fs.readFile(filepath, "utf8")); +  }); +} + +function fileMtime(filepath) { +  if (!_fs2().existsSync(filepath)) return null; + +  try { +    return +_fs2().statSync(filepath).mtime; +  } catch (e) { +    if (e.code !== "ENOENT" && e.code !== "ENOTDIR") throw e; +  } + +  return null; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/full.js b/node_modules/@babel/core/lib/config/full.js new file mode 100644 index 0000000..e1df648 --- /dev/null +++ b/node_modules/@babel/core/lib/config/full.js @@ -0,0 +1,378 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = void 0; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _async = require("../gensync-utils/async"); + +var _util = require("./util"); + +var context = require("../index"); + +var _plugin = require("./plugin"); + +var _item = require("./item"); + +var _configChain = require("./config-chain"); + +var _deepArray = require("./helpers/deep-array"); + +function _traverse() { +  const data = require("@babel/traverse"); + +  _traverse = function () { +    return data; +  }; + +  return data; +} + +var _caching = require("./caching"); + +var _options = require("./validation/options"); + +var _plugins = require("./validation/plugins"); + +var _configApi = require("./helpers/config-api"); + +var _partial = require("./partial"); + +var Context = require("./cache-contexts"); + +var _default = _gensync()(function* loadFullConfig(inputOpts) { +  var _opts$assumptions; + +  const result = yield* (0, _partial.default)(inputOpts); + +  if (!result) { +    return null; +  } + +  const { +    options, +    context, +    fileHandling +  } = result; + +  if (fileHandling === "ignored") { +    return null; +  } + +  const optionDefaults = {}; +  const { +    plugins, +    presets +  } = options; + +  if (!plugins || !presets) { +    throw new Error("Assertion failure - plugins and presets exist"); +  } + +  const presetContext = Object.assign({}, context, { +    targets: options.targets +  }); + +  const toDescriptor = item => { +    const desc = (0, _item.getItemDescriptor)(item); + +    if (!desc) { +      throw new Error("Assertion failure - must be config item"); +    } + +    return desc; +  }; + +  const presetsDescriptors = presets.map(toDescriptor); +  const initialPluginsDescriptors = plugins.map(toDescriptor); +  const pluginDescriptorsByPass = [[]]; +  const passes = []; +  const externalDependencies = []; +  const ignored = yield* enhanceError(context, function* recursePresetDescriptors(rawPresets, pluginDescriptorsPass) { +    const presets = []; + +    for (let i = 0; i < rawPresets.length; i++) { +      const descriptor = rawPresets[i]; + +      if (descriptor.options !== false) { +        try { +          var preset = yield* loadPresetDescriptor(descriptor, presetContext); +        } catch (e) { +          if (e.code === "BABEL_UNKNOWN_OPTION") { +            (0, _options.checkNoUnwrappedItemOptionPairs)(rawPresets, i, "preset", e); +          } + +          throw e; +        } + +        externalDependencies.push(preset.externalDependencies); + +        if (descriptor.ownPass) { +          presets.push({ +            preset: preset.chain, +            pass: [] +          }); +        } else { +          presets.unshift({ +            preset: preset.chain, +            pass: pluginDescriptorsPass +          }); +        } +      } +    } + +    if (presets.length > 0) { +      pluginDescriptorsByPass.splice(1, 0, ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass)); + +      for (const { +        preset, +        pass +      } of presets) { +        if (!preset) return true; +        pass.push(...preset.plugins); +        const ignored = yield* recursePresetDescriptors(preset.presets, pass); +        if (ignored) return true; +        preset.options.forEach(opts => { +          (0, _util.mergeOptions)(optionDefaults, opts); +        }); +      } +    } +  })(presetsDescriptors, pluginDescriptorsByPass[0]); +  if (ignored) return null; +  const opts = optionDefaults; +  (0, _util.mergeOptions)(opts, options); +  const pluginContext = Object.assign({}, presetContext, { +    assumptions: (_opts$assumptions = opts.assumptions) != null ? _opts$assumptions : {} +  }); +  yield* enhanceError(context, function* loadPluginDescriptors() { +    pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors); + +    for (const descs of pluginDescriptorsByPass) { +      const pass = []; +      passes.push(pass); + +      for (let i = 0; i < descs.length; i++) { +        const descriptor = descs[i]; + +        if (descriptor.options !== false) { +          try { +            var plugin = yield* loadPluginDescriptor(descriptor, pluginContext); +          } catch (e) { +            if (e.code === "BABEL_UNKNOWN_PLUGIN_PROPERTY") { +              (0, _options.checkNoUnwrappedItemOptionPairs)(descs, i, "plugin", e); +            } + +            throw e; +          } + +          pass.push(plugin); +          externalDependencies.push(plugin.externalDependencies); +        } +      } +    } +  })(); +  opts.plugins = passes[0]; +  opts.presets = passes.slice(1).filter(plugins => plugins.length > 0).map(plugins => ({ +    plugins +  })); +  opts.passPerPreset = opts.presets.length > 0; +  return { +    options: opts, +    passes: passes, +    externalDependencies: (0, _deepArray.finalize)(externalDependencies) +  }; +}); + +exports.default = _default; + +function enhanceError(context, fn) { +  return function* (arg1, arg2) { +    try { +      return yield* fn(arg1, arg2); +    } catch (e) { +      if (!/^\[BABEL\]/.test(e.message)) { +        e.message = `[BABEL] ${context.filename || "unknown"}: ${e.message}`; +      } + +      throw e; +    } +  }; +} + +const makeDescriptorLoader = apiFactory => (0, _caching.makeWeakCache)(function* ({ +  value, +  options, +  dirname, +  alias +}, cache) { +  if (options === false) throw new Error("Assertion failure"); +  options = options || {}; +  const externalDependencies = []; +  let item = value; + +  if (typeof value === "function") { +    const factory = (0, _async.maybeAsync)(value, `You appear to be using an async plugin/preset, but Babel has been called synchronously`); +    const api = Object.assign({}, context, apiFactory(cache, externalDependencies)); + +    try { +      item = yield* factory(api, options, dirname); +    } catch (e) { +      if (alias) { +        e.message += ` (While processing: ${JSON.stringify(alias)})`; +      } + +      throw e; +    } +  } + +  if (!item || typeof item !== "object") { +    throw new Error("Plugin/Preset did not return an object."); +  } + +  if ((0, _async.isThenable)(item)) { +    yield* []; +    throw new Error(`You appear to be using a promise as a plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version. ` + `As an alternative, you can prefix the promise with "await". ` + `(While processing: ${JSON.stringify(alias)})`); +  } + +  if (externalDependencies.length > 0 && (!cache.configured() || cache.mode() === "forever")) { +    let error = `A plugin/preset has external untracked dependencies ` + `(${externalDependencies[0]}), but the cache `; + +    if (!cache.configured()) { +      error += `has not been configured to be invalidated when the external dependencies change. `; +    } else { +      error += ` has been configured to never be invalidated. `; +    } + +    error += `Plugins/presets should configure their cache to be invalidated when the external ` + `dependencies change, for example using \`api.cache.invalidate(() => ` + `statSync(filepath).mtimeMs)\` or \`api.cache.never()\`\n` + `(While processing: ${JSON.stringify(alias)})`; +    throw new Error(error); +  } + +  return { +    value: item, +    options, +    dirname, +    alias, +    externalDependencies: (0, _deepArray.finalize)(externalDependencies) +  }; +}); + +const pluginDescriptorLoader = makeDescriptorLoader(_configApi.makePluginAPI); +const presetDescriptorLoader = makeDescriptorLoader(_configApi.makePresetAPI); + +function* loadPluginDescriptor(descriptor, context) { +  if (descriptor.value instanceof _plugin.default) { +    if (descriptor.options) { +      throw new Error("Passed options to an existing Plugin instance will not work."); +    } + +    return descriptor.value; +  } + +  return yield* instantiatePlugin(yield* pluginDescriptorLoader(descriptor, context), context); +} + +const instantiatePlugin = (0, _caching.makeWeakCache)(function* ({ +  value, +  options, +  dirname, +  alias, +  externalDependencies +}, cache) { +  const pluginObj = (0, _plugins.validatePluginObject)(value); +  const plugin = Object.assign({}, pluginObj); + +  if (plugin.visitor) { +    plugin.visitor = _traverse().default.explode(Object.assign({}, plugin.visitor)); +  } + +  if (plugin.inherits) { +    const inheritsDescriptor = { +      name: undefined, +      alias: `${alias}$inherits`, +      value: plugin.inherits, +      options, +      dirname +    }; +    const inherits = yield* (0, _async.forwardAsync)(loadPluginDescriptor, run => { +      return cache.invalidate(data => run(inheritsDescriptor, data)); +    }); +    plugin.pre = chain(inherits.pre, plugin.pre); +    plugin.post = chain(inherits.post, plugin.post); +    plugin.manipulateOptions = chain(inherits.manipulateOptions, plugin.manipulateOptions); +    plugin.visitor = _traverse().default.visitors.merge([inherits.visitor || {}, plugin.visitor || {}]); + +    if (inherits.externalDependencies.length > 0) { +      if (externalDependencies.length === 0) { +        externalDependencies = inherits.externalDependencies; +      } else { +        externalDependencies = (0, _deepArray.finalize)([externalDependencies, inherits.externalDependencies]); +      } +    } +  } + +  return new _plugin.default(plugin, options, alias, externalDependencies); +}); + +const validateIfOptionNeedsFilename = (options, descriptor) => { +  if (options.test || options.include || options.exclude) { +    const formattedPresetName = descriptor.name ? `"${descriptor.name}"` : "/* your preset */"; +    throw new Error([`Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`, `\`\`\``, `babel.transform(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`, `\`\`\``, `See https://babeljs.io/docs/en/options#filename for more information.`].join("\n")); +  } +}; + +const validatePreset = (preset, context, descriptor) => { +  if (!context.filename) { +    const { +      options +    } = preset; +    validateIfOptionNeedsFilename(options, descriptor); + +    if (options.overrides) { +      options.overrides.forEach(overrideOptions => validateIfOptionNeedsFilename(overrideOptions, descriptor)); +    } +  } +}; + +function* loadPresetDescriptor(descriptor, context) { +  const preset = instantiatePreset(yield* presetDescriptorLoader(descriptor, context)); +  validatePreset(preset, context, descriptor); +  return { +    chain: yield* (0, _configChain.buildPresetChain)(preset, context), +    externalDependencies: preset.externalDependencies +  }; +} + +const instantiatePreset = (0, _caching.makeWeakCacheSync)(({ +  value, +  dirname, +  alias, +  externalDependencies +}) => { +  return { +    options: (0, _options.validate)("preset", value), +    alias, +    dirname, +    externalDependencies +  }; +}); + +function chain(a, b) { +  const fns = [a, b].filter(Boolean); +  if (fns.length <= 1) return fns[0]; +  return function (...args) { +    for (const fn of fns) { +      fn.apply(this, args); +    } +  }; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/helpers/config-api.js b/node_modules/@babel/core/lib/config/helpers/config-api.js new file mode 100644 index 0000000..f8dedbc --- /dev/null +++ b/node_modules/@babel/core/lib/config/helpers/config-api.js @@ -0,0 +1,108 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.makeConfigAPI = makeConfigAPI; +exports.makePluginAPI = makePluginAPI; +exports.makePresetAPI = makePresetAPI; + +function _semver() { +  const data = require("semver"); + +  _semver = function () { +    return data; +  }; + +  return data; +} + +var _ = require("../../"); + +var _caching = require("../caching"); + +var Context = require("../cache-contexts"); + +function makeConfigAPI(cache) { +  const env = value => cache.using(data => { +    if (typeof value === "undefined") return data.envName; + +    if (typeof value === "function") { +      return (0, _caching.assertSimpleType)(value(data.envName)); +    } + +    if (!Array.isArray(value)) value = [value]; +    return value.some(entry => { +      if (typeof entry !== "string") { +        throw new Error("Unexpected non-string value"); +      } + +      return entry === data.envName; +    }); +  }); + +  const caller = cb => cache.using(data => (0, _caching.assertSimpleType)(cb(data.caller))); + +  return { +    version: _.version, +    cache: cache.simple(), +    env, +    async: () => false, +    caller, +    assertVersion +  }; +} + +function makePresetAPI(cache, externalDependencies) { +  const targets = () => JSON.parse(cache.using(data => JSON.stringify(data.targets))); + +  const addExternalDependency = ref => { +    externalDependencies.push(ref); +  }; + +  return Object.assign({}, makeConfigAPI(cache), { +    targets, +    addExternalDependency +  }); +} + +function makePluginAPI(cache, externalDependencies) { +  const assumption = name => cache.using(data => data.assumptions[name]); + +  return Object.assign({}, makePresetAPI(cache, externalDependencies), { +    assumption +  }); +} + +function assertVersion(range) { +  if (typeof range === "number") { +    if (!Number.isInteger(range)) { +      throw new Error("Expected string or integer value."); +    } + +    range = `^${range}.0.0-0`; +  } + +  if (typeof range !== "string") { +    throw new Error("Expected string or integer value."); +  } + +  if (_semver().satisfies(_.version, range)) return; +  const limit = Error.stackTraceLimit; + +  if (typeof limit === "number" && limit < 25) { +    Error.stackTraceLimit = 25; +  } + +  const err = new Error(`Requires Babel "${range}", but was loaded with "${_.version}". ` + `If you are sure you have a compatible version of @babel/core, ` + `it is likely that something in your build process is loading the ` + `wrong version. Inspect the stack trace of this error to look for ` + `the first entry that doesn't mention "@babel/core" or "babel-core" ` + `to see what is calling Babel.`); + +  if (typeof limit === "number") { +    Error.stackTraceLimit = limit; +  } + +  throw Object.assign(err, { +    code: "BABEL_VERSION_UNSUPPORTED", +    version: _.version, +    range +  }); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/helpers/deep-array.js b/node_modules/@babel/core/lib/config/helpers/deep-array.js new file mode 100644 index 0000000..9455e32 --- /dev/null +++ b/node_modules/@babel/core/lib/config/helpers/deep-array.js @@ -0,0 +1,24 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.finalize = finalize; +exports.flattenToSet = flattenToSet; + +function finalize(deepArr) { +  return Object.freeze(deepArr); +} + +function flattenToSet(arr) { +  const result = new Set(); +  const stack = [arr]; + +  while (stack.length > 0) { +    for (const el of stack.pop()) { +      if (Array.isArray(el)) stack.push(el);else result.add(el); +    } +  } + +  return result; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/helpers/environment.js b/node_modules/@babel/core/lib/config/helpers/environment.js new file mode 100644 index 0000000..e4bfdbc --- /dev/null +++ b/node_modules/@babel/core/lib/config/helpers/environment.js @@ -0,0 +1,10 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.getEnv = getEnv; + +function getEnv(defaultValue = "development") { +  return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/index.js b/node_modules/@babel/core/lib/config/index.js new file mode 100644 index 0000000..696850d --- /dev/null +++ b/node_modules/@babel/core/lib/config/index.js @@ -0,0 +1,75 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.createConfigItem = createConfigItem; +exports.createConfigItemSync = exports.createConfigItemAsync = void 0; +Object.defineProperty(exports, "default", { +  enumerable: true, +  get: function () { +    return _full.default; +  } +}); +exports.loadPartialConfigSync = exports.loadPartialConfigAsync = exports.loadPartialConfig = exports.loadOptionsSync = exports.loadOptionsAsync = exports.loadOptions = void 0; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _full = require("./full"); + +var _partial = require("./partial"); + +var _item = require("./item"); + +const loadOptionsRunner = _gensync()(function* (opts) { +  var _config$options; + +  const config = yield* (0, _full.default)(opts); +  return (_config$options = config == null ? void 0 : config.options) != null ? _config$options : null; +}); + +const createConfigItemRunner = _gensync()(_item.createConfigItem); + +const maybeErrback = runner => (opts, callback) => { +  if (callback === undefined && typeof opts === "function") { +    callback = opts; +    opts = undefined; +  } + +  return callback ? runner.errback(opts, callback) : runner.sync(opts); +}; + +const loadPartialConfig = maybeErrback(_partial.loadPartialConfig); +exports.loadPartialConfig = loadPartialConfig; +const loadPartialConfigSync = _partial.loadPartialConfig.sync; +exports.loadPartialConfigSync = loadPartialConfigSync; +const loadPartialConfigAsync = _partial.loadPartialConfig.async; +exports.loadPartialConfigAsync = loadPartialConfigAsync; +const loadOptions = maybeErrback(loadOptionsRunner); +exports.loadOptions = loadOptions; +const loadOptionsSync = loadOptionsRunner.sync; +exports.loadOptionsSync = loadOptionsSync; +const loadOptionsAsync = loadOptionsRunner.async; +exports.loadOptionsAsync = loadOptionsAsync; +const createConfigItemSync = createConfigItemRunner.sync; +exports.createConfigItemSync = createConfigItemSync; +const createConfigItemAsync = createConfigItemRunner.async; +exports.createConfigItemAsync = createConfigItemAsync; + +function createConfigItem(target, options, callback) { +  if (callback !== undefined) { +    return createConfigItemRunner.errback(target, options, callback); +  } else if (typeof options === "function") { +    return createConfigItemRunner.errback(target, undefined, callback); +  } else { +    return createConfigItemRunner.sync(target, options); +  } +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/item.js b/node_modules/@babel/core/lib/config/item.js new file mode 100644 index 0000000..2380354 --- /dev/null +++ b/node_modules/@babel/core/lib/config/item.js @@ -0,0 +1,76 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.createConfigItem = createConfigItem; +exports.createItemFromDescriptor = createItemFromDescriptor; +exports.getItemDescriptor = getItemDescriptor; + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +var _configDescriptors = require("./config-descriptors"); + +function createItemFromDescriptor(desc) { +  return new ConfigItem(desc); +} + +function* createConfigItem(value, { +  dirname = ".", +  type +} = {}) { +  const descriptor = yield* (0, _configDescriptors.createDescriptor)(value, _path().resolve(dirname), { +    type, +    alias: "programmatic item" +  }); +  return createItemFromDescriptor(descriptor); +} + +function getItemDescriptor(item) { +  if (item != null && item[CONFIG_ITEM_BRAND]) { +    return item._descriptor; +  } + +  return undefined; +} + +const CONFIG_ITEM_BRAND = Symbol.for("@babel/core@7 - ConfigItem"); + +class ConfigItem { +  constructor(descriptor) { +    this._descriptor = void 0; +    this[CONFIG_ITEM_BRAND] = true; +    this.value = void 0; +    this.options = void 0; +    this.dirname = void 0; +    this.name = void 0; +    this.file = void 0; +    this._descriptor = descriptor; +    Object.defineProperty(this, "_descriptor", { +      enumerable: false +    }); +    Object.defineProperty(this, CONFIG_ITEM_BRAND, { +      enumerable: false +    }); +    this.value = this._descriptor.value; +    this.options = this._descriptor.options; +    this.dirname = this._descriptor.dirname; +    this.name = this._descriptor.name; +    this.file = this._descriptor.file ? { +      request: this._descriptor.file.request, +      resolved: this._descriptor.file.resolved +    } : undefined; +    Object.freeze(this); +  } + +} + +Object.freeze(ConfigItem.prototype);
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/partial.js b/node_modules/@babel/core/lib/config/partial.js new file mode 100644 index 0000000..e8c52e1 --- /dev/null +++ b/node_modules/@babel/core/lib/config/partial.js @@ -0,0 +1,197 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = loadPrivatePartialConfig; +exports.loadPartialConfig = void 0; + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _plugin = require("./plugin"); + +var _util = require("./util"); + +var _item = require("./item"); + +var _configChain = require("./config-chain"); + +var _environment = require("./helpers/environment"); + +var _options = require("./validation/options"); + +var _files = require("./files"); + +var _resolveTargets = require("./resolve-targets"); + +const _excluded = ["showIgnoredFiles"]; + +function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } + +function resolveRootMode(rootDir, rootMode) { +  switch (rootMode) { +    case "root": +      return rootDir; + +    case "upward-optional": +      { +        const upwardRootDir = (0, _files.findConfigUpwards)(rootDir); +        return upwardRootDir === null ? rootDir : upwardRootDir; +      } + +    case "upward": +      { +        const upwardRootDir = (0, _files.findConfigUpwards)(rootDir); +        if (upwardRootDir !== null) return upwardRootDir; +        throw Object.assign(new Error(`Babel was run with rootMode:"upward" but a root could not ` + `be found when searching upward from "${rootDir}".\n` + `One of the following config files must be in the directory tree: ` + `"${_files.ROOT_CONFIG_FILENAMES.join(", ")}".`), { +          code: "BABEL_ROOT_NOT_FOUND", +          dirname: rootDir +        }); +      } + +    default: +      throw new Error(`Assertion failure - unknown rootMode value.`); +  } +} + +function* loadPrivatePartialConfig(inputOpts) { +  if (inputOpts != null && (typeof inputOpts !== "object" || Array.isArray(inputOpts))) { +    throw new Error("Babel options must be an object, null, or undefined"); +  } + +  const args = inputOpts ? (0, _options.validate)("arguments", inputOpts) : {}; +  const { +    envName = (0, _environment.getEnv)(), +    cwd = ".", +    root: rootDir = ".", +    rootMode = "root", +    caller, +    cloneInputAst = true +  } = args; + +  const absoluteCwd = _path().resolve(cwd); + +  const absoluteRootDir = resolveRootMode(_path().resolve(absoluteCwd, rootDir), rootMode); +  const filename = typeof args.filename === "string" ? _path().resolve(cwd, args.filename) : undefined; +  const showConfigPath = yield* (0, _files.resolveShowConfigPath)(absoluteCwd); +  const context = { +    filename, +    cwd: absoluteCwd, +    root: absoluteRootDir, +    envName, +    caller, +    showConfig: showConfigPath === filename +  }; +  const configChain = yield* (0, _configChain.buildRootChain)(args, context); +  if (!configChain) return null; +  const merged = { +    assumptions: {} +  }; +  configChain.options.forEach(opts => { +    (0, _util.mergeOptions)(merged, opts); +  }); +  const options = Object.assign({}, merged, { +    targets: (0, _resolveTargets.resolveTargets)(merged, absoluteRootDir), +    cloneInputAst, +    babelrc: false, +    configFile: false, +    browserslistConfigFile: false, +    passPerPreset: false, +    envName: context.envName, +    cwd: context.cwd, +    root: context.root, +    rootMode: "root", +    filename: typeof context.filename === "string" ? context.filename : undefined, +    plugins: configChain.plugins.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)), +    presets: configChain.presets.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor)) +  }); +  return { +    options, +    context, +    fileHandling: configChain.fileHandling, +    ignore: configChain.ignore, +    babelrc: configChain.babelrc, +    config: configChain.config, +    files: configChain.files +  }; +} + +const loadPartialConfig = _gensync()(function* (opts) { +  let showIgnoredFiles = false; + +  if (typeof opts === "object" && opts !== null && !Array.isArray(opts)) { +    var _opts = opts; +    ({ +      showIgnoredFiles +    } = _opts); +    opts = _objectWithoutPropertiesLoose(_opts, _excluded); +    _opts; +  } + +  const result = yield* loadPrivatePartialConfig(opts); +  if (!result) return null; +  const { +    options, +    babelrc, +    ignore, +    config, +    fileHandling, +    files +  } = result; + +  if (fileHandling === "ignored" && !showIgnoredFiles) { +    return null; +  } + +  (options.plugins || []).forEach(item => { +    if (item.value instanceof _plugin.default) { +      throw new Error("Passing cached plugin instances is not supported in " + "babel.loadPartialConfig()"); +    } +  }); +  return new PartialConfig(options, babelrc ? babelrc.filepath : undefined, ignore ? ignore.filepath : undefined, config ? config.filepath : undefined, fileHandling, files); +}); + +exports.loadPartialConfig = loadPartialConfig; + +class PartialConfig { +  constructor(options, babelrc, ignore, config, fileHandling, files) { +    this.options = void 0; +    this.babelrc = void 0; +    this.babelignore = void 0; +    this.config = void 0; +    this.fileHandling = void 0; +    this.files = void 0; +    this.options = options; +    this.babelignore = ignore; +    this.babelrc = babelrc; +    this.config = config; +    this.fileHandling = fileHandling; +    this.files = files; +    Object.freeze(this); +  } + +  hasFilesystemConfig() { +    return this.babelrc !== undefined || this.config !== undefined; +  } + +} + +Object.freeze(PartialConfig.prototype);
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/pattern-to-regex.js b/node_modules/@babel/core/lib/config/pattern-to-regex.js new file mode 100644 index 0000000..ec5db8f --- /dev/null +++ b/node_modules/@babel/core/lib/config/pattern-to-regex.js @@ -0,0 +1,44 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = pathToPattern; + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +const sep = `\\${_path().sep}`; +const endSep = `(?:${sep}|$)`; +const substitution = `[^${sep}]+`; +const starPat = `(?:${substitution}${sep})`; +const starPatLast = `(?:${substitution}${endSep})`; +const starStarPat = `${starPat}*?`; +const starStarPatLast = `${starPat}*?${starPatLast}?`; + +function escapeRegExp(string) { +  return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&"); +} + +function pathToPattern(pattern, dirname) { +  const parts = _path().resolve(dirname, pattern).split(_path().sep); + +  return new RegExp(["^", ...parts.map((part, i) => { +    const last = i === parts.length - 1; +    if (part === "**") return last ? starStarPatLast : starStarPat; +    if (part === "*") return last ? starPatLast : starPat; + +    if (part.indexOf("*.") === 0) { +      return substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep); +    } + +    return escapeRegExp(part) + (last ? endSep : sep); +  })].join("")); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/plugin.js b/node_modules/@babel/core/lib/config/plugin.js new file mode 100644 index 0000000..40e0540 --- /dev/null +++ b/node_modules/@babel/core/lib/config/plugin.js @@ -0,0 +1,34 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = void 0; + +var _deepArray = require("./helpers/deep-array"); + +class Plugin { +  constructor(plugin, options, key, externalDependencies = (0, _deepArray.finalize)([])) { +    this.key = void 0; +    this.manipulateOptions = void 0; +    this.post = void 0; +    this.pre = void 0; +    this.visitor = void 0; +    this.parserOverride = void 0; +    this.generatorOverride = void 0; +    this.options = void 0; +    this.externalDependencies = void 0; +    this.key = plugin.name || key; +    this.manipulateOptions = plugin.manipulateOptions; +    this.post = plugin.post; +    this.pre = plugin.pre; +    this.visitor = plugin.visitor || {}; +    this.parserOverride = plugin.parserOverride; +    this.generatorOverride = plugin.generatorOverride; +    this.options = options; +    this.externalDependencies = externalDependencies; +  } + +} + +exports.default = Plugin;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/printer.js b/node_modules/@babel/core/lib/config/printer.js new file mode 100644 index 0000000..229fd9a --- /dev/null +++ b/node_modules/@babel/core/lib/config/printer.js @@ -0,0 +1,139 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.ConfigPrinter = exports.ChainFormatter = void 0; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +const ChainFormatter = { +  Programmatic: 0, +  Config: 1 +}; +exports.ChainFormatter = ChainFormatter; +const Formatter = { +  title(type, callerName, filepath) { +    let title = ""; + +    if (type === ChainFormatter.Programmatic) { +      title = "programmatic options"; + +      if (callerName) { +        title += " from " + callerName; +      } +    } else { +      title = "config " + filepath; +    } + +    return title; +  }, + +  loc(index, envName) { +    let loc = ""; + +    if (index != null) { +      loc += `.overrides[${index}]`; +    } + +    if (envName != null) { +      loc += `.env["${envName}"]`; +    } + +    return loc; +  }, + +  *optionsAndDescriptors(opt) { +    const content = Object.assign({}, opt.options); +    delete content.overrides; +    delete content.env; +    const pluginDescriptors = [...(yield* opt.plugins())]; + +    if (pluginDescriptors.length) { +      content.plugins = pluginDescriptors.map(d => descriptorToConfig(d)); +    } + +    const presetDescriptors = [...(yield* opt.presets())]; + +    if (presetDescriptors.length) { +      content.presets = [...presetDescriptors].map(d => descriptorToConfig(d)); +    } + +    return JSON.stringify(content, undefined, 2); +  } + +}; + +function descriptorToConfig(d) { +  var _d$file; + +  let name = (_d$file = d.file) == null ? void 0 : _d$file.request; + +  if (name == null) { +    if (typeof d.value === "object") { +      name = d.value; +    } else if (typeof d.value === "function") { +      name = `[Function: ${d.value.toString().substr(0, 50)} ... ]`; +    } +  } + +  if (name == null) { +    name = "[Unknown]"; +  } + +  if (d.options === undefined) { +    return name; +  } else if (d.name == null) { +    return [name, d.options]; +  } else { +    return [name, d.options, d.name]; +  } +} + +class ConfigPrinter { +  constructor() { +    this._stack = []; +  } + +  configure(enabled, type, { +    callerName, +    filepath +  }) { +    if (!enabled) return () => {}; +    return (content, index, envName) => { +      this._stack.push({ +        type, +        callerName, +        filepath, +        content, +        index, +        envName +      }); +    }; +  } + +  static *format(config) { +    let title = Formatter.title(config.type, config.callerName, config.filepath); +    const loc = Formatter.loc(config.index, config.envName); +    if (loc) title += ` ${loc}`; +    const content = yield* Formatter.optionsAndDescriptors(config.content); +    return `${title}\n${content}`; +  } + +  *output() { +    if (this._stack.length === 0) return ""; +    const configs = yield* _gensync().all(this._stack.map(s => ConfigPrinter.format(s))); +    return configs.join("\n\n"); +  } + +} + +exports.ConfigPrinter = ConfigPrinter;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/resolve-targets-browser.js b/node_modules/@babel/core/lib/config/resolve-targets-browser.js new file mode 100644 index 0000000..cc4e518 --- /dev/null +++ b/node_modules/@babel/core/lib/config/resolve-targets-browser.js @@ -0,0 +1,42 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile; +exports.resolveTargets = resolveTargets; + +function _helperCompilationTargets() { +  const data = require("@babel/helper-compilation-targets"); + +  _helperCompilationTargets = function () { +    return data; +  }; + +  return data; +} + +function resolveBrowserslistConfigFile(browserslistConfigFile, configFilePath) { +  return undefined; +} + +function resolveTargets(options, root) { +  let targets = options.targets; + +  if (typeof targets === "string" || Array.isArray(targets)) { +    targets = { +      browsers: targets +    }; +  } + +  if (targets && targets.esmodules) { +    targets = Object.assign({}, targets, { +      esmodules: "intersect" +    }); +  } + +  return (0, _helperCompilationTargets().default)(targets, { +    ignoreBrowserslistConfig: true, +    browserslistEnv: options.browserslistEnv +  }); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/resolve-targets.js b/node_modules/@babel/core/lib/config/resolve-targets.js new file mode 100644 index 0000000..973e3d5 --- /dev/null +++ b/node_modules/@babel/core/lib/config/resolve-targets.js @@ -0,0 +1,68 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.resolveBrowserslistConfigFile = resolveBrowserslistConfigFile; +exports.resolveTargets = resolveTargets; + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +function _helperCompilationTargets() { +  const data = require("@babel/helper-compilation-targets"); + +  _helperCompilationTargets = function () { +    return data; +  }; + +  return data; +} + +({}); + +function resolveBrowserslistConfigFile(browserslistConfigFile, configFileDir) { +  return _path().resolve(configFileDir, browserslistConfigFile); +} + +function resolveTargets(options, root) { +  let targets = options.targets; + +  if (typeof targets === "string" || Array.isArray(targets)) { +    targets = { +      browsers: targets +    }; +  } + +  if (targets && targets.esmodules) { +    targets = Object.assign({}, targets, { +      esmodules: "intersect" +    }); +  } + +  const { +    browserslistConfigFile +  } = options; +  let configFile; +  let ignoreBrowserslistConfig = false; + +  if (typeof browserslistConfigFile === "string") { +    configFile = browserslistConfigFile; +  } else { +    ignoreBrowserslistConfig = browserslistConfigFile === false; +  } + +  return (0, _helperCompilationTargets().default)(targets, { +    ignoreBrowserslistConfig, +    configFile, +    configPath: root, +    browserslistEnv: options.browserslistEnv +  }); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/util.js b/node_modules/@babel/core/lib/config/util.js new file mode 100644 index 0000000..1fc2d3d --- /dev/null +++ b/node_modules/@babel/core/lib/config/util.js @@ -0,0 +1,31 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.isIterableIterator = isIterableIterator; +exports.mergeOptions = mergeOptions; + +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"; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/option-assertions.js b/node_modules/@babel/core/lib/config/validation/option-assertions.js new file mode 100644 index 0000000..9a0b4a4 --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/option-assertions.js @@ -0,0 +1,352 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.access = access; +exports.assertArray = assertArray; +exports.assertAssumptions = assertAssumptions; +exports.assertBabelrcSearch = assertBabelrcSearch; +exports.assertBoolean = assertBoolean; +exports.assertCallerMetadata = assertCallerMetadata; +exports.assertCompact = assertCompact; +exports.assertConfigApplicableTest = assertConfigApplicableTest; +exports.assertConfigFileSearch = assertConfigFileSearch; +exports.assertFunction = assertFunction; +exports.assertIgnoreList = assertIgnoreList; +exports.assertInputSourceMap = assertInputSourceMap; +exports.assertObject = assertObject; +exports.assertPluginList = assertPluginList; +exports.assertRootMode = assertRootMode; +exports.assertSourceMaps = assertSourceMaps; +exports.assertSourceType = assertSourceType; +exports.assertString = assertString; +exports.assertTargets = assertTargets; +exports.msg = msg; + +function _helperCompilationTargets() { +  const data = require("@babel/helper-compilation-targets"); + +  _helperCompilationTargets = function () { +    return data; +  }; + +  return data; +} + +var _options = require("./options"); + +function msg(loc) { +  switch (loc.type) { +    case "root": +      return ``; + +    case "env": +      return `${msg(loc.parent)}.env["${loc.name}"]`; + +    case "overrides": +      return `${msg(loc.parent)}.overrides[${loc.index}]`; + +    case "option": +      return `${msg(loc.parent)}.${loc.name}`; + +    case "access": +      return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`; + +    default: +      throw new Error(`Assertion failure: Unknown type ${loc.type}`); +  } +} + +function access(loc, name) { +  return { +    type: "access", +    name, +    parent: loc +  }; +} + +function assertRootMode(loc, value) { +  if (value !== undefined && value !== "root" && value !== "upward" && value !== "upward-optional") { +    throw new Error(`${msg(loc)} must be a "root", "upward", "upward-optional" or undefined`); +  } + +  return value; +} + +function assertSourceMaps(loc, value) { +  if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") { +    throw new Error(`${msg(loc)} must be a boolean, "inline", "both", or undefined`); +  } + +  return value; +} + +function assertCompact(loc, value) { +  if (value !== undefined && typeof value !== "boolean" && value !== "auto") { +    throw new Error(`${msg(loc)} must be a boolean, "auto", or undefined`); +  } + +  return value; +} + +function assertSourceType(loc, value) { +  if (value !== undefined && value !== "module" && value !== "script" && value !== "unambiguous") { +    throw new Error(`${msg(loc)} must be "module", "script", "unambiguous", or undefined`); +  } + +  return value; +} + +function assertCallerMetadata(loc, value) { +  const obj = assertObject(loc, value); + +  if (obj) { +    if (typeof obj.name !== "string") { +      throw new Error(`${msg(loc)} set but does not contain "name" property string`); +    } + +    for (const prop of Object.keys(obj)) { +      const propLoc = access(loc, prop); +      const value = obj[prop]; + +      if (value != null && typeof value !== "boolean" && typeof value !== "string" && typeof value !== "number") { +        throw new Error(`${msg(propLoc)} must be null, undefined, a boolean, a string, or a number.`); +      } +    } +  } + +  return value; +} + +function assertInputSourceMap(loc, value) { +  if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) { +    throw new Error(`${msg(loc)} must be a boolean, object, or undefined`); +  } + +  return value; +} + +function assertString(loc, value) { +  if (value !== undefined && typeof value !== "string") { +    throw new Error(`${msg(loc)} must be a string, or undefined`); +  } + +  return value; +} + +function assertFunction(loc, value) { +  if (value !== undefined && typeof value !== "function") { +    throw new Error(`${msg(loc)} must be a function, or undefined`); +  } + +  return value; +} + +function assertBoolean(loc, value) { +  if (value !== undefined && typeof value !== "boolean") { +    throw new Error(`${msg(loc)} must be a boolean, or undefined`); +  } + +  return value; +} + +function assertObject(loc, value) { +  if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) { +    throw new Error(`${msg(loc)} must be an object, or undefined`); +  } + +  return value; +} + +function assertArray(loc, value) { +  if (value != null && !Array.isArray(value)) { +    throw new Error(`${msg(loc)} must be an array, or undefined`); +  } + +  return value; +} + +function assertIgnoreList(loc, value) { +  const arr = assertArray(loc, value); + +  if (arr) { +    arr.forEach((item, i) => assertIgnoreItem(access(loc, i), item)); +  } + +  return arr; +} + +function assertIgnoreItem(loc, value) { +  if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) { +    throw new Error(`${msg(loc)} must be an array of string/Function/RegExp values, or undefined`); +  } + +  return value; +} + +function assertConfigApplicableTest(loc, value) { +  if (value === undefined) return value; + +  if (Array.isArray(value)) { +    value.forEach((item, i) => { +      if (!checkValidTest(item)) { +        throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); +      } +    }); +  } else if (!checkValidTest(value)) { +    throw new Error(`${msg(loc)} must be a string/Function/RegExp, or an array of those`); +  } + +  return value; +} + +function checkValidTest(value) { +  return typeof value === "string" || typeof value === "function" || value instanceof RegExp; +} + +function assertConfigFileSearch(loc, value) { +  if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") { +    throw new Error(`${msg(loc)} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`); +  } + +  return value; +} + +function assertBabelrcSearch(loc, value) { +  if (value === undefined || typeof value === "boolean") return value; + +  if (Array.isArray(value)) { +    value.forEach((item, i) => { +      if (!checkValidTest(item)) { +        throw new Error(`${msg(access(loc, i))} must be a string/Function/RegExp.`); +      } +    }); +  } else if (!checkValidTest(value)) { +    throw new Error(`${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` + `or an array of those, got ${JSON.stringify(value)}`); +  } + +  return value; +} + +function assertPluginList(loc, value) { +  const arr = assertArray(loc, value); + +  if (arr) { +    arr.forEach((item, i) => assertPluginItem(access(loc, i), item)); +  } + +  return arr; +} + +function assertPluginItem(loc, value) { +  if (Array.isArray(value)) { +    if (value.length === 0) { +      throw new Error(`${msg(loc)} must include an object`); +    } + +    if (value.length > 3) { +      throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`); +    } + +    assertPluginTarget(access(loc, 0), value[0]); + +    if (value.length > 1) { +      const opts = value[1]; + +      if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts) || opts === null)) { +        throw new Error(`${msg(access(loc, 1))} must be an object, false, or undefined`); +      } +    } + +    if (value.length === 3) { +      const name = value[2]; + +      if (name !== undefined && typeof name !== "string") { +        throw new Error(`${msg(access(loc, 2))} must be a string, or undefined`); +      } +    } +  } else { +    assertPluginTarget(loc, value); +  } + +  return value; +} + +function assertPluginTarget(loc, value) { +  if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") { +    throw new Error(`${msg(loc)} must be a string, object, function`); +  } + +  return value; +} + +function assertTargets(loc, value) { +  if ((0, _helperCompilationTargets().isBrowsersQueryValid)(value)) return value; + +  if (typeof value !== "object" || !value || Array.isArray(value)) { +    throw new Error(`${msg(loc)} must be a string, an array of strings or an object`); +  } + +  const browsersLoc = access(loc, "browsers"); +  const esmodulesLoc = access(loc, "esmodules"); +  assertBrowsersList(browsersLoc, value.browsers); +  assertBoolean(esmodulesLoc, value.esmodules); + +  for (const key of Object.keys(value)) { +    const val = value[key]; +    const subLoc = access(loc, key); +    if (key === "esmodules") assertBoolean(subLoc, val);else if (key === "browsers") assertBrowsersList(subLoc, val);else if (!Object.hasOwnProperty.call(_helperCompilationTargets().TargetNames, key)) { +      const validTargets = Object.keys(_helperCompilationTargets().TargetNames).join(", "); +      throw new Error(`${msg(subLoc)} is not a valid target. Supported targets are ${validTargets}`); +    } else assertBrowserVersion(subLoc, val); +  } + +  return value; +} + +function assertBrowsersList(loc, value) { +  if (value !== undefined && !(0, _helperCompilationTargets().isBrowsersQueryValid)(value)) { +    throw new Error(`${msg(loc)} must be undefined, a string or an array of strings`); +  } +} + +function assertBrowserVersion(loc, value) { +  if (typeof value === "number" && Math.round(value) === value) return; +  if (typeof value === "string") return; +  throw new Error(`${msg(loc)} must be a string or an integer number`); +} + +function assertAssumptions(loc, value) { +  if (value === undefined) return; + +  if (typeof value !== "object" || value === null) { +    throw new Error(`${msg(loc)} must be an object or undefined.`); +  } + +  let root = loc; + +  do { +    root = root.parent; +  } while (root.type !== "root"); + +  const inPreset = root.source === "preset"; + +  for (const name of Object.keys(value)) { +    const subLoc = access(loc, name); + +    if (!_options.assumptionsNames.has(name)) { +      throw new Error(`${msg(subLoc)} is not a supported assumption.`); +    } + +    if (typeof value[name] !== "boolean") { +      throw new Error(`${msg(subLoc)} must be a boolean.`); +    } + +    if (inPreset && value[name] === false) { +      throw new Error(`${msg(subLoc)} cannot be set to 'false' inside presets.`); +    } +  } + +  return value; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/options.js b/node_modules/@babel/core/lib/config/validation/options.js new file mode 100644 index 0000000..930278c --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/options.js @@ -0,0 +1,210 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.assumptionsNames = void 0; +exports.checkNoUnwrappedItemOptionPairs = checkNoUnwrappedItemOptionPairs; +exports.validate = validate; + +var _plugin = require("../plugin"); + +var _removed = require("./removed"); + +var _optionAssertions = require("./option-assertions"); + +const ROOT_VALIDATORS = { +  cwd: _optionAssertions.assertString, +  root: _optionAssertions.assertString, +  rootMode: _optionAssertions.assertRootMode, +  configFile: _optionAssertions.assertConfigFileSearch, +  caller: _optionAssertions.assertCallerMetadata, +  filename: _optionAssertions.assertString, +  filenameRelative: _optionAssertions.assertString, +  code: _optionAssertions.assertBoolean, +  ast: _optionAssertions.assertBoolean, +  cloneInputAst: _optionAssertions.assertBoolean, +  envName: _optionAssertions.assertString +}; +const BABELRC_VALIDATORS = { +  babelrc: _optionAssertions.assertBoolean, +  babelrcRoots: _optionAssertions.assertBabelrcSearch +}; +const NONPRESET_VALIDATORS = { +  extends: _optionAssertions.assertString, +  ignore: _optionAssertions.assertIgnoreList, +  only: _optionAssertions.assertIgnoreList, +  targets: _optionAssertions.assertTargets, +  browserslistConfigFile: _optionAssertions.assertConfigFileSearch, +  browserslistEnv: _optionAssertions.assertString +}; +const COMMON_VALIDATORS = { +  inputSourceMap: _optionAssertions.assertInputSourceMap, +  presets: _optionAssertions.assertPluginList, +  plugins: _optionAssertions.assertPluginList, +  passPerPreset: _optionAssertions.assertBoolean, +  assumptions: _optionAssertions.assertAssumptions, +  env: assertEnvSet, +  overrides: assertOverridesList, +  test: _optionAssertions.assertConfigApplicableTest, +  include: _optionAssertions.assertConfigApplicableTest, +  exclude: _optionAssertions.assertConfigApplicableTest, +  retainLines: _optionAssertions.assertBoolean, +  comments: _optionAssertions.assertBoolean, +  shouldPrintComment: _optionAssertions.assertFunction, +  compact: _optionAssertions.assertCompact, +  minified: _optionAssertions.assertBoolean, +  auxiliaryCommentBefore: _optionAssertions.assertString, +  auxiliaryCommentAfter: _optionAssertions.assertString, +  sourceType: _optionAssertions.assertSourceType, +  wrapPluginVisitorMethod: _optionAssertions.assertFunction, +  highlightCode: _optionAssertions.assertBoolean, +  sourceMaps: _optionAssertions.assertSourceMaps, +  sourceMap: _optionAssertions.assertSourceMaps, +  sourceFileName: _optionAssertions.assertString, +  sourceRoot: _optionAssertions.assertString, +  parserOpts: _optionAssertions.assertObject, +  generatorOpts: _optionAssertions.assertObject +}; +{ +  Object.assign(COMMON_VALIDATORS, { +    getModuleId: _optionAssertions.assertFunction, +    moduleRoot: _optionAssertions.assertString, +    moduleIds: _optionAssertions.assertBoolean, +    moduleId: _optionAssertions.assertString +  }); +} +const assumptionsNames = new Set(["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "objectRestNoSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]); +exports.assumptionsNames = assumptionsNames; + +function getSource(loc) { +  return loc.type === "root" ? loc.source : getSource(loc.parent); +} + +function validate(type, opts) { +  return validateNested({ +    type: "root", +    source: type +  }, opts); +} + +function validateNested(loc, opts) { +  const type = getSource(loc); +  assertNoDuplicateSourcemap(opts); +  Object.keys(opts).forEach(key => { +    const optLoc = { +      type: "option", +      name: key, +      parent: loc +    }; + +    if (type === "preset" && NONPRESET_VALIDATORS[key]) { +      throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`); +    } + +    if (type !== "arguments" && ROOT_VALIDATORS[key]) { +      throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`); +    } + +    if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) { +      if (type === "babelrcfile" || type === "extendsfile") { +        throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`); +      } + +      throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`); +    } + +    const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError; +    validator(optLoc, opts[key]); +  }); +  return opts; +} + +function throwUnknownError(loc) { +  const key = loc.name; + +  if (_removed.default[key]) { +    const { +      message, +      version = 5 +    } = _removed.default[key]; +    throw new Error(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`); +  } else { +    const unknownOptErr = new Error(`Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`); +    unknownOptErr.code = "BABEL_UNKNOWN_OPTION"; +    throw unknownOptErr; +  } +} + +function has(obj, key) { +  return Object.prototype.hasOwnProperty.call(obj, key); +} + +function assertNoDuplicateSourcemap(opts) { +  if (has(opts, "sourceMap") && has(opts, "sourceMaps")) { +    throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both"); +  } +} + +function assertEnvSet(loc, value) { +  if (loc.parent.type === "env") { +    throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`); +  } + +  const parent = loc.parent; +  const obj = (0, _optionAssertions.assertObject)(loc, value); + +  if (obj) { +    for (const envName of Object.keys(obj)) { +      const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]); +      if (!env) continue; +      const envLoc = { +        type: "env", +        name: envName, +        parent +      }; +      validateNested(envLoc, env); +    } +  } + +  return obj; +} + +function assertOverridesList(loc, value) { +  if (loc.parent.type === "env") { +    throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`); +  } + +  if (loc.parent.type === "overrides") { +    throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`); +  } + +  const parent = loc.parent; +  const arr = (0, _optionAssertions.assertArray)(loc, value); + +  if (arr) { +    for (const [index, item] of arr.entries()) { +      const objLoc = (0, _optionAssertions.access)(loc, index); +      const env = (0, _optionAssertions.assertObject)(objLoc, item); +      if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`); +      const overridesLoc = { +        type: "overrides", +        index, +        parent +      }; +      validateNested(overridesLoc, env); +    } +  } + +  return arr; +} + +function checkNoUnwrappedItemOptionPairs(items, index, type, e) { +  if (index === 0) return; +  const lastItem = items[index - 1]; +  const thisItem = items[index]; + +  if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") { +    e.message += `\n- Maybe you meant to use\n` + `"${type}s": [\n  ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`; +  } +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/plugins.js b/node_modules/@babel/core/lib/config/validation/plugins.js new file mode 100644 index 0000000..a70cc67 --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/plugins.js @@ -0,0 +1,71 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.validatePluginObject = validatePluginObject; + +var _optionAssertions = require("./option-assertions"); + +const VALIDATORS = { +  name: _optionAssertions.assertString, +  manipulateOptions: _optionAssertions.assertFunction, +  pre: _optionAssertions.assertFunction, +  post: _optionAssertions.assertFunction, +  inherits: _optionAssertions.assertFunction, +  visitor: assertVisitorMap, +  parserOverride: _optionAssertions.assertFunction, +  generatorOverride: _optionAssertions.assertFunction +}; + +function assertVisitorMap(loc, value) { +  const obj = (0, _optionAssertions.assertObject)(loc, value); + +  if (obj) { +    Object.keys(obj).forEach(prop => assertVisitorHandler(prop, obj[prop])); + +    if (obj.enter || obj.exit) { +      throw new Error(`${(0, _optionAssertions.msg)(loc)} cannot contain catch-all "enter" or "exit" handlers. Please target individual nodes.`); +    } +  } + +  return obj; +} + +function assertVisitorHandler(key, value) { +  if (value && typeof value === "object") { +    Object.keys(value).forEach(handler => { +      if (handler !== "enter" && handler !== "exit") { +        throw new Error(`.visitor["${key}"] may only have .enter and/or .exit handlers.`); +      } +    }); +  } else if (typeof value !== "function") { +    throw new Error(`.visitor["${key}"] must be a function`); +  } + +  return value; +} + +function validatePluginObject(obj) { +  const rootPath = { +    type: "root", +    source: "plugin" +  }; +  Object.keys(obj).forEach(key => { +    const validator = VALIDATORS[key]; + +    if (validator) { +      const optLoc = { +        type: "option", +        name: key, +        parent: rootPath +      }; +      validator(optLoc, obj[key]); +    } else { +      const invalidPluginPropertyError = new Error(`.${key} is not a valid Plugin property`); +      invalidPluginPropertyError.code = "BABEL_UNKNOWN_PLUGIN_PROPERTY"; +      throw invalidPluginPropertyError; +    } +  }); +  return obj; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/config/validation/removed.js b/node_modules/@babel/core/lib/config/validation/removed.js new file mode 100644 index 0000000..f0fcd7d --- /dev/null +++ b/node_modules/@babel/core/lib/config/validation/removed.js @@ -0,0 +1,66 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = void 0; +var _default = { +  auxiliaryComment: { +    message: "Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`" +  }, +  blacklist: { +    message: "Put the specific transforms you want in the `plugins` option" +  }, +  breakConfig: { +    message: "This is not a necessary option in Babel 6" +  }, +  experimental: { +    message: "Put the specific transforms you want in the `plugins` option" +  }, +  externalHelpers: { +    message: "Use the `external-helpers` plugin instead. " + "Check out http://babeljs.io/docs/plugins/external-helpers/" +  }, +  extra: { +    message: "" +  }, +  jsxPragma: { +    message: "use the `pragma` option in the `react-jsx` plugin. " + "Check out http://babeljs.io/docs/plugins/transform-react-jsx/" +  }, +  loose: { +    message: "Specify the `loose` option for the relevant plugin you are using " + "or use a preset that sets the option." +  }, +  metadataUsedHelpers: { +    message: "Not required anymore as this is enabled by default" +  }, +  modules: { +    message: "Use the corresponding module transform plugin in the `plugins` option. " + "Check out http://babeljs.io/docs/plugins/#modules" +  }, +  nonStandard: { +    message: "Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. " + "Also check out the react preset http://babeljs.io/docs/plugins/preset-react/" +  }, +  optional: { +    message: "Put the specific transforms you want in the `plugins` option" +  }, +  sourceMapName: { +    message: "The `sourceMapName` option has been removed because it makes more sense for the " + "tooling that calls Babel to assign `map.file` themselves." +  }, +  stage: { +    message: "Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets" +  }, +  whitelist: { +    message: "Put the specific transforms you want in the `plugins` option" +  }, +  resolveModuleSource: { +    version: 6, +    message: "Use `babel-plugin-module-resolver@3`'s 'resolvePath' options" +  }, +  metadata: { +    version: 6, +    message: "Generated plugin metadata is always included in the output result" +  }, +  sourceMapTarget: { +    version: 6, +    message: "The `sourceMapTarget` option has been removed because it makes more sense for the tooling " + "that calls Babel to assign `map.file` themselves." +  } +}; +exports.default = _default;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/gensync-utils/async.js b/node_modules/@babel/core/lib/gensync-utils/async.js new file mode 100644 index 0000000..7deb186 --- /dev/null +++ b/node_modules/@babel/core/lib/gensync-utils/async.js @@ -0,0 +1,94 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.forwardAsync = forwardAsync; +exports.isAsync = void 0; +exports.isThenable = isThenable; +exports.maybeAsync = maybeAsync; +exports.waitFor = exports.onFirstPause = void 0; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +const id = x => x; + +const runGenerator = _gensync()(function* (item) { +  return yield* item; +}); + +const isAsync = _gensync()({ +  sync: () => false, +  errback: cb => cb(null, true) +}); + +exports.isAsync = isAsync; + +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: 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(); +    } +  } +}); + +exports.onFirstPause = onFirstPause; + +const waitFor = _gensync()({ +  sync: id, +  async: id +}); + +exports.waitFor = waitFor; + +function isThenable(val) { +  return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/gensync-utils/fs.js b/node_modules/@babel/core/lib/gensync-utils/fs.js new file mode 100644 index 0000000..056ae34 --- /dev/null +++ b/node_modules/@babel/core/lib/gensync-utils/fs.js @@ -0,0 +1,40 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.stat = exports.readFile = void 0; + +function _fs() { +  const data = require("fs"); + +  _fs = function () { +    return data; +  }; + +  return data; +} + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +const readFile = _gensync()({ +  sync: _fs().readFileSync, +  errback: _fs().readFile +}); + +exports.readFile = readFile; + +const stat = _gensync()({ +  sync: _fs().statSync, +  errback: _fs().stat +}); + +exports.stat = stat;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/index.js b/node_modules/@babel/core/lib/index.js new file mode 100644 index 0000000..f25de73 --- /dev/null +++ b/node_modules/@babel/core/lib/index.js @@ -0,0 +1,266 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.DEFAULT_EXTENSIONS = void 0; +Object.defineProperty(exports, "File", { +  enumerable: true, +  get: function () { +    return _file.default; +  } +}); +exports.OptionManager = void 0; +exports.Plugin = Plugin; +Object.defineProperty(exports, "buildExternalHelpers", { +  enumerable: true, +  get: function () { +    return _buildExternalHelpers.default; +  } +}); +Object.defineProperty(exports, "createConfigItem", { +  enumerable: true, +  get: function () { +    return _config.createConfigItem; +  } +}); +Object.defineProperty(exports, "createConfigItemAsync", { +  enumerable: true, +  get: function () { +    return _config.createConfigItemAsync; +  } +}); +Object.defineProperty(exports, "createConfigItemSync", { +  enumerable: true, +  get: function () { +    return _config.createConfigItemSync; +  } +}); +Object.defineProperty(exports, "getEnv", { +  enumerable: true, +  get: function () { +    return _environment.getEnv; +  } +}); +Object.defineProperty(exports, "loadOptions", { +  enumerable: true, +  get: function () { +    return _config.loadOptions; +  } +}); +Object.defineProperty(exports, "loadOptionsAsync", { +  enumerable: true, +  get: function () { +    return _config.loadOptionsAsync; +  } +}); +Object.defineProperty(exports, "loadOptionsSync", { +  enumerable: true, +  get: function () { +    return _config.loadOptionsSync; +  } +}); +Object.defineProperty(exports, "loadPartialConfig", { +  enumerable: true, +  get: function () { +    return _config.loadPartialConfig; +  } +}); +Object.defineProperty(exports, "loadPartialConfigAsync", { +  enumerable: true, +  get: function () { +    return _config.loadPartialConfigAsync; +  } +}); +Object.defineProperty(exports, "loadPartialConfigSync", { +  enumerable: true, +  get: function () { +    return _config.loadPartialConfigSync; +  } +}); +Object.defineProperty(exports, "parse", { +  enumerable: true, +  get: function () { +    return _parse.parse; +  } +}); +Object.defineProperty(exports, "parseAsync", { +  enumerable: true, +  get: function () { +    return _parse.parseAsync; +  } +}); +Object.defineProperty(exports, "parseSync", { +  enumerable: true, +  get: function () { +    return _parse.parseSync; +  } +}); +Object.defineProperty(exports, "resolvePlugin", { +  enumerable: true, +  get: function () { +    return _files.resolvePlugin; +  } +}); +Object.defineProperty(exports, "resolvePreset", { +  enumerable: true, +  get: function () { +    return _files.resolvePreset; +  } +}); +Object.defineProperty(exports, "template", { +  enumerable: true, +  get: function () { +    return _template().default; +  } +}); +Object.defineProperty(exports, "tokTypes", { +  enumerable: true, +  get: function () { +    return _parser().tokTypes; +  } +}); +Object.defineProperty(exports, "transform", { +  enumerable: true, +  get: function () { +    return _transform.transform; +  } +}); +Object.defineProperty(exports, "transformAsync", { +  enumerable: true, +  get: function () { +    return _transform.transformAsync; +  } +}); +Object.defineProperty(exports, "transformFile", { +  enumerable: true, +  get: function () { +    return _transformFile.transformFile; +  } +}); +Object.defineProperty(exports, "transformFileAsync", { +  enumerable: true, +  get: function () { +    return _transformFile.transformFileAsync; +  } +}); +Object.defineProperty(exports, "transformFileSync", { +  enumerable: true, +  get: function () { +    return _transformFile.transformFileSync; +  } +}); +Object.defineProperty(exports, "transformFromAst", { +  enumerable: true, +  get: function () { +    return _transformAst.transformFromAst; +  } +}); +Object.defineProperty(exports, "transformFromAstAsync", { +  enumerable: true, +  get: function () { +    return _transformAst.transformFromAstAsync; +  } +}); +Object.defineProperty(exports, "transformFromAstSync", { +  enumerable: true, +  get: function () { +    return _transformAst.transformFromAstSync; +  } +}); +Object.defineProperty(exports, "transformSync", { +  enumerable: true, +  get: function () { +    return _transform.transformSync; +  } +}); +Object.defineProperty(exports, "traverse", { +  enumerable: true, +  get: function () { +    return _traverse().default; +  } +}); +exports.version = exports.types = void 0; + +var _file = require("./transformation/file/file"); + +var _buildExternalHelpers = require("./tools/build-external-helpers"); + +var _files = require("./config/files"); + +var _environment = require("./config/helpers/environment"); + +function _types() { +  const data = require("@babel/types"); + +  _types = function () { +    return data; +  }; + +  return data; +} + +Object.defineProperty(exports, "types", { +  enumerable: true, +  get: function () { +    return _types(); +  } +}); + +function _parser() { +  const data = require("@babel/parser"); + +  _parser = function () { +    return data; +  }; + +  return data; +} + +function _traverse() { +  const data = require("@babel/traverse"); + +  _traverse = function () { +    return data; +  }; + +  return data; +} + +function _template() { +  const data = require("@babel/template"); + +  _template = function () { +    return data; +  }; + +  return data; +} + +var _config = require("./config"); + +var _transform = require("./transform"); + +var _transformFile = require("./transform-file"); + +var _transformAst = require("./transform-ast"); + +var _parse = require("./parse"); + +const version = "7.17.5"; +exports.version = version; +const DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); +exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS; + +class OptionManager { +  init(opts) { +    return (0, _config.loadOptions)(opts); +  } + +} + +exports.OptionManager = OptionManager; + +function Plugin(alias) { +  throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/parse.js b/node_modules/@babel/core/lib/parse.js new file mode 100644 index 0000000..783032a --- /dev/null +++ b/node_modules/@babel/core/lib/parse.js @@ -0,0 +1,48 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.parseSync = exports.parseAsync = exports.parse = void 0; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _config = require("./config"); + +var _parser = require("./parser"); + +var _normalizeOpts = require("./transformation/normalize-opts"); + +const parseRunner = _gensync()(function* parse(code, opts) { +  const config = yield* (0, _config.default)(opts); + +  if (config === null) { +    return null; +  } + +  return yield* (0, _parser.default)(config.passes, (0, _normalizeOpts.default)(config), code); +}); + +const parse = function parse(code, opts, callback) { +  if (typeof opts === "function") { +    callback = opts; +    opts = undefined; +  } + +  if (callback === undefined) return parseRunner.sync(code, opts); +  parseRunner.errback(code, opts, callback); +}; + +exports.parse = parse; +const parseSync = parseRunner.sync; +exports.parseSync = parseSync; +const parseAsync = parseRunner.async; +exports.parseAsync = parseAsync;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/parser/index.js b/node_modules/@babel/core/lib/parser/index.js new file mode 100644 index 0000000..254122a --- /dev/null +++ b/node_modules/@babel/core/lib/parser/index.js @@ -0,0 +1,95 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = parser; + +function _parser() { +  const data = require("@babel/parser"); + +  _parser = function () { +    return data; +  }; + +  return data; +} + +function _codeFrame() { +  const data = require("@babel/code-frame"); + +  _codeFrame = function () { +    return data; +  }; + +  return data; +} + +var _missingPluginHelper = require("./util/missing-plugin-helper"); + +function* parser(pluginPasses, { +  parserOpts, +  highlightCode = true, +  filename = "unknown" +}, code) { +  try { +    const results = []; + +    for (const plugins of pluginPasses) { +      for (const plugin of plugins) { +        const { +          parserOverride +        } = plugin; + +        if (parserOverride) { +          const ast = parserOverride(code, parserOpts, _parser().parse); +          if (ast !== undefined) results.push(ast); +        } +      } +    } + +    if (results.length === 0) { +      return (0, _parser().parse)(code, parserOpts); +    } else if (results.length === 1) { +      yield* []; + +      if (typeof results[0].then === "function") { +        throw new Error(`You appear to be using an async parser plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); +      } + +      return results[0]; +    } + +    throw new Error("More than one plugin attempted to override parsing."); +  } catch (err) { +    if (err.code === "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED") { +      err.message += "\nConsider renaming the file to '.mjs', or setting sourceType:module " + "or sourceType:unambiguous in your Babel config for this file."; +    } + +    const { +      loc, +      missingPlugin +    } = err; + +    if (loc) { +      const codeFrame = (0, _codeFrame().codeFrameColumns)(code, { +        start: { +          line: loc.line, +          column: loc.column + 1 +        } +      }, { +        highlightCode +      }); + +      if (missingPlugin) { +        err.message = `${filename}: ` + (0, _missingPluginHelper.default)(missingPlugin[0], loc, codeFrame); +      } else { +        err.message = `${filename}: ${err.message}\n\n` + codeFrame; +      } + +      err.code = "BABEL_PARSE_ERROR"; +    } + +    throw err; +  } +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js b/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js new file mode 100644 index 0000000..aa6ae3f --- /dev/null +++ b/node_modules/@babel/core/lib/parser/util/missing-plugin-helper.js @@ -0,0 +1,323 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = generateMissingPluginMessage; +const pluginNameMap = { +  asyncDoExpressions: { +    syntax: { +      name: "@babel/plugin-syntax-async-do-expressions", +      url: "https://git.io/JYer8" +    } +  }, +  classProperties: { +    syntax: { +      name: "@babel/plugin-syntax-class-properties", +      url: "https://git.io/vb4yQ" +    }, +    transform: { +      name: "@babel/plugin-proposal-class-properties", +      url: "https://git.io/vb4SL" +    } +  }, +  classPrivateProperties: { +    syntax: { +      name: "@babel/plugin-syntax-class-properties", +      url: "https://git.io/vb4yQ" +    }, +    transform: { +      name: "@babel/plugin-proposal-class-properties", +      url: "https://git.io/vb4SL" +    } +  }, +  classPrivateMethods: { +    syntax: { +      name: "@babel/plugin-syntax-class-properties", +      url: "https://git.io/vb4yQ" +    }, +    transform: { +      name: "@babel/plugin-proposal-private-methods", +      url: "https://git.io/JvpRG" +    } +  }, +  classStaticBlock: { +    syntax: { +      name: "@babel/plugin-syntax-class-static-block", +      url: "https://git.io/JTLB6" +    }, +    transform: { +      name: "@babel/plugin-proposal-class-static-block", +      url: "https://git.io/JTLBP" +    } +  }, +  decimal: { +    syntax: { +      name: "@babel/plugin-syntax-decimal", +      url: "https://git.io/JfKOH" +    } +  }, +  decorators: { +    syntax: { +      name: "@babel/plugin-syntax-decorators", +      url: "https://git.io/vb4y9" +    }, +    transform: { +      name: "@babel/plugin-proposal-decorators", +      url: "https://git.io/vb4ST" +    } +  }, +  doExpressions: { +    syntax: { +      name: "@babel/plugin-syntax-do-expressions", +      url: "https://git.io/vb4yh" +    }, +    transform: { +      name: "@babel/plugin-proposal-do-expressions", +      url: "https://git.io/vb4S3" +    } +  }, +  dynamicImport: { +    syntax: { +      name: "@babel/plugin-syntax-dynamic-import", +      url: "https://git.io/vb4Sv" +    } +  }, +  exportDefaultFrom: { +    syntax: { +      name: "@babel/plugin-syntax-export-default-from", +      url: "https://git.io/vb4SO" +    }, +    transform: { +      name: "@babel/plugin-proposal-export-default-from", +      url: "https://git.io/vb4yH" +    } +  }, +  exportNamespaceFrom: { +    syntax: { +      name: "@babel/plugin-syntax-export-namespace-from", +      url: "https://git.io/vb4Sf" +    }, +    transform: { +      name: "@babel/plugin-proposal-export-namespace-from", +      url: "https://git.io/vb4SG" +    } +  }, +  flow: { +    syntax: { +      name: "@babel/plugin-syntax-flow", +      url: "https://git.io/vb4yb" +    }, +    transform: { +      name: "@babel/preset-flow", +      url: "https://git.io/JfeDn" +    } +  }, +  functionBind: { +    syntax: { +      name: "@babel/plugin-syntax-function-bind", +      url: "https://git.io/vb4y7" +    }, +    transform: { +      name: "@babel/plugin-proposal-function-bind", +      url: "https://git.io/vb4St" +    } +  }, +  functionSent: { +    syntax: { +      name: "@babel/plugin-syntax-function-sent", +      url: "https://git.io/vb4yN" +    }, +    transform: { +      name: "@babel/plugin-proposal-function-sent", +      url: "https://git.io/vb4SZ" +    } +  }, +  importMeta: { +    syntax: { +      name: "@babel/plugin-syntax-import-meta", +      url: "https://git.io/vbKK6" +    } +  }, +  jsx: { +    syntax: { +      name: "@babel/plugin-syntax-jsx", +      url: "https://git.io/vb4yA" +    }, +    transform: { +      name: "@babel/preset-react", +      url: "https://git.io/JfeDR" +    } +  }, +  importAssertions: { +    syntax: { +      name: "@babel/plugin-syntax-import-assertions", +      url: "https://git.io/JUbkv" +    } +  }, +  moduleStringNames: { +    syntax: { +      name: "@babel/plugin-syntax-module-string-names", +      url: "https://git.io/JTL8G" +    } +  }, +  numericSeparator: { +    syntax: { +      name: "@babel/plugin-syntax-numeric-separator", +      url: "https://git.io/vb4Sq" +    }, +    transform: { +      name: "@babel/plugin-proposal-numeric-separator", +      url: "https://git.io/vb4yS" +    } +  }, +  optionalChaining: { +    syntax: { +      name: "@babel/plugin-syntax-optional-chaining", +      url: "https://git.io/vb4Sc" +    }, +    transform: { +      name: "@babel/plugin-proposal-optional-chaining", +      url: "https://git.io/vb4Sk" +    } +  }, +  pipelineOperator: { +    syntax: { +      name: "@babel/plugin-syntax-pipeline-operator", +      url: "https://git.io/vb4yj" +    }, +    transform: { +      name: "@babel/plugin-proposal-pipeline-operator", +      url: "https://git.io/vb4SU" +    } +  }, +  privateIn: { +    syntax: { +      name: "@babel/plugin-syntax-private-property-in-object", +      url: "https://git.io/JfK3q" +    }, +    transform: { +      name: "@babel/plugin-proposal-private-property-in-object", +      url: "https://git.io/JfK3O" +    } +  }, +  recordAndTuple: { +    syntax: { +      name: "@babel/plugin-syntax-record-and-tuple", +      url: "https://git.io/JvKp3" +    } +  }, +  regexpUnicodeSets: { +    syntax: { +      name: "@babel/plugin-syntax-unicode-sets-regex", +      url: "https://git.io/J9GTd" +    }, +    transform: { +      name: "@babel/plugin-proposal-unicode-sets-regex", +      url: "https://git.io/J9GTQ" +    } +  }, +  throwExpressions: { +    syntax: { +      name: "@babel/plugin-syntax-throw-expressions", +      url: "https://git.io/vb4SJ" +    }, +    transform: { +      name: "@babel/plugin-proposal-throw-expressions", +      url: "https://git.io/vb4yF" +    } +  }, +  typescript: { +    syntax: { +      name: "@babel/plugin-syntax-typescript", +      url: "https://git.io/vb4SC" +    }, +    transform: { +      name: "@babel/preset-typescript", +      url: "https://git.io/JfeDz" +    } +  }, +  asyncGenerators: { +    syntax: { +      name: "@babel/plugin-syntax-async-generators", +      url: "https://git.io/vb4SY" +    }, +    transform: { +      name: "@babel/plugin-proposal-async-generator-functions", +      url: "https://git.io/vb4yp" +    } +  }, +  logicalAssignment: { +    syntax: { +      name: "@babel/plugin-syntax-logical-assignment-operators", +      url: "https://git.io/vAlBp" +    }, +    transform: { +      name: "@babel/plugin-proposal-logical-assignment-operators", +      url: "https://git.io/vAlRe" +    } +  }, +  nullishCoalescingOperator: { +    syntax: { +      name: "@babel/plugin-syntax-nullish-coalescing-operator", +      url: "https://git.io/vb4yx" +    }, +    transform: { +      name: "@babel/plugin-proposal-nullish-coalescing-operator", +      url: "https://git.io/vb4Se" +    } +  }, +  objectRestSpread: { +    syntax: { +      name: "@babel/plugin-syntax-object-rest-spread", +      url: "https://git.io/vb4y5" +    }, +    transform: { +      name: "@babel/plugin-proposal-object-rest-spread", +      url: "https://git.io/vb4Ss" +    } +  }, +  optionalCatchBinding: { +    syntax: { +      name: "@babel/plugin-syntax-optional-catch-binding", +      url: "https://git.io/vb4Sn" +    }, +    transform: { +      name: "@babel/plugin-proposal-optional-catch-binding", +      url: "https://git.io/vb4SI" +    } +  } +}; +pluginNameMap.privateIn.syntax = pluginNameMap.privateIn.transform; + +const getNameURLCombination = ({ +  name, +  url +}) => `${name} (${url})`; + +function generateMissingPluginMessage(missingPluginName, loc, codeFrame) { +  let helpMessage = `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` + `(${loc.line}:${loc.column + 1}):\n\n` + codeFrame; +  const pluginInfo = pluginNameMap[missingPluginName]; + +  if (pluginInfo) { +    const { +      syntax: syntaxPlugin, +      transform: transformPlugin +    } = pluginInfo; + +    if (syntaxPlugin) { +      const syntaxPluginInfo = getNameURLCombination(syntaxPlugin); + +      if (transformPlugin) { +        const transformPluginInfo = getNameURLCombination(transformPlugin); +        const sectionType = transformPlugin.name.startsWith("@babel/plugin") ? "plugins" : "presets"; +        helpMessage += `\n\nAdd ${transformPluginInfo} to the '${sectionType}' section of your Babel config to enable transformation. +If you want to leave it as-is, add ${syntaxPluginInfo} to the 'plugins' section to enable parsing.`; +      } else { +        helpMessage += `\n\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` + `to enable parsing.`; +      } +    } +  } + +  return helpMessage; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/tools/build-external-helpers.js b/node_modules/@babel/core/lib/tools/build-external-helpers.js new file mode 100644 index 0000000..94d85e7 --- /dev/null +++ b/node_modules/@babel/core/lib/tools/build-external-helpers.js @@ -0,0 +1,164 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = _default; + +function helpers() { +  const data = require("@babel/helpers"); + +  helpers = function () { +    return data; +  }; + +  return data; +} + +function _generator() { +  const data = require("@babel/generator"); + +  _generator = function () { +    return data; +  }; + +  return data; +} + +function _template() { +  const data = require("@babel/template"); + +  _template = function () { +    return data; +  }; + +  return data; +} + +function _t() { +  const data = require("@babel/types"); + +  _t = function () { +    return data; +  }; + +  return data; +} + +var _file = require("../transformation/file/file"); + +const { +  arrayExpression, +  assignmentExpression, +  binaryExpression, +  blockStatement, +  callExpression, +  cloneNode, +  conditionalExpression, +  exportNamedDeclaration, +  exportSpecifier, +  expressionStatement, +  functionExpression, +  identifier, +  memberExpression, +  objectExpression, +  program, +  stringLiteral, +  unaryExpression, +  variableDeclaration, +  variableDeclarator +} = _t(); + +const buildUmdWrapper = replacements => _template().default.statement` +    (function (root, factory) { +      if (typeof define === "function" && define.amd) { +        define(AMD_ARGUMENTS, factory); +      } else if (typeof exports === "object") { +        factory(COMMON_ARGUMENTS); +      } else { +        factory(BROWSER_ARGUMENTS); +      } +    })(UMD_ROOT, function (FACTORY_PARAMETERS) { +      FACTORY_BODY +    }); +  `(replacements); + +function buildGlobal(allowlist) { +  const namespace = identifier("babelHelpers"); +  const body = []; +  const container = functionExpression(null, [identifier("global")], blockStatement(body)); +  const tree = program([expressionStatement(callExpression(container, [conditionalExpression(binaryExpression("===", unaryExpression("typeof", identifier("global")), stringLiteral("undefined")), identifier("self"), identifier("global"))]))]); +  body.push(variableDeclaration("var", [variableDeclarator(namespace, assignmentExpression("=", memberExpression(identifier("global"), namespace), objectExpression([])))])); +  buildHelpers(body, namespace, allowlist); +  return tree; +} + +function buildModule(allowlist) { +  const body = []; +  const refs = buildHelpers(body, null, allowlist); +  body.unshift(exportNamedDeclaration(null, Object.keys(refs).map(name => { +    return exportSpecifier(cloneNode(refs[name]), identifier(name)); +  }))); +  return program(body, [], "module"); +} + +function buildUmd(allowlist) { +  const namespace = identifier("babelHelpers"); +  const body = []; +  body.push(variableDeclaration("var", [variableDeclarator(namespace, identifier("global"))])); +  buildHelpers(body, namespace, allowlist); +  return program([buildUmdWrapper({ +    FACTORY_PARAMETERS: identifier("global"), +    BROWSER_ARGUMENTS: assignmentExpression("=", memberExpression(identifier("root"), namespace), objectExpression([])), +    COMMON_ARGUMENTS: identifier("exports"), +    AMD_ARGUMENTS: arrayExpression([stringLiteral("exports")]), +    FACTORY_BODY: body, +    UMD_ROOT: identifier("this") +  })]); +} + +function buildVar(allowlist) { +  const namespace = identifier("babelHelpers"); +  const body = []; +  body.push(variableDeclaration("var", [variableDeclarator(namespace, objectExpression([]))])); +  const tree = program(body); +  buildHelpers(body, namespace, allowlist); +  body.push(expressionStatement(namespace)); +  return tree; +} + +function buildHelpers(body, namespace, allowlist) { +  const getHelperReference = name => { +    return namespace ? memberExpression(namespace, identifier(name)) : identifier(`_${name}`); +  }; + +  const refs = {}; +  helpers().list.forEach(function (name) { +    if (allowlist && allowlist.indexOf(name) < 0) return; +    const ref = refs[name] = getHelperReference(name); +    helpers().ensure(name, _file.default); +    const { +      nodes +    } = helpers().get(name, getHelperReference, ref); +    body.push(...nodes); +  }); +  return refs; +} + +function _default(allowlist, outputType = "global") { +  let tree; +  const build = { +    global: buildGlobal, +    module: buildModule, +    umd: buildUmd, +    var: buildVar +  }[outputType]; + +  if (build) { +    tree = build(allowlist); +  } else { +    throw new Error(`Unsupported output type ${outputType}`); +  } + +  return (0, _generator().default)(tree).code; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform-ast.js b/node_modules/@babel/core/lib/transform-ast.js new file mode 100644 index 0000000..61fb222 --- /dev/null +++ b/node_modules/@babel/core/lib/transform-ast.js @@ -0,0 +1,46 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.transformFromAstSync = exports.transformFromAstAsync = exports.transformFromAst = void 0; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _config = require("./config"); + +var _transformation = require("./transformation"); + +const transformFromAstRunner = _gensync()(function* (ast, code, opts) { +  const config = yield* (0, _config.default)(opts); +  if (config === null) return null; +  if (!ast) throw new Error("No AST given"); +  return yield* (0, _transformation.run)(config, code, ast); +}); + +const transformFromAst = function transformFromAst(ast, code, opts, callback) { +  if (typeof opts === "function") { +    callback = opts; +    opts = undefined; +  } + +  if (callback === undefined) { +    return transformFromAstRunner.sync(ast, code, opts); +  } + +  transformFromAstRunner.errback(ast, code, opts, callback); +}; + +exports.transformFromAst = transformFromAst; +const transformFromAstSync = transformFromAstRunner.sync; +exports.transformFromAstSync = transformFromAstSync; +const transformFromAstAsync = transformFromAstRunner.async; +exports.transformFromAstAsync = transformFromAstAsync;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform-file-browser.js b/node_modules/@babel/core/lib/transform-file-browser.js new file mode 100644 index 0000000..3371a1e --- /dev/null +++ b/node_modules/@babel/core/lib/transform-file-browser.js @@ -0,0 +1,26 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.transformFile = void 0; +exports.transformFileAsync = transformFileAsync; +exports.transformFileSync = transformFileSync; + +const transformFile = function transformFile(filename, opts, callback) { +  if (typeof opts === "function") { +    callback = opts; +  } + +  callback(new Error("Transforming files is not supported in browsers"), null); +}; + +exports.transformFile = transformFile; + +function transformFileSync() { +  throw new Error("Transforming files is not supported in browsers"); +} + +function transformFileAsync() { +  return Promise.reject(new Error("Transforming files is not supported in browsers")); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform-file.js b/node_modules/@babel/core/lib/transform-file.js new file mode 100644 index 0000000..18075ff --- /dev/null +++ b/node_modules/@babel/core/lib/transform-file.js @@ -0,0 +1,41 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.transformFileSync = exports.transformFileAsync = exports.transformFile = void 0; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _config = require("./config"); + +var _transformation = require("./transformation"); + +var fs = require("./gensync-utils/fs"); + +({}); + +const transformFileRunner = _gensync()(function* (filename, opts) { +  const options = Object.assign({}, opts, { +    filename +  }); +  const config = yield* (0, _config.default)(options); +  if (config === null) return null; +  const code = yield* fs.readFile(filename, "utf8"); +  return yield* (0, _transformation.run)(config, code); +}); + +const transformFile = transformFileRunner.errback; +exports.transformFile = transformFile; +const transformFileSync = transformFileRunner.sync; +exports.transformFileSync = transformFileSync; +const transformFileAsync = transformFileRunner.async; +exports.transformFileAsync = transformFileAsync;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transform.js b/node_modules/@babel/core/lib/transform.js new file mode 100644 index 0000000..538c3ed --- /dev/null +++ b/node_modules/@babel/core/lib/transform.js @@ -0,0 +1,42 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.transformSync = exports.transformAsync = exports.transform = void 0; + +function _gensync() { +  const data = require("gensync"); + +  _gensync = function () { +    return data; +  }; + +  return data; +} + +var _config = require("./config"); + +var _transformation = require("./transformation"); + +const transformRunner = _gensync()(function* transform(code, opts) { +  const config = yield* (0, _config.default)(opts); +  if (config === null) return null; +  return yield* (0, _transformation.run)(config, code); +}); + +const transform = function transform(code, opts, callback) { +  if (typeof opts === "function") { +    callback = opts; +    opts = undefined; +  } + +  if (callback === undefined) return transformRunner.sync(code, opts); +  transformRunner.errback(code, opts, callback); +}; + +exports.transform = transform; +const transformSync = transformRunner.sync; +exports.transformSync = transformSync; +const transformAsync = transformRunner.async; +exports.transformAsync = transformAsync;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js b/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js new file mode 100644 index 0000000..a3b0b41 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/block-hoist-plugin.js @@ -0,0 +1,94 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = loadBlockHoistPlugin; + +function _traverse() { +  const data = require("@babel/traverse"); + +  _traverse = function () { +    return data; +  }; + +  return data; +} + +var _plugin = require("../config/plugin"); + +let LOADED_PLUGIN; + +function loadBlockHoistPlugin() { +  if (!LOADED_PLUGIN) { +    LOADED_PLUGIN = new _plugin.default(Object.assign({}, blockHoistPlugin, { +      visitor: _traverse().default.explode(blockHoistPlugin.visitor) +    }), {}); +  } + +  return LOADED_PLUGIN; +} + +function priority(bodyNode) { +  const priority = bodyNode == null ? void 0 : bodyNode._blockHoist; +  if (priority == null) return 1; +  if (priority === true) return 2; +  return priority; +} + +function stableSort(body) { +  const buckets = Object.create(null); + +  for (let i = 0; i < body.length; i++) { +    const n = body[i]; +    const p = priority(n); +    const bucket = buckets[p] || (buckets[p] = []); +    bucket.push(n); +  } + +  const keys = Object.keys(buckets).map(k => +k).sort((a, b) => b - a); +  let index = 0; + +  for (const key of keys) { +    const bucket = buckets[key]; + +    for (const n of bucket) { +      body[index++] = n; +    } +  } + +  return body; +} + +const blockHoistPlugin = { +  name: "internal.blockHoist", +  visitor: { +    Block: { +      exit({ +        node +      }) { +        const { +          body +        } = node; +        let max = Math.pow(2, 30) - 1; +        let hasChange = false; + +        for (let i = 0; i < body.length; i++) { +          const n = body[i]; +          const p = priority(n); + +          if (p > max) { +            hasChange = true; +            break; +          } + +          max = p; +        } + +        if (!hasChange) return; +        node.body = stableSort(body.slice()); +      } + +    } +  } +};
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/file/file.js b/node_modules/@babel/core/lib/transformation/file/file.js new file mode 100644 index 0000000..3728ec5 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/file/file.js @@ -0,0 +1,254 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = void 0; + +function helpers() { +  const data = require("@babel/helpers"); + +  helpers = function () { +    return data; +  }; + +  return data; +} + +function _traverse() { +  const data = require("@babel/traverse"); + +  _traverse = function () { +    return data; +  }; + +  return data; +} + +function _codeFrame() { +  const data = require("@babel/code-frame"); + +  _codeFrame = function () { +    return data; +  }; + +  return data; +} + +function _t() { +  const data = require("@babel/types"); + +  _t = function () { +    return data; +  }; + +  return data; +} + +function _helperModuleTransforms() { +  const data = require("@babel/helper-module-transforms"); + +  _helperModuleTransforms = function () { +    return data; +  }; + +  return data; +} + +function _semver() { +  const data = require("semver"); + +  _semver = function () { +    return data; +  }; + +  return data; +} + +const { +  cloneNode, +  interpreterDirective +} = _t(); + +const errorVisitor = { +  enter(path, state) { +    const loc = path.node.loc; + +    if (loc) { +      state.loc = loc; +      path.stop(); +    } +  } + +}; + +class File { +  constructor(options, { +    code, +    ast, +    inputMap +  }) { +    this._map = new Map(); +    this.opts = void 0; +    this.declarations = {}; +    this.path = null; +    this.ast = {}; +    this.scope = void 0; +    this.metadata = {}; +    this.code = ""; +    this.inputMap = null; +    this.hub = { +      file: this, +      getCode: () => this.code, +      getScope: () => this.scope, +      addHelper: this.addHelper.bind(this), +      buildError: this.buildCodeFrameError.bind(this) +    }; +    this.opts = options; +    this.code = code; +    this.ast = ast; +    this.inputMap = inputMap; +    this.path = _traverse().NodePath.get({ +      hub: this.hub, +      parentPath: null, +      parent: this.ast, +      container: this.ast, +      key: "program" +    }).setContext(); +    this.scope = this.path.scope; +  } + +  get shebang() { +    const { +      interpreter +    } = this.path.node; +    return interpreter ? interpreter.value : ""; +  } + +  set shebang(value) { +    if (value) { +      this.path.get("interpreter").replaceWith(interpreterDirective(value)); +    } else { +      this.path.get("interpreter").remove(); +    } +  } + +  set(key, val) { +    if (key === "helpersNamespace") { +      throw new Error("Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility." + "If you are using @babel/plugin-external-helpers you will need to use a newer " + "version than the one you currently have installed. " + "If you have your own implementation, you'll want to explore using 'helperGenerator' " + "alongside 'file.availableHelper()'."); +    } + +    this._map.set(key, val); +  } + +  get(key) { +    return this._map.get(key); +  } + +  has(key) { +    return this._map.has(key); +  } + +  getModuleName() { +    return (0, _helperModuleTransforms().getModuleName)(this.opts, this.opts); +  } + +  addImport() { +    throw new Error("This API has been removed. If you're looking for this " + "functionality in Babel 7, you should import the " + "'@babel/helper-module-imports' module and use the functions exposed " + " from that module, such as 'addNamed' or 'addDefault'."); +  } + +  availableHelper(name, versionRange) { +    let minVersion; + +    try { +      minVersion = helpers().minVersion(name); +    } catch (err) { +      if (err.code !== "BABEL_HELPER_UNKNOWN") throw err; +      return false; +    } + +    if (typeof versionRange !== "string") return true; +    if (_semver().valid(versionRange)) versionRange = `^${versionRange}`; +    return !_semver().intersects(`<${minVersion}`, versionRange) && !_semver().intersects(`>=8.0.0`, versionRange); +  } + +  addHelper(name) { +    const declar = this.declarations[name]; +    if (declar) return cloneNode(declar); +    const generator = this.get("helperGenerator"); + +    if (generator) { +      const res = generator(name); +      if (res) return res; +    } + +    helpers().ensure(name, File); +    const uid = this.declarations[name] = this.scope.generateUidIdentifier(name); +    const dependencies = {}; + +    for (const dep of helpers().getDependencies(name)) { +      dependencies[dep] = this.addHelper(dep); +    } + +    const { +      nodes, +      globals +    } = helpers().get(name, dep => dependencies[dep], uid, Object.keys(this.scope.getAllBindings())); +    globals.forEach(name => { +      if (this.path.scope.hasBinding(name, true)) { +        this.path.scope.rename(name); +      } +    }); +    nodes.forEach(node => { +      node._compact = true; +    }); +    this.path.unshiftContainer("body", nodes); +    this.path.get("body").forEach(path => { +      if (nodes.indexOf(path.node) === -1) return; +      if (path.isVariableDeclaration()) this.scope.registerDeclaration(path); +    }); +    return uid; +  } + +  addTemplateObject() { +    throw new Error("This function has been moved into the template literal transform itself."); +  } + +  buildCodeFrameError(node, msg, _Error = SyntaxError) { +    let loc = node && (node.loc || node._loc); + +    if (!loc && node) { +      const state = { +        loc: null +      }; +      (0, _traverse().default)(node, errorVisitor, this.scope, state); +      loc = state.loc; +      let txt = "This is an error on an internal node. Probably an internal error."; +      if (loc) txt += " Location has been estimated."; +      msg += ` (${txt})`; +    } + +    if (loc) { +      const { +        highlightCode = true +      } = this.opts; +      msg += "\n" + (0, _codeFrame().codeFrameColumns)(this.code, { +        start: { +          line: loc.start.line, +          column: loc.start.column + 1 +        }, +        end: loc.end && loc.start.line === loc.end.line ? { +          line: loc.end.line, +          column: loc.end.column + 1 +        } : undefined +      }, { +        highlightCode +      }); +    } + +    return new _Error(msg); +  } + +} + +exports.default = File;
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/file/generate.js b/node_modules/@babel/core/lib/transformation/file/generate.js new file mode 100644 index 0000000..def05ca --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/file/generate.js @@ -0,0 +1,90 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = generateCode; + +function _convertSourceMap() { +  const data = require("convert-source-map"); + +  _convertSourceMap = function () { +    return data; +  }; + +  return data; +} + +function _generator() { +  const data = require("@babel/generator"); + +  _generator = function () { +    return data; +  }; + +  return data; +} + +var _mergeMap = require("./merge-map"); + +function generateCode(pluginPasses, file) { +  const { +    opts, +    ast, +    code, +    inputMap +  } = file; +  const { +    generatorOpts +  } = opts; +  const results = []; + +  for (const plugins of pluginPasses) { +    for (const plugin of plugins) { +      const { +        generatorOverride +      } = plugin; + +      if (generatorOverride) { +        const result = generatorOverride(ast, generatorOpts, code, _generator().default); +        if (result !== undefined) results.push(result); +      } +    } +  } + +  let result; + +  if (results.length === 0) { +    result = (0, _generator().default)(ast, generatorOpts, code); +  } else if (results.length === 1) { +    result = results[0]; + +    if (typeof result.then === "function") { +      throw new Error(`You appear to be using an async codegen plugin, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, ` + `you may need to upgrade your @babel/core version.`); +    } +  } else { +    throw new Error("More than one plugin attempted to override codegen."); +  } + +  let { +    code: outputCode, +    map: outputMap +  } = result; + +  if (outputMap && inputMap) { +    outputMap = (0, _mergeMap.default)(inputMap.toObject(), outputMap, generatorOpts.sourceFileName); +  } + +  if (opts.sourceMaps === "inline" || opts.sourceMaps === "both") { +    outputCode += "\n" + _convertSourceMap().fromObject(outputMap).toComment(); +  } + +  if (opts.sourceMaps === "inline") { +    outputMap = null; +  } + +  return { +    outputCode, +    outputMap +  }; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/file/merge-map.js b/node_modules/@babel/core/lib/transformation/file/merge-map.js new file mode 100644 index 0000000..af1da89 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/file/merge-map.js @@ -0,0 +1,43 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = mergeSourceMap; + +function _remapping() { +  const data = require("@ampproject/remapping"); + +  _remapping = function () { +    return data; +  }; + +  return data; +} + +function mergeSourceMap(inputMap, map, sourceFileName) { +  const source = sourceFileName.replace(/\\/g, "/"); +  let found = false; + +  const result = _remapping()(rootless(map), (s, ctx) => { +    if (s === source && !found) { +      found = true; +      ctx.source = ""; +      return rootless(inputMap); +    } + +    return null; +  }); + +  if (typeof inputMap.sourceRoot === "string") { +    result.sourceRoot = inputMap.sourceRoot; +  } + +  return Object.assign({}, result); +} + +function rootless(map) { +  return Object.assign({}, map, { +    sourceRoot: null +  }); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/index.js b/node_modules/@babel/core/lib/transformation/index.js new file mode 100644 index 0000000..1f8422e --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/index.js @@ -0,0 +1,127 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.run = run; + +function _traverse() { +  const data = require("@babel/traverse"); + +  _traverse = function () { +    return data; +  }; + +  return data; +} + +var _pluginPass = require("./plugin-pass"); + +var _blockHoistPlugin = require("./block-hoist-plugin"); + +var _normalizeOpts = require("./normalize-opts"); + +var _normalizeFile = require("./normalize-file"); + +var _generate = require("./file/generate"); + +var _deepArray = require("../config/helpers/deep-array"); + +function* run(config, code, ast) { +  const file = yield* (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast); +  const opts = file.opts; + +  try { +    yield* transformFile(file, config.passes); +  } catch (e) { +    var _opts$filename; + +    e.message = `${(_opts$filename = opts.filename) != null ? _opts$filename : "unknown"}: ${e.message}`; + +    if (!e.code) { +      e.code = "BABEL_TRANSFORM_ERROR"; +    } + +    throw e; +  } + +  let outputCode, outputMap; + +  try { +    if (opts.code !== false) { +      ({ +        outputCode, +        outputMap +      } = (0, _generate.default)(config.passes, file)); +    } +  } catch (e) { +    var _opts$filename2; + +    e.message = `${(_opts$filename2 = opts.filename) != null ? _opts$filename2 : "unknown"}: ${e.message}`; + +    if (!e.code) { +      e.code = "BABEL_GENERATE_ERROR"; +    } + +    throw e; +  } + +  return { +    metadata: file.metadata, +    options: opts, +    ast: opts.ast === true ? file.ast : null, +    code: outputCode === undefined ? null : outputCode, +    map: outputMap === undefined ? null : outputMap, +    sourceType: file.ast.program.sourceType, +    externalDependencies: (0, _deepArray.flattenToSet)(config.externalDependencies) +  }; +} + +function* transformFile(file, pluginPasses) { +  for (const pluginPairs of pluginPasses) { +    const passPairs = []; +    const passes = []; +    const visitors = []; + +    for (const plugin of pluginPairs.concat([(0, _blockHoistPlugin.default)()])) { +      const pass = new _pluginPass.default(file, plugin.key, plugin.options); +      passPairs.push([plugin, pass]); +      passes.push(pass); +      visitors.push(plugin.visitor); +    } + +    for (const [plugin, pass] of passPairs) { +      const fn = plugin.pre; + +      if (fn) { +        const result = fn.call(pass, file); +        yield* []; + +        if (isThenable(result)) { +          throw new Error(`You appear to be using an plugin with an async .pre, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); +        } +      } +    } + +    const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod); + +    (0, _traverse().default)(file.ast, visitor, file.scope); + +    for (const [plugin, pass] of passPairs) { +      const fn = plugin.post; + +      if (fn) { +        const result = fn.call(pass, file); +        yield* []; + +        if (isThenable(result)) { +          throw new Error(`You appear to be using an plugin with an async .post, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); +        } +      } +    } +  } +} + +function isThenable(val) { +  return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/normalize-file.js b/node_modules/@babel/core/lib/transformation/normalize-file.js new file mode 100644 index 0000000..dc434ed --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/normalize-file.js @@ -0,0 +1,167 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = normalizeFile; + +function _fs() { +  const data = require("fs"); + +  _fs = function () { +    return data; +  }; + +  return data; +} + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +function _debug() { +  const data = require("debug"); + +  _debug = function () { +    return data; +  }; + +  return data; +} + +function _t() { +  const data = require("@babel/types"); + +  _t = function () { +    return data; +  }; + +  return data; +} + +function _convertSourceMap() { +  const data = require("convert-source-map"); + +  _convertSourceMap = function () { +    return data; +  }; + +  return data; +} + +var _file = require("./file/file"); + +var _parser = require("../parser"); + +var _cloneDeep = require("./util/clone-deep"); + +const { +  file, +  traverseFast +} = _t(); + +const debug = _debug()("babel:transform:file"); + +const LARGE_INPUT_SOURCEMAP_THRESHOLD = 1000000; + +function* normalizeFile(pluginPasses, options, code, ast) { +  code = `${code || ""}`; + +  if (ast) { +    if (ast.type === "Program") { +      ast = file(ast, [], []); +    } else if (ast.type !== "File") { +      throw new Error("AST root must be a Program or File node"); +    } + +    if (options.cloneInputAst) { +      ast = (0, _cloneDeep.default)(ast); +    } +  } else { +    ast = yield* (0, _parser.default)(pluginPasses, options, code); +  } + +  let inputMap = null; + +  if (options.inputSourceMap !== false) { +    if (typeof options.inputSourceMap === "object") { +      inputMap = _convertSourceMap().fromObject(options.inputSourceMap); +    } + +    if (!inputMap) { +      const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast); + +      if (lastComment) { +        try { +          inputMap = _convertSourceMap().fromComment(lastComment); +        } catch (err) { +          debug("discarding unknown inline input sourcemap", err); +        } +      } +    } + +    if (!inputMap) { +      const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast); + +      if (typeof options.filename === "string" && lastComment) { +        try { +          const match = EXTERNAL_SOURCEMAP_REGEX.exec(lastComment); + +          const inputMapContent = _fs().readFileSync(_path().resolve(_path().dirname(options.filename), match[1])); + +          if (inputMapContent.length > LARGE_INPUT_SOURCEMAP_THRESHOLD) { +            debug("skip merging input map > 1 MB"); +          } else { +            inputMap = _convertSourceMap().fromJSON(inputMapContent); +          } +        } catch (err) { +          debug("discarding unknown file input sourcemap", err); +        } +      } else if (lastComment) { +        debug("discarding un-loadable file input sourcemap"); +      } +    } +  } + +  return new _file.default(options, { +    code, +    ast, +    inputMap +  }); +} + +const INLINE_SOURCEMAP_REGEX = /^[@#]\s+sourceMappingURL=data:(?:application|text)\/json;(?:charset[:=]\S+?;)?base64,(?:.*)$/; +const EXTERNAL_SOURCEMAP_REGEX = /^[@#][ \t]+sourceMappingURL=([^\s'"`]+)[ \t]*$/; + +function extractCommentsFromList(regex, comments, lastComment) { +  if (comments) { +    comments = comments.filter(({ +      value +    }) => { +      if (regex.test(value)) { +        lastComment = value; +        return false; +      } + +      return true; +    }); +  } + +  return [comments, lastComment]; +} + +function extractComments(regex, ast) { +  let lastComment = null; +  traverseFast(ast, node => { +    [node.leadingComments, lastComment] = extractCommentsFromList(regex, node.leadingComments, lastComment); +    [node.innerComments, lastComment] = extractCommentsFromList(regex, node.innerComments, lastComment); +    [node.trailingComments, lastComment] = extractCommentsFromList(regex, node.trailingComments, lastComment); +  }); +  return lastComment; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/normalize-opts.js b/node_modules/@babel/core/lib/transformation/normalize-opts.js new file mode 100644 index 0000000..6e2cb00 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/normalize-opts.js @@ -0,0 +1,62 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = normalizeOptions; + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +function normalizeOptions(config) { +  const { +    filename, +    cwd, +    filenameRelative = typeof filename === "string" ? _path().relative(cwd, filename) : "unknown", +    sourceType = "module", +    inputSourceMap, +    sourceMaps = !!inputSourceMap, +    sourceRoot = config.options.moduleRoot, +    sourceFileName = _path().basename(filenameRelative), +    comments = true, +    compact = "auto" +  } = config.options; +  const opts = config.options; +  const options = Object.assign({}, opts, { +    parserOpts: Object.assign({ +      sourceType: _path().extname(filenameRelative) === ".mjs" ? "module" : sourceType, +      sourceFileName: filename, +      plugins: [] +    }, opts.parserOpts), +    generatorOpts: Object.assign({ +      filename, +      auxiliaryCommentBefore: opts.auxiliaryCommentBefore, +      auxiliaryCommentAfter: opts.auxiliaryCommentAfter, +      retainLines: opts.retainLines, +      comments, +      shouldPrintComment: opts.shouldPrintComment, +      compact, +      minified: opts.minified, +      sourceMaps, +      sourceRoot, +      sourceFileName +    }, opts.generatorOpts) +  }); + +  for (const plugins of config.passes) { +    for (const plugin of plugins) { +      if (plugin.manipulateOptions) { +        plugin.manipulateOptions(options, options.parserOpts); +      } +    } +  } + +  return options; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/plugin-pass.js b/node_modules/@babel/core/lib/transformation/plugin-pass.js new file mode 100644 index 0000000..920558a --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/plugin-pass.js @@ -0,0 +1,54 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = void 0; + +class PluginPass { +  constructor(file, key, options) { +    this._map = new Map(); +    this.key = void 0; +    this.file = void 0; +    this.opts = void 0; +    this.cwd = void 0; +    this.filename = void 0; +    this.key = key; +    this.file = file; +    this.opts = options || {}; +    this.cwd = file.opts.cwd; +    this.filename = file.opts.filename; +  } + +  set(key, val) { +    this._map.set(key, val); +  } + +  get(key) { +    return this._map.get(key); +  } + +  availableHelper(name, versionRange) { +    return this.file.availableHelper(name, versionRange); +  } + +  addHelper(name) { +    return this.file.addHelper(name); +  } + +  addImport() { +    return this.file.addImport(); +  } + +  buildCodeFrameError(node, msg, _Error) { +    return this.file.buildCodeFrameError(node, msg, _Error); +  } + +} + +exports.default = PluginPass; +{ +  PluginPass.prototype.getModuleName = function getModuleName() { +    return this.file.getModuleName(); +  }; +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/util/clone-deep-browser.js b/node_modules/@babel/core/lib/transformation/util/clone-deep-browser.js new file mode 100644 index 0000000..a42de82 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/util/clone-deep-browser.js @@ -0,0 +1,25 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = _default; +const serialized = "$$ babel internal serialized type" + Math.random(); + +function serialize(key, value) { +  if (typeof value !== "bigint") return value; +  return { +    [serialized]: "BigInt", +    value: value.toString() +  }; +} + +function revive(key, value) { +  if (!value || typeof value !== "object") return value; +  if (value[serialized] !== "BigInt") return value; +  return BigInt(value.value); +} + +function _default(value) { +  return JSON.parse(JSON.stringify(value, serialize), revive); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/transformation/util/clone-deep.js b/node_modules/@babel/core/lib/transformation/util/clone-deep.js new file mode 100644 index 0000000..35fbd09 --- /dev/null +++ b/node_modules/@babel/core/lib/transformation/util/clone-deep.js @@ -0,0 +1,26 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.default = _default; + +function _v() { +  const data = require("v8"); + +  _v = function () { +    return data; +  }; + +  return data; +} + +var _cloneDeepBrowser = require("./clone-deep-browser"); + +function _default(value) { +  if (_v().deserialize && _v().serialize) { +    return _v().deserialize(_v().serialize(value)); +  } + +  return (0, _cloneDeepBrowser.default)(value); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/lib/vendor/import-meta-resolve.js b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js new file mode 100644 index 0000000..ce8d403 --- /dev/null +++ b/node_modules/@babel/core/lib/vendor/import-meta-resolve.js @@ -0,0 +1,3312 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { +  value: true +}); +exports.moduleResolve = moduleResolve; +exports.resolve = resolve; + +function _url() { +  const data = require("url"); + +  _url = function () { +    return data; +  }; + +  return data; +} + +function _fs() { +  const data = _interopRequireWildcard(require("fs"), true); + +  _fs = function () { +    return data; +  }; + +  return data; +} + +function _path() { +  const data = require("path"); + +  _path = function () { +    return data; +  }; + +  return data; +} + +function _assert() { +  const data = require("assert"); + +  _assert = function () { +    return data; +  }; + +  return data; +} + +function _util() { +  const data = require("util"); + +  _util = function () { +    return data; +  }; + +  return data; +} + +function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } + +function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } + +function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } + +function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } + +function createCommonjsModule(fn) { +  var module = { +    exports: {} +  }; +  return fn(module, module.exports), module.exports; +} + +const SEMVER_SPEC_VERSION = '2.0.0'; +const MAX_LENGTH$2 = 256; +const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || 9007199254740991; +const MAX_SAFE_COMPONENT_LENGTH = 16; +var constants = { +  SEMVER_SPEC_VERSION, +  MAX_LENGTH: MAX_LENGTH$2, +  MAX_SAFE_INTEGER: MAX_SAFE_INTEGER$1, +  MAX_SAFE_COMPONENT_LENGTH +}; +const debug = typeof process === 'object' && process.env && process.env.NODE_DEBUG && /\bsemver\b/i.test(process.env.NODE_DEBUG) ? (...args) => console.error('SEMVER', ...args) : () => {}; +var debug_1 = debug; +var re_1 = createCommonjsModule(function (module, exports) { +  const { +    MAX_SAFE_COMPONENT_LENGTH +  } = constants; +  exports = module.exports = {}; +  const re = exports.re = []; +  const src = exports.src = []; +  const t = exports.t = {}; +  let R = 0; + +  const createToken = (name, value, isGlobal) => { +    const index = R++; +    debug_1(index, value); +    t[name] = index; +    src[index] = value; +    re[index] = new RegExp(value, isGlobal ? 'g' : undefined); +  }; + +  createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); +  createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); +  createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); +  createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})`); +  createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); +  createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]}|${src[t.NONNUMERICIDENTIFIER]})`); +  createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]}|${src[t.NONNUMERICIDENTIFIER]})`); +  createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]}(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); +  createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); +  createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); +  createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER]}(?:\\.${src[t.BUILDIDENTIFIER]})*))`); +  createToken('FULLPLAIN', `v?${src[t.MAINVERSION]}${src[t.PRERELEASE]}?${src[t.BUILD]}?`); +  createToken('FULL', `^${src[t.FULLPLAIN]}$`); +  createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE]}${src[t.PRERELEASELOOSE]}?${src[t.BUILD]}?`); +  createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); +  createToken('GTLT', '((?:<|>)?=?)'); +  createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); +  createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); +  createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:${src[t.PRERELEASE]})?${src[t.BUILD]}?` + `)?)?`); +  createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:${src[t.PRERELEASELOOSE]})?${src[t.BUILD]}?` + `)?)?`); +  createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); +  createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); +  createToken('COERCE', `${'(^|[^\\d])' + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:$|[^\\d])`); +  createToken('COERCERTL', src[t.COERCE], true); +  createToken('LONETILDE', '(?:~>?)'); +  createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); +  exports.tildeTrimReplace = '$1~'; +  createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); +  createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); +  createToken('LONECARET', '(?:\\^)'); +  createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); +  exports.caretTrimReplace = '$1^'; +  createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); +  createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); +  createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); +  createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); +  createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); +  exports.comparatorTrimReplace = '$1$2$3'; +  createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAIN]})` + `\\s*$`); +  createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAINLOOSE]})` + `\\s*$`); +  createToken('STAR', '(<|>)?=?\\s*\\*'); +  createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$'); +  createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$'); +}); +const opts = ['includePrerelease', 'loose', 'rtl']; + +const parseOptions = options => !options ? {} : typeof options !== 'object' ? { +  loose: true +} : opts.filter(k => options[k]).reduce((options, k) => { +  options[k] = true; +  return options; +}, {}); + +var parseOptions_1 = parseOptions; +const numeric = /^[0-9]+$/; + +const compareIdentifiers$1 = (a, b) => { +  const anum = numeric.test(a); +  const bnum = numeric.test(b); + +  if (anum && bnum) { +    a = +a; +    b = +b; +  } + +  return a === b ? 0 : anum && !bnum ? -1 : bnum && !anum ? 1 : a < b ? -1 : 1; +}; + +const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); + +var identifiers = { +  compareIdentifiers: compareIdentifiers$1, +  rcompareIdentifiers +}; +const { +  MAX_LENGTH: MAX_LENGTH$1, +  MAX_SAFE_INTEGER +} = constants; +const { +  re: re$4, +  t: t$4 +} = re_1; +const { +  compareIdentifiers +} = identifiers; + +class SemVer { +  constructor(version, options) { +    options = parseOptions_1(options); + +    if (version instanceof SemVer) { +      if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { +        return version; +      } else { +        version = version.version; +      } +    } else if (typeof version !== 'string') { +      throw new TypeError(`Invalid Version: ${version}`); +    } + +    if (version.length > MAX_LENGTH$1) { +      throw new TypeError(`version is longer than ${MAX_LENGTH$1} characters`); +    } + +    debug_1('SemVer', version, options); +    this.options = options; +    this.loose = !!options.loose; +    this.includePrerelease = !!options.includePrerelease; +    const m = version.trim().match(options.loose ? re$4[t$4.LOOSE] : re$4[t$4.FULL]); + +    if (!m) { +      throw new TypeError(`Invalid Version: ${version}`); +    } + +    this.raw = version; +    this.major = +m[1]; +    this.minor = +m[2]; +    this.patch = +m[3]; + +    if (this.major > MAX_SAFE_INTEGER || this.major < 0) { +      throw new TypeError('Invalid major version'); +    } + +    if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { +      throw new TypeError('Invalid minor version'); +    } + +    if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { +      throw new TypeError('Invalid patch version'); +    } + +    if (!m[4]) { +      this.prerelease = []; +    } else { +      this.prerelease = m[4].split('.').map(id => { +        if (/^[0-9]+$/.test(id)) { +          const num = +id; + +          if (num >= 0 && num < MAX_SAFE_INTEGER) { +            return num; +          } +        } + +        return id; +      }); +    } + +    this.build = m[5] ? m[5].split('.') : []; +    this.format(); +  } + +  format() { +    this.version = `${this.major}.${this.minor}.${this.patch}`; + +    if (this.prerelease.length) { +      this.version += `-${this.prerelease.join('.')}`; +    } + +    return this.version; +  } + +  toString() { +    return this.version; +  } + +  compare(other) { +    debug_1('SemVer.compare', this.version, this.options, other); + +    if (!(other instanceof SemVer)) { +      if (typeof other === 'string' && other === this.version) { +        return 0; +      } + +      other = new SemVer(other, this.options); +    } + +    if (other.version === this.version) { +      return 0; +    } + +    return this.compareMain(other) || this.comparePre(other); +  } + +  compareMain(other) { +    if (!(other instanceof SemVer)) { +      other = new SemVer(other, this.options); +    } + +    return compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch); +  } + +  comparePre(other) { +    if (!(other instanceof SemVer)) { +      other = new SemVer(other, this.options); +    } + +    if (this.prerelease.length && !other.prerelease.length) { +      return -1; +    } else if (!this.prerelease.length && other.prerelease.length) { +      return 1; +    } else if (!this.prerelease.length && !other.prerelease.length) { +      return 0; +    } + +    let i = 0; + +    do { +      const a = this.prerelease[i]; +      const b = other.prerelease[i]; +      debug_1('prerelease compare', i, a, b); + +      if (a === undefined && b === undefined) { +        return 0; +      } else if (b === undefined) { +        return 1; +      } else if (a === undefined) { +        return -1; +      } else if (a === b) { +        continue; +      } else { +        return compareIdentifiers(a, b); +      } +    } while (++i); +  } + +  compareBuild(other) { +    if (!(other instanceof SemVer)) { +      other = new SemVer(other, this.options); +    } + +    let i = 0; + +    do { +      const a = this.build[i]; +      const b = other.build[i]; +      debug_1('prerelease compare', i, a, b); + +      if (a === undefined && b === undefined) { +        return 0; +      } else if (b === undefined) { +        return 1; +      } else if (a === undefined) { +        return -1; +      } else if (a === b) { +        continue; +      } else { +        return compareIdentifiers(a, b); +      } +    } while (++i); +  } + +  inc(release, identifier) { +    switch (release) { +      case 'premajor': +        this.prerelease.length = 0; +        this.patch = 0; +        this.minor = 0; +        this.major++; +        this.inc('pre', identifier); +        break; + +      case 'preminor': +        this.prerelease.length = 0; +        this.patch = 0; +        this.minor++; +        this.inc('pre', identifier); +        break; + +      case 'prepatch': +        this.prerelease.length = 0; +        this.inc('patch', identifier); +        this.inc('pre', identifier); +        break; + +      case 'prerelease': +        if (this.prerelease.length === 0) { +          this.inc('patch', identifier); +        } + +        this.inc('pre', identifier); +        break; + +      case 'major': +        if (this.minor !== 0 || this.patch !== 0 || this.prerelease.length === 0) { +          this.major++; +        } + +        this.minor = 0; +        this.patch = 0; +        this.prerelease = []; +        break; + +      case 'minor': +        if (this.patch !== 0 || this.prerelease.length === 0) { +          this.minor++; +        } + +        this.patch = 0; +        this.prerelease = []; +        break; + +      case 'patch': +        if (this.prerelease.length === 0) { +          this.patch++; +        } + +        this.prerelease = []; +        break; + +      case 'pre': +        if (this.prerelease.length === 0) { +          this.prerelease = [0]; +        } else { +          let i = this.prerelease.length; + +          while (--i >= 0) { +            if (typeof this.prerelease[i] === 'number') { +              this.prerelease[i]++; +              i = -2; +            } +          } + +          if (i === -1) { +            this.prerelease.push(0); +          } +        } + +        if (identifier) { +          if (this.prerelease[0] === identifier) { +            if (isNaN(this.prerelease[1])) { +              this.prerelease = [identifier, 0]; +            } +          } else { +            this.prerelease = [identifier, 0]; +          } +        } + +        break; + +      default: +        throw new Error(`invalid increment argument: ${release}`); +    } + +    this.format(); +    this.raw = this.version; +    return this; +  } + +} + +var semver$1 = SemVer; +const { +  MAX_LENGTH +} = constants; +const { +  re: re$3, +  t: t$3 +} = re_1; + +const parse = (version, options) => { +  options = parseOptions_1(options); + +  if (version instanceof semver$1) { +    return version; +  } + +  if (typeof version !== 'string') { +    return null; +  } + +  if (version.length > MAX_LENGTH) { +    return null; +  } + +  const r = options.loose ? re$3[t$3.LOOSE] : re$3[t$3.FULL]; + +  if (!r.test(version)) { +    return null; +  } + +  try { +    return new semver$1(version, options); +  } catch (er) { +    return null; +  } +}; + +var parse_1 = parse; + +const valid$1 = (version, options) => { +  const v = parse_1(version, options); +  return v ? v.version : null; +}; + +var valid_1 = valid$1; + +const clean = (version, options) => { +  const s = parse_1(version.trim().replace(/^[=v]+/, ''), options); +  return s ? s.version : null; +}; + +var clean_1 = clean; + +const inc = (version, release, options, identifier) => { +  if (typeof options === 'string') { +    identifier = options; +    options = undefined; +  } + +  try { +    return new semver$1(version, options).inc(release, identifier).version; +  } catch (er) { +    return null; +  } +}; + +var inc_1 = inc; + +const compare = (a, b, loose) => new semver$1(a, loose).compare(new semver$1(b, loose)); + +var compare_1 = compare; + +const eq = (a, b, loose) => compare_1(a, b, loose) === 0; + +var eq_1 = eq; + +const diff = (version1, version2) => { +  if (eq_1(version1, version2)) { +    return null; +  } else { +    const v1 = parse_1(version1); +    const v2 = parse_1(version2); +    const hasPre = v1.prerelease.length || v2.prerelease.length; +    const prefix = hasPre ? 'pre' : ''; +    const defaultResult = hasPre ? 'prerelease' : ''; + +    for (const key in v1) { +      if (key === 'major' || key === 'minor' || key === 'patch') { +        if (v1[key] !== v2[key]) { +          return prefix + key; +        } +      } +    } + +    return defaultResult; +  } +}; + +var diff_1 = diff; + +const major = (a, loose) => new semver$1(a, loose).major; + +var major_1 = major; + +const minor = (a, loose) => new semver$1(a, loose).minor; + +var minor_1 = minor; + +const patch = (a, loose) => new semver$1(a, loose).patch; + +var patch_1 = patch; + +const prerelease = (version, options) => { +  const parsed = parse_1(version, options); +  return parsed && parsed.prerelease.length ? parsed.prerelease : null; +}; + +var prerelease_1 = prerelease; + +const rcompare = (a, b, loose) => compare_1(b, a, loose); + +var rcompare_1 = rcompare; + +const compareLoose = (a, b) => compare_1(a, b, true); + +var compareLoose_1 = compareLoose; + +const compareBuild = (a, b, loose) => { +  const versionA = new semver$1(a, loose); +  const versionB = new semver$1(b, loose); +  return versionA.compare(versionB) || versionA.compareBuild(versionB); +}; + +var compareBuild_1 = compareBuild; + +const sort = (list, loose) => list.sort((a, b) => compareBuild_1(a, b, loose)); + +var sort_1 = sort; + +const rsort = (list, loose) => list.sort((a, b) => compareBuild_1(b, a, loose)); + +var rsort_1 = rsort; + +const gt = (a, b, loose) => compare_1(a, b, loose) > 0; + +var gt_1 = gt; + +const lt = (a, b, loose) => compare_1(a, b, loose) < 0; + +var lt_1 = lt; + +const neq = (a, b, loose) => compare_1(a, b, loose) !== 0; + +var neq_1 = neq; + +const gte = (a, b, loose) => compare_1(a, b, loose) >= 0; + +var gte_1 = gte; + +const lte = (a, b, loose) => compare_1(a, b, loose) <= 0; + +var lte_1 = lte; + +const cmp = (a, op, b, loose) => { +  switch (op) { +    case '===': +      if (typeof a === 'object') a = a.version; +      if (typeof b === 'object') b = b.version; +      return a === b; + +    case '!==': +      if (typeof a === 'object') a = a.version; +      if (typeof b === 'object') b = b.version; +      return a !== b; + +    case '': +    case '=': +    case '==': +      return eq_1(a, b, loose); + +    case '!=': +      return neq_1(a, b, loose); + +    case '>': +      return gt_1(a, b, loose); + +    case '>=': +      return gte_1(a, b, loose); + +    case '<': +      return lt_1(a, b, loose); + +    case '<=': +      return lte_1(a, b, loose); + +    default: +      throw new TypeError(`Invalid operator: ${op}`); +  } +}; + +var cmp_1 = cmp; +const { +  re: re$2, +  t: t$2 +} = re_1; + +const coerce = (version, options) => { +  if (version instanceof semver$1) { +    return version; +  } + +  if (typeof version === 'number') { +    version = String(version); +  } + +  if (typeof version !== 'string') { +    return null; +  } + +  options = options || {}; +  let match = null; + +  if (!options.rtl) { +    match = version.match(re$2[t$2.COERCE]); +  } else { +    let next; + +    while ((next = re$2[t$2.COERCERTL].exec(version)) && (!match || match.index + match[0].length !== version.length)) { +      if (!match || next.index + next[0].length !== match.index + match[0].length) { +        match = next; +      } + +      re$2[t$2.COERCERTL].lastIndex = next.index + next[1].length + next[2].length; +    } + +    re$2[t$2.COERCERTL].lastIndex = -1; +  } + +  if (match === null) return null; +  return parse_1(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options); +}; + +var coerce_1 = coerce; + +var iterator = function (Yallist) { +  Yallist.prototype[Symbol.iterator] = function* () { +    for (let walker = this.head; walker; walker = walker.next) { +      yield walker.value; +    } +  }; +}; + +var yallist = Yallist; +Yallist.Node = Node; +Yallist.create = Yallist; + +function Yallist(list) { +  var self = this; + +  if (!(self instanceof Yallist)) { +    self = new Yallist(); +  } + +  self.tail = null; +  self.head = null; +  self.length = 0; + +  if (list && typeof list.forEach === 'function') { +    list.forEach(function (item) { +      self.push(item); +    }); +  } else if (arguments.length > 0) { +    for (var i = 0, l = arguments.length; i < l; i++) { +      self.push(arguments[i]); +    } +  } + +  return self; +} + +Yallist.prototype.removeNode = function (node) { +  if (node.list !== this) { +    throw new Error('removing node which does not belong to this list'); +  } + +  var next = node.next; +  var prev = node.prev; + +  if (next) { +    next.prev = prev; +  } + +  if (prev) { +    prev.next = next; +  } + +  if (node === this.head) { +    this.head = next; +  } + +  if (node === this.tail) { +    this.tail = prev; +  } + +  node.list.length--; +  node.next = null; +  node.prev = null; +  node.list = null; +  return next; +}; + +Yallist.prototype.unshiftNode = function (node) { +  if (node === this.head) { +    return; +  } + +  if (node.list) { +    node.list.removeNode(node); +  } + +  var head = this.head; +  node.list = this; +  node.next = head; + +  if (head) { +    head.prev = node; +  } + +  this.head = node; + +  if (!this.tail) { +    this.tail = node; +  } + +  this.length++; +}; + +Yallist.prototype.pushNode = function (node) { +  if (node === this.tail) { +    return; +  } + +  if (node.list) { +    node.list.removeNode(node); +  } + +  var tail = this.tail; +  node.list = this; +  node.prev = tail; + +  if (tail) { +    tail.next = node; +  } + +  this.tail = node; + +  if (!this.head) { +    this.head = node; +  } + +  this.length++; +}; + +Yallist.prototype.push = function () { +  for (var i = 0, l = arguments.length; i < l; i++) { +    push(this, arguments[i]); +  } + +  return this.length; +}; + +Yallist.prototype.unshift = function () { +  for (var i = 0, l = arguments.length; i < l; i++) { +    unshift(this, arguments[i]); +  } + +  return this.length; +}; + +Yallist.prototype.pop = function () { +  if (!this.tail) { +    return undefined; +  } + +  var res = this.tail.value; +  this.tail = this.tail.prev; + +  if (this.tail) { +    this.tail.next = null; +  } else { +    this.head = null; +  } + +  this.length--; +  return res; +}; + +Yallist.prototype.shift = function () { +  if (!this.head) { +    return undefined; +  } + +  var res = this.head.value; +  this.head = this.head.next; + +  if (this.head) { +    this.head.prev = null; +  } else { +    this.tail = null; +  } + +  this.length--; +  return res; +}; + +Yallist.prototype.forEach = function (fn, thisp) { +  thisp = thisp || this; + +  for (var walker = this.head, i = 0; walker !== null; i++) { +    fn.call(thisp, walker.value, i, this); +    walker = walker.next; +  } +}; + +Yallist.prototype.forEachReverse = function (fn, thisp) { +  thisp = thisp || this; + +  for (var walker = this.tail, i = this.length - 1; walker !== null; i--) { +    fn.call(thisp, walker.value, i, this); +    walker = walker.prev; +  } +}; + +Yallist.prototype.get = function (n) { +  for (var i = 0, walker = this.head; walker !== null && i < n; i++) { +    walker = walker.next; +  } + +  if (i === n && walker !== null) { +    return walker.value; +  } +}; + +Yallist.prototype.getReverse = function (n) { +  for (var i = 0, walker = this.tail; walker !== null && i < n; i++) { +    walker = walker.prev; +  } + +  if (i === n && walker !== null) { +    return walker.value; +  } +}; + +Yallist.prototype.map = function (fn, thisp) { +  thisp = thisp || this; +  var res = new Yallist(); + +  for (var walker = this.head; walker !== null;) { +    res.push(fn.call(thisp, walker.value, this)); +    walker = walker.next; +  } + +  return res; +}; + +Yallist.prototype.mapReverse = function (fn, thisp) { +  thisp = thisp || this; +  var res = new Yallist(); + +  for (var walker = this.tail; walker !== null;) { +    res.push(fn.call(thisp, walker.value, this)); +    walker = walker.prev; +  } + +  return res; +}; + +Yallist.prototype.reduce = function (fn, initial) { +  var acc; +  var walker = this.head; + +  if (arguments.length > 1) { +    acc = initial; +  } else if (this.head) { +    walker = this.head.next; +    acc = this.head.value; +  } else { +    throw new TypeError('Reduce of empty list with no initial value'); +  } + +  for (var i = 0; walker !== null; i++) { +    acc = fn(acc, walker.value, i); +    walker = walker.next; +  } + +  return acc; +}; + +Yallist.prototype.reduceReverse = function (fn, initial) { +  var acc; +  var walker = this.tail; + +  if (arguments.length > 1) { +    acc = initial; +  } else if (this.tail) { +    walker = this.tail.prev; +    acc = this.tail.value; +  } else { +    throw new TypeError('Reduce of empty list with no initial value'); +  } + +  for (var i = this.length - 1; walker !== null; i--) { +    acc = fn(acc, walker.value, i); +    walker = walker.prev; +  } + +  return acc; +}; + +Yallist.prototype.toArray = function () { +  var arr = new Array(this.length); + +  for (var i = 0, walker = this.head; walker !== null; i++) { +    arr[i] = walker.value; +    walker = walker.next; +  } + +  return arr; +}; + +Yallist.prototype.toArrayReverse = function () { +  var arr = new Array(this.length); + +  for (var i = 0, walker = this.tail; walker !== null; i++) { +    arr[i] = walker.value; +    walker = walker.prev; +  } + +  return arr; +}; + +Yallist.prototype.slice = function (from, to) { +  to = to || this.length; + +  if (to < 0) { +    to += this.length; +  } + +  from = from || 0; + +  if (from < 0) { +    from += this.length; +  } + +  var ret = new Yallist(); + +  if (to < from || to < 0) { +    return ret; +  } + +  if (from < 0) { +    from = 0; +  } + +  if (to > this.length) { +    to = this.length; +  } + +  for (var i = 0, walker = this.head; walker !== null && i < from; i++) { +    walker = walker.next; +  } + +  for (; walker !== null && i < to; i++, walker = walker.next) { +    ret.push(walker.value); +  } + +  return ret; +}; + +Yallist.prototype.sliceReverse = function (from, to) { +  to = to || this.length; + +  if (to < 0) { +    to += this.length; +  } + +  from = from || 0; + +  if (from < 0) { +    from += this.length; +  } + +  var ret = new Yallist(); + +  if (to < from || to < 0) { +    return ret; +  } + +  if (from < 0) { +    from = 0; +  } + +  if (to > this.length) { +    to = this.length; +  } + +  for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) { +    walker = walker.prev; +  } + +  for (; walker !== null && i > from; i--, walker = walker.prev) { +    ret.push(walker.value); +  } + +  return ret; +}; + +Yallist.prototype.splice = function (start, deleteCount, ...nodes) { +  if (start > this.length) { +    start = this.length - 1; +  } + +  if (start < 0) { +    start = this.length + start; +  } + +  for (var i = 0, walker = this.head; walker !== null && i < start; i++) { +    walker = walker.next; +  } + +  var ret = []; + +  for (var i = 0; walker && i < deleteCount; i++) { +    ret.push(walker.value); +    walker = this.removeNode(walker); +  } + +  if (walker === null) { +    walker = this.tail; +  } + +  if (walker !== this.head && walker !== this.tail) { +    walker = walker.prev; +  } + +  for (var i = 0; i < nodes.length; i++) { +    walker = insert(this, walker, nodes[i]); +  } + +  return ret; +}; + +Yallist.prototype.reverse = function () { +  var head = this.head; +  var tail = this.tail; + +  for (var walker = head; walker !== null; walker = walker.prev) { +    var p = walker.prev; +    walker.prev = walker.next; +    walker.next = p; +  } + +  this.head = tail; +  this.tail = head; +  return this; +}; + +function insert(self, node, value) { +  var inserted = node === self.head ? new Node(value, null, node, self) : new Node(value, node, node.next, self); + +  if (inserted.next === null) { +    self.tail = inserted; +  } + +  if (inserted.prev === null) { +    self.head = inserted; +  } + +  self.length++; +  return inserted; +} + +function push(self, item) { +  self.tail = new Node(item, self.tail, null, self); + +  if (!self.head) { +    self.head = self.tail; +  } + +  self.length++; +} + +function unshift(self, item) { +  self.head = new Node(item, null, self.head, self); + +  if (!self.tail) { +    self.tail = self.head; +  } + +  self.length++; +} + +function Node(value, prev, next, list) { +  if (!(this instanceof Node)) { +    return new Node(value, prev, next, list); +  } + +  this.list = list; +  this.value = value; + +  if (prev) { +    prev.next = this; +    this.prev = prev; +  } else { +    this.prev = null; +  } + +  if (next) { +    next.prev = this; +    this.next = next; +  } else { +    this.next = null; +  } +} + +try { +  iterator(Yallist); +} catch (er) {} + +const MAX = Symbol('max'); +const LENGTH = Symbol('length'); +const LENGTH_CALCULATOR = Symbol('lengthCalculator'); +const ALLOW_STALE = Symbol('allowStale'); +const MAX_AGE = Symbol('maxAge'); +const DISPOSE = Symbol('dispose'); +const NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet'); +const LRU_LIST = Symbol('lruList'); +const CACHE = Symbol('cache'); +const UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet'); + +const naiveLength = () => 1; + +class LRUCache { +  constructor(options) { +    if (typeof options === 'number') options = { +      max: options +    }; +    if (!options) options = {}; +    if (options.max && (typeof options.max !== 'number' || options.max < 0)) throw new TypeError('max must be a non-negative number'); +    this[MAX] = options.max || Infinity; +    const lc = options.length || naiveLength; +    this[LENGTH_CALCULATOR] = typeof lc !== 'function' ? naiveLength : lc; +    this[ALLOW_STALE] = options.stale || false; +    if (options.maxAge && typeof options.maxAge !== 'number') throw new TypeError('maxAge must be a number'); +    this[MAX_AGE] = options.maxAge || 0; +    this[DISPOSE] = options.dispose; +    this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false; +    this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false; +    this.reset(); +  } + +  set max(mL) { +    if (typeof mL !== 'number' || mL < 0) throw new TypeError('max must be a non-negative number'); +    this[MAX] = mL || Infinity; +    trim(this); +  } + +  get max() { +    return this[MAX]; +  } + +  set allowStale(allowStale) { +    this[ALLOW_STALE] = !!allowStale; +  } + +  get allowStale() { +    return this[ALLOW_STALE]; +  } + +  set maxAge(mA) { +    if (typeof mA !== 'number') throw new TypeError('maxAge must be a non-negative number'); +    this[MAX_AGE] = mA; +    trim(this); +  } + +  get maxAge() { +    return this[MAX_AGE]; +  } + +  set lengthCalculator(lC) { +    if (typeof lC !== 'function') lC = naiveLength; + +    if (lC !== this[LENGTH_CALCULATOR]) { +      this[LENGTH_CALCULATOR] = lC; +      this[LENGTH] = 0; +      this[LRU_LIST].forEach(hit => { +        hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key); +        this[LENGTH] += hit.length; +      }); +    } + +    trim(this); +  } + +  get lengthCalculator() { +    return this[LENGTH_CALCULATOR]; +  } + +  get length() { +    return this[LENGTH]; +  } + +  get itemCount() { +    return this[LRU_LIST].length; +  } + +  rforEach(fn, thisp) { +    thisp = thisp || this; + +    for (let walker = this[LRU_LIST].tail; walker !== null;) { +      const prev = walker.prev; +      forEachStep(this, fn, walker, thisp); +      walker = prev; +    } +  } + +  forEach(fn, thisp) { +    thisp = thisp || this; + +    for (let walker = this[LRU_LIST].head; walker !== null;) { +      const next = walker.next; +      forEachStep(this, fn, walker, thisp); +      walker = next; +    } +  } + +  keys() { +    return this[LRU_LIST].toArray().map(k => k.key); +  } + +  values() { +    return this[LRU_LIST].toArray().map(k => k.value); +  } + +  reset() { +    if (this[DISPOSE] && this[LRU_LIST] && this[LRU_LIST].length) { +      this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value)); +    } + +    this[CACHE] = new Map(); +    this[LRU_LIST] = new yallist(); +    this[LENGTH] = 0; +  } + +  dump() { +    return this[LRU_LIST].map(hit => isStale(this, hit) ? false : { +      k: hit.key, +      v: hit.value, +      e: hit.now + (hit.maxAge || 0) +    }).toArray().filter(h => h); +  } + +  dumpLru() { +    return this[LRU_LIST]; +  } + +  set(key, value, maxAge) { +    maxAge = maxAge || this[MAX_AGE]; +    if (maxAge && typeof maxAge !== 'number') throw new TypeError('maxAge must be a number'); +    const now = maxAge ? Date.now() : 0; +    const len = this[LENGTH_CALCULATOR](value, key); + +    if (this[CACHE].has(key)) { +      if (len > this[MAX]) { +        del(this, this[CACHE].get(key)); +        return false; +      } + +      const node = this[CACHE].get(key); +      const item = node.value; + +      if (this[DISPOSE]) { +        if (!this[NO_DISPOSE_ON_SET]) this[DISPOSE](key, item.value); +      } + +      item.now = now; +      item.maxAge = maxAge; +      item.value = value; +      this[LENGTH] += len - item.length; +      item.length = len; +      this.get(key); +      trim(this); +      return true; +    } + +    const hit = new Entry(key, value, len, now, maxAge); + +    if (hit.length > this[MAX]) { +      if (this[DISPOSE]) this[DISPOSE](key, value); +      return false; +    } + +    this[LENGTH] += hit.length; +    this[LRU_LIST].unshift(hit); +    this[CACHE].set(key, this[LRU_LIST].head); +    trim(this); +    return true; +  } + +  has(key) { +    if (!this[CACHE].has(key)) return false; +    const hit = this[CACHE].get(key).value; +    return !isStale(this, hit); +  } + +  get(key) { +    return get(this, key, true); +  } + +  peek(key) { +    return get(this, key, false); +  } + +  pop() { +    const node = this[LRU_LIST].tail; +    if (!node) return null; +    del(this, node); +    return node.value; +  } + +  del(key) { +    del(this, this[CACHE].get(key)); +  } + +  load(arr) { +    this.reset(); +    const now = Date.now(); + +    for (let l = arr.length - 1; l >= 0; l--) { +      const hit = arr[l]; +      const expiresAt = hit.e || 0; +      if (expiresAt === 0) this.set(hit.k, hit.v);else { +        const maxAge = expiresAt - now; + +        if (maxAge > 0) { +          this.set(hit.k, hit.v, maxAge); +        } +      } +    } +  } + +  prune() { +    this[CACHE].forEach((value, key) => get(this, key, false)); +  } + +} + +const get = (self, key, doUse) => { +  const node = self[CACHE].get(key); + +  if (node) { +    const hit = node.value; + +    if (isStale(self, hit)) { +      del(self, node); +      if (!self[ALLOW_STALE]) return undefined; +    } else { +      if (doUse) { +        if (self[UPDATE_AGE_ON_GET]) node.value.now = Date.now(); +        self[LRU_LIST].unshiftNode(node); +      } +    } + +    return hit.value; +  } +}; + +const isStale = (self, hit) => { +  if (!hit || !hit.maxAge && !self[MAX_AGE]) return false; +  const diff = Date.now() - hit.now; +  return hit.maxAge ? diff > hit.maxAge : self[MAX_AGE] && diff > self[MAX_AGE]; +}; + +const trim = self => { +  if (self[LENGTH] > self[MAX]) { +    for (let walker = self[LRU_LIST].tail; self[LENGTH] > self[MAX] && walker !== null;) { +      const prev = walker.prev; +      del(self, walker); +      walker = prev; +    } +  } +}; + +const del = (self, node) => { +  if (node) { +    const hit = node.value; +    if (self[DISPOSE]) self[DISPOSE](hit.key, hit.value); +    self[LENGTH] -= hit.length; +    self[CACHE].delete(hit.key); +    self[LRU_LIST].removeNode(node); +  } +}; + +class Entry { +  constructor(key, value, length, now, maxAge) { +    this.key = key; +    this.value = value; +    this.length = length; +    this.now = now; +    this.maxAge = maxAge || 0; +  } + +} + +const forEachStep = (self, fn, node, thisp) => { +  let hit = node.value; + +  if (isStale(self, hit)) { +    del(self, node); +    if (!self[ALLOW_STALE]) hit = undefined; +  } + +  if (hit) fn.call(thisp, hit.value, hit.key, self); +}; + +var lruCache = LRUCache; + +class Range { +  constructor(range, options) { +    options = parseOptions_1(options); + +    if (range instanceof Range) { +      if (range.loose === !!options.loose && range.includePrerelease === !!options.includePrerelease) { +        return range; +      } else { +        return new Range(range.raw, options); +      } +    } + +    if (range instanceof comparator) { +      this.raw = range.value; +      this.set = [[range]]; +      this.format(); +      return this; +    } + +    this.options = options; +    this.loose = !!options.loose; +    this.includePrerelease = !!options.includePrerelease; +    this.raw = range; +    this.set = range.split(/\s*\|\|\s*/).map(range => this.parseRange(range.trim())).filter(c => c.length); + +    if (!this.set.length) { +      throw new TypeError(`Invalid SemVer Range: ${range}`); +    } + +    if (this.set.length > 1) { +      const first = this.set[0]; +      this.set = this.set.filter(c => !isNullSet(c[0])); +      if (this.set.length === 0) this.set = [first];else if (this.set.length > 1) { +        for (const c of this.set) { +          if (c.length === 1 && isAny(c[0])) { +            this.set = [c]; +            break; +          } +        } +      } +    } + +    this.format(); +  } + +  format() { +    this.range = this.set.map(comps => { +      return comps.join(' ').trim(); +    }).join('||').trim(); +    return this.range; +  } + +  toString() { +    return this.range; +  } + +  parseRange(range) { +    range = range.trim(); +    const memoOpts = Object.keys(this.options).join(','); +    const memoKey = `parseRange:${memoOpts}:${range}`; +    const cached = cache.get(memoKey); +    if (cached) return cached; +    const loose = this.options.loose; +    const hr = loose ? re$1[t$1.HYPHENRANGELOOSE] : re$1[t$1.HYPHENRANGE]; +    range = range.replace(hr, hyphenReplace(this.options.includePrerelease)); +    debug_1('hyphen replace', range); +    range = range.replace(re$1[t$1.COMPARATORTRIM], comparatorTrimReplace); +    debug_1('comparator trim', range, re$1[t$1.COMPARATORTRIM]); +    range = range.replace(re$1[t$1.TILDETRIM], tildeTrimReplace); +    range = range.replace(re$1[t$1.CARETTRIM], caretTrimReplace); +    range = range.split(/\s+/).join(' '); +    const compRe = loose ? re$1[t$1.COMPARATORLOOSE] : re$1[t$1.COMPARATOR]; +    const rangeList = range.split(' ').map(comp => parseComparator(comp, this.options)).join(' ').split(/\s+/).map(comp => replaceGTE0(comp, this.options)).filter(this.options.loose ? comp => !!comp.match(compRe) : () => true).map(comp => new comparator(comp, this.options)); +    rangeList.length; +    const rangeMap = new Map(); + +    for (const comp of rangeList) { +      if (isNullSet(comp)) return [comp]; +      rangeMap.set(comp.value, comp); +    } + +    if (rangeMap.size > 1 && rangeMap.has('')) rangeMap.delete(''); +    const result = [...rangeMap.values()]; +    cache.set(memoKey, result); +    return result; +  } + +  intersects(range, options) { +    if (!(range instanceof Range)) { +      throw new TypeError('a Range is required'); +    } + +    return this.set.some(thisComparators => { +      return isSatisfiable(thisComparators, options) && range.set.some(rangeComparators => { +        return isSatisfiable(rangeComparators, options) && thisComparators.every(thisComparator => { +          return rangeComparators.every(rangeComparator => { +            return thisComparator.intersects(rangeComparator, options); +          }); +        }); +      }); +    }); +  } + +  test(version) { +    if (!version) { +      return false; +    } + +    if (typeof version === 'string') { +      try { +        version = new semver$1(version, this.options); +      } catch (er) { +        return false; +      } +    } + +    for (let i = 0; i < this.set.length; i++) { +      if (testSet(this.set[i], version, this.options)) { +        return true; +      } +    } + +    return false; +  } + +} + +var range = Range; +const cache = new lruCache({ +  max: 1000 +}); +const { +  re: re$1, +  t: t$1, +  comparatorTrimReplace, +  tildeTrimReplace, +  caretTrimReplace +} = re_1; + +const isNullSet = c => c.value === '<0.0.0-0'; + +const isAny = c => c.value === ''; + +const isSatisfiable = (comparators, options) => { +  let result = true; +  const remainingComparators = comparators.slice(); +  let testComparator = remainingComparators.pop(); + +  while (result && remainingComparators.length) { +    result = remainingComparators.every(otherComparator => { +      return testComparator.intersects(otherComparator, options); +    }); +    testComparator = remainingComparators.pop(); +  } + +  return result; +}; + +const parseComparator = (comp, options) => { +  debug_1('comp', comp, options); +  comp = replaceCarets(comp, options); +  debug_1('caret', comp); +  comp = replaceTildes(comp, options); +  debug_1('tildes', comp); +  comp = replaceXRanges(comp, options); +  debug_1('xrange', comp); +  comp = replaceStars(comp, options); +  debug_1('stars', comp); +  return comp; +}; + +const isX = id => !id || id.toLowerCase() === 'x' || id === '*'; + +const replaceTildes = (comp, options) => comp.trim().split(/\s+/).map(comp => { +  return replaceTilde(comp, options); +}).join(' '); + +const replaceTilde = (comp, options) => { +  const r = options.loose ? re$1[t$1.TILDELOOSE] : re$1[t$1.TILDE]; +  return comp.replace(r, (_, M, m, p, pr) => { +    debug_1('tilde', comp, _, M, m, p, pr); +    let ret; + +    if (isX(M)) { +      ret = ''; +    } else if (isX(m)) { +      ret = `>=${M}.0.0 <${+M + 1}.0.0-0`; +    } else if (isX(p)) { +      ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`; +    } else if (pr) { +      debug_1('replaceTilde pr', pr); +      ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; +    } else { +      ret = `>=${M}.${m}.${p} <${M}.${+m + 1}.0-0`; +    } + +    debug_1('tilde return', ret); +    return ret; +  }); +}; + +const replaceCarets = (comp, options) => comp.trim().split(/\s+/).map(comp => { +  return replaceCaret(comp, options); +}).join(' '); + +const replaceCaret = (comp, options) => { +  debug_1('caret', comp, options); +  const r = options.loose ? re$1[t$1.CARETLOOSE] : re$1[t$1.CARET]; +  const z = options.includePrerelease ? '-0' : ''; +  return comp.replace(r, (_, M, m, p, pr) => { +    debug_1('caret', comp, _, M, m, p, pr); +    let ret; + +    if (isX(M)) { +      ret = ''; +    } else if (isX(m)) { +      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`; +    } else if (isX(p)) { +      if (M === '0') { +        ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`; +      } else { +        ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`; +      } +    } else if (pr) { +      debug_1('replaceCaret pr', pr); + +      if (M === '0') { +        if (m === '0') { +          ret = `>=${M}.${m}.${p}-${pr} <${M}.${m}.${+p + 1}-0`; +        } else { +          ret = `>=${M}.${m}.${p}-${pr} <${M}.${+m + 1}.0-0`; +        } +      } else { +        ret = `>=${M}.${m}.${p}-${pr} <${+M + 1}.0.0-0`; +      } +    } else { +      debug_1('no pr'); + +      if (M === '0') { +        if (m === '0') { +          ret = `>=${M}.${m}.${p}${z} <${M}.${m}.${+p + 1}-0`; +        } else { +          ret = `>=${M}.${m}.${p}${z} <${M}.${+m + 1}.0-0`; +        } +      } else { +        ret = `>=${M}.${m}.${p} <${+M + 1}.0.0-0`; +      } +    } + +    debug_1('caret return', ret); +    return ret; +  }); +}; + +const replaceXRanges = (comp, options) => { +  debug_1('replaceXRanges', comp, options); +  return comp.split(/\s+/).map(comp => { +    return replaceXRange(comp, options); +  }).join(' '); +}; + +const replaceXRange = (comp, options) => { +  comp = comp.trim(); +  const r = options.loose ? re$1[t$1.XRANGELOOSE] : re$1[t$1.XRANGE]; +  return comp.replace(r, (ret, gtlt, M, m, p, pr) => { +    debug_1('xRange', comp, ret, gtlt, M, m, p, pr); +    const xM = isX(M); +    const xm = xM || isX(m); +    const xp = xm || isX(p); +    const anyX = xp; + +    if (gtlt === '=' && anyX) { +      gtlt = ''; +    } + +    pr = options.includePrerelease ? '-0' : ''; + +    if (xM) { +      if (gtlt === '>' || gtlt === '<') { +        ret = '<0.0.0-0'; +      } else { +        ret = '*'; +      } +    } else if (gtlt && anyX) { +      if (xm) { +        m = 0; +      } + +      p = 0; + +      if (gtlt === '>') { +        gtlt = '>='; + +        if (xm) { +          M = +M + 1; +          m = 0; +          p = 0; +        } else { +          m = +m + 1; +          p = 0; +        } +      } else if (gtlt === '<=') { +        gtlt = '<'; + +        if (xm) { +          M = +M + 1; +        } else { +          m = +m + 1; +        } +      } + +      if (gtlt === '<') pr = '-0'; +      ret = `${gtlt + M}.${m}.${p}${pr}`; +    } else if (xm) { +      ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`; +    } else if (xp) { +      ret = `>=${M}.${m}.0${pr} <${M}.${+m + 1}.0-0`; +    } + +    debug_1('xRange return', ret); +    return ret; +  }); +}; + +const replaceStars = (comp, options) => { +  debug_1('replaceStars', comp, options); +  return comp.trim().replace(re$1[t$1.STAR], ''); +}; + +const replaceGTE0 = (comp, options) => { +  debug_1('replaceGTE0', comp, options); +  return comp.trim().replace(re$1[options.includePrerelease ? t$1.GTE0PRE : t$1.GTE0], ''); +}; + +const hyphenReplace = incPr => ($0, from, fM, fm, fp, fpr, fb, to, tM, tm, tp, tpr, tb) => { +  if (isX(fM)) { +    from = ''; +  } else if (isX(fm)) { +    from = `>=${fM}.0.0${incPr ? '-0' : ''}`; +  } else if (isX(fp)) { +    from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`; +  } else if (fpr) { +    from = `>=${from}`; +  } else { +    from = `>=${from}${incPr ? '-0' : ''}`; +  } + +  if (isX(tM)) { +    to = ''; +  } else if (isX(tm)) { +    to = `<${+tM + 1}.0.0-0`; +  } else if (isX(tp)) { +    to = `<${tM}.${+tm + 1}.0-0`; +  } else if (tpr) { +    to = `<=${tM}.${tm}.${tp}-${tpr}`; +  } else if (incPr) { +    to = `<${tM}.${tm}.${+tp + 1}-0`; +  } else { +    to = `<=${to}`; +  } + +  return `${from} ${to}`.trim(); +}; + +const testSet = (set, version, options) => { +  for (let i = 0; i < set.length; i++) { +    if (!set[i].test(version)) { +      return false; +    } +  } + +  if (version.prerelease.length && !options.includePrerelease) { +    for (let i = 0; i < set.length; i++) { +      debug_1(set[i].semver); + +      if (set[i].semver === comparator.ANY) { +        continue; +      } + +      if (set[i].semver.prerelease.length > 0) { +        const allowed = set[i].semver; + +        if (allowed.major === version.major && allowed.minor === version.minor && allowed.patch === version.patch) { +          return true; +        } +      } +    } + +    return false; +  } + +  return true; +}; + +const ANY$2 = Symbol('SemVer ANY'); + +class Comparator { +  static get ANY() { +    return ANY$2; +  } + +  constructor(comp, options) { +    options = parseOptions_1(options); + +    if (comp instanceof Comparator) { +      if (comp.loose === !!options.loose) { +        return comp; +      } else { +        comp = comp.value; +      } +    } + +    debug_1('comparator', comp, options); +    this.options = options; +    this.loose = !!options.loose; +    this.parse(comp); + +    if (this.semver === ANY$2) { +      this.value = ''; +    } else { +      this.value = this.operator + this.semver.version; +    } + +    debug_1('comp', this); +  } + +  parse(comp) { +    const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]; +    const m = comp.match(r); + +    if (!m) { +      throw new TypeError(`Invalid comparator: ${comp}`); +    } + +    this.operator = m[1] !== undefined ? m[1] : ''; + +    if (this.operator === '=') { +      this.operator = ''; +    } + +    if (!m[2]) { +      this.semver = ANY$2; +    } else { +      this.semver = new semver$1(m[2], this.options.loose); +    } +  } + +  toString() { +    return this.value; +  } + +  test(version) { +    debug_1('Comparator.test', version, this.options.loose); + +    if (this.semver === ANY$2 || version === ANY$2) { +      return true; +    } + +    if (typeof version === 'string') { +      try { +        version = new semver$1(version, this.options); +      } catch (er) { +        return false; +      } +    } + +    return cmp_1(version, this.operator, this.semver, this.options); +  } + +  intersects(comp, options) { +    if (!(comp instanceof Comparator)) { +      throw new TypeError('a Comparator is required'); +    } + +    if (!options || typeof options !== 'object') { +      options = { +        loose: !!options, +        includePrerelease: false +      }; +    } + +    if (this.operator === '') { +      if (this.value === '') { +        return true; +      } + +      return new range(comp.value, options).test(this.value); +    } else if (comp.operator === '') { +      if (comp.value === '') { +        return true; +      } + +      return new range(this.value, options).test(comp.semver); +    } + +    const sameDirectionIncreasing = (this.operator === '>=' || this.operator === '>') && (comp.operator === '>=' || comp.operator === '>'); +    const sameDirectionDecreasing = (this.operator === '<=' || this.operator === '<') && (comp.operator === '<=' || comp.operator === '<'); +    const sameSemVer = this.semver.version === comp.semver.version; +    const differentDirectionsInclusive = (this.operator === '>=' || this.operator === '<=') && (comp.operator === '>=' || comp.operator === '<='); +    const oppositeDirectionsLessThan = cmp_1(this.semver, '<', comp.semver, options) && (this.operator === '>=' || this.operator === '>') && (comp.operator === '<=' || comp.operator === '<'); +    const oppositeDirectionsGreaterThan = cmp_1(this.semver, '>', comp.semver, options) && (this.operator === '<=' || this.operator === '<') && (comp.operator === '>=' || comp.operator === '>'); +    return sameDirectionIncreasing || sameDirectionDecreasing || sameSemVer && differentDirectionsInclusive || oppositeDirectionsLessThan || oppositeDirectionsGreaterThan; +  } + +} + +var comparator = Comparator; +const { +  re, +  t +} = re_1; + +const satisfies = (version, range$1, options) => { +  try { +    range$1 = new range(range$1, options); +  } catch (er) { +    return false; +  } + +  return range$1.test(version); +}; + +var satisfies_1 = satisfies; + +const toComparators = (range$1, options) => new range(range$1, options).set.map(comp => comp.map(c => c.value).join(' ').trim().split(' ')); + +var toComparators_1 = toComparators; + +const maxSatisfying = (versions, range$1, options) => { +  let max = null; +  let maxSV = null; +  let rangeObj = null; + +  try { +    rangeObj = new range(range$1, options); +  } catch (er) { +    return null; +  } + +  versions.forEach(v => { +    if (rangeObj.test(v)) { +      if (!max || maxSV.compare(v) === -1) { +        max = v; +        maxSV = new semver$1(max, options); +      } +    } +  }); +  return max; +}; + +var maxSatisfying_1 = maxSatisfying; + +const minSatisfying = (versions, range$1, options) => { +  let min = null; +  let minSV = null; +  let rangeObj = null; + +  try { +    rangeObj = new range(range$1, options); +  } catch (er) { +    return null; +  } + +  versions.forEach(v => { +    if (rangeObj.test(v)) { +      if (!min || minSV.compare(v) === 1) { +        min = v; +        minSV = new semver$1(min, options); +      } +    } +  }); +  return min; +}; + +var minSatisfying_1 = minSatisfying; + +const minVersion = (range$1, loose) => { +  range$1 = new range(range$1, loose); +  let minver = new semver$1('0.0.0'); + +  if (range$1.test(minver)) { +    return minver; +  } + +  minver = new semver$1('0.0.0-0'); + +  if (range$1.test(minver)) { +    return minver; +  } + +  minver = null; + +  for (let i = 0; i < range$1.set.length; ++i) { +    const comparators = range$1.set[i]; +    let setMin = null; +    comparators.forEach(comparator => { +      const compver = new semver$1(comparator.semver.version); + +      switch (comparator.operator) { +        case '>': +          if (compver.prerelease.length === 0) { +            compver.patch++; +          } else { +            compver.prerelease.push(0); +          } + +          compver.raw = compver.format(); + +        case '': +        case '>=': +          if (!setMin || gt_1(compver, setMin)) { +            setMin = compver; +          } + +          break; + +        case '<': +        case '<=': +          break; + +        default: +          throw new Error(`Unexpected operation: ${comparator.operator}`); +      } +    }); +    if (setMin && (!minver || gt_1(minver, setMin))) minver = setMin; +  } + +  if (minver && range$1.test(minver)) { +    return minver; +  } + +  return null; +}; + +var minVersion_1 = minVersion; + +const validRange = (range$1, options) => { +  try { +    return new range(range$1, options).range || '*'; +  } catch (er) { +    return null; +  } +}; + +var valid = validRange; +const { +  ANY: ANY$1 +} = comparator; + +const outside = (version, range$1, hilo, options) => { +  version = new semver$1(version, options); +  range$1 = new range(range$1, options); +  let gtfn, ltefn, ltfn, comp, ecomp; + +  switch (hilo) { +    case '>': +      gtfn = gt_1; +      ltefn = lte_1; +      ltfn = lt_1; +      comp = '>'; +      ecomp = '>='; +      break; + +    case '<': +      gtfn = lt_1; +      ltefn = gte_1; +      ltfn = gt_1; +      comp = '<'; +      ecomp = '<='; +      break; + +    default: +      throw new TypeError('Must provide a hilo val of "<" or ">"'); +  } + +  if (satisfies_1(version, range$1, options)) { +    return false; +  } + +  for (let i = 0; i < range$1.set.length; ++i) { +    const comparators = range$1.set[i]; +    let high = null; +    let low = null; +    comparators.forEach(comparator$1 => { +      if (comparator$1.semver === ANY$1) { +        comparator$1 = new comparator('>=0.0.0'); +      } + +      high = high || comparator$1; +      low = low || comparator$1; + +      if (gtfn(comparator$1.semver, high.semver, options)) { +        high = comparator$1; +      } else if (ltfn(comparator$1.semver, low.semver, options)) { +        low = comparator$1; +      } +    }); + +    if (high.operator === comp || high.operator === ecomp) { +      return false; +    } + +    if ((!low.operator || low.operator === comp) && ltefn(version, low.semver)) { +      return false; +    } else if (low.operator === ecomp && ltfn(version, low.semver)) { +      return false; +    } +  } + +  return true; +}; + +var outside_1 = outside; + +const gtr = (version, range, options) => outside_1(version, range, '>', options); + +var gtr_1 = gtr; + +const ltr = (version, range, options) => outside_1(version, range, '<', options); + +var ltr_1 = ltr; + +const intersects = (r1, r2, options) => { +  r1 = new range(r1, options); +  r2 = new range(r2, options); +  return r1.intersects(r2); +}; + +var intersects_1 = intersects; + +var simplify = (versions, range, options) => { +  const set = []; +  let min = null; +  let prev = null; +  const v = versions.sort((a, b) => compare_1(a, b, options)); + +  for (const version of v) { +    const included = satisfies_1(version, range, options); + +    if (included) { +      prev = version; +      if (!min) min = version; +    } else { +      if (prev) { +        set.push([min, prev]); +      } + +      prev = null; +      min = null; +    } +  } + +  if (min) set.push([min, null]); +  const ranges = []; + +  for (const [min, max] of set) { +    if (min === max) ranges.push(min);else if (!max && min === v[0]) ranges.push('*');else if (!max) ranges.push(`>=${min}`);else if (min === v[0]) ranges.push(`<=${max}`);else ranges.push(`${min} - ${max}`); +  } + +  const simplified = ranges.join(' || '); +  const original = typeof range.raw === 'string' ? range.raw : String(range); +  return simplified.length < original.length ? simplified : range; +}; + +const { +  ANY +} = comparator; + +const subset = (sub, dom, options = {}) => { +  if (sub === dom) return true; +  sub = new range(sub, options); +  dom = new range(dom, options); +  let sawNonNull = false; + +  OUTER: for (const simpleSub of sub.set) { +    for (const simpleDom of dom.set) { +      const isSub = simpleSubset(simpleSub, simpleDom, options); +      sawNonNull = sawNonNull || isSub !== null; +      if (isSub) continue OUTER; +    } + +    if (sawNonNull) return false; +  } + +  return true; +}; + +const simpleSubset = (sub, dom, options) => { +  if (sub === dom) return true; + +  if (sub.length === 1 && sub[0].semver === ANY) { +    if (dom.length === 1 && dom[0].semver === ANY) return true;else if (options.includePrerelease) sub = [new comparator('>=0.0.0-0')];else sub = [new comparator('>=0.0.0')]; +  } + +  if (dom.length === 1 && dom[0].semver === ANY) { +    if (options.includePrerelease) return true;else dom = [new comparator('>=0.0.0')]; +  } + +  const eqSet = new Set(); +  let gt, lt; + +  for (const c of sub) { +    if (c.operator === '>' || c.operator === '>=') gt = higherGT(gt, c, options);else if (c.operator === '<' || c.operator === '<=') lt = lowerLT(lt, c, options);else eqSet.add(c.semver); +  } + +  if (eqSet.size > 1) return null; +  let gtltComp; + +  if (gt && lt) { +    gtltComp = compare_1(gt.semver, lt.semver, options); +    if (gtltComp > 0) return null;else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) return null; +  } + +  for (const eq of eqSet) { +    if (gt && !satisfies_1(eq, String(gt), options)) return null; +    if (lt && !satisfies_1(eq, String(lt), options)) return null; + +    for (const c of dom) { +      if (!satisfies_1(eq, String(c), options)) return false; +    } + +    return true; +  } + +  let higher, lower; +  let hasDomLT, hasDomGT; +  let needDomLTPre = lt && !options.includePrerelease && lt.semver.prerelease.length ? lt.semver : false; +  let needDomGTPre = gt && !options.includePrerelease && gt.semver.prerelease.length ? gt.semver : false; + +  if (needDomLTPre && needDomLTPre.prerelease.length === 1 && lt.operator === '<' && needDomLTPre.prerelease[0] === 0) { +    needDomLTPre = false; +  } + +  for (const c of dom) { +    hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='; +    hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='; + +    if (gt) { +      if (needDomGTPre) { +        if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomGTPre.major && c.semver.minor === needDomGTPre.minor && c.semver.patch === needDomGTPre.patch) { +          needDomGTPre = false; +        } +      } + +      if (c.operator === '>' || c.operator === '>=') { +        higher = higherGT(gt, c, options); +        if (higher === c && higher !== gt) return false; +      } else if (gt.operator === '>=' && !satisfies_1(gt.semver, String(c), options)) return false; +    } + +    if (lt) { +      if (needDomLTPre) { +        if (c.semver.prerelease && c.semver.prerelease.length && c.semver.major === needDomLTPre.major && c.semver.minor === needDomLTPre.minor && c.semver.patch === needDomLTPre.patch) { +          needDomLTPre = false; +        } +      } + +      if (c.operator === '<' || c.operator === '<=') { +        lower = lowerLT(lt, c, options); +        if (lower === c && lower !== lt) return false; +      } else if (lt.operator === '<=' && !satisfies_1(lt.semver, String(c), options)) return false; +    } + +    if (!c.operator && (lt || gt) && gtltComp !== 0) return false; +  } + +  if (gt && hasDomLT && !lt && gtltComp !== 0) return false; +  if (lt && hasDomGT && !gt && gtltComp !== 0) return false; +  if (needDomGTPre || needDomLTPre) return false; +  return true; +}; + +const higherGT = (a, b, options) => { +  if (!a) return b; +  const comp = compare_1(a.semver, b.semver, options); +  return comp > 0 ? a : comp < 0 ? b : b.operator === '>' && a.operator === '>=' ? b : a; +}; + +const lowerLT = (a, b, options) => { +  if (!a) return b; +  const comp = compare_1(a.semver, b.semver, options); +  return comp < 0 ? a : comp > 0 ? b : b.operator === '<' && a.operator === '<=' ? b : a; +}; + +var subset_1 = subset; +var semver = { +  re: re_1.re, +  src: re_1.src, +  tokens: re_1.t, +  SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION, +  SemVer: semver$1, +  compareIdentifiers: identifiers.compareIdentifiers, +  rcompareIdentifiers: identifiers.rcompareIdentifiers, +  parse: parse_1, +  valid: valid_1, +  clean: clean_1, +  inc: inc_1, +  diff: diff_1, +  major: major_1, +  minor: minor_1, +  patch: patch_1, +  prerelease: prerelease_1, +  compare: compare_1, +  rcompare: rcompare_1, +  compareLoose: compareLoose_1, +  compareBuild: compareBuild_1, +  sort: sort_1, +  rsort: rsort_1, +  gt: gt_1, +  lt: lt_1, +  eq: eq_1, +  neq: neq_1, +  gte: gte_1, +  lte: lte_1, +  cmp: cmp_1, +  coerce: coerce_1, +  Comparator: comparator, +  Range: range, +  satisfies: satisfies_1, +  toComparators: toComparators_1, +  maxSatisfying: maxSatisfying_1, +  minSatisfying: minSatisfying_1, +  minVersion: minVersion_1, +  validRange: valid, +  outside: outside_1, +  gtr: gtr_1, +  ltr: ltr_1, +  intersects: intersects_1, +  simplifyRange: simplify, +  subset: subset_1 +}; + +var builtins = function ({ +  version = process.version, +  experimental = false +} = {}) { +  var coreModules = ['assert', 'buffer', 'child_process', 'cluster', 'console', 'constants', 'crypto', 'dgram', 'dns', 'domain', 'events', 'fs', 'http', 'https', 'module', 'net', 'os', 'path', 'punycode', 'querystring', 'readline', 'repl', 'stream', 'string_decoder', 'sys', 'timers', 'tls', 'tty', 'url', 'util', 'vm', 'zlib']; +  if (semver.lt(version, '6.0.0')) coreModules.push('freelist'); +  if (semver.gte(version, '1.0.0')) coreModules.push('v8'); +  if (semver.gte(version, '1.1.0')) coreModules.push('process'); +  if (semver.gte(version, '8.0.0')) coreModules.push('inspector'); +  if (semver.gte(version, '8.1.0')) coreModules.push('async_hooks'); +  if (semver.gte(version, '8.4.0')) coreModules.push('http2'); +  if (semver.gte(version, '8.5.0')) coreModules.push('perf_hooks'); +  if (semver.gte(version, '10.0.0')) coreModules.push('trace_events'); + +  if (semver.gte(version, '10.5.0') && (experimental || semver.gte(version, '12.0.0'))) { +    coreModules.push('worker_threads'); +  } + +  if (semver.gte(version, '12.16.0') && experimental) { +    coreModules.push('wasi'); +  } + +  return coreModules; +}; + +const reader = { +  read +}; + +function read(jsonPath) { +  return find(_path().dirname(jsonPath)); +} + +function find(dir) { +  try { +    const string = _fs().default.readFileSync(_path().toNamespacedPath(_path().join(dir, 'package.json')), 'utf8'); + +    return { +      string +    }; +  } catch (error) { +    if (error.code === 'ENOENT') { +      const parent = _path().dirname(dir); + +      if (dir !== parent) return find(parent); +      return { +        string: undefined +      }; +    } + +    throw error; +  } +} + +const isWindows = process.platform === 'win32'; +const own$1 = {}.hasOwnProperty; +const codes = {}; +const messages = new Map(); +const nodeInternalPrefix = '__node_internal_'; +let userStackTraceLimit; +codes.ERR_INVALID_MODULE_SPECIFIER = createError('ERR_INVALID_MODULE_SPECIFIER', (request, reason, base = undefined) => { +  return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ''}`; +}, TypeError); +codes.ERR_INVALID_PACKAGE_CONFIG = createError('ERR_INVALID_PACKAGE_CONFIG', (path, base, message) => { +  return `Invalid package config ${path}${base ? ` while importing ${base}` : ''}${message ? `. ${message}` : ''}`; +}, Error); +codes.ERR_INVALID_PACKAGE_TARGET = createError('ERR_INVALID_PACKAGE_TARGET', (pkgPath, key, target, isImport = false, base = undefined) => { +  const relError = typeof target === 'string' && !isImport && target.length > 0 && !target.startsWith('./'); + +  if (key === '.') { +    _assert()(isImport === false); + +    return `Invalid "exports" main target ${JSON.stringify(target)} defined ` + `in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ''}${relError ? '; targets must start with "./"' : ''}`; +  } + +  return `Invalid "${isImport ? 'imports' : 'exports'}" target ${JSON.stringify(target)} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ''}${relError ? '; targets must start with "./"' : ''}`; +}, Error); +codes.ERR_MODULE_NOT_FOUND = createError('ERR_MODULE_NOT_FOUND', (path, base, type = 'package') => { +  return `Cannot find ${type} '${path}' imported from ${base}`; +}, Error); +codes.ERR_PACKAGE_IMPORT_NOT_DEFINED = createError('ERR_PACKAGE_IMPORT_NOT_DEFINED', (specifier, packagePath, base) => { +  return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ''} imported from ${base}`; +}, TypeError); +codes.ERR_PACKAGE_PATH_NOT_EXPORTED = createError('ERR_PACKAGE_PATH_NOT_EXPORTED', (pkgPath, subpath, base = undefined) => { +  if (subpath === '.') return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ''}`; +  return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ''}`; +}, Error); +codes.ERR_UNSUPPORTED_DIR_IMPORT = createError('ERR_UNSUPPORTED_DIR_IMPORT', "Directory import '%s' is not supported " + 'resolving ES modules imported from %s', Error); +codes.ERR_UNKNOWN_FILE_EXTENSION = createError('ERR_UNKNOWN_FILE_EXTENSION', 'Unknown file extension "%s" for %s', TypeError); +codes.ERR_INVALID_ARG_VALUE = createError('ERR_INVALID_ARG_VALUE', (name, value, reason = 'is invalid') => { +  let inspected = (0, _util().inspect)(value); + +  if (inspected.length > 128) { +    inspected = `${inspected.slice(0, 128)}...`; +  } + +  const type = name.includes('.') ? 'property' : 'argument'; +  return `The ${type} '${name}' ${reason}. Received ${inspected}`; +}, TypeError); +codes.ERR_UNSUPPORTED_ESM_URL_SCHEME = createError('ERR_UNSUPPORTED_ESM_URL_SCHEME', url => { +  let message = 'Only file and data URLs are supported by the default ESM loader'; + +  if (isWindows && url.protocol.length === 2) { +    message += '. On Windows, absolute paths must be valid file:// URLs'; +  } + +  message += `. Received protocol '${url.protocol}'`; +  return message; +}, Error); + +function createError(sym, value, def) { +  messages.set(sym, value); +  return makeNodeErrorWithCode(def, sym); +} + +function makeNodeErrorWithCode(Base, key) { +  return NodeError; + +  function NodeError(...args) { +    const limit = Error.stackTraceLimit; +    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = 0; +    const error = new Base(); +    if (isErrorStackTraceLimitWritable()) Error.stackTraceLimit = limit; +    const message = getMessage(key, args, error); +    Object.defineProperty(error, 'message', { +      value: message, +      enumerable: false, +      writable: true, +      configurable: true +    }); +    Object.defineProperty(error, 'toString', { +      value() { +        return `${this.name} [${key}]: ${this.message}`; +      }, + +      enumerable: false, +      writable: true, +      configurable: true +    }); +    addCodeToName(error, Base.name, key); +    error.code = key; +    return error; +  } +} + +const addCodeToName = hideStackFrames(function (error, name, code) { +  error = captureLargerStackTrace(error); +  error.name = `${name} [${code}]`; +  error.stack; + +  if (name === 'SystemError') { +    Object.defineProperty(error, 'name', { +      value: name, +      enumerable: false, +      writable: true, +      configurable: true +    }); +  } else { +    delete error.name; +  } +}); + +function isErrorStackTraceLimitWritable() { +  const desc = Object.getOwnPropertyDescriptor(Error, 'stackTraceLimit'); + +  if (desc === undefined) { +    return Object.isExtensible(Error); +  } + +  return own$1.call(desc, 'writable') ? desc.writable : desc.set !== undefined; +} + +function hideStackFrames(fn) { +  const hidden = nodeInternalPrefix + fn.name; +  Object.defineProperty(fn, 'name', { +    value: hidden +  }); +  return fn; +} + +const captureLargerStackTrace = hideStackFrames(function (error) { +  const stackTraceLimitIsWritable = isErrorStackTraceLimitWritable(); + +  if (stackTraceLimitIsWritable) { +    userStackTraceLimit = Error.stackTraceLimit; +    Error.stackTraceLimit = Number.POSITIVE_INFINITY; +  } + +  Error.captureStackTrace(error); +  if (stackTraceLimitIsWritable) Error.stackTraceLimit = userStackTraceLimit; +  return error; +}); + +function getMessage(key, args, self) { +  const message = messages.get(key); + +  if (typeof message === 'function') { +    _assert()(message.length <= args.length, `Code: ${key}; The provided arguments length (${args.length}) does not ` + `match the required ones (${message.length}).`); + +    return Reflect.apply(message, self, args); +  } + +  const expectedLength = (message.match(/%[dfijoOs]/g) || []).length; + +  _assert()(expectedLength === args.length, `Code: ${key}; The provided arguments length (${args.length}) does not ` + `match the required ones (${expectedLength}).`); + +  if (args.length === 0) return message; +  args.unshift(message); +  return Reflect.apply(_util().format, null, args); +} + +const { +  ERR_UNKNOWN_FILE_EXTENSION +} = codes; +const extensionFormatMap = { +  __proto__: null, +  '.cjs': 'commonjs', +  '.js': 'module', +  '.mjs': 'module' +}; + +function defaultGetFormat(url) { +  if (url.startsWith('node:')) { +    return { +      format: 'builtin' +    }; +  } + +  const parsed = new (_url().URL)(url); + +  if (parsed.protocol === 'data:') { +    const { +      1: mime +    } = /^([^/]+\/[^;,]+)[^,]*?(;base64)?,/.exec(parsed.pathname) || [null, null]; +    const format = mime === 'text/javascript' ? 'module' : null; +    return { +      format +    }; +  } + +  if (parsed.protocol === 'file:') { +    const ext = _path().extname(parsed.pathname); + +    let format; + +    if (ext === '.js') { +      format = getPackageType(parsed.href) === 'module' ? 'module' : 'commonjs'; +    } else { +      format = extensionFormatMap[ext]; +    } + +    if (!format) { +      throw new ERR_UNKNOWN_FILE_EXTENSION(ext, (0, _url().fileURLToPath)(url)); +    } + +    return { +      format: format || null +    }; +  } + +  return { +    format: null +  }; +} + +const listOfBuiltins = builtins(); +const { +  ERR_INVALID_MODULE_SPECIFIER, +  ERR_INVALID_PACKAGE_CONFIG, +  ERR_INVALID_PACKAGE_TARGET, +  ERR_MODULE_NOT_FOUND, +  ERR_PACKAGE_IMPORT_NOT_DEFINED, +  ERR_PACKAGE_PATH_NOT_EXPORTED, +  ERR_UNSUPPORTED_DIR_IMPORT, +  ERR_UNSUPPORTED_ESM_URL_SCHEME, +  ERR_INVALID_ARG_VALUE +} = codes; +const own = {}.hasOwnProperty; +const DEFAULT_CONDITIONS = Object.freeze(['node', 'import']); +const DEFAULT_CONDITIONS_SET = new Set(DEFAULT_CONDITIONS); +const invalidSegmentRegEx = /(^|\\|\/)(\.\.?|node_modules)(\\|\/|$)/; +const patternRegEx = /\*/g; +const encodedSepRegEx = /%2f|%2c/i; +const emittedPackageWarnings = new Set(); +const packageJsonCache = new Map(); + +function emitFolderMapDeprecation(match, pjsonUrl, isExports, base) { +  const pjsonPath = (0, _url().fileURLToPath)(pjsonUrl); +  if (emittedPackageWarnings.has(pjsonPath + '|' + match)) return; +  emittedPackageWarnings.add(pjsonPath + '|' + match); +  process.emitWarning(`Use of deprecated folder mapping "${match}" in the ${isExports ? '"exports"' : '"imports"'} field module resolution of the package at ${pjsonPath}${base ? ` imported from ${(0, _url().fileURLToPath)(base)}` : ''}.\n` + `Update this package.json to use a subpath pattern like "${match}*".`, 'DeprecationWarning', 'DEP0148'); +} + +function emitLegacyIndexDeprecation(url, packageJsonUrl, base, main) { +  const { +    format +  } = defaultGetFormat(url.href); +  if (format !== 'module') return; +  const path = (0, _url().fileURLToPath)(url.href); +  const pkgPath = (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)); +  const basePath = (0, _url().fileURLToPath)(base); +  if (main) process.emitWarning(`Package ${pkgPath} has a "main" field set to ${JSON.stringify(main)}, ` + `excluding the full filename and extension to the resolved file at "${path.slice(pkgPath.length)}", imported from ${basePath}.\n Automatic extension resolution of the "main" field is` + 'deprecated for ES modules.', 'DeprecationWarning', 'DEP0151');else process.emitWarning(`No "main" or "exports" field defined in the package.json for ${pkgPath} resolving the main entry point "${path.slice(pkgPath.length)}", imported from ${basePath}.\nDefault "index" lookups for the main are deprecated for ES modules.`, 'DeprecationWarning', 'DEP0151'); +} + +function getConditionsSet(conditions) { +  if (conditions !== undefined && conditions !== DEFAULT_CONDITIONS) { +    if (!Array.isArray(conditions)) { +      throw new ERR_INVALID_ARG_VALUE('conditions', conditions, 'expected an array'); +    } + +    return new Set(conditions); +  } + +  return DEFAULT_CONDITIONS_SET; +} + +function tryStatSync(path) { +  try { +    return (0, _fs().statSync)(path); +  } catch (_unused) { +    return new (_fs().Stats)(); +  } +} + +function getPackageConfig(path, specifier, base) { +  const existing = packageJsonCache.get(path); + +  if (existing !== undefined) { +    return existing; +  } + +  const source = reader.read(path).string; + +  if (source === undefined) { +    const packageConfig = { +      pjsonPath: path, +      exists: false, +      main: undefined, +      name: undefined, +      type: 'none', +      exports: undefined, +      imports: undefined +    }; +    packageJsonCache.set(path, packageConfig); +    return packageConfig; +  } + +  let packageJson; + +  try { +    packageJson = JSON.parse(source); +  } catch (error) { +    throw new ERR_INVALID_PACKAGE_CONFIG(path, (base ? `"${specifier}" from ` : '') + (0, _url().fileURLToPath)(base || specifier), error.message); +  } + +  const { +    exports, +    imports, +    main, +    name, +    type +  } = packageJson; +  const packageConfig = { +    pjsonPath: path, +    exists: true, +    main: typeof main === 'string' ? main : undefined, +    name: typeof name === 'string' ? name : undefined, +    type: type === 'module' || type === 'commonjs' ? type : 'none', +    exports, +    imports: imports && typeof imports === 'object' ? imports : undefined +  }; +  packageJsonCache.set(path, packageConfig); +  return packageConfig; +} + +function getPackageScopeConfig(resolved) { +  let packageJsonUrl = new (_url().URL)('./package.json', resolved); + +  while (true) { +    const packageJsonPath = packageJsonUrl.pathname; +    if (packageJsonPath.endsWith('node_modules/package.json')) break; +    const packageConfig = getPackageConfig((0, _url().fileURLToPath)(packageJsonUrl), resolved); +    if (packageConfig.exists) return packageConfig; +    const lastPackageJsonUrl = packageJsonUrl; +    packageJsonUrl = new (_url().URL)('../package.json', packageJsonUrl); +    if (packageJsonUrl.pathname === lastPackageJsonUrl.pathname) break; +  } + +  const packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); +  const packageConfig = { +    pjsonPath: packageJsonPath, +    exists: false, +    main: undefined, +    name: undefined, +    type: 'none', +    exports: undefined, +    imports: undefined +  }; +  packageJsonCache.set(packageJsonPath, packageConfig); +  return packageConfig; +} + +function fileExists(url) { +  return tryStatSync((0, _url().fileURLToPath)(url)).isFile(); +} + +function legacyMainResolve(packageJsonUrl, packageConfig, base) { +  let guess; + +  if (packageConfig.main !== undefined) { +    guess = new (_url().URL)(`./${packageConfig.main}`, packageJsonUrl); +    if (fileExists(guess)) return guess; +    const tries = [`./${packageConfig.main}.js`, `./${packageConfig.main}.json`, `./${packageConfig.main}.node`, `./${packageConfig.main}/index.js`, `./${packageConfig.main}/index.json`, `./${packageConfig.main}/index.node`]; +    let i = -1; + +    while (++i < tries.length) { +      guess = new (_url().URL)(tries[i], packageJsonUrl); +      if (fileExists(guess)) break; +      guess = undefined; +    } + +    if (guess) { +      emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); +      return guess; +    } +  } + +  const tries = ['./index.js', './index.json', './index.node']; +  let i = -1; + +  while (++i < tries.length) { +    guess = new (_url().URL)(tries[i], packageJsonUrl); +    if (fileExists(guess)) break; +    guess = undefined; +  } + +  if (guess) { +    emitLegacyIndexDeprecation(guess, packageJsonUrl, base, packageConfig.main); +    return guess; +  } + +  throw new ERR_MODULE_NOT_FOUND((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} + +function finalizeResolution(resolved, base) { +  if (encodedSepRegEx.test(resolved.pathname)) throw new ERR_INVALID_MODULE_SPECIFIER(resolved.pathname, 'must not include encoded "/" or "\\" characters', (0, _url().fileURLToPath)(base)); +  const path = (0, _url().fileURLToPath)(resolved); +  const stats = tryStatSync(path.endsWith('/') ? path.slice(-1) : path); + +  if (stats.isDirectory()) { +    const error = new ERR_UNSUPPORTED_DIR_IMPORT(path, (0, _url().fileURLToPath)(base)); +    error.url = String(resolved); +    throw error; +  } + +  if (!stats.isFile()) { +    throw new ERR_MODULE_NOT_FOUND(path || resolved.pathname, base && (0, _url().fileURLToPath)(base), 'module'); +  } + +  return resolved; +} + +function throwImportNotDefined(specifier, packageJsonUrl, base) { +  throw new ERR_PACKAGE_IMPORT_NOT_DEFINED(specifier, packageJsonUrl && (0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), (0, _url().fileURLToPath)(base)); +} + +function throwExportsNotFound(subpath, packageJsonUrl, base) { +  throw new ERR_PACKAGE_PATH_NOT_EXPORTED((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, base && (0, _url().fileURLToPath)(base)); +} + +function throwInvalidSubpath(subpath, packageJsonUrl, internal, base) { +  const reason = `request is not a valid subpath for the "${internal ? 'imports' : 'exports'}" resolution of ${(0, _url().fileURLToPath)(packageJsonUrl)}`; +  throw new ERR_INVALID_MODULE_SPECIFIER(subpath, reason, base && (0, _url().fileURLToPath)(base)); +} + +function throwInvalidPackageTarget(subpath, target, packageJsonUrl, internal, base) { +  target = typeof target === 'object' && target !== null ? JSON.stringify(target, null, '') : `${target}`; +  throw new ERR_INVALID_PACKAGE_TARGET((0, _url().fileURLToPath)(new (_url().URL)('.', packageJsonUrl)), subpath, target, internal, base && (0, _url().fileURLToPath)(base)); +} + +function resolvePackageTargetString(target, subpath, match, packageJsonUrl, base, pattern, internal, conditions) { +  if (subpath !== '' && !pattern && target[target.length - 1] !== '/') throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); + +  if (!target.startsWith('./')) { +    if (internal && !target.startsWith('../') && !target.startsWith('/')) { +      let isURL = false; + +      try { +        new (_url().URL)(target); +        isURL = true; +      } catch (_unused2) {} + +      if (!isURL) { +        const exportTarget = pattern ? target.replace(patternRegEx, subpath) : target + subpath; +        return packageResolve(exportTarget, packageJsonUrl, conditions); +      } +    } + +    throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); +  } + +  if (invalidSegmentRegEx.test(target.slice(2))) throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); +  const resolved = new (_url().URL)(target, packageJsonUrl); +  const resolvedPath = resolved.pathname; +  const packagePath = new (_url().URL)('.', packageJsonUrl).pathname; +  if (!resolvedPath.startsWith(packagePath)) throwInvalidPackageTarget(match, target, packageJsonUrl, internal, base); +  if (subpath === '') return resolved; +  if (invalidSegmentRegEx.test(subpath)) throwInvalidSubpath(match + subpath, packageJsonUrl, internal, base); +  if (pattern) return new (_url().URL)(resolved.href.replace(patternRegEx, subpath)); +  return new (_url().URL)(subpath, resolved); +} + +function isArrayIndex(key) { +  const keyNumber = Number(key); +  if (`${keyNumber}` !== key) return false; +  return keyNumber >= 0 && keyNumber < 0xffffffff; +} + +function resolvePackageTarget(packageJsonUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { +  if (typeof target === 'string') { +    return resolvePackageTargetString(target, subpath, packageSubpath, packageJsonUrl, base, pattern, internal, conditions); +  } + +  if (Array.isArray(target)) { +    const targetList = target; +    if (targetList.length === 0) return null; +    let lastException; +    let i = -1; + +    while (++i < targetList.length) { +      const targetItem = targetList[i]; +      let resolved; + +      try { +        resolved = resolvePackageTarget(packageJsonUrl, targetItem, subpath, packageSubpath, base, pattern, internal, conditions); +      } catch (error) { +        lastException = error; +        if (error.code === 'ERR_INVALID_PACKAGE_TARGET') continue; +        throw error; +      } + +      if (resolved === undefined) continue; + +      if (resolved === null) { +        lastException = null; +        continue; +      } + +      return resolved; +    } + +    if (lastException === undefined || lastException === null) { +      return lastException; +    } + +    throw lastException; +  } + +  if (typeof target === 'object' && target !== null) { +    const keys = Object.getOwnPropertyNames(target); +    let i = -1; + +    while (++i < keys.length) { +      const key = keys[i]; + +      if (isArrayIndex(key)) { +        throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain numeric property keys.'); +      } +    } + +    i = -1; + +    while (++i < keys.length) { +      const key = keys[i]; + +      if (key === 'default' || conditions && conditions.has(key)) { +        const conditionalTarget = target[key]; +        const resolved = resolvePackageTarget(packageJsonUrl, conditionalTarget, subpath, packageSubpath, base, pattern, internal, conditions); +        if (resolved === undefined) continue; +        return resolved; +      } +    } + +    return undefined; +  } + +  if (target === null) { +    return null; +  } + +  throwInvalidPackageTarget(packageSubpath, target, packageJsonUrl, internal, base); +} + +function isConditionalExportsMainSugar(exports, packageJsonUrl, base) { +  if (typeof exports === 'string' || Array.isArray(exports)) return true; +  if (typeof exports !== 'object' || exports === null) return false; +  const keys = Object.getOwnPropertyNames(exports); +  let isConditionalSugar = false; +  let i = 0; +  let j = -1; + +  while (++j < keys.length) { +    const key = keys[j]; +    const curIsConditionalSugar = key === '' || key[0] !== '.'; + +    if (i++ === 0) { +      isConditionalSugar = curIsConditionalSugar; +    } else if (isConditionalSugar !== curIsConditionalSugar) { +      throw new ERR_INVALID_PACKAGE_CONFIG((0, _url().fileURLToPath)(packageJsonUrl), base, '"exports" cannot contain some keys starting with \'.\' and some not.' + ' The exports object must either be an object of package subpath keys' + ' or an object of main entry condition name keys only.'); +    } +  } + +  return isConditionalSugar; +} + +function packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions) { +  let exports = packageConfig.exports; +  if (isConditionalExportsMainSugar(exports, packageJsonUrl, base)) exports = { +    '.': exports +  }; + +  if (own.call(exports, packageSubpath)) { +    const target = exports[packageSubpath]; +    const resolved = resolvePackageTarget(packageJsonUrl, target, '', packageSubpath, base, false, false, conditions); +    if (resolved === null || resolved === undefined) throwExportsNotFound(packageSubpath, packageJsonUrl, base); +    return { +      resolved, +      exact: true +    }; +  } + +  let bestMatch = ''; +  const keys = Object.getOwnPropertyNames(exports); +  let i = -1; + +  while (++i < keys.length) { +    const key = keys[i]; + +    if (key[key.length - 1] === '*' && packageSubpath.startsWith(key.slice(0, -1)) && packageSubpath.length >= key.length && key.length > bestMatch.length) { +      bestMatch = key; +    } else if (key[key.length - 1] === '/' && packageSubpath.startsWith(key) && key.length > bestMatch.length) { +      bestMatch = key; +    } +  } + +  if (bestMatch) { +    const target = exports[bestMatch]; +    const pattern = bestMatch[bestMatch.length - 1] === '*'; +    const subpath = packageSubpath.slice(bestMatch.length - (pattern ? 1 : 0)); +    const resolved = resolvePackageTarget(packageJsonUrl, target, subpath, bestMatch, base, pattern, false, conditions); +    if (resolved === null || resolved === undefined) throwExportsNotFound(packageSubpath, packageJsonUrl, base); +    if (!pattern) emitFolderMapDeprecation(bestMatch, packageJsonUrl, true, base); +    return { +      resolved, +      exact: pattern +    }; +  } + +  throwExportsNotFound(packageSubpath, packageJsonUrl, base); +} + +function packageImportsResolve(name, base, conditions) { +  if (name === '#' || name.startsWith('#/')) { +    const reason = 'is not a valid internal imports specifier name'; +    throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, (0, _url().fileURLToPath)(base)); +  } + +  let packageJsonUrl; +  const packageConfig = getPackageScopeConfig(base); + +  if (packageConfig.exists) { +    packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); +    const imports = packageConfig.imports; + +    if (imports) { +      if (own.call(imports, name)) { +        const resolved = resolvePackageTarget(packageJsonUrl, imports[name], '', name, base, false, true, conditions); +        if (resolved !== null) return { +          resolved, +          exact: true +        }; +      } else { +        let bestMatch = ''; +        const keys = Object.getOwnPropertyNames(imports); +        let i = -1; + +        while (++i < keys.length) { +          const key = keys[i]; + +          if (key[key.length - 1] === '*' && name.startsWith(key.slice(0, -1)) && name.length >= key.length && key.length > bestMatch.length) { +            bestMatch = key; +          } else if (key[key.length - 1] === '/' && name.startsWith(key) && key.length > bestMatch.length) { +            bestMatch = key; +          } +        } + +        if (bestMatch) { +          const target = imports[bestMatch]; +          const pattern = bestMatch[bestMatch.length - 1] === '*'; +          const subpath = name.slice(bestMatch.length - (pattern ? 1 : 0)); +          const resolved = resolvePackageTarget(packageJsonUrl, target, subpath, bestMatch, base, pattern, true, conditions); + +          if (resolved !== null) { +            if (!pattern) emitFolderMapDeprecation(bestMatch, packageJsonUrl, false, base); +            return { +              resolved, +              exact: pattern +            }; +          } +        } +      } +    } +  } + +  throwImportNotDefined(name, packageJsonUrl, base); +} + +function getPackageType(url) { +  const packageConfig = getPackageScopeConfig(url); +  return packageConfig.type; +} + +function parsePackageName(specifier, base) { +  let separatorIndex = specifier.indexOf('/'); +  let validPackageName = true; +  let isScoped = false; + +  if (specifier[0] === '@') { +    isScoped = true; + +    if (separatorIndex === -1 || specifier.length === 0) { +      validPackageName = false; +    } else { +      separatorIndex = specifier.indexOf('/', separatorIndex + 1); +    } +  } + +  const packageName = separatorIndex === -1 ? specifier : specifier.slice(0, separatorIndex); +  let i = -1; + +  while (++i < packageName.length) { +    if (packageName[i] === '%' || packageName[i] === '\\') { +      validPackageName = false; +      break; +    } +  } + +  if (!validPackageName) { +    throw new ERR_INVALID_MODULE_SPECIFIER(specifier, 'is not a valid package name', (0, _url().fileURLToPath)(base)); +  } + +  const packageSubpath = '.' + (separatorIndex === -1 ? '' : specifier.slice(separatorIndex)); +  return { +    packageName, +    packageSubpath, +    isScoped +  }; +} + +function packageResolve(specifier, base, conditions) { +  const { +    packageName, +    packageSubpath, +    isScoped +  } = parsePackageName(specifier, base); +  const packageConfig = getPackageScopeConfig(base); + +  if (packageConfig.exists) { +    const packageJsonUrl = (0, _url().pathToFileURL)(packageConfig.pjsonPath); + +    if (packageConfig.name === packageName && packageConfig.exports !== undefined && packageConfig.exports !== null) { +      return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions).resolved; +    } +  } + +  let packageJsonUrl = new (_url().URL)('./node_modules/' + packageName + '/package.json', base); +  let packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); +  let lastPath; + +  do { +    const stat = tryStatSync(packageJsonPath.slice(0, -13)); + +    if (!stat.isDirectory()) { +      lastPath = packageJsonPath; +      packageJsonUrl = new (_url().URL)((isScoped ? '../../../../node_modules/' : '../../../node_modules/') + packageName + '/package.json', packageJsonUrl); +      packageJsonPath = (0, _url().fileURLToPath)(packageJsonUrl); +      continue; +    } + +    const packageConfig = getPackageConfig(packageJsonPath, specifier, base); +    if (packageConfig.exports !== undefined && packageConfig.exports !== null) return packageExportsResolve(packageJsonUrl, packageSubpath, packageConfig, base, conditions).resolved; +    if (packageSubpath === '.') return legacyMainResolve(packageJsonUrl, packageConfig, base); +    return new (_url().URL)(packageSubpath, packageJsonUrl); +  } while (packageJsonPath.length !== lastPath.length); + +  throw new ERR_MODULE_NOT_FOUND(packageName, (0, _url().fileURLToPath)(base)); +} + +function isRelativeSpecifier(specifier) { +  if (specifier[0] === '.') { +    if (specifier.length === 1 || specifier[1] === '/') return true; + +    if (specifier[1] === '.' && (specifier.length === 2 || specifier[2] === '/')) { +      return true; +    } +  } + +  return false; +} + +function shouldBeTreatedAsRelativeOrAbsolutePath(specifier) { +  if (specifier === '') return false; +  if (specifier[0] === '/') return true; +  return isRelativeSpecifier(specifier); +} + +function moduleResolve(specifier, base, conditions) { +  let resolved; + +  if (shouldBeTreatedAsRelativeOrAbsolutePath(specifier)) { +    resolved = new (_url().URL)(specifier, base); +  } else if (specifier[0] === '#') { +    ({ +      resolved +    } = packageImportsResolve(specifier, base, conditions)); +  } else { +    try { +      resolved = new (_url().URL)(specifier); +    } catch (_unused3) { +      resolved = packageResolve(specifier, base, conditions); +    } +  } + +  return finalizeResolution(resolved, base); +} + +function defaultResolve(specifier, context = {}) { +  const { +    parentURL +  } = context; +  let parsed; + +  try { +    parsed = new (_url().URL)(specifier); + +    if (parsed.protocol === 'data:') { +      return { +        url: specifier +      }; +    } +  } catch (_unused4) {} + +  if (parsed && parsed.protocol === 'node:') return { +    url: specifier +  }; +  if (parsed && parsed.protocol !== 'file:' && parsed.protocol !== 'data:') throw new ERR_UNSUPPORTED_ESM_URL_SCHEME(parsed); + +  if (listOfBuiltins.includes(specifier)) { +    return { +      url: 'node:' + specifier +    }; +  } + +  if (parentURL.startsWith('data:')) { +    new (_url().URL)(specifier, parentURL); +  } + +  const conditions = getConditionsSet(context.conditions); +  let url = moduleResolve(specifier, new (_url().URL)(parentURL), conditions); +  const urlPath = (0, _url().fileURLToPath)(url); +  const real = (0, _fs().realpathSync)(urlPath); +  const old = url; +  url = (0, _url().pathToFileURL)(real + (urlPath.endsWith(_path().sep) ? '/' : '')); +  url.search = old.search; +  url.hash = old.hash; +  return { +    url: `${url}` +  }; +} + +function resolve(_x, _x2) { +  return _resolve.apply(this, arguments); +} + +function _resolve() { +  _resolve = _asyncToGenerator(function* (specifier, parent) { +    if (!parent) { +      throw new Error('Please pass `parent`: `import-meta-resolve` cannot ponyfill that'); +    } + +    try { +      return defaultResolve(specifier, { +        parentURL: parent +      }).url; +    } catch (error) { +      return error.code === 'ERR_UNSUPPORTED_DIR_IMPORT' ? error.url : Promise.reject(error); +    } +  }); +  return _resolve.apply(this, arguments); +}
\ No newline at end of file diff --git a/node_modules/@babel/core/package.json b/node_modules/@babel/core/package.json new file mode 100644 index 0000000..86e20c3 --- /dev/null +++ b/node_modules/@babel/core/package.json @@ -0,0 +1,76 @@ +{ +  "name": "@babel/core", +  "version": "7.17.5", +  "description": "Babel compiler core.", +  "main": "./lib/index.js", +  "author": "The Babel Team (https://babel.dev/team)", +  "license": "MIT", +  "publishConfig": { +    "access": "public" +  }, +  "repository": { +    "type": "git", +    "url": "https://github.com/babel/babel.git", +    "directory": "packages/babel-core" +  }, +  "homepage": "https://babel.dev/docs/en/next/babel-core", +  "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen", +  "keywords": [ +    "6to5", +    "babel", +    "classes", +    "const", +    "es6", +    "harmony", +    "let", +    "modules", +    "transpile", +    "transpiler", +    "var", +    "babel-core", +    "compiler" +  ], +  "engines": { +    "node": ">=6.9.0" +  }, +  "funding": { +    "type": "opencollective", +    "url": "https://opencollective.com/babel" +  }, +  "browser": { +    "./lib/config/files/index.js": "./lib/config/files/index-browser.js", +    "./lib/config/resolve-targets.js": "./lib/config/resolve-targets-browser.js", +    "./lib/transform-file.js": "./lib/transform-file-browser.js", +    "./lib/transformation/util/clone-deep.js": "./lib/transformation/util/clone-deep-browser.js", +    "./src/config/files/index.ts": "./src/config/files/index-browser.ts", +    "./src/config/resolve-targets.ts": "./src/config/resolve-targets-browser.ts", +    "./src/transform-file.ts": "./src/transform-file-browser.ts", +    "./src/transformation/util/clone-deep.ts": "./src/transformation/util/clone-deep-browser.ts" +  }, +  "dependencies": { +    "@ampproject/remapping": "^2.1.0", +    "@babel/code-frame": "^7.16.7", +    "@babel/generator": "^7.17.3", +    "@babel/helper-compilation-targets": "^7.16.7", +    "@babel/helper-module-transforms": "^7.16.7", +    "@babel/helpers": "^7.17.2", +    "@babel/parser": "^7.17.3", +    "@babel/template": "^7.16.7", +    "@babel/traverse": "^7.17.3", +    "@babel/types": "^7.17.0", +    "convert-source-map": "^1.7.0", +    "debug": "^4.1.0", +    "gensync": "^1.0.0-beta.2", +    "json5": "^2.1.2", +    "semver": "^6.3.0" +  }, +  "devDependencies": { +    "@babel/helper-transform-fixture-test-runner": "^7.17.3", +    "@babel/plugin-transform-modules-commonjs": "^7.16.8", +    "@jridgewell/trace-mapping": "^0.3.4", +    "@types/convert-source-map": "^1.5.1", +    "@types/debug": "^4.1.0", +    "@types/resolve": "^1.3.2", +    "@types/semver": "^5.4.0" +  } +}
\ No newline at end of file diff --git a/node_modules/@babel/core/src/config/files/index-browser.ts b/node_modules/@babel/core/src/config/files/index-browser.ts new file mode 100644 index 0000000..ac615d9 --- /dev/null +++ b/node_modules/@babel/core/src/config/files/index-browser.ts @@ -0,0 +1,109 @@ +import type { Handler } from "gensync"; + +import type { +  ConfigFile, +  IgnoreFile, +  RelativeConfig, +  FilePackageData, +} from "./types"; + +import type { CallerMetadata } from "../validation/options"; + +export type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData }; + +export function findConfigUpwards( +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  rootDir: string, +): string | null { +  return null; +} + +// eslint-disable-next-line require-yield +export function* findPackageData(filepath: string): Handler<FilePackageData> { +  return { +    filepath, +    directories: [], +    pkg: null, +    isPackage: false, +  }; +} + +// eslint-disable-next-line require-yield +export function* findRelativeConfig( +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  pkgData: FilePackageData, +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  envName: string, +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  caller: CallerMetadata | void, +): Handler<RelativeConfig> { +  return { config: null, ignore: null }; +} + +// eslint-disable-next-line require-yield +export function* findRootConfig( +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  dirname: string, +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  envName: string, +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  caller: CallerMetadata | void, +): Handler<ConfigFile | null> { +  return null; +} + +// eslint-disable-next-line require-yield +export function* loadConfig( +  name: string, +  dirname: string, +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  envName: string, +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  caller: CallerMetadata | void, +): Handler<ConfigFile> { +  throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`); +} + +// eslint-disable-next-line require-yield +export function* resolveShowConfigPath( +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  dirname: string, +): Handler<string | null> { +  return null; +} + +export const ROOT_CONFIG_FILENAMES = []; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function resolvePlugin(name: string, dirname: string): string | null { +  return null; +} + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export function resolvePreset(name: string, dirname: string): string | null { +  return null; +} + +export function loadPlugin( +  name: string, +  dirname: string, +): Handler<{ +  filepath: string; +  value: unknown; +}> { +  throw new Error( +    `Cannot load plugin ${name} relative to ${dirname} in a browser`, +  ); +} + +export function loadPreset( +  name: string, +  dirname: string, +): Handler<{ +  filepath: string; +  value: unknown; +}> { +  throw new Error( +    `Cannot load preset ${name} relative to ${dirname} in a browser`, +  ); +} diff --git a/node_modules/@babel/core/src/config/files/index.ts b/node_modules/@babel/core/src/config/files/index.ts new file mode 100644 index 0000000..31e8560 --- /dev/null +++ b/node_modules/@babel/core/src/config/files/index.ts @@ -0,0 +1,30 @@ +type indexBrowserType = typeof import("./index-browser"); +type indexType = typeof import("./index"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of index-browser, since this file may be replaced at bundle time with index-browser. +({} as any as indexBrowserType as indexType); + +export { findPackageData } from "./package"; + +export { +  findConfigUpwards, +  findRelativeConfig, +  findRootConfig, +  loadConfig, +  resolveShowConfigPath, +  ROOT_CONFIG_FILENAMES, +} from "./configuration"; +export type { +  ConfigFile, +  IgnoreFile, +  RelativeConfig, +  FilePackageData, +} from "./types"; +export { loadPlugin, loadPreset } from "./plugins"; + +import gensync from "gensync"; +import * as plugins from "./plugins"; + +export const resolvePlugin = gensync(plugins.resolvePlugin).sync; +export const resolvePreset = gensync(plugins.resolvePreset).sync; diff --git a/node_modules/@babel/core/src/config/resolve-targets-browser.ts b/node_modules/@babel/core/src/config/resolve-targets-browser.ts new file mode 100644 index 0000000..2d91c92 --- /dev/null +++ b/node_modules/@babel/core/src/config/resolve-targets-browser.ts @@ -0,0 +1,33 @@ +import type { ValidatedOptions } from "./validation/options"; +import getTargets from "@babel/helper-compilation-targets"; + +import type { Targets } from "@babel/helper-compilation-targets"; + +export function resolveBrowserslistConfigFile( +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  browserslistConfigFile: string, +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  configFilePath: string, +): string | void { +  return undefined; +} + +export function resolveTargets( +  options: ValidatedOptions, +  // eslint-disable-next-line @typescript-eslint/no-unused-vars +  root: string, +): Targets { +  // todo(flow->ts) remove any and refactor to not assign different types into same variable +  let targets: any = options.targets; +  if (typeof targets === "string" || Array.isArray(targets)) { +    targets = { browsers: targets }; +  } +  if (targets && targets.esmodules) { +    targets = { ...targets, esmodules: "intersect" }; +  } + +  return getTargets(targets, { +    ignoreBrowserslistConfig: true, +    browserslistEnv: options.browserslistEnv, +  }); +} diff --git a/node_modules/@babel/core/src/config/resolve-targets.ts b/node_modules/@babel/core/src/config/resolve-targets.ts new file mode 100644 index 0000000..90a443e --- /dev/null +++ b/node_modules/@babel/core/src/config/resolve-targets.ts @@ -0,0 +1,49 @@ +type browserType = typeof import("./resolve-targets-browser"); +type nodeType = typeof import("./resolve-targets"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of index-browser, since this file may be replaced at bundle time with index-browser. +({} as any as browserType as nodeType); + +import type { ValidatedOptions } from "./validation/options"; +import path from "path"; +import getTargets from "@babel/helper-compilation-targets"; + +import type { Targets } from "@babel/helper-compilation-targets"; + +export function resolveBrowserslistConfigFile( +  browserslistConfigFile: string, +  configFileDir: string, +): string | undefined { +  return path.resolve(configFileDir, browserslistConfigFile); +} + +export function resolveTargets( +  options: ValidatedOptions, +  root: string, +): Targets { +  // todo(flow->ts) remove any and refactor to not assign different types into same variable +  let targets: any = options.targets; +  if (typeof targets === "string" || Array.isArray(targets)) { +    targets = { browsers: targets }; +  } +  if (targets && targets.esmodules) { +    targets = { ...targets, esmodules: "intersect" }; +  } + +  const { browserslistConfigFile } = options; +  let configFile; +  let ignoreBrowserslistConfig = false; +  if (typeof browserslistConfigFile === "string") { +    configFile = browserslistConfigFile; +  } else { +    ignoreBrowserslistConfig = browserslistConfigFile === false; +  } + +  return getTargets(targets, { +    ignoreBrowserslistConfig, +    configFile, +    configPath: root, +    browserslistEnv: options.browserslistEnv, +  }); +} diff --git a/node_modules/@babel/core/src/transform-file-browser.ts b/node_modules/@babel/core/src/transform-file-browser.ts new file mode 100644 index 0000000..1adbcd6 --- /dev/null +++ b/node_modules/@babel/core/src/transform-file-browser.ts @@ -0,0 +1,27 @@ +// duplicated from transform-file so we do not have to import anything here +type TransformFile = { +  (filename: string, callback: Function): void; +  (filename: string, opts: any, callback: Function): void; +}; + +export const transformFile: TransformFile = function transformFile( +  filename, +  opts, +  callback?, +) { +  if (typeof opts === "function") { +    callback = opts; +  } + +  callback(new Error("Transforming files is not supported in browsers"), null); +}; + +export function transformFileSync(): never { +  throw new Error("Transforming files is not supported in browsers"); +} + +export function transformFileAsync() { +  return Promise.reject( +    new Error("Transforming files is not supported in browsers"), +  ); +} diff --git a/node_modules/@babel/core/src/transform-file.ts b/node_modules/@babel/core/src/transform-file.ts new file mode 100644 index 0000000..4be0e16 --- /dev/null +++ b/node_modules/@babel/core/src/transform-file.ts @@ -0,0 +1,40 @@ +import gensync from "gensync"; + +import loadConfig from "./config"; +import type { InputOptions, ResolvedConfig } from "./config"; +import { run } from "./transformation"; +import type { FileResult, FileResultCallback } from "./transformation"; +import * as fs from "./gensync-utils/fs"; + +type transformFileBrowserType = typeof import("./transform-file-browser"); +type transformFileType = typeof import("./transform-file"); + +// Kind of gross, but essentially asserting that the exports of this module are the same as the +// exports of transform-file-browser, since this file may be replaced at bundle time with +// transform-file-browser. +({} as any as transformFileBrowserType as transformFileType); + +type TransformFile = { +  (filename: string, callback: FileResultCallback): void; +  ( +    filename: string, +    opts: InputOptions | undefined | null, +    callback: FileResultCallback, +  ): void; +}; + +const transformFileRunner = gensync< +  (filename: string, opts?: InputOptions) => FileResult | null +>(function* (filename, opts: InputOptions) { +  const options = { ...opts, filename }; + +  const config: ResolvedConfig | null = yield* loadConfig(options); +  if (config === null) return null; + +  const code = yield* fs.readFile(filename, "utf8"); +  return yield* run(config, code); +}); + +export const transformFile = transformFileRunner.errback as TransformFile; +export const transformFileSync = transformFileRunner.sync; +export const transformFileAsync = transformFileRunner.async; diff --git a/node_modules/@babel/core/src/transformation/util/clone-deep-browser.ts b/node_modules/@babel/core/src/transformation/util/clone-deep-browser.ts new file mode 100644 index 0000000..78ae53e --- /dev/null +++ b/node_modules/@babel/core/src/transformation/util/clone-deep-browser.ts @@ -0,0 +1,19 @@ +const serialized = "$$ babel internal serialized type" + Math.random(); + +function serialize(key, value) { +  if (typeof value !== "bigint") return value; +  return { +    [serialized]: "BigInt", +    value: value.toString(), +  }; +} + +function revive(key, value) { +  if (!value || typeof value !== "object") return value; +  if (value[serialized] !== "BigInt") return value; +  return BigInt(value.value); +} + +export default function (value) { +  return JSON.parse(JSON.stringify(value, serialize), revive); +} diff --git a/node_modules/@babel/core/src/transformation/util/clone-deep.ts b/node_modules/@babel/core/src/transformation/util/clone-deep.ts new file mode 100644 index 0000000..cc077ce --- /dev/null +++ b/node_modules/@babel/core/src/transformation/util/clone-deep.ts @@ -0,0 +1,9 @@ +import v8 from "v8"; +import cloneDeep from "./clone-deep-browser"; + +export default function (value) { +  if (v8.deserialize && v8.serialize) { +    return v8.deserialize(v8.serialize(value)); +  } +  return cloneDeep(value); +}  | 
