You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					309 lines
				
				11 KiB
			
		
		
			
		
	
	
					309 lines
				
				11 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								"use strict";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Object.defineProperty(exports, "__esModule", {
							 | 
						||
| 
								 | 
							
								  value: true
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								exports.getPolyfillPlugins = exports.getModulesPluginNames = exports.default = void 0;
							 | 
						||
| 
								 | 
							
								exports.isPluginRequired = isPluginRequired;
							 | 
						||
| 
								 | 
							
								exports.transformIncludesAndExcludes = void 0;
							 | 
						||
| 
								 | 
							
								var _semver = require("semver");
							 | 
						||
| 
								 | 
							
								var _debug = require("./debug");
							 | 
						||
| 
								 | 
							
								var _getOptionSpecificExcludes = require("./get-option-specific-excludes");
							 | 
						||
| 
								 | 
							
								var _filterItems = require("./filter-items");
							 | 
						||
| 
								 | 
							
								var _moduleTransformations = require("./module-transformations");
							 | 
						||
| 
								 | 
							
								var _normalizeOptions = require("./normalize-options");
							 | 
						||
| 
								 | 
							
								var _shippedProposals = require("./shipped-proposals");
							 | 
						||
| 
								 | 
							
								var _pluginsCompatData = require("./plugins-compat-data");
							 | 
						||
| 
								 | 
							
								var _regenerator = require("./polyfills/regenerator");
							 | 
						||
| 
								 | 
							
								var _babelPolyfill = require("./polyfills/babel-polyfill");
							 | 
						||
| 
								 | 
							
								var _babelPluginPolyfillCorejs = require("babel-plugin-polyfill-corejs2");
							 | 
						||
| 
								 | 
							
								var _babelPluginPolyfillCorejs2 = require("babel-plugin-polyfill-corejs3");
							 | 
						||
| 
								 | 
							
								var _babelPluginPolyfillRegenerator = require("babel-plugin-polyfill-regenerator");
							 | 
						||
| 
								 | 
							
								var _helperCompilationTargets = require("@babel/helper-compilation-targets");
							 | 
						||
| 
								 | 
							
								var _availablePlugins = require("./available-plugins");
							 | 
						||
| 
								 | 
							
								var _helperPluginUtils = require("@babel/helper-plugin-utils");
							 | 
						||
| 
								 | 
							
								const pluginCoreJS2 = _babelPluginPolyfillCorejs.default || _babelPluginPolyfillCorejs;
							 | 
						||
| 
								 | 
							
								const pluginCoreJS3 = _babelPluginPolyfillCorejs2.default || _babelPluginPolyfillCorejs2;
							 | 
						||
| 
								 | 
							
								const pluginRegenerator = _babelPluginPolyfillRegenerator.default || _babelPluginPolyfillRegenerator;
							 | 
						||
| 
								 | 
							
								function isPluginRequired(targets, support) {
							 | 
						||
| 
								 | 
							
								  return (0, _helperCompilationTargets.isRequired)("fake-name", targets, {
							 | 
						||
| 
								 | 
							
								    compatData: {
							 | 
						||
| 
								 | 
							
								      "fake-name": support
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								function filterStageFromList(list, stageList) {
							 | 
						||
| 
								 | 
							
								  return Object.keys(list).reduce((result, item) => {
							 | 
						||
| 
								 | 
							
								    if (!stageList.has(item)) {
							 | 
						||
| 
								 | 
							
								      result[item] = list[item];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return result;
							 | 
						||
| 
								 | 
							
								  }, {});
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								const pluginLists = {
							 | 
						||
| 
								 | 
							
								  withProposals: {
							 | 
						||
| 
								 | 
							
								    withoutBugfixes: _pluginsCompatData.plugins,
							 | 
						||
| 
								 | 
							
								    withBugfixes: Object.assign({}, _pluginsCompatData.plugins, _pluginsCompatData.pluginsBugfixes)
							 | 
						||
| 
								 | 
							
								  },
							 | 
						||
| 
								 | 
							
								  withoutProposals: {
							 | 
						||
| 
								 | 
							
								    withoutBugfixes: filterStageFromList(_pluginsCompatData.plugins, _shippedProposals.proposalPlugins),
							 | 
						||
| 
								 | 
							
								    withBugfixes: filterStageFromList(Object.assign({}, _pluginsCompatData.plugins, _pluginsCompatData.pluginsBugfixes), _shippedProposals.proposalPlugins)
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								function getPluginList(proposals, bugfixes) {
							 | 
						||
| 
								 | 
							
								  if (proposals) {
							 | 
						||
| 
								 | 
							
								    if (bugfixes) return pluginLists.withProposals.withBugfixes;else return pluginLists.withProposals.withoutBugfixes;
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    if (bugfixes) return pluginLists.withoutProposals.withBugfixes;else return pluginLists.withoutProposals.withoutBugfixes;
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								const getPlugin = pluginName => {
							 | 
						||
| 
								 | 
							
								  const plugin =
							 | 
						||
| 
								 | 
							
								  _availablePlugins.default[pluginName]();
							 | 
						||
| 
								 | 
							
								  if (!plugin) {
							 | 
						||
| 
								 | 
							
								    throw new Error(`Could not find plugin "${pluginName}". Ensure there is an entry in ./available-plugins.js for it.`);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return plugin;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								const transformIncludesAndExcludes = opts => {
							 | 
						||
| 
								 | 
							
								  return opts.reduce((result, opt) => {
							 | 
						||
| 
								 | 
							
								    const target = opt.match(/^(es|es6|es7|esnext|web)\./) ? "builtIns" : "plugins";
							 | 
						||
| 
								 | 
							
								    result[target].add(opt);
							 | 
						||
| 
								 | 
							
								    return result;
							 | 
						||
| 
								 | 
							
								  }, {
							 | 
						||
| 
								 | 
							
								    all: opts,
							 | 
						||
| 
								 | 
							
								    plugins: new Set(),
							 | 
						||
| 
								 | 
							
								    builtIns: new Set()
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.transformIncludesAndExcludes = transformIncludesAndExcludes;
							 | 
						||
| 
								 | 
							
								const getModulesPluginNames = ({
							 | 
						||
| 
								 | 
							
								  modules,
							 | 
						||
| 
								 | 
							
								  transformations,
							 | 
						||
| 
								 | 
							
								  shouldTransformESM,
							 | 
						||
| 
								 | 
							
								  shouldTransformDynamicImport,
							 | 
						||
| 
								 | 
							
								  shouldTransformExportNamespaceFrom,
							 | 
						||
| 
								 | 
							
								  shouldParseTopLevelAwait
							 | 
						||
| 
								 | 
							
								}) => {
							 | 
						||
| 
								 | 
							
								  const modulesPluginNames = [];
							 | 
						||
| 
								 | 
							
								  if (modules !== false && transformations[modules]) {
							 | 
						||
| 
								 | 
							
								    if (shouldTransformESM) {
							 | 
						||
| 
								 | 
							
								      modulesPluginNames.push(transformations[modules]);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    if (shouldTransformDynamicImport && shouldTransformESM && modules !== "umd") {
							 | 
						||
| 
								 | 
							
								      modulesPluginNames.push("transform-dynamic-import");
							 | 
						||
| 
								 | 
							
								    } else {
							 | 
						||
| 
								 | 
							
								      if (shouldTransformDynamicImport) {
							 | 
						||
| 
								 | 
							
								        console.warn("Dynamic import can only be supported when transforming ES modules" + " to AMD, CommonJS or SystemJS. Only the parser plugin will be enabled.");
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								      modulesPluginNames.push("syntax-dynamic-import");
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    modulesPluginNames.push("syntax-dynamic-import");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  if (shouldTransformExportNamespaceFrom) {
							 | 
						||
| 
								 | 
							
								    modulesPluginNames.push("transform-export-namespace-from");
							 | 
						||
| 
								 | 
							
								  } else {
							 | 
						||
| 
								 | 
							
								    modulesPluginNames.push("syntax-export-namespace-from");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  if (shouldParseTopLevelAwait) {
							 | 
						||
| 
								 | 
							
								    modulesPluginNames.push("syntax-top-level-await");
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return modulesPluginNames;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.getModulesPluginNames = getModulesPluginNames;
							 | 
						||
| 
								 | 
							
								const getPolyfillPlugins = ({
							 | 
						||
| 
								 | 
							
								  useBuiltIns,
							 | 
						||
| 
								 | 
							
								  corejs,
							 | 
						||
| 
								 | 
							
								  polyfillTargets,
							 | 
						||
| 
								 | 
							
								  include,
							 | 
						||
| 
								 | 
							
								  exclude,
							 | 
						||
| 
								 | 
							
								  proposals,
							 | 
						||
| 
								 | 
							
								  shippedProposals,
							 | 
						||
| 
								 | 
							
								  regenerator,
							 | 
						||
| 
								 | 
							
								  debug
							 | 
						||
| 
								 | 
							
								}) => {
							 | 
						||
| 
								 | 
							
								  const polyfillPlugins = [];
							 | 
						||
| 
								 | 
							
								  if (useBuiltIns === "usage" || useBuiltIns === "entry") {
							 | 
						||
| 
								 | 
							
								    const pluginOptions = {
							 | 
						||
| 
								 | 
							
								      method: `${useBuiltIns}-global`,
							 | 
						||
| 
								 | 
							
								      version: corejs ? corejs.toString() : undefined,
							 | 
						||
| 
								 | 
							
								      targets: polyfillTargets,
							 | 
						||
| 
								 | 
							
								      include,
							 | 
						||
| 
								 | 
							
								      exclude,
							 | 
						||
| 
								 | 
							
								      proposals,
							 | 
						||
| 
								 | 
							
								      shippedProposals,
							 | 
						||
| 
								 | 
							
								      debug
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								    if (corejs) {
							 | 
						||
| 
								 | 
							
								      if (useBuiltIns === "usage") {
							 | 
						||
| 
								 | 
							
								        if (corejs.major === 2) {
							 | 
						||
| 
								 | 
							
								          polyfillPlugins.push([pluginCoreJS2, pluginOptions], [_babelPolyfill.default, {
							 | 
						||
| 
								 | 
							
								            usage: true
							 | 
						||
| 
								 | 
							
								          }]);
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								          polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babelPolyfill.default, {
							 | 
						||
| 
								 | 
							
								            usage: true,
							 | 
						||
| 
								 | 
							
								            deprecated: true
							 | 
						||
| 
								 | 
							
								          }]);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								        if (regenerator) {
							 | 
						||
| 
								 | 
							
								          polyfillPlugins.push([pluginRegenerator, {
							 | 
						||
| 
								 | 
							
								            method: "usage-global",
							 | 
						||
| 
								 | 
							
								            debug
							 | 
						||
| 
								 | 
							
								          }]);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      } else {
							 | 
						||
| 
								 | 
							
								        if (corejs.major === 2) {
							 | 
						||
| 
								 | 
							
								          polyfillPlugins.push([_babelPolyfill.default, {
							 | 
						||
| 
								 | 
							
								            regenerator
							 | 
						||
| 
								 | 
							
								          }], [pluginCoreJS2, pluginOptions]);
							 | 
						||
| 
								 | 
							
								        } else {
							 | 
						||
| 
								 | 
							
								          polyfillPlugins.push([pluginCoreJS3, pluginOptions], [_babelPolyfill.default, {
							 | 
						||
| 
								 | 
							
								            deprecated: true
							 | 
						||
| 
								 | 
							
								          }]);
							 | 
						||
| 
								 | 
							
								          if (!regenerator) {
							 | 
						||
| 
								 | 
							
								            polyfillPlugins.push([_regenerator.default, pluginOptions]);
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return polyfillPlugins;
							 | 
						||
| 
								 | 
							
								};
							 | 
						||
| 
								 | 
							
								exports.getPolyfillPlugins = getPolyfillPlugins;
							 | 
						||
| 
								 | 
							
								function getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv) {
							 | 
						||
| 
								 | 
							
								  if (optionsTargets != null && optionsTargets.esmodules && optionsTargets.browsers) {
							 | 
						||
| 
								 | 
							
								    console.warn(`
							 | 
						||
| 
								 | 
							
								@babel/preset-env: esmodules and browsers targets have been specified together.
							 | 
						||
| 
								 | 
							
								\`browsers\` target, \`${optionsTargets.browsers.toString()}\` will be ignored.
							 | 
						||
| 
								 | 
							
								`);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return (0, _helperCompilationTargets.default)(optionsTargets, {
							 | 
						||
| 
								 | 
							
								    ignoreBrowserslistConfig,
							 | 
						||
| 
								 | 
							
								    configPath,
							 | 
						||
| 
								 | 
							
								    browserslistEnv
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								function supportsStaticESM(caller) {
							 | 
						||
| 
								 | 
							
								  return !!(caller != null && caller.supportsStaticESM);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								function supportsDynamicImport(caller) {
							 | 
						||
| 
								 | 
							
								  return !!(caller != null && caller.supportsDynamicImport);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								function supportsExportNamespaceFrom(caller) {
							 | 
						||
| 
								 | 
							
								  return !!(caller != null && caller.supportsExportNamespaceFrom);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								function supportsTopLevelAwait(caller) {
							 | 
						||
| 
								 | 
							
								  return !!(caller != null && caller.supportsTopLevelAwait);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								var _default = (0, _helperPluginUtils.declarePreset)((api, opts) => {
							 | 
						||
| 
								 | 
							
								  api.assertVersion(7);
							 | 
						||
| 
								 | 
							
								  const babelTargets = api.targets();
							 | 
						||
| 
								 | 
							
								  const {
							 | 
						||
| 
								 | 
							
								    bugfixes,
							 | 
						||
| 
								 | 
							
								    configPath,
							 | 
						||
| 
								 | 
							
								    debug,
							 | 
						||
| 
								 | 
							
								    exclude: optionsExclude,
							 | 
						||
| 
								 | 
							
								    forceAllTransforms,
							 | 
						||
| 
								 | 
							
								    ignoreBrowserslistConfig,
							 | 
						||
| 
								 | 
							
								    include: optionsInclude,
							 | 
						||
| 
								 | 
							
								    loose,
							 | 
						||
| 
								 | 
							
								    modules,
							 | 
						||
| 
								 | 
							
								    shippedProposals,
							 | 
						||
| 
								 | 
							
								    spec,
							 | 
						||
| 
								 | 
							
								    targets: optionsTargets,
							 | 
						||
| 
								 | 
							
								    useBuiltIns,
							 | 
						||
| 
								 | 
							
								    corejs: {
							 | 
						||
| 
								 | 
							
								      version: corejs,
							 | 
						||
| 
								 | 
							
								      proposals
							 | 
						||
| 
								 | 
							
								    },
							 | 
						||
| 
								 | 
							
								    browserslistEnv
							 | 
						||
| 
								 | 
							
								  } = (0, _normalizeOptions.default)(opts);
							 | 
						||
| 
								 | 
							
								  let targets = babelTargets;
							 | 
						||
| 
								 | 
							
								  if (
							 | 
						||
| 
								 | 
							
								  _semver.lt(api.version, "7.13.0") ||
							 | 
						||
| 
								 | 
							
								  opts.targets || opts.configPath || opts.browserslistEnv || opts.ignoreBrowserslistConfig) {
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								      var hasUglifyTarget = false;
							 | 
						||
| 
								 | 
							
								      if (optionsTargets != null && optionsTargets.uglify) {
							 | 
						||
| 
								 | 
							
								        hasUglifyTarget = true;
							 | 
						||
| 
								 | 
							
								        delete optionsTargets.uglify;
							 | 
						||
| 
								 | 
							
								        console.warn(`
							 | 
						||
| 
								 | 
							
								The uglify target has been deprecated. Set the top level
							 | 
						||
| 
								 | 
							
								option \`forceAllTransforms: true\` instead.
							 | 
						||
| 
								 | 
							
								`);
							 | 
						||
| 
								 | 
							
								      }
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    targets = getLocalTargets(optionsTargets, ignoreBrowserslistConfig, configPath, browserslistEnv);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  const transformTargets = forceAllTransforms || hasUglifyTarget ? {} : targets;
							 | 
						||
| 
								 | 
							
								  const include = transformIncludesAndExcludes(optionsInclude);
							 | 
						||
| 
								 | 
							
								  const exclude = transformIncludesAndExcludes(optionsExclude);
							 | 
						||
| 
								 | 
							
								  const compatData = getPluginList(shippedProposals, bugfixes);
							 | 
						||
| 
								 | 
							
								  const shouldSkipExportNamespaceFrom = modules === "auto" && (api.caller == null ? void 0 : api.caller(supportsExportNamespaceFrom)) || modules === false && !(0, _helperCompilationTargets.isRequired)("transform-export-namespace-from", transformTargets, {
							 | 
						||
| 
								 | 
							
								    compatData,
							 | 
						||
| 
								 | 
							
								    includes: include.plugins,
							 | 
						||
| 
								 | 
							
								    excludes: exclude.plugins
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  const modulesPluginNames = getModulesPluginNames({
							 | 
						||
| 
								 | 
							
								    modules,
							 | 
						||
| 
								 | 
							
								    transformations: _moduleTransformations.default,
							 | 
						||
| 
								 | 
							
								    shouldTransformESM: modules !== "auto" || !(api.caller != null && api.caller(supportsStaticESM)),
							 | 
						||
| 
								 | 
							
								    shouldTransformDynamicImport: modules !== "auto" || !(api.caller != null && api.caller(supportsDynamicImport)),
							 | 
						||
| 
								 | 
							
								    shouldTransformExportNamespaceFrom: !shouldSkipExportNamespaceFrom,
							 | 
						||
| 
								 | 
							
								    shouldParseTopLevelAwait: !api.caller || api.caller(supportsTopLevelAwait)
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  const pluginNames = (0, _helperCompilationTargets.filterItems)(compatData, include.plugins, exclude.plugins, transformTargets, modulesPluginNames, (0, _getOptionSpecificExcludes.default)({
							 | 
						||
| 
								 | 
							
								    loose
							 | 
						||
| 
								 | 
							
								  }), _shippedProposals.pluginSyntaxMap);
							 | 
						||
| 
								 | 
							
								  (0, _filterItems.removeUnnecessaryItems)(pluginNames, _pluginsCompatData.overlappingPlugins);
							 | 
						||
| 
								 | 
							
								  (0, _filterItems.removeUnsupportedItems)(pluginNames, api.version);
							 | 
						||
| 
								 | 
							
								  if (shippedProposals) {
							 | 
						||
| 
								 | 
							
								    (0, _filterItems.addProposalSyntaxPlugins)(pluginNames, _shippedProposals.proposalSyntaxPlugins);
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  const polyfillPlugins = getPolyfillPlugins({
							 | 
						||
| 
								 | 
							
								    useBuiltIns,
							 | 
						||
| 
								 | 
							
								    corejs,
							 | 
						||
| 
								 | 
							
								    polyfillTargets: targets,
							 | 
						||
| 
								 | 
							
								    include: include.builtIns,
							 | 
						||
| 
								 | 
							
								    exclude: exclude.builtIns,
							 | 
						||
| 
								 | 
							
								    proposals,
							 | 
						||
| 
								 | 
							
								    shippedProposals,
							 | 
						||
| 
								 | 
							
								    regenerator: pluginNames.has("transform-regenerator"),
							 | 
						||
| 
								 | 
							
								    debug
							 | 
						||
| 
								 | 
							
								  });
							 | 
						||
| 
								 | 
							
								  const pluginUseBuiltIns = useBuiltIns !== false;
							 | 
						||
| 
								 | 
							
								  const plugins = Array.from(pluginNames).map(pluginName => {
							 | 
						||
| 
								 | 
							
								    if (pluginName === "transform-class-properties" || pluginName === "transform-private-methods" || pluginName === "transform-private-property-in-object") {
							 | 
						||
| 
								 | 
							
								      return [getPlugin(pluginName), {
							 | 
						||
| 
								 | 
							
								        loose: loose ? "#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error" : "#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error"
							 | 
						||
| 
								 | 
							
								      }];
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								    return [getPlugin(pluginName), {
							 | 
						||
| 
								 | 
							
								      spec,
							 | 
						||
| 
								 | 
							
								      loose,
							 | 
						||
| 
								 | 
							
								      useBuiltIns: pluginUseBuiltIns
							 | 
						||
| 
								 | 
							
								    }];
							 | 
						||
| 
								 | 
							
								  }).concat(polyfillPlugins);
							 | 
						||
| 
								 | 
							
								  if (debug) {
							 | 
						||
| 
								 | 
							
								    console.log("@babel/preset-env: `DEBUG` option");
							 | 
						||
| 
								 | 
							
								    console.log("\nUsing targets:");
							 | 
						||
| 
								 | 
							
								    console.log(JSON.stringify((0, _helperCompilationTargets.prettifyTargets)(targets), null, 2));
							 | 
						||
| 
								 | 
							
								    console.log(`\nUsing modules transform: ${modules.toString()}`);
							 | 
						||
| 
								 | 
							
								    console.log("\nUsing plugins:");
							 | 
						||
| 
								 | 
							
								    pluginNames.forEach(pluginName => {
							 | 
						||
| 
								 | 
							
								      (0, _debug.logPlugin)(pluginName, targets, compatData);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								    if (!useBuiltIns) {
							 | 
						||
| 
								 | 
							
								      console.log("\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.");
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								  return {
							 | 
						||
| 
								 | 
							
								    plugins
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								exports.default = _default;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								//# sourceMappingURL=index.js.map
							 |