From b244462fa5775bab21fc5f637b60ae711d229e1e Mon Sep 17 00:00:00 2001 From: RainLoop Team Date: Sat, 29 Jun 2019 17:16:09 +0300 Subject: [PATCH] update gulp and gulpfile --- .docker/node/Dockerfile | 2 +- dev/Common/Globals.js | 3 - dev/Screen/Admin/Settings.js | 3 - dev/Settings/Admin/About.js | 3 - dev/Settings/Admin/Branding.js | 2 - dev/Settings/Admin/Plugins.js | 3 - dev/View/Admin/Settings/Pane.js | 2 - gulpfile.js | 636 +-------------- package.json | 14 +- tasks/assets.js | 9 + tasks/common.js | 25 + tasks/config.js | 134 ++++ tasks/css.js | 83 ++ tasks/js.js | 86 ++ tasks/owncloud.js | 100 +++ tasks/rainloop.js | 87 ++ tasks/vendors.js | 56 ++ tasks/webpack.js | 41 + yarn.lock | 1325 +++++++++++++++++++++---------- 19 files changed, 1570 insertions(+), 1044 deletions(-) create mode 100644 tasks/assets.js create mode 100644 tasks/common.js create mode 100644 tasks/config.js create mode 100644 tasks/css.js create mode 100644 tasks/js.js create mode 100644 tasks/owncloud.js create mode 100644 tasks/rainloop.js create mode 100644 tasks/vendors.js create mode 100644 tasks/webpack.js diff --git a/.docker/node/Dockerfile b/.docker/node/Dockerfile index 1bcb1f747..af8934b75 100644 --- a/.docker/node/Dockerfile +++ b/.docker/node/Dockerfile @@ -1,6 +1,6 @@ FROM node:10.16.0-alpine RUN apk add --no-cache git -RUN yarn global add gulp@3.9.1 +RUN yarn global add gulp CMD ["node", "--version"] diff --git a/dev/Common/Globals.js b/dev/Common/Globals.js index 4097c5ee3..0d4adc5cd 100644 --- a/dev/Common/Globals.js +++ b/dev/Common/Globals.js @@ -1,6 +1,3 @@ - -/* global RL_COMMUNITY */ - import window from 'window'; import _ from '_'; import $ from '$'; diff --git a/dev/Screen/Admin/Settings.js b/dev/Screen/Admin/Settings.js index 3477dc4d7..f6671bb01 100644 --- a/dev/Screen/Admin/Settings.js +++ b/dev/Screen/Admin/Settings.js @@ -1,6 +1,3 @@ - -/* global RL_COMMUNITY */ - import {addSettingsViewModel} from 'Knoin/Knoin'; import {runSettingsViewModelHooks} from 'Common/Plugins'; diff --git a/dev/Settings/Admin/About.js b/dev/Settings/Admin/About.js index 0807bc7d5..5dacd5ae9 100644 --- a/dev/Settings/Admin/About.js +++ b/dev/Settings/Admin/About.js @@ -1,6 +1,3 @@ - -/* global RL_COMMUNITY */ - import ko from 'ko'; import {i18n, trigger as translatorTrigger} from 'Common/Translator'; diff --git a/dev/Settings/Admin/Branding.js b/dev/Settings/Admin/Branding.js index a8d401c98..f350eb8d2 100644 --- a/dev/Settings/Admin/Branding.js +++ b/dev/Settings/Admin/Branding.js @@ -1,6 +1,4 @@ -/* global RL_COMMUNITY */ - import _ from '_'; import ko from 'ko'; diff --git a/dev/Settings/Admin/Plugins.js b/dev/Settings/Admin/Plugins.js index 7b9fc9ed6..449c40cec 100644 --- a/dev/Settings/Admin/Plugins.js +++ b/dev/Settings/Admin/Plugins.js @@ -1,6 +1,3 @@ - -/* global RL_COMMUNITY */ - import _ from '_'; import ko from 'ko'; diff --git a/dev/View/Admin/Settings/Pane.js b/dev/View/Admin/Settings/Pane.js index 2cfbb2386..21e295131 100644 --- a/dev/View/Admin/Settings/Pane.js +++ b/dev/View/Admin/Settings/Pane.js @@ -1,6 +1,4 @@ -/* global RL_COMMUNITY */ - import ko from 'ko'; import * as Settings from 'Storage/Settings'; diff --git a/gulpfile.js b/gulpfile.js index 7022610b8..0ea0c5902 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,626 +1,26 @@ /* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ -/* eslint-disable */ -'use strict'; +const gulp = require('gulp'); -var - pkg = require('./package.json'), - head = { - rainloop: '/* RainLoop Webmail (c) RainLoop Team | Licensed under RainLoop Software License */', - agpl: '/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL v3 */' - }, - cfg = { - devVersion: '0.0.0', - releasesPath: 'build/dist/releases', - community: true, - watch: false, - watchInterval: 1000, - googleCompile: false, +const {cleanStatic} = require('./tasks/common'); +const {assets} = require('./tasks/assets'); +const {js, jsLint} = require('./tasks/js'); +const {css, cssLint} = require('./tasks/css'); +const {vendors} = require('./tasks/vendors'); +const {rainloop} = require('./tasks/rainloop'); +const {owncloud} = require('./tasks/owncloud'); - rainloopBuilded: false, - destPath: '', - cleanPath: '', - zipSrcPath: '', - zipFile: '', - zipFileShort: '', +const clean = gulp.series(cleanStatic); - paths: {} - }, +const lint = gulp.parallel(jsLint, cssLint); - _ = require('lodash'), - fs = require('node-fs'), - path = require('path'), - notifier = require('node-notifier'), - runSequence = require('run-sequence'), +const buildState1 = gulp.parallel(js, css, vendors); +const buildState2 = gulp.series(clean, assets, buildState1); - webpack = require('webpack'), - webpackCfgBuilder = require('./webpack.config.builder.js'), +const build = gulp.parallel(lint, buildState2); - argv = require('yargs').argv, +exports.lint = lint; +exports.build = build; - gulp = require('gulp'), - concat = require('gulp-concat-util'), - header = require('gulp-header'), - stripbom = require('gulp-stripbom'), - rename = require('gulp-rename'), - replace = require('gulp-replace'), - uglify = require('gulp-uglify'), - plumber = require('gulp-plumber'), - gulpif = require('gulp-if'), - eol = require('gulp-eol'), - livereload = require('gulp-livereload'), - eslint = require('gulp-eslint'), - cache = require('gulp-cached'), - filter = require('gulp-filter'), - expect = require('gulp-expect-file'), - chmod = require('gulp-chmod'), - size = require('gulp-size'), - gutil = require('gulp-util'); - -cfg.community = !argv.pro; - -// webpack -function webpackCallback(callback) -{ - return function(err, stats) { - - if (err) - { - if (cfg.watch) - { - webpackError(err); - } - else - { - throw new gutil.PluginError('webpack', err); - } - } - else if (stats && stats.compilation && stats.compilation.errors && stats.compilation.errors[0]) - { - if (cfg.watch) - { - _.each(stats.compilation.errors, webpackError); - } - else - { - throw new gutil.PluginError('webpack', stats.compilation.errors[0]); - } - } - - callback(); - }; -} - -function webpackError(err) { - if (err) - { - gutil.log('[webpack]', '---'); - gutil.log('[webpack]', err.error ? err.error.toString() : ''); - gutil.log('[webpack]', err.message || ''); - gutil.log('[webpack]', '---'); - } -} - -function getHead() -{ - return !cfg.community ? head.rainloop : head.agpl; -} - -function zipDir(sSrcDir, sDestDir, sFileName) -{ - return gulp.src(sSrcDir + '**/*') - .pipe(require('gulp-zip')(sFileName)) - .pipe(gulp.dest(sDestDir)); -} - -function cleanDir(sDir) -{ - return gulp.src(sDir, {read: false}) - .pipe(require('gulp-rimraf')()); -} - -function copyFile(sFile, sNewFile, callback) -{ - fs.writeFileSync(sNewFile, fs.readFileSync(sFile)); - callback(); -} - -cfg.paths.globjs = 'dev/**/*.js'; -cfg.paths.static = 'rainloop/v/' + cfg.devVersion + '/static/'; -cfg.paths.staticJS = 'rainloop/v/' + cfg.devVersion + '/static/js/'; -cfg.paths.staticMinJS = 'rainloop/v/' + cfg.devVersion + '/static/js/min/'; -cfg.paths.staticCSS = 'rainloop/v/' + cfg.devVersion + '/static/css/'; -cfg.paths.momentLocales = 'rainloop/v/' + cfg.devVersion + '/app/localization/moment/'; - -cfg.paths.assets = { - src: 'assets/**/*.*' -}; - -cfg.paths.less = { - main: { - src: 'dev/Styles/@Main.less', - watch: ['dev/Styles/*.less'], - options: { - paths: [ - path.join(__dirname, 'dev', 'Styles'), - path.join(__dirname, 'vendors', 'bootstrap', 'less') - ] - } - } -}; - -cfg.paths.css = { - main: { - name: 'app.css', - src: [ - 'node_modules/normalize.css/normalize.css', - 'vendors/jquery-ui/css/smoothness/jquery-ui-1.10.3.custom.css', - 'vendors/fontastic/styles.css', - 'vendors/jquery-nanoscroller/nanoscroller.css', - 'vendors/jquery-letterfx/jquery-letterfx.min.css', - 'vendors/inputosaurus/inputosaurus.css', - 'vendors/flags/flags-fixed.css', - 'node_modules/opentip/css/opentip.css', - 'node_modules/pikaday/css/pikaday.css', - 'vendors/lightgallery/dist/css/lightgallery.min.css', - 'vendors/lightgallery/dist/css/lg-transitions.min.css', - 'vendors/Progress.js/minified/progressjs.min.css', - 'dev/Styles/_progressjs.css' - ] - }, - social: { - name: 'social.css', - src: [ - 'vendors/fontastic/styles.css', - 'dev/Styles/_social.css' - ] - } -}; - -cfg.paths.js = { - moment: { - locales: [ - 'node_modules/moment/locale/*.js' - ] - }, - libs: { - name: 'libs.js', - src: [ - 'node_modules/jquery/dist/jquery.min.js', - 'node_modules/jquery-migrate/dist/jquery-migrate.min.js', - 'node_modules/jquery-mousewheel/jquery.mousewheel.js', - 'node_modules/jquery-scrollstop/jquery.scrollstop.js', - 'node_modules/jquery-backstretch/jquery.backstretch.min.js', - 'vendors/jquery-ui/js/jquery-ui-1.10.3.custom.min.js', // custom - 'vendors/jquery-nanoscroller/jquery.nanoscroller.js', // custom (modified) - 'vendors/jquery-wakeup/jquery.wakeup.js', // no-npm - 'vendors/jquery-letterfx/jquery-letterfx.min.js', // no-npm - 'vendors/inputosaurus/inputosaurus.js', // custom (modified) - 'vendors/routes/signals.min.js', // fixed - 'vendors/routes/hasher.min.js', // fixed - 'vendors/routes/crossroads.min.js', // fixed - 'vendors/jua/jua.min.js', // custom - 'vendors/keymaster/keymaster.js', // custom (modified) - 'vendors/qr.js/qr.min.js', // fixed (license) - 'vendors/bootstrap/js/bootstrap.min.js', // fixed - 'node_modules/underscore/underscore-min.js', - 'node_modules/moment/min/moment.min.js', - 'node_modules/knockout/build/output/knockout-latest.js', - 'node_modules/knockout-transformations/dist/knockout-transformations.min.js', - 'node_modules/knockout-sortable/build/knockout-sortable.min.js ', - 'node_modules/matchmedia-polyfill/matchMedia.js', - 'node_modules/matchmedia-polyfill/matchMedia.addListener.js', - 'node_modules/simplestatemanager/dist/ssm.min.js', - 'node_modules/autolinker/dist/Autolinker.min.js', - 'node_modules/opentip/lib/opentip.js', - 'node_modules/opentip/lib/adapter-jquery.js', - 'vendors/lightgallery/dist/js/lightgallery.min.js', // license - 'vendors/lightgallery/dist/js/lg-fullscreen.min.js', - 'vendors/lightgallery/dist/js/lg-thumbnail.min.js', - 'vendors/lightgallery/dist/js/lg-zoom.min.js', - 'vendors/lightgallery/dist/js/lg-autoplay.min.js', - 'node_modules/ifvisible.js/src/ifvisible.min.js' - ] - }, - app: { - name: 'app.js' - }, - admin: { - name: 'admin.js' - } -}; - - -// assets - -gulp.task('assets:clean', function() { - return cleanDir(cfg.paths.static); -}); - -gulp.task('assets', function() { - return gulp.src(cfg.paths.assets.src) - .pipe(gulp.dest(cfg.paths.static)); -}); - -// CSS - -gulp.task('css:clean', function() { - return cleanDir(cfg.paths.staticCSS + '/*.css'); -}); - -gulp.task('css:main', ['assets'], function() { - var autoprefixer = require('gulp-autoprefixer'), - less = require('gulp-less'), - lessFilter = filter('**/*.less', {restore: true}), - src = cfg.paths.css.main.src.concat([cfg.paths.less.main.src]); - - return gulp.src(src) - .pipe(expect.real({errorOnFailure: true}, src)) - .pipe(lessFilter) - .pipe(gulpif(cfg.watch, plumber())) - .pipe(less({ - 'paths': cfg.paths.less.main.options.paths - })) - .pipe(lessFilter.restore) - .pipe(concat(cfg.paths.css.main.name)) - .pipe(autoprefixer()) - .pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/')) - .pipe(eol('\n', true)) - .pipe(gulp.dest(cfg.paths.staticCSS)) - .pipe(livereload()); -}); - -gulp.task('css:social', function() { - var autoprefixer = require('gulp-autoprefixer'), - src = cfg.paths.css.social.src; - return gulp.src(src) - .pipe(expect.real({errorOnFailure: true}, src)) - .pipe(concat(cfg.paths.css.social.name)) - .pipe(autoprefixer()) - .pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/')) - .pipe(eol('\n', true)) - .pipe(gulp.dest(cfg.paths.staticCSS)); -}); - -gulp.task('css:main:min', ['css:main'], function() { - var cleanCss = require('gulp-clean-css'); - return gulp.src(cfg.paths.staticCSS + cfg.paths.css.main.name) - .pipe(cleanCss()) - .pipe(rename({suffix: '.min'})) - .pipe(eol('\n', true)) - .pipe(gulp.dest(cfg.paths.staticCSS)); -}); - -gulp.task('css:social:min', ['css:social'], function() { - var cleanCss = require('gulp-clean-css'); - return gulp.src(cfg.paths.staticCSS + cfg.paths.css.social.name) - .pipe(cleanCss()) - .pipe(rename({suffix: '.min'})) - .pipe(eol('\n', true)) - .pipe(gulp.dest(cfg.paths.staticCSS)); -}); - -gulp.task('css:min', ['css:main:min', 'css:social:min']); - -// JS -gulp.task('moment:locales-clear', function() { - return cleanDir('rainloop/v/' + cfg.devVersion + '/app/localization/moment/*.js'); -}); - -gulp.task('moment:locales', ['moment:locales-clear'], function() { - return gulp.src(cfg.paths.js.moment.locales) - .pipe(gulp.dest(cfg.paths.momentLocales)); -}); - -gulp.task('js:libs', function() { - var src = cfg.paths.js.libs.src; - return gulp.src(src) - .pipe(expect.real({errorOnFailure: true}, src)) - .pipe(concat(cfg.paths.js.libs.name, {separator: '\n\n'})) - .pipe(eol('\n', true)) - .pipe(replace(/sourceMappingURL=[a-z0-9\.\-_]{1,20}\.map/ig, '')) - .pipe(gulp.dest(cfg.paths.staticJS)); -}); - -gulp.task('js:clean', function() { - return cleanDir(cfg.paths.staticJS + '/**/*.js'); -}); - -gulp.task('js:webpack', function(callback) { - webpack(webpackCfgBuilder(cfg.paths.staticJS, !cfg.community, 'production'), webpackCallback(callback)); -}); - -gulp.task('js:app', ['js:webpack'], function() { - return gulp.src(cfg.paths.staticJS + cfg.paths.js.app.name) - .pipe(header(getHead() + '\n')) - .pipe(eol('\n', true)) - .pipe(gulp.dest(cfg.paths.staticJS)) - .on('error', gutil.log); -}); - -gulp.task('js:admin', ['js:webpack'], function() { - return gulp.src(cfg.paths.staticJS + cfg.paths.js.admin.name) - .pipe(header(getHead() + '\n')) - .pipe(eol('\n', true)) - .pipe(gulp.dest(cfg.paths.staticJS)) - .on('error', gutil.log); -}); - -// - min -gulp.task('js:min', ['js:app', 'js:admin'], function() { - return gulp.src(cfg.paths.staticJS + '*.js') - .pipe(replace(/"rainloop\/v\/([^\/]+)\/static\/js\/"/g, '"rainloop/v/$1/static/js/min/"')) - .pipe(size({ - showFiles: true, - showTotal: false - })) - .pipe(rename({suffix: '.min'})) - .pipe(uglify({ - mangle: true, - compress: true, - ie8: false - })) - .pipe(eol('\n', true)) - .pipe(size({ - showFiles: true, - showTotal: false - })) - .pipe(gulp.dest(cfg.paths.staticMinJS)) - .on('error', gutil.log); -}); - -// lint -gulp.task('js:eslint', function() { - return gulp.src(cfg.paths.globjs) - .pipe(cache('eslint')) - .pipe(eslint()) - .pipe(gulpif(cfg.watch, plumber())) - .pipe(eslint.format()) - .pipe(eslint.failAfterError()); -}); - -gulp.task('js:validate', ['js:eslint']); - -// other -gulp.task('lightgallery-fonts:clear', function() { - return cleanDir('rainloop/v/' + cfg.devVersion + '/static/css/fonts/lg.*'); -}); - -gulp.task('fontastic-fonts:clear', function() { - return cleanDir('rainloop/v/' + cfg.devVersion + '/static/css/fonts/rainloop.*'); -}); - -gulp.task('lightgallery-fonts:copy', ['lightgallery-fonts:clear'], function() { - return gulp.src('vendors/lightgallery/dist/fonts/lg.*') - .pipe(gulp.dest('rainloop/v/' + cfg.devVersion + '/static/css/fonts')); -}); - -gulp.task('fontastic-fonts:copy', ['fontastic-fonts:clear'], function() { - return gulp.src('vendors/fontastic/fonts/rainloop.*') - .pipe(gulp.dest('rainloop/v/' + cfg.devVersion + '/static/css/fonts')); -}); - -gulp.task('lightgallery', ['lightgallery-fonts:copy']); -gulp.task('fontastic', ['fontastic-fonts:copy']); - -gulp.task('ckeditor:clear', function() { - return cleanDir('rainloop/v/' + cfg.devVersion + '/static/ckeditor'); -}); - -gulp.task('ckeditor:copy', ['ckeditor:clear'], function() { - return gulp.src(['vendors/ckeditor/**/*', '!vendors/ckeditor/samples{,/**}', '!vendors/ckeditor/adapters{,/**}', '!vendors/ckeditor/*.md']) - .pipe(gulp.dest('rainloop/v/' + cfg.devVersion + '/static/ckeditor')); -}); - -gulp.task('ckeditor:copy-plugins', ['ckeditor:copy'], function() { - return gulp.src('vendors/ckeditor-plugins/**/*') - .pipe(gulp.dest('rainloop/v/' + cfg.devVersion + '/static/ckeditor/plugins')); -}); - -gulp.task('ckeditor', ['ckeditor:copy-plugins', 'ckeditor:copy', 'ckeditor:clear'], function () { - return gulp.src('rainloop/v/' + cfg.devVersion + '/static/ckeditor/*.js') - .pipe(stripbom()) - .pipe(header("\uFEFF")) // BOM - .pipe(gulp.dest('rainloop/v/' + cfg.devVersion + '/static/ckeditor')); -}); - -// build (RainLoop) -gulp.task('rainloop:copy', ['default'], function() { - - var - versionFull = pkg.version, - dist = cfg.releasesPath + '/webmail/' + versionFull + '/src/' - ; - - fs.mkdirSync(dist, '0777', true); - fs.mkdirSync(dist + 'data'); - fs.mkdirSync(dist + 'rainloop/v/' + versionFull, '0777', true); - - return gulp.src('rainloop/v/' + cfg.devVersion + '/**/*', {base: 'rainloop/v/' + cfg.devVersion}) - .pipe(chmod(0o644, 0o755)) - .pipe(gulp.dest(dist + 'rainloop/v/' + versionFull)); -}); - -gulp.task('rainloop:setup', ['rainloop:copy'], function() { - - var - versionFull = pkg.version, - dist = cfg.releasesPath + '/webmail/' + versionFull + '/src/' - ; - - fs.writeFileSync(dist + 'data/VERSION', versionFull); - fs.writeFileSync(dist + 'data/EMPTY', versionFull); - - fs.writeFileSync(dist + 'index.php', fs.readFileSync('index.php', 'utf8') - .replace('\'APP_VERSION\', \'0.0.0\'', '\'APP_VERSION\', \'' + versionFull + '\'') - .replace('\'APP_VERSION_TYPE\', \'source\'', '\'APP_VERSION_TYPE\', \'' + (cfg.community ? 'community' : 'standard') + '\'') - ); - - fs.writeFileSync(dist + 'rainloop/v/' + versionFull + '/index.php.root', fs.readFileSync(dist + 'index.php')); - - if (cfg.community) - { - require('rimraf').sync(dist + 'rainloop/v/' + versionFull + '/app/libraries/RainLoop/Providers/Prem.php'); - } - - cfg.destPath = cfg.releasesPath + '/webmail/' + versionFull + '/'; - cfg.cleanPath = dist; - cfg.zipSrcPath = dist; - cfg.zipFile = 'rainloop-' + (cfg.community ? 'community-' : '') + versionFull + '.zip'; - cfg.zipFileShort = 'rainloop-' + (cfg.community ? 'community-' : '') + 'latest.zip'; - - cfg.rainloopBuilded = true; -}); - -gulp.task('rainloop:zip', ['rainloop:copy', 'rainloop:setup'], function() { - return (cfg.destPath && cfg.zipSrcPath && cfg.zipFile) ? - zipDir(cfg.zipSrcPath, cfg.destPath, cfg.zipFile) : false; -}); - -gulp.task('rainloop:clean', ['rainloop:copy', 'rainloop:setup', 'rainloop:zip'], function() { - return (cfg.cleanPath) ? cleanDir(cfg.cleanPath) : false; -}); - -gulp.task('rainloop:shortname', ['rainloop:zip'], function(callback) { - copyFile(cfg.destPath + cfg.zipFile, cfg.destPath + cfg.zipFileShort, callback); -}); - -// build (OwnCloud) -gulp.task('rainloop:owncloud:copy', function() { - - var - versionFull = pkg.ownCloudVersion, - dist = cfg.releasesPath + '/owncloud/' + versionFull + '/src/' - ; - - fs.mkdirSync(dist, '0777', true); - fs.mkdirSync(dist + 'rainloop', '0777', true); - - return gulp.src('build/owncloud/rainloop-app/**/*', {base: 'build/owncloud/rainloop-app/'}) - .pipe(gulp.dest(dist + 'rainloop')); -}); - -gulp.task('rainloop:owncloud:copy-rainloop', ['rainloop:start', 'rainloop:owncloud:copy'], function() { - - var - versionFull = pkg.ownCloudVersion, - dist = cfg.releasesPath + '/owncloud/' + versionFull + '/src/rainloop/' - ; - - if (cfg.rainloopBuilded && cfg.destPath) - { - return gulp.src(cfg.destPath + '/src/**/*', {base: cfg.destPath + '/src/'}) - .pipe(gulp.dest(dist + 'app/')); - } - - return true; -}); - -gulp.task('rainloop:owncloud:copy-rainloop:clean', ['rainloop:owncloud:copy-rainloop'], function() { - return (cfg.cleanPath) ? cleanDir(cfg.cleanPath) : false; -}); - -gulp.task('rainloop:owncloud:setup', ['rainloop:owncloud:copy', 'rainloop:owncloud:copy-rainloop'], function() { - - var - versionFull = pkg.ownCloudVersion, - dist = cfg.releasesPath + '/owncloud/' + versionFull + '/src/' - ; - - fs.writeFileSync(dist + 'rainloop/appinfo/info.xml', - fs.readFileSync(dist + 'rainloop/appinfo/info.xml', 'utf8') - .replace('0.0', '' + versionFull + '') - .replace('', '' + (cfg.community ? 'AGPLv3' : 'RainLoop Software License') + '') - ); - - fs.writeFileSync(dist + 'rainloop/appinfo/version', versionFull); - fs.writeFileSync(dist + 'rainloop/VERSION', versionFull); - - cfg.destPath = cfg.releasesPath + '/owncloud/' + versionFull + '/'; - cfg.cleanPath = dist; - cfg.zipSrcPath = dist; - cfg.zipFile = 'rainloop-owncloud-app-' + (cfg.community ? '' : 'standard-') + versionFull + '.zip'; - cfg.zipFileShort = 'rainloop' + (cfg.community ? '' : '-standard') + '.zip'; -}); - -gulp.task('rainloop:owncloud:zip', ['rainloop:owncloud:copy', 'rainloop:owncloud:setup'], function() { - return (cfg.destPath && cfg.zipSrcPath && cfg.zipFile) ? - zipDir(cfg.zipSrcPath, cfg.destPath, cfg.zipFile) : false; -}); - -gulp.task('rainloop:owncloud:clean', ['rainloop:owncloud:copy', 'rainloop:owncloud:setup', 'rainloop:owncloud:zip'], function() { - return (cfg.cleanPath) ? cleanDir(cfg.cleanPath) : false; -}); - -gulp.task('rainloop:owncloud:shortname', ['rainloop:owncloud:zip'], function(callback) { - copyFile(cfg.destPath + cfg.zipFile, cfg.destPath + cfg.zipFileShort, callback); -}); - -gulp.task('plugins:build', [], function() { - - var name = argv.name || ''; - if (true === name || !name) { - throw new Error('Empty name parameter'); - } - - var - source = 'plugins/' + name, - vesrion = fs.readFileSync(source + '/VERSION', 'utf8') - ; - - cfg.destPath = 'build/dist/plugins/'; - cfg.zipFile = name + '-' + vesrion + '.zip'; - - fs.mkdirSync(cfg.destPath, '0777', true); - - return gulp.src(source + '/**/*', {base: source}) - .pipe(require('gulp-zip')(cfg.zipFile)) - .pipe(gulp.dest(cfg.destPath)); -}); - -// main -gulp.task('moment', ['moment:locales']); -gulp.task('js', ['js:libs', 'js:min', 'js:validate']); -gulp.task('css', ['css:min']); - -gulp.task('vendors', ['moment', 'ckeditor', 'fontastic', 'lightgallery']); - -gulp.task('clean', ['js:clean', 'css:clean', 'assets:clean']); - -gulp.task('rainloop:start', ['rainloop:copy', 'rainloop:setup']); - -gulp.task('rainloop', ['rainloop:start', 'rainloop:zip', 'rainloop:clean', 'rainloop:shortname']); - -gulp.task('owncloud', ['rainloop:owncloud:copy', - 'rainloop:owncloud:copy-rainloop', 'rainloop:owncloud:copy-rainloop:clean', - 'rainloop:owncloud:setup', 'rainloop:owncloud:zip', 'rainloop:owncloud:clean', 'rainloop:owncloud:shortname']); - -// default -gulp.task('default', function(callback) { - runSequence('clean', ['js', 'css', 'vendors'], callback); -}); - -// watch -gulp.task('watch', ['css:main', 'js:validate'], function() { - cfg.watch = true; - livereload.listen(); - gulp.watch(cfg.paths.less.main.watch, {interval: cfg.watchInterval}, ['css:main']); - gulp.watch(cfg.paths.globjs, {interval: cfg.watchInterval}, ['js:validate']); -}); - -// aliases -gulp.task('lint', ['js:eslint']); -gulp.task('build', ['rainloop']); - -gulp.task('all', function(callback) { - runSequence('rainloop', 'owncloud', callback); -}); - -gulp.task('d', ['default']); -gulp.task('w', ['watch']); -gulp.task('l', ['js:libs']); -gulp.task('v', ['js:validate']); - -gulp.task('b', ['build']); -gulp.task('o', ['owncloud']); - -gulp.task('p', ['plugins:build']); +exports.rainloop = gulp.series(build, rainloop); +exports.owncloud = gulp.series(build, owncloud); +exports.all = gulp.series(exports.rainloop, exports.owncloud); diff --git a/package.json b/package.json index ae913c9a3..3d8bc4ce0 100644 --- a/package.json +++ b/package.json @@ -64,16 +64,16 @@ "element-dataset": "2.2.6", "emailjs-addressparser": "2.0.2", "eslint": "6.0.1", - "gulp": "3.9.1", + "gulp": "4.0.2", "gulp-autoprefixer": "6.1.0", "gulp-cached": "1.1.1", - "gulp-chmod": "2.0.0", - "gulp-clean-css": "3.10.0", + "gulp-chmod": "3.0.0", + "gulp-clean-css": "4.2.0", "gulp-concat-util": "0.5.5", "gulp-eol": "0.2.0", - "gulp-eslint": "5.0.0", + "gulp-eslint": "6.0.0", "gulp-expect-file": "1.0.1", - "gulp-filter": "5.1.0", + "gulp-filter": "6.0.0", "gulp-header": "2.0.7", "gulp-if": "2.0.2", "gulp-less": "4.0.1", @@ -87,7 +87,7 @@ "gulp-through": "0.4.0", "gulp-uglify": "3.0.2", "gulp-util": "3.0.8", - "gulp-zip": "4.2.0", + "gulp-zip": "5.0.0", "ifvisible.js": "1.0.6", "intersection-observer": "0.7.0", "jquery": "3.4.1", @@ -105,7 +105,6 @@ "matchmedia-polyfill": "0.3.2", "moment": "2.24.0", "node-fs": "0.1.7", - "node-notifier": "5.4.0", "normalize.css": "8.0.1", "openpgp": "2.6.2", "opentip": "2.4.3", @@ -113,7 +112,6 @@ "raf": "3.4.1", "raw-loader": "3.0.0", "rimraf": "2.6.3", - "run-sequence": "2.2.1", "simplestatemanager": "4.1.1", "style-loader": "0.23.1", "underscore": "1.9.1", diff --git a/tasks/assets.js b/tasks/assets.js new file mode 100644 index 000000000..0b5ed1022 --- /dev/null +++ b/tasks/assets.js @@ -0,0 +1,9 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ +const gulp = require('gulp'); +const {config} = require('./config'); + +const assetsCopy = () => + gulp.src(config.paths.assets.src) + .pipe(gulp.dest(config.paths.static)); + +exports.assets = gulp.series(assetsCopy); diff --git a/tasks/common.js b/tasks/common.js new file mode 100644 index 000000000..70484f720 --- /dev/null +++ b/tasks/common.js @@ -0,0 +1,25 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ +const gulp = require('gulp'); +const rimraf = require('gulp-rimraf'); +const fs = require('node-fs'); + +const {config} = require('./config'); + +exports.del = (dir) => + gulp.src(dir, {read: false, allowEmpty: true}) + .pipe(rimraf()); + +exports.copy = (sFile, sNewFile, done) => { + fs.writeFileSync(sNewFile, fs.readFileSync(sFile)); + done(); +}; + +exports.zip = (srcDir, destDir, fileName) => + gulp.src(srcDir + '**/*') + .pipe(require('gulp-zip')(fileName)) + .pipe(gulp.dest(destDir)); + +exports.getHead = () => (!config.community ? config.head.rainloop : config.head.agpl); + +exports.cleanStatic = () => exports.del(config.paths.static); + diff --git a/tasks/config.js b/tasks/config.js new file mode 100644 index 000000000..c3adec9c8 --- /dev/null +++ b/tasks/config.js @@ -0,0 +1,134 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ +const path = require('path'); +const {argv} = require('yargs'); + +const config = { + head: { + rainloop: '/* RainLoop Webmail (c) RainLoop Team | Licensed under RainLoop Software License */', + agpl: '/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL v3 */' + }, + devVersion: '0.0.0', + releasesPath: 'build/dist/releases', + community: true, + watch: false, + watchInterval: 1000, + googleCompile: false, + + rainloopBuilded: false, + destPath: '', + cleanPath: '', + zipSrcPath: '', + zipFile: '', + zipFileShort: '', + + paths: {} +}; + +config.community = !argv.pro; + +config.paths.globjs = 'dev/**/*.js'; +config.paths.static = 'rainloop/v/' + config.devVersion + '/static/'; +config.paths.staticJS = 'rainloop/v/' + config.devVersion + '/static/js/'; +config.paths.staticMinJS = 'rainloop/v/' + config.devVersion + '/static/js/min/'; +config.paths.staticCSS = 'rainloop/v/' + config.devVersion + '/static/css/'; +config.paths.momentLocales = 'rainloop/v/' + config.devVersion + '/app/localization/moment/'; + +config.paths.assets = { + src: 'assets/**/*.*' +}; + +config.paths.less = { + main: { + src: 'dev/Styles/@Main.less', + watch: ['dev/Styles/*.less'], + options: { + paths: [ + path.join(__dirname, 'dev', 'Styles'), + path.join(__dirname, 'vendors', 'bootstrap', 'less') + ] + } + } +}; + +config.paths.css = { + main: { + name: 'app.css', + src: [ + 'node_modules/normalize.css/normalize.css', + 'vendors/jquery-ui/css/smoothness/jquery-ui-1.10.3.custom.css', + 'vendors/fontastic/styles.css', + 'vendors/jquery-nanoscroller/nanoscroller.css', + 'vendors/jquery-letterfx/jquery-letterfx.min.css', + 'vendors/inputosaurus/inputosaurus.css', + 'vendors/flags/flags-fixed.css', + 'node_modules/opentip/css/opentip.css', + 'node_modules/pikaday/css/pikaday.css', + 'vendors/lightgallery/dist/css/lightgallery.min.css', + 'vendors/lightgallery/dist/css/lg-transitions.min.css', + 'vendors/Progress.js/minified/progressjs.min.css', + 'dev/Styles/_progressjs.css' + ] + }, + social: { + name: 'social.css', + src: [ + 'vendors/fontastic/styles.css', + 'dev/Styles/_social.css' + ] + } +}; + +config.paths.js = { + moment: { + locales: [ + 'node_modules/moment/locale/*.js' + ] + }, + libs: { + name: 'libs.js', + src: [ + 'node_modules/jquery/dist/jquery.min.js', + 'node_modules/jquery-migrate/dist/jquery-migrate.min.js', + 'node_modules/jquery-mousewheel/jquery.mousewheel.js', + 'node_modules/jquery-scrollstop/jquery.scrollstop.js', + 'node_modules/jquery-backstretch/jquery.backstretch.min.js', + 'vendors/jquery-ui/js/jquery-ui-1.10.3.custom.min.js', // custom + 'vendors/jquery-nanoscroller/jquery.nanoscroller.js', // custom (modified) + 'vendors/jquery-wakeup/jquery.wakeup.js', // no-npm + 'vendors/jquery-letterfx/jquery-letterfx.min.js', // no-npm + 'vendors/inputosaurus/inputosaurus.js', // custom (modified) + 'vendors/routes/signals.min.js', // fixed + 'vendors/routes/hasher.min.js', // fixed + 'vendors/routes/crossroads.min.js', // fixed + 'vendors/jua/jua.min.js', // custom + 'vendors/keymaster/keymaster.js', // custom (modified) + 'vendors/qr.js/qr.min.js', // fixed (license) + 'vendors/bootstrap/js/bootstrap.min.js', // fixed + 'node_modules/underscore/underscore-min.js', + 'node_modules/moment/min/moment.min.js', + 'node_modules/knockout/build/output/knockout-latest.js', + 'node_modules/knockout-transformations/dist/knockout-transformations.min.js', + 'node_modules/knockout-sortable/build/knockout-sortable.min.js ', + 'node_modules/matchmedia-polyfill/matchMedia.js', + 'node_modules/matchmedia-polyfill/matchMedia.addListener.js', + 'node_modules/simplestatemanager/dist/ssm.min.js', + 'node_modules/autolinker/dist/Autolinker.min.js', + 'node_modules/opentip/lib/opentip.js', + 'node_modules/opentip/lib/adapter-jquery.js', + 'vendors/lightgallery/dist/js/lightgallery.min.js', // license + 'vendors/lightgallery/dist/js/lg-fullscreen.min.js', + 'vendors/lightgallery/dist/js/lg-thumbnail.min.js', + 'vendors/lightgallery/dist/js/lg-zoom.min.js', + 'vendors/lightgallery/dist/js/lg-autoplay.min.js', + 'node_modules/ifvisible.js/src/ifvisible.min.js' + ] + }, + app: { + name: 'app.js' + }, + admin: { + name: 'admin.js' + } +}; + +exports.config = config; diff --git a/tasks/css.js b/tasks/css.js new file mode 100644 index 000000000..d1f3615e9 --- /dev/null +++ b/tasks/css.js @@ -0,0 +1,83 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ +const gulp = require('gulp'); + +const + concat = require('gulp-concat-util'), + rename = require('gulp-rename'), + replace = require('gulp-replace'), + plumber = require('gulp-plumber'), + gulpif = require('gulp-if'), + eol = require('gulp-eol'), + livereload = require('gulp-livereload'), + filter = require('gulp-filter'), + expect = require('gulp-expect-file'); + +const {config} = require('./config'); +const {del} = require('./common'); + +const cssClean = () => del(config.paths.staticCSS + '/*.css'); + +const cssMainBuild = () => { + const autoprefixer = require('gulp-autoprefixer'), + less = require('gulp-less'), + lessFilter = filter('**/*.less', {restore: true}), + src = config.paths.css.main.src.concat([config.paths.less.main.src]); + + return gulp.src(src) + .pipe(expect.real({errorOnFailure: true}, src)) + .pipe(lessFilter) + .pipe(gulpif(config.watch, plumber())) + .pipe(less({ + 'paths': config.paths.less.main.options.paths + })) + .pipe(lessFilter.restore) + .pipe(concat(config.paths.css.main.name)) + .pipe(autoprefixer()) + .pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/')) + .pipe(eol('\n', true)) + .pipe(gulp.dest(config.paths.staticCSS)) + .pipe(livereload()); +}; + +const cssSocialBuild = () => { + const autoprefixer = require('gulp-autoprefixer'), + src = config.paths.css.social.src; + return gulp.src(src) + .pipe(expect.real({errorOnFailure: true}, src)) + .pipe(concat(config.paths.css.social.name)) + .pipe(autoprefixer()) + .pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/')) + .pipe(eol('\n', true)) + .pipe(gulp.dest(config.paths.staticCSS)); +}; + +const cssMainMin = () => { + const cleanCss = require('gulp-clean-css'); + return gulp.src(config.paths.staticCSS + config.paths.css.main.name) + .pipe(cleanCss()) + .pipe(rename({suffix: '.min'})) + .pipe(eol('\n', true)) + .pipe(gulp.dest(config.paths.staticCSS)); +}; + +const cssSocialMin = () => { + const cleanCss = require('gulp-clean-css'); + return gulp.src(config.paths.staticCSS + config.paths.css.social.name) + .pipe(cleanCss()) + .pipe(rename({suffix: '.min'})) + .pipe(eol('\n', true)) + .pipe(gulp.dest(config.paths.staticCSS)); +}; + +const cssBuild = gulp.parallel(cssMainBuild, cssSocialBuild); +const cssMin = gulp.parallel(cssMainMin, cssSocialMin); + +const cssLint = (done) => done(); + +const cssState1 = gulp.series(cssLint); +const cssState2 = gulp.series(cssClean, cssBuild, cssMin); + +exports.cssLint = cssLint; +exports.cssBuild = cssBuild; + +exports.css = gulp.parallel(cssState1, cssState2); diff --git a/tasks/js.js b/tasks/js.js new file mode 100644 index 000000000..2cf24ebb7 --- /dev/null +++ b/tasks/js.js @@ -0,0 +1,86 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ +const gulp = require('gulp'); + +const + concat = require('gulp-concat-util'), + header = require('gulp-header'), + rename = require('gulp-rename'), + replace = require('gulp-replace'), + uglify = require('gulp-uglify'), + plumber = require('gulp-plumber'), + gulpif = require('gulp-if'), + eol = require('gulp-eol'), + eslint = require('gulp-eslint'), + cache = require('gulp-cached'), + expect = require('gulp-expect-file'), + size = require('gulp-size'), + gutil = require('gulp-util'); + +const {config} = require('./config'); +const {del, getHead} = require('./common'); + +const {webpack} = require('./webpack'); + +const jsClean = () => del(config.paths.staticJS + '/**/*.js'); + +// libs +const jsLibs = () => { + const src = config.paths.js.libs.src; + return gulp.src(src) + .pipe(expect.real({errorOnFailure: true}, src)) + .pipe(concat(config.paths.js.libs.name, {separator: '\n\n'})) + .pipe(eol('\n', true)) + .pipe(replace(/sourceMappingURL=[a-z0-9\.\-_]{1,20}\.map/ig, '')) + .pipe(gulp.dest(config.paths.staticJS)); +}; + +// app +const jsApp = () => + gulp.src(config.paths.staticJS + config.paths.js.app.name) + .pipe(header(getHead() + '\n')) + .pipe(eol('\n', true)) + .pipe(gulp.dest(config.paths.staticJS)) + .on('error', gutil.log); + +const jsAdmin = () => + gulp.src(config.paths.staticJS + config.paths.js.admin.name) + .pipe(header(getHead() + '\n')) + .pipe(eol('\n', true)) + .pipe(gulp.dest(config.paths.staticJS)) + .on('error', gutil.log); + +const jsMin = () => + gulp.src(config.paths.staticJS + '*.js') + .pipe(replace(/"rainloop\/v\/([^\/]+)\/static\/js\/"/g, '"rainloop/v/$1/static/js/min/"')) + .pipe(size({ + showFiles: true, + showTotal: false + })) + .pipe(rename({suffix: '.min'})) + .pipe(uglify({ + mangle: true, + compress: true, + ie8: false + })) + .pipe(eol('\n', true)) + .pipe(size({ + showFiles: true, + showTotal: false + })) + .pipe(gulp.dest(config.paths.staticMinJS)) + .on('error', gutil.log); + +const jsLint = () => + gulp.src(config.paths.globjs) + .pipe(cache('eslint')) + .pipe(eslint()) + .pipe(gulpif(config.watch, plumber())) + .pipe(eslint.format()) + .pipe(eslint.failAfterError()); + +const jsState1 = gulp.series(jsLint); +const jsState3 = gulp.parallel(jsLibs, jsApp, jsAdmin); +const jsState2 = gulp.series(jsClean, webpack, jsState3, jsMin); + +exports.jsLint = jsLint; +exports.js = gulp.parallel(jsState1, jsState2); diff --git a/tasks/owncloud.js b/tasks/owncloud.js new file mode 100644 index 000000000..204e4057a --- /dev/null +++ b/tasks/owncloud.js @@ -0,0 +1,100 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ +/* eslint-disable consistent-return */ + +const gulp = require('gulp'); +const fs = require('node-fs'); + +const pkg = require('../package.json'); +const {config} = require('./config'); +const {copy, zip, del} = require('./common'); +const {rainloopBuild} = require('./rainloop'); + +const owncloudCopy = () => { + const + versionFull = pkg.ownCloudVersion, + dist = config.releasesPath + '/owncloud/' + versionFull + '/src/' + ; + + fs.mkdirSync(dist, '0777', true); + fs.mkdirSync(dist + 'rainloop', '0777', true); + + return gulp.src('build/owncloud/rainloop-app/**/*', {base: 'build/owncloud/rainloop-app/'}) + .pipe(gulp.dest(dist + 'rainloop')); +}; + +const owncloudCopyRainLoop = () => { + const + versionFull = pkg.ownCloudVersion, + dist = config.releasesPath + '/owncloud/' + versionFull + '/src/rainloop/' + ; + + if (config.rainloopBuilded && config.destPath) + { + return gulp.src(config.destPath + '/src/**/*', {base: config.destPath + '/src/'}) + .pipe(gulp.dest(dist + 'app/')); + } + + return true; +}; + +const owncloudCopyRainLoopClean = (done) => { + if (config.cleanPath) { + return del(config.cleanPath); + } + done(); +}; + +const owncloudSetup = (done) => { + const + versionFull = pkg.ownCloudVersion, + dist = config.releasesPath + '/owncloud/' + versionFull + '/src/' + ; + + fs.writeFileSync(dist + 'rainloop/appinfo/info.xml', + fs.readFileSync(dist + 'rainloop/appinfo/info.xml', 'utf8') + .replace('0.0', '' + versionFull + '') + .replace('', '' + (config.community ? 'AGPLv3' : 'RainLoop Software License') + '') + ); + + fs.writeFileSync(dist + 'rainloop/appinfo/version', versionFull); + fs.writeFileSync(dist + 'rainloop/VERSION', versionFull); + + config.destPath = config.releasesPath + '/owncloud/' + versionFull + '/'; + config.cleanPath = dist; + config.zipSrcPath = dist; + config.zipFile = 'rainloop-owncloud-app-' + (config.community ? '' : 'standard-') + versionFull + '.zip'; + config.zipFileShort = 'rainloop' + (config.community ? '' : '-standard') + '.zip'; + + done(); +}; + +const owncloudZip = (done) => { + if (config.destPath && config.zipSrcPath && config.zipFile) { + return zip(config.zipSrcPath, config.destPath, config.zipFile); + } + + done(); +}; + +const owncloudClean = (done) => { + if (config.cleanPath) { + return del(config.cleanPath); + } + + done(); +}; + +const owncloudShortname = (done) => { + copy(config.destPath + config.zipFile, config.destPath + config.zipFileShort, done); +}; + +exports.owncloud = gulp.series( + owncloudCopy, + rainloopBuild, + owncloudCopyRainLoop, + owncloudCopyRainLoopClean, + owncloudSetup, + owncloudZip, + owncloudClean, + owncloudShortname +); diff --git a/tasks/rainloop.js b/tasks/rainloop.js new file mode 100644 index 000000000..482f01ea7 --- /dev/null +++ b/tasks/rainloop.js @@ -0,0 +1,87 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ +/* eslint-disable consistent-return */ + +const gulp = require('gulp'); +const fs = require('node-fs'); +const chmod = require('gulp-chmod'); + +const pkg = require('../package.json'); +const {config} = require('./config'); +const {copy, zip, del} = require('./common'); + +const rainloopCopy = () => { + const + versionFull = pkg.version, + dist = config.releasesPath + '/webmail/' + versionFull + '/src/' + ; + + fs.mkdirSync(dist, '0777', true); + fs.mkdirSync(dist + 'data'); + fs.mkdirSync(dist + 'rainloop/v/' + versionFull, '0777', true); + + return gulp.src('rainloop/v/' + config.devVersion + '/**/*', {base: 'rainloop/v/' + config.devVersion}) + .pipe(chmod(0o644, 0o755)) + .pipe(gulp.dest(dist + 'rainloop/v/' + versionFull)); +}; + +const rainloopSetup = (done) => { + const + versionFull = pkg.version, + dist = config.releasesPath + '/webmail/' + versionFull + '/src/' + ; + + fs.writeFileSync(dist + 'data/VERSION', versionFull); + fs.writeFileSync(dist + 'data/EMPTY', versionFull); + + fs.writeFileSync(dist + 'index.php', fs.readFileSync('index.php', 'utf8') + .replace('\'APP_VERSION\', \'0.0.0\'', '\'APP_VERSION\', \'' + versionFull + '\'') + .replace('\'APP_VERSION_TYPE\', \'source\'', '\'APP_VERSION_TYPE\', \'' + (config.community ? 'community' : 'standard') + '\'') + ); + + fs.writeFileSync(dist + 'rainloop/v/' + versionFull + '/index.php.root', fs.readFileSync(dist + 'index.php')); + + if (config.community) + { + require('rimraf').sync(dist + 'rainloop/v/' + versionFull + '/app/libraries/RainLoop/Providers/Prem.php'); + } + + config.destPath = config.releasesPath + '/webmail/' + versionFull + '/'; + config.cleanPath = dist; + config.zipSrcPath = dist; + config.zipFile = 'rainloop-' + (config.community ? 'community-' : '') + versionFull + '.zip'; + config.zipFileShort = 'rainloop-' + (config.community ? 'community-' : '') + 'latest.zip'; + + config.rainloopBuilded = true; + + done(); +}; + +const rainloopZip = (done) => { + if (config.destPath && config.zipSrcPath && config.zipFile) { + return zip(config.zipSrcPath, config.destPath, config.zipFile); + } + + done(); +}; + +const rainloopClean = (done) => { + if (config.cleanPath) { + return del(config.cleanPath); + } + + done(); +}; + +const rainloopShortName = (done) => copy(config.destPath + config.zipFile, config.destPath + config.zipFileShort, done); + +exports.rainloopBuild = gulp.series( + rainloopCopy, + rainloopSetup, +); + +exports.rainloop = gulp.series( + exports.rainloopBuild, + rainloopZip, + rainloopClean, + rainloopShortName +); diff --git a/tasks/vendors.js b/tasks/vendors.js new file mode 100644 index 000000000..587aa33c7 --- /dev/null +++ b/tasks/vendors.js @@ -0,0 +1,56 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ +const gulp = require('gulp'), + header = require('gulp-header'), + stripbom = require('gulp-stripbom'); + +const {config} = require('./config'); +const {del} = require('./common'); + +// moment +const momentLocalesClear = () => del('rainloop/v/' + config.devVersion + '/app/localization/moment/*.js'); + +const momentLocales = () => + gulp.src(config.paths.js.moment.locales) + .pipe(gulp.dest(config.paths.momentLocales)); + +const moment = gulp.series(momentLocalesClear, momentLocales); + +// lightgallery +const lightgalleryFontsClear = () => del('rainloop/v/' + config.devVersion + '/static/css/fonts/lg.*'); + +const lightgalleryFontsCopy = () => + gulp.src('vendors/lightgallery/dist/fonts/lg.*') + .pipe(gulp.dest('rainloop/v/' + config.devVersion + '/static/css/fonts')); + +const lightgallery = gulp.series(lightgalleryFontsClear, lightgalleryFontsCopy); + +// fontastic +const fontasticFontsClear = () => del('rainloop/v/' + config.devVersion + '/static/css/fonts/rainloop.*'); + +const fontasticFontsCopy = () => + gulp.src('vendors/fontastic/fonts/rainloop.*') + .pipe(gulp.dest('rainloop/v/' + config.devVersion + '/static/css/fonts')); + +const fontastic = gulp.series(fontasticFontsClear, fontasticFontsCopy); + +// ckeditor +const ckeditorClear = () => del('rainloop/v/' + config.devVersion + '/static/ckeditor'); + +const ckeditorCopy = () => + gulp.src(['vendors/ckeditor/**/*', '!vendors/ckeditor/samples{,/**}', '!vendors/ckeditor/adapters{,/**}', '!vendors/ckeditor/*.md']) + .pipe(gulp.dest('rainloop/v/' + config.devVersion + '/static/ckeditor')); + +const ckeditorCopyPlugins = () => + gulp.src('vendors/ckeditor-plugins/**/*') + .pipe(gulp.dest('rainloop/v/' + config.devVersion + '/static/ckeditor/plugins')); + +const ckeditorSetup = () => + gulp.src('rainloop/v/' + config.devVersion + '/static/ckeditor/*.js') + .pipe(stripbom()) + // eslint-disable-next-line quotes + .pipe(header("\uFEFF")) // BOM + .pipe(gulp.dest('rainloop/v/' + config.devVersion + '/static/ckeditor')); + +const ckeditor = gulp.series(ckeditorClear, ckeditorCopy, ckeditorCopyPlugins, ckeditorSetup); + +exports.vendors = gulp.parallel(moment, ckeditor, fontastic, lightgallery); diff --git a/tasks/webpack.js b/tasks/webpack.js new file mode 100644 index 000000000..878627c66 --- /dev/null +++ b/tasks/webpack.js @@ -0,0 +1,41 @@ +/* RainLoop Webmail (c) RainLoop Team | Licensed under AGPL 3 */ +const webpack = require('webpack'); +const gutil = require('gulp-util'); + +const {config} = require('./config'); + +const webpackCfgBuilder = require('../webpack.config.builder.js'); + +const webpackError = (err) => { + if (err) { + gutil.log('[webpack]', '---'); + gutil.log('[webpack]', err.error ? err.error.toString() : ''); + gutil.log('[webpack]', err.message || ''); + gutil.log('[webpack]', '---'); + } +}; + +const webpackCallback = (done) => (err, stats) => { + if (err) { + if (config.watch) { + webpackError(err); + } else { + throw new gutil.PluginError('webpack', err); + } + } else if (stats && stats.compilation && stats.compilation.errors && stats.compilation.errors[0]) { + if (config.watch) { + stats.compilation.errors.forEach(webpackError); + } else { + throw new gutil.PluginError('webpack', stats.compilation.errors[0]); + } + } + + done(); +}; + +exports.webpack = (done) => { + webpack( + webpackCfgBuilder(config.paths.staticJS, !config.community, 'production'), + webpackCallback(done) + ); +}; diff --git a/yarn.lock b/yarn.lock index ab9384494..6f72cda0c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -720,6 +720,11 @@ lodash "^4.17.11" to-fast-properties "^2.0.0" +"@types/minimatch@^3.0.3": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + "@webassemblyjs/ast@1.8.5": version "1.8.5" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" @@ -887,7 +892,7 @@ acorn-jsx@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.0.1.tgz#32a064fd925429216a09b141102bfdd185fae40e" -acorn@^6.0.2, acorn@^6.0.5: +acorn@^6.0.5: version "6.0.6" resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.0.6.tgz#cd75181670d5b99bdb1b1c993941d3a239ab1f56" @@ -903,7 +908,7 @@ ajv-keywords@^3.1.0: version "3.3.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.3.0.tgz#cb6499da9b83177af8bc1732b2f0a1a1a3aacf8c" -ajv@^6.1.0, ajv@^6.5.3, ajv@^6.5.5, ajv@^6.6.1: +ajv@^6.1.0, ajv@^6.5.5: version "6.7.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.7.0.tgz#e3ce7bb372d6577bb1839f1dfdfcbf5ad2948d96" dependencies: @@ -1002,6 +1007,13 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +append-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/append-buffer/-/append-buffer-1.0.2.tgz#d8220cf466081525efea50614f3de6514dfa58f1" + integrity sha1-2CIM9GYIFSXv6lBhTz3mUU36WPE= + dependencies: + buffer-equal "^1.0.0" + aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -1034,10 +1046,24 @@ arr-diff@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" +arr-filter@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/arr-filter/-/arr-filter-1.1.2.tgz#43fdddd091e8ef11aa4c45d9cdc18e2dff1711ee" + integrity sha1-Q/3d0JHo7xGqTEXZzcGOLf8XEe4= + dependencies: + make-iterator "^1.0.0" + arr-flatten@^1.0.1, arr-flatten@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" +arr-map@^2.0.0, arr-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/arr-map/-/arr-map-2.0.2.tgz#3a77345ffc1cf35e2a91825601f9e58f2e24cac4" + integrity sha1-Onc0X/wc814qkYJWAfnljy4kysQ= + dependencies: + make-iterator "^1.0.0" + arr-union@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" @@ -1050,10 +1076,30 @@ array-differ@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-1.0.0.tgz#eff52e3758249d33be402b8bb8e564bb2b5d4031" -array-each@^1.0.1: +array-differ@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== + +array-each@^1.0.0, array-each@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/array-each/-/array-each-1.0.1.tgz#a794af0c05ab1752846ee753a1f211a05ba0c44f" +array-initial@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/array-initial/-/array-initial-1.1.0.tgz#2fa74b26739371c3947bd7a7adc73be334b3d795" + integrity sha1-L6dLJnOTccOUe9enrcc74zSz15U= + dependencies: + array-slice "^1.0.0" + is-number "^4.0.0" + +array-last@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/array-last/-/array-last-1.3.0.tgz#7aa77073fec565ddab2493f5f88185f404a9d336" + integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== + dependencies: + is-number "^4.0.0" + array-slice@^0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" @@ -1062,12 +1108,26 @@ array-slice@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/array-slice/-/array-slice-1.1.0.tgz#e368ea15f89bc7069f7ffb89aec3a6c7d4ac22d4" +array-sort@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-sort/-/array-sort-1.0.0.tgz#e4c05356453f56f53512a7d1d6123f2c54c0a88a" + integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== + dependencies: + default-compare "^1.0.0" + get-value "^2.0.6" + kind-of "^5.0.2" + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" dependencies: array-uniq "^1.0.1" +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + array-uniq@^1.0.1, array-uniq@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" @@ -1076,9 +1136,10 @@ array-unique@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== asap@~2.0.3: version "2.0.6" @@ -1116,10 +1177,32 @@ astral-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" +async-done@^1.2.0, async-done@^1.2.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/async-done/-/async-done-1.3.2.tgz#5e15aa729962a4b07414f528a88cdf18e0b290a2" + integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.2" + process-nextick-args "^2.0.0" + stream-exhaust "^1.0.1" + async-each@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-settle@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/async-settle/-/async-settle-1.0.0.tgz#1d0a914bb02575bec8a8f3a74e5080f72b2c0c6b" + integrity sha1-HQqRS7Aldb7IqPOnTlCA9yssDGs= + dependencies: + async-done "^1.2.2" + async@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/async/-/async-2.6.1.tgz#b245a23ca71930044ec53fa46aa00a3e87c6a610" @@ -1191,6 +1274,21 @@ babel-runtime@^6.23.0: core-js "^2.4.0" regenerator-runtime "^0.11.0" +bach@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/bach/-/bach-1.2.0.tgz#4b3ce96bf27134f79a1b414a51c14e34c3bd9880" + integrity sha1-Szzpa/JxNPeaG0FKUcFONMO9mIA= + dependencies: + arr-filter "^1.1.1" + arr-flatten "^1.0.1" + arr-map "^2.0.0" + array-each "^1.0.0" + array-initial "^1.0.0" + array-last "^1.1.1" + async-done "^1.2.2" + async-settle "^1.0.0" + now-and-later "^2.0.0" + balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" @@ -1263,14 +1361,14 @@ bonzo@1.x: version "1.4.0" resolved "https://registry.yarnpkg.com/bonzo/-/bonzo-1.4.0.tgz#d7d2e06f6b6f67eb3b8fc18774f79058f4ab34df" -brace-expansion@^1.0.0, brace-expansion@^1.1.7: +brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" dependencies: balanced-match "^1.0.0" concat-map "0.0.1" -braces@^2.3.0, braces@^2.3.1: +braces@^2.3.0, braces@^2.3.1, braces@^2.3.2: version "2.3.2" resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" dependencies: @@ -1355,6 +1453,11 @@ buffer-crc32@~0.2.3: version "0.2.13" resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" +buffer-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-1.0.0.tgz#59616b498304d556abd466966b22eeda3eca5fbe" + integrity sha1-WWFrSYME1Var1GaWayLu2j7KX74= + buffer-from@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" @@ -1440,6 +1543,11 @@ camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" +camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= + camelcase@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42" @@ -1487,6 +1595,25 @@ chardet@^0.7.0: version "0.7.0" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" +chokidar@^2.0.0: + version "2.1.6" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5" + integrity sha512-V2jUo67OKkc6ySiRpJrjlpJKl9kDuG+Xb8VgsGzb+aEouhgS1D0weyPU4lEzdAcsCAvrih2J2BqyXqHWvVLw5g== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + 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" + optionalDependencies: + fsevents "^1.2.7" + chokidar@^2.0.2: version "2.0.4" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.4.tgz#356ff4e2b0e8e43e322d18a372460bbcf3accd26" @@ -1523,10 +1650,6 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" -circular-json@^0.3.1: - version "0.3.3" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.3.tgz#815c99ea84f6809529d2f45791bdf82711352d66" - class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -1564,6 +1687,15 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" +cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + cliui@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -1585,11 +1717,7 @@ clone-stats@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" -clone@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/clone/-/clone-0.2.0.tgz#c6126a90ad4f72dbf5acdb243cc37724fe93fc1f" - -clone@^1.0.0, clone@^1.0.2: +clone@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -1609,6 +1737,15 @@ code-point-at@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" +collection-map@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-map/-/collection-map-1.0.0.tgz#aea0f06f8d26c780c2b75494385544b2255af18c" + integrity sha1-rqDwb40mx4DCt1SUOFVEsiVa8Yw= + dependencies: + arr-map "^2.0.2" + for-own "^1.0.0" + make-iterator "^1.0.0" + collection-visit@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" @@ -1652,7 +1789,7 @@ concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.5.0: +concat-stream@^1.5.0, concat-stream@^1.6.0: version "1.6.2" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" dependencies: @@ -1706,6 +1843,14 @@ copy-descriptor@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" +copy-props@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/copy-props/-/copy-props-2.0.4.tgz#93bb1cadfafd31da5bb8a9d4b41f471ec3a72dfe" + integrity sha512-7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A== + dependencies: + each-props "^1.3.0" + is-plain-object "^2.0.1" + copy-webpack-plugin@5.0.3: version "5.0.3" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.0.3.tgz#2179e3c8fd69f13afe74da338896f1f01a875b5c" @@ -1831,6 +1976,14 @@ cyclist@~0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" +d@1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + dependencies: + es5-ext "^0.10.50" + type "^1.0.1" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1863,7 +2016,7 @@ debug@^4.0.1, debug@^4.1.0: dependencies: ms "^2.1.1" -decamelize@^1.0.0, decamelize@^1.2.0: +decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" @@ -1885,11 +2038,24 @@ deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" -defaults@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" +default-compare@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/default-compare/-/default-compare-1.0.0.tgz#cb61131844ad84d84788fb68fd01681ca7781a2f" + integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== dependencies: - clone "^1.0.2" + kind-of "^5.0.2" + +default-resolution@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/default-resolution/-/default-resolution-2.0.0.tgz#bcb82baa72ad79b426a76732f1a81ad6df26d684" + integrity sha1-vLgrqnKtebQmp2cy8aga1t8m1oQ= + +define-properties@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" @@ -1918,10 +2084,6 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -deprecated@^0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/deprecated/-/deprecated-0.0.1.tgz#f9c9af5464afa1e7a971458a8bdef2aa94d5bb19" - des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -1951,12 +2113,6 @@ dir-glob@^2.0.0: dependencies: path-type "^3.0.0" -doctrine@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" - dependencies: - esutils "^2.0.2" - doctrine@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" @@ -1996,6 +2152,14 @@ duplexify@^3.4.2, duplexify@^3.5.0, duplexify@^3.6.0: readable-stream "^2.0.0" stream-shift "^1.0.0" +each-props@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/each-props/-/each-props-1.3.2.tgz#ea45a414d16dd5cfa419b1a81720d5ca06892333" + integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== + dependencies: + is-plain-object "^2.0.1" + object.defaults "^1.1.0" + ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -2054,12 +2218,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -end-of-stream@~0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-0.1.5.tgz#8e177206c3c80837d85632e8b9359dfe8b2f6eaf" - dependencies: - once "~1.3.0" - enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" @@ -2074,6 +2232,13 @@ errno@^0.1.1, errno@^0.1.3, errno@~0.1.7: dependencies: prr "~1.0.1" +error-ex@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + error@^7.0.0: version "7.0.2" resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" @@ -2081,6 +2246,42 @@ error@^7.0.0: string-template "~0.2.1" xtend "~4.0.0" +es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50, es5-ext@~0.10.14: + version "0.10.50" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.50.tgz#6d0e23a0abdb27018e5ac4fd09b412bc5517a778" + integrity sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw== + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "^1.0.0" + +es6-iterator@^2.0.1, es6-iterator@^2.0.3, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + +es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.3.tgz#b6da1f16cc2cc0d9be43e6bdbfc5e7dfcdf31d53" + integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== + dependencies: + d "1" + es5-ext "^0.10.46" + es6-iterator "^2.0.3" + es6-symbol "^3.1.1" + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.3, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -2114,7 +2315,7 @@ eslint-visitor-keys@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#3f3180fb2e291017716acb4c9d6d5b5c34a6a81d" -eslint@6.0.1: +eslint@6.0.1, eslint@^6.0.0: version "6.0.1" resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.0.1.tgz#4a32181d72cb999d6f54151df7d337131f81cda7" integrity sha512-DyQRaMmORQ+JsWShYsSg4OPTjY56u1nCjAmICrE8vLWqyLKxhFXOthwMj1SA8xwfrv0CofLNVnqbfyhwCkaO0w== @@ -2156,56 +2357,6 @@ eslint@6.0.1: table "^5.2.3" text-table "^0.2.0" -eslint@^5.0.1: - version "5.12.1" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.12.1.tgz#5ca9931fb9029d04e7be92b03ce3b58edfac7e3b" - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.5.3" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^2.1.0" - eslint-scope "^4.0.0" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.0" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^6.1.0" - js-yaml "^3.12.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.5" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - pluralize "^7.0.0" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.0.2" - text-table "^0.2.0" - -espree@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.0.tgz#fc7f984b62b36a0f543b13fb9cd7b9f4a7f5b65c" - dependencies: - acorn "^6.0.2" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - espree@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/espree/-/espree-6.0.0.tgz#716fc1f5a245ef5b9a7fdb1d7b0d3f02322e75f6" @@ -2381,13 +2532,6 @@ figures@^2.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - file-entry-cache@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" @@ -2420,9 +2564,13 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-index@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/find-index/-/find-index-0.1.1.tgz#675d358b2ca3892d795a1ab47232f8b6e2e0dde4" +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" find-up@^3.0.0: version "3.0.0" @@ -2430,7 +2578,7 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -findup-sync@3.0.0: +findup-sync@3.0.0, findup-sync@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== @@ -2467,15 +2615,6 @@ flagged-respawn@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/flagged-respawn/-/flagged-respawn-1.0.1.tgz#e7de6f1279ddd9ca9aac8a5971d618606b3aab41" -flat-cache@^1.2.1: - version "1.3.4" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.3.4.tgz#2c2ef77525cc2929007dfffa1dd314aa9c9dee6f" - dependencies: - circular-json "^0.3.1" - graceful-fs "^4.1.2" - rimraf "~2.6.2" - write "^0.2.1" - flat-cache@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" @@ -2495,6 +2634,14 @@ flush-write-stream@^1.0.0: inherits "^2.0.1" readable-stream "^2.0.4" +flush-write-stream@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + for-in@^1.0.1, for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" @@ -2544,6 +2691,14 @@ fs-minipass@^1.2.5: dependencies: minipass "^2.2.1" +fs-mkdirp-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz#0b7815fc3201c6a69e14db98ce098c16935259eb" + integrity sha1-C3gV/DIBxqaeFNuYzgmMFpNSWes= + dependencies: + graceful-fs "^4.1.11" + through2 "^2.0.3" + fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -2564,6 +2719,19 @@ fsevents@^1.2.2: nan "^2.9.2" node-pre-gyp "^0.10.0" +fsevents@^1.2.7: + version "1.2.9" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" + integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + dependencies: + nan "^2.12.1" + node-pre-gyp "^0.12.0" + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + functional-red-black-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" @@ -2581,27 +2749,29 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gaze@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-0.5.2.tgz#40b709537d24d1d45767db5a908689dfe69ac44f" - dependencies: - globule "~0.1.0" +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" - get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" dependencies: pump "^3.0.0" +get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -2619,37 +2789,33 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" -glob-stream@^3.1.5: - version "3.1.18" - resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-3.1.18.tgz#9170a5f12b790306fdfe598f313f8f7954fd143b" +glob-stream@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/glob-stream/-/glob-stream-6.1.0.tgz#7045c99413b3eb94888d83ab46d0b404cc7bdde4" + integrity sha1-cEXJlBOz65SIjYOrRtC0BMx73eQ= dependencies: - 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" + extend "^3.0.0" + glob "^7.1.1" + glob-parent "^3.1.0" + is-negated-glob "^1.0.0" + ordered-read-streams "^1.0.0" + pumpify "^1.3.5" + readable-stream "^2.1.5" + remove-trailing-separator "^1.0.1" + to-absolute-glob "^2.0.0" + unique-stream "^2.0.2" -glob-watcher@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-0.0.6.tgz#b95b4a8df74b39c83298b0c05c978b4d9a3b710b" +glob-watcher@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/glob-watcher/-/glob-watcher-5.0.3.tgz#88a8abf1c4d131eb93928994bc4a593c2e5dd626" + integrity sha512-8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg== dependencies: - gaze "^0.5.1" - -glob2base@^0.0.12: - version "0.0.12" - resolved "https://registry.yarnpkg.com/glob2base/-/glob2base-0.0.12.tgz#9d419b3e28f12e83a362164a277055922c9c0d56" - dependencies: - find-index "^0.1.1" - -glob@^4.3.1: - version "4.5.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-4.5.3.tgz#c6cb73d3226c1efef04de3c56d012f03377ee15f" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "^2.0.1" - once "^1.3.0" + anymatch "^2.0.0" + async-done "^1.2.0" + chokidar "^2.0.0" + is-negated-glob "^1.0.0" + just-debounce "^1.0.0" + object.defaults "^1.1.0" glob@^7.0.5, glob@^7.1.2, glob@^7.1.3: version "7.1.3" @@ -2662,7 +2828,7 @@ glob@^7.0.5, glob@^7.1.2, glob@^7.1.3: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.1.4: +glob@^7.1.1, glob@^7.1.4: version "7.1.4" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== @@ -2674,14 +2840,6 @@ glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -glob@~3.1.21: - version "3.1.21" - resolved "https://registry.yarnpkg.com/glob/-/glob-3.1.21.tgz#d29e0a055dea5138f4d07ed40e8982e83c2066cd" - dependencies: - graceful-fs "~1.2.0" - inherits "1" - minimatch "~0.2.11" - global-modules@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -2731,34 +2889,21 @@ globby@^7.1.1: pify "^3.0.0" slash "^1.0.0" -globule@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/globule/-/globule-0.1.0.tgz#d9c8edde1da79d125a151b79533b978676346ae5" - dependencies: - glob "~3.1.21" - lodash "~1.0.1" - minimatch "~0.2.11" - glogg@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/glogg/-/glogg-1.0.2.tgz#2d7dd702beda22eb3bffadf880696da6d846313f" dependencies: sparkles "^1.0.0" -graceful-fs@^3.0.0: - version "3.0.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.11.tgz#7613c778a1afea62f25c630a086d7f3acbbdd818" - dependencies: - natives "^1.1.0" +graceful-fs@^4.0.0, graceful-fs@^4.1.6: + version "4.2.0" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.0.tgz#8d8fdc73977cb04104721cb53666c1ca64cd328b" + integrity sha512-jpSvDPV4Cq/bgtpndIWbI5hmYxhQGHPC4d4cqBPb4DLniCfhJokdXhwhaDuLBGLQdvvRum/UiX6ECVIPvDXqdg== graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: version "4.1.15" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00" -graceful-fs@~1.2.0: - version "1.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-1.2.3.tgz#15a4806a57547cb2d2dbf27f42e89a8c3451b364" - growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -2782,23 +2927,49 @@ gulp-cached@1.1.1: lodash.defaults "^4.2.0" through2 "^2.0.1" -gulp-chmod@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/gulp-chmod/-/gulp-chmod-2.0.0.tgz#00c390b928a0799b251accf631aa09e01cc6299c" +gulp-chmod@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gulp-chmod/-/gulp-chmod-3.0.0.tgz#05d629451486ea1838c4bb681547e610fcfc127b" + integrity sha512-fDKj+yuLsUD3ayaHuvD0OzeUNOPeHmIC4wlwVQf3d3WYaB233zgq4sDBncIH5GRBmhtFc32LWFF04IdnrQFxig== dependencies: deep-assign "^1.0.0" - stat-mode "^0.2.0" - through2 "^2.0.0" + stat-mode "^0.3.0" + through2 "^3.0.1" -gulp-clean-css@3.10.0: - version "3.10.0" - resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-3.10.0.tgz#bccd4605eff104bfa4980014cc4b3c24c571736d" +gulp-clean-css@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/gulp-clean-css/-/gulp-clean-css-4.2.0.tgz#915ec258dc6d3e6a50043f610066d5c2eac4f54e" + integrity sha512-r4zQsSOAK2UYUL/ipkAVCTRg/2CLZ2A+oPVORopBximRksJ6qy3EX1KGrIWT4ZrHxz3Hlobb1yyJtqiut7DNjA== dependencies: clean-css "4.2.1" plugin-error "1.0.1" - through2 "2.0.3" + through2 "3.0.1" vinyl-sourcemaps-apply "0.2.1" +gulp-cli@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/gulp-cli/-/gulp-cli-2.2.0.tgz#5533126eeb7fe415a7e3e84a297d334d5cf70ebc" + integrity sha512-rGs3bVYHdyJpLqR0TUBnlcZ1O5O++Zs4bA0ajm+zr3WFCfiSLjGwoCBqFs18wzN+ZxahT9DkOK5nDf26iDsWjA== + dependencies: + ansi-colors "^1.0.1" + archy "^1.0.0" + array-sort "^1.0.0" + color-support "^1.1.3" + concat-stream "^1.6.0" + copy-props "^2.0.1" + fancy-log "^1.3.2" + gulplog "^1.0.0" + interpret "^1.1.0" + isobject "^3.0.1" + liftoff "^3.1.0" + matchdep "^2.0.0" + mute-stdout "^1.0.0" + pretty-hrtime "^1.0.0" + replace-homedir "^1.0.0" + semver-greatest-satisfied-range "^1.1.0" + v8flags "^3.0.1" + yargs "^7.1.0" + gulp-concat-util@0.5.5: version "0.5.5" resolved "https://registry.yarnpkg.com/gulp-concat-util/-/gulp-concat-util-0.5.5.tgz#c8f0633b4e6e950ff93c475b3c8d3b84be03b7dc" @@ -2817,11 +2988,12 @@ gulp-eol@0.2.0: plugin-error "~1.0" through2 "~0.4" -gulp-eslint@5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/gulp-eslint/-/gulp-eslint-5.0.0.tgz#2a2684095f774b2cf79310262078c56cc7a12b52" +gulp-eslint@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gulp-eslint/-/gulp-eslint-6.0.0.tgz#7d402bb45f8a67652b868277011812057370a832" + integrity sha512-dCVPSh1sA+UVhn7JSQt7KEb4An2sQNbOdB3PA8UCfxsoPlAKjJHxYHGXdXC7eb+V1FAnilSFFqslPrq037l1ig== dependencies: - eslint "^5.0.1" + eslint "^6.0.0" fancy-log "^1.3.2" plugin-error "^1.0.1" @@ -2838,13 +3010,14 @@ gulp-expect-file@1.0.1: vinyl "^2.2.0" xtend "^4.0.1" -gulp-filter@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-5.1.0.tgz#a05e11affb07cf7dcf41a7de1cb7b63ac3783e73" +gulp-filter@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/gulp-filter/-/gulp-filter-6.0.0.tgz#9d69a408f1a9f60534264fb14464841f1b1746c2" + integrity sha512-veQFW93kf6jBdWdF/RxMEIlDK2mkjHyPftM381DID2C9ImTVngwYpyyThxm4/EpgcNOT37BLefzMOjEKbyYg0Q== dependencies: - multimatch "^2.0.0" - plugin-error "^0.1.2" - streamfilter "^1.0.5" + multimatch "^4.0.0" + plugin-error "^1.0.1" + streamfilter "^3.0.0" gulp-header@2.0.7: version "2.0.7" @@ -2990,33 +3163,26 @@ gulp-util@3.0.8, gulp-util@^3.0.0, gulp-util@^3.0.6, gulp-util@^3.0.7: through2 "^2.0.0" vinyl "^0.5.0" -gulp-zip@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/gulp-zip/-/gulp-zip-4.2.0.tgz#e25e738c41ad0795ad853d1d8aeb1744d2a4ca82" +gulp-zip@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/gulp-zip/-/gulp-zip-5.0.0.tgz#ba1af3247e7acc4dc01a72a77c568654cfb1dd1f" + integrity sha512-oR3t8kn+ccHkSyRcBV5kBLPXrhqTh5d6wBAR7r7wqjNQNBhYvOwPedCwlAaGcNl1qSeXNDn6qOk1Qyxvx9Wrow== dependencies: - get-stream "^3.0.0" - plugin-error "^0.1.2" - through2 "^2.0.1" + get-stream "^5.1.0" + plugin-error "^1.0.1" + through2 "^3.0.1" vinyl "^2.1.0" - yazl "^2.1.0" + yazl "^2.5.1" -gulp@3.9.1: - version "3.9.1" - resolved "https://registry.yarnpkg.com/gulp/-/gulp-3.9.1.tgz#571ce45928dd40af6514fc4011866016c13845b4" +gulp@4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/gulp/-/gulp-4.0.2.tgz#543651070fd0f6ab0a0650c6a3e6ff5a7cb09caa" + integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== dependencies: - 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" + glob-watcher "^5.0.3" + gulp-cli "^2.2.0" + undertaker "^1.2.1" + vinyl-fs "^3.0.0" gulplog@^1.0.0: version "1.0.0" @@ -3058,6 +3224,11 @@ has-gulplog@^0.1.0: dependencies: sparkles "^1.0.0" +has-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" + integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -3117,6 +3288,11 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" +hosted-git-info@^2.1.4: + version "2.7.1" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.7.1.tgz#97f236977bd6e125408930ff6de3eec6281ec047" + integrity sha512-7T/BxH19zbcCTa8XkMlbK5lTo1WtgkFi3GvdWEyNuc4Vex7/9Dqbnpsf4JMydcfj9HCg4zUWFTL3Za6lapg5/w== + http-parser-js@>=0.4.0: version "0.5.0" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.0.tgz#d65edbede84349d0dc30320815a15d39cc3cbbd8" @@ -3214,10 +3390,6 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-1.0.2.tgz#ca4309dadee6b54cc0b8d247e8d7c7a0975bdc9b" - inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -3230,7 +3402,7 @@ ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" -inquirer@^6.1.0, inquirer@^6.2.2: +inquirer@^6.2.2: version "6.2.2" resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.2.2.tgz#46941176f65c9eb20804627149b743a218f25406" dependencies: @@ -3248,7 +3420,7 @@ inquirer@^6.1.0, inquirer@^6.2.2: strip-ansi "^5.0.0" through "^2.3.6" -interpret@1.2.0, interpret@^1.0.0: +interpret@1.2.0, interpret@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" @@ -3263,6 +3435,11 @@ invariant@^2.2.2: dependencies: loose-envify "^1.0.0" +invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= + invert-kv@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" @@ -3286,6 +3463,11 @@ is-accessor-descriptor@^1.0.0: dependencies: kind-of "^6.0.0" +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -3367,12 +3549,22 @@ is-glob@^4.0.1: dependencies: is-extglob "^2.1.1" +is-negated-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-negated-glob/-/is-negated-glob-1.0.0.tgz#6910bca5da8c95e784b5751b976cf5a10fee36d2" + integrity sha1-aRC8pdqMleeEtXUbl2z1oQ/uNtI= + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" dependencies: kind-of "^3.0.2" +is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== + is-obj@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" @@ -3407,10 +3599,15 @@ is-unc-path@^1.0.0: dependencies: unc-path-regex "^0.1.2" -is-utf8@^0.2.0: +is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" +is-valid-glob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-valid-glob/-/is-valid-glob-1.0.0.tgz#29bf3eff701be2d4d315dbacc39bc39fe8f601aa" + integrity sha1-Kb8+/3Ab4tTTFdusw5vDn+j2Aao= + is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" @@ -3495,13 +3692,6 @@ js-levenshtein@^1.1.3: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" -js-yaml@^3.12.0: - version "3.12.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.12.1.tgz#295c8632a18a23e054cf5c9d3cecafe678167600" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" @@ -3572,6 +3762,11 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" +just-debounce@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/just-debounce/-/just-debounce-1.0.0.tgz#87fccfaeffc0b68cd19d55f6722943f929ea35ea" + integrity sha1-h/zPrv/AtozRnVX2cilD+SnqNeo= + kind-of@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" @@ -3588,7 +3783,7 @@ kind-of@^4.0.0: dependencies: is-buffer "^1.1.5" -kind-of@^5.0.0: +kind-of@^5.0.0, kind-of@^5.0.2: version "5.1.0" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" @@ -3608,16 +3803,45 @@ knockout@3.4.2: version "3.4.2" resolved "https://registry.yarnpkg.com/knockout/-/knockout-3.4.2.tgz#e87958de77ad1e936f7ce645bab8b5d7c456d937" +last-run@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/last-run/-/last-run-1.1.1.tgz#45b96942c17b1c79c772198259ba943bebf8ca5b" + integrity sha1-RblpQsF7HHnHchmCWbqUO+v4yls= + dependencies: + default-resolution "^2.0.0" + es6-weak-map "^2.0.1" + lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" +lazystream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lazystream/-/lazystream-1.0.0.tgz#f6995fe0f820392f61396be89462407bb77168e4" + integrity sha1-9plf4PggOS9hOWvolGJAe7dxaOQ= + dependencies: + readable-stream "^2.0.5" + +lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= + dependencies: + invert-kv "^1.0.0" + lcid@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" dependencies: invert-kv "^2.0.0" +lead@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lead/-/lead-1.0.0.tgz#6f14f99a37be3a9dd784f5495690e5903466ee42" + integrity sha1-bxT5mje+Op3XhPVJVpDlkDRm7kI= + dependencies: + flush-write-stream "^1.0.2" + "less@2.6.x || ^3.7.1": version "3.9.0" resolved "https://registry.yarnpkg.com/less/-/less-3.9.0.tgz#b7511c43f37cf57dc87dffd9883ec121289b1474" @@ -3640,12 +3864,13 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -liftoff@^2.1.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-2.5.0.tgz#2009291bb31cea861bbf10a7c15a28caf75c31ec" +liftoff@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/liftoff/-/liftoff-3.1.0.tgz#c9ba6081f908670607ee79062d700df062c52ed3" + integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== dependencies: extend "^3.0.0" - findup-sync "^2.0.0" + findup-sync "^3.0.0" fined "^1.0.1" flagged-respawn "^1.0.0" is-plain-object "^2.0.4" @@ -3657,6 +3882,17 @@ livereload-js@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/livereload-js/-/livereload-js-2.4.0.tgz#447c31cf1ea9ab52fc20db615c5ddf678f78009c" +load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + loader-runner@^2.3.0: version "2.4.0" resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" @@ -3835,14 +4071,10 @@ lodash.uniq@^4.3.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.5: +lodash@^4.17.10, lodash@^4.17.11: version "4.17.11" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d" -lodash@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-1.0.2.tgz#8f57560c83b59fc270bd3d561b690043430e2551" - log-symbols@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-1.0.2.tgz#376ff7b58ea3086a0f09facc74617eca501e1a18" @@ -3863,10 +4095,6 @@ lozad@1.9.0: version "1.9.0" resolved "https://registry.yarnpkg.com/lozad/-/lozad-1.9.0.tgz#75e71ea9e379c744c2ad7ecc37a5858a25674595" -lru-cache@2: - version "2.7.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" - lru-cache@^5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" @@ -3931,6 +4159,16 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" +matchdep@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/matchdep/-/matchdep-2.0.0.tgz#c6f34834a0d8dbc3b37c27ee8bbcb27c7775582e" + integrity sha1-xvNINKDY28OzfCfui7yyfHd1WC4= + dependencies: + findup-sync "^2.0.0" + micromatch "^3.0.4" + resolve "^1.4.0" + stack-trace "0.0.10" + matchmedia-polyfill@0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/matchmedia-polyfill/-/matchmedia-polyfill-0.3.2.tgz#4666e252aead72e8dd232a9fbde5d93fa50497d3" @@ -4016,25 +4254,12 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -minimatch@^2.0.1: - version "2.0.10" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" - dependencies: - brace-expansion "^1.0.0" - -minimatch@^3.0.0, minimatch@^3.0.3, minimatch@^3.0.4: +minimatch@^3.0.3, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" -minimatch@~0.2.11: - version "0.2.14" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.2.14.tgz#c74e780574f63c6f9a090e90efbe6ef53a6a756a" - dependencies: - lru-cache "2" - sigmund "~1.0.0" - minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -4107,14 +4332,16 @@ ms@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" -multimatch@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-2.1.0.tgz#9c7906a22fb4c02919e2f5f75161b4cdbd4b2a2b" +multimatch@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== dependencies: - array-differ "^1.0.0" - array-union "^1.0.1" - arrify "^1.0.0" - minimatch "^3.0.0" + "@types/minimatch" "^3.0.3" + array-differ "^3.0.0" + array-union "^2.1.0" + arrify "^2.0.1" + minimatch "^3.0.4" multipipe@^0.1.2: version "0.1.2" @@ -4122,10 +4349,20 @@ multipipe@^0.1.2: dependencies: duplexer2 "0.0.2" +mute-stdout@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mute-stdout/-/mute-stdout-1.0.1.tgz#acb0300eb4de23a7ddeec014e3e96044b3472331" + integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== + mute-stream@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" +nan@^2.12.1: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + nan@^2.9.2: version "2.12.1" resolved "https://registry.yarnpkg.com/nan/-/nan-2.12.1.tgz#7b1aa193e9aa86057e3c7bbd0ac448e770925552" @@ -4146,10 +4383,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -natives@^1.1.0: - version "1.1.6" - resolved "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz#a603b4a498ab77173612b9ea1acdec4d980f00bb" - natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4166,6 +4399,11 @@ neo-async@^2.5.0: version "2.6.0" resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.0.tgz#b9d15e4d71c6762908654b5183ed38b753340835" +next-tick@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -4240,6 +4478,22 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" +node-pre-gyp@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" + integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4" + node-releases@^1.1.23: version "1.1.24" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.24.tgz#2fb494562705c01bfb81a7af9f8584c4d56311b4" @@ -4254,6 +4508,16 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -4272,6 +4536,13 @@ normalize.css@8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/normalize.css/-/normalize.css-8.0.1.tgz#9b98a208738b9cc2634caacbc42d131c97487bf3" +now-and-later@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/now-and-later/-/now-and-later-2.0.1.tgz#8e579c8685764a7cc02cb680380e94f43ccb1f7c" + integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== + dependencies: + once "^1.3.2" + npm-bundled@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.5.tgz#3c1732b7ba936b3a10325aef616467c0ccbcc979" @@ -4326,6 +4597,11 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" +object-keys@^1.0.11, object-keys@^1.0.12: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + object-keys@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" @@ -4336,7 +4612,17 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.defaults@^1.1.0: +object.assign@^4.0.4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.defaults@^1.0.0, object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/object.defaults/-/object.defaults-1.1.0.tgz#3a7f868334b407dea06da16d88d5cd29e435fecf" dependencies: @@ -4358,18 +4644,20 @@ object.pick@^1.2.0, object.pick@^1.3.0: dependencies: isobject "^3.0.1" -once@^1.3.0, once@^1.3.1, once@^1.4.0: +object.reduce@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object.reduce/-/object.reduce-1.0.1.tgz#6fe348f2ac7fa0f95ca621226599096825bb03ad" + integrity sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60= + dependencies: + for-own "^1.0.0" + make-iterator "^1.0.0" + +once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: wrappy "1" -once@~1.3.0: - version "1.3.3" - resolved "https://registry.yarnpkg.com/once/-/once-1.3.3.tgz#b2e261557ce4c314ec8304f3fa82663e4297ca20" - dependencies: - wrappy "1" - onetime@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" @@ -4404,17 +4692,12 @@ optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -orchestrator@^0.3.0: - version "0.3.8" - resolved "https://registry.yarnpkg.com/orchestrator/-/orchestrator-0.3.8.tgz#14e7e9e2764f7315fbac184e506c7aa6df94ad7e" +ordered-read-streams@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz#77c0cb37c41525d64166d990ffad7ec6a0e1363e" + integrity sha1-d8DLN8QVJdZBZtmQ/61+xqDhNj4= dependencies: - end-of-stream "~0.1.5" - sequencify "~0.0.7" - stream-consume "~0.1.0" - -ordered-read-streams@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz#fd565a9af8eb4473ba69b6ed8a34352cb552f126" + readable-stream "^2.0.1" os-browserify@^0.3.0: version "0.3.0" @@ -4424,6 +4707,13 @@ os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" +os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= + dependencies: + lcid "^1.0.0" + os-locale@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" @@ -4516,6 +4806,13 @@ parse-filepath@^1.0.1: map-cache "^0.2.0" path-root "^0.1.1" +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + parse-node-version@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/parse-node-version/-/parse-node-version-1.0.1.tgz#e2b5dbede00e7fa9bc363607f53327e8b073189b" @@ -4536,6 +4833,13 @@ path-dirname@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -4544,10 +4848,6 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -4566,6 +4866,15 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -4592,6 +4901,11 @@ performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + pify@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" @@ -4605,6 +4919,18 @@ pikaday@1.8.0: version "1.8.0" resolved "https://registry.yarnpkg.com/pikaday/-/pikaday-1.8.0.tgz#ce930e257042e852e6aadee1115e01554b2d71c5" +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -4630,10 +4956,6 @@ plugin-error@^0.1.2: arr-union "^2.0.1" extend-shallow "^1.1.2" -pluralize@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-7.0.0.tgz#298b89df8b93b0221dbf421ad2b1b1ea23fc6777" - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" @@ -4774,7 +5096,7 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -pumpify@^1.3.3: +pumpify@^1.3.3, pumpify@^1.3.5: version "1.5.1" resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" dependencies: @@ -4858,7 +5180,24 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + +read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -4878,7 +5217,16 @@ rc@^1.2.7: string_decoder "^1.1.1" util-deprecate "^1.0.1" -"readable-stream@>=1.0.33-1 <1.1.0-0", readable-stream@~1.0.17: +readable-stream@^3.0.6: + version "3.4.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.0.17: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -4896,7 +5244,7 @@ readable-stream@~1.1.9: isarray "0.0.1" string_decoder "~0.10.x" -readdirp@^2.0.0: +readdirp@^2.0.0, readdirp@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" dependencies: @@ -4973,7 +5321,24 @@ regjsparser@^0.6.0: dependencies: jsesc "~0.5.0" -remove-trailing-separator@^1.0.1: +remove-bom-buffer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz#c2bf1e377520d324f623892e33c10cac2c252b53" + integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== + dependencies: + is-buffer "^1.1.5" + is-utf8 "^0.2.1" + +remove-bom-stream@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz#05f1a593f16e42e1fb90ebf59de8e569525f9523" + integrity sha1-BfGlk/FuQuH7kOv1nejlaVJflSM= + dependencies: + remove-bom-buffer "^3.0.0" + safe-buffer "^5.1.0" + through2 "^2.0.3" + +remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -4993,6 +5358,15 @@ replace-ext@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" +replace-homedir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-homedir/-/replace-homedir-1.0.0.tgz#e87f6d513b928dde808260c12be7fec6ff6e798c" + integrity sha1-6H9tUTuSjd6AgmDBK+f+xv9ueYw= + dependencies: + homedir-polyfill "^1.0.1" + is-absolute "^1.0.0" + remove-trailing-separator "^1.1.0" + replacestream@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/replacestream/-/replacestream-4.0.3.tgz#3ee5798092be364b1cdb1484308492cb3dff2f36" @@ -5030,6 +5404,11 @@ require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" @@ -5060,6 +5439,13 @@ resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" +resolve-options@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/resolve-options/-/resolve-options-1.1.0.tgz#32bb9e39c06d67338dc9378c0d6d6074566ad131" + integrity sha1-MrueOcBtZzONyTeMDW1gdFZq0TE= + dependencies: + value-or-function "^3.0.0" + resolve-url@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" @@ -5070,7 +5456,7 @@ resolve@^1.1.6, resolve@^1.1.7, resolve@^1.3.2, resolve@^1.5.0: dependencies: path-parse "^1.0.6" -resolve@^1.8.1: +resolve@^1.10.0, resolve@^1.4.0, resolve@^1.8.1: version "1.11.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.11.1.tgz#ea10d8110376982fef578df8fc30b9ac30a07a3e" integrity sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw== @@ -5094,7 +5480,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3, rimraf@~2.6.2: +rimraf@2.6.3, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: version "2.6.3" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" dependencies: @@ -5163,27 +5549,26 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -semver@^4.1.0: - version "4.3.6" - resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.6.tgz#300bc6e0e86374f7ba61068b5b1ecd57fc6532da" +semver-greatest-satisfied-range@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz#13e8c2658ab9691cb0cd71093240280d36f77a5b" + integrity sha1-E+jCZYq5aRywzXEJMkAoDTb3els= + dependencies: + sver-compat "^1.5.0" + +"semver@2 || 3 || 4 || 5", semver@^5.6.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1: version "5.6.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.6.0.tgz#7e74256fbaa49c75aa7c7a205cc22799cac80004" -semver@^5.6.0: - version "5.7.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b" - semver@^6.1.1: version "6.1.2" resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.2.tgz#079960381376a3db62eb2edc8a3bfb10c7cfe318" integrity sha512-z4PqiCpomGtWj8633oeAdXm1Kn1W++3T8epkZYnwiVgIYIJ0QHszhInYSJTYxebByQH7KVCEAn8R9duzZW2PhQ== -sequencify@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/sequencify/-/sequencify-0.0.7.tgz#90cff19d02e07027fd767f5ead3e7b95d1e7380c" - serialize-javascript@^1.4.0: version "1.6.1" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.6.1.tgz#4d1f697ec49429a847ca6f442a2a755126c4d879" @@ -5240,10 +5625,6 @@ shellwords@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" -sigmund@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" - signal-exit@^3.0.0, signal-exit@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" @@ -5256,7 +5637,7 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" -slice-ansi@^2.0.0, slice-ansi@^2.1.0: +slice-ansi@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" dependencies: @@ -5332,6 +5713,32 @@ sparkles@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sparkles/-/sparkles-1.0.1.tgz#008db65edce6c50eec0c5e228e1945061dd0437c" +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.4.tgz#75ecd1a88de8c184ef015eafb51b5b48bfd11bb1" + integrity sha512-7j8LYJLeY/Yb6ACbQ7F76qy5jHkp0U6jgBfJsk97bwWlVUnUWsAgpyaCvo17h0/RQGnQ036tVDomiwoI4pDkQA== + split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" @@ -5368,9 +5775,15 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -stat-mode@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" +stack-trace@0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + +stat-mode@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.3.0.tgz#69283b081f851582b328d2a4ace5f591ce52f54b" + integrity sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng== static-extend@^0.1.1: version "0.1.2" @@ -5399,10 +5812,6 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" -stream-consume@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/stream-consume/-/stream-consume-0.1.1.tgz#d3bdb598c2bd0ae82b8cac7ac50b1107a7996c48" - stream-counter@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-counter/-/stream-counter-1.0.0.tgz#91cf2569ce4dc5061febcd7acb26394a5a114751" @@ -5414,6 +5823,11 @@ stream-each@^1.1.0: end-of-stream "^1.1.0" stream-shift "^1.0.0" +stream-exhaust@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + stream-http@^2.7.2: version "2.8.3" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" @@ -5428,17 +5842,18 @@ stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" -streamfilter@^1.0.5: - version "1.0.7" - resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-1.0.7.tgz#ae3e64522aa5a35c061fd17f67620c7653c643c9" +streamfilter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/streamfilter/-/streamfilter-3.0.0.tgz#8c61b08179a6c336c6efccc5df30861b7a9675e7" + integrity sha512-kvKNfXCmUyC8lAXSSHCIXBUlo/lhsLcCU/OmzACZYpRUdtKIH68xYhm/+HI15jFJYtNJGYtCgn2wmIiExY1VwA== dependencies: - readable-stream "^2.0.2" + readable-stream "^3.0.6" string-template@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" -string-width@^1.0.1: +string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" dependencies: @@ -5446,7 +5861,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.1.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2", string-width@^2.1.0: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: @@ -5508,6 +5923,13 @@ strip-bom@^1.0.0: first-chunk-stream "^1.0.0" is-utf8 "^0.2.0" +strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= + dependencies: + is-utf8 "^0.2.0" + strip-eof@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" @@ -5539,14 +5961,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -table@^5.0.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/table/-/table-5.2.2.tgz#61d474c9e4d8f4f7062c98c7504acb3c08aa738f" +sver-compat@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sver-compat/-/sver-compat-1.5.0.tgz#3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8" + integrity sha1-PPh9/rTQe0o/FIJ7wYaz/QxkXNg= dependencies: - ajv "^6.6.1" - lodash "^4.17.11" - slice-ansi "^2.0.0" - string-width "^2.1.1" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" table@^5.2.3: version "5.2.3" @@ -5611,12 +6032,20 @@ textextensions@2: version "2.4.0" resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-2.4.0.tgz#6a143a985464384cc2cff11aea448cd5b018e72b" -through2@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" +through2-filter@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/through2-filter/-/through2-filter-3.0.0.tgz#700e786df2367c2c88cd8aa5be4cf9c1e7831254" + integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" + through2 "~2.0.0" + xtend "~4.0.0" + +through2@3.0.1, through2@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" + integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== + dependencies: + readable-stream "2 || 3" through2@^0.5.1: version "0.5.1" @@ -5625,14 +6054,7 @@ through2@^0.5.1: readable-stream "~1.0.17" xtend "~3.0.0" -through2@^0.6.1: - version "0.6.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.6.5.tgz#41ab9c67b29d57209071410e1d7a7a968cd3ad48" - dependencies: - readable-stream ">=1.0.33-1 <1.1.0-0" - xtend ">=4.0.0 <4.1.0-0" - -through2@^2.0.0, through2@^2.0.1, through2@^2.0.3: +through2@^2.0.0, through2@^2.0.1, through2@^2.0.3, through2@~2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" dependencies: @@ -5646,13 +6068,6 @@ through2@^3.0.0: readable-stream "2 || 3" xtend "~4.0.1" -through2@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.1.tgz#39276e713c3302edf9e388dd9c812dd3b825bd5a" - integrity sha512-M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww== - dependencies: - readable-stream "2 || 3" - through2@~0.4: version "0.4.2" resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" @@ -5664,12 +6079,6 @@ through@2, through@^2.3.6, through@~2.3, through@~2.3.1: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -tildify@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/tildify/-/tildify-1.2.0.tgz#dcec03f55dca9b7aa3e5b04f21817eb56e63588a" - dependencies: - os-homedir "^1.0.0" - time-stamp@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-1.1.0.tgz#764a5a11af50561921b133f3b44e618687e0f5c3" @@ -5697,6 +6106,14 @@ tmp@^0.0.33: dependencies: os-tmpdir "~1.0.2" +to-absolute-glob@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz#1865f43d9e74b0822db9f145b78cff7d0f7c849b" + integrity sha1-GGX0PZ50sIItufFFt4z/fQ98hJs= + dependencies: + is-absolute "^1.0.0" + is-negated-glob "^1.0.0" + to-arraybuffer@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" @@ -5727,6 +6144,13 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +to-through@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-through/-/to-through-2.0.0.tgz#fc92adaba072647bc0b67d6b03664aa195093af6" + integrity sha1-/JKtq6ByZHvAtn1rA2ZKoZUJOvY= + dependencies: + through2 "^2.0.3" + tough-cookie@~2.4.3: version "2.4.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" @@ -5762,6 +6186,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/type/-/type-1.0.1.tgz#084c9a17fcc9151a2cdb1459905c2e45e4bb7d61" + integrity sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw== + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -5794,6 +6223,26 @@ underscore@1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.9.1.tgz#06dce34a0e68a7babc29b365b8e74b8925203961" +undertaker-registry@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/undertaker-registry/-/undertaker-registry-1.0.1.tgz#5e4bda308e4a8a2ae584f9b9a4359a499825cc50" + integrity sha1-XkvaMI5KiirlhPm5pDWaSZglzFA= + +undertaker@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/undertaker/-/undertaker-1.2.1.tgz#701662ff8ce358715324dfd492a4f036055dfe4b" + integrity sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA== + dependencies: + arr-flatten "^1.0.1" + arr-map "^2.0.0" + bach "^1.0.0" + collection-map "^1.0.0" + es6-weak-map "^2.0.1" + last-run "^1.1.0" + object.defaults "^1.0.0" + object.reduce "^1.0.0" + undertaker-registry "^1.0.0" + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -5838,9 +6287,13 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -unique-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-1.0.0.tgz#d59a4a75427447d9aa6c91e70263f8d26a4b104b" +unique-stream@^2.0.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/unique-stream/-/unique-stream-2.3.1.tgz#c65d110e9a4adf9a6c5948b28053d9a8d04cbeac" + integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== + dependencies: + json-stable-stringify-without-jsonify "^1.0.1" + through2-filter "^3.0.0" unset-value@^1.0.0: version "1.0.0" @@ -5853,6 +6306,11 @@ upath@^1.0.5: version "1.1.0" resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.0.tgz#35256597e46a581db4793d0ce47fa9aebfc9fabd" +upath@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.1.2.tgz#3db658600edaeeccbe6db5e684d67ee8c2acd068" + integrity sha512-kXpym8nmDmlCBr7nKdIx8P2jNBa+pBpIUFRnKJ4dr8htyYGJFokkr2ZvERRtUN+9SY+JqXouNgUPtv6JQva/2Q== + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -5874,10 +6332,6 @@ use@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -5903,11 +6357,25 @@ v8-compile-cache@2.0.3: resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== -v8flags@^2.0.2: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" +v8flags@^3.0.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8" + integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== dependencies: - user-home "^1.1.1" + homedir-polyfill "^1.0.1" + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +value-or-function@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/value-or-function/-/value-or-function-3.0.0.tgz#1c243a50b595c1be54a754bfece8563b9ff8d813" + integrity sha1-HCQ6ULWVwb5Up1S/7OhWO5/42BM= verror@1.10.0: version "1.10.0" @@ -5917,18 +6385,41 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vinyl-fs@^0.3.0: - version "0.3.14" - resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-0.3.14.tgz#9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6" +vinyl-fs@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/vinyl-fs/-/vinyl-fs-3.0.3.tgz#c85849405f67428feabbbd5c5dbdd64f47d31bc7" + integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== dependencies: - 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" + fs-mkdirp-stream "^1.0.0" + glob-stream "^6.1.0" + graceful-fs "^4.0.0" + is-valid-glob "^1.0.0" + lazystream "^1.0.0" + lead "^1.0.0" + object.assign "^4.0.4" + pumpify "^1.3.5" + readable-stream "^2.3.3" + remove-bom-buffer "^3.0.0" + remove-bom-stream "^1.2.0" + resolve-options "^1.1.0" + through2 "^2.0.0" + to-through "^2.0.0" + value-or-function "^3.0.0" + vinyl "^2.0.0" + vinyl-sourcemap "^1.1.0" + +vinyl-sourcemap@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz#92a800593a38703a8cdb11d8b300ad4be63b3e16" + integrity sha1-kqgAWTo4cDqM2xHYswCtS+Y7PhY= + dependencies: + append-buffer "^1.0.2" + convert-source-map "^1.5.0" + graceful-fs "^4.1.6" + normalize-path "^2.1.1" + now-and-later "^2.0.0" + remove-bom-buffer "^3.0.0" + vinyl "^2.0.0" vinyl-sourcemaps-apply@0.2.1, vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-apply@^0.2.1: version "0.2.1" @@ -5936,13 +6427,6 @@ vinyl-sourcemaps-apply@0.2.1, vinyl-sourcemaps-apply@^0.2.0, vinyl-sourcemaps-ap dependencies: source-map "^0.5.1" -vinyl@^0.4.0: - version "0.4.6" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.4.6.tgz#2f356c87a550a255461f36bbeb2a5ba8bf784847" - dependencies: - clone "^0.2.0" - clone-stats "^0.0.1" - vinyl@^0.5.0: version "0.5.3" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-0.5.3.tgz#b0455b38fc5e0cf30d4325132e461970c2091cde" @@ -5951,7 +6435,7 @@ vinyl@^0.5.0: clone-stats "^0.0.1" replace-ext "0.0.1" -vinyl@^2.1.0, vinyl@^2.2.0: +vinyl@^2.0.0, vinyl@^2.1.0, vinyl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.0.tgz#d85b07da96e458d25b2ffe19fece9f2caa13ed86" dependencies: @@ -6052,6 +6536,11 @@ when@^3.7.8: version "3.7.8" resolved "https://registry.yarnpkg.com/when/-/when-3.7.8.tgz#c7130b6a7ea04693e842cdc9e7a1f2aa39a39f82" +which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -6086,6 +6575,14 @@ worker-farm@^1.5.2: dependencies: errno "~0.1.7" +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -6113,13 +6610,7 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - -"xtend@>=4.0.0 <4.1.0-0", xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -6133,6 +6624,11 @@ xtend@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a" +y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= + y18n@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" @@ -6149,6 +6645,13 @@ yargs-parser@^13.1.0: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= + dependencies: + camelcase "^3.0.0" + yargs@13.2.4: version "13.2.4" resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" @@ -6166,6 +6669,25 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" +yargs@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" @@ -6175,8 +6697,9 @@ yargs@~3.10.0: decamelize "^1.0.0" window-size "0.1.0" -yazl@^2.1.0: +yazl@^2.5.1: version "2.5.1" resolved "https://registry.yarnpkg.com/yazl/-/yazl-2.5.1.tgz#a3d65d3dd659a5b0937850e8609f22fffa2b5c35" + integrity sha512-phENi2PLiHnHb6QBVot+dJnaAZ0xosj7p3fWl+znIjBDlnMI2PsZCJZ306BPTFOaHf5qdDEI8x5qFrSOBN5vrw== dependencies: buffer-crc32 "~0.2.3"