aboutsummaryrefslogtreecommitdiff
path: root/node_modules/@babel/core/lib/config
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/@babel/core/lib/config')
-rw-r--r--node_modules/@babel/core/lib/config/caching.js200
-rw-r--r--node_modules/@babel/core/lib/config/config-chain.js487
-rw-r--r--node_modules/@babel/core/lib/config/config-descriptors.js206
-rw-r--r--node_modules/@babel/core/lib/config/files/configuration.js306
-rw-r--r--node_modules/@babel/core/lib/config/files/index-browser.js54
-rw-r--r--node_modules/@babel/core/lib/config/files/index.js61
-rw-r--r--node_modules/@babel/core/lib/config/files/package.js76
-rw-r--r--node_modules/@babel/core/lib/config/files/plugins.js168
-rw-r--r--node_modules/@babel/core/lib/config/files/types.js1
-rw-r--r--node_modules/@babel/core/lib/config/files/utils.js41
-rw-r--r--node_modules/@babel/core/lib/config/full.js268
-rw-r--r--node_modules/@babel/core/lib/config/helpers/config-api.js76
-rw-r--r--node_modules/@babel/core/lib/config/helpers/environment.js10
-rw-r--r--node_modules/@babel/core/lib/config/index.js39
-rw-r--r--node_modules/@babel/core/lib/config/item.js71
-rw-r--r--node_modules/@babel/core/lib/config/partial.js103
-rw-r--r--node_modules/@babel/core/lib/config/plugin.js22
-rw-r--r--node_modules/@babel/core/lib/config/util.js37
-rw-r--r--node_modules/@babel/core/lib/config/validation/option-assertions.js205
-rw-r--r--node_modules/@babel/core/lib/config/validation/options.js169
-rw-r--r--node_modules/@babel/core/lib/config/validation/plugins.js55
-rw-r--r--node_modules/@babel/core/lib/config/validation/removed.js66
22 files changed, 2721 insertions, 0 deletions
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 00000000..d092b2d0
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/caching.js
@@ -0,0 +1,200 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.makeStrongCache = makeStrongCache;
+exports.makeWeakCache = makeWeakCache;
+
+function makeStrongCache(handler) {
+ return makeCachedFunction(new Map(), handler);
+}
+
+function makeWeakCache(handler) {
+ return makeCachedFunction(new WeakMap(), handler);
+}
+
+function makeCachedFunction(callCache, handler) {
+ return function cachedFunction(arg, data) {
+ let cachedValue = callCache.get(arg);
+
+ if (cachedValue) {
+ for (var _iterator = cachedValue, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
+ var _ref2;
+
+ if (_isArray) {
+ if (_i >= _iterator.length) break;
+ _ref2 = _iterator[_i++];
+ } else {
+ _i = _iterator.next();
+ if (_i.done) break;
+ _ref2 = _i.value;
+ }
+
+ const _ref = _ref2;
+ const value = _ref.value,
+ valid = _ref.valid;
+ if (valid(data)) return value;
+ }
+ }
+
+ const cache = new CacheConfigurator(data);
+ const value = handler(arg, cache);
+ if (!cache.configured()) cache.forever();
+ cache.deactivate();
+
+ switch (cache.mode()) {
+ case "forever":
+ cachedValue = [{
+ value,
+ valid: () => true
+ }];
+ callCache.set(arg, cachedValue);
+ break;
+
+ case "invalidate":
+ cachedValue = [{
+ value,
+ valid: cache.validator()
+ }];
+ callCache.set(arg, cachedValue);
+ break;
+
+ case "valid":
+ if (cachedValue) {
+ cachedValue.push({
+ value,
+ valid: cache.validator()
+ });
+ } else {
+ cachedValue = [{
+ value,
+ valid: cache.validator()
+ }];
+ callCache.set(arg, cachedValue);
+ }
+
+ }
+
+ return value;
+ };
+}
+
+class CacheConfigurator {
+ constructor(data) {
+ this._active = true;
+ this._never = false;
+ this._forever = false;
+ this._invalidate = false;
+ this._configured = false;
+ this._pairs = [];
+ 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);
+
+ this._pairs.push([key, handler]);
+
+ return key;
+ }
+
+ invalidate(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._invalidate = true;
+ this._configured = true;
+ const key = handler(this._data);
+
+ this._pairs.push([key, handler]);
+
+ return key;
+ }
+
+ validator() {
+ const pairs = this._pairs;
+ return data => pairs.every(([key, fn]) => key === fn(data));
+ }
+
+ 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(val);
+ }
+
+ cacheFn.forever = () => cache.forever();
+
+ cacheFn.never = () => cache.never();
+
+ cacheFn.using = cb => cache.using(() => cb());
+
+ cacheFn.invalidate = cb => cache.invalidate(() => cb());
+
+ return cacheFn;
+} \ 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 00000000..22bca2bd
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/config-chain.js
@@ -0,0 +1,487 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.buildRootChain = buildRootChain;
+exports.buildPresetChain = void 0;
+
+function _path() {
+ const data = _interopRequireDefault(require("path"));
+
+ _path = function _path() {
+ return data;
+ };
+
+ return data;
+}
+
+function _micromatch() {
+ const data = _interopRequireDefault(require("micromatch"));
+
+ _micromatch = function _micromatch() {
+ return data;
+ };
+
+ return data;
+}
+
+function _debug() {
+ const data = _interopRequireDefault(require("debug"));
+
+ _debug = function _debug() {
+ return data;
+ };
+
+ return data;
+}
+
+var _options = require("./validation/options");
+
+var _files = require("./files");
+
+var _caching = require("./caching");
+
+var _configDescriptors = require("./config-descriptors");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const debug = (0, _debug().default)("babel:config:config-chain");
+const buildPresetChain = makeChainWalker({
+ init: arg => arg,
+ root: preset => loadPresetDescriptors(preset),
+ env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),
+ overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),
+ overridesEnv: (preset, index, envName) => loadPresetOverridesEnvDescriptors(preset)(index)(envName)
+});
+exports.buildPresetChain = buildPresetChain;
+const loadPresetDescriptors = (0, _caching.makeWeakCache)(preset => buildRootDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors));
+const loadPresetEnvDescriptors = (0, _caching.makeWeakCache)(preset => (0, _caching.makeStrongCache)(envName => buildEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, envName)));
+const loadPresetOverridesDescriptors = (0, _caching.makeWeakCache)(preset => (0, _caching.makeStrongCache)(index => buildOverrideDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index)));
+const loadPresetOverridesEnvDescriptors = (0, _caching.makeWeakCache)(preset => (0, _caching.makeStrongCache)(index => (0, _caching.makeStrongCache)(envName => buildOverrideEnvDescriptors(preset, preset.alias, _configDescriptors.createUncachedDescriptors, index, envName))));
+
+function buildRootChain(opts, context) {
+ const programmaticChain = loadProgrammaticChain({
+ options: opts,
+ dirname: context.cwd
+ }, context);
+ if (!programmaticChain) return null;
+ const _opts$root = opts.root,
+ rootDir = _opts$root === void 0 ? "." : _opts$root,
+ _opts$configFile = opts.configFile,
+ configFileName = _opts$configFile === void 0 ? true : _opts$configFile;
+ let babelrc = opts.babelrc,
+ babelrcRoots = opts.babelrcRoots;
+
+ const absoluteRoot = _path().default.resolve(context.cwd, rootDir);
+
+ let configFile;
+
+ if (typeof configFileName === "string") {
+ configFile = (0, _files.loadConfig)(configFileName, context.cwd, context.envName);
+ } else if (configFileName === true) {
+ configFile = (0, _files.findRootConfig)(absoluteRoot, context.envName);
+ }
+
+ const configFileChain = emptyChain();
+
+ if (configFile) {
+ const validatedFile = validateConfigFile(configFile);
+ const result = loadFileChain(validatedFile, context);
+ if (!result) return null;
+
+ if (babelrc === undefined) {
+ babelrc = validatedFile.options.babelrc;
+ }
+
+ if (babelrcRoots === undefined) {
+ babelrcRoots = validatedFile.options.babelrcRoots;
+ }
+
+ mergeChain(configFileChain, result);
+ }
+
+ const pkgData = typeof context.filename === "string" ? (0, _files.findPackageData)(context.filename) : null;
+ let ignoreFile, babelrcFile;
+ const fileChain = emptyChain();
+
+ if ((babelrc === true || babelrc === undefined) && pkgData && babelrcLoadEnabled(context, pkgData, babelrcRoots, absoluteRoot)) {
+ var _findRelativeConfig = (0, _files.findRelativeConfig)(pkgData, context.envName);
+
+ ignoreFile = _findRelativeConfig.ignore;
+ babelrcFile = _findRelativeConfig.config;
+
+ if (ignoreFile && shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)) {
+ return null;
+ }
+
+ if (babelrcFile) {
+ const result = loadFileChain(validateBabelrcFile(babelrcFile), context);
+ if (!result) return null;
+ mergeChain(fileChain, result);
+ }
+ }
+
+ const chain = mergeChain(mergeChain(mergeChain(emptyChain(), configFileChain), fileChain), programmaticChain);
+ return {
+ plugins: dedupDescriptors(chain.plugins),
+ presets: dedupDescriptors(chain.presets),
+ options: chain.options.map(o => normalizeOptions(o)),
+ ignore: ignoreFile || undefined,
+ babelrc: babelrcFile || undefined,
+ config: configFile || undefined
+ };
+}
+
+function babelrcLoadEnabled(context, pkgData, babelrcRoots, absoluteRoot) {
+ if (typeof babelrcRoots === "boolean") return babelrcRoots;
+
+ if (babelrcRoots === undefined) {
+ return pkgData.directories.indexOf(absoluteRoot) !== -1;
+ }
+
+ let babelrcPatterns = babelrcRoots;
+ if (!Array.isArray(babelrcPatterns)) babelrcPatterns = [babelrcPatterns];
+ babelrcPatterns = babelrcPatterns.map(pat => _path().default.resolve(context.cwd, pat));
+
+ if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {
+ return pkgData.directories.indexOf(absoluteRoot) !== -1;
+ }
+
+ return (0, _micromatch().default)(pkgData.directories, babelrcPatterns).length > 0;
+}
+
+const validateConfigFile = (0, _caching.makeWeakCache)(file => ({
+ filepath: file.filepath,
+ dirname: file.dirname,
+ options: (0, _options.validate)("configfile", file.options)
+}));
+const validateBabelrcFile = (0, _caching.makeWeakCache)(file => ({
+ filepath: file.filepath,
+ dirname: file.dirname,
+ options: (0, _options.validate)("babelrcfile", file.options)
+}));
+const validateExtendFile = (0, _caching.makeWeakCache)(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)
+});
+const loadFileChain = 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)
+});
+const loadFileDescriptors = (0, _caching.makeWeakCache)(file => buildRootDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors));
+const loadFileEnvDescriptors = (0, _caching.makeWeakCache)(file => (0, _caching.makeStrongCache)(envName => buildEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, envName)));
+const loadFileOverridesDescriptors = (0, _caching.makeWeakCache)(file => (0, _caching.makeStrongCache)(index => buildOverrideDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index)));
+const loadFileOverridesEnvDescriptors = (0, _caching.makeWeakCache)(file => (0, _caching.makeStrongCache)(index => (0, _caching.makeStrongCache)(envName => buildOverrideEnvDescriptors(file, file.filepath, _configDescriptors.createUncachedDescriptors, index, envName))));
+
+function buildRootDescriptors({
+ dirname,
+ options
+}, alias, descriptors) {
+ return descriptors(dirname, options, alias);
+}
+
+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
+}) {
+ return (input, context, files = new Set()) => {
+ const dirname = input.dirname;
+ const flattenedConfigs = [];
+ const rootOpts = root(input);
+
+ if (configIsApplicable(rootOpts, dirname, context)) {
+ flattenedConfigs.push(rootOpts);
+ const envOpts = env(input, context.envName);
+
+ if (envOpts && configIsApplicable(envOpts, dirname, context)) {
+ flattenedConfigs.push(envOpts);
+ }
+
+ (rootOpts.options.overrides || []).forEach((_, index) => {
+ const overrideOps = overrides(input, index);
+
+ if (configIsApplicable(overrideOps, dirname, context)) {
+ flattenedConfigs.push(overrideOps);
+ const overrideEnvOpts = overridesEnv(input, index, context.envName);
+
+ if (overrideEnvOpts && configIsApplicable(overrideEnvOpts, dirname, context)) {
+ flattenedConfigs.push(overrideEnvOpts);
+ }
+ }
+ });
+ }
+
+ if (flattenedConfigs.some(({
+ options: {
+ ignore,
+ only
+ }
+ }) => shouldIgnore(context, ignore, only, dirname))) {
+ return null;
+ }
+
+ const chain = emptyChain();
+
+ for (var _i = 0; _i < flattenedConfigs.length; _i++) {
+ const op = flattenedConfigs[_i];
+
+ if (!mergeExtendsChain(chain, op.options, dirname, context, files)) {
+ return null;
+ }
+
+ mergeChainOpts(chain, op);
+ }
+
+ return chain;
+ };
+}
+
+function mergeExtendsChain(chain, opts, dirname, context, files) {
+ if (opts.extends === undefined) return true;
+ const file = (0, _files.loadConfig)(opts.extends, dirname, context.envName);
+
+ 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 = loadFileChain(validateExtendFile(file), context, files);
+ 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);
+ return target;
+}
+
+function mergeChainOpts(target, {
+ options,
+ plugins,
+ presets
+}) {
+ target.options.push(options);
+ target.plugins.push(...plugins());
+ target.presets.push(...presets());
+ return target;
+}
+
+function emptyChain() {
+ return {
+ options: [],
+ presets: [],
+ plugins: []
+ };
+}
+
+function normalizeOptions(opts) {
+ const options = Object.assign({}, opts);
+ delete options.extends;
+ delete options.env;
+ delete options.plugins;
+ delete options.presets;
+ delete options.passPerPreset;
+ delete options.ignore;
+ delete options.only;
+
+ if (options.sourceMap) {
+ options.sourceMaps = options.sourceMap;
+ delete options.sourceMap;
+ }
+
+ return options;
+}
+
+function dedupDescriptors(items) {
+ const map = new Map();
+ const descriptors = [];
+
+ for (var _iterator = items, _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
+ var _ref;
+
+ if (_isArray) {
+ if (_i2 >= _iterator.length) break;
+ _ref = _iterator[_i2++];
+ } else {
+ _i2 = _iterator.next();
+ if (_i2.done) break;
+ _ref = _i2.value;
+ }
+
+ const item = _ref;
+
+ 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: null
+ };
+ descriptors.push(desc);
+ if (!item.ownPass) nameMap.set(item.name, desc);
+ }
+
+ if (item.options === false) {
+ desc.value = null;
+ } else {
+ desc.value = item;
+ }
+ } else {
+ descriptors.push({
+ value: item
+ });
+ }
+ }
+
+ return descriptors.reduce((acc, desc) => {
+ if (desc.value) 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) {
+ if (context.filename === null) {
+ throw new Error(`Configuration contains explicit test/include/exclude checks, but no filename was passed to Babel`);
+ }
+
+ const ctx = context;
+ const patterns = Array.isArray(test) ? test : [test];
+ return matchesPatterns(ctx, patterns, dirname, false);
+}
+
+function shouldIgnore(context, ignore, only, dirname) {
+ if (ignore) {
+ if (context.filename === null) {
+ throw new Error(`Configuration contains ignore checks, but no filename was passed to Babel`);
+ }
+
+ const ctx = context;
+
+ if (matchesPatterns(ctx, ignore, dirname)) {
+ debug("Ignored %o because it matched one of %O from %o", context.filename, ignore, dirname);
+ return true;
+ }
+ }
+
+ if (only) {
+ if (context.filename === null) {
+ throw new Error(`Configuration contains ignore checks, but no filename was passed to Babel`);
+ }
+
+ const ctx = context;
+
+ if (!matchesPatterns(ctx, only, dirname)) {
+ debug("Ignored %o because it failed to match one of %O from %o", context.filename, only, dirname);
+ return true;
+ }
+ }
+
+ return false;
+}
+
+function matchesPatterns(context, patterns, dirname, allowNegation = true) {
+ const res = [];
+ const strings = [];
+ const fns = [];
+ patterns.forEach(pattern => {
+ if (typeof pattern === "string") strings.push(pattern);else if (typeof pattern === "function") fns.push(pattern);else res.push(pattern);
+ });
+ const filename = context.filename;
+ if (res.some(re => re.test(context.filename))) return true;
+ if (fns.some(fn => fn(filename))) return true;
+
+ if (strings.length > 0) {
+ const possibleDirs = getPossibleDirs(context);
+ const absolutePatterns = strings.map(pattern => {
+ const negate = pattern[0] === "!";
+
+ if (negate && !allowNegation) {
+ throw new Error(`Negation of file paths is not supported.`);
+ }
+
+ if (negate) pattern = pattern.slice(1);
+ return (negate ? "!" : "") + _path().default.resolve(dirname, pattern);
+ });
+
+ if ((0, _micromatch().default)(possibleDirs, absolutePatterns, {
+ nocase: true,
+ nonegate: !allowNegation
+ }).length > 0) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+const getPossibleDirs = (0, _caching.makeWeakCache)(context => {
+ let current = context.filename;
+ if (current === null) return [];
+ const possibleDirs = [current];
+
+ while (true) {
+ const previous = current;
+ current = _path().default.dirname(current);
+ if (previous === current) break;
+ possibleDirs.push(current);
+ }
+
+ return possibleDirs;
+}); \ 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 00000000..c4373f8b
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/config-descriptors.js
@@ -0,0 +1,206 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.createCachedDescriptors = createCachedDescriptors;
+exports.createUncachedDescriptors = createUncachedDescriptors;
+exports.createDescriptor = createDescriptor;
+
+var _files = require("./files");
+
+var _item = require("./item");
+
+var _caching = require("./caching");
+
+function createCachedDescriptors(dirname, options, alias) {
+ const plugins = options.plugins,
+ presets = options.presets,
+ passPerPreset = options.passPerPreset;
+ return {
+ options,
+ plugins: plugins ? () => createCachedPluginDescriptors(plugins, dirname)(alias) : () => [],
+ presets: presets ? () => createCachedPresetDescriptors(presets, dirname)(alias)(!!passPerPreset) : () => []
+ };
+}
+
+function createUncachedDescriptors(dirname, options, alias) {
+ let plugins;
+ let presets;
+ return {
+ options,
+ plugins: function (_plugins) {
+ function plugins() {
+ return _plugins.apply(this, arguments);
+ }
+
+ plugins.toString = function () {
+ return _plugins.toString();
+ };
+
+ return plugins;
+ }(() => {
+ if (!plugins) {
+ plugins = createPluginDescriptors(options.plugins || [], dirname, alias);
+ }
+
+ return plugins;
+ }),
+ presets: function (_presets) {
+ function presets() {
+ return _presets.apply(this, arguments);
+ }
+
+ presets.toString = function () {
+ return _presets.toString();
+ };
+
+ return presets;
+ }(() => {
+ if (!presets) {
+ presets = createPresetDescriptors(options.presets || [], dirname, alias, !!options.passPerPreset);
+ }
+
+ return presets;
+ })
+ };
+}
+
+const createCachedPresetDescriptors = (0, _caching.makeWeakCache)((items, cache) => {
+ const dirname = cache.using(dir => dir);
+ return (0, _caching.makeStrongCache)(alias => (0, _caching.makeStrongCache)(passPerPreset => createPresetDescriptors(items, dirname, alias, passPerPreset)));
+});
+const createCachedPluginDescriptors = (0, _caching.makeWeakCache)((items, cache) => {
+ const dirname = cache.using(dir => dir);
+ return (0, _caching.makeStrongCache)(alias => createPluginDescriptors(items, dirname, alias));
+});
+
+function createPresetDescriptors(items, dirname, alias, passPerPreset) {
+ return createDescriptors("preset", items, dirname, alias, passPerPreset);
+}
+
+function createPluginDescriptors(items, dirname, alias) {
+ return createDescriptors("plugin", items, dirname, alias);
+}
+
+function createDescriptors(type, items, dirname, alias, ownPass) {
+ const descriptors = 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) {
+ var _value = value;
+ value = _value[0];
+ options = _value[1];
+ name = _value[2];
+ } else {
+ var _value2 = value;
+ value = _value2[0];
+ options = _value2[1];
+ }
+ }
+
+ 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;
+
+ var _resolver = resolver(value, dirname);
+
+ filepath = _resolver.filepath;
+ value = _resolver.value;
+ 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 (var _iterator = items, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
+ var _ref;
+
+ if (_isArray) {
+ if (_i >= _iterator.length) break;
+ _ref = _iterator[_i++];
+ } else {
+ _i = _iterator.next();
+ if (_i.done) break;
+ _ref = _i.value;
+ }
+
+ const item = _ref;
+ 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)) {
+ throw new Error([`Duplicate plugin/preset detected.`, `If you'd like to use two separate instances of a plugin,`, `they neen separate names, e.g.`, ``, ` plugins: [`, ` ['some-plugin', {}],`, ` ['some-plugin', {}, 'some unique name'],`, ` ]`].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 00000000..e0667159
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/files/configuration.js
@@ -0,0 +1,306 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.findRelativeConfig = findRelativeConfig;
+exports.findRootConfig = findRootConfig;
+exports.loadConfig = loadConfig;
+
+function _debug() {
+ const data = _interopRequireDefault(require("debug"));
+
+ _debug = function _debug() {
+ return data;
+ };
+
+ return data;
+}
+
+function _path() {
+ const data = _interopRequireDefault(require("path"));
+
+ _path = function _path() {
+ return data;
+ };
+
+ return data;
+}
+
+function _fs() {
+ const data = _interopRequireDefault(require("fs"));
+
+ _fs = function _fs() {
+ return data;
+ };
+
+ return data;
+}
+
+function _json() {
+ const data = _interopRequireDefault(require("json5"));
+
+ _json = function _json() {
+ return data;
+ };
+
+ return data;
+}
+
+function _resolve() {
+ const data = _interopRequireDefault(require("resolve"));
+
+ _resolve = function _resolve() {
+ return data;
+ };
+
+ return data;
+}
+
+var _caching = require("../caching");
+
+var _configApi = _interopRequireDefault(require("../helpers/config-api"));
+
+var _utils = require("./utils");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const debug = (0, _debug().default)("babel:config:loading:files:configuration");
+const BABEL_CONFIG_JS_FILENAME = "babel.config.js";
+const BABELRC_FILENAME = ".babelrc";
+const BABELRC_JS_FILENAME = ".babelrc.js";
+const BABELIGNORE_FILENAME = ".babelignore";
+
+function findRelativeConfig(packageData, envName) {
+ let config = null;
+ let ignore = null;
+
+ const dirname = _path().default.dirname(packageData.filepath);
+
+ for (var _iterator = packageData.directories, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
+ var _ref;
+
+ if (_isArray) {
+ if (_i >= _iterator.length) break;
+ _ref = _iterator[_i++];
+ } else {
+ _i = _iterator.next();
+ if (_i.done) break;
+ _ref = _i.value;
+ }
+
+ const loc = _ref;
+
+ if (!config) {
+ config = [BABELRC_FILENAME, BABELRC_JS_FILENAME].reduce((previousConfig, name) => {
+ const filepath = _path().default.join(loc, name);
+
+ const config = readConfig(filepath, envName);
+
+ if (config && previousConfig) {
+ throw new Error(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().default.basename(previousConfig.filepath)}\n` + ` - ${name}\n` + `from ${loc}`);
+ }
+
+ return config || previousConfig;
+ }, null);
+ const pkgConfig = packageData.pkg && packageData.pkg.dirname === loc ? packageToBabelConfig(packageData.pkg) : null;
+
+ if (pkgConfig) {
+ if (config) {
+ throw new Error(`Multiple configuration files found. Please remove one:\n` + ` - ${_path().default.basename(pkgConfig.filepath)}#babel\n` + ` - ${_path().default.basename(config.filepath)}\n` + `from ${loc}`);
+ }
+
+ config = pkgConfig;
+ }
+
+ if (config) {
+ debug("Found configuration %o from %o.", config.filepath, dirname);
+ }
+ }
+
+ if (!ignore) {
+ const ignoreLoc = _path().default.join(loc, BABELIGNORE_FILENAME);
+
+ ignore = readIgnoreConfig(ignoreLoc);
+
+ if (ignore) {
+ debug("Found ignore %o from %o.", ignore.filepath, dirname);
+ }
+ }
+ }
+
+ return {
+ config,
+ ignore
+ };
+}
+
+function findRootConfig(dirname, envName) {
+ const filepath = _path().default.resolve(dirname, BABEL_CONFIG_JS_FILENAME);
+
+ const conf = readConfig(filepath, envName);
+
+ if (conf) {
+ debug("Found root config %o in $o.", BABEL_CONFIG_JS_FILENAME, dirname);
+ }
+
+ return conf;
+}
+
+function loadConfig(name, dirname, envName) {
+ const filepath = _resolve().default.sync(name, {
+ basedir: dirname
+ });
+
+ const conf = readConfig(filepath, envName);
+
+ 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) {
+ return _path().default.extname(filepath) === ".js" ? readConfigJS(filepath, {
+ envName
+ }) : readConfigJSON5(filepath);
+}
+
+const LOADING_CONFIGS = new Set();
+const readConfigJS = (0, _caching.makeStrongCache)((filepath, cache) => {
+ if (!_fs().default.existsSync(filepath)) {
+ cache.forever();
+ return null;
+ }
+
+ if (LOADING_CONFIGS.has(filepath)) {
+ cache.never();
+ debug("Auto-ignoring usage of config %o.", filepath);
+ return {
+ filepath,
+ dirname: _path().default.dirname(filepath),
+ options: {}
+ };
+ }
+
+ let options;
+
+ try {
+ LOADING_CONFIGS.add(filepath);
+
+ const configModule = require(filepath);
+
+ options = configModule && configModule.__esModule ? configModule.default || undefined : configModule;
+ } catch (err) {
+ err.message = `${filepath}: Error while loading config - ${err.message}`;
+ throw err;
+ } finally {
+ LOADING_CONFIGS.delete(filepath);
+ }
+
+ if (typeof options === "function") {
+ options = options((0, _configApi.default)(cache));
+ if (!cache.configured()) throwConfigError();
+ }
+
+ 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.`);
+ }
+
+ return {
+ filepath,
+ dirname: _path().default.dirname(filepath),
+ options
+ };
+});
+const packageToBabelConfig = (0, _caching.makeWeakCache)(file => {
+ if (typeof file.options.babel === "undefined") return null;
+ const babel = file.options.babel;
+
+ 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().default.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`);
+ }
+
+ return {
+ filepath,
+ dirname: _path().default.dirname(filepath),
+ options
+ };
+});
+const readIgnoreConfig = (0, _utils.makeStaticFileCache)((filepath, content) => {
+ const ignore = content.split("\n").map(line => line.replace(/#(.*?)$/, "").trim()).filter(line => !!line);
+ return {
+ filepath,
+ dirname: _path().default.dirname(filepath),
+ ignore
+ };
+});
+
+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/index-browser.js b/node_modules/@babel/core/lib/config/files/index-browser.js
new file mode 100644
index 00000000..4f0174ee
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/files/index-browser.js
@@ -0,0 +1,54 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.findPackageData = findPackageData;
+exports.findRelativeConfig = findRelativeConfig;
+exports.findRootConfig = findRootConfig;
+exports.loadConfig = loadConfig;
+exports.resolvePlugin = resolvePlugin;
+exports.resolvePreset = resolvePreset;
+exports.loadPlugin = loadPlugin;
+exports.loadPreset = loadPreset;
+
+function findPackageData(filepath) {
+ return {
+ filepath,
+ directories: [],
+ pkg: null,
+ isPackage: false
+ };
+}
+
+function findRelativeConfig(pkgData, envName) {
+ return {
+ pkg: null,
+ config: null,
+ ignore: null
+ };
+}
+
+function findRootConfig(dirname, envName) {
+ return null;
+}
+
+function loadConfig(name, dirname, envName) {
+ throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);
+}
+
+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 00000000..25c3008b
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/files/index.js
@@ -0,0 +1,61 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+Object.defineProperty(exports, "findPackageData", {
+ enumerable: true,
+ get: function get() {
+ return _package.findPackageData;
+ }
+});
+Object.defineProperty(exports, "findRelativeConfig", {
+ enumerable: true,
+ get: function get() {
+ return _configuration.findRelativeConfig;
+ }
+});
+Object.defineProperty(exports, "findRootConfig", {
+ enumerable: true,
+ get: function get() {
+ return _configuration.findRootConfig;
+ }
+});
+Object.defineProperty(exports, "loadConfig", {
+ enumerable: true,
+ get: function get() {
+ return _configuration.loadConfig;
+ }
+});
+Object.defineProperty(exports, "resolvePlugin", {
+ enumerable: true,
+ get: function get() {
+ return _plugins.resolvePlugin;
+ }
+});
+Object.defineProperty(exports, "resolvePreset", {
+ enumerable: true,
+ get: function get() {
+ return _plugins.resolvePreset;
+ }
+});
+Object.defineProperty(exports, "loadPlugin", {
+ enumerable: true,
+ get: function get() {
+ return _plugins.loadPlugin;
+ }
+});
+Object.defineProperty(exports, "loadPreset", {
+ enumerable: true,
+ get: function get() {
+ return _plugins.loadPreset;
+ }
+});
+
+var _package = require("./package");
+
+var _configuration = require("./configuration");
+
+var _plugins = require("./plugins");
+
+({}); \ 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 00000000..4557b8ab
--- /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 = _interopRequireDefault(require("path"));
+
+ _path = function _path() {
+ return data;
+ };
+
+ return data;
+}
+
+var _utils = require("./utils");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const PACKAGE_FILENAME = "package.json";
+
+function findPackageData(filepath) {
+ let pkg = null;
+ const directories = [];
+ let isPackage = true;
+
+ let dirname = _path().default.dirname(filepath);
+
+ while (!pkg && _path().default.basename(dirname) !== "node_modules") {
+ directories.push(dirname);
+ pkg = readConfigPackage(_path().default.join(dirname, PACKAGE_FILENAME));
+
+ const nextLoc = _path().default.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 (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().default.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 00000000..e771dbe6
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/files/plugins.js
@@ -0,0 +1,168 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.resolvePlugin = resolvePlugin;
+exports.resolvePreset = resolvePreset;
+exports.loadPlugin = loadPlugin;
+exports.loadPreset = loadPreset;
+
+function _debug() {
+ const data = _interopRequireDefault(require("debug"));
+
+ _debug = function _debug() {
+ return data;
+ };
+
+ return data;
+}
+
+function _resolve() {
+ const data = _interopRequireDefault(require("resolve"));
+
+ _resolve = function _resolve() {
+ return data;
+ };
+
+ return data;
+}
+
+function _path() {
+ const data = _interopRequireDefault(require("path"));
+
+ _path = function _path() {
+ return data;
+ };
+
+ return data;
+}
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const debug = (0, _debug().default)("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-|[^/]+\/)/;
+
+function resolvePlugin(name, dirname) {
+ return resolveStandardizedName("plugin", name, dirname);
+}
+
+function resolvePreset(name, dirname) {
+ return resolveStandardizedName("preset", name, dirname);
+}
+
+function loadPlugin(name, dirname) {
+ const filepath = resolvePlugin(name, dirname);
+
+ if (!filepath) {
+ throw new Error(`Plugin ${name} not found relative to ${dirname}`);
+ }
+
+ const value = requireModule("plugin", filepath);
+ debug("Loaded plugin %o from %o.", name, dirname);
+ return {
+ filepath,
+ value
+ };
+}
+
+function loadPreset(name, dirname) {
+ const filepath = resolvePreset(name, dirname);
+
+ if (!filepath) {
+ throw new Error(`Preset ${name} not found relative to ${dirname}`);
+ }
+
+ const value = requireModule("preset", filepath);
+ debug("Loaded preset %o from %o.", name, dirname);
+ return {
+ filepath,
+ value
+ };
+}
+
+function standardizeName(type, name) {
+ if (_path().default.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(EXACT_RE, "");
+}
+
+function resolveStandardizedName(type, name, dirname = process.cwd()) {
+ const standardizedName = standardizeName(type, name);
+
+ try {
+ return _resolve().default.sync(standardizedName, {
+ basedir: dirname
+ });
+ } catch (e) {
+ if (e.code !== "MODULE_NOT_FOUND") throw e;
+
+ if (standardizedName !== name) {
+ let resolvedOriginal = false;
+
+ try {
+ _resolve().default.sync(name, {
+ basedir: dirname
+ });
+
+ resolvedOriginal = true;
+ } catch (e2) {}
+
+ if (resolvedOriginal) {
+ e.message += `\n- If you want to resolve "${name}", use "module:${name}"`;
+ }
+ }
+
+ let resolvedBabel = false;
+
+ try {
+ _resolve().default.sync(standardizeName(type, "@babel/" + name), {
+ basedir: dirname
+ });
+
+ resolvedBabel = true;
+ } catch (e2) {}
+
+ if (resolvedBabel) {
+ e.message += `\n- Did you mean "@babel/${name}"?`;
+ }
+
+ let resolvedOppositeType = false;
+ const oppositeType = type === "preset" ? "plugin" : "preset";
+
+ try {
+ _resolve().default.sync(standardizeName(oppositeType, name), {
+ basedir: dirname
+ });
+
+ resolvedOppositeType = true;
+ } catch (e2) {}
+
+ if (resolvedOppositeType) {
+ e.message += `\n- Did you accidentally pass a ${type} as a ${oppositeType}?`;
+ }
+
+ throw e;
+ }
+}
+
+const LOADING_MODULES = new Set();
+
+function requireModule(type, name) {
+ if (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 require(name);
+ } 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 00000000..9a390c31
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/files/types.js
@@ -0,0 +1 @@
+"use strict"; \ No newline at end of file
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 00000000..9314e2dc
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/files/utils.js
@@ -0,0 +1,41 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.makeStaticFileCache = makeStaticFileCache;
+
+function _fs() {
+ const data = _interopRequireDefault(require("fs"));
+
+ _fs = function _fs() {
+ return data;
+ };
+
+ return data;
+}
+
+var _caching = require("../caching");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function makeStaticFileCache(fn) {
+ return (0, _caching.makeStrongCache)((filepath, cache) => {
+ if (cache.invalidate(() => fileMtime(filepath)) === null) {
+ cache.forever();
+ return null;
+ }
+
+ return fn(filepath, _fs().default.readFileSync(filepath, "utf8"));
+ });
+}
+
+function fileMtime(filepath) {
+ try {
+ return +_fs().default.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 00000000..e2875cdf
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/full.js
@@ -0,0 +1,268 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = loadFullConfig;
+
+var _util = require("./util");
+
+var context = _interopRequireWildcard(require("../index"));
+
+var _plugin = _interopRequireDefault(require("./plugin"));
+
+var _item = require("./item");
+
+var _configChain = require("./config-chain");
+
+function _traverse() {
+ const data = _interopRequireDefault(require("@babel/traverse"));
+
+ _traverse = function _traverse() {
+ return data;
+ };
+
+ return data;
+}
+
+var _caching = require("./caching");
+
+var _options = require("./validation/options");
+
+var _plugins = require("./validation/plugins");
+
+var _configApi = _interopRequireDefault(require("./helpers/config-api"));
+
+var _partial = _interopRequireDefault(require("./partial"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } }
+
+function loadFullConfig(inputOpts) {
+ const result = (0, _partial.default)(inputOpts);
+
+ if (!result) {
+ return null;
+ }
+
+ const options = result.options,
+ context = result.context;
+ const optionDefaults = {};
+ const passes = [[]];
+
+ try {
+ const plugins = options.plugins,
+ presets = options.presets;
+
+ if (!plugins || !presets) {
+ throw new Error("Assertion failure - plugins and presets exist");
+ }
+
+ const ignored = function recurseDescriptors(config, pass) {
+ const plugins = config.plugins.map(descriptor => {
+ return loadPluginDescriptor(descriptor, context);
+ });
+ const presets = config.presets.map(descriptor => {
+ return {
+ preset: loadPresetDescriptor(descriptor, context),
+ pass: descriptor.ownPass ? [] : pass
+ };
+ });
+
+ if (presets.length > 0) {
+ passes.splice(1, 0, ...presets.map(o => o.pass).filter(p => p !== pass));
+
+ for (var _iterator = presets, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
+ var _ref2;
+
+ if (_isArray) {
+ if (_i >= _iterator.length) break;
+ _ref2 = _iterator[_i++];
+ } else {
+ _i = _iterator.next();
+ if (_i.done) break;
+ _ref2 = _i.value;
+ }
+
+ const _ref = _ref2;
+ const preset = _ref.preset,
+ pass = _ref.pass;
+ if (!preset) return true;
+ const ignored = recurseDescriptors({
+ plugins: preset.plugins,
+ presets: preset.presets
+ }, pass);
+ if (ignored) return true;
+ preset.options.forEach(opts => {
+ (0, _util.mergeOptions)(optionDefaults, opts);
+ });
+ }
+ }
+
+ if (plugins.length > 0) {
+ pass.unshift(...plugins);
+ }
+ }({
+ plugins: plugins.map(item => {
+ const desc = (0, _item.getItemDescriptor)(item);
+
+ if (!desc) {
+ throw new Error("Assertion failure - must be config item");
+ }
+
+ return desc;
+ }),
+ presets: presets.map(item => {
+ const desc = (0, _item.getItemDescriptor)(item);
+
+ if (!desc) {
+ throw new Error("Assertion failure - must be config item");
+ }
+
+ return desc;
+ })
+ }, passes[0]);
+
+ if (ignored) return null;
+ } catch (e) {
+ if (!/^\[BABEL\]/.test(e.message)) {
+ e.message = `[BABEL] ${context.filename || "unknown"}: ${e.message}`;
+ }
+
+ throw e;
+ }
+
+ const opts = optionDefaults;
+ (0, _util.mergeOptions)(opts, options);
+ 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
+ };
+}
+
+const loadDescriptor = (0, _caching.makeWeakCache)(({
+ value,
+ options,
+ dirname,
+ alias
+}, cache) => {
+ if (options === false) throw new Error("Assertion failure");
+ options = options || {};
+ let item = value;
+
+ if (typeof value === "function") {
+ const api = Object.assign({}, context, (0, _configApi.default)(cache));
+
+ try {
+ item = value(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 (typeof item.then === "function") {
+ throw new Error(`You appear to be using an async 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 {
+ value: item,
+ options,
+ dirname,
+ alias
+ };
+});
+
+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 instantiatePlugin(loadDescriptor(descriptor, context), context);
+}
+
+const instantiatePlugin = (0, _caching.makeWeakCache)(({
+ value,
+ options,
+ dirname,
+ alias
+}, 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 = cache.invalidate(data => loadPluginDescriptor(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 || {}]);
+ }
+
+ return new _plugin.default(plugin, options, alias);
+});
+
+const loadPresetDescriptor = (descriptor, context) => {
+ return (0, _configChain.buildPresetChain)(instantiatePreset(loadDescriptor(descriptor, context)), context);
+};
+
+const instantiatePreset = (0, _caching.makeWeakCache)(({
+ value,
+ dirname,
+ alias
+}) => {
+ return {
+ options: (0, _options.validate)("preset", value),
+ alias,
+ dirname
+ };
+});
+
+function chain(a, b) {
+ const fns = [a, b].filter(Boolean);
+ if (fns.length <= 1) return fns[0];
+ return function (...args) {
+ for (var _iterator2 = fns, _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
+ var _ref3;
+
+ if (_isArray2) {
+ if (_i2 >= _iterator2.length) break;
+ _ref3 = _iterator2[_i2++];
+ } else {
+ _i2 = _iterator2.next();
+ if (_i2.done) break;
+ _ref3 = _i2.value;
+ }
+
+ const fn = _ref3;
+ 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 00000000..78080a80
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/helpers/config-api.js
@@ -0,0 +1,76 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = makeAPI;
+
+function _semver() {
+ const data = _interopRequireDefault(require("semver"));
+
+ _semver = function _semver() {
+ return data;
+ };
+
+ return data;
+}
+
+var _ = require("../../");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function makeAPI(cache) {
+ const env = value => cache.using(data => {
+ if (typeof value === "undefined") return data.envName;
+ if (typeof value === "function") return 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;
+ });
+ });
+
+ return {
+ version: _.version,
+ cache: cache.simple(),
+ env,
+ async: () => false,
+ assertVersion
+ };
+}
+
+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().default.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/environment.js b/node_modules/@babel/core/lib/config/helpers/environment.js
new file mode 100644
index 00000000..e4bfdbc7
--- /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 00000000..829a7952
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/index.js
@@ -0,0 +1,39 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.loadOptions = loadOptions;
+Object.defineProperty(exports, "default", {
+ enumerable: true,
+ get: function get() {
+ return _full.default;
+ }
+});
+Object.defineProperty(exports, "loadPartialConfig", {
+ enumerable: true,
+ get: function get() {
+ return _partial.loadPartialConfig;
+ }
+});
+exports.OptionManager = void 0;
+
+var _full = _interopRequireDefault(require("./full"));
+
+var _partial = require("./partial");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function loadOptions(opts) {
+ const config = (0, _full.default)(opts);
+ return config ? config.options : null;
+}
+
+class OptionManager {
+ init(opts) {
+ return loadOptions(opts);
+ }
+
+}
+
+exports.OptionManager = OptionManager; \ 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 00000000..3f2d5e69
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/item.js
@@ -0,0 +1,71 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.createItemFromDescriptor = createItemFromDescriptor;
+exports.createConfigItem = createConfigItem;
+exports.getItemDescriptor = getItemDescriptor;
+
+function _path() {
+ const data = _interopRequireDefault(require("path"));
+
+ _path = function _path() {
+ return data;
+ };
+
+ return data;
+}
+
+var _configDescriptors = require("./config-descriptors");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+function createItemFromDescriptor(desc) {
+ return new ConfigItem(desc);
+}
+
+function createConfigItem(value, {
+ dirname = ".",
+ type
+} = {}) {
+ const descriptor = (0, _configDescriptors.createDescriptor)(value, _path().default.resolve(dirname), {
+ type,
+ alias: "programmatic item"
+ });
+ return createItemFromDescriptor(descriptor);
+}
+
+function getItemDescriptor(item) {
+ if (item instanceof ConfigItem) {
+ return item._descriptor;
+ }
+
+ return undefined;
+}
+
+class ConfigItem {
+ constructor(descriptor) {
+ this._descriptor = descriptor;
+ Object.defineProperty(this, "_descriptor", {
+ enumerable: false
+ });
+
+ if (this._descriptor.options === false) {
+ throw new Error("Assertion failure - unexpected false options");
+ }
+
+ 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 00000000..8b8937ed
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/partial.js
@@ -0,0 +1,103 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = loadPrivatePartialConfig;
+exports.loadPartialConfig = loadPartialConfig;
+
+function _path() {
+ const data = _interopRequireDefault(require("path"));
+
+ _path = function _path() {
+ return data;
+ };
+
+ return data;
+}
+
+var _plugin = _interopRequireDefault(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");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+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 _args$envName = args.envName,
+ envName = _args$envName === void 0 ? (0, _environment.getEnv)() : _args$envName,
+ _args$cwd = args.cwd,
+ cwd = _args$cwd === void 0 ? "." : _args$cwd;
+
+ const absoluteCwd = _path().default.resolve(cwd);
+
+ const context = {
+ filename: args.filename ? _path().default.resolve(cwd, args.filename) : null,
+ cwd: absoluteCwd,
+ envName
+ };
+ const configChain = (0, _configChain.buildRootChain)(args, context);
+ if (!configChain) return null;
+ const options = {};
+ configChain.options.forEach(opts => {
+ (0, _util.mergeOptions)(options, opts);
+ });
+ options.babelrc = false;
+ options.configFile = false;
+ options.envName = envName;
+ options.cwd = absoluteCwd;
+ options.passPerPreset = false;
+ options.plugins = configChain.plugins.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor));
+ options.presets = configChain.presets.map(descriptor => (0, _item.createItemFromDescriptor)(descriptor));
+ return {
+ options,
+ context,
+ ignore: configChain.ignore,
+ babelrc: configChain.babelrc,
+ config: configChain.config
+ };
+}
+
+function loadPartialConfig(inputOpts) {
+ const result = loadPrivatePartialConfig(inputOpts);
+ if (!result) return null;
+ const options = result.options,
+ babelrc = result.babelrc,
+ ignore = result.ignore,
+ config = result.config;
+ (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);
+}
+
+class PartialConfig {
+ constructor(options, babelrc, ignore, config) {
+ this.options = options;
+ this.babelignore = ignore;
+ this.babelrc = babelrc;
+ this.config = config;
+ 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/plugin.js b/node_modules/@babel/core/lib/config/plugin.js
new file mode 100644
index 00000000..3c780708
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/plugin.js
@@ -0,0 +1,22 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = void 0;
+
+class Plugin {
+ constructor(plugin, options, key) {
+ 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;
+ }
+
+}
+
+exports.default = Plugin; \ 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 00000000..96de62c1
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/util.js
@@ -0,0 +1,37 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.mergeOptions = mergeOptions;
+
+function mergeOptions(target, source) {
+ var _arr = Object.keys(source);
+
+ for (var _i = 0; _i < _arr.length; _i++) {
+ const k = _arr[_i];
+
+ if (k === "parserOpts" && source.parserOpts) {
+ const parserOpts = source.parserOpts;
+ const targetObj = target.parserOpts = target.parserOpts || {};
+ mergeDefaultFields(targetObj, parserOpts);
+ } else if (k === "generatorOpts" && source.generatorOpts) {
+ const generatorOpts = source.generatorOpts;
+ const targetObj = target.generatorOpts = target.generatorOpts || {};
+ mergeDefaultFields(targetObj, generatorOpts);
+ } else {
+ const val = source[k];
+ if (val !== undefined) target[k] = val;
+ }
+ }
+}
+
+function mergeDefaultFields(target, source) {
+ var _arr2 = Object.keys(source);
+
+ for (var _i2 = 0; _i2 < _arr2.length; _i2++) {
+ const k = _arr2[_i2];
+ const val = source[k];
+ if (val !== undefined) target[k] = val;
+ }
+} \ 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 00000000..4aa57c37
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/validation/option-assertions.js
@@ -0,0 +1,205 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.assertSourceMaps = assertSourceMaps;
+exports.assertCompact = assertCompact;
+exports.assertSourceType = assertSourceType;
+exports.assertInputSourceMap = assertInputSourceMap;
+exports.assertString = assertString;
+exports.assertFunction = assertFunction;
+exports.assertBoolean = assertBoolean;
+exports.assertObject = assertObject;
+exports.assertArray = assertArray;
+exports.assertIgnoreList = assertIgnoreList;
+exports.assertConfigApplicableTest = assertConfigApplicableTest;
+exports.assertConfigFileSearch = assertConfigFileSearch;
+exports.assertBabelrcSearch = assertBabelrcSearch;
+exports.assertPluginList = assertPluginList;
+
+function assertSourceMaps(key, value) {
+ if (value !== undefined && typeof value !== "boolean" && value !== "inline" && value !== "both") {
+ throw new Error(`.${key} must be a boolean, "inline", "both", or undefined`);
+ }
+
+ return value;
+}
+
+function assertCompact(key, value) {
+ if (value !== undefined && typeof value !== "boolean" && value !== "auto") {
+ throw new Error(`.${key} must be a boolean, "auto", or undefined`);
+ }
+
+ return value;
+}
+
+function assertSourceType(key, value) {
+ if (value !== undefined && value !== "module" && value !== "script" && value !== "unambiguous") {
+ throw new Error(`.${key} must be "module", "script", "unambiguous", or undefined`);
+ }
+
+ return value;
+}
+
+function assertInputSourceMap(key, value) {
+ if (value !== undefined && typeof value !== "boolean" && (typeof value !== "object" || !value)) {
+ throw new Error(".inputSourceMap must be a boolean, object, or undefined");
+ }
+
+ return value;
+}
+
+function assertString(key, value) {
+ if (value !== undefined && typeof value !== "string") {
+ throw new Error(`.${key} must be a string, or undefined`);
+ }
+
+ return value;
+}
+
+function assertFunction(key, value) {
+ if (value !== undefined && typeof value !== "function") {
+ throw new Error(`.${key} must be a function, or undefined`);
+ }
+
+ return value;
+}
+
+function assertBoolean(key, value) {
+ if (value !== undefined && typeof value !== "boolean") {
+ throw new Error(`.${key} must be a boolean, or undefined`);
+ }
+
+ return value;
+}
+
+function assertObject(key, value) {
+ if (value !== undefined && (typeof value !== "object" || Array.isArray(value) || !value)) {
+ throw new Error(`.${key} must be an object, or undefined`);
+ }
+
+ return value;
+}
+
+function assertArray(key, value) {
+ if (value != null && !Array.isArray(value)) {
+ throw new Error(`.${key} must be an array, or undefined`);
+ }
+
+ return value;
+}
+
+function assertIgnoreList(key, value) {
+ const arr = assertArray(key, value);
+
+ if (arr) {
+ arr.forEach((item, i) => assertIgnoreItem(key, i, item));
+ }
+
+ return arr;
+}
+
+function assertIgnoreItem(key, index, value) {
+ if (typeof value !== "string" && typeof value !== "function" && !(value instanceof RegExp)) {
+ throw new Error(`.${key}[${index}] must be an array of string/Funtion/RegExp values, or undefined`);
+ }
+
+ return value;
+}
+
+function assertConfigApplicableTest(key, value) {
+ if (value === undefined) return value;
+
+ if (Array.isArray(value)) {
+ value.forEach((item, i) => {
+ if (!checkValidTest(item)) {
+ throw new Error(`.${key}[${i}] must be a string/Function/RegExp.`);
+ }
+ });
+ } else if (!checkValidTest(value)) {
+ throw new Error(`.${key} 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(key, value) {
+ if (value !== undefined && typeof value !== "boolean" && typeof value !== "string") {
+ throw new Error(`.${key} must be a undefined, a boolean, a string, ` + `got ${JSON.stringify(value)}`);
+ }
+
+ return value;
+}
+
+function assertBabelrcSearch(key, value) {
+ if (value === undefined || typeof value === "boolean") return value;
+
+ if (Array.isArray(value)) {
+ value.forEach((item, i) => {
+ if (typeof item !== "string") {
+ throw new Error(`.${key}[${i}] must be a string.`);
+ }
+ });
+ } else if (typeof value !== "string") {
+ throw new Error(`.${key} must be a undefined, a boolean, a string, ` + `or an array of strings, got ${JSON.stringify(value)}`);
+ }
+
+ return value;
+}
+
+function assertPluginList(key, value) {
+ const arr = assertArray(key, value);
+
+ if (arr) {
+ arr.forEach((item, i) => assertPluginItem(key, i, item));
+ }
+
+ return arr;
+}
+
+function assertPluginItem(key, index, value) {
+ if (Array.isArray(value)) {
+ if (value.length === 0) {
+ throw new Error(`.${key}[${index}] must include an object`);
+ }
+
+ if (value.length > 3) {
+ throw new Error(`.${key}[${index}] may only be a two-tuple or three-tuple`);
+ }
+
+ assertPluginTarget(key, index, true, value[0]);
+
+ if (value.length > 1) {
+ const opts = value[1];
+
+ if (opts !== undefined && opts !== false && (typeof opts !== "object" || Array.isArray(opts))) {
+ throw new Error(`.${key}[${index}][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(`.${key}[${index}][2] must be a string, or undefined`);
+ }
+ }
+ } else {
+ assertPluginTarget(key, index, false, value);
+ }
+
+ return value;
+}
+
+function assertPluginTarget(key, index, inArray, value) {
+ if ((typeof value !== "object" || !value) && typeof value !== "string" && typeof value !== "function") {
+ throw new Error(`.${key}[${index}]${inArray ? `[0]` : ""} must be a string, object, function`);
+ }
+
+ 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 00000000..b427b693
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/validation/options.js
@@ -0,0 +1,169 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.validate = validate;
+
+var _plugin = _interopRequireDefault(require("../plugin"));
+
+var _removed = _interopRequireDefault(require("./removed"));
+
+var _optionAssertions = require("./option-assertions");
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+const ROOT_VALIDATORS = {
+ cwd: _optionAssertions.assertString,
+ root: _optionAssertions.assertString,
+ configFile: _optionAssertions.assertConfigFileSearch,
+ filename: _optionAssertions.assertString,
+ filenameRelative: _optionAssertions.assertString,
+ code: _optionAssertions.assertBoolean,
+ ast: _optionAssertions.assertBoolean,
+ envName: _optionAssertions.assertString
+};
+const BABELRC_VALIDATORS = {
+ babelrc: _optionAssertions.assertBoolean,
+ babelrcRoots: _optionAssertions.assertBabelrcSearch
+};
+const NONPRESET_VALIDATORS = {
+ extends: _optionAssertions.assertString,
+ env: assertEnvSet,
+ ignore: _optionAssertions.assertIgnoreList,
+ only: _optionAssertions.assertIgnoreList,
+ overrides: assertOverridesList,
+ test: _optionAssertions.assertConfigApplicableTest,
+ include: _optionAssertions.assertConfigApplicableTest,
+ exclude: _optionAssertions.assertConfigApplicableTest
+};
+const COMMON_VALIDATORS = {
+ inputSourceMap: _optionAssertions.assertInputSourceMap,
+ presets: _optionAssertions.assertPluginList,
+ plugins: _optionAssertions.assertPluginList,
+ passPerPreset: _optionAssertions.assertBoolean,
+ 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,
+ getModuleId: _optionAssertions.assertFunction,
+ moduleRoot: _optionAssertions.assertString,
+ moduleIds: _optionAssertions.assertBoolean,
+ moduleId: _optionAssertions.assertString,
+ parserOpts: _optionAssertions.assertObject,
+ generatorOpts: _optionAssertions.assertObject
+};
+
+function validate(type, opts) {
+ assertNoDuplicateSourcemap(opts);
+ Object.keys(opts).forEach(key => {
+ if (type === "preset" && NONPRESET_VALIDATORS[key]) {
+ throw new Error(`.${key} is not allowed in preset options`);
+ }
+
+ if (type !== "arguments" && ROOT_VALIDATORS[key]) {
+ throw new Error(`.${key} is only allowed in root programmatic options`);
+ }
+
+ if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) {
+ if (type === "babelrcfile" || type === "extendsfile") {
+ throw new Error(`.${key} is not allowed in .babelrc or "extend"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`);
+ }
+
+ throw new Error(`.${key} is only allowed in root programmatic options, or babel.config.js/config file options`);
+ }
+
+ if (type === "env" && key === "env") {
+ throw new Error(`.${key} is not allowed inside another env block`);
+ }
+
+ if (type === "env" && key === "overrides") {
+ throw new Error(`.${key} is not allowed inside an env block`);
+ }
+
+ if (type === "override" && key === "overrides") {
+ throw new Error(`.${key} is not allowed inside an overrides block`);
+ }
+
+ const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key];
+ if (validator) validator(key, opts[key]);else throw buildUnknownError(key);
+ });
+ return opts;
+}
+
+function buildUnknownError(key) {
+ if (_removed.default[key]) {
+ const _removed$key = _removed.default[key],
+ message = _removed$key.message,
+ _removed$key$version = _removed$key.version,
+ version = _removed$key$version === void 0 ? 5 : _removed$key$version;
+ throw new ReferenceError(`Using removed Babel ${version} option: .${key} - ${message}`);
+ } else {
+ const unknownOptErr = `Unknown option: .${key}. Check out http://babeljs.io/docs/usage/options/ for more information about options.`;
+ throw new ReferenceError(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(key, value) {
+ const obj = (0, _optionAssertions.assertObject)(key, value);
+
+ if (obj) {
+ var _arr = Object.keys(obj);
+
+ for (var _i = 0; _i < _arr.length; _i++) {
+ const key = _arr[_i];
+ const env = (0, _optionAssertions.assertObject)(key, obj[key]);
+ if (env) validate("env", env);
+ }
+ }
+
+ return obj;
+}
+
+function assertOverridesList(key, value) {
+ const arr = (0, _optionAssertions.assertArray)(key, value);
+
+ if (arr) {
+ for (var _iterator = arr.entries(), _isArray = Array.isArray(_iterator), _i2 = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
+ var _ref;
+
+ if (_isArray) {
+ if (_i2 >= _iterator.length) break;
+ _ref = _iterator[_i2++];
+ } else {
+ _i2 = _iterator.next();
+ if (_i2.done) break;
+ _ref = _i2.value;
+ }
+
+ const _ref2 = _ref,
+ index = _ref2[0],
+ item = _ref2[1];
+ const env = (0, _optionAssertions.assertObject)(`${index}`, item);
+ if (!env) throw new Error(`.${key}[${index}] must be an object`);
+ validate("override", env);
+ }
+ }
+
+ return arr;
+} \ 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 00000000..73b498cd
--- /dev/null
+++ b/node_modules/@babel/core/lib/config/validation/plugins.js
@@ -0,0 +1,55 @@
+"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(key, value) {
+ const obj = (0, _optionAssertions.assertObject)(key, value);
+
+ if (obj) {
+ Object.keys(obj).forEach(prop => assertVisitorHandler(prop, obj[prop]));
+
+ if (obj.enter || obj.exit) {
+ throw new Error(`.${key} 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) {
+ Object.keys(obj).forEach(key => {
+ const validator = VALIDATORS[key];
+ if (validator) validator(key, obj[key]);else throw new Error(`.${key} is not a valid Plugin property`);
+ });
+ 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 00000000..f0fcd7de
--- /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