diff --git a/.gitignore b/.gitignore index 7a343b9d..333bbd9e 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,6 @@ node_modules .rts2_cache_es .rts2_cache_umd build -dist yarn.lock .vscode .idea diff --git a/README.md b/README.md index 31f62cac..50ee45cf 100644 --- a/README.md +++ b/README.md @@ -40,21 +40,12 @@ ```js { -<<<<<<< HEAD "source": "src/foo.js", // Your source file (same as 1st arg to microbundle) "main": "dist/foo.js", // output path for CommonJS/Node "module": "dist/foo.mjs", // output path for JS Modules "unpkg": "dist/foo.umd.js", // optional, for unpkg.com "scripts": { "build": "microbundle", // uses "source" and "main" as input and output paths by default -======= - "source": "src/foo.js", // Your source file (same as 1st arg to microbundle) - "main": "dist/foo.js", // output path for CommonJS/Node - "module": "dist/foo.module.js", // output path for JS Modules - "unpkg": "dist/foo.umd.js", // optional, for unpkg.com - "scripts": { - "build": "microbundle", // uses "source" and "main" as input and output paths by default ->>>>>>> upstream/master "dev": "microbundle watch" } } diff --git a/dist/cli.js b/dist/cli.js new file mode 100644 index 00000000..ac4c029d --- /dev/null +++ b/dist/cli.js @@ -0,0 +1,81 @@ +#!/usr/bin/env node +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var microbundle = _interopDefault(require('./microbundle.js')); +var sade = _interopDefault(require('sade')); +var fs = _interopDefault(require('fs')); +var es6Promisify = require('es6-promisify'); +var kleur = require('kleur'); + +let { + version +} = require('../package'); + +const toArray = val => Array.isArray(val) ? val : val == null ? [] : [val]; + +var prog = (handler => { + const ENABLE_MODERN = process.env.MICROBUNDLE_MODERN !== 'false'; + const DEFAULT_FORMATS = ENABLE_MODERN ? 'modern,es,cjs,umd' : 'es,cjs,umd'; + + const cmd = type => (str, opts) => { + opts.watch = opts.watch || type === 'watch'; + opts.compress = opts.compress != null ? opts.compress : opts.target !== 'node'; + opts.entries = toArray(str || opts.entry).concat(opts._); + handler(opts); + }; + + let prog = sade('microbundle'); + prog.version(version).option('--entry, -i', 'Entry module(s)').option('--output, -o', 'Directory to place build files into').option('--format, -f', 'Only build specified formats', DEFAULT_FORMATS).option('--watch, -w', 'Rebuilds on any change', false).option('--target', 'Specify your target environment (node or web)', 'web').option('--external', `Specify external dependencies, or 'none'`).option('--globals', `Specify globals dependencies, or 'none'`).example('microbundle --globals react=React,jquery=$').option('--define', 'Replace constants with hard-coded values').example('microbundle --define API_KEY=1234').option('--alias', `Map imports to different modules`).example('microbundle --alias react=preact').option('--compress', 'Compress output using Terser', null).option('--strict', 'Enforce undefined global context and add "use strict"').option('--name', 'Specify name exposed in UMD builds').option('--cwd', 'Use an alternative working directory', '.').option('--sourcemap', 'Generate source map', true).option('--css-modules', 'Turns on css-modules for all .css imports. Passing a string will override the scopeName. eg --css-modules="_[hash]"', null).example("microbundle --no-sourcemap # don't generate sourcemaps").option('--raw', 'Show raw byte size', false).option('--jsx', 'A custom JSX pragma (default React.createElement)').option('--tsconfig', 'Specify the path to a custom tsconfig.json').example('microbundle build --tsconfig tsconfig.build.json'); + prog.command('build [...entries]', '', { + default: true + }).describe('Build once and exit').action(cmd('build')); + prog.command('watch [...entries]').describe('Rebuilds on any change').action(cmd('watch')); + return argv => prog.parse(argv, { + alias: { + o: ['output', 'd'], + i: ['entry', 'entries', 'e'], + w: ['watch'] + } + }); +}); + +const readFile = es6Promisify.promisify(fs.readFile); +const stat = es6Promisify.promisify(fs.stat); +const stdout = console.log.bind(console); +const stderr = console.error.bind(console); + +function logError (err) { + const error = err.error || err; + const description = `${error.name ? error.name + ': ' : ''}${error.message || error}`; + const message = error.plugin ? `(${error.plugin} plugin) ${description}` : description; + stderr(kleur.red().bold(message)); + + if (error.loc) { + stderr(); + stderr(`at ${error.loc.file}:${error.loc.line}:${error.loc.column}`); + } + + if (error.frame) { + stderr(); + stderr(kleur.dim(error.frame)); + } else if (err.stack) { + const headlessStack = error.stack.replace(message, ''); + stderr(kleur.dim(headlessStack)); + } + + stderr(); +} + +const run = opts => { + microbundle(opts).then(output => { + if (output != null) stdout(output); + if (!opts.watch) process.exit(0); + }).catch(err => { + process.exitCode = typeof err.code === 'number' && err.code || 1; + logError(err); + process.exit(); + }); +}; + +prog(run)(process.argv); +//# sourceMappingURL=cli.js.map diff --git a/dist/cli.js.map b/dist/cli.js.map new file mode 100644 index 00000000..b00af3b0 --- /dev/null +++ b/dist/cli.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cli.js","sources":["../src/prog.js","../src/utils.js","../src/log-error.js","../src/cli.js"],"sourcesContent":["import sade from 'sade';\nlet { version } = require('../package');\n\nconst toArray = val => (Array.isArray(val) ? val : val == null ? [] : [val]);\n\nexport default handler => {\n\tconst ENABLE_MODERN = process.env.MICROBUNDLE_MODERN !== 'false';\n\n\tconst DEFAULT_FORMATS = ENABLE_MODERN ? 'modern,es,cjs,umd' : 'es,cjs,umd';\n\n\tconst cmd = type => (str, opts) => {\n\t\topts.watch = opts.watch || type === 'watch';\n\t\topts.compress =\n\t\t\topts.compress != null ? opts.compress : opts.target !== 'node';\n\t\topts.entries = toArray(str || opts.entry).concat(opts._);\n\t\thandler(opts);\n\t};\n\n\tlet prog = sade('microbundle');\n\n\tprog\n\t\t.version(version)\n\t\t.option('--entry, -i', 'Entry module(s)')\n\t\t.option('--output, -o', 'Directory to place build files into')\n\t\t.option('--format, -f', 'Only build specified formats', DEFAULT_FORMATS)\n\t\t.option('--watch, -w', 'Rebuilds on any change', false)\n\t\t.option('--target', 'Specify your target environment (node or web)', 'web')\n\t\t.option('--external', `Specify external dependencies, or 'none'`)\n\t\t.option('--globals', `Specify globals dependencies, or 'none'`)\n\t\t.example('microbundle --globals react=React,jquery=$')\n\t\t.option('--define', 'Replace constants with hard-coded values')\n\t\t.example('microbundle --define API_KEY=1234')\n\t\t.option('--alias', `Map imports to different modules`)\n\t\t.example('microbundle --alias react=preact')\n\t\t.option('--compress', 'Compress output using Terser', null)\n\t\t.option('--strict', 'Enforce undefined global context and add \"use strict\"')\n\t\t.option('--name', 'Specify name exposed in UMD builds')\n\t\t.option('--cwd', 'Use an alternative working directory', '.')\n\t\t.option('--sourcemap', 'Generate source map', true)\n\t\t.option(\n\t\t\t'--css-modules',\n\t\t\t'Turns on css-modules for all .css imports. Passing a string will override the scopeName. eg --css-modules=\"_[hash]\"',\n\t\t\tnull,\n\t\t)\n\t\t.example(\"microbundle --no-sourcemap # don't generate sourcemaps\")\n\t\t.option('--raw', 'Show raw byte size', false)\n\t\t.option('--jsx', 'A custom JSX pragma (default React.createElement)')\n\t\t.option('--tsconfig', 'Specify the path to a custom tsconfig.json')\n\t\t.example('microbundle build --tsconfig tsconfig.build.json');\n\n\tprog\n\t\t.command('build [...entries]', '', { default: true })\n\t\t.describe('Build once and exit')\n\t\t.action(cmd('build'));\n\n\tprog\n\t\t.command('watch [...entries]')\n\t\t.describe('Rebuilds on any change')\n\t\t.action(cmd('watch'));\n\n\t// Parse argv; add extra aliases\n\treturn argv =>\n\t\tprog.parse(argv, {\n\t\t\talias: {\n\t\t\t\to: ['output', 'd'],\n\t\t\t\ti: ['entry', 'entries', 'e'],\n\t\t\t\tw: ['watch'],\n\t\t\t},\n\t\t});\n};\n","import fs from 'fs';\nimport { promisify } from 'es6-promisify';\n\nexport const readFile = promisify(fs.readFile);\n// export const writeFile = promisify(fs.writeFile);\nexport const stat = promisify(fs.stat);\nexport const isDir = name =>\n\tstat(name)\n\t\t.then(stats => stats.isDirectory())\n\t\t.catch(() => false);\nexport const isFile = name =>\n\tstat(name)\n\t\t.then(stats => stats.isFile())\n\t\t.catch(() => false);\nexport const stdout = console.log.bind(console); // eslint-disable-line no-console\nexport const stderr = console.error.bind(console);\n\nexport const isTruthy = obj => {\n\tif (!obj) {\n\t\treturn false;\n\t}\n\n\treturn obj.constructor !== Object || Object.keys(obj).length > 0;\n};\n","import { red, dim } from 'kleur';\nimport { stderr } from './utils';\n\nexport default function(err) {\n\tconst error = err.error || err;\n\tconst description = `${error.name ? error.name + ': ' : ''}${error.message ||\n\t\terror}`;\n\tconst message = error.plugin\n\t\t? `(${error.plugin} plugin) ${description}`\n\t\t: description;\n\n\tstderr(red().bold(message));\n\n\tif (error.loc) {\n\t\tstderr();\n\t\tstderr(`at ${error.loc.file}:${error.loc.line}:${error.loc.column}`);\n\t}\n\n\tif (error.frame) {\n\t\tstderr();\n\t\tstderr(dim(error.frame));\n\t} else if (err.stack) {\n\t\tconst headlessStack = error.stack.replace(message, '');\n\t\tstderr(dim(headlessStack));\n\t}\n\n\tstderr();\n}\n","#!/usr/bin/env node\n\nimport microbundle from '.';\nimport prog from './prog';\nimport { stdout } from './utils';\nimport logError from './log-error';\n\nconst run = opts => {\n\tmicrobundle(opts)\n\t\t.then(output => {\n\t\t\tif (output != null) stdout(output);\n\t\t\tif (!opts.watch) process.exit(0);\n\t\t})\n\t\t.catch(err => {\n\t\t\tprocess.exitCode = (typeof err.code === 'number' && err.code) || 1;\n\t\t\tlogError(err);\n\t\t\tprocess.exit();\n\t\t});\n};\n\nprog(run)(process.argv);\n"],"names":["version","require","toArray","val","Array","isArray","handler","ENABLE_MODERN","process","env","MICROBUNDLE_MODERN","DEFAULT_FORMATS","cmd","type","str","opts","watch","compress","target","entries","entry","concat","_","prog","sade","option","example","command","default","describe","action","argv","parse","alias","o","i","w","readFile","promisify","fs","stat","stdout","console","log","bind","stderr","error","err","description","name","message","plugin","red","bold","loc","file","line","column","frame","dim","stack","headlessStack","replace","run","microbundle","then","output","exit","catch","exitCode","code","logError"],"mappings":"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"} \ No newline at end of file diff --git a/dist/microbundle.js b/dist/microbundle.js new file mode 100644 index 00000000..55c32b0f --- /dev/null +++ b/dist/microbundle.js @@ -0,0 +1,849 @@ +#!/usr/bin/env node +function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; } + +var fs = _interopDefault(require('fs')); +var path = require('path'); +var kleur = require('kleur'); +var asyncro = require('asyncro'); +var glob = _interopDefault(require('tiny-glob/sync')); +var autoprefixer = _interopDefault(require('autoprefixer')); +var cssnano = _interopDefault(require('cssnano')); +var rollup = require('rollup'); +var commonjs = _interopDefault(require('@rollup/plugin-commonjs')); +var babelPlugin = _interopDefault(require('rollup-plugin-babel')); +var core = require('@babel/core'); +var merge = _interopDefault(require('lodash.merge')); +var es6Promisify = require('es6-promisify'); +var nodeResolve = _interopDefault(require('@rollup/plugin-node-resolve')); +var rollupPluginTerser = require('rollup-plugin-terser'); +var alias = _interopDefault(require('@rollup/plugin-alias')); +var postcss = _interopDefault(require('rollup-plugin-postcss')); +var postcssCopy = _interopDefault(require('postcss-copy')); +var gzipSize = _interopDefault(require('gzip-size')); +var brotliSize = _interopDefault(require('brotli-size')); +var prettyBytes = _interopDefault(require('pretty-bytes')); +var typescript = _interopDefault(require('rollup-plugin-typescript2')); +var json = _interopDefault(require('@rollup/plugin-json')); +var svgr = _interopDefault(require('@svgr/rollup')); +var smartAsset = _interopDefault(require('rollup-plugin-smart-asset')); +var camelCase = _interopDefault(require('camelcase')); + +// A type of promise-like that resolves synchronously and supports only one observer + +const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.iterator || (Symbol.iterator = Symbol("Symbol.iterator"))) : "@@iterator"; + +const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== "undefined" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol("Symbol.asyncIterator"))) : "@@asyncIterator"; + +// Asynchronously call a function and send errors to recovery continuation +function _catch(body, recover) { + try { + var result = body(); + } catch(e) { + return recover(e); + } + if (result && result.then) { + return result.then(void 0, recover); + } + return result; +} + +const readFile = es6Promisify.promisify(fs.readFile); +const stat = es6Promisify.promisify(fs.stat); +const isDir = name => stat(name).then(stats => stats.isDirectory()).catch(() => false); +const isFile = name => stat(name).then(stats => stats.isFile()).catch(() => false); +const stdout = console.log.bind(console); +const stderr = console.error.bind(console); +const isTruthy = obj => { + if (!obj) { + return false; + } + + return obj.constructor !== Object || Object.keys(obj).length > 0; +}; + +const ESMODULES_TARGET = { + esmodules: true +}; + +const mergeConfigItems = (type, ...configItemsToMerge) => { + const mergedItems = []; + configItemsToMerge.forEach(configItemToMerge => { + configItemToMerge.forEach(item => { + const itemToMergeWithIndex = mergedItems.findIndex(mergedItem => mergedItem.file.resolved === item.file.resolved); + + if (itemToMergeWithIndex === -1) { + mergedItems.push(item); + return; + } + + mergedItems[itemToMergeWithIndex] = core.createConfigItem([mergedItems[itemToMergeWithIndex].file.resolved, merge(mergedItems[itemToMergeWithIndex].options, item.options)], { + type + }); + }); + }); + return mergedItems; +}; + +const createConfigItems = (type, items) => { + return items.map(({ + name, + ...options + }) => { + return core.createConfigItem([require.resolve(name), options], { + type + }); + }); +}; + +const presetEnvRegex = RegExp(/@babel\/(preset-)?env/); +var customBabel = (() => { + return babelPlugin.custom(babelCore => { + return { + options({ + custom: customOptions, + ...pluginOptions + }) { + return { + customOptions, + pluginOptions + }; + }, + + config(config, { + customOptions + }) { + const defaultPlugins = createConfigItems('plugin', [{ + name: '@babel/plugin-transform-react-jsx', + pragma: customOptions.pragma || 'h', + pragmaFrag: customOptions.pragmaFrag || 'Fragment' + }, !customOptions.typescript && { + name: '@babel/plugin-transform-flow-strip-types' + }, isTruthy(customOptions.defines) && { + name: 'babel-plugin-transform-replace-expressions', + replace: customOptions.defines + }, !customOptions.modern && { + name: 'babel-plugin-transform-async-to-promises', + inlineHelpers: true, + externalHelpers: true + }, { + name: '@babel/plugin-proposal-decorators', + legacy: true + }, { + name: '@babel/plugin-proposal-optional-chaining' + }, { + name: '@babel/plugin-proposal-class-properties', + loose: true + }, !customOptions.modern && { + name: '@babel/plugin-transform-regenerator', + async: false + }, { + name: 'babel-plugin-macros' + }].filter(Boolean)); + const babelOptions = config.options || {}; + const envIdx = (babelOptions.presets || []).findIndex(preset => presetEnvRegex.test(preset.file.request)); + const environmentPreset = customOptions.modern ? '@babel/preset-modules' : '@babel/preset-env'; + + if (envIdx !== -1) { + const preset = babelOptions.presets[envIdx]; + babelOptions.presets[envIdx] = core.createConfigItem([environmentPreset, Object.assign(merge({ + loose: true, + useBuiltIns: false, + targets: customOptions.targets + }, preset.options, { + modules: false, + exclude: merge(['transform-async-to-generator', 'transform-regenerator'], preset.options && preset.options.exclude || []) + }), customOptions.modern ? { + targets: ESMODULES_TARGET + } : {})], { + type: `preset` + }); + } else { + babelOptions.presets = createConfigItems('preset', [{ + name: environmentPreset, + targets: customOptions.modern ? ESMODULES_TARGET : customOptions.targets, + modules: false, + loose: true, + useBuiltIns: false, + exclude: ['transform-async-to-generator', 'transform-regenerator'] + }]); + } + + babelOptions.plugins = mergeConfigItems('plugin', defaultPlugins, babelOptions.plugins || []); + babelOptions.generatorOpts = { + minified: customOptions.compress, + compact: customOptions.compress, + shouldPrintComment: comment => /[@#]__PURE__/.test(comment) + }; + return babelOptions; + } + + }; + }); +}); + +function logError (err) { + const error = err.error || err; + const description = `${error.name ? error.name + ': ' : ''}${error.message || error}`; + const message = error.plugin ? `(${error.plugin} plugin) ${description}` : description; + stderr(kleur.red().bold(message)); + + if (error.loc) { + stderr(); + stderr(`at ${error.loc.file}:${error.loc.line}:${error.loc.column}`); + } + + if (error.frame) { + stderr(); + stderr(kleur.dim(error.frame)); + } else if (err.stack) { + const headlessStack = error.stack.replace(message, ''); + stderr(kleur.dim(headlessStack)); + } + + stderr(); +} + +const getEntries = function ({ + input, + cwd +}) { + try { + return Promise.resolve(asyncro.map([].concat(input), function (file) { + try { + file = path.resolve(cwd, file); + return Promise.resolve(isDir(file)).then(function (_isDir3) { + if (_isDir3) { + file = path.resolve(file, 'index.js'); + } + + return file; + }); + } catch (e) { + return Promise.reject(e); + } + })).then(function (_map) { + let entries = _map.filter((item, i, arr) => arr.indexOf(item) === i); + + return entries; + }); + } catch (e) { + return Promise.reject(e); + } +}; + +const getOutput = function ({ + cwd, + output, + pkgMain, + pkgName +}) { + try { + function _temp9(_isDir2) { + if (_isDir2) { + main = path.resolve(main, `${removeScope(pkgName)}.js`); + } + + return main; + } + + let main = path.resolve(cwd, output || pkgMain || 'dist'); + + const _main$match = !main.match(/\.[a-z]+$/); + + return Promise.resolve(_main$match ? _temp9(_main$match) : Promise.resolve(isDir(main)).then(_temp9)); + } catch (e) { + return Promise.reject(e); + } +}; + +const getInput = function ({ + entries, + cwd, + source, + module +}) { + try { + function _temp8(_isDir) { + function _temp7(_jsOrTs) { + function _temp6(_jsOrTs2) { + _concat.call([], _temp5 ? _jsOrTs2 : _jsOrTs2 || module).map(file => glob(file)).forEach(file => input.push(...file)); + + return input; + } + + return _temp5 || _temp4 || _jsOrTs ? _temp6(_temp5 ? _jsOrTs : _temp4 || _jsOrTs || jsOrTs(cwd, 'index')) : Promise.resolve(_temp5 ? _jsOrTs : _temp4 || _jsOrTs || jsOrTs(cwd, 'index')).then(_temp6); + } + + return _temp5 || _temp4 || !_isDir ? _temp7(_temp5 ? _isDir : _temp4 || _isDir && jsOrTs(cwd, 'src/index')) : Promise.resolve(_temp5 ? _isDir : _temp4 || _isDir && jsOrTs(cwd, 'src/index')).then(_temp7); + } + + const input = []; + + const _concat = [].concat, + _temp5 = entries && entries.length, + _temp4 = _temp5 || source && (Array.isArray(source) ? source : [source]).map(file => path.resolve(cwd, file)); + + return Promise.resolve(_temp5 || _temp4 ? _temp8(_temp5 ? entries : _temp4 || isDir(path.resolve(cwd, 'src'))) : Promise.resolve(_temp5 ? entries : _temp4 || isDir(path.resolve(cwd, 'src'))).then(_temp8)); + } catch (e) { + return Promise.reject(e); + } +}; + +const jsOrTs = function (cwd, filename) { + try { + return Promise.resolve(isFile(path.resolve(cwd, filename + '.ts'))).then(function (_isFile) { + function _temp3(_isFile2) { + const extension = _isFile ? _isFile2 : _isFile2 ? '.tsx' : '.js'; + return path.resolve(cwd, `${filename}${extension}`); + } + + return _isFile ? _temp3('.ts') : Promise.resolve(isFile(path.resolve(cwd, filename + '.tsx'))).then(_temp3); + }); + } catch (e) { + return Promise.reject(e); + } +}; + +const getConfigFromPkgJson = function (cwd) { + try { + return Promise.resolve(_catch(function () { + return Promise.resolve(readFile(path.resolve(cwd, 'package.json'), 'utf8')).then(function (pkgJSON) { + const pkg = JSON.parse(pkgJSON); + return { + hasPackageJson: true, + pkg + }; + }); + }, function (err) { + const pkgName = path.basename(cwd); + stderr(kleur.yellow(`${kleur.yellow().inverse('WARN')} no package.json found. Assuming a pkg.name of "${pkgName}".`)); + let msg = String(err.message || err); + if (!msg.match(/ENOENT/)) stderr(` ${kleur.red().dim(msg)}`); + return { + hasPackageJson: false, + pkg: { + name: pkgName + } + }; + })); + } catch (e) { + return Promise.reject(e); + } +}; + +const microbundle = function (inputOptions) { + try { + let options = { ...inputOptions + }; + options.cwd = path.resolve(process.cwd(), inputOptions.cwd); + const cwd = options.cwd; + return Promise.resolve(getConfigFromPkgJson(cwd)).then(function ({ + hasPackageJson, + pkg + }) { + options.pkg = pkg; + const { + finalName, + pkgName + } = getName({ + name: options.name, + pkgName: options.pkg.name, + amdName: options.pkg.amdName, + hasPackageJson, + cwd + }); + options.name = finalName; + options.pkg.name = pkgName; + + if (options.sourcemap !== false) { + options.sourcemap = true; + } + + return Promise.resolve(getInput({ + entries: options.entries, + cwd, + source: options.pkg.source, + module: options.pkg.module + })).then(function (_getInput) { + options.input = _getInput; + return Promise.resolve(getOutput({ + cwd, + output: options.output, + pkgMain: options.pkg.main, + pkgName: options.pkg.name + })).then(function (_getOutput) { + options.output = _getOutput; + return Promise.resolve(getEntries({ + cwd, + input: options.input + })).then(function (_getEntries) { + options.entries = _getEntries; + options.multipleEntries = options.entries.length > 1; + options.compress = typeof options.compress !== 'boolean' ? options.compress !== 'false' && options.compress !== '0' : options.compress; + let formats = (options.format || options.formats).split(','); + formats.sort((a, b) => a === 'cjs' ? -1 : a > b ? 1 : 0); + let steps = []; + + for (let i = 0; i < options.entries.length; i++) { + for (let j = 0; j < formats.length; j++) { + steps.push(createConfig(options, options.entries[i], formats[j], i === 0 && j === 0)); + } + } + + if (options.watch) { + const onBuild = options.onBuild; + return new Promise((resolve, reject) => { + stdout(kleur.blue(`Watching source, compiling to ${path.relative(cwd, path.dirname(options.output))}:`)); + steps.map(options => { + rollup.watch(Object.assign({ + output: options.outputOptions, + watch: WATCH_OPTS + }, options.inputOptions)).on('event', e => { + if (e.code === 'FATAL') { + return reject(e.error); + } else if (e.code === 'ERROR') { + logError(e.error); + } + + if (e.code === 'END') { + options._sizeInfo.then(text => { + stdout(`Wrote ${text.trim()}`); + }); + + if (typeof onBuild === 'function') { + onBuild(e); + } + } + }); + }); + }); + } + + let cache; + return Promise.resolve(asyncro.series(steps.map(config => function () { + try { + const { + inputOptions, + outputOptions + } = config; + inputOptions.cache = cache; + return Promise.resolve(rollup.rollup(inputOptions)).then(function (bundle) { + cache = bundle; + return Promise.resolve(bundle.write(outputOptions)).then(function () { + return Promise.resolve(config._sizeInfo); + }); + }); + } catch (e) { + return Promise.reject(e); + } + }))).then(function (out) { + return kleur.blue(`Build "${options.name}" to ${path.relative(cwd, path.dirname(options.output)) || '.'}:`) + '\n ' + out.join('\n '); + }); + }); + }); + }); + }); + } catch (e) { + return Promise.reject(e); + } +}; + +const getSizeInfo = function (code, filename, raw) { + try { + return Promise.resolve(gzipSize(code)).then(function (_gzipSize) { + let _exit = false; + + function _temp2(_result) { + return _exit ? _result : gzip + '\n' + brotli; + } + + const gzip = formatSize(_gzipSize, filename, 'gz', raw || code.length < 5000); + let brotli; + + const _temp = _catch(function () { + return Promise.resolve(brotliSize(code)).then(function (_brotliSize) { + brotli = formatSize(_brotliSize, filename, 'br', raw || code.length < 5000); + }); + }, function () { + _exit = true; + return gzip; + }); + + return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp); + }); + } catch (e) { + return Promise.reject(e); + } +}; + +const removeScope = name => name.replace(/^@.*\//, ''); + +const toReplacementExpression = (value, name) => { + const matches = value.match(/^(['"])(.+)\1$/); + + if (matches) { + return [JSON.stringify(matches[2]), name]; + } + + if (/^(true|false|\d+)$/i.test(value)) { + return [value, name]; + } + + return [JSON.stringify(value), name]; +}; + +function normalizeMinifyOptions(minifyOptions) { + const mangle = minifyOptions.mangle || (minifyOptions.mangle = {}); + let properties = mangle.properties; + + if (minifyOptions.properties != null) { + properties = mangle.properties = minifyOptions.properties && Object.assign(properties, minifyOptions.properties); + } + + if (minifyOptions.regex || minifyOptions.reserved) { + if (!properties) properties = mangle.properties = {}; + properties.regex = properties.regex || minifyOptions.regex; + properties.reserved = properties.reserved || minifyOptions.reserved; + } + + if (properties) { + if (properties.regex) properties.regex = new RegExp(properties.regex); + properties.reserved = [].concat(properties.reserved || []); + } +} + +const parseMappingArgument = (globalStrings, processValue) => { + const globals = {}; + globalStrings.split(',').forEach(globalString => { + let [key, value] = globalString.split('='); + + if (processValue) { + const r = processValue(value, key); + + if (r !== undefined) { + if (Array.isArray(r)) { + [value, key] = r; + } else { + value = r; + } + } + } + + globals[key] = value; + }); + return globals; +}; + +const parseMappingArgumentAlias = aliasStrings => { + return aliasStrings.split(',').map(str => { + let [key, value] = str.split('='); + return { + find: key, + replacement: value + }; + }); +}; + +const EXTENSIONS = ['.ts', '.tsx', '.js', '.jsx', '.es6', '.es', '.mjs', '.jpg', '.png', '.svg']; +const WATCH_OPTS = { + exclude: 'node_modules/**' +}; + +function formatSize(size, filename, type, raw) { + const pretty = raw ? `${size} B` : prettyBytes(size); + const color = size < 5000 ? kleur.green : size > 40000 ? kleur.red : kleur.yellow; + const MAGIC_INDENTATION = type === 'br' ? 13 : 10; + return `${' '.repeat(MAGIC_INDENTATION - pretty.length)}${color(pretty)}: ${kleur.white(path.basename(filename))}.${type}`; +} + +const safeVariableName = name => camelCase(removeScope(name).toLowerCase().replace(/((^[^a-zA-Z]+)|[^\w.-])|([^a-zA-Z0-9]+$)/g, '')); + +function getName({ + name, + pkgName, + amdName, + cwd, + hasPackageJson +}) { + if (!pkgName) { + pkgName = path.basename(cwd); + + if (hasPackageJson) { + stderr(kleur.yellow(`${kleur.yellow().inverse('WARN')} missing package.json "name" field. Assuming "${pkgName}".`)); + } + } + + return { + finalName: name || amdName || safeVariableName(pkgName), + pkgName + }; +} + +const shebang = {}; + +function createConfig(options, entry, format, writeMeta) { + let { + pkg + } = options; + let external = ['dns', 'fs', 'path', 'url'].concat(options.entries.filter(e => e !== entry)); + let outputAliases = {}; + + if (options.multipleEntries) { + outputAliases['.'] = './' + path.basename(options.output); + } + + const moduleAliases = options.alias ? parseMappingArgumentAlias(options.alias) : []; + const peerDeps = Object.keys(pkg.peerDependencies || {}); + + if (options.external === 'none') ; else if (options.external) { + external = external.concat(peerDeps).concat(options.external.split(',')); + } else { + external = external.concat(peerDeps).concat(Object.keys(pkg.dependencies || {})); + } + + let globals = external.reduce((globals, name) => { + if (name.match(/^[a-z_$][a-z0-9_$]*$/)) { + globals[name] = name; + } + + return globals; + }, {}); + + if (options.globals && options.globals !== 'none') { + globals = Object.assign(globals, parseMappingArgument(options.globals)); + } + + let defines = {}; + + if (options.define) { + defines = Object.assign(defines, parseMappingArgument(options.define, toReplacementExpression)); + } + + function replaceName(filename, name) { + return path.resolve(path.dirname(filename), name + path.basename(filename).replace(/^[^.]+/, '')); + } + + let mainNoExtension = options.output; + + if (options.multipleEntries) { + let name = entry.match(/([\\/])index(\.(umd|cjs|es|m))?\.m?js$/) ? mainNoExtension : entry; + mainNoExtension = path.resolve(path.dirname(mainNoExtension), path.basename(name)); + } + + mainNoExtension = mainNoExtension.replace(/(\.(umd|cjs|es|m))?\.m?js$/, ''); + let moduleMain = replaceName(pkg.module && !pkg.module.match(/src\//) ? pkg.module : pkg['jsnext:main'] || 'x.esm.js', mainNoExtension); + let modernMain = replaceName(pkg.syntax && pkg.syntax.esmodules || pkg.esmodule || 'x.modern.js', mainNoExtension); + let cjsMain = replaceName(pkg['cjs:main'] || 'x.js', mainNoExtension); + let umdMain = replaceName(pkg['umd:main'] || 'x.umd.js', mainNoExtension); + const modern = format === 'modern'; + let nameCache = {}; + const bareNameCache = nameCache; + const rawMinifyValue = options.pkg.minify || options.pkg.mangle || {}; + let minifyOptions = typeof rawMinifyValue === 'string' ? {} : rawMinifyValue; + const getNameCachePath = typeof rawMinifyValue === 'string' ? () => path.resolve(options.cwd, rawMinifyValue) : () => path.resolve(options.cwd, 'mangle.json'); + const useTypescript = path.extname(entry) === '.ts' || path.extname(entry) === '.tsx'; + const externalPredicate = new RegExp(`^(${external.join('|')})($|/)`); + const externalTest = external.length === 0 ? id => false : id => externalPredicate.test(id); + + function loadNameCache() { + try { + nameCache = JSON.parse(fs.readFileSync(getNameCachePath(), 'utf8')); + + if (nameCache.minify) { + minifyOptions = Object.assign({}, minifyOptions || {}, nameCache.minify); + } + } catch (e) {} + } + + loadNameCache(); + normalizeMinifyOptions(minifyOptions); + if (nameCache === bareNameCache) nameCache = null; + let config = { + inputOptions: { + input: entry, + external: id => { + if (id === 'babel-plugin-transform-async-to-promises/helpers') { + return false; + } + + if (options.multipleEntries && id === '.') { + return true; + } + + return externalTest(id); + }, + treeshake: { + propertyReadSideEffects: false + }, + plugins: [].concat(postcss({ + plugins: [autoprefixer(), options.compress !== false && cssnano({ + preset: 'default' + }), postcssCopy({ + dest: options.output, + template: 'assets/[hash].[ext][query]' + })].filter(Boolean), + autoModules: shouldCssModules(options), + modules: cssModulesConfig(options), + inject: false, + extract: !!writeMeta + }), moduleAliases.length > 0 && alias({ + resolve: EXTENSIONS, + entries: moduleAliases + }), nodeResolve({ + mainFields: ['module', 'jsnext', 'main'], + browser: options.target !== 'node', + extensions: ['.mjs', '.js', '.jsx', '.json', '.node'] + }), commonjs({ + include: /\/node_modules\// + }), json(), smartAsset({ + url: 'copy', + useHash: true, + keepName: true, + keepImport: true + }), svgr(), { + transform: code => ({ + code: code.replace(/^#![^\n]*/, bang => { + shebang[options.name] = bang; + }), + map: null + }) + }, useTypescript && typescript({ + typescript: require('typescript'), + cacheRoot: `./node_modules/.cache/.rts2_cache_${format}`, + objectHashIgnoreUnknownHack: true, + tsconfigDefaults: { + compilerOptions: { + sourceMap: options.sourcemap, + declaration: true, + jsx: 'react', + jsxFactory: options.jsx || 'React.createElement' + } + }, + tsconfig: options.tsconfig, + tsconfigOverride: { + compilerOptions: { + target: 'esnext' + } + } + }), isTruthy(defines) && babelPlugin({ + babelrc: false, + configFile: false, + compact: false, + include: 'node_modules/**', + plugins: [[require.resolve('babel-plugin-transform-replace-expressions'), { + replace: defines + }]] + }), customBabel()({ + extensions: EXTENSIONS, + exclude: 'node_modules/**', + passPerPreset: true, + custom: { + defines, + modern, + compress: options.compress !== false, + targets: options.target === 'node' ? { + node: '8' + } : undefined, + pragma: options.jsx || 'React.createElement', + pragmaFrag: options.jsxFragment || 'Fragment', + typescript: !!useTypescript + } + }), options.compress !== false && [rollupPluginTerser.terser({ + sourcemap: true, + compress: Object.assign({ + keep_infinity: true, + pure_getters: true, + passes: 10 + }, minifyOptions.compress || {}), + output: { + wrap_func_args: false + }, + warnings: true, + ecma: modern ? 9 : 5, + toplevel: modern || format === 'cjs' || format === 'es', + mangle: Object.assign({}, minifyOptions.mangle || {}), + nameCache + }), nameCache && { + options: loadNameCache, + + writeBundle() { + if (writeMeta && nameCache) { + fs.writeFile(getNameCachePath(), JSON.stringify(nameCache, null, 2), () => {}); + } + } + + }], { + writeBundle(bundle) { + config._sizeInfo = Promise.all(Object.values(bundle).map(({ + code, + fileName + }) => { + if (code) { + return getSizeInfo(code, fileName, options.raw); + } + })).then(results => results.filter(Boolean).join('\n')); + } + + }).filter(Boolean) + }, + outputOptions: { + paths: outputAliases, + globals, + strict: options.strict === true, + legacy: true, + freeze: false, + esModule: false, + sourcemap: options.sourcemap, + + get banner() { + return shebang[options.name]; + }, + + format: modern ? 'es' : format, + name: options.name, + file: path.resolve(options.cwd, { + modern: modernMain, + es: moduleMain, + umd: umdMain + }[format] || cjsMain) + } + }; + return config; +} + +function shouldCssModules(options) { + const passedInOption = processCssmodulesArgument(options); + const moduleAllCss = passedInOption === true; + const allowOnlySuffixModule = passedInOption === null; + return moduleAllCss || allowOnlySuffixModule; +} + +function cssModulesConfig(options) { + const passedInOption = processCssmodulesArgument(options); + const isWatchMode = options.watch; + const hasPassedInScopeName = !(typeof passedInOption === 'boolean' || passedInOption === null); + + if (shouldCssModules(options) || hasPassedInScopeName) { + let generateScopedName = isWatchMode ? '_[name]__[local]__[hash:base64:5]' : '_[hash:base64:5]'; + + if (hasPassedInScopeName) { + generateScopedName = passedInOption; + } + + return { + generateScopedName + }; + } + + return false; +} + +function processCssmodulesArgument(options) { + if (options['css-modules'] === 'true' || options['css-modules'] === true) return true; + if (options['css-modules'] === 'false' || options['css-modules'] === false) return false; + if (options['css-modules'] === 'null' || options['css-modules'] === null) return null; + return options['css-modules']; +} + +module.exports = microbundle; +//# sourceMappingURL=microbundle.js.map diff --git a/dist/microbundle.js.map b/dist/microbundle.js.map new file mode 100644 index 00000000..6c962010 --- /dev/null +++ b/dist/microbundle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"microbundle.js","sources":["../node_modules/babel-plugin-transform-async-to-promises/helpers.js","../src/utils.js","../src/lib/babel-custom.js","../src/log-error.js","../src/index.js"],"sourcesContent":["// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","import fs from 'fs';\nimport { promisify } from 'es6-promisify';\n\nexport const readFile = promisify(fs.readFile);\n// export const writeFile = promisify(fs.writeFile);\nexport const stat = promisify(fs.stat);\nexport const isDir = name =>\n\tstat(name)\n\t\t.then(stats => stats.isDirectory())\n\t\t.catch(() => false);\nexport const isFile = name =>\n\tstat(name)\n\t\t.then(stats => stats.isFile())\n\t\t.catch(() => false);\nexport const stdout = console.log.bind(console); // eslint-disable-line no-console\nexport const stderr = console.error.bind(console);\n\nexport const isTruthy = obj => {\n\tif (!obj) {\n\t\treturn false;\n\t}\n\n\treturn obj.constructor !== Object || Object.keys(obj).length > 0;\n};\n","import { createConfigItem } from '@babel/core';\nimport babelPlugin from 'rollup-plugin-babel';\nimport merge from 'lodash.merge';\nimport { isTruthy } from '../utils';\n\nconst ESMODULES_TARGET = {\n\tesmodules: true,\n};\n\nconst mergeConfigItems = (type, ...configItemsToMerge) => {\n\tconst mergedItems = [];\n\n\tconfigItemsToMerge.forEach(configItemToMerge => {\n\t\tconfigItemToMerge.forEach(item => {\n\t\t\tconst itemToMergeWithIndex = mergedItems.findIndex(\n\t\t\t\tmergedItem => mergedItem.file.resolved === item.file.resolved,\n\t\t\t);\n\n\t\t\tif (itemToMergeWithIndex === -1) {\n\t\t\t\tmergedItems.push(item);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmergedItems[itemToMergeWithIndex] = createConfigItem(\n\t\t\t\t[\n\t\t\t\t\tmergedItems[itemToMergeWithIndex].file.resolved,\n\t\t\t\t\tmerge(mergedItems[itemToMergeWithIndex].options, item.options),\n\t\t\t\t],\n\t\t\t\t{\n\t\t\t\t\ttype,\n\t\t\t\t},\n\t\t\t);\n\t\t});\n\t});\n\n\treturn mergedItems;\n};\n\nconst createConfigItems = (type, items) => {\n\treturn items.map(({ name, ...options }) => {\n\t\treturn createConfigItem([require.resolve(name), options], { type });\n\t});\n};\n\nconst presetEnvRegex = RegExp(/@babel\\/(preset-)?env/);\n\nexport default () => {\n\treturn babelPlugin.custom(babelCore => {\n\t\treturn {\n\t\t\t// Passed the plugin options.\n\t\t\toptions({ custom: customOptions, ...pluginOptions }) {\n\t\t\t\treturn {\n\t\t\t\t\t// Pull out any custom options that the plugin might have.\n\t\t\t\t\tcustomOptions,\n\n\t\t\t\t\t// Pass the options back with the two custom options removed.\n\t\t\t\t\tpluginOptions,\n\t\t\t\t};\n\t\t\t},\n\n\t\t\tconfig(config, { customOptions }) {\n\t\t\t\tconst defaultPlugins = createConfigItems(\n\t\t\t\t\t'plugin',\n\t\t\t\t\t[\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: '@babel/plugin-transform-react-jsx',\n\t\t\t\t\t\t\tpragma: customOptions.pragma || 'h',\n\t\t\t\t\t\t\tpragmaFrag: customOptions.pragmaFrag || 'Fragment',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t!customOptions.typescript && {\n\t\t\t\t\t\t\tname: '@babel/plugin-transform-flow-strip-types',\n\t\t\t\t\t\t},\n\t\t\t\t\t\tisTruthy(customOptions.defines) && {\n\t\t\t\t\t\t\tname: 'babel-plugin-transform-replace-expressions',\n\t\t\t\t\t\t\treplace: customOptions.defines,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t!customOptions.modern && {\n\t\t\t\t\t\t\tname: 'babel-plugin-transform-async-to-promises',\n\t\t\t\t\t\t\tinlineHelpers: true,\n\t\t\t\t\t\t\texternalHelpers: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: '@babel/plugin-proposal-decorators',\n\t\t\t\t\t\t\tlegacy: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: '@babel/plugin-proposal-optional-chaining',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: '@babel/plugin-proposal-class-properties',\n\t\t\t\t\t\t\tloose: true,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t!customOptions.modern && {\n\t\t\t\t\t\t\tname: '@babel/plugin-transform-regenerator',\n\t\t\t\t\t\t\tasync: false,\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: 'babel-plugin-macros',\n\t\t\t\t\t\t},\n\t\t\t\t\t].filter(Boolean),\n\t\t\t\t);\n\n\t\t\t\tconst babelOptions = config.options || {};\n\n\t\t\t\tconst envIdx = (babelOptions.presets || []).findIndex(preset =>\n\t\t\t\t\tpresetEnvRegex.test(preset.file.request),\n\t\t\t\t);\n\n\t\t\t\tconst environmentPreset = customOptions.modern\n\t\t\t\t\t? '@babel/preset-modules'\n\t\t\t\t\t: '@babel/preset-env';\n\n\t\t\t\tif (envIdx !== -1) {\n\t\t\t\t\tconst preset = babelOptions.presets[envIdx];\n\t\t\t\t\tbabelOptions.presets[envIdx] = createConfigItem(\n\t\t\t\t\t\t[\n\t\t\t\t\t\t\tenvironmentPreset,\n\t\t\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t\t\tmerge(\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tloose: true,\n\t\t\t\t\t\t\t\t\t\tuseBuiltIns: false,\n\t\t\t\t\t\t\t\t\t\ttargets: customOptions.targets,\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tpreset.options,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\tmodules: false,\n\t\t\t\t\t\t\t\t\t\texclude: merge(\n\t\t\t\t\t\t\t\t\t\t\t['transform-async-to-generator', 'transform-regenerator'],\n\t\t\t\t\t\t\t\t\t\t\t(preset.options && preset.options.exclude) || [],\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tcustomOptions.modern ? { targets: ESMODULES_TARGET } : {},\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttype: `preset`,\n\t\t\t\t\t\t},\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tbabelOptions.presets = createConfigItems('preset', [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tname: environmentPreset,\n\t\t\t\t\t\t\ttargets: customOptions.modern\n\t\t\t\t\t\t\t\t? ESMODULES_TARGET\n\t\t\t\t\t\t\t\t: customOptions.targets,\n\t\t\t\t\t\t\tmodules: false,\n\t\t\t\t\t\t\tloose: true,\n\t\t\t\t\t\t\tuseBuiltIns: false,\n\t\t\t\t\t\t\texclude: [\n\t\t\t\t\t\t\t\t'transform-async-to-generator',\n\t\t\t\t\t\t\t\t'transform-regenerator',\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t},\n\t\t\t\t\t]);\n\t\t\t\t}\n\n\t\t\t\t// Merge babelrc & our plugins together\n\t\t\t\tbabelOptions.plugins = mergeConfigItems(\n\t\t\t\t\t'plugin',\n\t\t\t\t\tdefaultPlugins,\n\t\t\t\t\tbabelOptions.plugins || [],\n\t\t\t\t);\n\n\t\t\t\tbabelOptions.generatorOpts = {\n\t\t\t\t\tminified: customOptions.compress,\n\t\t\t\t\tcompact: customOptions.compress,\n\t\t\t\t\tshouldPrintComment: comment => /[@#]__PURE__/.test(comment),\n\t\t\t\t};\n\n\t\t\t\treturn babelOptions;\n\t\t\t},\n\t\t};\n\t});\n};\n","import { red, dim } from 'kleur';\nimport { stderr } from './utils';\n\nexport default function(err) {\n\tconst error = err.error || err;\n\tconst description = `${error.name ? error.name + ': ' : ''}${error.message ||\n\t\terror}`;\n\tconst message = error.plugin\n\t\t? `(${error.plugin} plugin) ${description}`\n\t\t: description;\n\n\tstderr(red().bold(message));\n\n\tif (error.loc) {\n\t\tstderr();\n\t\tstderr(`at ${error.loc.file}:${error.loc.line}:${error.loc.column}`);\n\t}\n\n\tif (error.frame) {\n\t\tstderr();\n\t\tstderr(dim(error.frame));\n\t} else if (err.stack) {\n\t\tconst headlessStack = error.stack.replace(message, '');\n\t\tstderr(dim(headlessStack));\n\t}\n\n\tstderr();\n}\n","import fs from 'fs';\nimport { resolve, relative, dirname, basename, extname } from 'path';\nimport { green, red, yellow, white, blue } from 'kleur';\nimport { map, series } from 'asyncro';\nimport glob from 'tiny-glob/sync';\nimport autoprefixer from 'autoprefixer';\nimport cssnano from 'cssnano';\nimport { rollup, watch } from 'rollup';\nimport commonjs from '@rollup/plugin-commonjs';\nimport babel from 'rollup-plugin-babel';\nimport customBabel from './lib/babel-custom';\nimport nodeResolve from '@rollup/plugin-node-resolve';\nimport { terser } from 'rollup-plugin-terser';\nimport alias from '@rollup/plugin-alias';\nimport postcss from 'rollup-plugin-postcss';\nimport postcssCopy from 'postcss-copy';\nimport gzipSize from 'gzip-size';\nimport brotliSize from 'brotli-size';\nimport prettyBytes from 'pretty-bytes';\nimport typescript from 'rollup-plugin-typescript2';\nimport json from '@rollup/plugin-json';\nimport svgr from '@svgr/rollup';\nimport smartAsset from 'rollup-plugin-smart-asset';\nimport logError from './log-error';\nimport { readFile, isDir, isFile, stdout, stderr, isTruthy } from './utils';\nimport camelCase from 'camelcase';\n\nconst removeScope = name => name.replace(/^@.*\\//, '');\n\n// Convert booleans and int define= values to literals.\n// This is more intuitive than `microbundle --define A=1` producing A=\"1\".\nconst toReplacementExpression = (value, name) => {\n\t// --define A=\"1\",B='true' produces string:\n\tconst matches = value.match(/^(['\"])(.+)\\1$/);\n\tif (matches) {\n\t\treturn [JSON.stringify(matches[2]), name];\n\t}\n\n\t// --define A=1,B=true produces int/boolean literal:\n\tif (/^(true|false|\\d+)$/i.test(value)) {\n\t\treturn [value, name];\n\t}\n\n\t// default: string literal\n\treturn [JSON.stringify(value), name];\n};\n\n// Normalize Terser options from microbundle's relaxed JSON format (mutates argument in-place)\nfunction normalizeMinifyOptions(minifyOptions) {\n\tconst mangle = minifyOptions.mangle || (minifyOptions.mangle = {});\n\tlet properties = mangle.properties;\n\n\t// allow top-level \"properties\" key to override mangle.properties (including {properties:false}):\n\tif (minifyOptions.properties != null) {\n\t\tproperties = mangle.properties =\n\t\t\tminifyOptions.properties &&\n\t\t\tObject.assign(properties, minifyOptions.properties);\n\t}\n\n\t// allow previous format ({ mangle:{regex:'^_',reserved:[]} }):\n\tif (minifyOptions.regex || minifyOptions.reserved) {\n\t\tif (!properties) properties = mangle.properties = {};\n\t\tproperties.regex = properties.regex || minifyOptions.regex;\n\t\tproperties.reserved = properties.reserved || minifyOptions.reserved;\n\t}\n\n\tif (properties) {\n\t\tif (properties.regex) properties.regex = new RegExp(properties.regex);\n\t\tproperties.reserved = [].concat(properties.reserved || []);\n\t}\n}\n\n// Parses values of the form \"$=jQuery,React=react\" into key-value object pairs.\nconst parseMappingArgument = (globalStrings, processValue) => {\n\tconst globals = {};\n\tglobalStrings.split(',').forEach(globalString => {\n\t\tlet [key, value] = globalString.split('=');\n\t\tif (processValue) {\n\t\t\tconst r = processValue(value, key);\n\t\t\tif (r !== undefined) {\n\t\t\t\tif (Array.isArray(r)) {\n\t\t\t\t\t[value, key] = r;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = r;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tglobals[key] = value;\n\t});\n\treturn globals;\n};\n\n// Parses values of the form \"$=jQuery,React=react\" into key-value object pairs.\nconst parseMappingArgumentAlias = aliasStrings => {\n\treturn aliasStrings.split(',').map(str => {\n\t\tlet [key, value] = str.split('=');\n\t\treturn { find: key, replacement: value };\n\t});\n};\n\n// Extensions to use when resolving modules\nconst EXTENSIONS = [\n\t'.ts',\n\t'.tsx',\n\t'.js',\n\t'.jsx',\n\t'.es6',\n\t'.es',\n\t'.mjs',\n\t'.jpg',\n\t'.png',\n\t'.svg',\n];\n\nconst WATCH_OPTS = {\n\texclude: 'node_modules/**',\n};\n\n// Hoist function because something (rollup?) incorrectly removes it\nfunction formatSize(size, filename, type, raw) {\n\tconst pretty = raw ? `${size} B` : prettyBytes(size);\n\tconst color = size < 5000 ? green : size > 40000 ? red : yellow;\n\tconst MAGIC_INDENTATION = type === 'br' ? 13 : 10;\n\treturn `${' '.repeat(MAGIC_INDENTATION - pretty.length)}${color(\n\t\tpretty,\n\t)}: ${white(basename(filename))}.${type}`;\n}\n\nasync function getSizeInfo(code, filename, raw) {\n\tconst gzip = formatSize(\n\t\tawait gzipSize(code),\n\t\tfilename,\n\t\t'gz',\n\t\traw || code.length < 5000,\n\t);\n\tlet brotli;\n\t//wrap brotliSize in try/catch in case brotli is unavailable due to\n\t//lower node version\n\ttry {\n\t\tbrotli = formatSize(\n\t\t\tawait brotliSize(code),\n\t\t\tfilename,\n\t\t\t'br',\n\t\t\traw || code.length < 5000,\n\t\t);\n\t} catch (e) {\n\t\treturn gzip;\n\t}\n\treturn gzip + '\\n' + brotli;\n}\n\nexport default async function microbundle(inputOptions) {\n\tlet options = { ...inputOptions };\n\n\toptions.cwd = resolve(process.cwd(), inputOptions.cwd);\n\tconst cwd = options.cwd;\n\n\tconst { hasPackageJson, pkg } = await getConfigFromPkgJson(cwd);\n\toptions.pkg = pkg;\n\n\tconst { finalName, pkgName } = getName({\n\t\tname: options.name,\n\t\tpkgName: options.pkg.name,\n\t\tamdName: options.pkg.amdName,\n\t\thasPackageJson,\n\t\tcwd,\n\t});\n\n\toptions.name = finalName;\n\toptions.pkg.name = pkgName;\n\n\tif (options.sourcemap !== false) {\n\t\toptions.sourcemap = true;\n\t}\n\n\toptions.input = await getInput({\n\t\tentries: options.entries,\n\t\tcwd,\n\t\tsource: options.pkg.source,\n\t\tmodule: options.pkg.module,\n\t});\n\n\toptions.output = await getOutput({\n\t\tcwd,\n\t\toutput: options.output,\n\t\tpkgMain: options.pkg.main,\n\t\tpkgName: options.pkg.name,\n\t});\n\n\toptions.entries = await getEntries({\n\t\tcwd,\n\t\tinput: options.input,\n\t});\n\n\toptions.multipleEntries = options.entries.length > 1;\n\n\t// to disable compress you can put in false or 0 but it's a string so our boolean checks won't work\n\toptions.compress =\n\t\ttypeof options.compress !== 'boolean'\n\t\t\t? options.compress !== 'false' && options.compress !== '0'\n\t\t\t: options.compress;\n\n\tlet formats = (options.format || options.formats).split(',');\n\t// always compile cjs first if it's there:\n\tformats.sort((a, b) => (a === 'cjs' ? -1 : a > b ? 1 : 0));\n\n\tlet steps = [];\n\tfor (let i = 0; i < options.entries.length; i++) {\n\t\tfor (let j = 0; j < formats.length; j++) {\n\t\t\tsteps.push(\n\t\t\t\tcreateConfig(\n\t\t\t\t\toptions,\n\t\t\t\t\toptions.entries[i],\n\t\t\t\t\tformats[j],\n\t\t\t\t\ti === 0 && j === 0,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\tif (options.watch) {\n\t\tconst onBuild = options.onBuild;\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tstdout(\n\t\t\t\tblue(\n\t\t\t\t\t`Watching source, compiling to ${relative(\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tdirname(options.output),\n\t\t\t\t\t)}:`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tsteps.map(options => {\n\t\t\t\twatch(\n\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\toutput: options.outputOptions,\n\t\t\t\t\t\t\twatch: WATCH_OPTS,\n\t\t\t\t\t\t},\n\t\t\t\t\t\toptions.inputOptions,\n\t\t\t\t\t),\n\t\t\t\t).on('event', e => {\n\t\t\t\t\tif (e.code === 'FATAL') {\n\t\t\t\t\t\treturn reject(e.error);\n\t\t\t\t\t} else if (e.code === 'ERROR') {\n\t\t\t\t\t\tlogError(e.error);\n\t\t\t\t\t}\n\t\t\t\t\tif (e.code === 'END') {\n\t\t\t\t\t\toptions._sizeInfo.then(text => {\n\t\t\t\t\t\t\tstdout(`Wrote ${text.trim()}`);\n\t\t\t\t\t\t});\n\t\t\t\t\t\tif (typeof onBuild === 'function') {\n\t\t\t\t\t\t\tonBuild(e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tlet cache;\n\tlet out = await series(\n\t\tsteps.map(config => async () => {\n\t\t\tconst { inputOptions, outputOptions } = config;\n\t\t\tinputOptions.cache = cache;\n\t\t\tlet bundle = await rollup(inputOptions);\n\t\t\tcache = bundle;\n\t\t\tawait bundle.write(outputOptions);\n\t\t\treturn await config._sizeInfo;\n\t\t}),\n\t);\n\n\treturn (\n\t\tblue(\n\t\t\t`Build \"${options.name}\" to ${relative(cwd, dirname(options.output)) ||\n\t\t\t\t'.'}:`,\n\t\t) +\n\t\t'\\n ' +\n\t\tout.join('\\n ')\n\t);\n}\n\nasync function getConfigFromPkgJson(cwd) {\n\ttry {\n\t\tconst pkgJSON = await readFile(resolve(cwd, 'package.json'), 'utf8');\n\t\tconst pkg = JSON.parse(pkgJSON);\n\n\t\treturn {\n\t\t\thasPackageJson: true,\n\t\t\tpkg,\n\t\t};\n\t} catch (err) {\n\t\tconst pkgName = basename(cwd);\n\n\t\tstderr(\n\t\t\t// `Warn ${yellow(`no package.json found. Assuming a pkg.name of \"${pkgName}\".`)}`\n\t\t\tyellow(\n\t\t\t\t`${yellow().inverse(\n\t\t\t\t\t'WARN',\n\t\t\t\t)} no package.json found. Assuming a pkg.name of \"${pkgName}\".`,\n\t\t\t),\n\t\t);\n\n\t\tlet msg = String(err.message || err);\n\t\tif (!msg.match(/ENOENT/)) stderr(` ${red().dim(msg)}`);\n\n\t\treturn { hasPackageJson: false, pkg: { name: pkgName } };\n\t}\n}\n\nconst safeVariableName = name =>\n\tcamelCase(\n\t\tremoveScope(name)\n\t\t\t.toLowerCase()\n\t\t\t.replace(/((^[^a-zA-Z]+)|[^\\w.-])|([^a-zA-Z0-9]+$)/g, ''),\n\t);\n\nfunction getName({ name, pkgName, amdName, cwd, hasPackageJson }) {\n\tif (!pkgName) {\n\t\tpkgName = basename(cwd);\n\t\tif (hasPackageJson) {\n\t\t\tstderr(\n\t\t\t\tyellow(\n\t\t\t\t\t`${yellow().inverse(\n\t\t\t\t\t\t'WARN',\n\t\t\t\t\t)} missing package.json \"name\" field. Assuming \"${pkgName}\".`,\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\t}\n\n\treturn { finalName: name || amdName || safeVariableName(pkgName), pkgName };\n}\n\nasync function jsOrTs(cwd, filename) {\n\tconst extension = (await isFile(resolve(cwd, filename + '.ts')))\n\t\t? '.ts'\n\t\t: (await isFile(resolve(cwd, filename + '.tsx')))\n\t\t? '.tsx'\n\t\t: '.js';\n\n\treturn resolve(cwd, `${filename}${extension}`);\n}\n\nasync function getInput({ entries, cwd, source, module }) {\n\tconst input = [];\n\n\t[]\n\t\t.concat(\n\t\t\tentries && entries.length\n\t\t\t\t? entries\n\t\t\t\t: (source &&\n\t\t\t\t\t\t(Array.isArray(source) ? source : [source]).map(file =>\n\t\t\t\t\t\t\tresolve(cwd, file),\n\t\t\t\t\t\t)) ||\n\t\t\t\t\t\t((await isDir(resolve(cwd, 'src'))) &&\n\t\t\t\t\t\t\t(await jsOrTs(cwd, 'src/index'))) ||\n\t\t\t\t\t\t(await jsOrTs(cwd, 'index')) ||\n\t\t\t\t\t\tmodule,\n\t\t)\n\t\t.map(file => glob(file))\n\t\t.forEach(file => input.push(...file));\n\n\treturn input;\n}\n\nasync function getOutput({ cwd, output, pkgMain, pkgName }) {\n\tlet main = resolve(cwd, output || pkgMain || 'dist');\n\tif (!main.match(/\\.[a-z]+$/) || (await isDir(main))) {\n\t\tmain = resolve(main, `${removeScope(pkgName)}.js`);\n\t}\n\treturn main;\n}\n\nasync function getEntries({ input, cwd }) {\n\tlet entries = (\n\t\tawait map([].concat(input), async file => {\n\t\t\tfile = resolve(cwd, file);\n\t\t\tif (await isDir(file)) {\n\t\t\t\tfile = resolve(file, 'index.js');\n\t\t\t}\n\t\t\treturn file;\n\t\t})\n\t).filter((item, i, arr) => arr.indexOf(item) === i);\n\treturn entries;\n}\n\n// shebang cache map because the transform only gets run once\nconst shebang = {};\n\nfunction createConfig(options, entry, format, writeMeta) {\n\tlet { pkg } = options;\n\n\tlet external = ['dns', 'fs', 'path', 'url'].concat(\n\t\toptions.entries.filter(e => e !== entry),\n\t);\n\n\tlet outputAliases = {};\n\t// since we transform src/index.js, we need to rename imports for it:\n\tif (options.multipleEntries) {\n\t\toutputAliases['.'] = './' + basename(options.output);\n\t}\n\n\tconst moduleAliases = options.alias\n\t\t? parseMappingArgumentAlias(options.alias)\n\t\t: [];\n\n\tconst peerDeps = Object.keys(pkg.peerDependencies || {});\n\tif (options.external === 'none') {\n\t\t// bundle everything (external=[])\n\t} else if (options.external) {\n\t\texternal = external.concat(peerDeps).concat(options.external.split(','));\n\t} else {\n\t\texternal = external\n\t\t\t.concat(peerDeps)\n\t\t\t.concat(Object.keys(pkg.dependencies || {}));\n\t}\n\n\tlet globals = external.reduce((globals, name) => {\n\t\t// valid JS identifiers are usually library globals:\n\t\tif (name.match(/^[a-z_$][a-z0-9_$]*$/)) {\n\t\t\tglobals[name] = name;\n\t\t}\n\t\treturn globals;\n\t}, {});\n\tif (options.globals && options.globals !== 'none') {\n\t\tglobals = Object.assign(globals, parseMappingArgument(options.globals));\n\t}\n\n\tlet defines = {};\n\tif (options.define) {\n\t\tdefines = Object.assign(\n\t\t\tdefines,\n\t\t\tparseMappingArgument(options.define, toReplacementExpression),\n\t\t);\n\t}\n\n\tfunction replaceName(filename, name) {\n\t\treturn resolve(\n\t\t\tdirname(filename),\n\t\t\tname + basename(filename).replace(/^[^.]+/, ''),\n\t\t);\n\t}\n\n\tlet mainNoExtension = options.output;\n\tif (options.multipleEntries) {\n\t\tlet name = entry.match(/([\\\\/])index(\\.(umd|cjs|es|m))?\\.m?js$/)\n\t\t\t? mainNoExtension\n\t\t\t: entry;\n\t\tmainNoExtension = resolve(dirname(mainNoExtension), basename(name));\n\t}\n\tmainNoExtension = mainNoExtension.replace(/(\\.(umd|cjs|es|m))?\\.m?js$/, '');\n\n\tlet moduleMain = replaceName(\n\t\tpkg.module && !pkg.module.match(/src\\//)\n\t\t\t? pkg.module\n\t\t\t: pkg['jsnext:main'] || 'x.esm.js',\n\t\tmainNoExtension,\n\t);\n\tlet modernMain = replaceName(\n\t\t(pkg.syntax && pkg.syntax.esmodules) || pkg.esmodule || 'x.modern.js',\n\t\tmainNoExtension,\n\t);\n\tlet cjsMain = replaceName(pkg['cjs:main'] || 'x.js', mainNoExtension);\n\tlet umdMain = replaceName(pkg['umd:main'] || 'x.umd.js', mainNoExtension);\n\n\tconst modern = format === 'modern';\n\n\t// let rollupName = safeVariableName(basename(entry).replace(/\\.js$/, ''));\n\n\tlet nameCache = {};\n\tconst bareNameCache = nameCache;\n\t// Support \"minify\" field and legacy \"mangle\" field via package.json:\n\tconst rawMinifyValue = options.pkg.minify || options.pkg.mangle || {};\n\tlet minifyOptions = typeof rawMinifyValue === 'string' ? {} : rawMinifyValue;\n\tconst getNameCachePath =\n\t\ttypeof rawMinifyValue === 'string'\n\t\t\t? () => resolve(options.cwd, rawMinifyValue)\n\t\t\t: () => resolve(options.cwd, 'mangle.json');\n\n\tconst useTypescript = extname(entry) === '.ts' || extname(entry) === '.tsx';\n\n\tconst externalPredicate = new RegExp(`^(${external.join('|')})($|/)`);\n\tconst externalTest =\n\t\texternal.length === 0 ? id => false : id => externalPredicate.test(id);\n\n\tfunction loadNameCache() {\n\t\ttry {\n\t\t\tnameCache = JSON.parse(fs.readFileSync(getNameCachePath(), 'utf8'));\n\t\t\t// mangle.json can contain a \"minify\" field, same format as the pkg.mangle:\n\t\t\tif (nameCache.minify) {\n\t\t\t\tminifyOptions = Object.assign(\n\t\t\t\t\t{},\n\t\t\t\t\tminifyOptions || {},\n\t\t\t\t\tnameCache.minify,\n\t\t\t\t);\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\tloadNameCache();\n\n\tnormalizeMinifyOptions(minifyOptions);\n\n\tif (nameCache === bareNameCache) nameCache = null;\n\n\tlet config = {\n\t\tinputOptions: {\n\t\t\tinput: entry,\n\t\t\texternal: id => {\n\t\t\t\tif (id === 'babel-plugin-transform-async-to-promises/helpers') {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tif (options.multipleEntries && id === '.') {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\treturn externalTest(id);\n\t\t\t},\n\t\t\ttreeshake: {\n\t\t\t\tpropertyReadSideEffects: false,\n\t\t\t},\n\t\t\tplugins: []\n\t\t\t\t.concat(\n\t\t\t\t\tpostcss({\n\t\t\t\t\t\tplugins: [\n\t\t\t\t\t\t\tautoprefixer(),\n\t\t\t\t\t\t\toptions.compress !== false &&\n\t\t\t\t\t\t\t\tcssnano({\n\t\t\t\t\t\t\t\t\tpreset: 'default',\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tpostcssCopy({\n\t\t\t\t\t\t\t\tdest: options.output,\n\t\t\t\t\t\t\t\ttemplate: 'assets/[hash].[ext][query]',\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t].filter(Boolean),\n\t\t\t\t\t\tautoModules: shouldCssModules(options),\n\t\t\t\t\t\tmodules: cssModulesConfig(options),\n\t\t\t\t\t\t// only write out CSS for the first bundle (avoids pointless extra files):\n\t\t\t\t\t\tinject: false,\n\t\t\t\t\t\textract: !!writeMeta,\n\t\t\t\t\t}),\n\t\t\t\t\tmoduleAliases.length > 0 &&\n\t\t\t\t\t\talias({\n\t\t\t\t\t\t\tresolve: EXTENSIONS,\n\t\t\t\t\t\t\tentries: moduleAliases,\n\t\t\t\t\t\t}),\n\t\t\t\t\tnodeResolve({\n\t\t\t\t\t\tmainFields: ['module', 'jsnext', 'main'],\n\t\t\t\t\t\tbrowser: options.target !== 'node',\n\t\t\t\t\t\t// defaults + .jsx\n\t\t\t\t\t\textensions: ['.mjs', '.js', '.jsx', '.json', '.node'],\n\t\t\t\t\t}),\n\t\t\t\t\tcommonjs({\n\t\t\t\t\t\t// use a regex to make sure to include eventual hoisted packages\n\t\t\t\t\t\tinclude: /\\/node_modules\\//,\n\t\t\t\t\t}),\n\t\t\t\t\tjson(),\n\t\t\t\t\tsmartAsset({\n\t\t\t\t\t\turl: 'copy',\n\t\t\t\t\t\tuseHash: true,\n\t\t\t\t\t\tkeepName: true,\n\t\t\t\t\t\tkeepImport: true,\n\t\t\t\t\t}),\n\t\t\t\t\tsvgr(),\n\t\t\t\t\t{\n\t\t\t\t\t\t// We have to remove shebang so it doesn't end up in the middle of the code somewhere\n\t\t\t\t\t\ttransform: code => ({\n\t\t\t\t\t\t\tcode: code.replace(/^#![^\\n]*/, bang => {\n\t\t\t\t\t\t\t\tshebang[options.name] = bang;\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\tmap: null,\n\t\t\t\t\t\t}),\n\t\t\t\t\t},\n\t\t\t\t\tuseTypescript &&\n\t\t\t\t\t\ttypescript({\n\t\t\t\t\t\t\ttypescript: require('typescript'),\n\t\t\t\t\t\t\tcacheRoot: `./node_modules/.cache/.rts2_cache_${format}`,\n\t\t\t\t\t\t\tobjectHashIgnoreUnknownHack: true,\n\t\t\t\t\t\t\ttsconfigDefaults: {\n\t\t\t\t\t\t\t\tcompilerOptions: {\n\t\t\t\t\t\t\t\t\tsourceMap: options.sourcemap,\n\t\t\t\t\t\t\t\t\tdeclaration: true,\n\t\t\t\t\t\t\t\t\tjsx: 'react',\n\t\t\t\t\t\t\t\t\tjsxFactory: options.jsx || 'React.createElement',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\ttsconfig: options.tsconfig,\n\t\t\t\t\t\t\ttsconfigOverride: {\n\t\t\t\t\t\t\t\tcompilerOptions: {\n\t\t\t\t\t\t\t\t\ttarget: 'esnext',\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t}),\n\t\t\t\t\t// if defines is not set, we shouldn't run babel through node_modules\n\t\t\t\t\tisTruthy(defines) &&\n\t\t\t\t\t\tbabel({\n\t\t\t\t\t\t\tbabelrc: false,\n\t\t\t\t\t\t\tconfigFile: false,\n\t\t\t\t\t\t\tcompact: false,\n\t\t\t\t\t\t\tinclude: 'node_modules/**',\n\t\t\t\t\t\t\tplugins: [\n\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\trequire.resolve('babel-plugin-transform-replace-expressions'),\n\t\t\t\t\t\t\t\t\t{ replace: defines },\n\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t],\n\t\t\t\t\t\t}),\n\t\t\t\t\tcustomBabel()({\n\t\t\t\t\t\textensions: EXTENSIONS,\n\t\t\t\t\t\texclude: 'node_modules/**',\n\t\t\t\t\t\tpassPerPreset: true, // @see https://babeljs.io/docs/en/options#passperpreset\n\t\t\t\t\t\tcustom: {\n\t\t\t\t\t\t\tdefines,\n\t\t\t\t\t\t\tmodern,\n\t\t\t\t\t\t\tcompress: options.compress !== false,\n\t\t\t\t\t\t\ttargets: options.target === 'node' ? { node: '8' } : undefined,\n\t\t\t\t\t\t\tpragma: options.jsx || 'React.createElement',\n\t\t\t\t\t\t\tpragmaFrag: options.jsxFragment || 'Fragment',\n\t\t\t\t\t\t\ttypescript: !!useTypescript,\n\t\t\t\t\t\t},\n\t\t\t\t\t}),\n\t\t\t\t\toptions.compress !== false && [\n\t\t\t\t\t\tterser({\n\t\t\t\t\t\t\tsourcemap: true,\n\t\t\t\t\t\t\tcompress: Object.assign(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tkeep_infinity: true,\n\t\t\t\t\t\t\t\t\tpure_getters: true,\n\t\t\t\t\t\t\t\t\t// Ideally we'd just get Terser to respect existing Arrow functions...\n\t\t\t\t\t\t\t\t\t// unsafe_arrows: true,\n\t\t\t\t\t\t\t\t\tpasses: 10,\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\tminifyOptions.compress || {},\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\toutput: {\n\t\t\t\t\t\t\t\t// By default, Terser wraps function arguments in extra parens to trigger eager parsing.\n\t\t\t\t\t\t\t\t// Whether this is a good idea is way too specific to guess, so we optimize for size by default:\n\t\t\t\t\t\t\t\twrap_func_args: false,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\twarnings: true,\n\t\t\t\t\t\t\tecma: modern ? 9 : 5,\n\t\t\t\t\t\t\ttoplevel: modern || format === 'cjs' || format === 'es',\n\t\t\t\t\t\t\tmangle: Object.assign({}, minifyOptions.mangle || {}),\n\t\t\t\t\t\t\tnameCache,\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tnameCache && {\n\t\t\t\t\t\t\t// before hook\n\t\t\t\t\t\t\toptions: loadNameCache,\n\t\t\t\t\t\t\t// after hook\n\t\t\t\t\t\t\twriteBundle() {\n\t\t\t\t\t\t\t\tif (writeMeta && nameCache) {\n\t\t\t\t\t\t\t\t\tfs.writeFile(\n\t\t\t\t\t\t\t\t\t\tgetNameCachePath(),\n\t\t\t\t\t\t\t\t\t\tJSON.stringify(nameCache, null, 2),\n\t\t\t\t\t\t\t\t\t\t() => {},\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t\t{\n\t\t\t\t\t\twriteBundle(bundle) {\n\t\t\t\t\t\t\tconfig._sizeInfo = Promise.all(\n\t\t\t\t\t\t\t\tObject.values(bundle).map(({ code, fileName }) => {\n\t\t\t\t\t\t\t\t\tif (code) {\n\t\t\t\t\t\t\t\t\t\treturn getSizeInfo(code, fileName, options.raw);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t).then(results => results.filter(Boolean).join('\\n'));\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t)\n\t\t\t\t.filter(Boolean),\n\t\t},\n\n\t\toutputOptions: {\n\t\t\tpaths: outputAliases,\n\t\t\tglobals,\n\t\t\tstrict: options.strict === true,\n\t\t\tlegacy: true,\n\t\t\tfreeze: false,\n\t\t\tesModule: false,\n\t\t\tsourcemap: options.sourcemap,\n\t\t\tget banner() {\n\t\t\t\treturn shebang[options.name];\n\t\t\t},\n\t\t\tformat: modern ? 'es' : format,\n\t\t\tname: options.name,\n\t\t\tfile: resolve(\n\t\t\t\toptions.cwd,\n\t\t\t\t{\n\t\t\t\t\tmodern: modernMain,\n\t\t\t\t\tes: moduleMain,\n\t\t\t\t\tumd: umdMain,\n\t\t\t\t}[format] || cjsMain,\n\t\t\t),\n\t\t},\n\t};\n\n\treturn config;\n}\n\nfunction shouldCssModules(options) {\n\tconst passedInOption = processCssmodulesArgument(options);\n\n\t// We should module when my-file.module.css or my-file.css\n\tconst moduleAllCss = passedInOption === true;\n\n\t// We should module when my-file.module.css\n\tconst allowOnlySuffixModule = passedInOption === null;\n\n\treturn moduleAllCss || allowOnlySuffixModule;\n}\n\nfunction cssModulesConfig(options) {\n\tconst passedInOption = processCssmodulesArgument(options);\n\tconst isWatchMode = options.watch;\n\tconst hasPassedInScopeName = !(\n\t\ttypeof passedInOption === 'boolean' || passedInOption === null\n\t);\n\n\tif (shouldCssModules(options) || hasPassedInScopeName) {\n\t\tlet generateScopedName = isWatchMode\n\t\t\t? '_[name]__[local]__[hash:base64:5]'\n\t\t\t: '_[hash:base64:5]';\n\n\t\tif (hasPassedInScopeName) {\n\t\t\tgenerateScopedName = passedInOption; // would be the string from --css-modules \"_[hash]\".\n\t\t}\n\n\t\treturn { generateScopedName };\n\t}\n\n\treturn false;\n}\n\n/*\nThis is done becuase if you use the cli default property, you get a primiatve \"null\" or \"false\",\nbut when using the cli arguments, you always get back strings. This method aims at correcting those\nfor both realms. So that both realms _convert_ into primatives.\n*/\nfunction processCssmodulesArgument(options) {\n\tif (options['css-modules'] === 'true' || options['css-modules'] === true)\n\t\treturn true;\n\tif (options['css-modules'] === 'false' || options['css-modules'] === false)\n\t\treturn false;\n\tif (options['css-modules'] === 'null' || options['css-modules'] === null)\n\t\treturn null;\n\n\treturn options['css-modules'];\n}\n"],"names":["readFile","promisify","fs","stat","isDir","name","then","stats","isDirectory","catch","isFile","stdout","console","log","bind","stderr","error","isTruthy","obj","constructor","Object","keys","length","ESMODULES_TARGET","esmodules","mergeConfigItems","type","configItemsToMerge","mergedItems","forEach","configItemToMerge","item","itemToMergeWithIndex","findIndex","mergedItem","file","resolved","push","createConfigItem","merge","options","createConfigItems","items","map","require","resolve","presetEnvRegex","RegExp","babelPlugin","custom","babelCore","customOptions","pluginOptions","config","defaultPlugins","pragma","pragmaFrag","typescript","defines","replace","modern","inlineHelpers","externalHelpers","legacy","loose","async","filter","Boolean","babelOptions","envIdx","presets","preset","test","request","environmentPreset","assign","useBuiltIns","targets","modules","exclude","plugins","generatorOpts","minified","compress","compact","shouldPrintComment","comment","err","description","message","plugin","red","bold","loc","line","column","frame","dim","stack","headlessStack","getEntries","input","cwd","concat","entries","i","arr","indexOf","getOutput","output","pkgMain","pkgName","main","removeScope","match","getInput","source","module","glob","jsOrTs","Array","isArray","filename","extension","getConfigFromPkgJson","pkgJSON","pkg","JSON","parse","hasPackageJson","basename","yellow","inverse","msg","String","microbundle","inputOptions","process","finalName","getName","amdName","sourcemap","multipleEntries","formats","format","split","sort","a","b","steps","j","createConfig","watch","onBuild","Promise","reject","blue","relative","dirname","outputOptions","WATCH_OPTS","on","e","code","logError","_sizeInfo","text","trim","cache","series","rollup","bundle","write","out","join","getSizeInfo","raw","gzipSize","gzip","brotli","formatSize","brotliSize","toReplacementExpression","value","matches","stringify","normalizeMinifyOptions","minifyOptions","mangle","properties","regex","reserved","parseMappingArgument","globalStrings","processValue","globals","globalString","key","r","undefined","parseMappingArgumentAlias","aliasStrings","str","find","replacement","EXTENSIONS","size","pretty","prettyBytes","color","green","MAGIC_INDENTATION","repeat","white","safeVariableName","camelCase","toLowerCase","shebang","entry","writeMeta","external","outputAliases","moduleAliases","alias","peerDeps","peerDependencies","dependencies","reduce","define","replaceName","mainNoExtension","moduleMain","modernMain","syntax","esmodule","cjsMain","umdMain","nameCache","bareNameCache","rawMinifyValue","minify","getNameCachePath","useTypescript","extname","externalPredicate","externalTest","id","loadNameCache","readFileSync","treeshake","propertyReadSideEffects","postcss","autoprefixer","cssnano","postcssCopy","dest","template","autoModules","shouldCssModules","cssModulesConfig","inject","extract","nodeResolve","mainFields","browser","target","extensions","commonjs","include","json","smartAsset","url","useHash","keepName","keepImport","svgr","transform","bang","cacheRoot","objectHashIgnoreUnknownHack","tsconfigDefaults","compilerOptions","sourceMap","declaration","jsx","jsxFactory","tsconfig","tsconfigOverride","babel","babelrc","configFile","customBabel","passPerPreset","node","jsxFragment","terser","keep_infinity","pure_getters","passes","wrap_func_args","warnings","ecma","toplevel","writeBundle","writeFile","all","values","fileName","results","paths","strict","freeze","esModule","banner","es","umd","passedInOption","processCssmodulesArgument","moduleAllCss","allowOnlySuffixModule","isWatchMode","hasPassedInScopeName","generateScopedName"],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index feaf9e87..7b64b565 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "microbundle-crl", - "version": "0.13.9", + "version": "0.13.11", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -392,7 +392,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz", "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==", - "dev": true, "requires": { "@babel/helper-create-class-features-plugin": "^7.8.3", "@babel/helper-plugin-utils": "^7.8.3", @@ -665,7 +664,6 @@ "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz", "integrity": "sha512-8Hg4dNNT9/LcA1zQlfwuKR8BUc/if7Q7NkTam9sGTcJphLwpf2g4S42uhspQrIrR+dpzE0dtTqBVFoHl8GtnnQ==", - "dev": true, "requires": { "@babel/helper-plugin-utils": "^7.8.3" } @@ -3030,14 +3028,12 @@ "arr-diff": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" }, "arr-union": { "version": "3.1.0", @@ -3064,8 +3060,7 @@ "array-unique": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" }, "asn1": { "version": "0.2.4", @@ -3085,8 +3080,7 @@ "assign-symbols": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" }, "astral-regex": { "version": "1.0.0", @@ -3121,8 +3115,7 @@ "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==" }, "autoprefixer": { "version": "9.7.5", @@ -3440,7 +3433,6 @@ "version": "0.11.2", "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, "requires": { "cache-base": "^1.0.1", "class-utils": "^0.3.5", @@ -3455,7 +3447,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -3464,7 +3455,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3473,7 +3463,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -3482,7 +3471,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -3541,7 +3529,6 @@ "version": "2.3.2", "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, "requires": { "arr-flatten": "^1.1.0", "array-unique": "^0.3.2", @@ -3559,7 +3546,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -3631,7 +3617,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, "requires": { "collection-visit": "^1.0.0", "component-emitter": "^1.2.1", @@ -3761,7 +3746,6 @@ "version": "0.3.6", "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "define-property": "^0.2.5", @@ -3773,7 +3757,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -3941,7 +3924,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, "requires": { "map-visit": "^1.0.0", "object-visit": "^1.0.0" @@ -4006,8 +3988,7 @@ "component-emitter": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" }, "concat-map": { "version": "0.0.1", @@ -4041,8 +4022,7 @@ "copy-descriptor": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" }, "core-js": { "version": "3.6.4", @@ -4498,8 +4478,7 @@ "decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, "dedent": { "version": "0.7.0", @@ -4525,7 +4504,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, "requires": { "is-descriptor": "^1.0.2", "isobject": "^3.0.1" @@ -4535,7 +4513,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -4544,7 +4521,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -4553,7 +4529,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -5062,7 +5037,6 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, "requires": { "debug": "^2.3.3", "define-property": "^0.2.5", @@ -5077,7 +5051,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -5086,7 +5059,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -5095,7 +5067,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -5103,8 +5074,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -5132,7 +5102,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, "requires": { "assign-symbols": "^1.0.0", "is-extendable": "^1.0.1" @@ -5142,7 +5111,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -5164,7 +5132,6 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, "requires": { "array-unique": "^0.3.2", "define-property": "^1.0.0", @@ -5180,7 +5147,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -5189,7 +5155,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -5198,7 +5163,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5207,7 +5171,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -5216,7 +5179,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -5303,7 +5265,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-number": "^3.0.0", @@ -5315,7 +5276,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -5417,7 +5377,6 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, "requires": { "map-cache": "^0.2.2" } @@ -6115,8 +6074,7 @@ "get-value": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" }, "getpass": { "version": "0.1.7", @@ -6245,7 +6203,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, "requires": { "get-value": "^2.0.6", "has-values": "^1.0.0", @@ -6256,7 +6213,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, "requires": { "is-number": "^3.0.0", "kind-of": "^4.0.0" @@ -6266,7 +6222,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -6669,7 +6624,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -6678,7 +6632,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -6736,7 +6689,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -6745,7 +6697,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -6761,7 +6712,6 @@ "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, "requires": { "is-accessor-descriptor": "^0.1.6", "is-data-descriptor": "^0.1.4", @@ -6771,8 +6721,7 @@ "kind-of": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" } } }, @@ -6822,7 +6771,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -6831,7 +6779,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -6930,8 +6877,7 @@ "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" }, "is-wsl": { "version": "1.1.0", @@ -6942,8 +6888,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isexe": { "version": "2.0.0", @@ -7671,8 +7616,7 @@ "kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" }, "kleur": { "version": "3.0.3", @@ -8306,14 +8250,12 @@ "map-cache": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" }, "map-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, "requires": { "object-visit": "^1.0.0" } @@ -8420,7 +8362,6 @@ "version": "3.1.10", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -8481,7 +8422,6 @@ "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, "requires": { "for-in": "^1.0.2", "is-extendable": "^1.0.1" @@ -8491,7 +8431,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, "requires": { "is-plain-object": "^2.0.4" } @@ -8554,7 +8493,6 @@ "version": "1.2.13", "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, "requires": { "arr-diff": "^4.0.0", "array-unique": "^0.3.2", @@ -9157,7 +9095,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, "requires": { "copy-descriptor": "^0.1.0", "define-property": "^0.2.5", @@ -9168,7 +9105,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -9177,7 +9113,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -9198,7 +9133,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, "requires": { "isobject": "^3.0.0" } @@ -9251,7 +9185,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, "requires": { "isobject": "^3.0.1" } @@ -9398,8 +9331,7 @@ "pascalcase": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" }, "path-dirname": { "version": "1.0.2", @@ -9540,8 +9472,7 @@ "posix-character-classes": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { "version": "7.0.27", @@ -9613,6 +9544,45 @@ } } }, + "postcss-copy": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-copy/-/postcss-copy-7.1.0.tgz", + "integrity": "sha512-O3oGdW1pzEo2hvnKCFk1j4SYlfoeYELVFxJBP5ib/iAPqujJTumDRcxOtMucmpZNWfn5zqh8Hr4kiZUHtoEtUg==", + "requires": { + "micromatch": "^3.0.3", + "mkdirp": "^0.5.1", + "pify": "^3.0.0", + "postcss": "^6.0.3", + "postcss-value-parser": "^3.3.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", + "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, "postcss-discard-comments": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", @@ -10446,7 +10416,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, "requires": { "extend-shallow": "^3.0.2", "safe-regex": "^1.1.0" @@ -10510,14 +10479,12 @@ "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true + "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==" }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, "request": { "version": "2.88.2", @@ -10612,8 +10579,7 @@ "resolve-url": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" }, "restore-cursor": { "version": "3.1.0", @@ -10628,8 +10594,7 @@ "ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==" }, "rgb-regex": { "version": "1.0.1", @@ -10881,7 +10846,6 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, "requires": { "ret": "~0.1.10" } @@ -10946,7 +10910,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, "requires": { "extend-shallow": "^2.0.1", "is-extendable": "^0.1.1", @@ -10958,7 +10921,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -11083,7 +11045,6 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, "requires": { "base": "^0.11.1", "debug": "^2.2.0", @@ -11099,7 +11060,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "requires": { "ms": "2.0.0" } @@ -11108,7 +11068,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -11117,7 +11076,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, "requires": { "is-extendable": "^0.1.0" } @@ -11125,8 +11083,7 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" } } }, @@ -11134,7 +11091,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, "requires": { "define-property": "^1.0.0", "isobject": "^3.0.0", @@ -11145,7 +11101,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, "requires": { "is-descriptor": "^1.0.0" } @@ -11154,7 +11109,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -11163,7 +11117,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, "requires": { "kind-of": "^6.0.0" } @@ -11172,7 +11125,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, "requires": { "is-accessor-descriptor": "^1.0.0", "is-data-descriptor": "^1.0.0", @@ -11185,7 +11137,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, "requires": { "kind-of": "^3.2.0" }, @@ -11194,7 +11145,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -11210,7 +11160,6 @@ "version": "0.5.3", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, "requires": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0", @@ -11238,8 +11187,7 @@ "source-map-url": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, "sourcemap-codec": { "version": "1.4.8", @@ -11282,7 +11230,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, "requires": { "extend-shallow": "^3.0.0" } @@ -11324,7 +11271,6 @@ "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, "requires": { "define-property": "^0.2.5", "object-copy": "^0.1.0" @@ -11334,7 +11280,6 @@ "version": "0.2.5", "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, "requires": { "is-descriptor": "^0.1.0" } @@ -11727,7 +11672,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, "requires": { "kind-of": "^3.0.2" }, @@ -11736,7 +11680,6 @@ "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, "requires": { "is-buffer": "^1.1.5" } @@ -11747,7 +11690,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, "requires": { "define-property": "^2.0.2", "extend-shallow": "^3.0.2", @@ -11759,7 +11701,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, "requires": { "is-number": "^3.0.0", "repeat-string": "^1.6.1" @@ -11882,7 +11823,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, "requires": { "arr-union": "^3.1.0", "get-value": "^2.0.6", @@ -11914,7 +11854,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, "requires": { "has-value": "^0.3.1", "isobject": "^3.0.0" @@ -11924,7 +11863,6 @@ "version": "0.3.1", "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, "requires": { "get-value": "^2.0.3", "has-values": "^0.1.4", @@ -11935,7 +11873,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, "requires": { "isarray": "1.0.0" } @@ -11945,8 +11882,7 @@ "has-values": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" } } }, @@ -11969,14 +11905,12 @@ "urix": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" }, "use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, "util-deprecate": { "version": "1.0.2", diff --git a/package.json b/package.json index 04ae94ef..1741d74e 100644 --- a/package.json +++ b/package.json @@ -89,6 +89,7 @@ "kleur": "^3.0.3", "lodash.merge": "^4.6.2", "module-details-from-path": "^1.0.3", + "postcss-copy": "^7.1.0", "pretty-bytes": "^5.3.0", "rollup": "^1.32.1", "rollup-plugin-babel": "^4.4.0", diff --git a/src/index.js b/src/index.js index 84c64556..e4719893 100644 --- a/src/index.js +++ b/src/index.js @@ -13,6 +13,7 @@ import nodeResolve from '@rollup/plugin-node-resolve'; import { terser } from 'rollup-plugin-terser'; import alias from '@rollup/plugin-alias'; import postcss from 'rollup-plugin-postcss'; +import postcssCopy from 'postcss-copy'; import gzipSize from 'gzip-size'; import brotliSize from 'brotli-size'; import prettyBytes from 'pretty-bytes'; @@ -525,6 +526,10 @@ function createConfig(options, entry, format, writeMeta) { cssnano({ preset: 'default', }), + postcssCopy({ + dest: dirname(options.output), + template: 'assets/[hash].[ext][query]', + }), ].filter(Boolean), autoModules: shouldCssModules(options), modules: cssModulesConfig(options),