{"version":3,"sources":["jsdelivr-header.js","/npm/babel-preset-edge@5.5.1/src/modernTarget.js","/npm/babel-preset-edge@5.5.1/src/util.js","/npm/babel-preset-edge@5.5.1/src/getEnvTargets.js","/npm/babel-preset-edge@5.5.1/src/parts/async.js","/npm/babel-preset-edge@5.5.1/src/parts/compression.js","/npm/babel-preset-edge@5.5.1/src/parts/convenience.js","/npm/babel-preset-edge@5.5.1/src/parts/env.js","/npm/babel-preset-edge@5.5.1/src/defaults.js","/npm/babel-preset-edge@5.5.1/src/getOptions.js","/npm/babel-preset-edge@5.5.1/src/parts/imports.js","/npm/babel-preset-edge@5.5.1/src/parts/proposals.js","/npm/babel-preset-edge@5.5.1/src/parts/react.js","/npm/babel-preset-edge@5.5.1/src/shouldPrintComment.js","/npm/babel-preset-edge@5.5.1/src/parts/typescript.js","/npm/babel-preset-edge@5.5.1/src/index.js"],"names":[],"mappings":"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","file":"/npm/babel-preset-edge@5.5.1/lib/index.cjs.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.37.0.\n * Original file: /npm/babel-preset-edge@5.5.1/lib/index.cjs.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","export default {\n  node: \"10.13.0\",\n  browsers: [\n    \"Safari >= 12.1\",\n    \"iOS >= 12.1\",\n    \"Edge >= 18\",\n    \"Chrome >= 72\",\n    \"ChromeAndroid >= 72\",\n    \"Firefox >= 67\"\n  ]\n}\n","export function isProduction(options) {\n  return (/\\bproduction\\b/).test(options.env) && !isDevelopment(options)\n}\n\nexport function isDevelopment(options) {\n  return (/\\bdevelopment\\b/).test(options.env) && (/\\btest\\b/).test(options.env)\n}\n\nexport function isTest(options) {\n  return (/\\btest\\b/).test(options.env)\n}\n","import browserslist from \"browserslist\"\nimport getTargets from \"@babel/preset-env/lib/targets-parser\"\nimport semver from \"semver\"\nimport { get as getAppRoot } from \"app-root-dir\"\n\nimport modernTarget from \"./modernTarget\"\nimport { isProduction } from \"./util\"\n\n// eslint-disable-next-line import/no-dynamic-require\nconst engines = require(`${getAppRoot()}/package.json`).engines\n\n/* eslint-disable complexity */\nexport default function getEnvTargets(options) {\n  let envTargets = {}\n\n  if (typeof options.transpile === \"object\") {\n    envTargets = options.transpile\n  } else if (options.transpile === \"current\") {\n    // Scripts which are directly used like tests can be transpiled for the current NodeJS version\n    envTargets.node = \"current\"\n    envTargets.browsers = []\n  } else if (options.transpile === \"browser\") {\n    // What we do here is actually pretty clever/stupid as we just use browserslist\n    // itself to query its configuration and pass over that data again to babel-preset-env\n    // for passing it to browserslist internally. Yeah.\n    envTargets.browsers = browserslist(null, {\n      env:\n        process.env.BROWSERSLIST_ENV || isProduction(options) ?\n          \"production\" :\n          \"development\"\n    })\n  } else if (options.transpile === \"modern\") {\n    envTargets = modernTarget\n  } else if (options.transpile === \"esm\") {\n    // Support output mode for script type=module aka ESM which is kind of a nice way to deliver ~ES2015 code\n    // by using an easy duplicate script tag.\n    envTargets = {\n      esmodules: true\n    }\n  } else if (options.transpile === \"es5\" || options.transpile === \"es2015\") {\n    // Compilation with \"latest\" preset supporting a wide range of clients via ES5 output\n    // For ignoring any existing browserslist config we have to pass over an empty array.\n    envTargets.browsers = []\n  } else if (options.transpile === \"node\") {\n    // Using NodeJS version from engine field\n    if (engines && engines.node) {\n      // LTS Overview as of March 2019\n      // 4.2.0 - out of support\n      // 6.9.0 - maintenance lts\n      // 8.9.0 - maintenance lts\n      // 10.13.0 - active lts\n      if (semver.satisfies(\"4.2.0\", engines.node)) {\n        envTargets.node = \"4.2.0\"\n      } else if (semver.satisfies(\"6.9.0\", engines.node)) {\n        envTargets.node = \"6.9.0\"\n      } else if (semver.satisfies(\"8.9.0\", engines.node)) {\n        envTargets.node = \"8.9.0\"\n      } else if (semver.satisfies(\"10.13.0\", engines.node)) {\n        envTargets.node = \"10.13.0\"\n      } else {\n        throw new Error(`\nUnable to detect NodeJS target from 'engines' configuration.\nNodeJS version defined: ${engines.node}`)\n      }\n    } else {\n      // We use the current LTS as default.\n      // See also: https://github.com/nodejs/Release\n      // This behavior reduces the amount a transpilations a bit when working in pure NodeJS environments\n      envTargets.node = \"10.13.0\"\n    }\n  } else {\n    throw new Error(\"Invalid transpile configuration!\")\n  }\n\n  // We fill the browsers field if not defined with an empty array so that\n  // the browserslist config is properly ignored when transpilation if passed over.\n  if (envTargets.node != null && envTargets.browsers == null) {\n    envTargets.browsers = []\n  }\n\n  if (options.debug) {\n    console.log(\"- Computed Targets:\", envTargets)\n    console.log(\"- Final Targets:\", getTargets(envTargets))\n  }\n\n  return envTargets\n}\n","import envPlugins from \"@babel/preset-env/data/plugins.json\"\nimport fastAsyncPlugin from \"fast-async\"\nimport getTargets from \"@babel/preset-env/lib/targets-parser\"\nimport { isPluginRequired } from \"@babel/preset-env\"\n\nimport getEnvTargets from \"../getEnvTargets\"\n\nexport default function async(presets, plugins, options) {\n  // Directly ask babel-preset-env whether we want to use transform-async\n  // based on currently configured targets. Only if that's the case we\n  // transform our async/await code. Otherwise we assume it works without\n  // any transpilation.\n  const requiresAsync = isPluginRequired(\n    getTargets(getEnvTargets(options)),\n    envPlugins[\"transform-async-to-generator\"]\n  )\n\n  // Alternative to Babel Regenerator\n  // Implements the ES7 keywords async and await using syntax transformation\n  // to at Promises at compile-time, rather than using generators.\n  // https://github.com/babel/babel/pull/7076 (NEW: bundled plugin with Babel)\n  // https://www.npmjs.com/package/fast-async (OLD: separate Babel plugin)\n  if (requiresAsync) {\n    plugins.push(fastAsyncPlugin)\n  }\n\n  if (options.debug) {\n    console.log(\"- Async/Await Transpilation:\", requiresAsync)\n  }\n}\n","import minifyPreset from \"babel-preset-minify\"\n\nimport { isProduction } from \"../util\"\n\nconst allDisabled = {\n  booleans: false,\n  builtIns: false,\n  consecutiveAdds: false,\n  deadcode: false,\n  evaluate: false,\n  flipComparisons: false,\n  guards: false,\n  infinity: false,\n  mangle: false,\n  memberExpressions: false,\n  mergeVars: false,\n  numericLiterals: false,\n  propertyLiterals: false,\n  regexpConstructors: false,\n  removeUndefined: false,\n  replace: false,\n  simplify: false,\n  simplifyComparisons: false,\n  typeConstructors: false,\n  undefinedToVoid: false\n}\n\nconst mediumCompression = {\n  // Based on a black list of too agressive plugins/settings\n\n  // Settings\n  keepFnName: true,\n  keepClassName: true,\n\n  // Disable Agressive Plugins\n  builtIns: false,\n  booleans: false,\n  evaluate: false,\n  infinity: false,\n  mangle: false,\n  flipComparisons: false,\n  simplify: false\n}\n\nconst lowCompression = {\n  // Based on a white list\n  // All disabled + a few things enabled\n  ...allDisabled,\n\n  // Settings\n  keepFnName: true,\n  keepClassName: true,\n\n  // Enable only very basic plugins\n  deadcode: true,\n  guards: true,\n  memberExpressions: true,\n  propertyLiterals: true,\n  regexpConstructors: true,\n  removeUndefined: true,\n  simplifyComparisons: true,\n  typeConstructors: true\n}\n\nexport default function compression(presets, plugins, options) {\n  // Use basic compression for development/bundling and full compression for production output.\n  if (options.compression) {\n    if (isProduction(options)) {\n      // Mangling is quite error prone... got parse/processing errors for\n      // different combinations.\n      presets.push([ minifyPreset, { mangle: false }])\n\n      if (options.debug) {\n        console.log(\"- Output: Full Minification\")\n      }\n    } else {\n      presets.push([ minifyPreset, mediumCompression ])\n\n      if (options.debug) {\n        console.log(\"- Output: Medium Compression\")\n      }\n    }\n  }\n\n  // Even when no compression is enabled, it makes sense to remove\n  // and code paths which are clearly never executed.\n  else {\n    presets.push([ minifyPreset, lowCompression ])\n\n    if (options.debug) {\n      console.log(\"- Output: Low Compression\")\n    }\n  }\n}\n","import lodashPlugin from \"babel-plugin-lodash\"\nimport macrosPlugin from \"babel-plugin-macros\"\nimport moduleResolver from \"babel-plugin-module-resolver\"\n\nexport default function convenience(presets, plugins, options) {\n  // Optimization for cheery-picking from lodash, asyncjs, ramba and recompose.\n  // Auto cherry-picking es2015 imports from path imports.\n  // https://www.npmjs.com/package/babel-plugin-lodash\n  // https://github.com/acdlite/recompose#using-babel-lodash-plugin\n  plugins.push([ lodashPlugin, { id: options.optimizeModules }])\n\n  // Enables zero-config, importable babel plugins\n  plugins.push(macrosPlugin)\n\n  // Supports loading files in source folder without relative folders\n  // https://github.com/tleunen/babel-plugin-module-resolver\n  if (options.sourceFolder != null) {\n    plugins.push([\n      moduleResolver,\n      {\n        alias: {\n          \"-\": options.sourceFolder\n        }\n      }\n    ])\n  }\n}\n","import envPreset from \"@babel/preset-env\"\nimport transformRuntimePlugin from \"@babel/plugin-transform-runtime\"\n\nimport getEnvTargets from \"../getEnvTargets\"\n\nexport default function env(presets, plugins, options) {\n  const exclude = []\n\n  // We use fast-async and not the very large and slow output of the\n  // transpilation to generator functions.\n  exclude.push(\"transform-regenerator\", \"transform-async-to-generator\")\n\n  // Inspired by CreateReactApp, we disable this minor support as it\n  // is documented to \"make all code slower\".\n  exclude.push(\"transform-typeof-symbol\")\n\n  // Exclude all es2015 features which are supported by the default es2015 babel preset.\n  // This targets all es2015-capable browsers and engines.\n  if (options.transpile === \"es2015\") {\n    if (options.debug) {\n      console.log(\"- Targetting ES2015 engines\")\n    }\n\n    exclude.push(\n      \"transform-template-literals\",\n      \"transform-literals\",\n      \"transform-function-name\",\n      \"transform-arrow-functions\",\n      \"transform-block-scoped-functions\",\n      \"transform-classes\",\n      \"transform-object-super\",\n      \"transform-shorthand-properties\",\n      \"transform-duplicate-keys\",\n      \"transform-computed-properties\",\n      \"transform-for-of\",\n      \"transform-sticky-regex\",\n      \"transform-unicode-regex\",\n      \"transform-spread\",\n      \"transform-parameters\",\n      \"transform-destructuring\",\n      \"transform-block-scoping\",\n      \"transform-typeof-symbol\"\n    )\n  }\n\n  presets.push([\n    envPreset,\n    {\n      // Setting this to false will not transform modules.\n      modules: options.modules,\n\n      // Prefer built-ins which also prefers global polyfills which is the right thing to do\n      // for most scenarios like SPAs and NodeJS environments.\n      useBuiltIns: \"usage\",\n\n      // Using modern CoreJS Polyfills\n      corejs: 3,\n\n      // Options to tweak the details of the implementation. If both are `false` the environment\n      // preset is executed in default mode.\n      loose: options.looseMode,\n      spec: options.specMode,\n\n      // Debug output of features, plugins and presets which are enabled.\n      debug: false,\n\n      // We prefer the transpilation of the \"fast-async\" plugin over the\n      // slower and more complex Babel internal implementation.\n      exclude,\n\n      // Differ between development and production for our scope.\n      // NodeJS is generally fine in development to match the runtime version which is currently installed.\n      targets: getEnvTargets(options)\n    }\n  ])\n\n  // Use helpers, but not polyfills, in a way that omits duplication.\n  plugins.push([\n    transformRuntimePlugin,\n    {\n      corejs: false,\n      helpers: true,\n      regenerator: false,\n      useESModules: options.modules === false && (/browser|universal/).test(options.target)\n    }\n  ])\n\n  if (options.debug) {\n    /* eslint-disable no-nested-ternary */\n    console.log(\"- Module Settings:\", options.modules === false ? \"ESM\" : options.modules)\n    console.log(\n      \"- Transpilation Compliance:\",\n      options.specMode ? \"SPEC\" : options.looseMode ? \"LOOSE\" : \"DEFAULT\"\n    )\n  }\n}\n","/* eslint-disable max-len */\nexport default {\n  // Whether to print hints on transpilation settings which were selected.\n  debug: false,\n\n  // One of the following:\n  // - \"node\": Targetting NodeJS (Outputs CommonJS modules, translates dynamic imports into require statements, ...)\n  // - \"browser\": Targetting Browsers (Expects Webpack, Parcel or Rollup post-processing, keeps dynamic import, ...)\n  // - \"universal\": Targetting both NodeJS and Browsers (Ideally suited for libraries published for both NodeJS and browsers via NPM)\n  // - \"auto\": Define target automatically based on NODE_ENV environment.\n  target: \"auto\",\n\n  // Choose which transpilation should be applied.\n  // One of the following:\n  // - \"es5\": Standard output for widest engine and browser support. Ideally suited for publishing to NPM.\n  // - \"es2015\": Alternative to standard es5 reaching only modern engines and browsers which support at least all features of es2015. Might be a good alternative for publishing modern libraries to NPM or when using transpilation on all content - even `node_modules` in application code.\n  // - \"modern\": Uses a built-in definition of modern NodeJS and browser versions. This is interesting for local development of application as it accelerates features like hot-loading quite a bit.\n  // - \"current\": NodeJS only. Ideally for local running test suites, etc. Using the least amount of transpile for making code runnable locally.\n  // - \"node\": NodeJS only. Uses `engines` field in `package.json` to define the NodeJS version to target.\n  // - \"browser\": Browser only. Uses local \"browserslist\" config to determine transpilation target. Uses `BROWSERSLIST_ENV` if configured. Otherwise uses `env` passed through preset or via `NODE_ENV`.\n  // - \"auto\": Uses \"browser\" for `target: browser`. Uses \"node\" for `target: node`. Uses `es5` for `target: universal`.\n  // - {}: A custom object which is passed to `@babel/preset-env`\n  transpile: \"auto\",\n\n  // Select environment where we are in for the current job.\n  // One the the following:\n  // - \"development\": During development of applications, publishing of libraries containing debug code\n  // - \"production\": Publishing application to the public, publishing of clean non-debug code containing libraries and command line applications.\n  // - \"test\": Used for testing e.g. with Ava or Jest test runners.\n  // - \"auto\": Automatically using the `EDGE_ENV` or `NODE_ENV` environment variables.\n  env: \"auto\",\n\n  // Choose whether and how imports should be processed.\n  // - \"cjs\": Transpile module imports to CommonJS\n  // - false: Keep module imports\n  // - \"auto\": Automatic selection based on `target`.\n  modules: \"auto\",\n\n  // Choose automatically depending on target by default or use one of these for full control:\n  // - \"node\": For usage in NodeJS (e.g. produce binaries), publish NodeJS-only libraries.\n  // - false: Enhance imports with further details (chunk names, SSR support), but keep them functional as they are.\n  imports: false,\n\n  // Replace the function used when compiling JSX expressions. Default: React.\n  // See also: https://www.npmjs.com/package/@babel/preset-react\n  jsxPragma: null,\n\n  // Replace the component used when compiling JSX fragments. Default: React.\n  // See also: https://www.npmjs.com/package/@babel/preset-react\n  jsxPragmaFrag: null,\n\n  // Transpilation Settings: We default on a loose transpilation which is efficient\n  // but not overly compliant. If you experience issues it might be better to\n  // switch `looseMode` off. `specMode` on the other hand might produce\n  // 100% correct code, but tend to be large and slower as well.\n  looseMode: true,\n  specMode: false,\n\n  // Lodash Plugin Settings. Optimizes import statements for smaller bundles.\n  // The idea behind here is that some libraries are publishing individual functions into individual files.\n  // This helps tree-shaking until all libraries are correctly dealing with side-effect flags and bundlers have better support.\n  optimizeModules: [ \"lodash\", \"async\", \"rambda\", \"recompose\" ],\n\n  // Configuration for module lookup\n  sourceFolder: \"./src\",\n\n  // Whether to enable source map output\n  sourceMaps: true,\n\n  // Enable full compression on production scripts or basic compression for libraries or during development.\n  compression: true,\n\n  // Whether to apply more agressive minification. Automatically enabled when using `compression: true` and running in production env.\n  minified: null\n}\n","import defaults from \"./defaults\"\nimport { isProduction } from \"./util\"\n\n/* eslint-disable complexity */\nexport default function getOptions(input = {}) {\n  // These are the final options we use later on.\n  const output = { ...defaults, ...input }\n\n  // Normalize \"auto\"/null. Makes processing later in code better.\n  if (output.target == null) {\n    output.target = \"auto\"\n  }\n\n  if (output.transpile == null) {\n    output.transpile = \"auto\"\n  }\n\n  if (output.env == null) {\n    output.env = \"auto\"\n  }\n\n  if (output.minified == null) {\n    output.minified = \"auto\"\n  }\n\n  if (output.modules == null) {\n    output.modules = \"auto\"\n  }\n\n  // Fallback to environment variables when possible.\n  if (output.env == null || output.env === \"auto\") {\n    output.env =\n      process.env.EDGE_ENV ||\n      process.env.BABEL_ENV ||\n      process.env.NODE_ENV ||\n      \"development\"\n  }\n\n  if (output.target === \"auto\") {\n    if ((/\\btest\\b/).test(output.env)) {\n      output.target = \"node\"\n    } else if ((/\\bnode\\b/).test(output.env)) {\n      output.target = \"node\"\n    } else if ((/\\bbrowser\\b/).test(output.env)) {\n      output.target = \"browser\"\n    } else {\n      output.target = \"universal\"\n    }\n  }\n\n  if (output.debug) {\n    console.log(\"- Target:\", output.target)\n  }\n\n  // Auto select test target when running in test environment\n  if (output.transpile === \"auto\") {\n    if ((/\\btest\\b/).test(output.env)) {\n      output.transpile = \"current\"\n\n      if (output.debug) {\n        console.log(\"- Selecting `transpile: current` based on environment.\")\n      }\n    } else if (output.target === \"browser\") {\n      output.transpile = \"browser\"\n    } else if (output.target === \"node\") {\n      output.transpile = \"node\"\n    } else if ((/\\bmodern\\b/).test(output.env)) {\n      output.transpile = \"modern\"\n\n      if (output.debug) {\n        console.log(\"- Selected 'modern' transpile based on ENV\")\n      }\n    } else if ((/\\besm\\b/).test(output.env)) {\n      output.transpile = \"esm\"\n\n      if (output.debug) {\n        console.log(\"- Selected 'esm' transpile based on ENV\")\n      }\n    } else if ((/\\bes2015\\b/).test(output.env)) {\n      output.transpile = \"es2015\"\n\n      if (output.debug) {\n        console.log(\"- Selected 'es2015' transpile based on ENV\")\n      }\n    } else {\n      output.transpile = \"es5\"\n    }\n  }\n\n  if (output.debug) {\n    console.log(\"- Transpile:\", output.transpile)\n  }\n\n  // Enforce 'cjs' for all test stuff. This is actually waiting for Jest somehow\n  // supporting ESM natively which seems to be quite another story.\n  // This overrides even a user defined `modules: false` inside config.\n  // A pragmatic solution for now.\n  // See also: https://github.com/facebook/jest/issues/4842\n  if (output.env === \"test\") {\n    output.modules = \"cjs\"\n  }\n\n  // Automatic detection of \"modules\" mode based on target\n  if (output.modules === \"auto\") {\n    if (output.target === \"node\" || output.env === \"test\") {\n      output.modules = \"cjs\"\n    } else {\n      // Libraries should be published as EcmaScript modules for tree shaking support\n      // For browser targets we typically use tools like Webpack, Rollup or Parcel which benefit from EcmaScript modules, too.\n      output.modules = false\n    }\n  }\n\n  if (output.minified === \"auto\") {\n    output.minified = output.compression && isProduction(output)\n  }\n\n  if (output.debug) {\n    console.log(\"Final Options:\", output)\n  }\n\n  return output\n}\n","import requireContext from \"babel-plugin-require-context-hook\"\nimport rollupNode from \"babel-plugin-dynamic-import-node\"\nimport serverRendering from \"@loadable/babel-plugin\"\nimport smartWebpack from \"babel-plugin-smart-webpack-import\"\nimport syntaxPlugin from \"@babel/plugin-syntax-dynamic-import\"\n\nimport { isTest } from \"../util\"\n\nexport default function imports(presets, plugins, options) {\n  // Support for require.context in Non-Webpack-Environments like Jest or NodeJS\n  if (isTest(options) || options.target === \"node\") {\n    plugins.push(requireContext)\n  }\n\n  // Support for new @import() syntax\n  plugins.push(syntaxPlugin)\n\n  // Automatically add chunk names to imports() (for Webpack usage)\n  plugins.push(smartWebpack)\n\n  // Support for enhanced imported components with SSR support\n  plugins.push(serverRendering)\n\n  // Transpile the parsed import() syntax for compatibility or extended features.\n  if (options.imports === \"node\") {\n    if (options.debug) {\n      console.log(\"- Rewriting import() for NodeJS.\")\n    }\n\n    // Compiles import() to a deferred require() for NodeJS\n    plugins.push(rollupNode)\n  } else {\n    if (options.debug) {\n      console.log(\"- Keeping import() statement as is.\")\n    }\n  }\n}\n","import catchBindPlugin from \"@babel/plugin-proposal-optional-catch-binding\"\nimport classPropertiesPlugin from \"@babel/plugin-proposal-class-properties\"\nimport decoratorsPlugin from \"@babel/plugin-proposal-decorators\"\nimport objectRestSpreadPlugin from \"@babel/plugin-proposal-object-rest-spread\"\n\nexport default function proposals(presets, plugins, options) {\n  // Support for @decorators to wrap other functions/classes\n  // Must be placed before class properties plugin.\n  plugins.push([ decoratorsPlugin, { legacy: true }])\n\n  // Support for ES7 Class Properties (currently stage-2)\n  // class { handleClick = () => { } }\n  plugins.push([ classPropertiesPlugin, { corejs: 3, loose: options.looseMode }])\n\n  // Support for Object Rest Spread `...` operator in objects.\n  // { ...todo, completed: true }\n  plugins.push([\n    objectRestSpreadPlugin,\n    { corejs: 3, useBuiltIns: true, loose: options.looseMode }\n  ])\n\n  // Enables the catch block to execute whether or not an argument\n  // is passed to the catch statement\n  plugins.push(catchBindPlugin)\n}\n","import reactConstantElements from \"@babel/plugin-transform-react-constant-elements\"\nimport reactInlineElementsPlugin from \"@babel/plugin-transform-react-inline-elements\"\nimport reactPreset from \"@babel/preset-react\"\n\nimport { isDevelopment, isProduction } from \"../util\"\n\nexport default function react(presets, plugins, options) {\n  // Transform JSX and prefer built-in methods\n  presets.push([\n    reactPreset,\n    {\n      corejs: 3,\n      useBuiltIns: true,\n      pragma: options.jsxPragma,\n      pragmaFrag: options.jsxPragmaFrag,\n      development: isDevelopment(options)\n    }\n  ])\n\n  if (isProduction(options)) {\n    // Replaces the React.createElement function with one that is\n    // more optimized for production.\n    // NOTE: Symbol needs to be polyfilled.\n    // https://babeljs.io/docs/plugins/transform-react-inline-elements/\n    plugins.push(reactInlineElementsPlugin)\n\n    // Hoists element creation to the top level for subtrees that\n    // are fully static, which reduces call to React.createElement\n    // and the resulting allocations. More importantly, it tells\n    // React that the subtree hasn’t changed so React can completely\n    // skip it when reconciling.\n    // https://babeljs.io/docs/plugins/transform-react-constant-elements/\n    plugins.push(reactConstantElements)\n  }\n}\n","export default function shouldPrintComment(comment) {\n  // Keep pure function markers which are generated by some plugins\n  // See sideEffects option: https://github.com/mishoo/UglifyJS2\n  if ((/[#@]__PURE__/).exec(comment)) {\n    return true\n  }\n\n  // Keep JSON5 magic comments used for Webpack hints\n  if ((/^\\s?webpack[A-Z][A-Za-z]+:/).exec(comment)) {\n    return true\n  }\n\n  return false\n}\n","import typescriptPreset from \"@babel/preset-typescript\"\n\nexport default function typescript(presets, plugins, options) {\n  presets.push([\n    typescriptPreset,\n    {\n      isTSX: true,\n      jsxPragma: options.jsxPragma,\n      allExtensions: true\n    }\n  ])\n}\n","/* eslint-disable filenames/match-exported, no-console, complexity */\nimport asyncPart from \"./parts/async\"\nimport compressionPart from \"./parts/compression\"\nimport conveniencePart from \"./parts/convenience\"\nimport envPart from \"./parts/env\"\nimport getOptions from \"./getOptions\"\nimport importsPart from \"./parts/imports\"\nimport proposalsPart from \"./parts/proposals\"\nimport reactPart from \"./parts/react\"\nimport shouldPrintComment from \"./shouldPrintComment\"\nimport typescriptPart from \"./parts/typescript\"\n\nexport default function buildPreset(context, input) {\n  const options = getOptions(input)\n\n  const presets = []\n  const plugins = []\n\n  // Plugin/Preset Order is important in Babel as the AST is only processed in one step.\n  // If two transforms both visit the \"Program\" node, the transforms will run in either plugin or preset order.\n  //\n  // - Plugins run before Presets.\n  // - Plugin ordering is first to last.\n  // - Preset ordering is last to first(!).\n  //\n  // Official Docs: https://new.babeljs.io/docs/en/plugins.html#plugin-preset-ordering\n  // See also: https://jamie.build/babel-plugin-ordering.html\n\n  // Mainly plugins\n  proposalsPart(presets, plugins, options)\n  asyncPart(presets, plugins, options)\n  conveniencePart(presets, plugins, options)\n  importsPart(presets, plugins, options)\n\n  // Mainly presets\n  // env => react => compression\n  compressionPart(presets, plugins, options)\n  reactPart(presets, plugins, options)\n  envPart(presets, plugins, options)\n  typescriptPart(presets, plugins, options)\n\n  // Assemble final config\n  return {\n    // Babel basic configuration\n    compact: options.minified || \"auto\",\n    minified: options.minified,\n\n    // Whether to enable source maps\n    sourceMaps: options.sourceMaps,\n\n    // Fine tune comment output\n    shouldPrintComment,\n\n    // Add lists of presets and plugins\n    presets,\n    plugins\n  }\n}\n"]}