From 560df66b33404c5d04dbcb125377b4e8e0b18dc2 Mon Sep 17 00:00:00 2001 From: bac-joker Date: Wed, 30 Sep 2020 19:08:37 +0800 Subject: [PATCH] feat: fes design for vue3 --- .eslintrc.js | 5 +- packages/fes-cli/bin/index.js | 8 - .../fes-cli/build/configs/postcss.config.js | 2 +- .../fes-cli/build/configs/webpack.config.js | 67 +- packages/fes-cli/build/helpers/config.js | 31 +- .../fes-cli/build/helpers/createDevServer.js | 4 +- packages/fes-cli/build/mock/init.js | 25 +- .../fes-cli/build/preComplie/components.js | 26 - packages/fes-cli/build/preComplie/route.js | 4 +- packages/fes-cli/build/tasks/build.js | 2 - packages/fes-cli/build/tasks/components.js | 45 - packages/fes-cli/build/tasks/dev.js | 22 +- packages/fes-cli/build/tasks/index.js | 2 - packages/fes-cli/build/tasks/init.js | 4 +- packages/fes-cli/package-lock.json | 276 +- packages/fes-cli/package.json | 9 +- packages/fes-core/LICENSE | 21 - packages/fes-core/README.md | 8 - packages/fes-core/package-lock.json | 446 + packages/fes-core/package.json | 19 +- packages/fes-core/src/DefaultLayout.js | 3 + packages/fes-core/src/api/index.js | 395 - packages/fes-core/src/app.js | 9 - packages/fes-core/src/config/index.js | 61 - packages/fes-core/src/directive/index.js | 22 - packages/fes-core/src/env/index.js | 3 - packages/fes-core/src/fesx/_fesx.js | 4 - packages/fes-core/src/fesx/fesx.js | 56 - packages/fes-core/src/fesx/index.js | 9 - packages/fes-core/src/filter/index.js | 154 - packages/fes-core/src/helpers.js | 4 + packages/fes-core/src/index.html | 3 +- packages/fes-core/src/index.js | 58 + packages/fes-core/src/instance/app.js | 325 - packages/fes-core/src/instance/page.js | 136 - packages/fes-core/src/instance/permission.js | 34 - packages/fes-core/src/map/index.js | 42 - packages/fes-core/src/polyfill/index.js | 48 - packages/fes-core/src/router/index.js | 14 + packages/fes-core/src/storage/index.js | 183 - packages/fes-core/src/util/dom.js | 106 - packages/fes-core/src/util/event.js | 51 - packages/fes-core/src/util/format.js | 46 - packages/fes-core/src/util/history.js | 38 - packages/fes-core/src/util/index.js | 88 - packages/fes-core/src/util/object.js | 27 - packages/fes-core/src/util/type.js | 36 - .../fes-core/src/views/components/index.js | 29 - .../src/views/components/listPanel.vue | 11 - .../src/views/components/routeMenu.vue | 91 - .../src/views/components/searchPanel.vue | 14 - packages/fes-core/src/views/layout/left.vue | 108 - packages/fes-core/src/views/layout/root.vue | 73 - .../fes-core/src/views/styles/components.scss | 48 - packages/fes-plugin-layout/package.json | 16 + packages/fes-plugin-layout/src/helpers.js | 1 + packages/fes-plugin-layout/src/index.js | 12 + .../src/views/layout/LayoutNav.js | 89 + .../src/views/layout/RightRender.js | 12 + .../src/views/layout/RouteMenu.vue | 43 + .../src/views/layout/index.js | 73 + .../src/views/styles/index.scss | 1 - .../src/views/styles/layout.scss | 0 .../src/views/styles/polyfill.scss | 0 packages/fes-plugin-locale/index.js | 14 + packages/fes-plugin-locale/package-lock.json | 13 + packages/fes-plugin-locale/package.json | 15 + packages/fes-plugin-permission/index.js | 78 + packages/fes-plugin-permission/package.json | 12 + packages/fes-plugin-request/package-lock.json | 26 + packages/fes-plugin-request/package.json | 17 + packages/fes-plugin-request/src/helpers.js | 88 + packages/fes-plugin-request/src/index.js | 29 + .../fes-plugin-request/src/reqInterceptors.js | 19 + packages/fes-plugin-request/src/request.js | 91 + .../fes-plugin-request/src/resInterceptors.js | 4 + packages/fes-template/.eslintrc.js | 17 - packages/fes-template/.gitignore | 8 - packages/fes-template/README.md | 13 - packages/fes-template/deploy.sh | 25 - packages/fes-template/fes.config.js | 114 +- packages/fes-template/mock.js | 113 - packages/fes-template/package.json | 10 +- packages/fes-template/src/app.js | 67 +- .../fes-template/src/assets/images/bg.png | Bin 6059 -> 0 bytes .../src/assets/images/favicon.png | Bin 1843 -> 0 bytes .../fes-template/src/assets/images/logo.png | Bin 56344 -> 0 bytes .../fes-template/src/assets/styles/main.scss | 104 - .../src/assets/styles/variables.scss | 90 - packages/fes-template/src/common/service.js | 24 + packages/fes-template/src/components/Card.vue | 54 - .../fes-template/src/components/Chart.vue | 81 - .../fes-template/src/components/fesHeader.vue | 14 - .../fes-template/src/components/fesLeft.vue | 9 - .../src/pages/dashboard/console.vue | 449 - packages/fes-template/src/pages/form/base.vue | 136 - packages/fes-template/src/pages/form/step.vue | 139 - packages/fes-template/src/pages/index.vue | 239 +- .../fes-template/src/pages/layout/i18n.vue | 48 - .../fes-template/src/pages/layout/layout.vue | 17 - .../fes-template/src/pages/layout/static.vue | 18 - .../fes-template/src/pages/list/index.vue | 161 - packages/fes-template/src/pages/onepiece.vue | 16 + packages/fes-template/src/static/1.txt | 1 - packages/fes-template/src/static/bell.png | Bin 443 -> 0 bytes packages/fes-template/src/static/favicon.ico | Bin 1843 -> 0 bytes packages/fes-template/webpack.config.js | 4 - packages/fes-ui/package-lock.json | 14264 ++++++++++++++++ packages/fes-utils/index.js | 5 + packages/fes-utils/package.json | 12 + 110 files changed, 15841 insertions(+), 4419 deletions(-) delete mode 100644 packages/fes-cli/build/preComplie/components.js delete mode 100644 packages/fes-cli/build/tasks/components.js delete mode 100644 packages/fes-core/LICENSE delete mode 100644 packages/fes-core/README.md create mode 100644 packages/fes-core/package-lock.json create mode 100644 packages/fes-core/src/DefaultLayout.js delete mode 100644 packages/fes-core/src/api/index.js delete mode 100644 packages/fes-core/src/app.js delete mode 100644 packages/fes-core/src/config/index.js delete mode 100644 packages/fes-core/src/directive/index.js delete mode 100644 packages/fes-core/src/env/index.js delete mode 100644 packages/fes-core/src/fesx/_fesx.js delete mode 100644 packages/fes-core/src/fesx/fesx.js delete mode 100644 packages/fes-core/src/fesx/index.js delete mode 100644 packages/fes-core/src/filter/index.js create mode 100644 packages/fes-core/src/helpers.js create mode 100644 packages/fes-core/src/index.js delete mode 100644 packages/fes-core/src/instance/app.js delete mode 100644 packages/fes-core/src/instance/page.js delete mode 100644 packages/fes-core/src/instance/permission.js delete mode 100644 packages/fes-core/src/map/index.js delete mode 100644 packages/fes-core/src/polyfill/index.js create mode 100644 packages/fes-core/src/router/index.js delete mode 100644 packages/fes-core/src/storage/index.js delete mode 100644 packages/fes-core/src/util/dom.js delete mode 100644 packages/fes-core/src/util/event.js delete mode 100644 packages/fes-core/src/util/format.js delete mode 100644 packages/fes-core/src/util/history.js delete mode 100644 packages/fes-core/src/util/index.js delete mode 100644 packages/fes-core/src/util/object.js delete mode 100644 packages/fes-core/src/util/type.js delete mode 100644 packages/fes-core/src/views/components/index.js delete mode 100644 packages/fes-core/src/views/components/listPanel.vue delete mode 100644 packages/fes-core/src/views/components/routeMenu.vue delete mode 100644 packages/fes-core/src/views/components/searchPanel.vue delete mode 100644 packages/fes-core/src/views/layout/left.vue delete mode 100644 packages/fes-core/src/views/layout/root.vue delete mode 100644 packages/fes-core/src/views/styles/components.scss create mode 100644 packages/fes-plugin-layout/package.json create mode 100644 packages/fes-plugin-layout/src/helpers.js create mode 100644 packages/fes-plugin-layout/src/index.js create mode 100644 packages/fes-plugin-layout/src/views/layout/LayoutNav.js create mode 100644 packages/fes-plugin-layout/src/views/layout/RightRender.js create mode 100644 packages/fes-plugin-layout/src/views/layout/RouteMenu.vue create mode 100644 packages/fes-plugin-layout/src/views/layout/index.js rename packages/{fes-core => fes-plugin-layout}/src/views/styles/index.scss (63%) rename packages/{fes-core => fes-plugin-layout}/src/views/styles/layout.scss (100%) rename packages/{fes-core => fes-plugin-layout}/src/views/styles/polyfill.scss (100%) create mode 100644 packages/fes-plugin-locale/index.js create mode 100644 packages/fes-plugin-locale/package-lock.json create mode 100644 packages/fes-plugin-locale/package.json create mode 100644 packages/fes-plugin-permission/index.js create mode 100644 packages/fes-plugin-permission/package.json create mode 100644 packages/fes-plugin-request/package-lock.json create mode 100644 packages/fes-plugin-request/package.json create mode 100644 packages/fes-plugin-request/src/helpers.js create mode 100644 packages/fes-plugin-request/src/index.js create mode 100644 packages/fes-plugin-request/src/reqInterceptors.js create mode 100644 packages/fes-plugin-request/src/request.js create mode 100644 packages/fes-plugin-request/src/resInterceptors.js delete mode 100644 packages/fes-template/.eslintrc.js delete mode 100644 packages/fes-template/.gitignore delete mode 100644 packages/fes-template/README.md delete mode 100644 packages/fes-template/deploy.sh delete mode 100644 packages/fes-template/mock.js delete mode 100644 packages/fes-template/src/assets/images/bg.png delete mode 100644 packages/fes-template/src/assets/images/favicon.png delete mode 100644 packages/fes-template/src/assets/images/logo.png delete mode 100644 packages/fes-template/src/assets/styles/main.scss delete mode 100644 packages/fes-template/src/assets/styles/variables.scss create mode 100644 packages/fes-template/src/common/service.js delete mode 100644 packages/fes-template/src/components/Card.vue delete mode 100644 packages/fes-template/src/components/Chart.vue delete mode 100644 packages/fes-template/src/components/fesHeader.vue delete mode 100644 packages/fes-template/src/components/fesLeft.vue delete mode 100644 packages/fes-template/src/pages/dashboard/console.vue delete mode 100644 packages/fes-template/src/pages/form/base.vue delete mode 100644 packages/fes-template/src/pages/form/step.vue delete mode 100644 packages/fes-template/src/pages/layout/i18n.vue delete mode 100644 packages/fes-template/src/pages/layout/layout.vue delete mode 100644 packages/fes-template/src/pages/layout/static.vue delete mode 100644 packages/fes-template/src/pages/list/index.vue create mode 100644 packages/fes-template/src/pages/onepiece.vue delete mode 100644 packages/fes-template/src/static/1.txt delete mode 100644 packages/fes-template/src/static/bell.png delete mode 100644 packages/fes-template/src/static/favicon.ico delete mode 100644 packages/fes-template/webpack.config.js create mode 100644 packages/fes-ui/package-lock.json create mode 100644 packages/fes-utils/index.js create mode 100644 packages/fes-utils/package.json diff --git a/.eslintrc.js b/.eslintrc.js index 3d1b282e..38523df7 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -17,6 +17,9 @@ module.exports = { 'no-param-reassign': 'off', 'func-names': 'off', 'global-require': 'off', - 'class-methods-use-this': 'off' + 'class-methods-use-this': 'off', + 'no-restricted-syntax': 'off', + 'import/prefer-default-export': 'off', + 'import/no-unresolved': 'off' } }; diff --git a/packages/fes-cli/bin/index.js b/packages/fes-cli/bin/index.js index ca6caa64..ddd3885c 100755 --- a/packages/fes-cli/bin/index.js +++ b/packages/fes-cli/bin/index.js @@ -35,14 +35,6 @@ commander.command('route') route(config); }); -commander.command('components') - .description('预编译 src/components 里面的组件') - .action(() => { - const components = require('../build/tasks/components'); - const config = generateConfig('components'); - components(config); - }); - commander.command('dev') .description('开发调试, 默认 local') .action(() => { diff --git a/packages/fes-cli/build/configs/postcss.config.js b/packages/fes-cli/build/configs/postcss.config.js index 1fd92570..b13e9458 100644 --- a/packages/fes-cli/build/configs/postcss.config.js +++ b/packages/fes-cli/build/configs/postcss.config.js @@ -1,7 +1,7 @@ const autoprefixer = require('autoprefixer'); const browsers = require('../helpers/browser'); -module.exports = { +module.ex = { plugins: [ autoprefixer({ browsers }) ] diff --git a/packages/fes-cli/build/configs/webpack.config.js b/packages/fes-cli/build/configs/webpack.config.js index c0df21b5..978edba0 100644 --- a/packages/fes-cli/build/configs/webpack.config.js +++ b/packages/fes-cli/build/configs/webpack.config.js @@ -2,7 +2,7 @@ const path = require('path'); const fs = require('fs'); const merge = require('webpack-merge'); const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const VueLoaderPlugin = require('vue-loader/lib/plugin'); +const { VueLoaderPlugin } = require('vue-loader'); const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); const FriendlyErrorsPlugin = require('@soda/friendly-errors-webpack-plugin'); const CopyPlugin = require('copy-webpack-plugin'); @@ -27,7 +27,7 @@ function handleGzipCompress(compress) { module.exports = function webpackConfig(configs, webpack, mode) { let template = path.resolve( configs.folders.PROJECT_DIR, - './src/index.html' + './publish/index.html' ); if (!fs.existsSync(template)) { template = path.resolve(configs.folders.FES_DIR, './src/index.html'); @@ -44,10 +44,10 @@ module.exports = function webpackConfig(configs, webpack, mode) { ] ]; const plugins = [ + [require.resolve('@vue/babel-plugin-jsx')], [ require.resolve('@babel/plugin-transform-runtime'), { - corejs: 3, - proposals: true + corejs: 3 } ], require.resolve('@babel/plugin-proposal-object-rest-spread'), @@ -96,21 +96,16 @@ module.exports = function webpackConfig(configs, webpack, mode) { entry: { app: [ - path.resolve(configs.folders.FES_DIR, './src/app.js') + path.resolve(configs.folders.PROJECT_DIR, './src/app.js') ] }, resolve: { - extensions: ['.js', '.fes', '.vue', '.json'], + extensions: ['.js', '.jsx', '.vue', '.json'], alias: { projectRoot: configs.folders.PROJECT_DIR, '@': path.resolve(configs.folders.PROJECT_DIR, 'src'), - '@@': path.resolve(configs.folders.FES_DIR, 'src'), - assets: path.resolve( - configs.folders.PROJECT_DIR, - './src/assets/' - ), - vue$: 'vue/dist/vue.esm.js' + assets: path.resolve(configs.folders.PROJECT_DIR, './src/assets/') } }, @@ -128,7 +123,7 @@ module.exports = function webpackConfig(configs, webpack, mode) { /* config.module.rule('vue') */ { - test: /\.vue|fes$/, + test: /\.vue$/, use: [ { loader: require.resolve('cache-loader'), @@ -139,10 +134,9 @@ module.exports = function webpackConfig(configs, webpack, mode) { { loader: require.resolve('vue-loader'), options: { - compilerOptions: { - preserveWhitespace: false - }, - cacheDirectory: path.resolve(configs.folders.PROJECT_DIR, 'node_modules/.cache/vue-loader') + shadowMode: true, + cacheDirectory: path.resolve(configs.folders.PROJECT_DIR, 'node_modules/.cache/vue-loader'), + babelParserPlugins: ['jsx', 'classProperties', 'decorators-legacy'] } } ] @@ -288,7 +282,18 @@ module.exports = function webpackConfig(configs, webpack, mode) { /* config.module.rule('js') */ { test: /\.m?jsx?$/, - exclude: /(node_modules|bower_components)/, + include(filePath) { + if (filePath.startsWith(path.resolve(process.cwd(), 'src'))) { + return true; + } + if (/fes-core.?src/.test(filePath)) { + return true; + } + if (/fes-plugin-[a-z-]+.?(src|index)/.test(filePath)) { + return true; + } + return false; + }, use: [ { loader: require.resolve('cache-loader'), @@ -324,10 +329,10 @@ module.exports = function webpackConfig(configs, webpack, mode) { /* config.plugin('define') */ new webpack.DefinePlugin({ - 'process.privateFesEnv': { - env: `"${configs.env}"` - }, + __VUE_OPTIONS_API__: true, + __VUE_PROD_DEVTOOLS__: false, 'process.env': { + // NODE_ENV: isDev ? 'development' : 'production', env: JSON.stringify(configs.env), command: JSON.stringify(configs.command) } @@ -427,7 +432,21 @@ module.exports = function webpackConfig(configs, webpack, mode) { baseConfig.optimization = { minimizer: [ new TerserPlugin({ + test: /\.m?js(\?.*)?$/i, + chunkFilter: () => true, + warningsFilter: () => true, + extractComments: false, + sourceMap: true, + cache: true, + cacheKeys: defaultCacheKeys => defaultCacheKeys, + parallel: true, + include: undefined, + exclude: undefined, + minify: undefined, terserOptions: { + output: { + comments: /^\**!|@preserve|@license|@cc_on/i + }, compress: { arrows: false, collapse_vars: false, @@ -456,11 +475,7 @@ module.exports = function webpackConfig(configs, webpack, mode) { mangle: { safari10: true } - }, - sourceMap: true, - cache: true, - parallel: true, - extractComments: false + } }) ], splitChunks: { diff --git a/packages/fes-cli/build/helpers/config.js b/packages/fes-cli/build/helpers/config.js index 26d75a91..c9973efa 100644 --- a/packages/fes-cli/build/helpers/config.js +++ b/packages/fes-cli/build/helpers/config.js @@ -1,6 +1,5 @@ const path = require('path'); const fs = require('fs'); -const log = require('./log'); function generateConfig(command, env) { // cli目录 @@ -21,10 +20,7 @@ function generateConfig(command, env) { const config = { command, env, - ports: { - server: 5000, - liveReload: 35729 - }, + port: 5000, projectName, folders: { CLI_DIR, @@ -37,28 +33,9 @@ function generateConfig(command, env) { PROJECT_CPN_DIR } }; - - if (fs.existsSync(fesConfigFile)) { - try { - // eslint-disable-next-line - const fesCofig = require(path.join(config.folders.PROJECT_DIR, 'fes.config.js')); - config.CDN = fesCofig.env[config.env].cdn; - config.needCDN = !!config.CDN; - config.compress = fesCofig.compress; - config.lazyRouter = fesCofig.lazyRouter; - } catch (e) { - config.needCDN = false; - } - } - - if (!config.needCDN) { - if (config.command === 'dev' || config.command === 'build') { - log.warn('项目没有配置cdn,打包之后将不会请求cdn的地址,请开发者注意!!'); - } - } - - return config; + // eslint-disable-next-line + const fesCofig = require(fesConfigFile); + return Object.assign({}, config, fesCofig); } - module.exports = generateConfig; diff --git a/packages/fes-cli/build/helpers/createDevServer.js b/packages/fes-cli/build/helpers/createDevServer.js index e193ee4a..ff14e85e 100644 --- a/packages/fes-cli/build/helpers/createDevServer.js +++ b/packages/fes-cli/build/helpers/createDevServer.js @@ -2,7 +2,7 @@ const http = require('http'); const webpack = require('webpack'); const express = require('express'); -const opn = require('opn'); +const open = require('open'); const path = require('path'); const webpackHotMiddleware = require('webpack-hot-middleware'); const webpackDevMiddleware = require('webpack-dev-middleware'); @@ -43,7 +43,7 @@ module.exports = function createDevServer(port, defaultConfig) { // 初始化Mock数据 initMock(app); - opn(`http://localhost:${port}`); + defaultConfig.open && open(`http://localhost:${port}`); http.createServer(app).listen(port); }; diff --git a/packages/fes-cli/build/mock/init.js b/packages/fes-cli/build/mock/init.js index 664ddbb4..ba75760a 100644 --- a/packages/fes-cli/build/mock/init.js +++ b/packages/fes-cli/build/mock/init.js @@ -14,19 +14,22 @@ const log = require('../helpers/log'); const main = { init(app, argv, cwd) { - this.app = app; - this.argv = argv; - this.cwd = cwd; + const defaultCgiMockFile = path.join(process.cwd(), 'mock.js'); + if (fs.existsSync(defaultCgiMockFile)) { + this.app = app; + this.argv = argv; + this.cwd = cwd; - app.use(logger('dev')); - app.use( - bodyParser.urlencoded({ - extended: false - }) - ); - app.use(cookieParser()); + app.use(logger('dev')); + app.use( + bodyParser.urlencoded({ + extended: false + }) + ); + app.use(cookieParser()); - this.customRoute(); + this.customRoute(); + } }, customRoute() { diff --git a/packages/fes-cli/build/preComplie/components.js b/packages/fes-cli/build/preComplie/components.js deleted file mode 100644 index cafa05d9..00000000 --- a/packages/fes-cli/build/preComplie/components.js +++ /dev/null @@ -1,26 +0,0 @@ -// 全局注册common目录下的组件 -const fs = require('fs'); -const Path = require('path'); -const stringUtil = require('node-plus-string'); - -function addComp(path, outputCommonDir, components) { - const dirList = fs.readdirSync(path); - dirList.forEach((item) => { - if (fs.statSync(`${path}/${item}`).isFile() - && item[0] !== '.' - && ['.fes', '.vue'].indexOf(Path.extname(item)) !== -1) { - const fileName = Path.basename(item, Path.extname(item)); - const tagName = stringUtil.capitalize(fileName); - components.push({ - tagName, - path: Path.resolve(outputCommonDir, item).replace(/\\/g, '\\\\') - }); - } - }); -} - -module.exports = function genComponents(commonDir, outputCommonDir) { - const components = []; - addComp(commonDir, outputCommonDir, components); - return components; -}; diff --git a/packages/fes-cli/build/preComplie/route.js b/packages/fes-cli/build/preComplie/route.js index 15fed007..7ecebd7d 100644 --- a/packages/fes-cli/build/preComplie/route.js +++ b/packages/fes-cli/build/preComplie/route.js @@ -19,7 +19,7 @@ function checkHasLayout(path) { let hasLayout = false; dirList.forEach((item) => { if (fs.statSync(`${path}/${item}`).isFile() - && item[0] !== '.' && ['.fes', '.vue'].indexOf(Path.extname(item)) !== -1 + && item[0] !== '.' && ['.vue', '.jsx'].indexOf(Path.extname(item)) !== -1 && Path.basename(item, Path.extname(item)) === 'layout') { hasLayout = true; } @@ -46,7 +46,7 @@ function genRoute(path, prePathUrl, preRoutes) { } dirList.forEach((item) => { if (fs.statSync(`${path}/${item}`).isFile() - && item[0] !== '.' && ['.fes', '.vue'].indexOf(Path.extname(item)) !== -1) { + && item[0] !== '.' && ['.jsx', '.vue'].indexOf(Path.extname(item)) !== -1) { const fileName = Path.basename(item, Path.extname(item)); const preRouteName = path.slice(pagesDir.length + 1); let routePath = Path.posix.join(preRouteUrl, (fileName === 'index' ? '' : fileName.replace(/@/g, ':'))); diff --git a/packages/fes-cli/build/tasks/build.js b/packages/fes-cli/build/tasks/build.js index 8c55c893..2e808a8c 100644 --- a/packages/fes-cli/build/tasks/build.js +++ b/packages/fes-cli/build/tasks/build.js @@ -3,12 +3,10 @@ const log = require('../helpers/log'); const createProdConfig = require('../configs/webpack.config'); const generateRoute = require('./route'); -const generateComponent = require('./components'); function startBuild(config) { try { generateRoute(config); - generateComponent(config); const webpackConfig = createProdConfig(config, webpack, 'build'); webpack(webpackConfig, (err) => { if (err) { diff --git a/packages/fes-cli/build/tasks/components.js b/packages/fes-cli/build/tasks/components.js deleted file mode 100644 index b9e6189a..00000000 --- a/packages/fes-cli/build/tasks/components.js +++ /dev/null @@ -1,45 +0,0 @@ -const render = require('json-templater/string'); -const path = require('path'); -const endOfLine = require('os').EOL; -const fs = require('fs-extra'); -const getCommonComponent = require('../preComplie/components'); - -function generateComponent(config) { - const OUTPUT_PATH = path.resolve(config.folders.PROJECT_CACHE_DIR, 'commonComp.js'); - const IMPORT_TEMPLATE = 'import {{name}} from \'{{path}}\';'; - const LIST_TEMPLATE = ' {{name}}'; - - const MAIN_TEMPLATE = ` -/** -* 全局组件配置输出 -*/ -{{include}} - -export default { -{{list}} -}; -`; - - const components = getCommonComponent(config.folders.PROJECT_CPN_DIR, config.folders.PROJECT_CPN_DIR); - - const componentsTemplate = []; - const listTemplate = []; - components.forEach((item) => { - componentsTemplate.push(render(IMPORT_TEMPLATE, { - name: item.tagName, - path: item.path - })); - listTemplate.push(render(LIST_TEMPLATE, { - name: item.tagName - })); - }); - - const template = render(MAIN_TEMPLATE, { - include: componentsTemplate.join(endOfLine), - list: listTemplate.join(`,${endOfLine}`) - }); - - fs.outputFileSync(OUTPUT_PATH, template); -} - -module.exports = generateComponent; diff --git a/packages/fes-cli/build/tasks/dev.js b/packages/fes-cli/build/tasks/dev.js index d389a598..72101b1f 100644 --- a/packages/fes-cli/build/tasks/dev.js +++ b/packages/fes-cli/build/tasks/dev.js @@ -7,8 +7,6 @@ const log = require('../helpers/log'); const createDevConfig = require('../configs/webpack.config'); const generateRoute = require('./route'); -const generateComponent = require('./components'); - function routeHandle(config) { generateRoute(config); @@ -27,30 +25,12 @@ function routeHandle(config) { }); } -function globalComponentHandle(config) { - generateComponent(config); - // 监听components变化重新生成组件注入文件 - const compWatcher = chokidar.watch(path.resolve(config.folders.PROJECT_DIR, './src/components')); - compWatcher.on('ready', () => { - compWatcher.on('add', (filePath) => { - if (path.extname(filePath) === '.fes' || path.extname(filePath) === '.vue') { - generateComponent(config); - } - }).on('unlink', (filePath) => { - if (path.extname(filePath) === '.fes' || path.extname(filePath) === '.vue') { - generateComponent(config); - } - }); - }); -} - function startDev(config) { routeHandle(config); - globalComponentHandle(config); const webpackConfig = createDevConfig(config, webpack, 'dev'); if (!webpackConfig) return; - getPort(config.ports.server) + getPort(config.port) .then((port) => { log.message(`------------ find port success. port: ${port}`); createDevServer(port, webpackConfig); diff --git a/packages/fes-cli/build/tasks/index.js b/packages/fes-cli/build/tasks/index.js index 9f1fa8d5..56518f8e 100644 --- a/packages/fes-cli/build/tasks/index.js +++ b/packages/fes-cli/build/tasks/index.js @@ -1,6 +1,5 @@ const init = require('./init.js'); const route = require('./route.js'); -const components = require('./components.js'); const build = require('./build.js'); const dev = require('./dev.js'); const update = require('./update.js'); @@ -8,7 +7,6 @@ const update = require('./update.js'); module.exports = { init, route, - components, build, dev, update diff --git a/packages/fes-cli/build/tasks/init.js b/packages/fes-cli/build/tasks/init.js index 3e40600d..9110ba44 100644 --- a/packages/fes-cli/build/tasks/init.js +++ b/packages/fes-cli/build/tasks/init.js @@ -13,9 +13,9 @@ function createProject(config, projectName) { log.error('该项目已存在,请重新输入!'); return Promise.reject(); } - return new Promise((resolve, reject) => { + return new Promise((resolve) => { const productDir = `${config.folders.PROJECT_DIR}/${projectName}`; - const stdout = execSync(`npm pack @webank/fes-template`, { encoding: 'utf8', stdio: [null]}); + const stdout = execSync('npm pack @webank/fes-template', { encoding: 'utf8', stdio: [null] }); const filePath = path.resolve(config.folders.PROJECT_DIR, stdout.replace('\n', '')); fs.mkdirSync(projectDir); fs.createReadStream(filePath).pipe( diff --git a/packages/fes-cli/package-lock.json b/packages/fes-cli/package-lock.json index 3804d891..ffef567b 100644 --- a/packages/fes-cli/package-lock.json +++ b/packages/fes-cli/package-lock.json @@ -1,6 +1,6 @@ { "name": "@webank/fes-cli", - "version": "0.2.3", + "version": "0.2.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -480,6 +480,14 @@ "@babel/helper-plugin-utils": "^7.8.0" } }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha512-KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==", + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, "@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", @@ -1128,48 +1136,105 @@ } } }, - "@vue/component-compiler-utils": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@vue/component-compiler-utils/-/component-compiler-utils-3.2.0.tgz", - "integrity": "sha512-lejBLa7xAMsfiZfNp7Kv51zOzifnb29FwdnMLa96z26kXErPFioSf9BMcePVIQ6/Gc6/mC0UrPpxAWIHyae0vw==", + "@vue/babel-helper-vue-transform-on": { + "version": "1.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-transform-on/-/babel-helper-vue-transform-on-1.0.0-rc.2.tgz", + "integrity": "sha512-1+7CwjQ0Kasml6rHoNQUmbISwqLNNfFVBUcZl6QBremUl296ZmLrVQPqJP5pyAAWjZke5bpI1hlj+LVVuT7Jcg==" + }, + "@vue/babel-plugin-jsx": { + "version": "1.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@vue/babel-plugin-jsx/-/babel-plugin-jsx-1.0.0-rc.3.tgz", + "integrity": "sha512-/Ibq0hoKsidnHWPhgRpjcjYhYcHpqEm2fiKVAPO88OXZNHGwaGgS4yXkC6TDEvlZep4mBDo+2S5T81wpbVh90Q==", "requires": { - "consolidate": "^0.15.1", - "hash-sum": "^1.0.2", - "lru-cache": "^4.1.2", - "merge-source-map": "^1.1.0", - "postcss": "^7.0.14", - "postcss-selector-parser": "^6.0.2", - "prettier": "^1.18.2", - "source-map": "~0.6.1", - "vue-template-es2015-compiler": "^1.9.0" + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/traverse": "^7.0.0", + "@babel/types": "^7.0.0", + "@vue/babel-helper-vue-transform-on": "^1.0.0-rc.2", + "camelcase": "^6.0.0", + "html-tags": "^3.1.0", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz", + "integrity": "sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==" + } + } + }, + "@vue/compiler-core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0.tgz", + "integrity": "sha512-XqPC7vdv4rFE77S71oCHmT1K4Ks3WE2Gi6Lr4B5wn0Idmp+NyQQBUHsCNieMDRiEpgtJrw+yOHslrsV0AfAsfQ==", + "requires": { + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "@vue/shared": "3.0.0", + "estree-walker": "^2.0.1", + "source-map": "^0.6.1" }, "dependencies": { - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=" - }, - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" - }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=" } } }, + "@vue/compiler-dom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0.tgz", + "integrity": "sha512-ukDEGOP8P7lCPyStuM3F2iD5w2QPgUu2xwCW2XNeqPjFKIlR2xMsWjy4raI/cLjN6W16GtlMFaZdK8tLj5PRog==", + "requires": { + "@vue/compiler-core": "3.0.0", + "@vue/shared": "3.0.0" + } + }, + "@vue/compiler-sfc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.0.tgz", + "integrity": "sha512-1Bn4L5jNRm6tlb79YwqYUGGe+Yc9PRoRSJi67NJX6icdhf84+tRMtESbx1zCLL9QixQXu2+7aLkXHxvh4RpqAA==", + "requires": { + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "@vue/compiler-core": "3.0.0", + "@vue/compiler-dom": "3.0.0", + "@vue/compiler-ssr": "3.0.0", + "@vue/shared": "3.0.0", + "consolidate": "^0.16.0", + "estree-walker": "^2.0.1", + "hash-sum": "^2.0.0", + "lru-cache": "^5.1.1", + "magic-string": "^0.25.7", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.32", + "postcss-modules": "^3.2.2", + "postcss-selector-parser": "^6.0.2", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + } + } + }, + "@vue/compiler-ssr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.0.tgz", + "integrity": "sha512-Er41F9ZFyKB3YnNbE6JSTIGCVWve3NAQimgDOk4uP42OnckxBYKGBTutDeFNeqUZBMu/9vRHYrxlGFC9Z5jBVQ==", + "requires": { + "@vue/compiler-dom": "3.0.0", + "@vue/shared": "3.0.0" + } + }, + "@vue/shared": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0.tgz", + "integrity": "sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA==" + }, "@webassemblyjs/ast": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", @@ -2692,11 +2757,11 @@ "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" }, "consolidate": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.15.1.tgz", - "integrity": "sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz", + "integrity": "sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==", "requires": { - "bluebird": "^3.1.1" + "bluebird": "^3.7.2" } }, "constants-browserify": { @@ -3639,6 +3704,11 @@ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, + "estree-walker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz", + "integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==" + }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", @@ -4482,6 +4552,14 @@ "globule": "^1.0.0" } }, + "generic-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", + "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", + "requires": { + "loader-utils": "^1.1.0" + } + }, "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", @@ -4840,6 +4918,11 @@ } } }, + "html-tags": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.1.0.tgz", + "integrity": "sha512-1qYz89hW3lFDEazhjW0yVAV87lw8lVkrJocr72XmBkMKsoSVJCQx3W8BXsC7hO2qAt8BoVjYjtAcZ9perqGnNg==" + }, "html-webpack-plugin": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-3.2.0.tgz", @@ -4966,6 +5049,11 @@ "safer-buffer": ">= 2.1.2 < 3" } }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + }, "icss-utils": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", @@ -5167,6 +5255,11 @@ "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=" }, + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==" + }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", @@ -5614,6 +5707,11 @@ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, "lodash.clonedeep": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", @@ -5666,6 +5764,14 @@ } } }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, "make-dir": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", @@ -6494,13 +6600,23 @@ "wrappy": "1" } }, - "opn": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz", - "integrity": "sha1-erwi5kTf9jsKltWrfyeQwPAavJU=", + "open": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/open/-/open-7.3.0.tgz", + "integrity": "sha512-mgLwQIx2F/ye9SmbrUkurZCnkoXyXyu9EbHtJZrICjVAJfyMArdHp3KkixGdZx1ZHFPNIwl0DDM1dFFqXbTLZw==", "requires": { - "object-assign": "^4.0.1", - "pinkie-promise": "^2.0.0" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + } } }, "os-browserify": { @@ -7087,6 +7203,22 @@ } } }, + "postcss-modules": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-3.2.2.tgz", + "integrity": "sha512-JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw==", + "requires": { + "generic-names": "^2.0.1", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "string-hash": "^1.1.1" + } + }, "postcss-modules-extract-imports": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", @@ -7369,12 +7501,6 @@ "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=" }, - "prettier": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.19.1.tgz", - "integrity": "sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==", - "optional": true - }, "pretty-error": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", @@ -8675,6 +8801,11 @@ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, "spawn-sync": { "version": "1.0.15", "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", @@ -8831,6 +8962,11 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, "string-replace-loader": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-2.3.0.tgz", @@ -9017,6 +9153,11 @@ "has-flag": "^3.0.0" } }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=" + }, "svgo": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", @@ -9725,27 +9866,25 @@ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==" }, - "vue-hot-reload-api": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", - "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==" - }, "vue-loader": { - "version": "15.9.3", - "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-15.9.3.tgz", - "integrity": "sha512-Y67VnGGgVLH5Voostx8JBZgPQTlDQeOVBLOEsjc2cXbCYBKexSKEpOA56x0YZofoDOTszrLnIShyOX1p9uCEHA==", + "version": "16.0.0-beta.8", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.0.0-beta.8.tgz", + "integrity": "sha512-oouKUQWWHbSihqSD7mhymGPX1OQ4hedzAHyvm8RdyHh6m3oIvoRF+NM45i/bhNOlo8jCnuJhaSUf/6oDjv978g==", "requires": { - "@vue/component-compiler-utils": "^3.1.0", - "hash-sum": "^1.0.2", - "loader-utils": "^1.1.0", - "vue-hot-reload-api": "^2.3.0", - "vue-style-loader": "^4.1.0" + "chalk": "^4.1.0", + "hash-sum": "^2.0.0", + "loader-utils": "^2.0.0" }, "dependencies": { - "hash-sum": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", - "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=" + "loader-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz", + "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } } } }, @@ -9774,11 +9913,6 @@ "he": "^1.1.0" } }, - "vue-template-es2015-compiler": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", - "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==" - }, "watchpack": { "version": "1.7.4", "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", diff --git a/packages/fes-cli/package.json b/packages/fes-cli/package.json index 95a86b5f..36084f35 100644 --- a/packages/fes-cli/package.json +++ b/packages/fes-cli/package.json @@ -1,6 +1,6 @@ { "name": "@webank/fes-cli", - "version": "0.2.3", + "version": "0.2.2", "description": "一个好用的前端管理台快速开发框架", "preferGlobal": true, "scripts": { @@ -35,6 +35,9 @@ "@babel/runtime-corejs3": "^7.11.2", "@intervolga/optimize-cssnano-plugin": "^1.0.6", "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@vue/babel-plugin-jsx": "^1.0.0-rc.3", + "@vue/compiler-sfc": "^3.0.0", + "@webank/fes-core": "^0.2.1", "autoprefixer": "^8.1.0", "babel-loader": "^8.0.6", "body-parser": "^1.5.2", @@ -72,7 +75,7 @@ "node-sass": "^4.14.1", "normalize-path": "^1.0.0", "on-finished": "^2.3.0", - "opn": "^4.0.2", + "open": "^7.3.0", "path": "^0.12.7", "postcss": "^7.0.32", "postcss-loader": "^4.0.1", @@ -91,7 +94,7 @@ "terser-webpack-plugin": "^2.2.1", "thread-loader": "^2.1.3", "url-loader": "^2.2.0", - "vue-loader": "^15.7.2", + "vue-loader": "^16.0.0-beta.8", "vue-style-loader": "^4.1.2", "vue-template-compiler": "^2.6.10", "webpack": "^4.41.2", diff --git a/packages/fes-core/LICENSE b/packages/fes-core/LICENSE deleted file mode 100644 index 0978fbf7..00000000 --- a/packages/fes-core/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2020-present webank - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/packages/fes-core/README.md b/packages/fes-core/README.md deleted file mode 100644 index b797ffd8..00000000 --- a/packages/fes-core/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# fes-core -`fes-core`是框架核心,对Vue的API做了一些增强。建议先阅读学习[Vue2.0](https://cn.vuejs.org/v2/guide/)。 - -## 安装: -npm install @webank/fes-core --save - -## 文档 -详细使用请查看[文档](https://webankfintech.github.io/fes.js/) diff --git a/packages/fes-core/package-lock.json b/packages/fes-core/package-lock.json new file mode 100644 index 00000000..29355878 --- /dev/null +++ b/packages/fes-core/package-lock.json @@ -0,0 +1,446 @@ +{ + "name": "@webank/fes-core", + "version": "0.2.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", + "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==" + }, + "@babel/parser": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz", + "integrity": "sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==" + }, + "@babel/runtime-corejs3": { + "version": "7.11.2", + "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz", + "integrity": "sha512-qh5IR+8VgFz83VBa6OkaET6uN/mJOhHONuy3m1sgF0CV6mXdPSEBdA7e1eUbVvyNtANjMbg22JUv71BaDXLY6A==", + "requires": { + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/types": { + "version": "7.11.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz", + "integrity": "sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==", + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@vue/compiler-core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0.tgz", + "integrity": "sha512-XqPC7vdv4rFE77S71oCHmT1K4Ks3WE2Gi6Lr4B5wn0Idmp+NyQQBUHsCNieMDRiEpgtJrw+yOHslrsV0AfAsfQ==", + "requires": { + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "@vue/shared": "3.0.0", + "estree-walker": "^2.0.1", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0.tgz", + "integrity": "sha512-ukDEGOP8P7lCPyStuM3F2iD5w2QPgUu2xwCW2XNeqPjFKIlR2xMsWjy4raI/cLjN6W16GtlMFaZdK8tLj5PRog==", + "requires": { + "@vue/compiler-core": "3.0.0", + "@vue/shared": "3.0.0" + } + }, + "@vue/compiler-sfc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.0.tgz", + "integrity": "sha512-1Bn4L5jNRm6tlb79YwqYUGGe+Yc9PRoRSJi67NJX6icdhf84+tRMtESbx1zCLL9QixQXu2+7aLkXHxvh4RpqAA==", + "requires": { + "@babel/parser": "^7.11.5", + "@babel/types": "^7.11.5", + "@vue/compiler-core": "3.0.0", + "@vue/compiler-dom": "3.0.0", + "@vue/compiler-ssr": "3.0.0", + "@vue/shared": "3.0.0", + "consolidate": "^0.16.0", + "estree-walker": "^2.0.1", + "hash-sum": "^2.0.0", + "lru-cache": "^5.1.1", + "magic-string": "^0.25.7", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.32", + "postcss-modules": "^3.2.2", + "postcss-selector-parser": "^6.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.0.tgz", + "integrity": "sha512-Er41F9ZFyKB3YnNbE6JSTIGCVWve3NAQimgDOk4uP42OnckxBYKGBTutDeFNeqUZBMu/9vRHYrxlGFC9Z5jBVQ==", + "requires": { + "@vue/compiler-dom": "3.0.0", + "@vue/shared": "3.0.0" + } + }, + "@vue/reactivity": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.0.tgz", + "integrity": "sha512-mEGkztGQrAPZRhV7C6PorrpT3+NtuA4dY2QjMzzrW31noKhssWTajRZTwpLF39NBRrF5UU6cp9+1I0FfavMgEQ==", + "requires": { + "@vue/shared": "3.0.0" + } + }, + "@vue/runtime-core": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.0.tgz", + "integrity": "sha512-3ABMLeA0ZbeVNLbGGLXr+pNUwqXILOqz8WCVGfDWwQb+jW114Cm8djOHVVDoqdvRETQvDf8yHSUmpKHZpQuTkA==", + "requires": { + "@vue/reactivity": "3.0.0", + "@vue/shared": "3.0.0" + } + }, + "@vue/runtime-dom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0.tgz", + "integrity": "sha512-f312n5w9gK6mVvkDSj6/Xnot1XjlKXzFBYybmoy6ahAVC8ExbQ+LOWti1IZM/adU8VMNdKaw7Q53Hxz3y5jX8g==", + "requires": { + "@vue/runtime-core": "3.0.0", + "@vue/shared": "3.0.0", + "csstype": "^2.6.8" + } + }, + "@vue/shared": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0.tgz", + "integrity": "sha512-4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==" + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "consolidate": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz", + "integrity": "sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==", + "requires": { + "bluebird": "^3.7.2" + } + }, + "core-js-pure": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz", + "integrity": "sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==" + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==" + }, + "csstype": { + "version": "2.6.13", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz", + "integrity": "sha512-ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "estree-walker": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz", + "integrity": "sha512-tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==" + }, + "generic-names": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz", + "integrity": "sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==", + "requires": { + "loader-utils": "^1.1.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "hash-sum": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-2.0.0.tgz", + "integrity": "sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==" + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=" + }, + "icss-utils": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", + "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", + "requires": { + "postcss": "^7.0.14" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=" + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" + }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "magic-string": { + "version": "0.25.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", + "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "requires": { + "sourcemap-codec": "^1.4.4" + } + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", + "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "requires": { + "source-map": "^0.6.1" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "postcss": { + "version": "7.0.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", + "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + } + }, + "postcss-modules": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/postcss-modules/-/postcss-modules-3.2.2.tgz", + "integrity": "sha512-JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw==", + "requires": { + "generic-names": "^2.0.1", + "icss-replace-symbols": "^1.1.0", + "lodash.camelcase": "^4.3.0", + "postcss": "^7.0.32", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.2.0", + "postcss-modules-values": "^3.0.0", + "string-hash": "^1.1.1" + } + }, + "postcss-modules-extract-imports": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", + "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", + "requires": { + "postcss": "^7.0.5" + } + }, + "postcss-modules-local-by-default": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz", + "integrity": "sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==", + "requires": { + "icss-utils": "^4.1.1", + "postcss": "^7.0.32", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" + } + }, + "postcss-modules-scope": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", + "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", + "requires": { + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" + } + }, + "postcss-modules-values": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", + "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", + "requires": { + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" + } + }, + "postcss-selector-parser": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", + "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1", + "util-deprecate": "^1.0.2" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", + "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==" + }, + "regenerator-runtime": { + "version": "0.13.7", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", + "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "string-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz", + "integrity": "sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs=" + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", + "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "vue": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.0.0.tgz", + "integrity": "sha512-ZMrAARZ32sGIaYKr7Fk2GZEBh/VhulSrGxcGBiAvbN4fhjl3tuJyNFbbbLFqGjndbLoBW66I2ECq8ICdvkKdJw==", + "requires": { + "@vue/compiler-dom": "3.0.0", + "@vue/runtime-dom": "3.0.0", + "@vue/shared": "3.0.0" + } + }, + "vue-router": { + "version": "4.0.0-beta.12", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.0-beta.12.tgz", + "integrity": "sha512-prbqAs2hSlKGt3U/Iyq8G62q/oprwmEd//a6x5M1uqP1aZxwjq0s27ZG8hfUSOOPB7SYg4NOydwy6zi/b3S2Ww==" + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } +} diff --git a/packages/fes-core/package.json b/packages/fes-core/package.json index 9d0f3d06..a4237262 100644 --- a/packages/fes-core/package.json +++ b/packages/fes-core/package.json @@ -1,10 +1,11 @@ { "name": "@webank/fes-core", - "version": "0.2.3", + "version": "0.2.1", "description": "一个好用的前端管理台快速开发框架", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, + "main": "src/index.js", "author": "harrywan,qlin", "repository": { "type": "git", @@ -18,15 +19,13 @@ "easy", "strong" ], - "dependencies": { - "axios": "^0.16.2", - "lodash": "^4.17.15", - "vue": "^2.6.10", - "vue-i18n": "^8.4.0", - "vue-router": "^2.6.0", - "vue-template-compiler": "^2.6.10" - }, "peerDependencies": { - "@webank/fes-ui": "^0.1.0" + "vue": "^3.0.0" + }, + "dependencies": { + "@babel/runtime-corejs3": "^7.11.2", + "@vue/compiler-sfc": "^3.0.0", + "vue": "^3.0.0", + "vue-router": "^4.0.0-beta.12" } } diff --git a/packages/fes-core/src/DefaultLayout.js b/packages/fes-core/src/DefaultLayout.js new file mode 100644 index 00000000..b8ada01e --- /dev/null +++ b/packages/fes-core/src/DefaultLayout.js @@ -0,0 +1,3 @@ +import { defineComponent } from 'vue'; + +export default defineComponent(() => () => ()); diff --git a/packages/fes-core/src/api/index.js b/packages/fes-core/src/api/index.js deleted file mode 100644 index b3bcd61b..00000000 --- a/packages/fes-core/src/api/index.js +++ /dev/null @@ -1,395 +0,0 @@ -/** - * 操作Api - */ -import axios from 'axios'; -import util from '../util'; -import env from '../env'; -import storage from '../storage'; - -const trim = function (obj) { - Object.keys(obj).forEach((p) => { - if (util.isString(obj[p])) { - obj[p] = obj[p].trim(); - } else if (util.isPlainObject(obj[p])) { - trim(obj[p]); - } else if (util.isArray(obj[p])) { - trim(obj[p]); - } - }); -}; - -const requsetLog = { - data: storage.get('FES_AJAX_LOG') || [], - importantApi: {}, - creatLog(url, data, status) { - let _data; - if (data) { - _data = JSON.stringify(data); - } - if (_data && _data.length > 1000) { - data = _data.slice(0, 1000); // 大约1K - } - const now = new Date().getTime(); - const obj = { - url, - data, - timestamp: now, - status: status || 'send' - }; - if (this.data.length >= 500) { - this.data.shift(); - } - this.data.push(obj); - try { - storage.set('FES_AJAX_LOG', this.data); - } catch (e) { - storage.remove('FES_AJAX_LOG'); - this.data = [obj]; - storage.set('FES_AJAX_LOG', this.data); - } - return obj; - }, - changeLogStatus(log, newStatus) { - const logs = this.data.filter(obj => obj.timestamp === log.timestamp); - if (logs.length > 0) { - logs[0].status = newStatus; - storage.set('FES_AJAX_LOG', this.data); - } - }, - getLogByURL(url, data) { - return this.data.filter(obj => obj.url === url && JSON.stringify(data) === JSON.stringify(obj.data)); - } -}; - -const instance = axios.create({ - method: 'post', - baseURL: env.api, - timeout: 10000, - withCredentials: true -}); - -const api = { - instance, - error: {}, - constructionOfResponse: { - codePath: 'code', - successCode: '0', - messagePath: 'msg', - resultPath: 'result' - } -}; - -const getData = function (data, resultFormat) { - const _arr = ['codePath', 'messagePath', 'resultPath']; - const arr = []; const - rst = {}; - for (let i = 0; i < _arr.length; i++) { - const pathArray = resultFormat[_arr[i]].split('.'); - const pathLength = pathArray.length; - let result; - if (pathLength === 1 && pathArray[0] === '*') { - result = data; - } else { - result = data[pathArray[0]]; - } - for (let j = 1; j < pathLength; j++) { - result = result[pathArray[j]]; - if (!result) { - if (j < pathLength - 1) { - console.error(`【FEX】ConstructionOfResponse配置错误:${_arr[i]}拿到的值是undefined,请检查配置`); - } - break; - } - } - arr.push(result); - } - rst.code = arr[0]; - rst.message = arr[1]; - rst.result = arr[2]; - return rst; -}; - -const success = function (response) { - // 响应结构 - const resultFormat = (response.config && response.config.resultFormat) || api.constructionOfResponse; - // 哪些code不处理错误 - const ignoreCode = (response.config && response.config.ignoreCode) || []; - if (util.isNull(resultFormat.codePath) || util.isNull(resultFormat.successCode) - || util.isNull(resultFormat.messagePath) || util.isNull(resultFormat.resultPath)) { - console.error('【FEX】Api配置错误: 请调用setConstructionOfResponse来设置API的响应结构'); - return null; - } - - let data; - if (util.isString(response.data)) { - data = JSON.parse(response.data); - } else if (util.isObject(response.data)) { - data = response.data; - } else { - throw new Error(util.format('fesMessages.defaultError')); - } - - const { code, message, result } = getData(data, resultFormat); - - if (code !== resultFormat.successCode) { - let _message = ''; - if (api.error[code]) { - api.error[code].forEach(fn => fn(response)); - } else if (!ignoreCode.includes(code) && ignoreCode !== '*') { - _message = message || util.format('fesMessages.defaultError'); - } - const error = new Error(_message); - error.response = response; - throw error; - } - return result || {}; -}; - -const fail = function (error) { - let _message = ''; - const response = error.response; - if (response && api.error[response.status]) { - api.error[response.status].forEach(fn => fn(response)); - } else { - _message = util.format('fesMessages.defaultError'); - try { - if (response && response.data) { - let data; - if (util.isString(response.data)) { - data = JSON.parse(response.data); - } else if (util.isObject(response.data)) { - data = response.data; - } - if (data) { - const { message } = getData(data, (response.config && response.config.resultFormat) || api.constructionOfResponse); - _message = message; - } - } - } catch (e) { - // 可以啥都不做 - } - } - error.message = _message; - throw error; -}; - -const param = function (url, data, option) { - const method = instance.defaults.method || 'post'; - if (util.isNull(url)) { - return console.error('请传入URL'); - } if (!util.isNull(url) && util.isNull(data) && util.isNull(option)) { - option = { - method - }; - } else if (!util.isNull(url) && !util.isNull(data) && util.isNull(option)) { - option = { - method - }; - if (util.isString(data)) { - option.method = data; - } else if (util.isObject(data)) { - option.data = data; - } - } else if (!util.isNull(url) && !util.isNull(data) && !util.isNull(option)) { - if (!util.isObject(data)) { - data = {}; - } - if (util.isString(option)) { - option = { - method: option - }; - } else if (util.isObject(option)) { - option.method = option.method || method; - } else { - option = { - method - }; - } - if (option.method === 'get' || option.method === 'delete' || option.method === 'head' || option.method === 'options') { - option.params = data; - } - if (option.method === 'post' || option.method === 'put' || option.method === 'patch') { - option.data = data; - } - } - // 过滤参数中的空格 - const _data = option.params || option.data; - if (_data && util.isObject(_data) && option.trim !== false) { - trim(_data); - } - - option.url = url; - - // 如果传了button - if (option.button) { - option.button.currentDisabled = true; - } - - return instance.request(option); -}; - -const action = function (url, data, option) { - // 记录日志 - const log = requsetLog.creatLog(url, data); - - return param(url, data, option) - .then(success, fail) - .then((response) => { - requsetLog.changeLogStatus(log, 'success'); - if (option && option.button) { - option.button.currentDisabled = false; - } - return response; - }) - .catch((error) => { - requsetLog.changeLogStatus(log, 'fail'); - if (option && option.button) { - option.button.currentDisabled = false; - } - error.message && window.Toast.error(error.message); - throw error; - }); -}; - -api.fetch = function (url, data, option) { - if (requsetLog.importantApi[url]) { - const logs = requsetLog.getLogByURL(url, data); - if (logs.length > 0) { - const compareLog = logs[logs.length - 1]; - if (compareLog.status === 'compare') { - requsetLog.creatLog(url, data, 'notAllowed'); - return { - then: () => {} - }; - } - const importantApiOption = requsetLog.importantApi[url]; - const control = importantApiOption.control || 10000; - const message = importantApiOption.message || util.format('fesMessages.importInterfaceTip', { s: control / 1000 }); - if (new Date().getTime() - compareLog.timestamp < control) { - const oldStatus = compareLog.status; - requsetLog.changeLogStatus(compareLog, 'compare'); - return new Promise(((resolve, reject) => { - window.Message.confirm(util.format('fesMessages.tip'), message).then((index) => { - if (compareLog.status === 'compare') { - requsetLog.changeLogStatus(compareLog, oldStatus); - } - if (index === 0) { - resolve(action(url, data, option)); - } else { - reject(new Error('不允许相同操作间隔过小')); - } - }); - })); - } - return action(url, data, option); - } - return action(url, data, option); - } - return action(url, data, option); -}; - -/** - * 设置 request Header - * @param headers Object - */ -api.setHeader = function (headers = {}) { - Object.keys(headers).forEach((p) => { - if (['delete', 'get', 'head', 'post', 'put', 'patch', 'common'].includes(p)) { - instance.defaults.headers[p] = Object.assign({}, instance.defaults.headers[p], headers[p]); - } else { - instance.defaults.headers.common[p] = headers[p]; - } - }); -}; - -/** - * 配置ajax请求参数 - * @param option - */ -api.option = function (option = {}) { - const { - root, - baseURL, - timeout, - headers, - config, - ...others - } = option; - if (root || baseURL) { - instance.defaults.baseURL = root || baseURL; - } - if (timeout && util.isNumber(timeout)) { - instance.defaults.timeout = timeout; - } - if (headers) { - api.setHeader(headers); - } - const otherPropertys = Object.assign({}, others, config); - Object.keys(otherPropertys).forEach((p) => { - instance.defaults[p] = otherPropertys[p]; - }); -}; - -/** - * 请求拦截器 - * @param before function 请求之前的拦截器 - */ -api.setReqInterceptor = function (before, error) { - if (Array.isArray(before)) { - return instance.interceptors.request.use(...before); - } - return instance.interceptors.request.use(before, error); -}; -api.ejectReqInterceptor = function (interceptor) { - return instance.interceptors.request.eject(interceptor); -}; - -/** - * 响应拦截器 - * @param after function 响应之后的拦截器 - */ -api.setResInterceptor = function (after, error) { - if (Array.isArray(after)) { - return instance.interceptors.response.use(...after); - } - return instance.interceptors.response.use(after, error); -}; -api.ejectResInterceptor = function (interceptor) { - return instance.interceptors.response.eject(interceptor); -}; - -/** - * 配置错误响应 - * @param option - */ -api.setError = function (option) { - if (option && util.isObject(option)) { - Object.keys(option).forEach((key) => { - if (!util.isArray(api.error[key])) { - api.error[key] = []; - } - api.error[key].push(option[key]); - }); - } -}; - -/** - * 设置响应结构 - * @param constructionOfResponse - */ -api.setResponse = function (constructionOfResponse) { - this.constructionOfResponse = constructionOfResponse; -}; - -/** - * 配置重要请求 - */ -api.setImportant = function (option) { - if (option && util.isObject(option)) { - requsetLog.importantApi = option; - } else { - console.error('【FEX】ImportantApi配置错误: 参数必须是对象{"/get": { message:"xxx", control: 10000 } }'); - } -}; - -export default api; diff --git a/packages/fes-core/src/app.js b/packages/fes-core/src/app.js deleted file mode 100644 index 84a20634..00000000 --- a/packages/fes-core/src/app.js +++ /dev/null @@ -1,9 +0,0 @@ -import './polyfill'; -// eslint-disable-next-line -import '@webank/fes-ui/dist/styles/fes-ui.css'; -import './views/styles/index.scss'; -// eslint-disable-next-line -import init from 'projectRoot/src/app.js'; -import App from './instance/app'; - -App.init(init); diff --git a/packages/fes-core/src/config/index.js b/packages/fes-core/src/config/index.js deleted file mode 100644 index f885e93d..00000000 --- a/packages/fes-core/src/config/index.js +++ /dev/null @@ -1,61 +0,0 @@ -// eslint-disable-next-line -import fesConfig from 'projectRoot/fes.config.js'; - -// 设置默认 -if (!fesConfig.mode) { - fesConfig.mode = 'vertical'; -} - -if (!fesConfig.theme) { - fesConfig.theme = 'blue'; -} - -if (!fesConfig.env) { - fesConfig.env = {}; -} - -if (!fesConfig.roles) { - fesConfig.roles = {}; -} - -if (!fesConfig.menu) { - fesConfig.menu = []; -} - -if (!fesConfig.i18n) { - fesConfig.i18n = { - locale: 'zh-cn', - messages: { - } - }; -} -if (!fesConfig.i18n.locale) { - fesConfig.i18n.locale = 'zh-cn'; -} -if (!fesConfig.i18n.messages) { - fesConfig.i18n.messages = {}; -} -if (!fesConfig.i18n.messages['zh-cn']) { - fesConfig.i18n.messages['zh-cn'] = {}; -} -if (!fesConfig.i18n.messages.en) { - fesConfig.i18n.messages.en = {}; -} -Object.assign(fesConfig.i18n.messages['zh-cn'], { - fesMessages: { - defaultError: '后台接口异常,请联系开发处理!', - importInterfaceTip: '两个相同请求间隔小于 {s} 秒,是否继续?', - tip: '提示', - noPermission: '您没有访问当前路径的权限' - } -}); -Object.assign(fesConfig.i18n.messages.en, { - fesMessages: { - defaultError: 'Server-end API error, please contact the admin.', - importInterfaceTip: 'Repetitive request in {s} seconds, continue anyway?', - tip: 'Tips', - noPermission: 'You don’t have the authority to access.' - } -}); - -export default fesConfig; diff --git a/packages/fes-core/src/directive/index.js b/packages/fes-core/src/directive/index.js deleted file mode 100644 index e30be449..00000000 --- a/packages/fes-core/src/directive/index.js +++ /dev/null @@ -1,22 +0,0 @@ -// TODO runtime 实例和具体功能解耦 -/*eslint-disable */ -import app from '../instance/app'; - -/** - * 常用的指令 - */ -export const permission = { - bind(el, binding) { - const dispaly = el.style.display; - const setDispaly = () => { - const urls = app.getAllowPage() || []; - if (urls.indexOf(binding.value) === -1) { - el.style.display = 'none'; - } else { - el.style.display = dispaly; - } - }; - setDispaly(); - app.FesUtil.event.on('fes_allowPage_change', setDispaly); - } -}; diff --git a/packages/fes-core/src/env/index.js b/packages/fes-core/src/env/index.js deleted file mode 100644 index bd46bbdb..00000000 --- a/packages/fes-core/src/env/index.js +++ /dev/null @@ -1,3 +0,0 @@ -import fesConfig from '../config'; - -export default fesConfig.env[process.privateFesEnv.env] || {}; diff --git a/packages/fes-core/src/fesx/_fesx.js b/packages/fes-core/src/fesx/_fesx.js deleted file mode 100644 index 1672d8a4..00000000 --- a/packages/fes-core/src/fesx/_fesx.js +++ /dev/null @@ -1,4 +0,0 @@ -import FesxClass from './fesx'; - -const insideName = `inside_${window.location.pathname.replace(/\//g, '_')}`; -export default new FesxClass(insideName); diff --git a/packages/fes-core/src/fesx/fesx.js b/packages/fes-core/src/fesx/fesx.js deleted file mode 100644 index ff4e4c3c..00000000 --- a/packages/fes-core/src/fesx/fesx.js +++ /dev/null @@ -1,56 +0,0 @@ -/** - * 全局状态管理 - */ -import Vue from 'vue'; -import storage from '../storage'; -import util from '../util'; - -class Fesx { - constructor(name) { - Object.defineProperty(this, 'name', { - value: name, - enumerable: false - }); - Object.defineProperty(this, 'pre', { - value: `FesFesx_${this.name}_`, - enumerable: false - }); - const keys = Object.keys(sessionStorage); - const len = keys.length; - for (let i = 0; i < len; i++) { - const key = keys[i]; - if (key.indexOf(this.pre) === 0) { - Vue.set(this, key.slice(this.pre.length), storage.get(key)); - } - } - } - - get(prop) { - if (!this[prop]) { - this.set(prop, storage.get(this.pre + prop)); - } - return this[prop]; - } - - set(prop, value) { - Vue.set(this, prop, value); - if (!util.isFunction(value)) { - storage.set(this.pre + prop, value); - } - return this; - } - - clear() { - const keys = Object.keys(sessionStorage); - const len = keys.length; - for (let i = 0; i < len; i++) { - const key = keys[i]; - if (key.indexOf(this.pre) === 0) { - storage.remove(key); - Vue.set(this, key.slice(this.pre.length), undefined); - } - } - } -} - -export default Fesx; diff --git a/packages/fes-core/src/fesx/index.js b/packages/fes-core/src/fesx/index.js deleted file mode 100644 index f5b9f781..00000000 --- a/packages/fes-core/src/fesx/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * 全局状态管理 - */ - -import Fesx from './fesx'; - -const collection = new Fesx('outside'); - -export default collection; diff --git a/packages/fes-core/src/filter/index.js b/packages/fes-core/src/filter/index.js deleted file mode 100644 index 439ff2dc..00000000 --- a/packages/fes-core/src/filter/index.js +++ /dev/null @@ -1,154 +0,0 @@ -/** - * 常用的过滤器 - */ -import util from '../util'; - -/** - * 日期格式化 - * @param _date - * @param format - * @returns {*} - */ -export function date(timestap, format) { - if (!timestap) return ''; - format = format || 'yyyy-MM-dd hh:mm:ss'; - timestap = Number(timestap); - const time = new Date(timestap); - const obj = { - 'y+': time.getFullYear(), - 'M+': time.getMonth() + 1, - 'd+': time.getDate(), - 'h+': time.getHours(), - 'm+': time.getMinutes(), - 's+': time.getSeconds() - }; - - if (new RegExp('(y+)').test(format)) { - format = format.replace(RegExp.$1, obj['y+']); - } - Object.keys(obj).forEach((j) => { - if (new RegExp(`(${j})`).test(format)) { - format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (obj[j]) : ((`00${obj[j]}`).substr((`${obj[j]}`).length))); - } - }); - return format; -} - -/** - * 资金格式化插件 - * @param value - * @returns {string|*} - */ -export function money(value) { - const m = []; - value = Number(value).toFixed(2); - // 获取小数部分 - const decimals = value.match(/\.[0-9]*/g); - // 获取整数部分 - const integer = parseInt(value, 10).toString(); - const temp = integer.split(''); - const length = temp.length; - - // 添加","分隔符 - function formart() { - let count = 0; - for (let n = length; n > 0; n--, count++) { - if (count && count % 3 === 0) { - m.unshift(','); - count = 0; - } - m.unshift(temp.pop()); - } - const result = m.join(''); - return decimals ? result.concat(decimals) : result; - } - - return length > 3 ? formart() : value; -} - -/** - * 银行卡,四位加一空格 - * @param value - * @returns {*} - */ -export function card(value) { - value = `${value}`; - const reg = /([0-9]{4})/g; - if (value) { - value = value.replace(reg, '$1 '); - } - return value; -} - -/** - * 给字符串中间加*** - * @param value - * @param frontLen - * @param backLen - * @returns {*} - */ -export function safety(value, frontLen, backLen) { - if (value) { - const len = value.length; - let front = ''; - let back = ''; - if (frontLen && len > frontLen) { - front = value.slice(0, frontLen); - } - if (backLen && len > (frontLen + backLen)) { - back = value.slice(len - backLen); - } - return `${front}***${back}`; - } - return ''; -} - -/** - * 把数据字典中的值转换成text - * @param value - * @param arr - * @returns {string} - */ -export function map(value, arr) { - let name = ''; - if (arr && util.isArray(arr)) { - arr.forEach((item) => { - if (item.value === value) { - name = item.text; - } - }); - } - return name; -} - -/** - * 过滤掉数据中的值 - * @param value - * @param arr - * @returns {string} - */ -export function allow(value, arr) { - const _arr = []; - if (util.isArray(value)) { - value.forEach((obj) => { - if (util.isArray(arr)) { - if (arr.indexOf(obj.value) !== -1) { - _arr.push(obj); - } - } - }); - } - return _arr; -} - -export function capitalize(text) { - return text[0].toUpperCase() + text.slice(1); -} - -export function uppercase(text) { - return text.toUpperCase(); -} - -export function lowercase(text) { - return text.toLowerCase(); -} diff --git a/packages/fes-core/src/helpers.js b/packages/fes-core/src/helpers.js new file mode 100644 index 00000000..a274bc15 --- /dev/null +++ b/packages/fes-core/src/helpers.js @@ -0,0 +1,4 @@ +const hasSymbol = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; + +/** @internal */ +export const makeSymbol = name => (hasSymbol ? Symbol(name) : name); diff --git a/packages/fes-core/src/index.html b/packages/fes-core/src/index.html index a207c0c7..8aa61509 100644 --- a/packages/fes-core/src/index.html +++ b/packages/fes-core/src/index.html @@ -11,6 +11,7 @@ -
+
+
diff --git a/packages/fes-core/src/index.js b/packages/fes-core/src/index.js new file mode 100644 index 00000000..3af1743c --- /dev/null +++ b/packages/fes-core/src/index.js @@ -0,0 +1,58 @@ +import { + createApp, + inject, + reactive +} from 'vue'; +import createRouter from './router'; +import DefaultLayout from './DefaultLayout'; +import { makeSymbol } from './helpers'; + + +const __FES_PLUGIN_DATA_SYMBOL__ = makeSymbol('fes-plugin-data'); +// const __FES_PLUGIN_METHOD_SYMBOL__ = makeSymbol('fes-plugin-method'); + +// 写入这里的方法和函数,将会通过 useFesContext 导出 +// 用于共享 plugins 之间的数据和方法 +const fesContext = { + layout: DefaultLayout +}; + +const plugins = []; + +export function addPlugin(plugin, options) { + if (typeof plugin === 'function') { + plugins.push([{ + install: plugin + }, options]); + } else { + // TODO 非 plugin 校验 + plugins.push(plugin, options); + } +} + +const _installPlugins = (app) => { + for (const plugin of plugins) { + const [pluginInstance, options] = plugin; + pluginInstance.install(app, options, fesContext); + } +}; + +export function useFesContext() { + return inject(__FES_PLUGIN_DATA_SYMBOL__); +} + +export async function createFesApp(options = {}) { + Object.assign(fesContext, options); + const router = await createRouter(fesContext); + // TODO dependencies plugin 实现 + const app = createApp(fesContext.layout); + app.use(router); + fesContext.router = router; + + _installPlugins(app); + app.provide(__FES_PLUGIN_DATA_SYMBOL__, reactive(fesContext)); + app.mount('#app'); + + + return app; +} diff --git a/packages/fes-core/src/instance/app.js b/packages/fes-core/src/instance/app.js deleted file mode 100644 index 0ae41bff..00000000 --- a/packages/fes-core/src/instance/app.js +++ /dev/null @@ -1,325 +0,0 @@ -import Vue from 'vue'; -import VueRouter from 'vue-router'; -import VueI18n from 'vue-i18n'; -// eslint-disable-next-line -import UiWebank from '@webank/fes-ui'; -// eslint-disable-next-line -import routerConfig from 'projectRoot/.cache/routeConfig.js'; -// eslint-disable-next-line -import commonCompConfig from 'projectRoot/.cache/commonComp.js'; -import Page from './page'; -import fesComponents from '../views/components'; -import root from '../views/layout/root.vue'; - -import * as filters from '../filter'; -// eslint-disable-next-line -import * as directives from '../directive'; - - -import util from '../util'; -import _fesx from '../fesx/_fesx'; -import storage from '../storage'; -import api from '../api'; -import map from '../map'; -import fesx from '../fesx'; -import fesConfig from '../config'; -import env from '../env'; -import permission from './permission'; - - -if (process.privateFesEnv.env !== 'prod') { - Vue.config.debug = true; - Vue.config.devtools = true; -} - -const rolesConfig = fesConfig.roles; - -class App { - constructor() { - this.FesApp = this; - this.FesApi = api; - this.FesStorage = storage; - this.FesMap = map; - this.FesFesx = fesx; - this.FesUtil = util; - this.FesEnv = env; - - // 允许的路由 - // 默认可以访问所有路由,第一次addAllowPage的时候需要删除'*' - this._roleId = _fesx.get('FesRoleId'); - if (this._roleId) { - permission.set(rolesConfig[this._roleId] || ['*']); - } else { - permission.set(_fesx.get('FesAllowPageList') || ['*']); - } - - this.router = null; - this.beforeRouter = null; - this.afterRouter = null; - - this.i18n = null; - } - - init(func) { - window.Vue = Vue; - - // ======================安装插件==================== - Vue.use(VueRouter); - Vue.use(UiWebank); - Vue.use(VueI18n); - Vue.use(fesComponents); - Vue.use(Page, this); - - // =====================注册全局过滤器================ - Object.keys(filters).forEach((p) => { - Vue.filter(p, filters[p]); - }); - - // =====================注册全局组件================== - Object.keys(commonCompConfig).forEach((p) => { - Vue.component(p, commonCompConfig[p]); - }); - - // =====================注册全局指令================== - Object.keys(directives).forEach((p) => { - Vue.directive(p, directives[p]); - }); - - // 设置系统名称 - if (fesConfig.fesName) { - this.set('FesName', fesConfig.fesName); - } - - // 设置系统名称 - if (fesConfig.favicon) { - this.setFavicon(fesConfig.favicon); - } - - if (util.isFunction(func)) { - func.call(this); - } - - this.run(); - } - - run() { - this.creatRouter(); - this.creatI18n(); - // eslint-disable-next-line - new Vue({ - el: '#app', - extends: root, - router: this.router, - i18n: this.i18n - }); - } - - creatI18n() { - this.i18n = new VueI18n(fesConfig.i18n); - this.setLocale(fesConfig.i18n.locale); - } - - creatRouter() { - this.router = new VueRouter({ - routes: routerConfig, - scrollBehavior(to, from, savedPosition) { - if (savedPosition) { - return savedPosition; - } - return { - x: 0, - y: 0 - }; - } - }); - this.handleRouter(); - } - - handleRouter() { - this.router.beforeEach(async (to, from, next) => { - util.history.record(to.path); - let path; - if (to.matched.length === 1) { - path = to.matched[0].path; - } else { - path = to.path; - } - // 只有允许的路由才能进 - const canRoute = await permission.match(path); - if (canRoute) { - if (this.beforeRouter && util.isFunction(this.beforeRouter)) { - this.beforeRouter(to, from, next); - } else { - next(); - } - } else { - window.Toast.error(util.format('fesMessages.noPermission')); - if (from.path) { - next(false); - } else { - next('/'); - } - } - }); - this.router.afterEach((route) => { - // 更新页面的title - let title; - fesConfig.menu.forEach((parent) => { - if (parent.path === route.path) { - title = parent.title; - } else if (parent.subMenu && parent.subMenu.length > 0) { - parent.subMenu.forEach((son) => { - if (son.path === route.path) { - title = son.title; - } - }); - } - }); - // 设置切换路由时页面的标题 - let fesName = this.get('FesName'); - if (fesName.slice(0, 6) === '$i18n.') { - fesName = util.format(fesName.slice(6)); - } - document.title = title ? `${fesName} | ${title}` : fesName; - - if (this.afterRouter && util.isFunction(this.afterRouter)) { - this.afterRouter(route); - } - }); - this.setDefaultPage(); - } - - async getDefaultPage(update) { - // 如果router已初始化,通过当前链接来找路由,返回当前链接对应的路由 - if (this.router && !update) { - const currentPath = this.router.history.getCurrentLocation(); - const isMatchCurrentPath = await permission.match(currentPath); - if (isMatchCurrentPath) { - return currentPath; - } - } - // 返回权限列表第一个 > 路由表第一个 - const allAllowedRoute = await permission.get(); - return allAllowedRoute.length > 0 ? allAllowedRoute[0] : routerConfig[0]; - } - - async setDefaultPage() { - const defaultPage = await this.getDefaultPage(false); - this.router.push(defaultPage); - } - - async setRole(roleId, redirect = true, update = true) { - if (_fesx.get('FesRoleId') !== roleId) { - if (rolesConfig[roleId] instanceof Array) { - permission.set(rolesConfig[roleId]); - this.set('FesRoleId', roleId); - if (this.router && redirect) { - const defaultPage = await this.getDefaultPage(update); - this.router.push(defaultPage); - } - util.event.trigger('fes_allowPage_change'); - } else { - console.error(`rolesConfig配置错误,不存在角色${roleId}`); - } - } - return this; - } - - async setAllowPage(pageList, redirect = true, update = true) { - if (pageList instanceof Array) { - permission.set(pageList); - this.set('FesRoleId', ''); // 通过角色控制权限和通过路由控制权限互斥,只能使用一种 - this.set('FesAllowPageList', pageList); - if (this.router && redirect) { - const defaultPage = await this.getDefaultPage(update); - this.router.push(defaultPage); - } - util.event.trigger('fes_allowPage_change'); - } - return this; - } - - // 废弃 API - getAllowPage() { - // 异步的这里会造成 break; - return permission.getSync(); - } - - getAllowPageAsync() { - return permission.get(); - } - - get(prop) { - return _fesx.get(prop); - } - - set(prop, value) { - _fesx.set(prop, value); - return this; - } - - // 添加过滤器 - addFilter(name, func) { - Vue.filter(name, func); - return this; - } - - // 添加指令 - addDirective(name, option) { - Vue.directive(name, option); - return this; - } - - // 添加组件 - addComponent(name, c) { - Vue.component(name, c); - return this; - } - - // 第三方插件 - addThrid(name, option) { - Vue.use(name, option); - return this; - } - - setBeforeRouter(beforeRouter) { - this.beforeRouter = beforeRouter; - return this; - } - - setAfterRouter(afterRouter) { - this.afterRouter = afterRouter; - return this; - } - - // 添加favicon - setFavicon(url) { - let favicon = document.querySelector('#favicon'); - if (!favicon) { - favicon = document.createElement('link'); - favicon.id = 'favicon'; - favicon.rel = 'shortcut icon'; - favicon.type = 'image/png'; - favicon.href = url; - document.head.appendChild(favicon); - } else { - favicon.href = url; - } - return this; - } - - setLocale(lang) { - // 修改vue-i18n的语言 - this.i18n.locale = lang; - // 修改组件库的语言 - UiWebank.i18n.setLocale(lang); - return this; - } -} - -util.merge(App.prototype, util.event); -// 暂时去掉package.json引入,安全检测不通过 -// App.prototype.version = packageConfig.version; -App.prototype.engine = 'Vue'; - -export default new App(); diff --git a/packages/fes-core/src/instance/page.js b/packages/fes-core/src/instance/page.js deleted file mode 100644 index 7a42d7e7..00000000 --- a/packages/fes-core/src/instance/page.js +++ /dev/null @@ -1,136 +0,0 @@ -import util from '../util'; -import storage from '../storage'; -import api from '../api'; -import map from '../map'; -import fesx from '../fesx'; -import env from '../env'; -import fesConfig from '../config'; - -const fesDataCache = {}; - -const certainConfig = function (matchPages, prop, n = 1) { - const length = matchPages.length; - if (n > length) { - return matchPages[0].components.default[prop]; - } - const matchPage = matchPages[length - n].components.default; - if (typeof matchPage[prop] === 'boolean') { - return matchPage[prop]; - } - return certainConfig(matchPages, prop, n + 1); -}; - -const Page = { - install(Vue, App) { - Vue.mixin({ - data() { - const data = { - FesMap: map, - FesFesx: fesx - }; - - // 如果存在页面缓存 - const cacheName = this.$options.FesDataCache; - if (cacheName && fesDataCache[cacheName] && util.history.current.type !== 'forward') { - return fesDataCache[cacheName]; - } - if (this.$options.FesSyncData) { - Object.keys(this.$options.FesSyncData).forEach((p) => { - data[p] = null; - }); - } - let fesData; - if (util.isFunction(this.$options.FesData)) { - this.FesFesx = fesx; - this.FesMap = map; - fesData = this.$options.FesData.call(this); - } else { - // 直接等于,是对象的引用,会导致下次进入页面,FesData的值没变 - fesData = this.$options.FesData; - } - if (fesData) { - Object.keys(fesData).forEach((p) => { - data[p] = fesData[p]; - }); - } - return data; - }, - created() { - const defaultHeader = fesConfig.FesHeader === undefined ? false : fesConfig.FesHeader; - const defaultLeft = fesConfig.FesLeft === undefined ? true : fesConfig.FesLeft; - // route切换时,重新设置为初始值 - const comp = (this.$route && this.$route.matched) || []; - if (comp.length > 0) { - const matchPage = comp[comp.length - 1].components.default; - if (this.$options.__file === matchPage.__file) { - const header = certainConfig(comp, 'FesHeader'); - if (typeof header === 'boolean') { - this.$root.header = header; - } else { - this.$root.header = defaultHeader; - } - const left = certainConfig(comp, 'FesLeft'); - if (typeof left === 'boolean') { - this.$root.left = left; - } else { - this.$root.left = defaultLeft; - } - } - } - - const syncData = this.$options.FesSyncData; - if (syncData) { - const arr = []; - Object.keys(syncData).forEach((p) => { - if (util.isArray(syncData[p])) { - arr.push([p, syncData[p][0], syncData[p][1]]); - } else { - console.error(`【FEX】异步参数【${p}】配置错误:值不是数组`, syncData[p]); - } - }); - const requests = []; - for (let i = 0; i < arr.length; i++) { - requests.push(api.fetch(arr[i][1], util.merge({}, this.$route.params, this.$route.query, arr[i][2]))); - } - Promise.all(requests).then((values) => { - values.forEach((value, index) => { - this[arr[index][0]] = value; - }); - }); - } - - if (this.$options.FesCreated && util.isFunction(this.$options.FesCreated)) { - this.$options.FesCreated.call(this); - } - }, - mounted() { - if (this.$options.FesReady && util.isFunction(this.$options.FesReady)) { - this.$options.FesReady.call(this); - } - }, - beforeDestroy() { - const cacheName = this.$options.FesDataCache; - if (cacheName) { - fesDataCache[cacheName] = this.$data; - } - if (this.$options.FesBeforeDestroy && util.isFunction(this.$options.FesBeforeDestroy)) { - this.$options.FesBeforeDestroy.call(this); - } - }, - destroyed() { - if (this.$options.FesDestroy && util.isFunction(this.$options.FesDestroy)) { - this.$options.FesDestroy.call(this); - } - } - }); - - // 注入自己的对象 - Vue.prototype.FesApp = App; - Vue.prototype.FesUtil = util; - Vue.prototype.FesStorage = storage; - Vue.prototype.FesApi = api; - Vue.prototype.FesEnv = env; - } -}; - -export default Page; diff --git a/packages/fes-core/src/instance/permission.js b/packages/fes-core/src/instance/permission.js deleted file mode 100644 index 4182f106..00000000 --- a/packages/fes-core/src/instance/permission.js +++ /dev/null @@ -1,34 +0,0 @@ -/** - * 用户路由控制 - */ -import util from '../util'; - -const permission = { - allowRoutesSync: [], // 兼容老的 API 请勿使用 - allowRoutes: [], - format(allowRoutes) { - if (Array.isArray(allowRoutes)) { - return allowRoutes.map(allow => Promise.resolve(allow)); - } - return [Promise.resolve(allowRoutes)]; - }, - set(data) { - this.allowRoutesSync = data; - this.allowRoutes = this.format(data); - }, - getSync() { - return this.allowRoutesSync; - }, - get() { - return Promise.all(this.allowRoutes).then(data => data.reduce((merge, cur) => merge.concat(cur), [])); - }, - merge(data) { - this.allowRoutes = this.allowRoutes.concat(this.format(data)); - }, - async match(path) { - const mergedAllowRoutes = await this.get(); - return util.canRoute(path, mergedAllowRoutes); - } -}; - -export default permission; diff --git a/packages/fes-core/src/map/index.js b/packages/fes-core/src/map/index.js deleted file mode 100644 index 3c5e946e..00000000 --- a/packages/fes-core/src/map/index.js +++ /dev/null @@ -1,42 +0,0 @@ -/** - * 数据字典管理 - */ -import util from '../util'; -import fesConfig from '../config'; - -const data = fesConfig.map; - -const $Map = Object.create({ - getValueByName(name, text) { - // TODO 不确定这里是否需要 === - // eslint-disable-next-line - const arr = this[name].filter(item => item.text == text); - return arr[0] ? arr[0].value : ''; - }, - getNameByValue(name, value) { - // TODO 不确定这里是否需要 === - // eslint-disable-next-line - const arr = this[name].filter(item => item.value == value); - return arr[0] ? arr[0].text : ''; - } -}); - -Object.keys(data).forEach((name) => { - $Map[name] = []; - if (util.isArray(data[name])) { - data[name].forEach((item) => { - if (item.length >= 2) { - $Map[name].push({ - value: item[0], - text: item[1] - }); - } else { - console.error(`【FEX】Map配置错误:Name${name}的值必输是数组,类似['1', '成功']`, item); - } - }); - } else { - console.error('【FEX】Map配置错误:后面的值必须是数组', data[name]); - } -}); - -export default $Map; diff --git a/packages/fes-core/src/polyfill/index.js b/packages/fes-core/src/polyfill/index.js deleted file mode 100644 index ec8d06b5..00000000 --- a/packages/fes-core/src/polyfill/index.js +++ /dev/null @@ -1,48 +0,0 @@ -/* eslint-disable */ -class File { - toString() { - console.log('compatible File'); - return 'function File() { [native code] }'; - } -} - -if (window.File === undefined) { - window.File = File; -} - -// el remove -(function (arr) { - arr.forEach((item) => { - if (item.hasOwnProperty('remove')) { - return; - } - Object.defineProperty(item, 'remove', { - configurable: true, - enumerable: true, - writable: true, - value: function remove() { - if (this.parentNode !== null) this.parentNode.removeChild(this); - } - }); - }); -}([Element.prototype, CharacterData.prototype, DocumentType.prototype])); - - -// Function.bind -if (!Function.prototype.bind) { - Function.prototype.bind = function (oThis) { - if (typeof this !== 'function') { - throw new TypeError('Function.prototype.bind - what is trying to be bound is not callable'); - } - const aArgs = Array.prototype.slice.call(arguments, 1); - const fToBind = this; - const fNOP = function () {}; - const fBound = function () { - return fToBind.apply(this instanceof fNOP && oThis ? this : oThis, - aArgs.concat(Array.prototype.slice.call(arguments))); - }; - fNOP.prototype = this.prototype; - fBound.prototype = new fNOP(); - return fBound; - }; -} diff --git a/packages/fes-core/src/router/index.js b/packages/fes-core/src/router/index.js new file mode 100644 index 00000000..b6aff651 --- /dev/null +++ b/packages/fes-core/src/router/index.js @@ -0,0 +1,14 @@ +import { createRouter, createWebHashHistory } from 'vue-router'; + + +export default async (options) => { + let routes = options.routes; + if (!routes) { + const automaticRoutes = await import('projectRoot/.cache/routeConfig.js'); + routes = automaticRoutes.default; + } + return createRouter({ + history: createWebHashHistory(), + routes + }); +}; diff --git a/packages/fes-core/src/storage/index.js b/packages/fes-core/src/storage/index.js deleted file mode 100644 index 3f8eb81e..00000000 --- a/packages/fes-core/src/storage/index.js +++ /dev/null @@ -1,183 +0,0 @@ -/* \ -|*| -|*| :: cookies.js :: -|*| -|*| A complete cookies reader/writer framework with full unicode support. -|*| -|*| https://developer.mozilla.org/en-US/docs/DOM/document.cookie -|*| -|*| This framework is released under the GNU Public License, version 3 or later. -|*| http://www.gnu.org/licenses/gpl-3.0-standalone.html -|*| -|*| Syntaxes: -|*| -|*| * docCookies.setItem(name, value[, end[, path[, domain[, secure]]]]) -|*| * docCookies.getItem(name) -|*| * docCookies.removeItem(name[, path], domain) -|*| * docCookies.hasItem(name) -|*| * docCookies.keys() -|*| -\ */ - -const docCookies = { - getItem(sKey) { - return decodeURIComponent(document.cookie.replace(new RegExp(`(?:(?:^|.*;)\\s*${encodeURIComponent(sKey).replace(/[-.+*]/g, '\\$&')}\\s*\\=\\s*([^;]*).*$)|^.*$`), '$1')) || null; - }, - setItem(sKey, sValue, vEnd, sPath, sDomain, bSecure) { - if (!sKey || /^(?:expires|max-age|path|domain|secure)$/i.test(sKey)) { - return false; - } - let sExpires = ''; - if (vEnd) { - switch (vEnd.constructor) { - case Number: - sExpires = vEnd === Infinity ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : `; max-age=${vEnd}`; - break; - case String: - sExpires = `; expires=${vEnd}`; - break; - case Date: - sExpires = `; expires=${vEnd.toUTCString()}`; - break; - default: break; - } - } - document.cookie = `${encodeURIComponent(sKey)}=${encodeURIComponent(sValue)}${sExpires}${sDomain ? `; domain=${sDomain}` : ''}${sPath ? `; path=${sPath}` : ''}${bSecure ? '; secure' : ''}`; - return true; - }, - removeItem(sKey, sPath, sDomain) { - if (!sKey || !this.hasItem(sKey)) { - return false; - } - document.cookie = `${encodeURIComponent(sKey)}=; expires=Thu, 01 Jan 1970 00:00:00 GMT${sDomain ? `; domain=${sDomain}` : ''}${sPath ? `; path=${sPath}` : ''}`; - return true; - }, - hasItem(sKey) { - return (new RegExp(`(?:^|;\\s*)${encodeURIComponent(sKey).replace(/[-.+*]/g, '\\$&')}\\s*\\=`)).test(document.cookie); - }, - // eslint-disable-next-line - keys: /* optional method: you can safely remove it! */ function () { - const aKeys = document.cookie.replace(/((?:^|\s*;)[^=]+)(?=;|$)|^\s*|\s*(?:=[^;]*)?(?:\1|$)/g, '').split(/\s*(?:=[^;]*)?;\s*/); - for (let nIdx = 0; nIdx < aKeys.length; nIdx++) { - aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]); - } - return aKeys; - } -}; - - -const isProd = process.env.NODE_ENV === 'production'; - -export const storageManager = { - set(key, value, storage) { - try { - window[storage].setItem(key, JSON.stringify(value)); - } catch (e) { - !isProd && console.error(e); - } - }, - get(key, storage) { - try { - if (window[storage].getItem(key)) { - return JSON.parse(window[storage].getItem(key)); - } - return window[storage].getItem(key); - } catch (e) { - !isProd && console.error(e, key); - return null; - } - }, - clear(storage) { - window[storage].clear(); - }, - remove(key, storage) { - window[storage].removeItem(key); - } -}; - -export const cookieManager = { - set(key, value, expired) { - if (expired) docCookies.setItem(key, value, expired); - else docCookies.setItem(key, value); - }, - get(key) { - return docCookies.getItem(key); - }, - clear() { - docCookies.keys().forEach((key) => { - docCookies.removeItem(key); - }); - }, - remove(key) { - docCookies.removeItem(key); - } -}; - - -/** - * 操作cookie、sessionStorage、localStorage、缓存 - */ - -const - SESSION = 'session'; -const LOCAL = 'local'; -const COOKIE = 'cookie'; - -export default { - set(key, value, category = SESSION, expired) { - const { storage, isWebStorage = true } = this._map(category); - - if (isWebStorage) { - storageManager.set(key, value, storage); - } else { - cookieManager.set(key, value, expired); - } - }, - get(key, category = SESSION) { - const { storage, isWebStorage = true } = this._map(category); - - if (isWebStorage) { - return storageManager.get(key, storage); - } - return cookieManager.get(key); - }, - clear(category = SESSION) { - const { storage, isWebStorage = true } = this._map(category); - - if (isWebStorage) { - storageManager.clear(storage); - } else { - cookieManager.clear(); - } - }, - remove(key, category = SESSION) { - const { storage, isWebStorage = true } = this._map(category); - - if (isWebStorage) { - storageManager.remove(key, storage); - } else { - cookieManager.remove(key); - } - }, - _map(category) { - let isWebStorage = true; let - storage; - - switch (true) { - case category === SESSION: - storage = 'sessionStorage'; - break; - case category === LOCAL: - storage = 'localStorage'; - break; - case category === COOKIE: - storage = 'cookie'; - isWebStorage = false; - break; - default: - storage = 'sessionStorage'; - } - - return { isWebStorage, storage }; - } -}; diff --git a/packages/fes-core/src/util/dom.js b/packages/fes-core/src/util/dom.js deleted file mode 100644 index f885bdd3..00000000 --- a/packages/fes-core/src/util/dom.js +++ /dev/null @@ -1,106 +0,0 @@ -const inBrowser = typeof window !== 'undefined' - && Object.prototype.toString.call(window) !== '[object Object]'; -export const UA = inBrowser && window.navigator.userAgent.toLowerCase(); -export const isIE = UA && UA.indexOf('trident') > 0; -export const isIE9 = UA && UA.indexOf('msie 9.0') > 0; - -/** - * For IE9 compat: when both class and :class are present - * getAttribute('class') returns wrong value... - * - * @param {Element} el - * @return {String} - */ -export function getClass(el) { - let classname = el.className; - if (typeof classname === 'object') { - classname = classname.baseVal || ''; - } - return classname; -} - -/** - * 判断dom节点是否有某样式 - * - * @param {Element} el - * @return {String} - * @returns {boolean} - */ -export function hasClass(el, name) { - if (!el) return null; - const className = getClass(el); - const classes = className.split(' '); - return classes.indexOf(name) !== -1; -} - -/** - * In IE9, setAttribute('class') will result in empty class - * if the element also has the :class attribute; However in - * PhantomJS, setting `className` does not work on SVG elements... - * So we have to do a conditional check here. - * - * @param {Element} el - * @param {String} cls - */ -export function setClass(el, cls) { - /* istanbul ignore if */ - if (isIE9 && !/svg$/.test(el.namespaceURI)) { - el.className = cls; - } else { - el.setAttribute('class', cls); - } -} - -/** - * Add class with compatibility for IE & SVG - * - * @param {Element} el - * @param {String} cls - */ - -export function addClass(el, cls) { - if (el.classList) { - el.classList.add(cls); - } else { - const cur = ` ${getClass(el)} `; - if (cur.indexOf(` ${cls} `) < 0) { - setClass(el, (cur + cls).trim()); - } - } -} - -/** - * Remove class with compatibility for IE & SVG - * - * @param {Element} el - * @param {String} cls - */ - -export function removeClass(el, cls) { - if (el.classList) { - el.classList.remove(cls); - } else { - let cur = ` ${getClass(el)} `; - const tar = ` ${cls} `; - while (cur.indexOf(tar) >= 0) { - cur = cur.replace(tar, ' '); - } - setClass(el, cur.trim()); - } - if (!el.className) { - el.removeAttribute('class'); - } -} - -/** - * 从jquery扣过来的,递归去算 - * - * @param {Element} a - * @param {Element} b - * @returns {boolean} - */ -export function contains(a, b) { - const adown = a.nodeType === 9 ? a.documentElement : a; - const bup = b && b.parentNode; - return a === bup || !!(bup && bup.nodeType === 1 && adown.contains(bup)); -} diff --git a/packages/fes-core/src/util/event.js b/packages/fes-core/src/util/event.js deleted file mode 100644 index b50beb4d..00000000 --- a/packages/fes-core/src/util/event.js +++ /dev/null @@ -1,51 +0,0 @@ - -const eventProxy = { - onObj: {}, - oneObj: {}, - on(key, fn) { - if (fn && typeof (fn) === 'function') { - if (this.onObj[key] === undefined) { - this.onObj[key] = []; - } - this.onObj[key].push(fn); - } else { - throw new Error('请传入正确的回调函数'); - } - }, - one(key, fn) { - if (this.oneObj[key] === undefined) { - this.oneObj[key] = []; - } - - this.oneObj[key].push(fn); - }, - off(key) { - this.onObj[key] = []; - this.oneObj[key] = []; - }, - trigger(...args) { - if (args.length === 0) { - return false; - } - const key = args[0]; - args = [].concat(Array.prototype.slice.call(args, 1)); - - if (this.onObj[key] !== undefined - && this.onObj[key].length > 0) { - Object.keys(this.onObj[key]).forEach((i) => { - this.onObj[key][i].apply(null, args); - }); - } - if (this.oneObj[key] !== undefined - && this.oneObj[key].length > 0) { - Object.keys(this.oneObj[key]).forEach((i) => { - this.oneObj[key][i].apply(null, args); - this.oneObj[key][i] = undefined; - }); - this.oneObj[key] = []; - } - return null; - } -}; - -export default eventProxy; diff --git a/packages/fes-core/src/util/format.js b/packages/fes-core/src/util/format.js deleted file mode 100644 index de974cf5..00000000 --- a/packages/fes-core/src/util/format.js +++ /dev/null @@ -1,46 +0,0 @@ -import fesConfig from '../config'; - -const hasOwnProperty = Object.prototype.hasOwnProperty; -const hasOwn = function (obj, key) { - return hasOwnProperty.call(obj, key); -}; -const RE_NARGS = /(%|)\{([0-9a-zA-Z_]+)\}/g; - -const template = function (string, ...args) { - if (args.length === 1 && typeof args[0] === 'object') { - args = args[0]; - } - - if (!args || !args.hasOwnProperty) { - args = {}; - } - - return string.replace(RE_NARGS, (match, prefix, i, index) => { - if (string[index - 1] === '{' && string[index + match.length] === '}') { - return i; - } - const result = hasOwn(args, i) ? args[i] : null; - if (result === null || result === undefined) { - return ''; - } - - return result; - }); -}; - -export default function (path, options) { - const array = path.split('.'); - let current = fesConfig.i18n.messages[fesConfig.i18n.locale]; - if (!current) { - current = fesConfig.i18n.messages['zh-cn']; - } - let value; - for (let i = 0, j = array.length; i < j; i++) { - const property = array[i]; - value = current[property]; - if (i === j - 1) return template(value, options); - if (!value) return ''; - current = value; - } - return ''; -} diff --git a/packages/fes-core/src/util/history.js b/packages/fes-core/src/util/history.js deleted file mode 100644 index 9f4a6750..00000000 --- a/packages/fes-core/src/util/history.js +++ /dev/null @@ -1,38 +0,0 @@ -import storage from '../storage'; - -const history = { - data: storage.get('Fes_History') || [], - current: null -}; - -history.record = function (href) { - const length = history.data.length; - const obj = { - href, - type: '' - }; - if (length === 0) { - obj.type = 'forward'; - } else if (length > 0 && length <= 1) { - if (history.data[length - 1].href === href) { - obj.type = 'refresh'; - } else { - obj.type = 'forward'; - } - } else if (length > 1) { - const first = history.data[length - 1]; - const second = history.data[length - 2]; - if (first.href === href) { - obj.type = 'refresh'; - } else if (second.href === href) { - obj.type = 'back'; - } else { - obj.type = 'forward'; - } - } - history.data.push(obj); - history.current = obj; - storage.set('Fes_History', history.data); -}; - -export default history; diff --git a/packages/fes-core/src/util/index.js b/packages/fes-core/src/util/index.js deleted file mode 100644 index a6269904..00000000 --- a/packages/fes-core/src/util/index.js +++ /dev/null @@ -1,88 +0,0 @@ -import _ from 'lodash'; -import * as domUtil from './dom'; -import * as objectUtil from './object'; -import * as typeUtil from './type'; -import format from './format'; -import event from './event'; -import history from './history'; - -const util = { - // 验证一个path是否可以访问, 空的allowPage可以访问任何路由 - canRoute(path, allowPage) { - path = path.split('?')[0]; - if (Array.isArray(allowPage) && allowPage.length > 0) { - if (path === '' && allowPage.includes('/')) return true; - if (path) { - for (let i = 0; i < allowPage.length; i++) { - if (path === allowPage[i]) { - return true; - } - // 支持*匹配 - const reg = new RegExp(`^${allowPage[i].replace('*', '.+')}$`); - if (reg.test(path)) { - return true; - } - } - } - } - - return false; - }, - getUrlParam(name) { - const reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`); - let r = window.location.search.substr(1).match(reg); - const hashQuery = window.location.hash.split('?')[1]; - if (r != null) { - return decodeURIComponent(r[2]); - } if (hashQuery) { - r = hashQuery.match(reg); - return r && decodeURIComponent(r[2]); - } - return null; - }, - removeParam(name, content) { - if (typeof name !== 'string') return false; - const prefix = encodeURIComponent(`${name}=`); - const pars = content.split(/[&;]/g); - let i = 0; const - len = pars.length; - let value = ''; - for (; i < len; i++) { - if (encodeURIComponent(pars[i]).lastIndexOf(prefix, 0) !== -1) { - pars.splice(i, 1); - } - } - value = (pars.length > 0 ? `?${pars.join('&')}` : ''); - return value; - }, - proxyFn(proxy, prop, apiArr) { - proxy[prop] = {}; - const cache = {}; - if (window.Proxy) { - proxy[prop] = new Proxy(proxy[prop], { - get(target, name) { - cache[name] = cache[name] ? cache[name] : []; - if (!target[name]) { - target[name] = function (...args) { - cache[name].push(args); - }; - } - return target[name]; - } - }); - } else { - apiArr.forEach((api) => { - if (!proxy[prop][api]) { - proxy[prop][api] = function (...args) { - cache[api] = cache[api] ? cache[api] : []; - cache[api].push(args); - }; - } - }); - } - return cache; - }, - _ -}; -objectUtil.merge(util, domUtil, objectUtil, typeUtil, { format }, { event }, { history }); -export default util; diff --git a/packages/fes-core/src/util/object.js b/packages/fes-core/src/util/object.js deleted file mode 100644 index 11cd5513..00000000 --- a/packages/fes-core/src/util/object.js +++ /dev/null @@ -1,27 +0,0 @@ -export function merge(...args) { - const base = args[0]; - if (!base) return null; - [].forEach.call(args, (item, index) => { - if (index > 0) { - Object.keys(item).forEach((attrname) => { - base[attrname] = item[attrname]; - }); - } - }); - return base; -} - -export function extend(...args) { - const base = args[0]; - if (!base) return null; - [].forEach.call(args, (item, index) => { - if (index > 0) { - Object.keys(item).forEach((attrname) => { - if (base[attrname] !== undefined) { - base[attrname] = item[attrname]; - } - }); - } - }); - return base; -} diff --git a/packages/fes-core/src/util/type.js b/packages/fes-core/src/util/type.js deleted file mode 100644 index 9d8ed912..00000000 --- a/packages/fes-core/src/util/type.js +++ /dev/null @@ -1,36 +0,0 @@ -const objectToString = Object.prototype.toString; -const OBJECT_STRING = '[object Object]'; - -export function isPlainObject(obj) { - return objectToString.call(obj) === OBJECT_STRING; -} - -export function isNumber(value) { return typeof value === 'number'; } - -export function isDate(value) { - return objectToString.call(value) === '[object Date]'; -} - -export function isFunction(value) { return typeof value === 'function'; } - -export function isObject(value) { - const type = typeof value; - return !!value && (type === 'object' || type === 'function'); -} - -export function isArray(value) { - return Array.isArray(value); -} - -export function isObjectLike(value) { - return !!value && typeof value === 'object'; -} - -export function isString(value) { - return typeof value === 'string' - || (!isArray(value) && isObjectLike(value) && objectToString.call(value) === '[object String]'); -} - -export function isNull(value) { - return value === undefined || value === null || value === ''; -} diff --git a/packages/fes-core/src/views/components/index.js b/packages/fes-core/src/views/components/index.js deleted file mode 100644 index f546d986..00000000 --- a/packages/fes-core/src/views/components/index.js +++ /dev/null @@ -1,29 +0,0 @@ -/* ! - * fes-components v1.0.0 - * (c) 2017 fanniehuang - * Released under the MIT License. - */ -import FesRouteMenu from './routeMenu.vue'; -import FesSearchPanel from './searchPanel.vue'; -import FesListPanel from './listPanel.vue'; - -const fesComp = { - FesRouteMenu, - FesSearchPanel, - FesListPanel -}; - -const install = function (Vue) { - Object.keys(fesComp).forEach((key) => { - Vue.component(key, fesComp[key]); - }); -}; - -if (typeof window !== 'undefined' && window.Vue) { - install(window.Vue); -} - -export default { - install, - version: '2.0.0' -}; // eslint-disable-line no-undef diff --git a/packages/fes-core/src/views/components/listPanel.vue b/packages/fes-core/src/views/components/listPanel.vue deleted file mode 100644 index 2d1b56c0..00000000 --- a/packages/fes-core/src/views/components/listPanel.vue +++ /dev/null @@ -1,11 +0,0 @@ - - diff --git a/packages/fes-core/src/views/components/routeMenu.vue b/packages/fes-core/src/views/components/routeMenu.vue deleted file mode 100644 index c23d6249..00000000 --- a/packages/fes-core/src/views/components/routeMenu.vue +++ /dev/null @@ -1,91 +0,0 @@ - - diff --git a/packages/fes-core/src/views/components/searchPanel.vue b/packages/fes-core/src/views/components/searchPanel.vue deleted file mode 100644 index ce412f19..00000000 --- a/packages/fes-core/src/views/components/searchPanel.vue +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/packages/fes-core/src/views/layout/left.vue b/packages/fes-core/src/views/layout/left.vue deleted file mode 100644 index dd59e8e4..00000000 --- a/packages/fes-core/src/views/layout/left.vue +++ /dev/null @@ -1,108 +0,0 @@ - - diff --git a/packages/fes-core/src/views/layout/root.vue b/packages/fes-core/src/views/layout/root.vue deleted file mode 100644 index 8ccb32d1..00000000 --- a/packages/fes-core/src/views/layout/root.vue +++ /dev/null @@ -1,73 +0,0 @@ - - diff --git a/packages/fes-core/src/views/styles/components.scss b/packages/fes-core/src/views/styles/components.scss deleted file mode 100644 index 22ac291e..00000000 --- a/packages/fes-core/src/views/styles/components.scss +++ /dev/null @@ -1,48 +0,0 @@ -.query-page { - .query-page-search { - position: relative; - background-color: #f7f7f7; - .query-page-search-buttons { - position: absolute; - margin-bottom: 16px; - margin-left: 50px; - height: 32px; - line-height: 32px; - bottom: 0; - right: 40px; - .ui-button+.ui-button { - margin-left: 8px; - } - } - .ui-form { - width: 75%; - } - .ui-form-item { - display: inline-block; - width: 33.33%; - } - } - .query-page-table { - .ui-page { - margin: 20px; - text-align: center; - } - } - .ui-modal-dialog { - overflow: auto; - } - .ui-modal-body { - width: 500px; - padding-right: 30px; - } - .link { - color: #3399ff; - cursor: pointer; - } - .link:hover { - color: #5cadff; - } - .link:active { - color: #3091f2; - } -} \ No newline at end of file diff --git a/packages/fes-plugin-layout/package.json b/packages/fes-plugin-layout/package.json new file mode 100644 index 00000000..41795040 --- /dev/null +++ b/packages/fes-plugin-layout/package.json @@ -0,0 +1,16 @@ +{ + "name": "@webank/fes-plugin-layout", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "MIT", + "peerDependencies": { + "vue": "^3.0.0", + "@webank/fes-core": "^0.2.4" + } +} diff --git a/packages/fes-plugin-layout/src/helpers.js b/packages/fes-plugin-layout/src/helpers.js new file mode 100644 index 00000000..b9743ef1 --- /dev/null +++ b/packages/fes-plugin-layout/src/helpers.js @@ -0,0 +1 @@ +export const noop = () => { }; diff --git a/packages/fes-plugin-layout/src/index.js b/packages/fes-plugin-layout/src/index.js new file mode 100644 index 00000000..199ad104 --- /dev/null +++ b/packages/fes-plugin-layout/src/index.js @@ -0,0 +1,12 @@ + +import generateLayout from './views/layout'; +import './views/styles/index.scss'; + + +export function createLayout() { + return { + install(app, options, ctx) { + ctx.layout = generateLayout(options); + } + }; +} diff --git a/packages/fes-plugin-layout/src/views/layout/LayoutNav.js b/packages/fes-plugin-layout/src/views/layout/LayoutNav.js new file mode 100644 index 00000000..5e4e787c --- /dev/null +++ b/packages/fes-plugin-layout/src/views/layout/LayoutNav.js @@ -0,0 +1,89 @@ + + +import { defineComponent, computed } from 'vue'; +import { useFesContext } from '@webank/fes-core'; +import RightRender from './RightRender'; +import RouteMenu from './RouteMenu.vue'; + +const DEFAULT_THEME = { + light: 'light', + blue: 'dark', + dark: 'dark' +}; + +function useMenu(menu) { + // 根据当前权限控制,显示 | 隐藏菜单 + const { useI18n, accessibleElementTags, accessibleValidator } = useFesContext(); + const accessibleMenu = computed(() => { + if (accessibleElementTags) { + const menuData = []; + // 循环menu,可以访问页面才放入新对象中 + for (let i = 0; i < menu.length; i++) { + const item = menu[i]; + if (item.path && (!item.subMenu || item.subMenu.length === 0)) { + if (accessibleValidator(item.path)) { + menuData.push(item); + } + } else if (item.subMenu && item.subMenu.length > 0) { + const subMenu = []; + for (let j = 0; j < item.subMenu.length; j++) { + const subItem = item.subMenu[j]; + if ((subItem.path && accessibleValidator(subItem.path)) || !subItem.path) { + subMenu.push(subItem); + } + } + if (subMenu.length > 0) { + menuData.push({ + ...item, + subMenu + }); + } + } else { + menuData.push(item); + } + } + return menuData; + } + return menu; + }); + const localeMenu = computed(() => { + if (useI18n) { + const { t } = useI18n(); + // 给菜单title搞国际化 + return accessibleMenu.map((element) => { + const copyElement = { ...element }; + copyElement.title = t(element.title); + // 子菜单 + if (copyElement.subMenu) { + copyElement.subMenu = element.subMenu.map((son) => { + const copySon = { ...son }; + copySon.title = t(son.title); + return copySon; + }); + } + return copyElement; + }); + } + return accessibleMenu; + }); + return localeMenu; +} + +export default defineComponent((props) => { + const clickLogo = () => props.clickLogo && props.clickLogo; + const menuTheme = computed(() => DEFAULT_THEME[props.theme] || DEFAULT_THEME.light); + const menu = useMenu(props.menu); + + return () => ( +
+
+ +

{props.projectName}

+
+
+ +
+ +
+ ); +}); diff --git a/packages/fes-plugin-layout/src/views/layout/RightRender.js b/packages/fes-plugin-layout/src/views/layout/RightRender.js new file mode 100644 index 00000000..01a2bf56 --- /dev/null +++ b/packages/fes-plugin-layout/src/views/layout/RightRender.js @@ -0,0 +1,12 @@ + +import { defineComponent } from 'vue'; +import { noop } from '../../helpers'; + +export default defineComponent(props => () => { + if (props.rightRender) return props.rightRender; + return (
+
+ +
+
); +}); diff --git a/packages/fes-plugin-layout/src/views/layout/RouteMenu.vue b/packages/fes-plugin-layout/src/views/layout/RouteMenu.vue new file mode 100644 index 00000000..3a55c00a --- /dev/null +++ b/packages/fes-plugin-layout/src/views/layout/RouteMenu.vue @@ -0,0 +1,43 @@ + + + diff --git a/packages/fes-plugin-layout/src/views/layout/index.js b/packages/fes-plugin-layout/src/views/layout/index.js new file mode 100644 index 00000000..c8e853ee --- /dev/null +++ b/packages/fes-plugin-layout/src/views/layout/index.js @@ -0,0 +1,73 @@ +import { + defineComponent, + computed, + readonly, + ref +} from 'vue'; +import LayoutNav from './LayoutNav'; + + +export default function generateLayout(config) { + return defineComponent(() => { + const menu = readonly(config.menu); + const themeRef = ref(config.theme); + const modeRef = ref(config.mode || 'vertical'); + const animateRef = ref(false); + const leftHiddenRef = ref(false); + const headerRef = ref(false); + const rootCls = computed(() => { + const arr = [ + 'layout', + `layout-mode-${modeRef.value}`, + `layout-theme-${themeRef.value}` + ]; + if (leftHiddenRef.value) { + arr.push('layout-left-hidden'); + } + if (!headerRef.value) { + arr.push('layout-header-hide'); + } + if (animateRef.value) { + arr.push('layout-animate'); + } + return arr; + }); + function toggleMenu() { + animateRef.value = true; + setTimeout(() => { + animateRef.value = false; + }, 300); + leftHiddenRef.value = !leftHiddenRef.value; + } + + return () => ( +
+
+ + { + modeRef.value === 'vertical' && ( + + + + + ) + } +
+
+ { + headerRef.value && (
+ +
) + } +
+ +
+
+
+ ); + }); +} diff --git a/packages/fes-core/src/views/styles/index.scss b/packages/fes-plugin-layout/src/views/styles/index.scss similarity index 63% rename from packages/fes-core/src/views/styles/index.scss rename to packages/fes-plugin-layout/src/views/styles/index.scss index 4dca93c8..1cf4296a 100644 --- a/packages/fes-core/src/views/styles/index.scss +++ b/packages/fes-plugin-layout/src/views/styles/index.scss @@ -1,3 +1,2 @@ @import "layout.scss"; -@import "components.scss"; @import "polyfill.scss"; \ No newline at end of file diff --git a/packages/fes-core/src/views/styles/layout.scss b/packages/fes-plugin-layout/src/views/styles/layout.scss similarity index 100% rename from packages/fes-core/src/views/styles/layout.scss rename to packages/fes-plugin-layout/src/views/styles/layout.scss diff --git a/packages/fes-core/src/views/styles/polyfill.scss b/packages/fes-plugin-layout/src/views/styles/polyfill.scss similarity index 100% rename from packages/fes-core/src/views/styles/polyfill.scss rename to packages/fes-plugin-layout/src/views/styles/polyfill.scss diff --git a/packages/fes-plugin-locale/index.js b/packages/fes-plugin-locale/index.js new file mode 100644 index 00000000..42a838c4 --- /dev/null +++ b/packages/fes-plugin-locale/index.js @@ -0,0 +1,14 @@ +import { createI18n, useI18n } from 'vue-i18n'; + +// 注入 i18n 上下文 +// 动态变更 local +// 其他组件能拿到 t 函数 +// local 变更后,能通知到其他函数 + +export default { + install(app, options, ctx) { + const i18n = createI18n(options); + ctx.useI18n = useI18n; + app.use(i18n); + } +}; diff --git a/packages/fes-plugin-locale/package-lock.json b/packages/fes-plugin-locale/package-lock.json new file mode 100644 index 00000000..2774a107 --- /dev/null +++ b/packages/fes-plugin-locale/package-lock.json @@ -0,0 +1,13 @@ +{ + "name": "@webank/fes-plugin-locale", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "vue-i18n": { + "version": "9.0.0-beta.2", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-9.0.0-beta.2.tgz", + "integrity": "sha512-fvpf+LjXFdcSxKWYDaYetto3hnLwLzkPfKUmkzhG/AqgaIi+ZaVf+fLsQUmOaXzqp0l/4orjXjhHUIjhYsBLhA==" + } + } +} diff --git a/packages/fes-plugin-locale/package.json b/packages/fes-plugin-locale/package.json new file mode 100644 index 00000000..1206821d --- /dev/null +++ b/packages/fes-plugin-locale/package.json @@ -0,0 +1,15 @@ +{ + "name": "@webank/fes-plugin-locale", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "MIT", + "dependencies": { + "vue-i18n": "^9.0.0-beta.2" + } +} diff --git a/packages/fes-plugin-permission/index.js b/packages/fes-plugin-permission/index.js new file mode 100644 index 00000000..7566b458 --- /dev/null +++ b/packages/fes-plugin-permission/index.js @@ -0,0 +1,78 @@ +import { reactive } from 'vue'; + + +let accessibleElementTags = null; + +// TODO 支持异步函数 +export const addAccessibleElementTags = (elementTags) => { + if (accessibleElementTags) { + if (typeof elementTags === 'string') { + accessibleElementTags.push(elementTags); + } else { + accessibleElementTags.push(...elementTags); + } + } +}; + +// TODO 移除权限 + 支持异步函数 +export const delAccessibleElementTags = () => { + console.log('todo'); +}; + +// 验证一个资源是否可以访问 +export const accessibleValidator = (elementTag) => { + elementTag = elementTag.split('?')[0]; + if (Array.isArray(accessibleElementTags) && accessibleElementTags.length > 0) { + if (elementTag === '' && accessibleElementTags.includes('/')) return true; + if (elementTag) { + for (let i = 0; i < accessibleElementTags.length; i++) { + if (elementTag === accessibleElementTags[i]) { + return true; + } + // 支持*匹配 + const reg = new RegExp(`^${accessibleElementTags[i].replace('*', '.+')}$`); + if (reg.test(elementTag)) { + return true; + } + } + } + } + return true; +}; + + +export const createPermissionHandler = () => ({ + async install(app, options, ctx) { + try { + if (typeof options.accessibleElementTags === 'function') { + const elementTags = await options.accessibleElementTags(ctx); + accessibleElementTags = reactive(elementTags || []); + } else { + accessibleElementTags = reactive(options.accessibleElementTags || []); + } + const elWeakMap = new WeakMap(); + app.directive('permission', (el, binding) => { + // TODO 当 accessibleElementTags 变更的时候调用 forceUpdate 更新组件 + if (!elWeakMap.has(el)) { + elWeakMap.set(el, { + display: el.style.display + }); + } + const elementTags = Array.isArray(binding.value) ? binding.value : binding.value; + if (elementTags.some(elementTag => accessibleValidator(elementTag))) { + el.style.display = elWeakMap.get(el).display; + } else { + el.style.display = 'none'; + } + }); + + // TODO 异步权限 + ctx.router.beforeEach(to => accessibleValidator(to.path)); + + ctx.accessibleValidator = accessibleValidator; + ctx.accessibleElementTags = accessibleElementTags; + } catch (err) { + console.error(err); + } + } +}); diff --git a/packages/fes-plugin-permission/package.json b/packages/fes-plugin-permission/package.json new file mode 100644 index 00000000..a8036b3c --- /dev/null +++ b/packages/fes-plugin-permission/package.json @@ -0,0 +1,12 @@ +{ + "name": "@webank/fes-plugin-permission", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "MIT" +} diff --git a/packages/fes-plugin-request/package-lock.json b/packages/fes-plugin-request/package-lock.json new file mode 100644 index 00000000..20ce8304 --- /dev/null +++ b/packages/fes-plugin-request/package-lock.json @@ -0,0 +1,26 @@ +{ + "name": "@webank/fes-plugin-request", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "axios": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz", + "integrity": "sha512-ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==", + "requires": { + "follow-redirects": "^1.10.0" + } + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==" + }, + "throttle-debounce": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", + "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==" + } + } +} diff --git a/packages/fes-plugin-request/package.json b/packages/fes-plugin-request/package.json new file mode 100644 index 00000000..a1d7db99 --- /dev/null +++ b/packages/fes-plugin-request/package.json @@ -0,0 +1,17 @@ +{ + "name": "@webank/fes-plugin-request", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "type": "module", + "license": "MIT", + "dependencies": { + "axios": "^0.20.0", + "throttle-debounce": "^2.3.0" + } +} diff --git a/packages/fes-plugin-request/src/helpers.js b/packages/fes-plugin-request/src/helpers.js new file mode 100644 index 00000000..3f0930f4 --- /dev/null +++ b/packages/fes-plugin-request/src/helpers.js @@ -0,0 +1,88 @@ +/** + *判断类型 + * @param {*} obj 需要判断的对象 + */ +export function typeOf(obj) { + const map = { + '[object Boolean]': 'boolean', + '[object Number]': 'number', + '[object String]': 'string', + '[object Function]': 'function', + '[object Array]': 'array', + '[object Date]': 'date', + '[object RegExp]': 'regExp', + '[object Undefined]': 'undefined', + '[object Null]': 'null', + '[object Object]': 'object' + }; + return map[Object.prototype.toString.call(obj)]; +} + +export function isFunction(obj) { + return typeOf(obj) === 'function'; +} + +export function isDate(obj) { + return typeOf(obj) === 'date'; +} + +export function isString(obj) { + return typeOf(obj) === 'string'; +} + +export function isArray(obj) { + return typeOf(obj) === 'array'; +} + +export function isObject(obj) { + return typeOf(obj) === 'object'; +} + +export function isHtmlElement(node) { + return node && node.nodeType === Node.ELEMENT_NODE; +} + +export const isUndefined = val => val === undefined; + +export const isDefined = val => val !== undefined && val !== null; + + +export function checkHttpRequestHasBody(method) { + method = method.toUpperCase(); + const HTTP_METHOD = { + GET: { + request_body: false + }, + POST: { + request_body: true + }, + PUT: { + request_body: true + }, + DELETE: { + request_body: true + }, + HEAD: { + request_body: false + }, + OPTIONS: { + request_body: false + }, + PATCH: { + request_body: true + } + }; + return HTTP_METHOD[method].request_body; +} + +export function trimObj(obj) { + Object.entries(obj).forEach(([key, value]) => { + if (isString(value)) { + obj[key] = value.trim(); + } else if (isObject(value)) { + trimObj(value); + } else if (Array.isArray(value)) { + trimObj(value); + } + }); +} diff --git a/packages/fes-plugin-request/src/index.js b/packages/fes-plugin-request/src/index.js new file mode 100644 index 00000000..1b7f6bb3 --- /dev/null +++ b/packages/fes-plugin-request/src/index.js @@ -0,0 +1,29 @@ +import { debounce } from 'throttle-debounce'; +import initAxiosInstance from './request'; + +let request; + +function _advanceRequest({ url, debounce: waitTime, options = {} }) { + return debounce((data, specialCaseOptions) => { + request(url, data, Object.assign(options, specialCaseOptions)); + }, true, waitTime || 0); +} + +export const requestWrap = (interfaces) => { + const obj = {}; + Object.entries(interfaces).forEach(([key, value]) => { + if (value.url) { + obj[key] = _advanceRequest(value); + } else { + obj[key] = requestWrap(value); + } + }); + return obj; +}; + +export const createRequest = () => ({ + install(app, options, ctx) { + request = initAxiosInstance(options, { router: ctx.router }); + ctx.request = request; + } +}); diff --git a/packages/fes-plugin-request/src/reqInterceptors.js b/packages/fes-plugin-request/src/reqInterceptors.js new file mode 100644 index 00000000..d9a23805 --- /dev/null +++ b/packages/fes-plugin-request/src/reqInterceptors.js @@ -0,0 +1,19 @@ +import { checkHttpRequestHasBody, trimObj } from './helpers'; + +export default function reqInterceptors(instance) { + // 将 http method 转换为大写 + instance.interceptors.request.use((config) => { + config.method = config.method.toUpperCase(); + return config; + }); + + // 清理请求值中的空格 + instance.interceptors.request.use((config) => { + if (checkHttpRequestHasBody(config.method)) { + config.data = trimObj(config.data); + } else { + config.params = trimObj(config.params); + } + return config; + }); +} diff --git a/packages/fes-plugin-request/src/request.js b/packages/fes-plugin-request/src/request.js new file mode 100644 index 00000000..9d8032fe --- /dev/null +++ b/packages/fes-plugin-request/src/request.js @@ -0,0 +1,91 @@ +import axios from 'axios'; +import reqInterceptors from './reqInterceptors'; +import resInterceptors from './resInterceptors'; +import { checkHttpRequestHasBody, isObject } from './helpers'; + +// TODO +// 响应体控制 +// formData 控制 +// 段时间内不能重复发送的请求 +// 错误控制 +// 跳错误页面 || 或者重新登录 + +let instance; + +export function requestUse(before, error) { + return this.instance.interceptors.request.use(before, error); +} + +export function requestEject(interceptor) { + this.instance.interceptors.request.eject(interceptor); +} + +export function responseUse(after, error) { + return instance.interceptors.response.use(after, error); +} + +export function responseEject(interceptor) { + instance.interceptors.response.eject(interceptor); +} + +export function getRequestInstance() { + return instance; +} + +function _failedHandler(error, customerErrorHandler) { + if (error.response) { + const status = error.response.status; + if (typeof customerErrorHandler[status] === 'function') { + customerErrorHandler(error); + } + } else if (error.request) { + // TODO 请求异常 + } else { + console.error(error); + } + return Promise.reject(error); +} + +function _successedHandler(response, responseDataStruct) { + const responseData = response.data; + if (responseDataStruct && isObject(responseData)) { + // TODO 响应体解构解析 + return responseData; + } + return responseData; +} + +function initAxiosInstance({ options: internalOptions, responseDataStruct, errorHandler }) { + const customerErrorHandler = errorHandler || {}; + + instance = axios.create(Object.assign({ + timeout: 10000, + withCredentials: true + }, internalOptions)); + + // 设置请求拦截器 + reqInterceptors(instance); + + // 设置响应拦截器 + resInterceptors(instance); + + return (url, data, options = {}) => { + options.url = url; + options.method = options.method || 'post'; + if (checkHttpRequestHasBody(options.method)) { + options.data = data; + } else { + options.params = data; + } + // 请求内容可能是一个json + // 一个 query + // formdata + // 响应内容可能是一个文件流 + // 一个文本 + // 一个 json + // eslint-disable-next-line + return this.instance.request(options).then(response => _successedHandler(response, responseDataStruct)).catch(error => _failedHandler(error, customerErrorHandler)); + }; +} + +export default initAxiosInstance; diff --git a/packages/fes-plugin-request/src/resInterceptors.js b/packages/fes-plugin-request/src/resInterceptors.js new file mode 100644 index 00000000..b1264347 --- /dev/null +++ b/packages/fes-plugin-request/src/resInterceptors.js @@ -0,0 +1,4 @@ + +export default function resInterceptors() { + +} diff --git a/packages/fes-template/.eslintrc.js b/packages/fes-template/.eslintrc.js deleted file mode 100644 index a27eba89..00000000 --- a/packages/fes-template/.eslintrc.js +++ /dev/null @@ -1,17 +0,0 @@ - -module.exports = { - extends: [ - '@webank/eslint-config-webank/vue', - ], - globals: { - // 这里填入你的项目需要的全局变量 - // 这里值为 false 表示这个全局变量不允许被重新赋值,比如: - // - // Vue: false - }, - rules: { - 'no-plusplus': 'off', - 'no-bitwise': 'off', - 'vue/comment-directive': 'off' - } -}; diff --git a/packages/fes-template/.gitignore b/packages/fes-template/.gitignore deleted file mode 100644 index d6cee42e..00000000 --- a/packages/fes-template/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -.DS_Store -.idea -.git -.vscode -.cache -/dist -.history -/node_modules \ No newline at end of file diff --git a/packages/fes-template/README.md b/packages/fes-template/README.md deleted file mode 100644 index 144c625e..00000000 --- a/packages/fes-template/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 项目名称 - -## 运行 - -```bash -npm run dev -``` - -## 编译 - -```bash -npm run build -``` diff --git a/packages/fes-template/deploy.sh b/packages/fes-template/deploy.sh deleted file mode 100644 index 56932f21..00000000 --- a/packages/fes-template/deploy.sh +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env sh - -# 确保脚本抛出遇到的错误 -set -e - -# 生成静态文件 -npm run build - -# 进入生成的文件夹 -cd dist - -# 如果是发布到自定义域名 -# echo 'www.example.com' > CNAME - -git init -git add -A -git commit -m 'deploy' - -# 如果发布到 https://.github.io -# git push -f git@github.com:/.github.io.git master - -# 如果发布到 https://.github.io/ -git push -f https://gitee.com/WeBank/fes-pro.git master:gh-pages - -cd - diff --git a/packages/fes-template/fes.config.js b/packages/fes-template/fes.config.js index 3d3b2a53..b1d3df88 100644 --- a/packages/fes-template/fes.config.js +++ b/packages/fes-template/fes.config.js @@ -1,112 +1,6 @@ +// fes.config.js 只负责管理和 cli 相关的配置 + module.exports = { - // 可选有vertical、horizontal,默认vertical - mode: 'vertical', - // 可选有blue、dark,默认blue - theme: 'blue', - // 项目名称 - fesName: 'Fes.js 运营平台', - favicon: 'static/favicon.ico', // 图标 - lazyRouter: true, - // 环境变量配置, 默认使用local环境 - env: { - // 本地开发环境 - local: { - api: '' - }, - // 测试环境 --env=sit 触发使用 - develop: { - api: 'http://test.xxx.com' - }, - // 生产环境 --env=sit 触发使用 - prod: { - api: 'http://xxx.com' - } - }, - // 配置角色-路由访问权限,使用FesApp.setRole('unLogin')来修改当前用户的角色,控制路由访问权限 - roles: { - unLogin: ['/'], - admin: ['/dashboard/console', '*'] - }, - // map - map: { - level: [['1', '青铜'], ['2', '白银'], ['3', '黄金'], ['4', '铂金']] - }, - // 左侧菜单配置 - menu: [ - { - title: '工作台', - subMenu: [ - { - title: '工作台', - path: '/dashboard/console' - } - ] - }, - { - title: '列表页', - subMenu: [ - { - title: '查询列表', - path: '/list' - } - ] - }, - { - title: '表单页', - subMenu: [ - { - title: '基础表单', - path: '/form/base' - }, - { - title: '分步表单', - path: '/form/step' - } - ] - }, - { - title: '功能演示', - path: '/layout', - subMenu: [ - { - title: '$i18n.menu.internationalization', - path: '/layout/i18n' - }, - { - title: '静态资源', - path: '/layout/static' - } - ] - } - ], - i18n: { - // default zh-cn - locale: 'zh-cn', - messages: { - 'zh-cn': { - menu: { - internationalization: '国际化' - }, - overview: '概述', - i18n: { - internationalization: '国际化,基于', - achieve: '实现。', - ui: 'UI组件' - }, - title: 'Fes.js 运营平台' - }, - en: { - menu: { - internationalization: 'internationalization' - }, - overview: 'Overview', - i18n: { - internationalization: 'internationalization,base on', - achieve: 'to achieve.', - ui: 'UI components' - }, - title: 'Fes.js Admin' - } - } - } + open: false, + port: 5000 }; diff --git a/packages/fes-template/mock.js b/packages/fes-template/mock.js deleted file mode 100644 index f9fcf1a8..00000000 --- a/packages/fes-template/mock.js +++ /dev/null @@ -1,113 +0,0 @@ -module.exports = (cgiMock, Mock) => { - const { Random } = Mock; - - // 前缀,全局(可选) - // cgiMock.prefix = ''; - - // 返回一个数字 - cgiMock('/number', 123); - - // 返回一个json - cgiMock({ - url: '/json', - result: { - code: '400101', msg: "不合法的请求:Missing cookie 'wb_app_id' for method parameter of type String", transactionTime: '20170309171146', success: false - } - }); - - // 利用mock.js 产生随机文本 - cgiMock('/text', Random.cparagraph()); - - // 返回一个字符串 利用mock.js 产生随机字符 - cgiMock('/string', Mock.mock({ - 'string|1-10': '★' - })); - - - // 正则匹配url, 返回一个字符串 - // cgiMock(/\/abc|\/xyz/, 'regexp test!'); - - // option.result 参数如果是一个函数, 可以实现自定义返回内容, 接收的参数是是经过 express 封装的 req 和 res 对象. - // cgiMock(/\/function$/, function (req, res) { - // res.send('function test'); - // }); - - // 返回文本 fs.readFileSync - // cgiMock('/file', cgiMock.file('./test.json')); - - // 更复杂的规则配置 - cgiMock({ - url: /\/who/, - method: 'GET', - result(req, res) { - if (req.query.name === 'kwan') { - res.json({ kwan: '孤独患者' }); - } else { - res.send('Nooooooooooo'); - } - }, - headers: { - 'Content-Type': 'text/plain', - 'Content-Length': '123', - ETag: '12345' - }, - cookies: [ - { - name: 'myname', value: 'kwan', maxAge: 900000, httpOnly: true - } - ], - // 接口随机延迟 - timeout: Mock.mock({ - 'number|1000-5000': 1000 - }).number - }); - // 登录 - cgiMock('/login', (req, res) => { - res.send(JSON.stringify({ - code: '0', - msg: '', - result: { - username: '万纯(harrywan)', - roleName: '管理员' - } - })); - }); - - cgiMock('/getTestList', (req, res) => { - const list = []; - for (let i = 0; i < req.body.pageSize; i++) { - list.push({ - a: i - }); - } - res.send(JSON.stringify({ - code: '0', - msg: 'this is message', - result: { - list, - page: { - pageSize: req.body.pageSize, - currentPage: req.body.currentPage, - totalPage: 1000 - } - } - - })); - }); - - cgiMock('/getNumber', (req, res) => { - res.send(JSON.stringify({ - code: '0', - msg: 'this is message', - result: 4 - })); - }); - - cgiMock('/getRoleName', (req, res) => { - res.send(JSON.stringify({ - code: '0', - msg: 'this is message', - result: 'admin' - })); - }); -}; diff --git a/packages/fes-template/package.json b/packages/fes-template/package.json index f52c8af0..1a5dcc75 100644 --- a/packages/fes-template/package.json +++ b/packages/fes-template/package.json @@ -1,6 +1,6 @@ { "name": "@webank/fes-template", - "version": "0.2.3", + "version": "0.2.1", "description": "fes项目模版", "main": "index.js", "scripts": { @@ -29,14 +29,14 @@ "author": "harrywan qlin", "license": "MIT", "devDependencies": { + "@vue/compiler-sfc": "^3.0.0", "@webank/eslint-config-webank": "^0.1.4", "csp-html-webpack-plugin": "^4.0.0" }, "dependencies": { - "@antv/data-set": "^0.11.7", - "@antv/g2": "^4.0.15", "@babel/runtime-corejs3": "^7.11.2", - "@webank/fes-core": "^0.2.3", - "@webank/fes-ui": "^0.2.3" + "@webank/fes-core": "^0.2.1", + "vue": "^3.0.0", + "vue-router": "^4.0.0-beta.12" } } diff --git a/packages/fes-template/src/app.js b/packages/fes-template/src/app.js index 5cf4d295..68d5365d 100644 --- a/packages/fes-template/src/app.js +++ b/packages/fes-template/src/app.js @@ -1,42 +1,41 @@ -import './assets/styles/main.scss'; -export default function () { - this.FesApp.set('FesName', '$i18n.title'); +import { createFesApp } from '@webank/fes-core'; +// import LayoutPlugin from '@webank/fes-plugin-layout'; +// import { createRequest } from '@webank/fes-plugin-request'; - // 设置退出逻辑 - this.on('fes_logout', () => { - this.FesApp.setRole('unLogin'); - this.FesStorage.set('userLogin', false); - }); +// addPlugin(LayoutPlugin); - // 设置logo点击事件 - this.on('fes_logo_click', () => { - window.Toast('你点击了LOGO'); - }); +// addPlugin(createRequest({ +// options: { +// baseURL: '' +// }, +// // some options +// responseDataStruct: { - // 设置路由钩子 - this.FesApp.setBeforeRouter((from, to, next) => { - next(); - }); - this.FesApp.setAfterRouter((route) => { - console.log(`您浏览到了${route.path}`); - }); +// }, +// errorHandler: { +// 404: () => { - // 设置当前角色 - if (!this.FesStorage.get('userLogin') === true) { - this.setRole('unLogin'); - } +// }, +// 403: (ctx) => { +// ctx.router.push('/login'); +// }, +// 401: () => { - // 设置AJAX配置 - this.FesApi.option({ - }); +// }, +// 502: () => { - // 设置响应结构 - this.FesApi.setResponse({ - successCode: '0', - codePath: 'code', - messagePath: 'msg', - resultPath: 'result' - }); -} +// }, +// otherCode: (error) => { +// window.Toast(error.message); +// } +// } +// })); + +createFesApp({ + // routes: [ + // { path: '/', component: Home } + // ] + // some options +}); diff --git a/packages/fes-template/src/assets/images/bg.png b/packages/fes-template/src/assets/images/bg.png deleted file mode 100644 index 28a4e820b4af428f4dacb597f9d7c26c91c56663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6059 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 diff --git a/packages/fes-template/src/assets/styles/main.scss b/packages/fes-template/src/assets/styles/main.scss deleted file mode 100644 index 1e8a8d68..00000000 --- a/packages/fes-template/src/assets/styles/main.scss +++ /dev/null @@ -1,104 +0,0 @@ -@import "variables"; - -.article { - padding: 20px; - h1 { - font-size: 26px; - font-weight: 400; - margin: 12px 0; - } - - h2 { - margin: 25px 0 12px; - font-size: 20px; - font-weight: 400; - } - - h3 { - font-size: 16px; - font-weight: 400; - } - - p { - font-size: 14px; - margin: 5px; - } - - ul { - padding-left: 40px; - } - li { - list-style-type: disc; - margin-bottom: 5px; - font-size: 14px; - } - - table{ - border-collapse: collapse; - border-spacing: 0; - empty-cells: show; - border: 1px solid #e9e9e9; - width: 500px; - margin-bottom: 24px; - } - th,td { - border: 1px solid #e9e9e9; - padding: 8px 16px; - text-align: left; - } -} - -.ml-8{ - margin-left: 8px; -} - -.ml-16{ - margin-left: 16px; -} - -.mt-16{ - margin-top: 16px; -} - -.pr-16{ - padding-right: 16px; -} - -// 修复问题 -.ui-modal .ui-modal-dialog{ - overflow: visible; -} - -.query-page .query-page-table .ui-page { - margin: 20px; - text-align: center; - justify-content: center; -} - -.page { - display: flex; - flex-direction: column; - background: #f0f2f5; - min-height: 100%; - .page-header{ - padding: 16px 32px 0; - background: #fff; - border-bottom: 1px solid $border-color-split ; - .page-header-title{ - color: $title-color; - font-weight: 500; - font-size: 16px; - margin-bottom: 16px; - } - .page-header-desc{ - margin-bottom: 16px; - } - } - .page-body{ - flex: auto; - min-height: 0; - margin: 24px 24px; - background: #fff; - border: 1px solid $border-color-split ; - } -} diff --git a/packages/fes-template/src/assets/styles/variables.scss b/packages/fes-template/src/assets/styles/variables.scss deleted file mode 100644 index bb87d50f..00000000 --- a/packages/fes-template/src/assets/styles/variables.scss +++ /dev/null @@ -1,90 +0,0 @@ -// Color -$primary-color : #3399ff; -$info-color : #2db7f5; -$success-color : #00cc66; -$warning-color : #ff9900; -$error-color : #ff5500; -$link-color : #3399ff; -$link-hover-color : #5cadff; -$link-focus-color : rgba(51,153,255, .2); -$link-active-color : #3091f2; -$selected-color : rgba($primary-color, .9); -$tooltip-color : #fff; -//辅助/图标 -$subsidiary-color : #9ea7b4; -$disabled-color : #f3f3f3; - -// Base -$body-background : #fff; -$component-background : #fff; -$font-family : "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif; -$code-family : Consolas,Menlo,Courier,monospace; -$title-color : #464c5b; -$text-color : #657180; -$black-text-color : #333333; -$sub-text-color : #999; -$dark-color : #333; - -//失效 Disabled -$tip-color : #c3cbd6; -$font-size-lg : 16px; -$font-size-base : 14px; -$font-size-small : 12px; -$line-height-base : 1.5; -$line-height-computed : floor(($font-size-base * $line-height-base)); -$border-radius-base : 6px; -$border-radius-small : 4px; -$cursor-disabled : not-allowed; - -// Border color -$border-color-base : #d7dde4; // outside -$border-color-split : #e3e8ee; // inside - - -// Background color -$background-color-base : #f7f7f7; // base -$background-color-select-hover: #f3f3f3; -$tooltip-bg : rgba(70, 76, 91, .9); -$head-bg : #f9fafc; -$table-thead-bg : #f5f7f9; -$table-td-stripe-bg : #f5f7f9; -$table-td-hover-bg : #ebf7ff; -$table-td-highlight-bg : #ebf7ff; - -// Z-index -$zindex-spin : 8; -$zindex-affix : 10; -$zindex-back-top : 10; -$zindex-select : 900; -$zindex-modal : 1000; -$zindex-message : 1010; -$zindex-notification : 1010; -$zindex-tooltip : 1060; -$zindex-loading-bar : 2000; - -// Animation -$animation-time : .3s; -$transition-time : .2s; -$ease-out : cubic-bezier(0.215, 0.61, 0.355, 1); -$ease-in : cubic-bezier(0.55, 0.055, 0.675, 0.19); -$ease-in-out : cubic-bezier(0.645, 0.045, 0.355, 1); -$ease-out-back : cubic-bezier(0.12, 0.4, 0.29, 1.46); -$ease-in-back : cubic-bezier(0.71, -0.46, 0.88, 0.6); -$ease-in-out-back : cubic-bezier(0.71, -0.46, 0.29, 1.46); -$ease-out-circ : cubic-bezier(0.08, 0.82, 0.17, 1); -$ease-in-circ : cubic-bezier(0.6, 0.04, 0.98, 0.34); -$ease-in-out-circ : cubic-bezier(0.78, 0.14, 0.15, 0.86); -$ease-out-quint : cubic-bezier(0.23, 1, 0.32, 1); -$ease-in-quint : cubic-bezier(0.755, 0.05, 0.855, 0.06); -$ease-in-out-quint : cubic-bezier(0.86, 0, 0.07, 1); - -// Shadow -$shadow-color : rgba(0, 0, 0, .2); -$shadow-1-up : 0 -1px 6px $shadow-color; -$shadow-1-down : 0 1px 6px $shadow-color; -$shadow-1-left : -1px 0 6px $shadow-color; -$shadow-1-right : 1px 0 6px $shadow-color; -$shadow-2 : 0 2px 8px $shadow-color; -$box-shadow-base : $shadow-1-down; - -$mask-color: rgba(55, 55, 55, .6); diff --git a/packages/fes-template/src/common/service.js b/packages/fes-template/src/common/service.js new file mode 100644 index 00000000..0c7b9394 --- /dev/null +++ b/packages/fes-template/src/common/service.js @@ -0,0 +1,24 @@ +import { requestWrap } from '@webank/fes-plugin-request'; + +// TODO +// 响应体控制 +// formData 控制 +// 错误控制 +// 跳错误页面 || 或者重新登录 +// 段时间内不能重复发送的请求 + +// request(url, data, option).then(() => { + +// }); + + +// or +export default requestWrap({ + login: { + url: '', + throttle: 300, + options: { + method: 'get' + } + } +}); diff --git a/packages/fes-template/src/components/Card.vue b/packages/fes-template/src/components/Card.vue deleted file mode 100644 index c0b7dfec..00000000 --- a/packages/fes-template/src/components/Card.vue +++ /dev/null @@ -1,54 +0,0 @@ - - - diff --git a/packages/fes-template/src/components/Chart.vue b/packages/fes-template/src/components/Chart.vue deleted file mode 100644 index b692b3ea..00000000 --- a/packages/fes-template/src/components/Chart.vue +++ /dev/null @@ -1,81 +0,0 @@ - - - diff --git a/packages/fes-template/src/components/fesHeader.vue b/packages/fes-template/src/components/fesHeader.vue deleted file mode 100644 index 22564d9c..00000000 --- a/packages/fes-template/src/components/fesHeader.vue +++ /dev/null @@ -1,14 +0,0 @@ - - diff --git a/packages/fes-template/src/components/fesLeft.vue b/packages/fes-template/src/components/fesLeft.vue deleted file mode 100644 index e64ebed8..00000000 --- a/packages/fes-template/src/components/fesLeft.vue +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/packages/fes-template/src/pages/dashboard/console.vue b/packages/fes-template/src/pages/dashboard/console.vue deleted file mode 100644 index 15c14f9a..00000000 --- a/packages/fes-template/src/pages/dashboard/console.vue +++ /dev/null @@ -1,449 +0,0 @@ - - - diff --git a/packages/fes-template/src/pages/form/base.vue b/packages/fes-template/src/pages/form/base.vue deleted file mode 100644 index d7244794..00000000 --- a/packages/fes-template/src/pages/form/base.vue +++ /dev/null @@ -1,136 +0,0 @@ - - diff --git a/packages/fes-template/src/pages/form/step.vue b/packages/fes-template/src/pages/form/step.vue deleted file mode 100644 index fccc369f..00000000 --- a/packages/fes-template/src/pages/form/step.vue +++ /dev/null @@ -1,139 +0,0 @@ - - - diff --git a/packages/fes-template/src/pages/index.vue b/packages/fes-template/src/pages/index.vue index 1f88ac44..18ec9dae 100644 --- a/packages/fes-template/src/pages/index.vue +++ b/packages/fes-template/src/pages/index.vue @@ -1,241 +1,18 @@ + - diff --git a/packages/fes-template/src/pages/layout/i18n.vue b/packages/fes-template/src/pages/layout/i18n.vue deleted file mode 100644 index b0ef9c45..00000000 --- a/packages/fes-template/src/pages/layout/i18n.vue +++ /dev/null @@ -1,48 +0,0 @@ - - - diff --git a/packages/fes-template/src/pages/layout/layout.vue b/packages/fes-template/src/pages/layout/layout.vue deleted file mode 100644 index 2db9cc9a..00000000 --- a/packages/fes-template/src/pages/layout/layout.vue +++ /dev/null @@ -1,17 +0,0 @@ - - diff --git a/packages/fes-template/src/pages/layout/static.vue b/packages/fes-template/src/pages/layout/static.vue deleted file mode 100644 index 1bdce2ad..00000000 --- a/packages/fes-template/src/pages/layout/static.vue +++ /dev/null @@ -1,18 +0,0 @@ - - diff --git a/packages/fes-template/src/pages/list/index.vue b/packages/fes-template/src/pages/list/index.vue deleted file mode 100644 index ebf4f79b..00000000 --- a/packages/fes-template/src/pages/list/index.vue +++ /dev/null @@ -1,161 +0,0 @@ - - diff --git a/packages/fes-template/src/pages/onepiece.vue b/packages/fes-template/src/pages/onepiece.vue new file mode 100644 index 00000000..c2e700b0 --- /dev/null +++ b/packages/fes-template/src/pages/onepiece.vue @@ -0,0 +1,16 @@ + + + diff --git a/packages/fes-template/src/static/1.txt b/packages/fes-template/src/static/1.txt deleted file mode 100644 index 9d07aa0d..00000000 --- a/packages/fes-template/src/static/1.txt +++ /dev/null @@ -1 +0,0 @@ -111 \ No newline at end of file diff --git a/packages/fes-template/src/static/bell.png b/packages/fes-template/src/static/bell.png deleted file mode 100644 index 8ae7067864eafd7e8807934bbae042a2cdb3cbd4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 443 zcmV;s0Yv_ZP)Px$bxA})R5%gcR6k3@P!PX+wxDU%Mf3|4zk^Gsf`gMdxQQ-`4o;;75eXtfTOAzZ z=peYeiHn~j_z7GpNh=NHychEF&%C77%?HWdyWgL83ArE?EHce`7>)Jo`YKoj1gj;P&k zaqT4umgYjVu-|``yktkmrNS)1_fJ$QX|$n=GsH*}8zHXEV4$e0Dv6DV;#{HSaZXWw zBUai}{KrN}mQ@AYzThc8Pd)Us8^kMUG%hQDGLeVL25g(ZY@&l{4=>>DS9prop;kli zJfnb^4^1Y-+A$9>MMIlq@-O9(e<@a~F2oTJ>3ymeZuH*~;u9dgMlR lm-!v;23j`3UT>)Jfp4#5Wv8{jegpsj002ovPDHLkV1nPp!Xy9y diff --git a/packages/fes-template/src/static/favicon.ico b/packages/fes-template/src/static/favicon.ico deleted file mode 100644 index e8900c6baefef2132820c295ee7e23f30d7c294a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1843 zcmaJ?X;c$e6dpvvrV(Bw7@&8X24Yyg-UWYozO$tVscph;>imts9rO##(PE+v{J zhQ+!NRHdF{(xZ_kiA-TiRv=1B&@6DKkwZApptu|~YErZYj*&}w>z709ZDxo9zJ=h) zT*^C9G2#d?1kK3=)Z~xQlVG}Vxw(a}LB@XXrAJq~AuO}wE zFCVrN7iNE`fG;!NsETg-)`L%eTvF_$P4Iw7tIccgfnhxV?%H)whpX{fcSCyf5y#83 zvZrJ^HqmLZxO~bp-@VA=rt!6dj+c9llM*YZ<#?vv*_uk-OuiU$+@joF!*q4MIxFbz z!{-!0EAfswTyL_*IAx|`TPrLzc?ggq@jexS^o+eCNjsn4Gq_<5pd`PPzIGU&Bv&y< zyD5v!2X>5z>Pw@N%+>7@d#3|Q<1mfA!{WN|!M|ar>&4FI^P*b^0M&d;=Y>kjrachP z$kTm^FiL?`>OfifgXpoX*4zz8s;0+p`AT)n&X*ce!7FjzeaB%&;lPEmHjjj8XnHao zIBOU5lnYl>F+b`A0fMcsGcxC((c&H^xnxYVy9Vtm**}mIGSCvB_ma2Z?N7dDRwk- z9X+y-ThhZxZP8~JSsqPnP3$ng%3+m6J&xS5W7q5LK0MDo<@eerZe^R=>vLD0UDMx~ zS5W?{;#E0sm7mMCQMxh><+7gJp-MUIg(t+@$B`axYrMXqqtpFpSJ@4q8uaPhHzz6n zR)=5NIcs~fTWQ$xhP@RQ=9bMFCmr(e;-iM_?b&vFHHkcB`HIe#n=M9nqea%3a?01s zc?8AJc~O;7PDus_W+_r;-lA-}U)ylK_w z>8WFz`)2n(dy;>VoYXD_*tLwP@1ZNE&h?8wGl$J|AEUoNB7UytPW<6cNAp2h=2.6.1 <4", + "loader-utils": "~0.2.2", + "lodash.camelcase": "^3.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.6", + "postcss-modules-extract-imports": "1.0.0-beta2", + "postcss-modules-local-by-default": "^1.0.0", + "postcss-modules-scope": "1.0.0-beta2", + "postcss-modules-values": "^1.1.0", + "source-list-map": "^0.1.4" + } + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-selector-tokenizer": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.5.4.tgz", + "integrity": "sha1-E5uv00o1/QwUKEhwSeBpnm9qLCE=", + "dev": true, + "requires": { + "cssesc": "^0.1.0", + "fastparse": "^1.1.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "cssesc": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-0.1.0.tgz", + "integrity": "sha1-yBSQPkViM3GgR3tAEJqq++6t27Q=", + "dev": true + }, + "cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz", + "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" + }, + "cssnano": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-3.10.0.tgz", + "integrity": "sha1-Tzj2zqK5sX+gFJDyPx3GjqZcHDg=", + "dev": true, + "requires": { + "autoprefixer": "^6.3.1", + "decamelize": "^1.1.2", + "defined": "^1.0.0", + "has": "^1.0.1", + "object-assign": "^4.0.1", + "postcss": "^5.0.14", + "postcss-calc": "^5.2.0", + "postcss-colormin": "^2.1.8", + "postcss-convert-values": "^2.3.4", + "postcss-discard-comments": "^2.0.4", + "postcss-discard-duplicates": "^2.0.1", + "postcss-discard-empty": "^2.0.1", + "postcss-discard-overridden": "^0.1.1", + "postcss-discard-unused": "^2.2.1", + "postcss-filter-plugins": "^2.0.0", + "postcss-merge-idents": "^2.1.5", + "postcss-merge-longhand": "^2.0.1", + "postcss-merge-rules": "^2.0.3", + "postcss-minify-font-values": "^1.0.2", + "postcss-minify-gradients": "^1.0.1", + "postcss-minify-params": "^1.0.4", + "postcss-minify-selectors": "^2.0.4", + "postcss-normalize-charset": "^1.1.0", + "postcss-normalize-url": "^3.0.7", + "postcss-ordered-values": "^2.1.0", + "postcss-reduce-idents": "^2.2.2", + "postcss-reduce-initial": "^1.0.0", + "postcss-reduce-transforms": "^1.0.3", + "postcss-svgo": "^2.1.1", + "postcss-unique-selectors": "^2.0.2", + "postcss-value-parser": "^3.2.3", + "postcss-zindex": "^2.0.1" + } + }, + "csso": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/csso/-/csso-2.3.2.tgz", + "integrity": "sha1-3dUsWHAz9J6Utx/FVWnyUuj/X4U=", + "dev": true, + "requires": { + "clap": "^1.0.9", + "source-map": "^0.5.3" + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", + "dev": true, + "optional": true + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "optional": true, + "requires": { + "cssom": "0.3.x" + } + }, + "currently-unhandled": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz", + "integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=", + "dev": true, + "requires": { + "array-find-index": "^1.0.1" + } + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", + "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", + "dev": true, + "requires": { + "es5-ext": "^0.10.50", + "type": "^1.0.1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", + "integrity": "sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==", + "dev": true + }, + "dateformat": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-2.2.0.tgz", + "integrity": "sha1-QGXiATz5+5Ft39gu+1Bq1MZ2kGI=", + "dev": true + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "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" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "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 + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-property": { + "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" + }, + "dependencies": { + "is-accessor-descriptor": { + "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" + } + }, + "is-data-descriptor": { + "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" + } + }, + "is-descriptor": { + "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", + "kind-of": "^6.0.2" + } + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true + }, + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "dev": true, + "requires": { + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "deprecated": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz", + "integrity": "sha1-+cmvVGSvoeepcUWKi97yqpTVuxk=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-file": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz", + "integrity": "sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "dev-ip": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", + "integrity": "sha1-p2o+0YVb56ASu4rBbLgPPADcKPA=", + "dev": true + }, + "dicer": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz", + "integrity": "sha1-WZbAhrszIYyBLAkL3cCc0S+stw8=", + "dev": true, + "requires": { + "readable-stream": "1.1.x", + "streamsearch": "0.1.2" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", + "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz", + "integrity": "sha1-NNzzf1Co6TwrO8qLt/uRVcfaO+4=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "duplexer2": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.0.2.tgz", + "integrity": "sha1-xhTc9n4vsUmVqRcR5aYX6KYKMds=", + "dev": true, + "requires": { + "readable-stream": "~1.1.9" + }, + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", + "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "easy-extender": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/easy-extender/-/easy-extender-2.3.4.tgz", + "integrity": "sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q==", + "dev": true, + "requires": { + "lodash": "^4.17.10" + } + }, + "eazy-logger": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.0.2.tgz", + "integrity": "sha1-oyWqXlPROiIliJsqxBE7K5Y29Pw=", + "dev": true, + "requires": { + "tfunk": "^3.0.1" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.576", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.576.tgz", + "integrity": "sha512-uSEI0XZ//5ic+0NdOqlxp0liCD44ck20OAGyLMSymIWTEAtHKVJi6JM18acOnRgUgX7Q65QqnI+sNncNvIy8ew==", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", + "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-0.1.5.tgz", + "integrity": "sha1-jhdyBsPICDfYVjLouTWd/osvbq8=", + "dev": true, + "requires": { + "once": "~1.3.0" + }, + "dependencies": { + "once": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/once/-/once-1.3.3.tgz", + "integrity": "sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=", + "dev": true, + "requires": { + "wrappy": "1" + } + } + } + }, + "engine.io": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", + "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "base64id": "1.0.0", + "cookie": "0.3.1", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.0", + "ws": "~3.3.1" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "engine.io-client": { + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.4.4.tgz", + "integrity": "sha512-iU4CRr38Fecj8HoZEnFtm2EiKGbYZcPn3cHxqNGl/tmdWRf60KhK+9vE0JeSjgnlS/0oynEfLgKbT9ALpim0sQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.2.0", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.6", + "parseuri": "0.0.6", + "ws": "~6.1.0", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + }, + "dependencies": { + "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 + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "parseqs": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.6.tgz", + "integrity": "sha512-jeAGzMDbfSHHA091hr0r31eYfTig+29g3GKKE/PPbEQ65X0lmMwlEoqmhzu0iztID5uJpZsFlUPDP8ThPL7M8w==", + "dev": true + }, + "parseuri": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.6.tgz", + "integrity": "sha512-AUjen8sAkGgao7UyCX6Ahv0gIK2fABKmYjvP4xmy5JaKvcbTRueIqIPHLAfq30xJddqSE033IOMUSOMCcK3Sow==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.2.1.tgz", + "integrity": "sha512-x+dN/fBH8Ro8TFwJ+rkB2AmuVw9Yu2mockR/p3W8f8YtExwFgDvBDi0GWyb4ZLkpahtDGZgtr3zLovanJghPqg==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.4", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + }, + "dependencies": { + "base64-arraybuffer": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.4.tgz", + "integrity": "sha1-mBjHngWbE1X5fgQooBfIOOkLqBI=", + "dev": true + } + } + }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "object-assign": "^4.0.1", + "tapable": "^0.2.7" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es5-ext": { + "version": "0.10.53", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", + "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "dev": true, + "requires": { + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" + } + }, + "es6-iterator": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", + "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-set": "~0.1.5", + "es6-symbol": "~3.1.1", + "event-emitter": "~0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14", + "es6-iterator": "~2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "~0.3.5" + }, + "dependencies": { + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + } + } + }, + "es6-symbol": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", + "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "dev": true, + "requires": { + "d": "^1.0.1", + "ext": "^1.1.2" + } + }, + "es6-templates": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/es6-templates/-/es6-templates-0.2.3.tgz", + "integrity": "sha1-XLmsn7He1usSOTQrgdeSu7QHjuQ=", + "dev": true, + "requires": { + "recast": "~0.11.12", + "through": "~2.3.6" + } + }, + "es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", + "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", + "dev": true, + "optional": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "optional": true + }, + "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, + "optional": true + } + } + }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "^0.1.3", + "es6-weak-map": "^2.0.1", + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", + "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.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" + } + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "globals": { + "version": "12.4.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", + "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", + "dev": true, + "requires": { + "type-fest": "^0.8.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", + "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.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" + } + } + } + }, + "eslint-plugin-vue": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-5.2.3.tgz", + "integrity": "sha512-mGwMqbbJf0+VvpGR5Lllq0PMxvTdrZ/ZPjmhkacrCHbubJeJOt+T6E3HUzAifa2Mxi7RSdJfC9HFpOeSYVMMIw==", + "dev": true, + "requires": { + "vue-eslint-parser": "^5.0.0" + } + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.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" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true + }, + "espree": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", + "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", + "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + }, + "dependencies": { + "estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "dev": true + } + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", + "dev": true + }, + "events": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", + "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "expand-brackets": { + "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", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "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" + } + }, + "extend-shallow": { + "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" + } + } + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", + "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", + "dev": true + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + } + } + } + }, + "ext": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", + "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "dev": true, + "requires": { + "type": "^2.0.0" + }, + "dependencies": { + "type": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", + "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", + "dev": true + }, + "extend-shallow": { + "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" + }, + "dependencies": { + "is-extendable": { + "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" + } + } + } + }, + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "dev": true, + "requires": { + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" + } + }, + "extglob": { + "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", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "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" + } + }, + "extend-shallow": { + "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" + } + }, + "is-accessor-descriptor": { + "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" + } + }, + "is-data-descriptor": { + "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" + } + }, + "is-descriptor": { + "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", + "kind-of": "^6.0.2" + } + } + } + }, + "extract-text-webpack-plugin": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/extract-text-webpack-plugin/-/extract-text-webpack-plugin-2.1.2.tgz", + "integrity": "sha1-dW7076gVXDaBgz+8NNpTuUF0bWw=", + "dev": true, + "requires": { + "async": "^2.1.2", + "loader-utils": "^1.0.2", + "schema-utils": "^0.3.0", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "faker": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/faker/-/faker-4.1.0.tgz", + "integrity": "sha1-HkW7vsxndLPBlfrSg1EJxtdIzD8=", + "dev": true + }, + "fancy-log": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz", + "integrity": "sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw==", + "dev": true, + "requires": { + "ansi-gray": "^0.1.1", + "color-support": "^1.1.3", + "parse-node-version": "^1.0.0", + "time-stamp": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", + "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "dev": true, + "requires": { + "flat-cache": "^2.0.1" + } + }, + "file-loader": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-0.8.5.tgz", + "integrity": "sha1-knXQMf54DyfUf19K8CvUNxPMFRs=", + "dev": true, + "requires": { + "loader-utils": "~0.2.5" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "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" + } + }, + "finalhandler": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.0.tgz", + "integrity": "sha1-zgtoVbRYU+eRsvzGgARtiCU91/U=", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.1", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.2", + "statuses": "~1.3.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "statuses": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-index": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz", + "integrity": "sha1-Z101iyyjiS15Whq0cjL4tuLg3eQ=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "findup-sync": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz", + "integrity": "sha1-kyaxSIwi0aYIhlCoaQGy2akKLLw=", + "dev": true, + "requires": { + "detect-file": "^1.0.0", + "is-glob": "^3.1.0", + "micromatch": "^3.0.4", + "resolve-dir": "^1.0.1" + }, + "dependencies": { + "braces": { + "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", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "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" + } + } + } + }, + "fill-range": { + "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", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "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" + } + } + } + }, + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + }, + "is-number": { + "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" + }, + "dependencies": { + "kind-of": { + "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" + } + } + } + }, + "micromatch": { + "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", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "to-regex-range": { + "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" + } + } + } + }, + "fined": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz", + "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "is-plain-object": "^2.0.3", + "object.defaults": "^1.1.0", + "object.pick": "^1.2.0", + "parse-filepath": "^1.0.1" + } + }, + "first-chunk-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz", + "integrity": "sha1-Wb+1DNkF9g18OUzT2ayqtOatk04=", + "dev": true + }, + "flagged-respawn": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz", + "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==", + "dev": true + }, + "flat-cache": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", + "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "dev": true, + "requires": { + "flatted": "^2.0.0", + "rimraf": "2.6.3", + "write": "1.0.3" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flatted": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", + "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", + "dev": true + }, + "flatten": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.3.tgz", + "integrity": "sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg==", + "dev": true + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", + "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fn-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fn-name/-/fn-name-2.0.1.tgz", + "integrity": "sha1-UhTXU3pNBqSjAcDMJi/rhBiAAuc=", + "dev": true + }, + "follow-redirects": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz", + "integrity": "sha512-aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==", + "dev": true + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz", + "integrity": "sha1-xjMy9BXO3EsE2/5wz4NklMU8tEs=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "fragment-cache": { + "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" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs-extra": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz", + "integrity": "sha1-N5TzeMWLNC6n27sjCVEJxLO2IpE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^3.0.0", + "universalify": "^0.1.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz", + "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==", + "dev": true, + "optional": true + }, + "fstream": { + "version": "1.0.12", + "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", + "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "inherits": "~2.0.0", + "mkdirp": ">=0.5 0", + "rimraf": "2" + } + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "g-status": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/g-status/-/g-status-2.0.2.tgz", + "integrity": "sha512-kQoE9qH+T1AHKgSSD0Hkv98bobE90ILQcXAF4wvGgsr7uFqNvwmh8j+Lq3l0RVt3E3HjSbv2B9biEGcEtpHLCA==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "matcher": "^1.0.0", + "simple-git": "^1.85.0" + } + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "gaze": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", + "integrity": "sha1-QLcJU30k0dRXZ9takIaJ3+aaxE8=", + "dev": true, + "requires": { + "globule": "~0.1.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "dev": true + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==", + "dev": true + }, + "get-stdin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz", + "integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.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" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-stream": { + "version": "3.1.18", + "resolved": "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz", + "integrity": "sha1-kXCl8St5Awb9/lmPMT+PeVT9FDs=", + "dev": true, + "requires": { + "glob": "^4.3.1", + "glob2base": "^0.0.12", + "minimatch": "^2.0.1", + "ordered-read-streams": "^0.1.0", + "through2": "^0.6.1", + "unique-stream": "^1.0.0" + }, + "dependencies": { + "glob": { + "version": "4.5.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz", + "integrity": "sha1-xstz0yJsHv7wTePFbQEvAzd+4V8=", + "dev": true, + "requires": { + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^2.0.1", + "once": "^1.3.0" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "minimatch": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz", + "integrity": "sha1-jQh8OcazjAAbl/ynzm0OHoCvusc=", + "dev": true, + "requires": { + "brace-expansion": "^1.0.0" + } + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + } + } + }, + "glob-watcher": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz", + "integrity": "sha1-uVtKjfdLOcgymLDAXJeLTZo7cQs=", + "dev": true, + "requires": { + "gaze": "^0.5.1" + } + }, + "glob2base": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz", + "integrity": "sha1-nUGbPijxLoOjYhZKJ3BVkiycDVY=", + "dev": true, + "requires": { + "find-index": "^0.1.1" + } + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "globule": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz", + "integrity": "sha1-2cjt3h2nnRJaFRt5UzuXhnY0auU=", + "dev": true, + "requires": { + "glob": "~3.1.21", + "lodash": "~1.0.1", + "minimatch": "~0.2.11" + }, + "dependencies": { + "glob": { + "version": "3.1.21", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz", + "integrity": "sha1-0p4KBV3qUTj00H7UDomC6DwgZs0=", + "dev": true, + "requires": { + "graceful-fs": "~1.2.0", + "inherits": "1", + "minimatch": "~0.2.11" + } + }, + "graceful-fs": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz", + "integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=", + "dev": true + }, + "inherits": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-1.0.2.tgz", + "integrity": "sha1-ykMJ2t7mtUzAuNJH6NfHoJdb3Js=", + "dev": true + }, + "lodash": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz", + "integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=", + "dev": true + }, + "minimatch": { + "version": "0.2.14", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz", + "integrity": "sha1-x054BXT2PG+aCQ6Q775u9TpqdWo=", + "dev": true, + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + } + } + }, + "glogg": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz", + "integrity": "sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA==", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "gulp": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz", + "integrity": "sha1-VxzkWSjdQK9lFPxAEYZgFsE4RbQ=", + "dev": true, + "requires": { + "archy": "^1.0.0", + "chalk": "^1.0.0", + "deprecated": "^0.0.1", + "gulp-util": "^3.0.0", + "interpret": "^1.0.0", + "liftoff": "^2.1.0", + "minimist": "^1.1.0", + "orchestrator": "^0.3.0", + "pretty-hrtime": "^1.0.0", + "semver": "^4.1.0", + "tildify": "^1.0.0", + "v8flags": "^2.0.2", + "vinyl-fs": "^0.3.0" + }, + "dependencies": { + "semver": { + "version": "4.3.6", + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz", + "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=", + "dev": true + } + } + }, + "gulp-autoprefixer": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/gulp-autoprefixer/-/gulp-autoprefixer-3.1.1.tgz", + "integrity": "sha1-dSMAUc0NFxND14O36bXREg7u+bA=", + "dev": true, + "requires": { + "autoprefixer": "^6.0.0", + "gulp-util": "^3.0.0", + "postcss": "^5.0.4", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-clean-css": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.10.0.tgz", + "integrity": "sha512-7Isf9Y690o/Q5MVjEylH1H7L8WeZ89woW7DnhD5unTintOdZb67KdOayRgp9trUFo+f9UyJtuatV42e/+kghPg==", + "dev": true, + "requires": { + "clean-css": "4.2.1", + "plugin-error": "1.0.1", + "through2": "2.0.3", + "vinyl-sourcemaps-apply": "0.2.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + } + } + }, + "gulp-rename": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/gulp-rename/-/gulp-rename-1.4.0.tgz", + "integrity": "sha512-swzbIGb/arEoFK89tPY58vg3Ok1bw+d35PfUNwWqdo7KM4jkmuGA78JiDNqR+JeZFaeeHnRg9N7aihX3YPmsyg==", + "dev": true + }, + "gulp-sass": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/gulp-sass/-/gulp-sass-3.2.1.tgz", + "integrity": "sha512-UATbRpSDsyXCnpYSPBUEvdvtSEzksJs7/oQ0CujIpzKqKrO6vlnYwhX2UTsGrf4rNLwqlSSaM271It0uHYvJ3Q==", + "dev": true, + "requires": { + "gulp-util": "^3.0", + "lodash.clonedeep": "^4.3.2", + "node-sass": "^4.8.3", + "through2": "^2.0.0", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-uglify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz", + "integrity": "sha512-gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "extend-shallow": "^3.0.2", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "isobject": "^3.0.1", + "make-error-cause": "^1.1.1", + "safe-buffer": "^5.1.2", + "through2": "^2.0.0", + "uglify-js": "^3.0.5", + "vinyl-sourcemaps-apply": "^0.2.0" + } + }, + "gulp-util": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/gulp-util/-/gulp-util-3.0.8.tgz", + "integrity": "sha1-AFTh50RQLifATBh8PsxQXdVLu08=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-uniq": "^1.0.2", + "beeper": "^1.0.0", + "chalk": "^1.0.0", + "dateformat": "^2.0.0", + "fancy-log": "^1.1.0", + "gulplog": "^1.0.0", + "has-gulplog": "^0.1.0", + "lodash._reescape": "^3.0.0", + "lodash._reevaluate": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.template": "^3.0.0", + "minimist": "^1.1.0", + "multipipe": "^0.1.2", + "object-assign": "^3.0.0", + "replace-ext": "0.0.1", + "through2": "^2.0.0", + "vinyl": "^0.5.0" + }, + "dependencies": { + "object-assign": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-3.0.0.tgz", + "integrity": "sha1-m+3VygiXlJvKR+f/QIBi1Un1h/I=", + "dev": true + } + } + }, + "gulplog": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz", + "integrity": "sha1-4oxNRdBey77YGDY86PnFkmIp/+U=", + "dev": true, + "requires": { + "glogg": "^1.0.0" + } + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, + "requires": { + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-binary2": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", + "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", + "dev": true, + "requires": { + "isarray": "2.0.1" + } + }, + "has-cors": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", + "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "dev": true + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-gulplog": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/has-gulplog/-/has-gulplog-0.1.0.tgz", + "integrity": "sha1-ZBTIKRNpfaUVkDl9r7EvIpZ4Ec4=", + "dev": true, + "requires": { + "sparkles": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "has-value": { + "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", + "isobject": "^3.0.0" + } + }, + "has-values": { + "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" + }, + "dependencies": { + "is-number": { + "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" + }, + "dependencies": { + "kind-of": { + "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" + } + } + } + }, + "kind-of": { + "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" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "header-case": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz", + "integrity": "sha1-lTWXMZfBRLCWE81l0xfvGZY70C0=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.3" + } + }, + "highlight.js": { + "version": "9.18.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz", + "integrity": "sha512-zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ==", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz", + "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", + "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", + "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "dev": true + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz", + "integrity": "sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.21.tgz", + "integrity": "sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz", + "integrity": "sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==", + "dev": true + }, + "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 + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz", + "integrity": "sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", + "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", + "dev": true + } + } + } + } + }, + "html-webpack-plugin": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz", + "integrity": "sha1-f5xCG36pHsRg9WUn1430hO51N9U=", + "dev": true, + "requires": { + "bluebird": "^3.4.7", + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "toposort": "^1.0.0" + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", + "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true + }, + "immutable": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-3.8.2.tgz", + "integrity": "sha1-wkOZUUVbs5kT2vKBN28VMOEErfM=", + "dev": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", + "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "in-publish": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz", + "integrity": "sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "7.3.3", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz", + "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.19", + "mute-stream": "0.0.8", + "run-async": "^2.4.0", + "rxjs": "^6.6.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "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" + } + }, + "chalk": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", + "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "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 + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "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 + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "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" + }, + "dependencies": { + "kind-of": { + "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" + } + } + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-data-descriptor": { + "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" + }, + "dependencies": { + "kind-of": { + "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" + } + } + } + }, + "is-descriptor": { + "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", + "kind-of": "^5.0.0" + }, + "dependencies": { + "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 + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", + "integrity": "sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-lower-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz", + "integrity": "sha1-fhR75HaNxGbbO/shzGCzHmrWk5M=", + "dev": true, + "requires": { + "lower-case": "^1.1.0" + } + }, + "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 + }, + "is-number-like": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/is-number-like/-/is-number-like-1.0.8.tgz", + "integrity": "sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA==", + "dev": true, + "requires": { + "lodash.isfinite": "^3.3.2" + } + }, + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + }, + "is-observable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-1.1.0.tgz", + "integrity": "sha512-NqCa4Sa2d+u7BWc6CukaObG3Fh+CU9bvixbpcXYhy2VvYS7vVGIdAgnIS5Ks3A/cqk4rebLJ9s8zBstT2aKnIA==", + "dev": true, + "requires": { + "symbol-observable": "^1.1.0" + }, + "dependencies": { + "symbol-observable": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", + "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", + "dev": true + } + } + }, + "is-path-cwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "dev": true + }, + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "dev": true, + "requires": { + "is-path-inside": "^1.0.0" + } + }, + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.1" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "dev": true, + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-svg": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-2.1.0.tgz", + "integrity": "sha1-z2EJDaDZ77yrhyLeum8DIgjbsOk=", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-upper-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz", + "integrity": "sha1-jQsfp+eTOh5YSDYA7H2WYcuvdW8=", + "dev": true, + "requires": { + "upper-case": "^1.1.0" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "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 + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", + "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "js-base64": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", + "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", + "dev": true + }, + "js-beautify": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.0.tgz", + "integrity": "sha512-/Tbp1OVzZjbwzwJQFIlYLm9eWQ+3aYbBXLSaqb1mEJzhcQAfrqMMQYtjb6io+U6KpD0ID4F+Id3/xcjH3l/sqA==", + "dev": true, + "requires": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "mkdirp": "^1.0.4", + "nopt": "^5.0.0" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + } + } + }, + "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 + }, + "js-yaml": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.7.0.tgz", + "integrity": "sha1-XJZ93YN6m/3KXy3oQlOr6KHAO4A=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^2.6.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz", + "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=", + "dev": true, + "optional": true, + "requires": { + "abab": "^1.0.0", + "acorn": "^2.4.0", + "acorn-globals": "^1.0.4", + "cssom": ">= 0.3.0 < 0.4.0", + "cssstyle": ">= 0.2.29 < 0.3.0", + "escodegen": "^1.6.1", + "nwmatcher": ">= 1.3.7 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.55.0", + "sax": "^1.1.4", + "symbol-tree": ">= 3.1.0 < 4.0.0", + "tough-cookie": "^2.2.0", + "webidl-conversions": "^2.0.0", + "whatwg-url-compat": "~0.6.5", + "xml-name-validator": ">= 2.0.1 < 3.0.0" + }, + "dependencies": { + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true, + "optional": true + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true, + "optional": true + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "jsonfile": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz", + "integrity": "sha1-pezG9l9T9mLEQVx2daAzHQmS7GY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "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 + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "liftoff": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/liftoff/-/liftoff-2.5.0.tgz", + "integrity": "sha1-IAkpG7Mc6oYbvxCnwVooyvdcMew=", + "dev": true, + "requires": { + "extend": "^3.0.0", + "findup-sync": "^2.0.0", + "fined": "^1.0.1", + "flagged-respawn": "^1.0.0", + "is-plain-object": "^2.0.4", + "object.map": "^1.0.0", + "rechoir": "^0.6.2", + "resolve": "^1.1.7" + } + }, + "limiter": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz", + "integrity": "sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA==", + "dev": true + }, + "linkify-it": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-1.2.4.tgz", + "integrity": "sha1-B3NSbDF8j9E71TTuHRgP+Iq/iBo=", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "lint-staged": { + "version": "8.2.1", + "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-8.2.1.tgz", + "integrity": "sha512-n0tDGR/rTCgQNwXnUf/eWIpPNddGWxC32ANTNYsj2k02iZb7Cz5ox2tytwBu+2r0zDXMEMKw7Y9OD/qsav561A==", + "dev": true, + "requires": { + "chalk": "^2.3.1", + "commander": "^2.14.1", + "cosmiconfig": "^5.2.0", + "debug": "^3.1.0", + "dedent": "^0.7.0", + "del": "^3.0.0", + "execa": "^1.0.0", + "g-status": "^2.0.2", + "is-glob": "^4.0.0", + "is-windows": "^1.0.2", + "listr": "^0.14.2", + "listr-update-renderer": "^0.5.0", + "lodash": "^4.17.11", + "log-symbols": "^2.2.0", + "micromatch": "^3.1.8", + "npm-which": "^3.0.1", + "p-map": "^1.1.1", + "path-is-inside": "^1.0.2", + "pify": "^3.0.0", + "please-upgrade-node": "^3.0.2", + "staged-git-files": "1.1.2", + "string-argv": "^0.0.2", + "stringify-object": "^3.2.2", + "yup": "^0.27.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "braces": { + "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", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "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" + } + } + } + }, + "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" + } + }, + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "del": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz", + "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=", + "dev": true, + "requires": { + "globby": "^6.1.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "p-map": "^1.1.1", + "pify": "^3.0.0", + "rimraf": "^2.2.8" + } + }, + "fill-range": { + "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", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "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" + } + } + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "is-number": { + "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" + }, + "dependencies": { + "kind-of": { + "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" + } + } + } + }, + "micromatch": { + "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", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "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" + } + }, + "to-regex-range": { + "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" + } + } + } + }, + "listr": { + "version": "0.14.3", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.14.3.tgz", + "integrity": "sha512-RmAl7su35BFd/xoMamRjpIE4j3v+L28o8CT5YhAXQJm1fD+1l9ngXY8JAQRJ+tFK2i5njvi0iRUKV09vPwA0iA==", + "dev": true, + "requires": { + "@samverschueren/stream-to-observable": "^0.3.0", + "is-observable": "^1.1.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.5.0", + "listr-verbose-renderer": "^0.5.0", + "p-map": "^2.0.0", + "rxjs": "^6.3.3" + }, + "dependencies": { + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", + "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", + "dev": true + }, + "rxjs": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", + "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.5.0.tgz", + "integrity": "sha512-tKRsZpKz8GSGqoI/+caPmfrypiaq+OQCbd+CovEC24uk1h952lVj5sC7SqyFUm+OaJ5HN/a1YLt5cit2FMNsFA==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^2.3.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + } + } + }, + "listr-verbose-renderer": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.5.0.tgz", + "integrity": "sha512-04PDPqSlsqIOaaaGZ+41vq5FejI9auqTInicFRndCBgE3bXG8D6W1I+mWhk+1nqbHmyhla/6BUrd5OSiHwKRXw==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "cli-cursor": "^2.1.0", + "date-fns": "^1.27.2", + "figures": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.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" + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "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" + } + } + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", + "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "localtunnel": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.0.tgz", + "integrity": "sha512-g6E0aLgYYDvQDxIjIXkgJo2+pHj3sGg4Wz/XP3h2KtZnRsWPbOQY+hw1H8Z91jep998fkcVE9l+kghO+97vllg==", + "dev": true, + "requires": { + "axios": "0.19.0", + "debug": "4.1.1", + "openurl": "1.1.1", + "yargs": "13.3.0" + }, + "dependencies": { + "axios": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz", + "integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==", + "dev": true, + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz", + "integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==", + "dev": true, + "requires": { + "debug": "=3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz", + "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==", + "dev": true + }, + "yargs": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", + "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.1" + } + } + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", + "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, + "lodash": { + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basetostring": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basetostring/-/lodash._basetostring-3.0.1.tgz", + "integrity": "sha1-0YYdh3+CSlL2aYMtyvPuFVZqB9U=", + "dev": true + }, + "lodash._basevalues": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._basevalues/-/lodash._basevalues-3.0.0.tgz", + "integrity": "sha1-W3dXYoAr3j0yl1A+JjAIIP32Ybc=", + "dev": true + }, + "lodash._createcompounder": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._createcompounder/-/lodash._createcompounder-3.0.0.tgz", + "integrity": "sha1-XdLLVTctbnDg4jkvsjBNZjEJEHU=", + "dev": true, + "requires": { + "lodash.deburr": "^3.0.0", + "lodash.words": "^3.0.0" + } + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash._reescape": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reescape/-/lodash._reescape-3.0.0.tgz", + "integrity": "sha1-Kx1vXf4HyKNVdT5fJ/rH8c3hYWo=", + "dev": true + }, + "lodash._reevaluate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reevaluate/-/lodash._reevaluate-3.0.0.tgz", + "integrity": "sha1-WLx0xAZklTrgsSTYBpltrKQx4u0=", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=", + "dev": true + }, + "lodash._root": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._root/-/lodash._root-3.0.1.tgz", + "integrity": "sha1-+6HEUkwZ7ppfgTa0YJ8BfPTe1pI=", + "dev": true + }, + "lodash.camelcase": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-3.0.1.tgz", + "integrity": "sha1-kyyLh/ikN3iXxnGXUzKC+Xrqwpg=", + "dev": true, + "requires": { + "lodash._createcompounder": "^3.0.0" + } + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", + "dev": true + }, + "lodash.deburr": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-3.2.0.tgz", + "integrity": "sha1-baj1QzSjZqfPTEx2742Aqhs2XtU=", + "dev": true, + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.escape": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.escape/-/lodash.escape-3.2.0.tgz", + "integrity": "sha1-mV7g3BjBtIzJLv+ucaEKq1tIdpg=", + "dev": true, + "requires": { + "lodash._root": "^3.0.0" + } + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.isfinite": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz", + "integrity": "sha1-+4m2WpqAKBgz8LdHizpRBPiY67M=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true, + "requires": { + "lodash._getnative": "^3.0.0", + "lodash.isarguments": "^3.0.0", + "lodash.isarray": "^3.0.0" + } + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.restparam": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/lodash.restparam/-/lodash.restparam-3.6.1.tgz", + "integrity": "sha1-k2pOMJ7zMKdkXtQUWYbIWuWyCAU=", + "dev": true + }, + "lodash.template": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-3.6.2.tgz", + "integrity": "sha1-+M3sxhaaJVvpCYrosMU9N4kx0U8=", + "dev": true, + "requires": { + "lodash._basecopy": "^3.0.0", + "lodash._basetostring": "^3.0.0", + "lodash._basevalues": "^3.0.0", + "lodash._isiterateecall": "^3.0.0", + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0", + "lodash.keys": "^3.0.0", + "lodash.restparam": "^3.0.0", + "lodash.templatesettings": "^3.0.0" + } + }, + "lodash.templatesettings": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-3.1.1.tgz", + "integrity": "sha1-+zB4RHU7Zrnxr6VOJix0UwfbqOU=", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.escape": "^3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "lodash.words": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash.words/-/lodash.words-3.2.0.tgz", + "integrity": "sha1-TiqGSbwIdFsXxpWxo86P7llmI7M=", + "dev": true, + "requires": { + "lodash._root": "^3.0.0" + } + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.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" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "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" + } + } + } + }, + "log-update": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-2.3.0.tgz", + "integrity": "sha1-iDKP19HOeTiykoN0bwsbwSayRwg=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "cli-cursor": "^2.0.0", + "wrap-ansi": "^3.0.1" + }, + "dependencies": { + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", + "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz", + "integrity": "sha1-KIoE2H7aXChuBg3+jxNc6NAH+Lo=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0" + } + } + } + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loud-rejection": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz", + "integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=", + "dev": true, + "requires": { + "currently-unhandled": "^0.4.1", + "signal-exit": "^3.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lower-case-first": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz", + "integrity": "sha1-5dp8JvKacHO+AtUrrJmA5ZIq36E=", + "dev": true, + "requires": { + "lower-case": "^1.1.2" + } + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-error-cause": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz", + "integrity": "sha1-3wOI/NCzeBbf8KX7gQiTl3fcvJ0=", + "dev": true, + "requires": { + "make-error": "^1.2.0" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=", + "dev": true + }, + "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" + } + }, + "markdown-it": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-6.1.1.tgz", + "integrity": "sha1-ztA39Ec+6fUVOsQU933IPJG6knw=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "entities": "~1.1.1", + "linkify-it": "~1.2.2", + "mdurl": "~1.0.1", + "uc.micro": "^1.0.1" + } + }, + "matcher": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-1.1.1.tgz", + "integrity": "sha512-+BmqxWIubKTRKNWx/ahnCkk3mG8m7OturVlqq6HiojGJTd5hVYbgZm6WzcYPCoB+KBT4Vd6R7WSRG2OADNaCjg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.4" + } + }, + "math-expression-evaluator": { + "version": "1.2.22", + "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.22.tgz", + "integrity": "sha512-L0j0tFVZBQQLeEjmWOvDLoRciIY8gQGWahvkztXUal8jH8R5Rlqo9GCvgqvXcy9LQhEWdQCVvzqAbxgYNt4blQ==", + "dev": true + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + } + } + }, + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", + "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "meow": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz", + "integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=", + "dev": true, + "requires": { + "camelcase-keys": "^2.0.0", + "decamelize": "^1.1.2", + "loud-rejection": "^1.0.0", + "map-obj": "^1.0.1", + "minimist": "^1.1.3", + "normalize-package-data": "^2.3.4", + "object-assign": "^4.0.1", + "read-pkg-up": "^1.0.1", + "redent": "^1.0.0", + "trim-newlines": "^1.0.0" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "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" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "mime": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", + "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", + "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "mitt": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-1.2.0.tgz", + "integrity": "sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw==", + "dev": true + }, + "mixin-deep": { + "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" + }, + "dependencies": { + "is-extendable": { + "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" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mockjs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz", + "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", + "dev": true, + "requires": { + "commander": "*" + } + }, + "morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "requires": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "dependencies": { + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + } + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multer": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.2.tgz", + "integrity": "sha512-xY8pX7V+ybyUpbYMxtjM9KAiD9ixtg5/JkeKUTD6xilfDv0vzzOFcCp4Ljb1UU3tSOM3VTZtKo63OmzOrGi3Cg==", + "dev": true, + "requires": { + "append-field": "^1.0.0", + "busboy": "^0.2.11", + "concat-stream": "^1.5.2", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.1", + "on-finished": "^2.3.0", + "type-is": "^1.6.4", + "xtend": "^4.0.0" + } + }, + "multipipe": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/multipipe/-/multipipe-0.1.2.tgz", + "integrity": "sha1-Ko8t33Du1WTf8tV/HhoTfZ8FB4s=", + "dev": true, + "requires": { + "duplexer2": "0.0.2" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", + "dev": true + }, + "nanomatch": { + "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", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "natives": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", + "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==", + "dev": true + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "ncname": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ncname/-/ncname-1.0.0.tgz", + "integrity": "sha1-W1etGLHKCShk72Kwse2BlPODtxw=", + "dev": true, + "requires": { + "xml-char-classes": "^1.0.0" + } + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "next-tick": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", + "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", + "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-gyp": { + "version": "3.8.0", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", + "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", + "dev": true, + "requires": { + "fstream": "^1.0.0", + "glob": "^7.0.3", + "graceful-fs": "^4.1.2", + "mkdirp": "^0.5.0", + "nopt": "2 || 3", + "npmlog": "0 || 1 || 2 || 3 || 4", + "osenv": "0", + "request": "^2.87.0", + "rimraf": "2", + "semver": "~5.3.0", + "tar": "^2.0.0", + "which": "1" + }, + "dependencies": { + "semver": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", + "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", + "dev": true + } + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", + "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + } + } + }, + "node-sass": { + "version": "4.14.1", + "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", + "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", + "dev": true, + "requires": { + "async-foreach": "^0.1.3", + "chalk": "^1.1.1", + "cross-spawn": "^3.0.0", + "gaze": "^1.0.0", + "get-stdin": "^4.0.1", + "glob": "^7.0.3", + "in-publish": "^2.0.0", + "lodash": "^4.17.15", + "meow": "^3.7.0", + "mkdirp": "^0.5.1", + "nan": "^2.13.2", + "node-gyp": "^3.8.0", + "npmlog": "^4.0.0", + "request": "^2.88.0", + "sass-graph": "2.2.5", + "stdout-stream": "^1.4.0", + "true-case-path": "^1.0.2" + }, + "dependencies": { + "cross-spawn": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz", + "integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "which": "^1.2.9" + } + }, + "gaze": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz", + "integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==", + "dev": true, + "requires": { + "globule": "^1.0.0" + } + }, + "globule": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.2.tgz", + "integrity": "sha512-7IDTQTIu2xzXkT+6mlluidnWo+BypnbSoEVVQCGfzqnl5Ik8d3e1d4wycb8Rj9tWW+Z39uPWsdlquqiqPCd/pA==", + "dev": true, + "requires": { + "glob": "~7.1.1", + "lodash": "~4.17.10", + "minimatch": "~3.0.2" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-path": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/npm-path/-/npm-path-2.0.4.tgz", + "integrity": "sha512-IFsj0R9C7ZdR5cP+ET342q77uSRdtWOlWpih5eC+lu29tIDbNEgDbzgVJ5UFvYHWhxDZ5TFkJafFioO0pPQjCw==", + "dev": true, + "requires": { + "which": "^1.2.10" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npm-which": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/npm-which/-/npm-which-3.0.1.tgz", + "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", + "dev": true, + "requires": { + "commander": "^2.9.0", + "npm-path": "^2.0.2", + "which": "^1.2.10" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", + "dev": true, + "optional": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-component": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", + "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "dev": true + }, + "object-copy": { + "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", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "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" + } + }, + "kind-of": { + "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" + } + } + } + }, + "object-path": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/object-path/-/object-path-0.9.2.tgz", + "integrity": "sha1-D9mnT8X60a45aLWGvaXGMr1sBaU=", + "dev": true + }, + "object-visit": { + "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" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "dev": true, + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "dev": true, + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "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" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "openurl": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", + "integrity": "sha1-OHW0sO96UsFW8NtB1GCduw+Us4c=", + "dev": true + }, + "opn": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", + "integrity": "sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "orchestrator": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz", + "integrity": "sha1-FOfp4nZPcxX7rBhOUGx6pt+UrX4=", + "dev": true, + "requires": { + "end-of-stream": "~0.1.5", + "sequencify": "~0.0.7", + "stream-consume": "~0.1.0" + } + }, + "ordered-read-streams": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz", + "integrity": "sha1-/VZamvjrRHO6abbtijQ1LLVS8SY=", + "dev": true + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + } + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", + "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", + "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "dev": true, + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "parse5": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-3.0.3.tgz", + "integrity": "sha512-rgO9Zg5LLLkfJF9E6CCmXlSE4UVceloys8JrFqCcHloC3usd/kJCyPDwH2SOlzix2j3xaP9sUX3e8+kvkuleAA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "parseqs": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", + "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseuri": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", + "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "dev": true, + "requires": { + "better-assert": "~1.0.0" + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascal-case": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz", + "integrity": "sha1-LVeNNFX2YNpl7KGO+VtODekSdh4=", + "dev": true, + "requires": { + "camel-case": "^3.0.0", + "upper-case-first": "^1.1.0" + } + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", + "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", + "dev": true + }, + "path-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz", + "integrity": "sha1-lLgDfDctP+KQbkZbtF4l0ibo7qU=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true, + "optional": true + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "dev": true + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "dev": true, + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + }, + "please-upgrade-node": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", + "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", + "dev": true, + "requires": { + "semver-compare": "^1.0.0" + } + }, + "plugin-error": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/plugin-error/-/plugin-error-1.0.1.tgz", + "integrity": "sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==", + "dev": true, + "requires": { + "ansi-colors": "^1.0.1", + "arr-diff": "^4.0.0", + "arr-union": "^3.1.0", + "extend-shallow": "^3.0.2" + } + }, + "portscanner": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/portscanner/-/portscanner-2.1.1.tgz", + "integrity": "sha1-6rtAnk3iSVD1oqUW01rnaTQ/u5Y=", + "dev": true, + "requires": { + "async": "1.5.2", + "is-number-like": "^1.0.3" + } + }, + "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 + }, + "postcss": { + "version": "5.2.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-5.2.18.tgz", + "integrity": "sha512-zrUjRRe1bpXKsX1qAJNJjqZViErVuyEkMTRrwu4ud4sbTtIBRmtaYDrHmcGgmrbsW3MHfmtIf+vJumgQn+PrXg==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "js-base64": "^2.1.9", + "source-map": "^0.5.6", + "supports-color": "^3.2.3" + }, + "dependencies": { + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true, + "requires": { + "has-flag": "^1.0.0" + } + } + } + }, + "postcss-calc": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-5.3.1.tgz", + "integrity": "sha1-d7rnypKK2FcW4v2kLyYb98HWW14=", + "dev": true, + "requires": { + "postcss": "^5.0.2", + "postcss-message-helpers": "^2.0.0", + "reduce-css-calc": "^1.2.6" + } + }, + "postcss-colormin": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-2.2.2.tgz", + "integrity": "sha1-ZjFBfV8OkJo9fsJrJMio0eT5bks=", + "dev": true, + "requires": { + "colormin": "^1.0.5", + "postcss": "^5.0.13", + "postcss-value-parser": "^3.2.3" + } + }, + "postcss-convert-values": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz", + "integrity": "sha1-u9hZPFwf0uPRwyK7kl3K6Nrk1i0=", + "dev": true, + "requires": { + "postcss": "^5.0.11", + "postcss-value-parser": "^3.1.2" + } + }, + "postcss-discard-comments": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz", + "integrity": "sha1-vv6J+v1bPazlzM5Rt2uBUUvgDj0=", + "dev": true, + "requires": { + "postcss": "^5.0.14" + } + }, + "postcss-discard-duplicates": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz", + "integrity": "sha1-uavye4isGIFYpesSq8riAmO5GTI=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-discard-empty": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz", + "integrity": "sha1-0rS9nVztXr2Nyt52QMfXzX9PkrU=", + "dev": true, + "requires": { + "postcss": "^5.0.14" + } + }, + "postcss-discard-overridden": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz", + "integrity": "sha1-ix6vVU9ob7KIzYdMVWZ7CqNmjVg=", + "dev": true, + "requires": { + "postcss": "^5.0.16" + } + }, + "postcss-discard-unused": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz", + "integrity": "sha1-vOMLLMWR/8Y0Mitfs0ZLbZNPRDM=", + "dev": true, + "requires": { + "postcss": "^5.0.14", + "uniqs": "^2.0.0" + } + }, + "postcss-filter-plugins": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/postcss-filter-plugins/-/postcss-filter-plugins-2.0.3.tgz", + "integrity": "sha512-T53GVFsdinJhgwm7rg1BzbeBRomOg9y5MBVhGcsV0CxurUdVj1UlPdKtn7aqYA/c/QVkzKMjq2bSV5dKG5+AwQ==", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-load-config": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", + "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-load-options": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz", + "integrity": "sha1-sJixVZ3awt8EvAuzdfmaXP4rbYw=", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + } + } + } + }, + "postcss-load-plugins": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz", + "integrity": "sha1-dFdoEWWZrKLwCfrUJrABdQSdjZI=", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.1", + "object-assign": "^4.1.0" + }, + "dependencies": { + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + } + } + } + }, + "postcss-loader": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.6.tgz", + "integrity": "sha512-hgiWSc13xVQAq25cVw80CH0l49ZKlAnU1hKPOdRrNj89bokRr/bZF2nT+hebPPF9c9xs8c3gw3Fr2nxtmXYnNg==", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^6.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^0.4.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "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==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.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" + } + } + } + }, + "postcss-merge-idents": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz", + "integrity": "sha1-TFUwMTwI4dWzu/PSu8dH4njuonA=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.10", + "postcss-value-parser": "^3.1.1" + } + }, + "postcss-merge-longhand": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz", + "integrity": "sha1-I9kM0Sewp3mUkVMyc5A0oaTz1lg=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-merge-rules": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz", + "integrity": "sha1-0d9d+qexrMO+VT8OnhDofGG19yE=", + "dev": true, + "requires": { + "browserslist": "^1.5.2", + "caniuse-api": "^1.5.2", + "postcss": "^5.0.4", + "postcss-selector-parser": "^2.2.2", + "vendors": "^1.0.0" + } + }, + "postcss-message-helpers": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz", + "integrity": "sha1-pPL0+rbk/gAvCu0ABHjN9S+bpg4=", + "dev": true + }, + "postcss-minify-font-values": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz", + "integrity": "sha1-S1jttWZB66fIR0qzUmyv17vey2k=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "postcss-minify-gradients": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz", + "integrity": "sha1-Xb2hE3NwP4PPtKPqOIHY11/15uE=", + "dev": true, + "requires": { + "postcss": "^5.0.12", + "postcss-value-parser": "^3.3.0" + } + }, + "postcss-minify-params": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz", + "integrity": "sha1-rSzgcTc7lDs9kwo/pZo1jCjW8fM=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.2", + "postcss-value-parser": "^3.0.2", + "uniqs": "^2.0.0" + } + }, + "postcss-minify-selectors": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz", + "integrity": "sha1-ssapjAByz5G5MtGkllCBFDEXNb8=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.2", + "has": "^1.0.1", + "postcss": "^5.0.14", + "postcss-selector-parser": "^2.0.0" + } + }, + "postcss-modules-extract-imports": { + "version": "1.0.0-beta2", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.0.0-beta2.tgz", + "integrity": "sha1-8dNTPuo/553/qXojccyRY5NAHcU=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.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" + } + }, + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" + } + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.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" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.0.0-beta2", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-1.0.0-beta2.tgz", + "integrity": "sha1-dq+LAAjt5ka7nbZ14nvE7jqgRLw=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.5.0", + "postcss": "^5.0.4" + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.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" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz", + "integrity": "sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.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" + } + } + } + }, + "postcss-normalize-charset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz", + "integrity": "sha1-757nEhLX/nWceO0WL2HtYrXLk/E=", + "dev": true, + "requires": { + "postcss": "^5.0.5" + } + }, + "postcss-normalize-url": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz", + "integrity": "sha1-EI90s/L82viRov+j6kWSJ5/HgiI=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^1.4.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3" + } + }, + "postcss-ordered-values": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz", + "integrity": "sha1-7sbCpntsQSqNsgQud/6NpD+VwR0=", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.1" + } + }, + "postcss-reduce-idents": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz", + "integrity": "sha1-wsbSDMlYKE9qv75j92Cb9AkFmtM=", + "dev": true, + "requires": { + "postcss": "^5.0.4", + "postcss-value-parser": "^3.0.2" + } + }, + "postcss-reduce-initial": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz", + "integrity": "sha1-aPgGlfBF0IJjqHmtJA343WT2ROo=", + "dev": true, + "requires": { + "postcss": "^5.0.4" + } + }, + "postcss-reduce-transforms": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz", + "integrity": "sha1-/3b02CEkN7McKYpC0uFEQCV3GuE=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.8", + "postcss-value-parser": "^3.0.1" + } + }, + "postcss-selector-parser": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz", + "integrity": "sha1-+UN3iGBsPJrO4W/+jYsWKX8nu5A=", + "dev": true, + "requires": { + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-2.1.6.tgz", + "integrity": "sha1-tt8YqmE7Zm4TPwittSGcJoSsEI0=", + "dev": true, + "requires": { + "is-svg": "^2.0.0", + "postcss": "^5.0.14", + "postcss-value-parser": "^3.2.3", + "svgo": "^0.7.0" + } + }, + "postcss-unique-selectors": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz", + "integrity": "sha1-mB1X0p3csz57Hf4f1DuGSfkzyh0=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.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==", + "dev": true + }, + "postcss-zindex": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-2.2.0.tgz", + "integrity": "sha1-0hCd3AVbka9n/EyzsCWUZjnSryI=", + "dev": true, + "requires": { + "has": "^1.0.1", + "postcss": "^5.0.4", + "uniqs": "^2.0.0" + } + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-hrtime": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", + "integrity": "sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "property-expr": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-1.5.1.tgz", + "integrity": "sha512-CGuc0VUTGthpJXL36ydB6jnbyOf/rAHFvmVrJlH+Rg0DqqLFQGAP6hIaxD/G0OAmBJPhXDHuEJigrp0e0wFV6g==", + "dev": true + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", + "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", + "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + } + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz", + "integrity": "sha512-0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "recast": { + "version": "0.11.23", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.11.23.tgz", + "integrity": "sha1-RR/TAEqx5N+bTktmN2sqIZEkYtM=", + "dev": true, + "requires": { + "ast-types": "0.9.6", + "esprima": "~3.1.0", + "private": "~0.1.5", + "source-map": "~0.5.0" + }, + "dependencies": { + "esprima": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", + "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", + "dev": true + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "redent": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz", + "integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=", + "dev": true, + "requires": { + "indent-string": "^2.1.0", + "strip-indent": "^1.0.1" + } + }, + "reduce-css-calc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz", + "integrity": "sha1-dHyRTgSWFKTJz7umKYca0dKSdxY=", + "dev": true, + "requires": { + "balanced-match": "^0.4.2", + "math-expression-evaluator": "^1.2.14", + "reduce-function-call": "^1.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-0.4.2.tgz", + "integrity": "sha1-yz8+PHMtwPAe5wtAPzAuYddwmDg=", + "dev": true + } + } + }, + "reduce-function-call": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/reduce-function-call/-/reduce-function-call-1.0.3.tgz", + "integrity": "sha512-Hl/tuV2VDgWgCSEeWMLwxLZqX7OK59eU1guxXsRKTAyeYimivsKdtcV4fu3r710tpG5GmDKDhQ0HSZLExnNmyQ==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-not": { + "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" + } + }, + "regexpp": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", + "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", + "dev": true + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true, + "optional": true + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", + "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + } + }, + "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 + }, + "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 + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "dependencies": { + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "dev": true + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz", + "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==", + "dev": true, + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "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 + }, + "resp-modifier": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/resp-modifier/-/resp-modifier-6.0.2.tgz", + "integrity": "sha1-sSTeXE+6/LpUH0j/pzlw9KpFa08=", + "dev": true, + "requires": { + "debug": "^2.2.0", + "minimatch": "^3.0.2" + } + }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "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 + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rx": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/rx/-/rx-4.1.0.tgz", + "integrity": "sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=", + "dev": true + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", + "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "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" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass-graph": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", + "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "lodash": "^4.0.0", + "scss-tokenizer": "^0.2.3", + "yargs": "^13.3.2" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", + "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", + "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + } + } + }, + "sass-loader": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-3.2.3.tgz", + "integrity": "sha1-dC6B/YFwqHcal54YYiUBZ0qI41U=", + "dev": true, + "requires": { + "async": "^1.4.0", + "loader-utils": "^0.2.5", + "object-assign": "^4.0.1" + } + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true + }, + "schema-utils": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.3.0.tgz", + "integrity": "sha1-9YdyIs4+kx7a4DnxfrNxbnE3+M8=", + "dev": true, + "requires": { + "ajv": "^5.0.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + } + } + }, + "scss-tokenizer": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz", + "integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=", + "dev": true, + "requires": { + "js-base64": "^2.1.8", + "source-map": "^0.4.2" + }, + "dependencies": { + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + } + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true + }, + "send": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", + "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.6.2", + "mime": "1.4.1", + "ms": "2.0.0", + "on-finished": "~2.3.0", + "range-parser": "~1.2.0", + "statuses": "~1.4.0" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "statuses": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", + "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "dev": true + } + } + }, + "sentence-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz", + "integrity": "sha1-H24t2jnBaL+S0T+G1KkYkz9mftQ=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case-first": "^1.1.2" + } + }, + "sequencify": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz", + "integrity": "sha1-kM/xnQLgcCf9dn9erT57ldHnOAw=", + "dev": true + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz", + "integrity": "sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==", + "dev": true + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", + "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "dependencies": { + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", + "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + } + } + } + }, + "server-destroy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz", + "integrity": "sha1-8Tv5KOQrnD55OD5hzDmYtdFObN0=", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "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", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "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" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "simple-git": { + "version": "1.132.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-1.132.0.tgz", + "integrity": "sha512-xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==", + "dev": true, + "requires": { + "debug": "^4.0.1" + }, + "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", + "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "snake-case": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz", + "integrity": "sha1-Qb2xtz8w7GagTU4srRt2OH1NbZ8=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "snapdragon": { + "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", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "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" + } + }, + "extend-shallow": { + "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" + } + } + } + }, + "snapdragon-node": { + "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", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "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" + } + }, + "is-accessor-descriptor": { + "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" + } + }, + "is-data-descriptor": { + "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" + } + }, + "is-descriptor": { + "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", + "kind-of": "^6.0.2" + } + } + } + }, + "snapdragon-util": { + "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" + }, + "dependencies": { + "kind-of": { + "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" + } + } + } + }, + "socket.io": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", + "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", + "dev": true, + "requires": { + "debug": "~3.1.0", + "engine.io": "~3.2.0", + "has-binary2": "~1.0.2", + "socket.io-adapter": "~1.1.0", + "socket.io-client": "2.1.1", + "socket.io-parser": "~3.2.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "engine.io-client": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", + "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "component-inherit": "0.0.3", + "debug": "~3.1.0", + "engine.io-parser": "~2.1.1", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "ws": "~3.3.1", + "xmlhttprequest-ssl": "~1.5.4", + "yeast": "0.1.2" + } + }, + "engine.io-parser": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", + "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "dev": true, + "requires": { + "after": "0.8.2", + "arraybuffer.slice": "~0.0.7", + "base64-arraybuffer": "0.1.5", + "blob": "0.0.5", + "has-binary2": "~1.0.2" + } + }, + "socket.io-client": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", + "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "engine.io-client": "~3.2.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.2.0", + "to-array": "0.1.4" + } + }, + "socket.io-parser": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", + "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", + "dev": true, + "requires": { + "component-emitter": "1.2.1", + "debug": "~3.1.0", + "isarray": "2.0.1" + } + }, + "ws": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", + "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0", + "safe-buffer": "~5.1.0", + "ultron": "~1.1.0" + } + } + } + }, + "socket.io-adapter": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", + "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", + "dev": true + }, + "socket.io-client": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.3.0.tgz", + "integrity": "sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA==", + "dev": true, + "requires": { + "backo2": "1.0.2", + "base64-arraybuffer": "0.1.5", + "component-bind": "1.0.0", + "component-emitter": "1.2.1", + "debug": "~4.1.0", + "engine.io-client": "~3.4.0", + "has-binary2": "~1.0.2", + "has-cors": "1.1.0", + "indexof": "0.0.1", + "object-component": "0.0.3", + "parseqs": "0.0.5", + "parseuri": "0.0.5", + "socket.io-parser": "~3.3.0", + "to-array": "0.1.4" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "socket.io-parser": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.3.1.tgz", + "integrity": "sha512-1QLvVAe8dTz+mKmZ07Swxt+LAo4Y1ff50rlyoEx00TQmDFVQYPfcqGvIDJLGaBdhdNCecXtyKpD+EgKGcmmbuQ==", + "dev": true, + "requires": { + "component-emitter": "~1.3.0", + "debug": "~3.1.0", + "isarray": "2.0.1" + }, + "dependencies": { + "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 + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-0.1.8.tgz", + "integrity": "sha1-xVCyq1Qn9rPyH1r+rYjE9Vh7IQY=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "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", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "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 + }, + "sparkles": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz", + "integrity": "sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw==", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz", + "integrity": "sha512-+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==", + "dev": true + }, + "split-string": { + "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" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "staged-git-files": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/staged-git-files/-/staged-git-files-1.1.2.tgz", + "integrity": "sha512-0Eyrk6uXW6tg9PYkhi/V/J4zHp33aNyi2hOCmhFLqLTIhbgqWn5jlSzI+IU0VqrZq6+DbHcabQl/WP6P3BG0QA==", + "dev": true + }, + "static-extend": { + "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" + }, + "dependencies": { + "define-property": { + "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" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stdout-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz", + "integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==", + "dev": true, + "requires": { + "readable-stream": "^2.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", + "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-consume": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz", + "integrity": "sha512-tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==", + "dev": true + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", + "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + }, + "dependencies": { + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + } + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", + "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", + "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "dev": true + }, + "stream-throttle": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz", + "integrity": "sha1-rdV8jXzHOoFjDTHNVdOWHPr7qcM=", + "dev": true, + "requires": { + "commander": "^2.2.0", + "limiter": "^1.0.5" + } + }, + "streamsearch": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz", + "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=", + "dev": true + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-argv": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.0.2.tgz", + "integrity": "sha1-2sMECGkMIfPDYwo/86BYd73L1zY=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", + "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz", + "integrity": "sha1-hbiGLzhEtabV7IRnqTWYFzo295Q=", + "dev": true, + "requires": { + "first-chunk-stream": "^1.0.0", + "is-utf8": "^0.2.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz", + "integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=", + "dev": true, + "requires": { + "get-stdin": "^4.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "style-loader": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.13.2.tgz", + "integrity": "sha1-dFMzhM9pjHEEx5URULSXF63C87s=", + "dev": true, + "requires": { + "loader-utils": "^1.0.2" + }, + "dependencies": { + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "svgo": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-0.7.2.tgz", + "integrity": "sha1-n1dyQTlSE1xv779Ar+ak+qiLS7U=", + "dev": true, + "requires": { + "coa": "~1.0.1", + "colors": "~1.1.2", + "csso": "~2.3.1", + "js-yaml": "~3.7.0", + "mkdirp": "~0.5.1", + "sax": "~1.2.1", + "whet.extend": "~0.9.9" + } + }, + "swap-case": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz", + "integrity": "sha1-w5IDpFhzhfrTyFCgvRvK+ggZdOM=", + "dev": true, + "requires": { + "lower-case": "^1.1.1", + "upper-case": "^1.1.1" + } + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "dev": true, + "optional": true + }, + "synchronous-promise": { + "version": "2.0.13", + "resolved": "https://registry.npmjs.org/synchronous-promise/-/synchronous-promise-2.0.13.tgz", + "integrity": "sha512-R9N6uDkVsghHePKh1TEqbnLddO2IY25OcsksyFp/qBe7XYd0PVbKEWxhcdMhpLzE1I6skj5l4aEZ3CRxcbArlA==", + "dev": true + }, + "table": { + "version": "5.4.6", + "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", + "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "dev": true, + "requires": { + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" + } + }, + "tapable": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.9.tgz", + "integrity": "sha512-2wsvQ+4GwBvLPLWsNfLCDYGsW6xb7aeC6utq2Qh0PFwgEy7K7dsma9Jsmb2zSQj7GvYAyUGSntLtsv++GmgL1A==", + "dev": true + }, + "tar": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", + "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", + "dev": true, + "requires": { + "block-stream": "*", + "fstream": "^1.0.12", + "inherits": "2" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "tfunk": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz", + "integrity": "sha1-OORBT8ZJd9h6/apy+sttKfgve1s=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "object-path": "^0.9.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tildify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz", + "integrity": "sha1-3OwD9V3Km3qj5bBPIYF+tW5jWIo=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0" + } + }, + "time-stamp": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz", + "integrity": "sha1-dkpaEa9QVhkhsTPztE5hhofg9cM=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", + "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "title-case": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz", + "integrity": "sha1-PhJyFtpY0rxb7PE3q5Ha46fNj6o=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.0.3" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-array": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", + "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", + "dev": true + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "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" + }, + "dependencies": { + "kind-of": { + "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" + } + } + } + }, + "to-regex": { + "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", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "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" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "dev": true + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true, + "optional": true + }, + "trim-newlines": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz", + "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "true-case-path": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz", + "integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==", + "dev": true, + "requires": { + "glob": "^7.1.2" + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", + "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "ua-parser-js": { + "version": "0.7.22", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.22.tgz", + "integrity": "sha512-YUxzMjJ5T71w6a8WWVcMGM6YWOTX27rCoIQgLXiWaxqXSx9D7DNjiGWn1aJIRSQ5qr0xuhra77bSIh6voR/46Q==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "uglify-js": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.11.0.tgz", + "integrity": "sha512-e1KQFRCpOxnrJsJVqDUCjURq+wXvIn7cK2sRAx9XL3HYLL9aezOP4Pb1+Y3/o693EPk111Yj2Q+IUXxcpHlygQ==", + "dev": true + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true + }, + "uglifyjs-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha512-ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz", + "integrity": "sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.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 + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + } + } + } + }, + "ultron": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", + "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", + "dev": true + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=", + "dev": true + }, + "union-value": { + "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", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unique-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz", + "integrity": "sha1-1ZpKdUJ0R9mqbJHnAmP40mpLEEs=", + "dev": true + }, + "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 + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unset-value": { + "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" + }, + "dependencies": { + "has-value": { + "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", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "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" + } + } + } + }, + "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 + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "optional": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "upper-case-first": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz", + "integrity": "sha1-XXm+3P8UQZUY/S7bCgUHybaFkRU=", + "dev": true, + "requires": { + "upper-case": "^1.1.1" + } + }, + "uri-js": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", + "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "0.5.9", + "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-0.5.9.tgz", + "integrity": "sha512-B7QYFyvv+fOBqBVeefsxv6koWWtjmHaMFT6KZWti4KRw8YUD/hOU+3AECvXuzyVawIBx3z7zQRejXCDSO5kk1Q==", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "mime": "1.3.x" + }, + "dependencies": { + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "mime": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.6.tgz", + "integrity": "sha1-WR2E02U6awtKO5343lqoEI5y5eA=", + "dev": true + } + } + }, + "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 + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", + "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "dev": true, + "requires": { + "inherits": "2.0.3" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-compile-cache": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "^1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", + "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "vinyl": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz", + "integrity": "sha1-sEVbOPxeDPMNQyUTLkYZcMIJHN4=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-fs": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz", + "integrity": "sha1-mmhRzhysHBzqX+hsCTHWIMLPqeY=", + "dev": true, + "requires": { + "defaults": "^1.0.0", + "glob-stream": "^3.1.5", + "glob-watcher": "^0.0.6", + "graceful-fs": "^3.0.0", + "mkdirp": "^0.5.0", + "strip-bom": "^1.0.0", + "through2": "^0.6.1", + "vinyl": "^0.4.0" + }, + "dependencies": { + "clone": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz", + "integrity": "sha1-xhJqkK1Pctv1rNskPMN3JP6T/B8=", + "dev": true + }, + "graceful-fs": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.12.tgz", + "integrity": "sha512-J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==", + "dev": true, + "requires": { + "natives": "^1.1.3" + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + }, + "through2": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz", + "integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=", + "dev": true, + "requires": { + "readable-stream": ">=1.0.33-1 <1.1.0-0", + "xtend": ">=4.0.0 <4.1.0-0" + } + }, + "vinyl": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz", + "integrity": "sha1-LzVsh6VQolVGHza76ypbqL94SEc=", + "dev": true, + "requires": { + "clone": "^0.2.0", + "clone-stats": "^0.0.1" + } + } + } + }, + "vinyl-sourcemaps-apply": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz", + "integrity": "sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=", + "dev": true, + "requires": { + "source-map": "^0.5.1" + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "vue": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz", + "integrity": "sha512-uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==", + "dev": true + }, + "vue-eslint-parser": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-5.0.0.tgz", + "integrity": "sha512-JlHVZwBBTNVvzmifwjpZYn0oPWH2SgWv5dojlZBsrhablDu95VFD+hriB1rQGwbD+bms6g+rAFhQHk6+NyiS6g==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "eslint-scope": "^4.0.0", + "eslint-visitor-keys": "^1.0.0", + "espree": "^4.1.0", + "esquery": "^1.0.1", + "lodash": "^4.17.11" + }, + "dependencies": { + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", + "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "dev": true + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", + "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "espree": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-4.1.0.tgz", + "integrity": "sha512-I5BycZW6FCVIub93TeVY1s7vjhP9CY6cXCznIRfiig7nRviKZYdRnj/sHEWC6A7WE9RDWOFq9+7OsWSYz8qv2w==", + "dev": true, + "requires": { + "acorn": "^6.0.2", + "acorn-jsx": "^5.0.0", + "eslint-visitor-keys": "^1.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "vue-hot-reload-api": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-1.3.3.tgz", + "integrity": "sha1-VNItg3hqh4ST9jnMdrynmSojvkY=", + "dev": true + }, + "vue-html-loader": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/vue-html-loader/-/vue-html-loader-1.2.4.tgz", + "integrity": "sha1-VM5Im+BgZckdwqEXMSLz4ATgolM=", + "dev": true, + "requires": { + "es6-templates": "^0.2.2", + "fastparse": "^1.0.0", + "html-minifier": "^2.1.5", + "loader-utils": "^1.0.2", + "object-assign": "^4.1.0" + }, + "dependencies": { + "async": { + "version": "0.2.10", + "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz", + "integrity": "sha1-trvgsGdLnXGXCMo43owjfLUmw9E=", + "dev": true + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "clean-css": { + "version": "3.4.28", + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz", + "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=", + "dev": true, + "requires": { + "commander": "2.8.x", + "source-map": "0.4.x" + }, + "dependencies": { + "commander": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true, + "requires": { + "graceful-readlink": ">= 1.0.0" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "html-minifier": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-2.1.7.tgz", + "integrity": "sha1-kFHW/LvPIU7TB+GtdPQyu5rWVcw=", + "dev": true, + "requires": { + "change-case": "3.0.x", + "clean-css": "3.4.x", + "commander": "2.9.x", + "he": "1.1.x", + "ncname": "1.0.x", + "relateurl": "0.2.x", + "uglify-js": "2.6.x" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true, + "requires": { + "amdefine": ">=0.0.4" + } + }, + "uglify-js": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.6.4.tgz", + "integrity": "sha1-ZeovswWck5RpLxX+2HwrNsFrmt8=", + "dev": true, + "requires": { + "async": "~0.2.6", + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "vue-i18n": { + "version": "8.21.1", + "resolved": "https://registry.npmjs.org/vue-i18n/-/vue-i18n-8.21.1.tgz", + "integrity": "sha512-KEakJLI7R6+UCmhJOMZ0K7C+Zf5FcMh7QDkBRaEq39V7d9JgSrTDBf/9HuHU3TaxQYXx4fUi5PTIPdwLXq+iow==", + "dev": true + }, + "vue-loader": { + "version": "12.2.2", + "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-12.2.2.tgz", + "integrity": "sha512-DD+sYaWQ1esYL/tEwJpoEGE/PFUu32fp7iOuMf4Sra3dgxqr4haTOkVam2VY0/5D4LG8eAcB94ruXKeQW2/ikw==", + "dev": true, + "requires": { + "consolidate": "^0.14.0", + "hash-sum": "^1.0.2", + "js-beautify": "^1.6.3", + "loader-utils": "^1.1.0", + "lru-cache": "^4.0.1", + "postcss": "^5.0.21", + "postcss-load-config": "^1.1.0", + "postcss-selector-parser": "^2.0.0", + "resolve": "^1.3.3", + "source-map": "^0.5.6", + "vue-hot-reload-api": "^2.1.0", + "vue-style-loader": "^3.0.0", + "vue-template-es2015-compiler": "^1.2.2" + }, + "dependencies": { + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "cosmiconfig": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.4.3", + "minimist": "^1.2.0", + "object-assign": "^4.1.0", + "os-homedir": "^1.0.1", + "parse-json": "^2.2.0", + "require-from-string": "^1.1.0" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "postcss-load-config": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz", + "integrity": "sha1-U56a/J3chiASHr+djDZz4M5Q0oo=", + "dev": true, + "requires": { + "cosmiconfig": "^2.1.0", + "object-assign": "^4.1.0", + "postcss-load-options": "^1.2.0", + "postcss-load-plugins": "^2.3.0" + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz", + "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==", + "dev": true + }, + "vue-style-loader": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz", + "integrity": "sha512-ICtVdK/p+qXWpdSs2alWtsXt9YnDoYjQe0w5616j9+/EhjoxZkbun34uWgsMFnC1MhrMMwaWiImz3K2jK1Yp2Q==", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + } + } + }, + "vue-markdown-loader": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/vue-markdown-loader/-/vue-markdown-loader-0.6.2.tgz", + "integrity": "sha1-g2eSx/mlTNu0WQgMddD0u73cRIk=", + "dev": true, + "requires": { + "cheerio": "^0.20.0", + "highlight.js": "^9.4.0", + "loader-utils": "^0.2.15", + "markdown-it": "^6.0.5", + "rimraf": "^2.5.2" + }, + "dependencies": { + "cheerio": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz", + "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "~3.8.1", + "jsdom": "^7.0.2", + "lodash": "^4.1.0" + } + }, + "domhandler": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz", + "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "htmlparser2": { + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz", + "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=", + "dev": true, + "requires": { + "domelementtype": "1", + "domhandler": "2.3", + "domutils": "1.5", + "entities": "1.0", + "readable-stream": "1.1" + }, + "dependencies": { + "entities": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz", + "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY=", + "dev": true + } + } + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "vue-router": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-2.8.1.tgz", + "integrity": "sha512-MC4jacHBhTPKtmcfzvaj2N7g6jgJ/Z/eIjZdt+yUaUOM1iKC0OUIlO/xCtz6OZFFTNUJs/1YNro2GN/lE+nOXA==", + "dev": true + }, + "vue-style-loader": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-1.0.0.tgz", + "integrity": "sha1-q+t70PRjEwg3QSRNMHnU8URJ4Ek=", + "dev": true, + "requires": { + "loader-utils": "^0.2.7" + } + }, + "vue-template-compiler": { + "version": "2.6.12", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.12.tgz", + "integrity": "sha512-OzzZ52zS41YUbkCBfdXShQTe69j1gQDZ9HIX8miuC9C3rBCk9wIRjLiZZLrmX9V+Ftq/YEyv1JaVr5Y/hNtByg==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==", + "dev": true + }, + "watchpack": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz", + "integrity": "sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==", + "dev": true, + "requires": { + "chokidar": "^3.4.1", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha512-9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "optional": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "optional": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "optional": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "optional": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "optional": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "optional": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true, + "optional": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "optional": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "to-regex-range": { + "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, + "optional": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "webidl-conversions": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz", + "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=", + "dev": true, + "optional": true + }, + "webpack": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.12.0.tgz", + "integrity": "sha512-Sw7MdIIOv/nkzPzee4o0EdvCuPmxT98+vVpIvwtcwcF1Q4SDSNp92vwcKc4REe7NItH9f1S4ra9FuQ7yuYZ8bQ==", + "dev": true, + "requires": { + "acorn": "^5.0.0", + "acorn-dynamic-import": "^2.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "async": "^2.1.2", + "enhanced-resolve": "^3.4.0", + "escope": "^3.6.0", + "interpret": "^1.0.0", + "json-loader": "^0.5.4", + "json5": "^0.5.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "mkdirp": "~0.5.0", + "node-libs-browser": "^2.0.0", + "source-map": "^0.5.3", + "supports-color": "^4.2.1", + "tapable": "^0.2.7", + "uglifyjs-webpack-plugin": "^0.4.6", + "watchpack": "^1.4.0", + "webpack-sources": "^1.0.1", + "yargs": "^8.0.2" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "dev": true + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", + "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", + "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", + "dev": true + }, + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + } + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", + "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz", + "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=", + "dev": true, + "requires": { + "has-flag": "^2.0.0" + } + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "^0.5.6", + "uglify-js": "^2.8.29", + "webpack-sources": "^1.0.1" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "^4.1.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "read-pkg-up": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^7.0.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + } + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + } + } + }, + "webpack-dev-middleware": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz", + "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==", + "dev": true, + "requires": { + "memory-fs": "~0.4.1", + "mime": "^1.5.0", + "path-is-absolute": "^1.0.0", + "range-parser": "^1.0.3", + "time-stamp": "^2.0.0" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "time-stamp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.2.0.tgz", + "integrity": "sha512-zxke8goJQpBeEgD82CXABeMh0LSJcj7CXEd0OHOg45HgcofF7pxNwZm9+RknpxpDhwN4gFpySkApKfFYfRQnUA==", + "dev": true + } + } + }, + "webpack-hot-middleware": { + "version": "2.25.0", + "resolved": "https://registry.npmjs.org/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz", + "integrity": "sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA==", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "html-entities": "^1.2.0", + "querystring": "^0.2.0", + "strip-ansi": "^3.0.0" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", + "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", + "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", + "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "dev": true + }, + "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 + } + } + }, + "whatwg-url-compat": { + "version": "0.6.5", + "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz", + "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=", + "dev": true, + "optional": true, + "requires": { + "tr46": "~0.0.1" + } + }, + "whet.extend": { + "version": "0.9.9", + "resolved": "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz", + "integrity": "sha1-+HfVv2SMl+WqVC+twW1qJZucEaE=", + "dev": true + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", + "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", + "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", + "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", + "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", + "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "ws": { + "version": "6.1.4", + "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", + "integrity": "sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA==", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xml-char-classes": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/xml-char-classes/-/xml-char-classes-1.0.0.tgz", + "integrity": "sha1-ZGV4SKIP/F31g6Qq2KJ3tFErvE0=", + "dev": true + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true, + "optional": true + }, + "xmlhttprequest-ssl": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", + "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", + "dev": true + }, + "xss": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz", + "integrity": "sha512-3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==", + "requires": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "3.32.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz", + "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=", + "dev": true, + "requires": { + "camelcase": "^2.0.1", + "cliui": "^3.0.3", + "decamelize": "^1.1.1", + "os-locale": "^1.4.0", + "string-width": "^1.0.1", + "window-size": "^0.1.4", + "y18n": "^3.2.0" + }, + "dependencies": { + "camelcase": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz", + "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=", + "dev": true + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wrap-ansi": "^2.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", + "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "yeast": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", + "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", + "dev": true + }, + "yup": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/yup/-/yup-0.27.0.tgz", + "integrity": "sha512-v1yFnE4+u9za42gG/b/081E7uNW9mUj3qtkmelLbW5YPROZzSH/KUUyJu9Wt8vxFJcT9otL/eZopS0YK1L5yPQ==", + "dev": true, + "requires": { + "@babel/runtime": "^7.0.0", + "fn-name": "~2.0.1", + "lodash": "^4.17.11", + "property-expr": "^1.5.0", + "synchronous-promise": "^2.0.6", + "toposort": "^2.0.2" + }, + "dependencies": { + "toposort": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", + "integrity": "sha1-riF2gXXRVZ1IvvNUILL0li8JwzA=", + "dev": true + } + } + } + } +} diff --git a/packages/fes-utils/index.js b/packages/fes-utils/index.js new file mode 100644 index 00000000..6728bacc --- /dev/null +++ b/packages/fes-utils/index.js @@ -0,0 +1,5 @@ + +// TODO fes-utils 完善 +export function main() { + console.log('hello world'); +} diff --git a/packages/fes-utils/package.json b/packages/fes-utils/package.json new file mode 100644 index 00000000..e1ea74ab --- /dev/null +++ b/packages/fes-utils/package.json @@ -0,0 +1,12 @@ +{ + "name": "fes-utils", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "keywords": [], + "author": "", + "license": "MIT" +}