You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@echarts.apache.org by su...@apache.org on 2020/02/16 21:28:04 UTC
[incubator-echarts] 02/09: make build tool support ts. And update
dependencies.
This is an automated email from the ASF dual-hosted git repository.
sushuang pushed a commit to branch typescript
in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
commit ba1639f01f5e12b7e5a3fc00543b8b92f9718035
Author: 100pah <su...@gmail.com>
AuthorDate: Sat Feb 15 11:23:08 2020 +0800
make build tool support ts.
And update dependencies.
---
.gitignore | 4 +-
build/build.js | 275 ++++-
build/config.js | 118 +-
...-plugin-ec-lang.js => ec-lang-rollup-plugin.js} | 0
build/pre-publish.js | 342 +++++-
...ec-remove-dev.js => remove-dev-babel-plugin.js} | 44 +-
...c-remove-dev.js => remove-dev-rollup-plugin.js} | 14 +-
...ollup-plugin-ec-remove-dev.js => remove-dev.js} | 51 +-
package-lock.json | 1222 +++++++++++++++++++-
package.json | 20 +-
tsconfig.json | 24 +
11 files changed, 1889 insertions(+), 225 deletions(-)
diff --git a/.gitignore b/.gitignore
index edf6813..4097609 100644
--- a/.gitignore
+++ b/.gitignore
@@ -173,7 +173,9 @@ map/tool
map/raw
theme/thumb
/lib
+/esm
+pre-publish-tmp
todo
**/*.log
*.sublime-workspace
-*.sublime-project
+*.sublime-project
\ No newline at end of file
diff --git a/build/build.js b/build/build.js
index bd252a2..1be3afd 100755
--- a/build/build.js
+++ b/build/build.js
@@ -21,15 +21,18 @@
const fsExtra = require('fs-extra');
const fs = require('fs');
-const {resolve} = require('path');
+const nodePath = require('path');
const config = require('./config.js');
const commander = require('commander');
-const {build, watch, color} = require('zrender/build/helper');
-const ecLangPlugin = require('./rollup-plugin-ec-lang');
+const chalk = require('chalk');
+const rollup = require('rollup');
+const ecLangPlugin = require('./ec-lang-rollup-plugin');
const prePublish = require('./pre-publish');
-const recheckDEV = require('zrender/build/babel-plugin-transform-remove-dev').recheckDEV;
+const recheckDEV = require('./remove-dev').recheckDEV;
+const assert = require('assert');
-function run() {
+
+async function run() {
/**
* Tips for `commander`:
@@ -148,7 +151,7 @@ function run() {
watch(config.createECharts(opt));
}
else if (isPrePublish) {
- prePublish();
+ await prePublish();
}
else if (isRelease) {
let configs = [];
@@ -180,21 +183,19 @@ function run() {
config.createDataTool(true)
);
- build(configs)
- .then(function () {
- checkCode(configForCheck);
- prePublish();
- }).catch(handleBuildError);
+ await build(configs);
+
+ checkBundleCode(configForCheck);
+
+ await prePublish();
}
else {
let cfg = config.createECharts(opt);
- build([cfg])
- .then(function () {
- if (opt.removeDev) {
- checkCode(cfg);
- }
- })
- .catch(handleBuildError);
+ await build([cfg]);
+
+ if (opt.removeDev) {
+ checkBundleCode(cfg);
+ }
}
}
@@ -207,18 +208,14 @@ function normalizeParams(opt) {
}
}
-function handleBuildError(err) {
- console.log(err);
-}
-
-function checkCode(singleConfig) {
+function checkBundleCode(singleConfig) {
// Make sure __DEV__ is eliminated.
let code = fs.readFileSync(singleConfig.output.file, {encoding: 'utf-8'});
if (!code) {
throw new Error(`${singleConfig.output.file} is empty`);
}
recheckDEV(code);
- console.log(color('fgGreen', 'dim')('Check code: correct.'));
+ console.log(chalk.green.dim('Check code: correct.'));
}
function validateIO(input, output) {
@@ -249,7 +246,233 @@ function validateLang(lang, output) {
* @return {string} Absolute path.
*/
function getPath(relativePath) {
- return resolve(__dirname, '../', relativePath);
+ return nodePath.resolve(__dirname, '../', relativePath);
+}
+
+/**
+ * @param {Array.<Object>} configs A list of rollup configs:
+ * See: <https://rollupjs.org/#big-list-of-options>
+ * For example:
+ * [
+ * {
+ * ...inputOptions,
+ * output: [outputOptions],
+ * watch: {chokidar, include, exclude}
+ * },
+ * ...
+ * ]
+ */
+async function build(configs) {
+
+ ensureZRenderCode.prepare();
+
+ for (let singleConfig of configs) {
+ console.log(
+ chalk.cyan.dim('\nBundles '),
+ chalk.cyan(singleConfig.input),
+ chalk.cyan.dim('=>'),
+ chalk.cyan(singleConfig.output.file),
+ chalk.cyan.dim(' ...')
+ );
+
+ console.time('rollup build');
+ const bundle = await rollup.rollup(singleConfig);
+ console.timeEnd('rollup build');
+
+ await bundle.write(singleConfig.output);
+
+ console.log(
+ chalk.green.dim('Created '),
+ chalk.green(singleConfig.output.file),
+ chalk.green.dim(' successfully.')
+ );
+ }
+
+ ensureZRenderCode.clear();
+}
+
+/**
+ * @param {Object} singleConfig A single rollup config:
+ * See: <https://rollupjs.org/#big-list-of-options>
+ * For example:
+ * {
+ * ...inputOptions,
+ * output: [outputOptions],
+ * watch: {chokidar, include, exclude}
+ * }
+ */
+function watch(singleConfig) {
+
+ // FIXME:TS call `ensureZRenderCode`
+ let watcher = rollup.watch(singleConfig);
+
+ watcher.on('event', function (event) {
+ // event.code can be one of:
+ // START — the watcher is (re)starting
+ // BUNDLE_START — building an individual bundle
+ // BUNDLE_END — finished building a bundle
+ // END — finished building all bundles
+ // ERROR — encountered an error while bundling
+ // FATAL — encountered an unrecoverable error
+ if (event.code !== 'START' && event.code !== 'END') {
+ console.log(
+ chalk.blue('[' + getTimeString() + ']'),
+ chalk.blue.dim('build'),
+ event.code.replace(/_/g, ' ').toLowerCase()
+ );
+ }
+ if (event.code === 'ERROR' || event.code === 'FATAL') {
+ printCodeError(event.error);
+ }
+ if (event.code === 'BUNDLE_END') {
+ printWatchResult(event);
+ }
+ if (event.code === 'START') {
+ ensureZRenderCode.prepare();
+ }
+ if (event.code === 'END' || event.code === 'ERROR' || event.code === 'FATAL') {
+ ensureZRenderCode.clear();
+ }
+ });
+}
+
+function printWatchResult(event) {
+ console.log(
+ chalk.green.dim('Created'),
+ chalk.green(event.output.join(', ')),
+ chalk.green.dim('in'),
+ chalk.green(event.duration),
+ chalk.green.dim('ms.')
+ );
+}
+
+function printCodeError(error) {
+ console.log('\n' + error.code);
+ if (error.code === 'PARSE_ERROR') {
+ console.log(
+ 'line',
+ chalk.cyan(error.loc.line),
+ 'column',
+ chalk.cyan(error.loc.column),
+ 'in',
+ chalk.cyan(error.loc.file)
+ );
+ }
+ if (error.frame) {
+ console.log('\n' + chalk.red(error.frame));
+ }
+ console.log(chalk.red.dim('\n' + error.stack));
+}
+
+function getTimeString() {
+ return (new Date()).toLocaleString();
+}
+
+
+// Symbol link do not work currently. So have to copy code manually.
+// See: https://github.com/ezolenko/rollup-plugin-typescript2/issues/188
+var ensureZRenderCode = (function () {
+
+ const nodeModulesZr = getPath('./node_modules/zrender');
+ // const nodeModulesZrDirTmp = getPath('./node_modules/zrender-dir-tmp');
+ const nodeModulesZrSymlinkTmp = getPath('./node_modules/zrender-symlink-tmp');
+ const nodeModulesZrSrcDir = getPath('./node_modules/zrender/src');
+ const zrSrcDir = getPath('../zrender/src')
+
+ let stats = 'cleared';
+
+ function doClear() {
+ if (!fs.existsSync(nodeModulesZrSymlinkTmp)
+ || !fs.lstatSync(nodeModulesZrSymlinkTmp).isSymbolicLink()
+ ) {
+ return;
+ }
+
+ if (fs.existsSync(nodeModulesZr)
+ && fs.lstatSync(nodeModulesZr).isDirectory()
+ ) {
+ console.log(chalk.blue(`rm -rf dir: ${nodeModulesZr}`));
+ // ensure save.
+ assert(nodeModulesZr.includes('node_modules') && nodeModulesZr.includes('zrender'));
+ fsExtra.removeSync(nodeModulesZr);
+ }
+
+ // recover the symbollink so that vs code can continue to visit the zrender source code.
+ console.log(chalk.blue(`mv symbol link: ${nodeModulesZrSymlinkTmp} => ${nodeModulesZr}`));
+ fs.renameSync(nodeModulesZrSymlinkTmp, nodeModulesZr);
+ }
+
+ return {
+ prepare: function () {
+ // Calling guard
+ assert(stats === 'cleared');
+ stats = 'prepared';
+
+ console.time('ensure zr code cost');
+ // In case that the last build terminated manually.
+ doClear();
+
+ if (!fs.existsSync(nodeModulesZr)
+ || !fs.lstatSync(nodeModulesZr).isSymbolicLink()
+ ) {
+ return;
+ }
+
+ if (!fs.existsSync(zrSrcDir)
+ || !fs.lstatSync(zrSrcDir).isDirectory()
+ ) {
+ throw new Error(`${zrSrcDir} does not exist.`);
+ }
+
+ console.log(chalk.blue(`mv symbol link: ${nodeModulesZr} => ${nodeModulesZrSymlinkTmp}`));
+ fs.renameSync(nodeModulesZr, nodeModulesZrSymlinkTmp);
+
+ fsExtra.ensureDirSync(nodeModulesZr);
+ fsExtra.copySync(zrSrcDir, nodeModulesZrSrcDir);
+ console.log(chalk.blue(`copied: ${nodeModulesZrSrcDir} => ${zrSrcDir}`));
+
+ console.timeEnd('ensure zr code cost');
+ },
+
+ clear: function () {
+ // Calling guard
+ assert(stats === 'prepared');
+ stats = 'cleared';
+
+ doClear();
+ }
+ }
+})();
+
+
+async function main() {
+ try {
+ await run();
+ }
+ catch (err) {
+
+ ensureZRenderCode.clear();
+
+ console.log(chalk.red('BUILD ERROR!'));
+
+ // rollup parse error.
+ if (err) {
+ if (err.loc) {
+ console.warn(chalk.red(`${err.loc.file} (${err.loc.line}:${err.loc.column})`));
+ console.warn(chalk.red(err.message));
+ }
+ if (err.frame) {
+ console.warn(chalk.red(err.frame));
+ }
+ console.log(chalk.red(err ? err.stack : err));
+
+ err.id != null && console.warn(chalk.red(`id: ${err.id}`));
+ err.hook != null && console.warn(chalk.red(`hook: ${err.hook}`));
+ err.code != null && console.warn(chalk.red(`code: ${err.code}`));
+ err.plugin != null && console.warn(chalk.red(`plugin: ${err.plugin}`));
+ }
+ // console.log(err);
+ }
}
-run();
+main();
diff --git a/build/config.js b/build/config.js
index 04f6b3f..8cd69bd 100644
--- a/build/config.js
+++ b/build/config.js
@@ -17,19 +17,37 @@
* under the License.
*/
-const nodeResolvePlugin = require('rollup-plugin-node-resolve');
+const assert = require('assert');
+// const nodeResolvePlugin = require('rollup-plugin-node-resolve');
const uglifyPlugin = require('rollup-plugin-uglify');
-const ecRemoveDevPlugin = require('./rollup-plugin-ec-remove-dev');
-const ecLangPlugin = require('./rollup-plugin-ec-lang');
-const {resolve} = require('path');
+const ecRemoveDevPlugin = require('./remove-dev-rollup-plugin');
+const ecLangPlugin = require('./ec-lang-rollup-plugin');
+const nodePath = require('path');
const preamble = require('./preamble');
+const ecDir = nodePath.resolve(__dirname, '..');
+const typescriptPlugin = require('rollup-plugin-typescript2');
-function getPathBasedOnECharts(path) {
- return resolve(__dirname, '../', path);
-}
-
-function getPlugins({min, lang, sourcemap, removeDev, addBundleVersion}) {
- let plugins = [];
+function preparePlugins({min, lang, sourcemap, removeDev, addBundleVersion}, {include, exclude}) {
+ assert(include);
+ let plugins = [
+ // nodeResolvePlugin(),
+ typescriptPlugin({
+ tsconfig: nodePath.resolve(ecDir, 'tsconfig.json'),
+ tsconfigOverride: {
+ // See: https://www.typescriptlang.org/docs/handbook/compiler-options.html
+ compilerOptions: {
+ // By default: target === "ES3" or "ES5" ? "CommonJS" : "ES6".
+ // But rollup don't use CommonJS.
+ module: 'ES2015',
+ sourceMap: !!sourcemap,
+ // Use the esm d.ts
+ declaration: false
+ },
+ include: include,
+ exclude: exclude || []
+ }
+ })
+ ];
removeDev && plugins.push(
ecRemoveDevPlugin({sourcemap})
@@ -39,9 +57,9 @@ function getPlugins({min, lang, sourcemap, removeDev, addBundleVersion}) {
ecLangPlugin({lang})
);
- plugins.push(
- nodeResolvePlugin()
- );
+ // plugins.push(
+ // nodeResolvePlugin()
+ // );
addBundleVersion && plugins.push({
outro: function () {
@@ -93,30 +111,57 @@ exports.createECharts = function (opt = {}) {
if (input != null || output != null) {
// Based on process.cwd();
- input = resolve(input);
- output = resolve(output);
+ input = nodePath.resolve(input);
+ output = nodePath.resolve(output);
}
else {
- input = getPathBasedOnECharts(`./echarts${srcType}.js`);
- output = getPathBasedOnECharts(`dist/echarts${postfixLang}${postfixType}${postfixMin}.js`);
+ input = nodePath.resolve(ecDir, `echarts${srcType}.ts`);
+ output = nodePath.resolve(ecDir, `dist/echarts${postfixLang}${postfixType}${postfixMin}.js`);
}
return {
- plugins: getPlugins(opt),
+ plugins: preparePlugins(opt, {
+ include: [
+ nodePath.resolve(ecDir, 'src/**/*.ts'),
+ nodePath.resolve(ecDir, 'echarts*.ts'),
+ // nodePath.resolve(ecDir, '/Users/s/sushuangwork/met/act/tigall/echarts/zrender/src/**/*.ts')
+ // nodePath.resolve(ecDir, '../zrender/src/**/*.ts')
+ ]
+ }),
+
+ // external: ['zrender'],
+ // external: id => ['zrender'].includes(id),
+
input: input,
- legacy: true, // Support IE8-
+ // FIXME ??? ie8 support removed since rollup 0.60
+ // legacy: true, // Support IE8-
+
+ // onwarn ({loc, frame, message}) {
+ // if (loc) {
+ // console.warn(`${loc.file} (${loc.line}:${loc.column}) ${message}`);
+ // if (frame) {
+ // console.warn(frame);
+ // }
+ // }
+ // else {
+ // console.warn(message);
+ // }
+ // },
+
output: {
name: 'echarts',
format: format,
sourcemap: sourcemap,
- legacy: true, // Must be declared both in inputOptions and outputOptions.
+ // legacy: true, // Must be declared both in inputOptions and outputOptions.
file: output
},
watch: {
include: [
- getPathBasedOnECharts('./src/**'),
- getPathBasedOnECharts('./echarts*.js'),
- getPathBasedOnECharts('../zrender/src/**')
+ nodePath.resolve(ecDir, 'src/**'),
+ nodePath.resolve(ecDir, 'echarts*.ts'),
+ // FIXME
+ // zrender code watch is broken until "ensure zr code" can be removed.
+ // nodePath.resolve(ecDir, '../zrender/src/**/*.ts')
]
}
};
@@ -127,10 +172,15 @@ exports.createECharts = function (opt = {}) {
*/
exports.createBMap = function (min) {
let postfix = min ? '.min' : '';
+ let input = nodePath.resolve(ecDir, `extension-src/bmap/bmap.ts`);
return {
- plugins: getPlugins({min}),
- input: getPathBasedOnECharts(`./extension-src/bmap/bmap.js`),
+ plugins: preparePlugins({min}, {
+ include: [
+ nodePath.resolve(ecDir, 'extension-src/bmap/**/*.ts')
+ ]
+ }),
+ input: input,
legacy: true, // Support IE8-
external: ['echarts'],
output: {
@@ -142,10 +192,10 @@ exports.createBMap = function (min) {
// For UMD `global.echarts`
echarts: 'echarts'
},
- file: getPathBasedOnECharts(`dist/extension/bmap${postfix}.js`)
+ file: nodePath.resolve(ecDir, `dist/extension/bmap${postfix}.js`)
},
watch: {
- include: [getPathBasedOnECharts('./extension-src/bmap/**')]
+ include: [nodePath.resolve(ecDir, 'extension-src/bmap/**')]
}
};
};
@@ -155,9 +205,15 @@ exports.createBMap = function (min) {
*/
exports.createDataTool = function (min) {
let postfix = min ? '.min' : '';
+ let input = nodePath.resolve(ecDir, `extension-src/dataTool/index.ts`);
+
return {
- plugins: getPlugins({min}),
- input: getPathBasedOnECharts(`./extension-src/dataTool/index.js`),
+ plugins: preparePlugins({min}, {
+ include: [
+ nodePath.resolve(ecDir, 'extension-src/dataTool/**/*.ts')
+ ]
+ }),
+ input: input,
legacy: true, // Support IE8-
external: ['echarts'],
output: {
@@ -169,10 +225,10 @@ exports.createDataTool = function (min) {
// For UMD `global.echarts`
echarts: 'echarts'
},
- file: getPathBasedOnECharts(`dist/extension/dataTool${postfix}.js`)
+ file: nodePath.resolve(ecDir, `dist/extension/dataTool${postfix}.js`)
},
watch: {
- include: [getPathBasedOnECharts('./extension-src/dataTool/**')]
+ include: [nodePath.resolve(ecDir, 'extension-src/dataTool/**')]
}
};
};
diff --git a/build/rollup-plugin-ec-lang.js b/build/ec-lang-rollup-plugin.js
similarity index 100%
rename from build/rollup-plugin-ec-lang.js
rename to build/ec-lang-rollup-plugin.js
diff --git a/build/pre-publish.js b/build/pre-publish.js
index 3b87cdb..1d58395 100644
--- a/build/pre-publish.js
+++ b/build/pre-publish.js
@@ -18,80 +18,312 @@
*/
/**
+ * [Create CommonJS files]:
* Compatible with prevoius folder structure: `echarts/lib` exists in `node_modules`
* (1) Build all files to CommonJS to `echarts/lib`.
* (2) Remove __DEV__.
* (3) Mount `echarts/src/export.js` to `echarts/lib/echarts.js`.
+ *
+ * [Create ESModule files]:
+ * Build all files to CommonJS to `echarts/esm`.
*/
-const path = require('path');
+const nodePath = require('path');
+const assert = require('assert');
+const fs = require('fs');
const fsExtra = require('fs-extra');
-const {color, travelSrcDir, prePulishSrc} = require('zrender/build/helper');
-
-const ecDir = path.resolve(__dirname, '..');
-const srcDir = path.resolve(__dirname, '../src');
-const extensionSrcDir = path.resolve(__dirname, '../extension-src');
-const extensionDir = path.resolve(__dirname, '../extension');
-const libDir = path.resolve(__dirname, '../lib');
+const chalk = require('chalk');
+const ts = require('typescript');
+const globby = require('globby');
+const removeDEVUtil = require('./remove-dev');
const preamble = require('./preamble');
+const {promisify} = require('util');
+const readFileAsync = promisify(fs.readFile);
+const writeFileAsync = promisify(fs.writeFile);
+const ecDir = nodePath.resolve(__dirname, '..');
+const tmpDir = nodePath.resolve(ecDir, 'pre-publish-tmp');
-module.exports = function () {
+const tsConfig = readTSConfig();
- fsExtra.removeSync(libDir);
- fsExtra.ensureDirSync(libDir);
+const autoGeneratedFileAlert = `
- travelSrcDir(srcDir, ({fileName, relativePath, absolutePath}) => {
- prePulishSrc({
- inputPath: absolutePath,
- outputPath: path.resolve(libDir, relativePath, fileName),
- transform: transform,
- preamble: preamble.js
- });
- });
+/**
+ * AUTO-GENERATED FILE. DO NOT MODIFY.
+ */
- travelSrcDir(extensionSrcDir, ({fileName, relativePath, absolutePath}) => {
- prePulishSrc({
- inputPath: absolutePath,
- outputPath: path.resolve(extensionDir, relativePath, fileName),
- transform: transform,
- preamble: preamble.js
- });
- });
+`;
- prePulishSrc({
- inputPath: path.resolve(ecDir, 'echarts.all.js'),
- outputPath: path.resolve(ecDir, 'index.js'),
- preamble: preamble.js
- });
- prePulishSrc({
- inputPath: path.resolve(ecDir, 'echarts.common.js'),
- outputPath: path.resolve(ecDir, 'index.common.js'),
- preamble: preamble.js
- });
- prePulishSrc({
- inputPath: path.resolve(ecDir, 'echarts.simple.js'),
- outputPath: path.resolve(ecDir, 'index.simple.js'),
- preamble: preamble.js
+const mainSrcGlobby = {
+ patterns: [
+ 'src/**/*.ts',
+ 'echarts.all.ts',
+ 'echarts.blank.ts',
+ 'echarts.common.ts',
+ 'echarts.simple.ts'
+ ],
+ cwd: ecDir
+};
+const extensionSrcGlobby = {
+ patterns: [
+ 'extension-src/**/*.ts'
+ ],
+ cwd: ecDir
+};
+const extensionSrcDir = nodePath.resolve(ecDir, 'extension-src');
+const extensionCJSDir = nodePath.resolve(ecDir, 'extension');
+const extensionESMDir = nodePath.resolve(ecDir, 'extension-esm');
+
+const compileWorkList = [
+ {
+ logLabel: 'main ts -> js-cjs',
+ compilerOptionsOverride: {
+ module: 'CommonJS',
+ // `rootDir` Only use to control the output
+ // directory structure with --outDir.
+ rootDir: ecDir,
+ outDir: tmpDir
+ },
+ srcGlobby: mainSrcGlobby,
+ transformOptions: {
+ filesGlobby: {patterns: ['**/*.js'], cwd: tmpDir},
+ preamble: preamble.js,
+ removeDEV: true,
+ cjsEntryCompat: cjsEntryCompat
+ },
+ before: async function () {
+ fsExtra.removeSync(tmpDir);
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'lib'));
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'index.js'));
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'index.blank.js'));
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'index.common.js'));
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'index.simple.js'));
+ },
+ after: async function () {
+ fs.renameSync(nodePath.resolve(tmpDir, 'echarts.all.js'), nodePath.resolve(ecDir, 'index.js'));
+ fs.renameSync(nodePath.resolve(tmpDir, 'echarts.blank.js'), nodePath.resolve(ecDir, 'index.blank.js'));
+ fs.renameSync(nodePath.resolve(tmpDir, 'echarts.common.js'), nodePath.resolve(ecDir, 'index.common.js'));
+ fs.renameSync(nodePath.resolve(tmpDir, 'echarts.simple.js'), nodePath.resolve(ecDir, 'index.simple.js'));
+ fs.renameSync(nodePath.resolve(tmpDir, 'src'), nodePath.resolve(ecDir, 'lib'));
+ fsExtra.removeSync(tmpDir);
+ }
+ },
+ {
+ logLabel: 'main ts -> js-esm',
+ compilerOptionsOverride: {
+ module: 'ES2015',
+ rootDir: ecDir,
+ outDir: tmpDir
+ },
+ srcGlobby: mainSrcGlobby,
+ transformOptions: {
+ filesGlobby: {patterns: ['**/*.js'], cwd: tmpDir},
+ preamble: preamble.js,
+ // esm do not remove DEV. Keep it them same with
+ // the previous state before migrate to ts.
+ removeDEV: false
+ },
+ before: async function () {
+ fsExtra.removeSync(tmpDir);
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'esm'));
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'echarts.all.js'));
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'echarts.blank.js'));
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'echarts.common.js'));
+ fsExtra.removeSync(nodePath.resolve(ecDir, 'echarts.simple.js'));
+ },
+ after: async function () {
+ fs.renameSync(nodePath.resolve(tmpDir, 'echarts.all.js'), nodePath.resolve(ecDir, 'echarts.all.js'));
+ fs.renameSync(nodePath.resolve(tmpDir, 'echarts.blank.js'), nodePath.resolve(ecDir, 'echarts.blank.js'));
+ fs.renameSync(nodePath.resolve(tmpDir, 'echarts.common.js'), nodePath.resolve(ecDir, 'echarts.common.js'));
+ fs.renameSync(nodePath.resolve(tmpDir, 'echarts.simple.js'), nodePath.resolve(ecDir, 'echarts.simple.js'));
+ fs.renameSync(nodePath.resolve(tmpDir, 'src'), nodePath.resolve(ecDir, 'esm'));
+ fsExtra.removeSync(tmpDir);
+ }
+ },
+ {
+ logLabel: 'extension ts -> js-cjs',
+ compilerOptions: {
+ module: 'CommonJS',
+ rootDir: extensionSrcDir,
+ outDir: extensionCJSDir
+ },
+ srcGlobby: extensionSrcGlobby,
+ transformOptions: {
+ filesGlobby: {patterns: ['**/*.js'], cwd: extensionCJSDir},
+ preamble: preamble.js,
+ removeDEV: true,
+ cjsEntryCompat: cjsEntryCompat
+ },
+ before: async function () {
+ fsExtra.removeSync(extensionCJSDir);
+ }
+ },
+ {
+ logLabel: 'extension ts -> js-esm',
+ compilerOptions: {
+ module: 'ES2015',
+ rootDir: extensionSrcDir,
+ outDir: extensionESMDir
+ },
+ srcGlobby: extensionSrcGlobby,
+ transformOptions: {
+ filesGlobby: {patterns: ['**/*.js'], cwd: extensionESMDir},
+ preamble: preamble.js,
+ removeDEV: false
+ },
+ before: async function () {
+ fsExtra.removeSync(extensionESMDir);
+ }
+ }
+];
+
+
+
+/**
+ * @public
+ */
+module.exports = async function () {
+
+ for (let {
+ logLabel, compilerOptionsOverride, srcGlobby,
+ transformOptions, before, after
+ } of compileWorkList) {
+
+ process.stdout.write(chalk.green.dim(`[${logLabel}]: compiling ...`));
+
+ before && await before();
+
+ let srcPathList = await readFilePaths(srcGlobby);
+
+ await tsCompile(compilerOptionsOverride, srcPathList);
+
+ process.stdout.write(chalk.green.dim(` done \n`));
+
+ process.stdout.write(chalk.green.dim(`[${logLabel}]: transforming ...`));
+
+ await transformCode(transformOptions);
+
+ after && await after();
+
+ process.stdout.write(chalk.green.dim(` done \n`));
+ }
+
+ console.log(chalk.green.bright('All done.'));
+};
+
+async function tsCompile(compilerOptionsOverride, srcPathList) {
+ assert(
+ compilerOptionsOverride
+ && compilerOptionsOverride.module
+ && compilerOptionsOverride.rootDir
+ && compilerOptionsOverride.outDir
+ );
+
+ let compilerOptions = {
+ ...tsConfig.compilerOptions,
+ ...compilerOptionsOverride,
+ sourceMap: false,
+ // Use the esm d.ts
+ declaration: false
+ };
+
+ // Must do it. becuase the value in tsconfig.json might be different from the inner representation.
+ // For example: moduleResolution: "NODE" => moduleResolution: 2
+ const {options, errors} = ts.convertCompilerOptionsFromJson(compilerOptions, ecDir);
+ if (errors.length) {
+ let errMsg = 'tsconfig parse failed: '
+ + errors.map(error => error.messageText).join('. ')
+ + '\n compilerOptions: \n' + JSON.stringify(compilerOptions, null, 4);
+ assert(false, errMsg);
+ }
+
+ // See: https://github.com/microsoft/TypeScript/wiki/Using-the-Compiler-API
+ let program = ts.createProgram(srcPathList, options);
+ let emitResult = program.emit();
+
+ let allDiagnostics = ts
+ .getPreEmitDiagnostics(program)
+ .concat(emitResult.diagnostics);
+
+ allDiagnostics.forEach(diagnostic => {
+ if (diagnostic.file) {
+ let {line, character} = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
+ let message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
+ console.log(chalk.red(`${diagnostic.file.fileName} (${line + 1},${character + 1}): ${message}`));
+ }
+ else {
+ console.log(chalk.red(ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n')));
+ }
});
+ assert(!emitResult.emitSkipped, 'ts compile failed.');
+}
+
+/**
+ * @param {Object} transformOptions
+ * @param {Object} transformOptions.filesGlobby {patterns: string[], cwd: string}
+ * @param {string} [transformOptions.preamble] See './preamble.js'
+ * @param {Function} [transformOptions.cjsEntryCompat]
+ * @param {boolean} [transformOptions.removeDEV]
+ */
+async function transformCode({filesGlobby, preamble, cjsEntryCompat, removeDEV}) {
+
+ let filePaths = readFilePaths(filesGlobby);
- function transform({code, inputPath, outputPath}) {
- if (inputPath === path.resolve(ecDir, 'src/echarts.js')) {
- // Using `echarts/echarts.blank.js` to overwrite `echarts/lib/echarts.js`
- // for including exports API.
- code += `
+ await Promise.all(filePaths.map(async filePath => {
+ let code = await readFileAsync(filePath, {encoding: 'utf8'});
+
+ if (removeDEV) {
+ let result = removeDEVUtil.transform(code, false);
+ code = result.code;
+ removeDEVPlugin.recheckDEV(code);
+ }
+
+ if (cjsEntryCompat) {
+ code = cjsEntryCompat({code, filePath});
+ }
+
+ code = autoGeneratedFileAlert + code;
+
+ if (preamble) {
+ code = preamble + code;
+ }
+
+ await writeFileAsync(filePath, code, {encoding: 'utf8'});
+ }));
+}
+
+function cjsEntryCompat({code, filePath}) {
+ if (filePath === nodePath.resolve(ecDir, 'src/echarts.js')) {
+ // For backward compat.
+ // Using `echarts/echarts.blank.js` to overwrite `echarts/lib/echarts.js`
+ // for including exports API.
+ code += `
var ___ec_export = require("./export");
(function () {
- for (var key in ___ec_export) {
- if (___ec_export.hasOwnProperty(key)) {
- exports[key] = ___ec_export[key];
- }
+for (var key in ___ec_export) {
+ if (___ec_export.hasOwnProperty(key)) {
+ exports[key] = ___ec_export[key];
}
+}
})();`;
- }
-
- return code;
}
- console.log(color('fgGreen', 'bright')('All done.'));
-};
+ return code;
+}
+
+async function readFilePaths({patterns, cwd}) {
+ assert(patterns && cwd);
+ return (
+ await globby(patterns, {cwd})
+ ).map(
+ srcPath => nodePath.resolve(cwd, srcPath)
+ );
+}
+
+function readTSConfig() {
+ // tsconfig.json may have comment string, which is invalid if
+ // using `require('tsconfig.json'). So we use a loose parser.
+ let filePath = nodePath.resolve(ecDir, 'tsconfig.json');
+ const tsConfigText = fs.readFileSync(filePath, {encoding: 'utf8'});
+ return (new Function(`return ( ${tsConfigText} )`))();
+}
diff --git a/build/rollup-plugin-ec-remove-dev.js b/build/remove-dev-babel-plugin.js
similarity index 53%
copy from build/rollup-plugin-ec-remove-dev.js
copy to build/remove-dev-babel-plugin.js
index a38ebbb..884e630 100644
--- a/build/rollup-plugin-ec-remove-dev.js
+++ b/build/remove-dev-babel-plugin.js
@@ -17,38 +17,20 @@
* under the License.
*/
-/**
- * Remove the code of `if (__DEV__) { ... }`.
- *
- * Usage:
- *
- * import ecRemoveDevPlugin from 'echats/build/rollup-plugin-ec-remove-dev';
- * let rollupConfig = {
- * plugins: [
- * ecRemoveDevPlugin(),
- * ...
- * ]
- * };
- */
-
-const babel = require('@babel/core');
-const removeDEVPlugin = require('zrender/build/babel-plugin-transform-remove-dev');
-
-/**
- * @param {Object} [opt]
- * @param {Object} [opt.sourcemap]
- */
-module.exports = function ({sourcemap} = {}) {
-
+module.exports = function ({types, template}, options) {
return {
- transform: function (sourceCode) {
-
- let {code, map} = babel.transform(sourceCode, {
- plugins: [removeDEVPlugin],
- sourceMaps: sourcemap
- });
-
- return {code, map};
+ visitor: {
+ IfStatement: {
+ exit(path) {
+ removeDEV(path);
+ }
+ }
}
};
};
+
+function removeDEV(path) {
+ if (path.node.test.name === '__DEV__') {
+ path.remove();
+ }
+}
diff --git a/build/rollup-plugin-ec-remove-dev.js b/build/remove-dev-rollup-plugin.js
similarity index 77%
copy from build/rollup-plugin-ec-remove-dev.js
copy to build/remove-dev-rollup-plugin.js
index a38ebbb..f07ff23 100644
--- a/build/rollup-plugin-ec-remove-dev.js
+++ b/build/remove-dev-rollup-plugin.js
@@ -31,24 +31,18 @@
* };
*/
-const babel = require('@babel/core');
-const removeDEVPlugin = require('zrender/build/babel-plugin-transform-remove-dev');
+const removeDEV = require('./remove-dev');
/**
* @param {Object} [opt]
- * @param {Object} [opt.sourcemap]
+ * @param {boolean} [opt.sourcemap]
*/
module.exports = function ({sourcemap} = {}) {
return {
transform: function (sourceCode) {
-
- let {code, map} = babel.transform(sourceCode, {
- plugins: [removeDEVPlugin],
- sourceMaps: sourcemap
- });
-
- return {code, map};
+ return removeDEV.transform(sourceCode, sourcemap);
}
};
};
+
diff --git a/build/rollup-plugin-ec-remove-dev.js b/build/remove-dev.js
similarity index 53%
rename from build/rollup-plugin-ec-remove-dev.js
rename to build/remove-dev.js
index a38ebbb..18a1937 100644
--- a/build/rollup-plugin-ec-remove-dev.js
+++ b/build/remove-dev.js
@@ -17,38 +17,33 @@
* under the License.
*/
-/**
- * Remove the code of `if (__DEV__) { ... }`.
- *
- * Usage:
- *
- * import ecRemoveDevPlugin from 'echats/build/rollup-plugin-ec-remove-dev';
- * let rollupConfig = {
- * plugins: [
- * ecRemoveDevPlugin(),
- * ...
- * ]
- * };
- */
-
const babel = require('@babel/core');
-const removeDEVPlugin = require('zrender/build/babel-plugin-transform-remove-dev');
+const removeDEVBabelPlugin = require('./remove-dev-babel-plugin');
/**
- * @param {Object} [opt]
- * @param {Object} [opt.sourcemap]
+ * @param {string} sourceCode
+ * @param {boolean} sourcemap
+ * @return {Object} {code: string, map: string}
*/
-module.exports = function ({sourcemap} = {}) {
-
- return {
- transform: function (sourceCode) {
+module.exports.transform = function (sourceCode, sourcemap) {
+ let {code, map} = babel.transformSync(sourceCode, {
+ plugins: [removeDEVBabelPlugin],
+ sourceMaps: sourcemap
+ });
- let {code, map} = babel.transform(sourceCode, {
- plugins: [removeDEVPlugin],
- sourceMaps: sourcemap
- });
+ return {code, map};
+};
- return {code, map};
- }
- };
+/**
+ * @param {string} code
+ * @throws {Error} If check failed.
+ */
+module.exports.recheckDEV = function (code) {
+ let result = code.match(/.if\s*\([^()]*__DEV__/);
+ if (result
+ && result[0].indexOf('`if') < 0
+ && result[0].indexOf('if (typeof __DEV__') < 0
+ ) {
+ throw new Error('__DEV__ is not removed.');
+ }
};
diff --git a/package-lock.json b/package-lock.json
index f18660a..57c236e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -274,6 +274,28 @@
"chalk": "^2.0.0",
"esutils": "^2.0.2",
"js-tokens": "^4.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"@babel/parser": {
@@ -314,11 +336,31 @@
"js-tokens": "^3.0.0"
}
},
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
"js-tokens": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
"dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -388,6 +430,28 @@
"@jest/source-map": "^24.9.0",
"chalk": "^2.0.1",
"slash": "^2.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"@jest/core": {
@@ -424,6 +488,28 @@
"rimraf": "^2.5.4",
"slash": "^2.0.0",
"strip-ansi": "^5.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"@jest/environment": {
@@ -478,6 +564,17 @@
"string-length": "^2.0.0"
},
"dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -497,6 +594,15 @@
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -566,11 +672,31 @@
"write-file-atomic": "2.4.1"
},
"dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -585,6 +711,142 @@
"@types/yargs": "^13.0.0"
}
},
+ "@microsoft/api-extractor": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.7.2.tgz",
+ "integrity": "sha512-W75kcjWlONyB9kQKYAfSMiG3v2JMGlgUihny8PucZqdRatcYADeQiEcX5qE5sWdNRHD/J+5INiwlooZDd82sDQ==",
+ "dev": true,
+ "requires": {
+ "@microsoft/api-extractor-model": "7.7.2",
+ "@microsoft/node-core-library": "3.18.2",
+ "@microsoft/ts-command-line": "4.3.7",
+ "@microsoft/tsdoc": "0.12.14",
+ "colors": "~1.2.1",
+ "lodash": "~4.17.15",
+ "resolve": "1.8.1",
+ "source-map": "~0.6.1",
+ "typescript": "~3.7.2"
+ },
+ "dependencies": {
+ "resolve": {
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.8.1.tgz",
+ "integrity": "sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA==",
+ "dev": true,
+ "requires": {
+ "path-parse": "^1.0.5"
+ }
+ },
+ "source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "dev": true
+ }
+ }
+ },
+ "@microsoft/api-extractor-model": {
+ "version": "7.7.2",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.7.2.tgz",
+ "integrity": "sha512-USwWUPV3YLS8ZOS11vFh3nzEWXC2d8OZJ6CGp0nRnCXtbqmKqAq4Jg9J5gs1PCemo7JQEbzbHGGwycC0DbRJqw==",
+ "dev": true,
+ "requires": {
+ "@microsoft/node-core-library": "3.18.2",
+ "@microsoft/tsdoc": "0.12.14"
+ }
+ },
+ "@microsoft/node-core-library": {
+ "version": "3.18.2",
+ "resolved": "https://registry.npmjs.org/@microsoft/node-core-library/-/node-core-library-3.18.2.tgz",
+ "integrity": "sha512-IRoRmLwNvrR0rTNavYlfNObz9pr4Epo8Hd//0SNptt7adOySd735ur7YBO7SzafeijHsD3/dC4PXLLwhIsMU7Q==",
+ "dev": true,
+ "requires": {
+ "@types/node": "8.10.54",
+ "colors": "~1.2.1",
+ "fs-extra": "~7.0.1",
+ "jju": "~1.4.0",
+ "semver": "~5.3.0",
+ "timsort": "~0.3.0",
+ "z-schema": "~3.18.3"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz",
+ "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.2",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ },
+ "semver": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
+ "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
+ "dev": true
+ }
+ }
+ },
+ "@microsoft/ts-command-line": {
+ "version": "4.3.7",
+ "resolved": "https://registry.npmjs.org/@microsoft/ts-command-line/-/ts-command-line-4.3.7.tgz",
+ "integrity": "sha512-dl7j5E4Ly4vin0dFRNyDEmslpqLTeFkSvWi1Ux2OhTXbORpaRm2qivTQzUgbPSh8Mtc1LSZGekqEMNl0e0OMNw==",
+ "dev": true,
+ "requires": {
+ "@types/argparse": "1.0.33",
+ "argparse": "~1.0.9",
+ "colors": "~1.2.1"
+ }
+ },
+ "@microsoft/tsdoc": {
+ "version": "0.12.14",
+ "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.12.14.tgz",
+ "integrity": "sha512-518yewjSga1jLdiLrcmpMFlaba5P+50b0TWNFUpC+SL9Yzf0kMi57qw+bMl+rQ08cGqH1vLx4eg9YFUbZXgZ0Q==",
+ "dev": true
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
+ "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.3",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
+ "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
+ "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.3",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@types/argparse": {
+ "version": "1.0.33",
+ "resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.33.tgz",
+ "integrity": "sha512-VQgHxyPMTj3hIlq9SY1mctqx+Jj8kpQfoLvDlVSDNOyuYs8JYfkuY3OW/4+dO657yPmNhHpePRx0/Tje5ImNVQ==",
+ "dev": true
+ },
"@types/babel__core": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.3.tgz",
@@ -678,6 +940,24 @@
}
}
},
+ "@types/color-name": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==",
+ "dev": true
+ },
+ "@types/eslint-visitor-keys": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz",
+ "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==",
+ "dev": true
+ },
+ "@types/estree": {
+ "version": "0.0.42",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.42.tgz",
+ "integrity": "sha512-K1DPVvnBCPxzD+G51/cxVIoc2X8uUVl1zpJeE6iKcgHMj4+tbat5Xu4TjV7v2QSDbIeAfLi2hIk+u2+s0MlpUQ==",
+ "dev": true
+ },
"@types/istanbul-lib-coverage": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz",
@@ -703,6 +983,18 @@
"@types/istanbul-lib-report": "*"
}
},
+ "@types/json-schema": {
+ "version": "7.0.4",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.4.tgz",
+ "integrity": "sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA==",
+ "dev": true
+ },
+ "@types/node": {
+ "version": "8.10.54",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-8.10.54.tgz",
+ "integrity": "sha512-kaYyLYf6ICn6/isAyD4K1MyWWd5Q3JgH6bnMN089LUx88+s4W8GvK9Q6JMBVu5vsFFp7pMdSxdKmlBXwH/VFRg==",
+ "dev": true
+ },
"@types/stack-utils": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz",
@@ -724,6 +1016,130 @@
"integrity": "sha512-gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==",
"dev": true
},
+ "@typescript-eslint/eslint-plugin": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.15.0.tgz",
+ "integrity": "sha512-XRJFznI5v4K1WvIrWmjFjBAdQWaUTz4xJEdqR7+wAFsv6Q9dP3mOlE6BMNT3pdlp9eF1+bC5m5LZTmLMqffCVw==",
+ "dev": true,
+ "requires": {
+ "@typescript-eslint/experimental-utils": "2.15.0",
+ "eslint-utils": "^1.4.3",
+ "functional-red-black-tree": "^1.0.1",
+ "regexpp": "^3.0.0",
+ "tsutils": "^3.17.1"
+ },
+ "dependencies": {
+ "@typescript-eslint/experimental-utils": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.15.0.tgz",
+ "integrity": "sha512-Qkxu5zndY5hqlcQkmA88gfLvqQulMpX/TN91XC7OuXsRf4XG5xLGie0sbpX97o/oeccjeZYRMipIsjKk/tjDHA==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/typescript-estree": "2.15.0",
+ "eslint-scope": "^5.0.0"
+ }
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "2.15.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.15.0.tgz",
+ "integrity": "sha512-L6Pog+w3VZzXkAdyqA0VlwybF8WcwZX+mufso86CMxSdWmcizJ38lgBdpqTbc9bo92iyi0rOvmATKiwl+amjxg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "eslint-visitor-keys": "^1.1.0",
+ "glob": "^7.1.6",
+ "is-glob": "^4.0.1",
+ "lodash.unescape": "4.0.1",
+ "semver": "^6.3.0",
+ "tsutils": "^3.17.1"
+ }
+ },
+ "eslint-utils": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
+ "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
+ "dev": true,
+ "requires": {
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "regexpp": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.0.0.tgz",
+ "integrity": "sha512-Z+hNr7RAVWxznLPuA7DIh8UNX1j9CDrUQxskw9IrBE1Dxue2lyXT+shqEIeLUjrokxIP8CMy1WkjgG3rTsd5/g==",
+ "dev": true
+ }
+ }
+ },
+ "@typescript-eslint/experimental-utils": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.18.0.tgz",
+ "integrity": "sha512-J6MopKPHuJYmQUkANLip7g9I82ZLe1naCbxZZW3O2sIxTiq/9YYoOELEKY7oPg0hJ0V/AQ225h2z0Yp+RRMXhw==",
+ "dev": true,
+ "requires": {
+ "@types/json-schema": "^7.0.3",
+ "@typescript-eslint/typescript-estree": "2.18.0",
+ "eslint-scope": "^5.0.0"
+ }
+ },
+ "@typescript-eslint/parser": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.18.0.tgz",
+ "integrity": "sha512-SJJPxFMEYEWkM6pGfcnjLU+NJIPo+Ko1QrCBL+i0+zV30ggLD90huEmMMhKLHBpESWy9lVEeWlQibweNQzyc+A==",
+ "dev": true,
+ "requires": {
+ "@types/eslint-visitor-keys": "^1.0.0",
+ "@typescript-eslint/experimental-utils": "2.18.0",
+ "@typescript-eslint/typescript-estree": "2.18.0",
+ "eslint-visitor-keys": "^1.1.0"
+ }
+ },
+ "@typescript-eslint/typescript-estree": {
+ "version": "2.18.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.18.0.tgz",
+ "integrity": "sha512-gVHylf7FDb8VSi2ypFuEL3hOtoC4HkZZ5dOjXvVjoyKdRrvXAOPSzpNRnKMfaUUEiSLP8UF9j9X9EDLxC0lfZg==",
+ "dev": true,
+ "requires": {
+ "debug": "^4.1.1",
+ "eslint-visitor-keys": "^1.1.0",
+ "glob": "^7.1.6",
+ "is-glob": "^4.0.1",
+ "lodash": "^4.17.15",
+ "semver": "^6.3.0",
+ "tsutils": "^3.17.1"
+ },
+ "dependencies": {
+ "glob": {
+ "version": "7.1.6",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
+ "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ }
+ }
+ },
"abab": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.2.tgz",
@@ -942,6 +1358,12 @@
"integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
"dev": true
},
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
"array-unique": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
@@ -963,15 +1385,6 @@
"safer-buffer": "~2.1.0"
}
},
- "assert": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz",
- "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=",
- "dev": true,
- "requires": {
- "util": "0.10.3"
- }
- },
"assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
@@ -1033,6 +1446,28 @@
"babel-preset-jest": "^24.9.0",
"chalk": "^2.4.2",
"slash": "^2.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"babel-plugin-istanbul": {
@@ -1326,14 +1761,40 @@
"dev": true
},
"chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
"dev": true,
"requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+ "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+ "dev": true,
+ "requires": {
+ "@types/color-name": "^1.1.1",
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ }
}
},
"chardet": {
@@ -1479,6 +1940,12 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
+ "colors": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz",
+ "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==",
+ "dev": true
+ },
"combined-stream": {
"version": "1.0.8",
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
@@ -1494,6 +1961,12 @@
"integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
"dev": true
},
+ "commondir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=",
+ "dev": true
+ },
"component-bind": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz",
@@ -1770,6 +2243,23 @@
"integrity": "sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew==",
"dev": true
},
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ },
+ "dependencies": {
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ }
+ }
+ },
"doctrine": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
@@ -2068,11 +2558,31 @@
"v8-compile-cache": "^2.0.3"
},
"dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
"strip-json-comments": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz",
"integrity": "sha512-VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==",
"dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -2368,6 +2878,73 @@
"integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=",
"dev": true
},
+ "fast-glob": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.1.1.tgz",
+ "integrity": "sha512-nTCREpBY8w8r+boyFYAx21iL6faSsQynliPHM4Uf56SbkyohCNxpVPEH9xrF5TXKy+IsjkPUHDKiUkzBVRXn9g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.0",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.2"
+ },
+ "dependencies": {
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
+ "integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz",
+ "integrity": "sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.1",
+ "picomatch": "^2.0.5"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ }
+ }
+ },
"fast-json-stable-stringify": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
@@ -2389,6 +2966,15 @@
"punycode": "^1.3.2"
}
},
+ "fastq": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.6.0.tgz",
+ "integrity": "sha512-jmxqQ3Z/nXoeyDmWAzF9kH1aGZSis6e/SbfPmJpUnyZ0ogr6iscHQaml4wsEepEWSdtmpy+eVXmCRIMpxaXqOA==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.0"
+ }
+ },
"fb-watchman": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
@@ -2439,6 +3025,71 @@
}
}
},
+ "find-cache-dir": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.2.0.tgz",
+ "integrity": "sha512-1JKclkYYsf1q9WIJKLZa9S9muC+08RIjzAlLrK4QcYLJMS6mk9yombQ9qf+zJ7H9LS800k0s44L4sDq9VYzqyg==",
+ "dev": true,
+ "requires": {
+ "commondir": "^1.0.1",
+ "make-dir": "^3.0.0",
+ "pkg-dir": "^4.1.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "make-dir": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.0.tgz",
+ "integrity": "sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw==",
+ "dev": true,
+ "requires": {
+ "semver": "^6.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.0.0"
+ }
+ }
+ }
+ },
"find-up": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
@@ -3221,6 +3872,34 @@
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
},
+ "globby": {
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz",
+ "integrity": "sha512-iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==",
+ "dev": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.1.1",
+ "ignore": "^5.1.4",
+ "merge2": "^1.3.0",
+ "slash": "^3.0.0"
+ },
+ "dependencies": {
+ "ignore": {
+ "version": "5.1.4",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz",
+ "integrity": "sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ }
+ }
+ },
"graceful-fs": {
"version": "4.2.2",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.2.tgz",
@@ -3479,6 +4158,28 @@
"string-width": "^2.1.0",
"strip-ansi": "^5.1.0",
"through": "^2.3.6"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"invariant": {
@@ -3862,6 +4563,28 @@
"prompts": "^2.0.1",
"realpath-native": "^1.1.0",
"yargs": "^13.3.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ }
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
}
}
}
@@ -3912,6 +4635,17 @@
"realpath-native": "^1.1.0"
},
"dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -3925,6 +4659,15 @@
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -3938,6 +4681,28 @@
"diff-sequences": "^24.9.0",
"jest-get-type": "^24.9.0",
"pretty-format": "^24.9.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"jest-docblock": {
@@ -3960,6 +4725,28 @@
"jest-get-type": "^24.9.0",
"jest-util": "^24.9.0",
"pretty-format": "^24.9.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"jest-environment-jsdom": {
@@ -4162,6 +4949,28 @@
"jest-util": "^24.9.0",
"pretty-format": "^24.9.0",
"throat": "^4.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"jest-leak-detector": {
@@ -4184,6 +4993,28 @@
"jest-diff": "^24.9.0",
"jest-get-type": "^24.9.0",
"pretty-format": "^24.9.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"jest-message-util": {
@@ -4200,6 +5031,28 @@
"micromatch": "^3.1.10",
"slash": "^2.0.0",
"stack-utils": "^1.0.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"jest-mock": {
@@ -4234,6 +5087,28 @@
"chalk": "^2.0.1",
"jest-pnp-resolver": "^1.2.1",
"realpath-native": "^1.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"jest-resolve-dependencies": {
@@ -4272,6 +5147,28 @@
"jest-worker": "^24.6.0",
"source-map-support": "^0.5.6",
"throat": "^4.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"jest-runtime": {
@@ -4305,6 +5202,17 @@
"yargs": "^13.3.0"
},
"dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
"glob": {
"version": "7.1.6",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
@@ -4318,6 +5226,15 @@
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -4358,6 +5275,26 @@
"lodash": "^4.17.13",
"to-fast-properties": "^2.0.0"
}
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -4381,11 +5318,31 @@
"source-map": "^0.6.0"
},
"dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
}
}
},
@@ -4401,6 +5358,28 @@
"jest-get-type": "^24.9.0",
"leven": "^3.1.0",
"pretty-format": "^24.9.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"jest-watcher": {
@@ -4416,6 +5395,28 @@
"chalk": "^2.0.1",
"jest-util": "^24.9.0",
"string-length": "^2.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ }
}
},
"jest-worker": {
@@ -4439,6 +5440,12 @@
}
}
},
+ "jju": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz",
+ "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=",
+ "dev": true
+ },
"js-tokens": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
@@ -4705,12 +5712,30 @@
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
"dev": true
},
+ "lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=",
+ "dev": true
+ },
+ "lodash.isequal": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz",
+ "integrity": "sha1-QVxEePK8wwEgwizhDtMib30+GOA=",
+ "dev": true
+ },
"lodash.sortby": {
"version": "4.7.0",
"resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz",
"integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=",
"dev": true
},
+ "lodash.unescape": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz",
+ "integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=",
+ "dev": true
+ },
"loose-envify": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
@@ -4783,6 +5808,12 @@
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
+ "merge2": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz",
+ "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==",
+ "dev": true
+ },
"micromatch": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -5471,6 +6502,12 @@
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=",
"dev": true
},
+ "picomatch": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.1.tgz",
+ "integrity": "sha512-ISBaA8xQNmwELC7eOjqFKMESB2VIqt4PPDD0nsS95b/9dZXvVKOlz9keMSnoGGKcOHXfTvDD6WMaRoSc9UuhRA==",
+ "dev": true
+ },
"pify": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
@@ -5873,6 +6910,12 @@
"integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
"dev": true
},
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
@@ -5899,10 +6942,23 @@
}
},
"rollup": {
- "version": "0.50.0",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.50.0.tgz",
- "integrity": "sha512-7RqCBQ9iwsOBPkjYgoIaeUij606mSkDMExP0NT7QDI3bqkHYQHrQ83uoNIXwPcQm/vP2VbsUz3kiyZZ1qPlLTQ==",
- "dev": true
+ "version": "1.28.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.28.0.tgz",
+ "integrity": "sha512-v2J/DmQi9+Nf6frGqzwZRvbiuTTrqH0yzoUF4Eybf8sONT4UpLZzJYnYzW96Zm9X1+4SJmijfnFBWCzHDAXYnQ==",
+ "dev": true,
+ "requires": {
+ "@types/estree": "*",
+ "@types/node": "*",
+ "acorn": "^7.1.0"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.0.tgz",
+ "integrity": "sha512-kL5CuoXA/dgxlBbVrflsflzQ3PAas7RYZB52NOm/6839iVYJgKMJ3cQJD+t2i5+qFa8h3MDpEOJiS64E8JLnSQ==",
+ "dev": true
+ }
+ }
},
"rollup-plugin-commonjs": {
"version": "8.4.1",
@@ -5929,13 +6985,51 @@
"resolve": "^1.1.6"
}
},
+ "rollup-plugin-typescript2": {
+ "version": "0.25.3",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.25.3.tgz",
+ "integrity": "sha512-ADkSaidKBovJmf5VBnZBZe+WzaZwofuvYdzGAKTN/J4hN7QJCFYAq7IrH9caxlru6T5qhX41PNFS1S4HqhsGQg==",
+ "dev": true,
+ "requires": {
+ "find-cache-dir": "^3.0.0",
+ "fs-extra": "8.1.0",
+ "resolve": "1.12.0",
+ "rollup-pluginutils": "2.8.1",
+ "tslib": "1.10.0"
+ },
+ "dependencies": {
+ "fs-extra": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.2.0",
+ "jsonfile": "^4.0.0",
+ "universalify": "^0.1.0"
+ }
+ },
+ "jsonfile": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+ "dev": true,
+ "requires": {
+ "graceful-fs": "^4.1.6"
+ }
+ }
+ }
+ },
"rollup-plugin-uglify": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-2.0.1.tgz",
- "integrity": "sha1-Z7N60e/a+9g69MNrQMGJ7khmyWk=",
+ "version": "6.0.4",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-6.0.4.tgz",
+ "integrity": "sha512-ddgqkH02klveu34TF0JqygPwZnsbhHVI6t8+hGTcYHngPkQb5MIHI0XiztXIN/d6V9j+efwHAqEL7LspSxQXGw==",
"dev": true,
"requires": {
- "uglify-js": "^3.0.9"
+ "@babel/code-frame": "^7.0.0",
+ "jest-worker": "^24.0.0",
+ "serialize-javascript": "^2.1.2",
+ "uglify-js": "^3.4.9"
}
},
"rollup-pluginutils": {
@@ -5970,6 +7064,12 @@
"is-promise": "^2.1.0"
}
},
+ "run-parallel": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz",
+ "integrity": "sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==",
+ "dev": true
+ },
"rxjs": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz",
@@ -6044,6 +7144,12 @@
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"dev": true
},
+ "serialize-javascript": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz",
+ "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==",
+ "dev": true
+ },
"serve-handler": {
"version": "6.1.1",
"resolved": "https://registry.npmjs.org/serve-handler/-/serve-handler-6.1.1.tgz",
@@ -6621,12 +7727,20 @@
"dev": true
},
"supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
+ "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
"dev": true,
"requires": {
- "has-flag": "^3.0.0"
+ "has-flag": "^4.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ }
}
},
"symbol-tree": {
@@ -6721,6 +7835,12 @@
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
"dev": true
},
+ "timsort": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
+ "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=",
+ "dev": true
+ },
"tmp": {
"version": "0.0.33",
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
@@ -6838,6 +7958,15 @@
"integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==",
"dev": true
},
+ "tsutils": {
+ "version": "3.17.1",
+ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz",
+ "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.8.1"
+ }
+ },
"tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
@@ -6862,6 +7991,12 @@
"prelude-ls": "~1.1.2"
}
},
+ "typescript": {
+ "version": "3.7.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz",
+ "integrity": "sha512-A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw==",
+ "dev": true
+ },
"uglify-js": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz",
@@ -6898,6 +8033,12 @@
"set-value": "^2.0.1"
}
},
+ "universalify": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+ "dev": true
+ },
"unset-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
@@ -6973,15 +8114,6 @@
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"dev": true
},
- "util": {
- "version": "0.10.3",
- "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
- "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
- "dev": true,
- "requires": {
- "inherits": "2.0.1"
- }
- },
"util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
@@ -7020,6 +8152,12 @@
"spdx-expression-parse": "^3.0.0"
}
},
+ "validator": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/validator/-/validator-8.2.0.tgz",
+ "integrity": "sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA==",
+ "dev": true
+ },
"verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
@@ -7264,6 +8402,18 @@
"integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=",
"dev": true
},
+ "z-schema": {
+ "version": "3.18.4",
+ "resolved": "https://registry.npmjs.org/z-schema/-/z-schema-3.18.4.tgz",
+ "integrity": "sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw==",
+ "dev": true,
+ "requires": {
+ "commander": "^2.7.1",
+ "lodash.get": "^4.0.0",
+ "lodash.isequal": "^4.0.0",
+ "validator": "^8.0.0"
+ }
+ },
"zrender": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/zrender/-/zrender-4.2.0.tgz",
diff --git a/package.json b/package.json
index 6350fa8..10ccec3 100644
--- a/package.json
+++ b/package.json
@@ -13,11 +13,11 @@
"url": "https://github.com/apache/incubator-echarts.git"
},
"scripts": {
- "release": "node build/build.js --release",
+ "prepublish": "node build/build.js --prepublish",
"build": "node build/build.js",
- "watch": "node build/build.js -w",
+ "watch": "node build/build.js --watch",
+ "release": "node build/build.js --release",
"help": "node build/build.js --help",
- "prepublish": "node build/build.js --prepublish",
"test:visual": "node test/runTest/server.js",
"test:visual:report": "node test/runTest/genReport.js",
"test": "node build/build.js --prepublish && jest --config test/ut/jest.config.js",
@@ -35,8 +35,11 @@
"@babel/helper-simple-access": "7.0.0-beta.31",
"@babel/template": "7.0.0-beta.31",
"@babel/types": "7.0.0-beta.31",
- "assert": "1.4.1",
+ "@microsoft/api-extractor": "7.7.2",
+ "@typescript-eslint/eslint-plugin": "^2.15.0",
+ "@typescript-eslint/parser": "^2.18.0",
"canvas": "^2.6.0",
+ "chalk": "^3.0.0",
"commander": "2.11.0",
"coordtransform": "2.0.2",
"escodegen": "1.8.0",
@@ -45,6 +48,7 @@
"estraverse": "4.1.1",
"fs-extra": "0.26.7",
"glob": "7.0.0",
+ "globby": "11.0.0",
"jest": "^24.9.0",
"jest-canvas-mock": "^2.2.0",
"jsdom": "^15.2.1",
@@ -52,14 +56,16 @@
"open": "6.4.0",
"pixelmatch": "5.0.2",
"pngjs": "3.4.0",
- "rollup": "0.50.0",
+ "rollup": "1.28.0",
"rollup-plugin-commonjs": "8.4.1",
"rollup-plugin-node-resolve": "3.0.0",
- "rollup-plugin-uglify": "2.0.1",
+ "rollup-plugin-typescript2": "0.25.3",
+ "rollup-plugin-uglify": "6.0.4",
"seedrandom": "3.0.3",
"semver": "6.3.0",
"serve-handler": "6.1.1",
"slugify": "1.3.4",
- "socket.io": "2.2.0"
+ "socket.io": "2.2.0",
+ "typescript": "3.7.4"
}
}
diff --git a/tsconfig.json b/tsconfig.json
new file mode 100644
index 0000000..0140bdb
--- /dev/null
+++ b/tsconfig.json
@@ -0,0 +1,24 @@
+{
+ "compilerOptions": {
+ "target": "ES3",
+
+ "noImplicitAny": true,
+ "noImplicitThis": true,
+ "strictBindCallApply": true,
+ "removeComments": true,
+ "sourceMap": true,
+
+ // https://github.com/ezolenko/rollup-plugin-typescript2/issues/12#issuecomment-536173372
+ "moduleResolution": "Node",
+
+ "declaration": true,
+ "declarationMap": false,
+
+ "importHelpers": true
+ },
+ "include": [
+ "src/**/*.ts",
+ "echarts.*.ts",
+ "extension-src/**/*.ts"
+ ]
+}
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@echarts.apache.org
For additional commands, e-mail: commits-help@echarts.apache.org