| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 | "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 leveloption \`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
 |