From c26fae2edefd140a0f723238dfc669f763ed0839 Mon Sep 17 00:00:00 2001 From: NGPixel Date: Sat, 7 Oct 2017 22:44:35 -0400 Subject: [PATCH] feat: Kernel module --- package.json | 13 +- server/index.js | 39 +--- server/init.js | 90 -------- server/master.js | 18 +- server/models/user.js | 11 +- server/modules/config.js | 5 +- server/modules/db.js | 12 +- server/modules/kernel.js | 91 ++++++++ server/modules/queue.js | 2 +- server/worker.js | 2 - tools/fuse_tasks.js | 21 -- wiki.js | 78 +++++-- yarn.lock | 442 +++++++-------------------------------- 13 files changed, 264 insertions(+), 560 deletions(-) delete mode 100644 server/init.js create mode 100644 server/modules/kernel.js diff --git a/package.json b/package.json index 0a36dd6e..f48d48e9 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "bcryptjs-then": "1.0.1", "bluebird": "3.5.1", "body-parser": "1.18.2", - "bull": "3.2.0", + "bull": "3.3.0", "bunyan": "1.8.12", "cheerio": "1.0.0-rc.2", "child-process-promise": "2.2.1", @@ -66,7 +66,7 @@ "graphql": "0.10.5", "graphql-tools": "2.2.1", "highlight.js": "9.12.0", - "i18next": "9.0.1", + "i18next": "9.1.0", "i18next-express-middleware": "1.0.7", "i18next-localstorage-cache": "1.1.1", "i18next-node-fs-backend": "1.0.0", @@ -76,7 +76,6 @@ "js-yaml": "3.10.0", "jsonwebtoken": "8.0.1", "klaw": "2.1.0", - "levelup": "1.3.9", "lodash": "4.17.4", "markdown-it": "8.4.0", "markdown-it-abbr": "1.0.4", @@ -89,7 +88,6 @@ "markdown-it-mathjax": "2.0.0", "markdown-it-task-lists": "2.0.1", "mathjax-node": "1.2.1", - "memdown": "1.4.1", "mime-types": "2.1.17", "moment": "2.18.1", "moment-timezone": "0.5.13", @@ -106,21 +104,19 @@ "passport-local": "1.0.0", "passport-slack": "0.0.7", "passport-windowslive": "1.0.2", - "pg": "7.3.0", + "pg": "6.4.2", "pg-hstore": "2.3.2", "pg-promise": "6.10.3", "pm2": "2.7.1", "pug": "2.0.0-rc.4", + "qr-image": "3.2.0", "read-chunk": "2.1.0", "remove-markdown": "0.2.2", "request": "2.83.0", - "search-index-adder": "0.3.9", - "search-index-searcher": "0.2.10", "semver": "5.4.1", "sequelize": "4.13.5", "serve-favicon": "2.4.5", "simplemde": "1.11.2", - "stopword": "0.1.8", "stream-to-promise": "2.2.0", "tar": "4.0.1", "through2": "2.0.3", @@ -135,6 +131,7 @@ "apollo-client": "^1.9.3", "autoprefixer": "7.1.5", "babel-cli": "6.26.0", + "babel-core": "6.26.0", "babel-jest": "21.2.0", "babel-preset-env": "1.6.0", "babel-preset-es2015": "6.24.1", diff --git a/server/index.js b/server/index.js index 30ea6e2c..e74f5c2b 100644 --- a/server/index.js +++ b/server/index.js @@ -1,5 +1,3 @@ -'use strict' - // =========================================== // Wiki.js // Licensed under AGPLv3 @@ -13,7 +11,8 @@ let wiki = { IS_MASTER: cluster.isMaster, ROOTPATH: process.cwd(), SERVERPATH: path.join(process.cwd(), 'server'), - configSvc: require('./modules/config') + configSvc: require('./modules/config'), + kernel: require('./modules/kernel') } global.wiki = wiki @@ -38,37 +37,7 @@ wiki.logger = require('./modules/logger').init() wiki.db = require('./modules/db').init() // ---------------------------------------- -// Start Cluster +// Start Kernel // ---------------------------------------- -const numCPUs = require('os').cpus().length -let numWorkers = (wiki.config.workers > 0) ? wiki.config.workers : numCPUs -if (numWorkers > numCPUs) { - numWorkers = numCPUs -} - -if (cluster.isMaster) { - wiki.logger.info('=======================================') - wiki.logger.info('= Wiki.js =============================') - wiki.logger.info('=======================================') - - require('./master').then(() => { - // -> Create background workers - for (let i = 0; i < numWorkers; i++) { - cluster.fork() - } - - // -> Queue post-init tasks - - wiki.queue.uplClearTemp.add({}, { - repeat: { cron: '*/15 * * * *' } - }) - }) - - cluster.on('exit', (worker, code, signal) => { - wiki.logger.info(`Background Worker #${worker.id} was terminated.`) - }) -} else { - wiki.logger.info(`Background Worker #${cluster.worker.id} is initializing...`) - require('./worker') -} +wiki.kernel.init() diff --git a/server/init.js b/server/init.js deleted file mode 100644 index 95b3ed52..00000000 --- a/server/init.js +++ /dev/null @@ -1,90 +0,0 @@ -'use strict' - -const Promise = require('bluebird') -const fs = Promise.promisifyAll(require('fs-extra')) -const pm2 = Promise.promisifyAll(require('pm2')) -const ora = require('ora') -const path = require('path') - -const ROOTPATH = process.cwd() - -module.exports = { - /** - * Detect the most appropriate start mode - */ - startDetect: function () { - if (process.env.WIKI_JS_HEROKU) { - return this.startInHerokuMode() - } else { - return this.startInBackgroundMode() - } - }, - /** - * Start in background mode - */ - startInBackgroundMode: function () { - let spinner = ora('Initializing...').start() - return fs.emptyDirAsync(path.join(ROOTPATH, './logs')).then(() => { - return pm2.connectAsync().then(() => { - return pm2.startAsync({ - name: 'wiki', - script: 'server', - cwd: ROOTPATH, - output: path.join(ROOTPATH, './logs/wiki-output.log'), - error: path.join(ROOTPATH, './logs/wiki-error.log'), - minUptime: 5000, - maxRestarts: 5 - }).then(() => { - spinner.succeed('Wiki.js has started successfully.') - }).finally(() => { - pm2.disconnect() - }) - }) - }).catch(err => { - spinner.fail(err) - process.exit(1) - }) - }, - /** - * Start in Heroku mode - */ - startInHerokuMode: function () { - console.warn('Incorrect command on Heroku, use instead: node server') - process.exit(1) - }, - /** - * Stop Wiki.js process(es) - */ - stop () { - let spinner = ora('Shutting down Wiki.js...').start() - return pm2.connectAsync().then(() => { - return pm2.stopAsync('wiki').then(() => { - spinner.succeed('Wiki.js has stopped successfully.') - }).finally(() => { - pm2.disconnect() - }) - }).catch(err => { - spinner.fail(err) - process.exit(1) - }) - }, - /** - * Restart Wiki.js process(es) - */ - restart: function () { - let self = this - return self.stop().delay(1000).then(() => { - self.startDetect() - }) - }, - /** - * Start the web-based configuration wizard - * - * @param {Number} port Port to bind the HTTP server on - */ - configure (port) { - port = port || 3000 - let spinner = ora('Initializing interactive setup...').start() - require('./configure')(port, spinner) - } -} diff --git a/server/master.js b/server/master.js index f4350edf..4d8a450c 100644 --- a/server/master.js +++ b/server/master.js @@ -1,17 +1,6 @@ -'use strict' - /* global wiki */ -const Promise = require('bluebird') - -wiki.redis = require('./modules/redis').init() -wiki.queue = require('./modules/queue').init() - -module.exports = Promise.join( - wiki.db.onReady, - wiki.configSvc.loadFromDb(), - wiki.queue.clean() -).then(() => { +module.exports = () => { // ---------------------------------------- // Load global modules // ---------------------------------------- @@ -194,7 +183,4 @@ module.exports = Promise.join( }) return true -}).catch(err => { - wiki.logger.error(err) - process.exit(1) -}) +} diff --git a/server/models/user.js b/server/models/user.js index 4d740b39..a73425d8 100644 --- a/server/models/user.js +++ b/server/models/user.js @@ -19,7 +19,7 @@ module.exports = (sequelize, DataTypes) => { } }, provider: { - type: DataTypes.ENUM(wiki.data.authProviders), + type: DataTypes.STRING, allowNull: false }, providerId: { @@ -37,6 +37,15 @@ module.exports = (sequelize, DataTypes) => { role: { type: DataTypes.ENUM('admin', 'user', 'guest'), allowNull: false + }, + tfaIsActive: { + type: DataTypes.BOOLEAN, + allowNull: false, + defaultValue: false + }, + tfaSecret: { + type: DataTypes.STRING, + allowNull: true } }, { timestamps: true, diff --git a/server/modules/config.js b/server/modules/config.js index 5884b8cf..d18da9fa 100644 --- a/server/modules/config.js +++ b/server/modules/config.js @@ -75,13 +75,14 @@ module.exports = { } } }).then(results => { - if (_.isArray(results) && results.length > 0) { + if (_.isArray(results) && results.length === subsets.length) { results.forEach(result => { wiki.config[result.key] = result.config }) return true } else { - return Promise.reject(new Error('Invalid DB Configuration result set')) + wiki.logger.warn('DB Configuration is empty or incomplete.') + return false } }) } diff --git a/server/modules/db.js b/server/modules/db.js index 17081b36..34fc02e3 100644 --- a/server/modules/db.js +++ b/server/modules/db.js @@ -75,7 +75,7 @@ module.exports = { min: 0, idle: 10000 }, - logging: false, + logging: log => { wiki.logger.log('verbose', log) }, operatorsAliases }) @@ -92,10 +92,10 @@ module.exports = { fs .readdirSync(dbModelsPath) - .filter(function (file) { + .filter(file => { return (file.indexOf('.') !== 0 && file.indexOf('_') !== 0) }) - .forEach(function (file) { + .forEach(file => { let modelName = _.upperFirst(_.camelCase(_.split(file, '.')[0])) self[modelName] = self.inst.import(path.join(dbModelsPath, file)) }) @@ -110,8 +110,8 @@ module.exports = { // -> Sync DB Schemas syncSchemas() { return self.inst.sync({ - force: false, - logging: false + force: true, + logging: log => { wiki.logger.log('verbose', log) } }) }, // -> Set Connection App Name @@ -129,7 +129,7 @@ module.exports = { // Perform init tasks - self.onReady = Promise.each(initTasksQueue, t => t()) + self.onReady = Promise.each(initTasksQueue, t => t()).return(true) return self } diff --git a/server/modules/kernel.js b/server/modules/kernel.js new file mode 100644 index 00000000..48e1659f --- /dev/null +++ b/server/modules/kernel.js @@ -0,0 +1,91 @@ +const cluster = require('cluster') +const Promise = require('bluebird') +const _ = require('lodash') + +/* global wiki */ + +module.exports = { + numWorkers: 1, + workers: [], + init() { + if (cluster.isMaster) { + wiki.logger.info('=======================================') + wiki.logger.info('= Wiki.js =============================') + wiki.logger.info('=======================================') + + wiki.redis = require('./redis').init() + wiki.queue = require('./queue').init() + + this.setWorkerLimit() + this.bootMaster() + } else { + this.bootWorker() + } + }, + /** + * Pre-Master Boot Sequence + */ + preBootMaster() { + return Promise.mapSeries([ + () => { return wiki.db.onReady }, + () => { return wiki.configSvc.loadFromDb() }, + () => { return wiki.queue.clean() } + ], fn => { return fn() }) + }, + /** + * Boot Master Process + */ + bootMaster() { + this.preBootMaster().then(sequenceResults => { + if (_.every(sequenceResults, rs => rs === true)) { + this.postBootMaster() + } else { + wiki.logger.info('Starting configuration manager...') + require('../configure')() + } + return true + }).catch(err => { + wiki.logger.error(err) + process.exit(1) + }) + }, + /** + * Post-Master Boot Sequence + */ + postBootMaster() { + require('../master')().then(() => { + _.times(this.numWorker, this.spawnWorker) + + wiki.queue.uplClearTemp.add({}, { + repeat: { cron: '*/15 * * * *' } + }) + }) + + cluster.on('exit', (worker, code, signal) => { + wiki.logger.info(`Background Worker #${worker.id} was terminated.`) + }) + }, + /** + * Boot Worker Process + */ + bootWorker() { + wiki.logger.info(`Background Worker #${cluster.worker.id} is initializing...`) + require('../worker') + }, + /** + * Spawn new Worker process + */ + spawnWorker() { + this.workers.push(cluster.fork()) + }, + /** + * Set Worker count based on config + system capabilities + */ + setWorkerLimit() { + const numCPUs = require('os').cpus().length + this.numWorkers = (wiki.config.workers > 0) ? wiki.config.workers : numCPUs + if (this.numWorkers > numCPUs) { + this.numWorkers = numCPUs + } + } +} diff --git a/server/modules/queue.js b/server/modules/queue.js index e7612ee3..4bbb6dc0 100644 --- a/server/modules/queue.js +++ b/server/modules/queue.js @@ -30,7 +30,7 @@ module.exports = { }) }).then(() => { wiki.logger.info('Purging old queue jobs: OK') - }).catch(err => { + }).return(true).catch(err => { wiki.logger.error(err) }) } diff --git a/server/worker.js b/server/worker.js index 0028f755..6ca90eba 100644 --- a/server/worker.js +++ b/server/worker.js @@ -1,5 +1,3 @@ -'use strict' - /* global wiki */ const Promise = require('bluebird') diff --git a/tools/fuse_tasks.js b/tools/fuse_tasks.js index e5160a6c..c9d0ee03 100644 --- a/tools/fuse_tasks.js +++ b/tools/fuse_tasks.js @@ -65,27 +65,6 @@ module.exports = Promise.mapSeries([ } }) }, - /** - * i18n - */ - () => { - console.info(colors.white(' └── ') + colors.green('Copying i18n client files...')) - return fs.ensureDirAsync('./assets/js/i18n').then(() => { - return fs.readJsonAsync('./server/locales/en/browser.json').then(enContent => { - return fs.readdirAsync('./server/locales').then(langs => { - return Promise.map(langs, lang => { - console.info(colors.white(' ' + lang + '.json')) - let outputPath = path.join('./assets/js/i18n', lang + '.json') - return fs.readJsonAsync(path.join('./server/locales', lang + 'browser.json'), 'utf8').then((content) => { - return fs.outputJsonAsync(outputPath, _.defaultsDeep(content, enContent)) - }).catch(err => { // eslint-disable-line handle-callback-err - return fs.outputJsonAsync(outputPath, enContent) - }) - }) - }) - }) - }) - }, /** * Delete Fusebox cache */ diff --git a/wiki.js b/wiki.js index faa38b0d..4f14f1bb 100644 --- a/wiki.js +++ b/wiki.js @@ -1,13 +1,72 @@ #!/usr/bin/env node -'use strict' // =========================================== // Wiki.js -// 1.0.1 +// 2.0 // Licensed under AGPLv3 // =========================================== -const init = require('./server/init') +const Promise = require('bluebird') +const fs = Promise.promisifyAll(require('fs-extra')) +const pm2 = Promise.promisifyAll(require('pm2')) +const ora = require('ora') +const path = require('path') + +const ROOTPATH = process.cwd() + +const init = { + /** + * Start in background mode + */ + start () { + let spinner = ora('Initializing...').start() + return fs.emptyDirAsync(path.join(ROOTPATH, './logs')).then(() => { + return pm2.connectAsync().then(() => { + return pm2.startAsync({ + name: 'wiki', + script: 'server', + cwd: ROOTPATH, + output: path.join(ROOTPATH, './logs/wiki-output.log'), + error: path.join(ROOTPATH, './logs/wiki-error.log'), + minUptime: 5000, + maxRestarts: 5 + }).then(() => { + spinner.succeed('Wiki.js has started successfully.') + }).finally(() => { + pm2.disconnect() + }) + }) + }).catch(err => { + spinner.fail(err) + process.exit(1) + }) + }, + /** + * Stop Wiki.js process(es) + */ + stop () { + let spinner = ora('Shutting down Wiki.js...').start() + return pm2.connectAsync().then(() => { + return pm2.stopAsync('wiki').then(() => { + spinner.succeed('Wiki.js has stopped successfully.') + }).finally(() => { + pm2.disconnect() + }) + }).catch(err => { + spinner.fail(err) + process.exit(1) + }) + }, + /** + * Restart Wiki.js process(es) + */ + restart: function () { + let self = this + return self.stop().delay(1000).then(() => { + self.startDetect() + }) + } +} require('yargs') // eslint-disable-line no-unused-expressions .usage('Usage: node $0 [args]') @@ -16,7 +75,7 @@ require('yargs') // eslint-disable-line no-unused-expressions alias: ['boot', 'init'], desc: 'Start Wiki.js process', handler: argv => { - init.startDetect() + init.start() } }) .command({ @@ -35,18 +94,9 @@ require('yargs') // eslint-disable-line no-unused-expressions init.restart() } }) - .command({ - command: 'configure [port]', - alias: ['config', 'conf', 'cfg', 'setup'], - desc: 'Configure Wiki.js using the web-based setup wizard', - builder: (yargs) => yargs.default('port', 3000), - handler: argv => { - init.configure(argv.port) - } - }) .recommendCommands() .demandCommand(1, 'You must provide one of the accepted commands above.') .help() .version() - .epilogue('Read the docs at https://wiki.requarks.io') + .epilogue('Read the docs at https://docs.requarks.io/wiki') .argv diff --git a/yarn.lock b/yarn.lock index 6f134198..7e8baa6f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -126,13 +126,6 @@ "@types/express-serve-static-core" "*" "@types/mime" "*" -JSONStream@^1.2.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.1.tgz#707f761e01dae9e16f1bcf93703b78c70966579a" - dependencies: - jsonparse "^1.2.0" - through ">=2.2.7 <3" - abab@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.3.tgz#b81de5f7274ec4e756d797cd834f303642724e5d" @@ -141,24 +134,6 @@ abbrev@1: version "1.1.0" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" -abstract-leveldown@~2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.4.1.tgz#b3bfedb884eb693a12775f0c55e9f0a420ccee64" - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.1.tgz#f9014a5669b746418e145168dea49a044ae15900" - dependencies: - xtend "~4.0.0" - -abstract-leveldown@~2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.7.1.tgz#d14d344e93561199b9969238f01a56eafd9b58af" - dependencies: - xtend "~4.0.0" - accepts@~1.2.12: version "1.2.13" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.2.13.tgz#e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea" @@ -538,7 +513,7 @@ async@1.5, async@^1.4.0, async@^1.5: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@^2.1.4, async@^2.3.0, async@^2.5: +async@^2.1.4, async@^2.5: version "2.5.0" resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" dependencies: @@ -623,6 +598,30 @@ babel-code-frame@^6.26.0: esutils "^2.0.2" js-tokens "^3.0.2" +babel-core@6.26.0, babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + babel-core@^6.0.0, babel-core@^6.24.1: version "6.25.0" resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.25.0.tgz#7dd42b0463c742e9d5296deb3ec67a9322dad729" @@ -647,30 +646,6 @@ babel-core@^6.0.0, babel-core@^6.24.1: slash "^1.0.0" source-map "^0.5.0" -babel-core@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" - dependencies: - babel-code-frame "^6.26.0" - babel-generator "^6.26.0" - babel-helpers "^6.24.1" - babel-messages "^6.23.0" - babel-register "^6.26.0" - babel-runtime "^6.26.0" - babel-template "^6.26.0" - babel-traverse "^6.26.0" - babel-types "^6.26.0" - babylon "^6.18.0" - convert-source-map "^1.5.0" - debug "^2.6.8" - json5 "^0.5.1" - lodash "^4.17.4" - minimatch "^3.0.4" - path-is-absolute "^1.0.1" - private "^0.1.7" - slash "^1.0.0" - source-map "^0.5.6" - babel-generator@^6.18.0, babel-generator@^6.25.0: version "6.25.0" resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.25.0.tgz#33a1af70d5f2890aeb465a4a7793c1df6a9ea9fc" @@ -1402,20 +1377,10 @@ binary-extensions@^1.0.0: version "1.8.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" -bindings@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" - bisection@: version "0.0.3" resolved "https://registry.yarnpkg.com/bisection/-/bisection-0.0.3.tgz#9891d506d86ec7d50910c5157bb592dbb03f33db" -bl@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" - dependencies: - readable-stream "^2.0.5" - blessed@^0.1.81: version "0.1.81" resolved "https://registry.yarnpkg.com/blessed/-/blessed-0.1.81.tgz#f962d687ec2c369570ae71af843256e6d0ca1129" @@ -1558,9 +1523,9 @@ builtin-modules@^1.0.0, builtin-modules@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" -bull@3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/bull/-/bull-3.2.0.tgz#4fd186c4dba46ceb1743108042abe4013a3dd036" +bull@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/bull/-/bull-3.3.0.tgz#79fc48f0ab6c63cc10fc053adfec4ddcbbc5dd44" dependencies: bluebird "^3.5.0" cron-parser "^2.4.1" @@ -1579,7 +1544,7 @@ bunyan@1.8.12: mv "~2" safe-json-stringify "~1" -bunyan@^1.8.1, bunyan@^1.8.10, bunyan@^1.8.3: +bunyan@^1.8.3: version "1.8.10" resolved "https://registry.yarnpkg.com/bunyan/-/bunyan-1.8.10.tgz#201fedd26c7080b632f416072f53a90b9a52981c" optionalDependencies: @@ -2228,12 +2193,6 @@ default-require-extensions@^1.0.0: dependencies: strip-bom "^2.0.0" -deferred-leveldown@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.1.tgz#5d25c3310f5fe909946f6240dc9f90dd109a71ef" - dependencies: - abstract-leveldown "~2.4.0" - define-properties@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" @@ -2314,14 +2273,6 @@ diff@^3.3.1: version "3.3.1" resolved "https://registry.yarnpkg.com/diff/-/diff-3.3.1.tgz#aa8567a6eed03c531fc89d3f711cd0e5259dec75" -docproc@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/docproc/-/docproc-1.0.1.tgz#12f572e0f0eec1fa0985094e7042308f09a8e8d5" - dependencies: - pumpify "^1.3.5" - term-frequency "^0.0.15" - term-vector "^0.1.2" - doctrine@1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" @@ -2417,15 +2368,6 @@ duplexer@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" -duplexify@^3.1.2: - version "3.5.0" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.0.tgz#1aa773002e1578457e9d9d4a50b0ccaaebcbd604" - dependencies: - end-of-stream "1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" - eachr@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/eachr/-/eachr-3.2.0.tgz#2c35e43ea086516f7997cf80b7aa64d55a4a4484" @@ -2474,18 +2416,6 @@ encoding@^0.1.11: dependencies: iconv-lite "~0.4.13" -end-of-stream@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.0.0.tgz#d4596e702734a93e40e9af864319eabd99ff2f0e" - dependencies: - once "~1.3.0" - -end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.0.tgz#7a90d833efda6cfa6eac0f4949dbb0fad3a63206" - dependencies: - once "^1.4.0" - end-of-stream@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.1.0.tgz#e9353258baa9108965efc41cb0ef8ade2f3cfb07" @@ -2496,7 +2426,7 @@ entities@^1.1.1, entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -errno@^0.1.4, errno@~0.1.1: +errno@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" dependencies: @@ -2768,10 +2698,6 @@ expand-range@^1.8.1: dependencies: fill-range "^2.1.0" -expand-template@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.0.3.tgz#6c303323177a62b1b22c070279f7861287b69b1a" - expect@^21.2.1: version "21.2.1" resolved "https://registry.yarnpkg.com/expect/-/expect-21.2.1.tgz#003ac2ac7005c3c29e73b38a272d4afadd6d1d7b" @@ -2963,10 +2889,6 @@ fast-deep-equal@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" -fast-future@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fast-future/-/fast-future-1.0.2.tgz#8435a9aaa02d79248d17d704e76259301d99280a" - fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" @@ -3315,6 +3237,10 @@ gaze@^1.0.0: dependencies: globule "^1.0.0" +generic-pool@2.4.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-2.4.3.tgz#780c36f69dfad05a5a045dd37be7adca11a4f6ff" + generic-pool@^3.1.8: version "3.1.8" resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.1.8.tgz#09844b6545bc9177ec218bd35d4ad894c65be271" @@ -3356,10 +3282,6 @@ git-wrapper2-promise@0.2.9: dependencies: child-process-promise "^1.1.0" -github-from-package@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" - "gkt@https://tgz.pm2.io/gkt-1.0.0.tgz": version "1.0.0" resolved "https://tgz.pm2.io/gkt-1.0.0.tgz#405502b007f319c3f47175c4474527300f2ab5ad" @@ -3724,9 +3646,9 @@ i18next-xhr-backend@1.4.3: version "1.4.3" resolved "https://registry.yarnpkg.com/i18next-xhr-backend/-/i18next-xhr-backend-1.4.3.tgz#d72f70536a3bf6a3892261dde352bc77d708886a" -i18next@9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/i18next/-/i18next-9.0.1.tgz#8b8a55d017c1e256df9700ded277d47c53cd833b" +i18next@9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/i18next/-/i18next-9.1.0.tgz#408005fe262a990c8d93946a6de0c77bba11667b" iconv-lite@0.4.13: version "0.4.13" @@ -3760,10 +3682,6 @@ image-size@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.6.1.tgz#98122a562d59dcc097ef1b2c8191866eb8f5d663" -immediate@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" - import-lazy@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" @@ -3850,10 +3768,6 @@ interpret@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" -intersect-arrays-to-stream@^0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/intersect-arrays-to-stream/-/intersect-arrays-to-stream-0.0.3.tgz#fc0318953e872f12a12f3d33d04f4e7630e59f3b" - invariant@^2.2.0, invariant@^2.2.2: version "2.2.2" resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.2.tgz#9e1f56ac0acdb6bf303306f338be3b204ae60360" @@ -4594,10 +4508,6 @@ jsonify@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" -jsonparse@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - jsonwebtoken@8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-8.0.1.tgz#50daef8d0a8c7de2cd06bc1013b75b04ccf3f0cf" @@ -4726,63 +4636,6 @@ lego-api@^1.0.7: dependencies: chain-able "^3.0.0" -level-codec@~6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-6.1.0.tgz#f5df0a99582f76dac43855151ab6f4e4d0d60045" - -level-codec@~7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.0.tgz#c755b68d0d44ffa0b1cba044b8f81a55a14ad39b" - -level-errors@^1.0.3, level-errors@~1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/level-errors/-/level-errors-1.0.4.tgz#3585e623974c737a93755492a43c0267cda4425f" - dependencies: - errno "~0.1.1" - -level-iterator-stream@~1.3.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz#e43b78b1a8143e6fa97a4f485eb8ea530352f2ed" - dependencies: - inherits "^2.0.1" - level-errors "^1.0.3" - readable-stream "^1.0.33" - xtend "^4.0.0" - -leveldown@^1.6.0, leveldown@^1.7.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-1.7.2.tgz#5e3467bb27ee246a4a7b8dbd8fb2b16206a6eb8b" - dependencies: - abstract-leveldown "~2.6.1" - bindings "~1.2.1" - fast-future "~1.0.2" - nan "~2.6.1" - prebuild-install "^2.1.0" - -levelup@1.3.9: - version "1.3.9" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~7.0.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.4.1" - xtend "~4.0.0" - -levelup@^1.3.8: - version "1.3.8" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.8.tgz#fb442c488efbea1043f7eb9929a792a74fbd1da6" - dependencies: - deferred-leveldown "~1.2.1" - level-codec "~6.1.0" - level-errors "~1.0.3" - level-iterator-stream "~1.3.0" - prr "~1.0.1" - semver "~5.1.0" - xtend "~4.0.0" - leven@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580" @@ -4932,10 +4785,6 @@ lodash.includes@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" -lodash.intersection@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.intersection/-/lodash.intersection-4.4.0.tgz#0a11ba631d0e95c23c7f2f4cbb9a692ed178e705" - lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" @@ -4952,7 +4801,7 @@ lodash.isempty@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/lodash.isempty/-/lodash.isempty-4.4.0.tgz#6f86cbedd8be4ec987be9aaf33c9684db1b31e7e" -lodash.isequal@^4.0.0, lodash.isequal@^4.1.3: +lodash.isequal@^4.0.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" @@ -5028,22 +4877,6 @@ lodash.shuffle@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/lodash.shuffle/-/lodash.shuffle-4.2.0.tgz#145b5053cf875f6f5c2a33f48b6e9948c6ec7b4b" -lodash.sortedindexof@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.sortedindexof/-/lodash.sortedindexof-4.1.0.tgz#7b661d2f86f55668770802d56baa8f02d6620f3c" - -lodash.spread@^4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/lodash.spread/-/lodash.spread-4.2.1.tgz#07bf5569e83b40534f7361d954a9fab02da5d4fc" - -lodash.union@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - lodash.values@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" @@ -5094,10 +4927,6 @@ lru-cache@^4.0.0, lru-cache@^4.0.1, lru-cache@^4.0.2: pseudomap "^1.0.2" yallist "^2.1.2" -ltgt@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.2.0.tgz#b65ba5fcb349a29924c8e333f7c6a5562f2e4842" - make-dir@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.0.0.tgz#97a011751e91dd87cfadef58832ebb04936de978" @@ -5208,17 +5037,6 @@ memcached@~0.2.4: hashring "0.0.x" jackpot ">=0.0.6" -memdown@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.4.1.tgz#b4e4e192174664ffbae41361aa500f3119efe215" - dependencies: - abstract-leveldown "~2.7.1" - functional-red-black-tree "^1.0.1" - immediate "^3.2.3" - inherits "~2.0.1" - ltgt "~2.2.0" - safe-buffer "~5.1.1" - meow@^3.7.0: version "3.7.0" resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" @@ -5397,7 +5215,7 @@ mv@~2: ncp "~2.0.0" rimraf "~2.4.0" -nan@^2.3.0, nan@^2.3.2, nan@^2.3.3, nan@~2.6.1: +nan@^2.3.0, nan@^2.3.2, nan@^2.3.3: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" @@ -5428,10 +5246,6 @@ negotiator@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" -ngraminator@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/ngraminator/-/ngraminator-0.0.1.tgz#29cfd699df6970f42de9b2f0bdc7f4b60fad6f8e" - node-2fa@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/node-2fa/-/node-2fa-1.1.2.tgz#5bc5691474afe35ae6b3b76459b98b7c20c7158c" @@ -5439,10 +5253,6 @@ node-2fa@1.1.2: notp "^2.0.3" thirty-two "0.0.2" -node-abi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.1.0.tgz#50ad834affcf17440e12bfc5f9ba0946f572d10c" - node-fetch@1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.6.3.tgz#dc234edd6489982d58e8f0db4f695029abcd8c04" @@ -5541,10 +5351,6 @@ nodemon@1.12.1: undefsafe "0.0.3" update-notifier "^2.2.0" -noop-logger@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" - nopt@1.0.10, nopt@~1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee" @@ -5593,7 +5399,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.1, npmlog@^4.0.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -5635,6 +5441,10 @@ oauth@0.9.x: version "0.9.15" resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" +object-assign@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" + object-assign@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-3.0.0.tgz#9bedd5ca0897949bca47e7ff408062d549f587f2" @@ -5668,7 +5478,7 @@ on-headers@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" -once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: +once@^1.3.0, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -5735,7 +5545,7 @@ ora@1.3.0: cli-spinners "^1.0.0" log-symbols "^1.0.2" -os-homedir@^1.0.0, os-homedir@^1.0.1: +os-homedir@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -6042,6 +5852,13 @@ pg-minify@~0.5.3: version "0.5.3" resolved "https://registry.yarnpkg.com/pg-minify/-/pg-minify-0.5.3.tgz#aa09befa3cbe29fab6461bf819100e0471215011" +pg-pool@1.*: + version "1.8.0" + resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-1.8.0.tgz#f7ec73824c37a03f076f51bfdf70e340147c4f37" + dependencies: + generic-pool "2.4.3" + object-assign "4.1.0" + pg-pool@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/pg-pool/-/pg-pool-2.0.3.tgz#c022032c8949f312a4f91fb6409ce04076be3257" @@ -6055,7 +5872,7 @@ pg-promise@6.10.3: pg-minify "~0.5.3" spex "~2.0.0" -pg-types@~1.12.1: +pg-types@1.*, pg-types@~1.12.1: version "1.12.1" resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-1.12.1.tgz#d64087e3903b58ffaad279e7595c52208a14c3d2" dependencies: @@ -6064,7 +5881,20 @@ pg-types@~1.12.1: postgres-date "~1.0.0" postgres-interval "^1.1.0" -pg@7.3.0, pg@~7.3.0: +pg@6.4.2: + version "6.4.2" + resolved "https://registry.yarnpkg.com/pg/-/pg-6.4.2.tgz#c364011060eac7a507a2ae063eb857ece910e27f" + dependencies: + buffer-writer "1.0.1" + js-string-escape "1.0.1" + packet-reader "0.3.1" + pg-connection-string "0.1.3" + pg-pool "1.*" + pg-types "1.*" + pgpass "1.*" + semver "4.3.2" + +pg@~7.3.0: version "7.3.0" resolved "https://registry.yarnpkg.com/pg/-/pg-7.3.0.tgz#275e27466e54a645f6b4a16f6acadf6b849ad83b" dependencies: @@ -6077,7 +5907,7 @@ pg@7.3.0, pg@~7.3.0: pgpass "1.x" semver "4.3.2" -pgpass@1.x: +pgpass@1.*, pgpass@1.x: version "1.0.2" resolved "https://registry.yarnpkg.com/pgpass/-/pgpass-1.0.2.tgz#2a7bb41b6065b67907e91da1b07c1847c877b306" dependencies: @@ -6246,25 +6076,6 @@ postgres-interval@^1.1.0: dependencies: xtend "^4.0.0" -prebuild-install@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.2.0.tgz#55934756a32bac8747390ca44ff663cee8b99b69" - dependencies: - expand-template "^1.0.2" - github-from-package "0.0.0" - minimist "^1.2.0" - mkdirp "^0.5.1" - node-abi "^2.0.0" - noop-logger "^0.1.1" - npmlog "^4.0.1" - os-homedir "^1.0.1" - pump "^1.0.1" - rc "^1.1.6" - simple-get "^1.4.2" - tar-fs "^1.13.0" - tunnel-agent "^0.6.0" - xtend "4.0.1" - precond@0.2: version "0.2.3" resolved "https://registry.yarnpkg.com/precond/-/precond-0.2.3.tgz#aa9591bcaa24923f1e0f4849d240f47efc1075ac" @@ -6360,10 +6171,6 @@ prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" -prr@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" - ps-tree@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/ps-tree/-/ps-tree-1.1.0.tgz#b421b24140d6203f1ed3c76996b4427b08e8c014" @@ -6493,21 +6300,6 @@ pug@2.0.0-rc.4: pug-runtime "^2.0.3" pug-strip-comments "^1.0.2" -pump@^1.0.0, pump@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.2.tgz#3b3ee6512f94f0e575538c17995f9f16990a5d51" - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.5: - version "1.3.5" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.3.5.tgz#1b671c619940abcaeac0ad0e3a3c164be760993b" - dependencies: - duplexify "^3.1.2" - inherits "^2.0.1" - pump "^1.0.0" - punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -6516,6 +6308,10 @@ q@^1.1.2: version "1.5.0" resolved "https://registry.yarnpkg.com/q/-/q-1.5.0.tgz#dd01bac9d06d30e6f219aecb8253ee9ebdc308f1" +qr-image@3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/qr-image/-/qr-image-3.2.0.tgz#9fa8295beae50c4a149cf9f909a1db464a8672e8" + qs@4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/qs/-/qs-4.0.0.tgz#c31d9b74ec27df75e543a86c78728ed8d4623607" @@ -6620,7 +6416,7 @@ read@^1.0.4: dependencies: mute-stream "~0.0.4" -readable-stream@1.1.x, readable-stream@^1.0.33: +readable-stream@1.1.x: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: @@ -6629,7 +6425,7 @@ readable-stream@1.1.x, readable-stream@^1.0.33: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: +readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2: version "2.3.3" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" dependencies: @@ -6972,36 +6768,6 @@ scss-tokenizer@^0.2.3: js-base64 "^2.1.8" source-map "^0.4.2" -search-index-adder@0.3.9: - version "0.3.9" - resolved "https://registry.yarnpkg.com/search-index-adder/-/search-index-adder-0.3.9.tgz#a94b5fc5b27f1827c43eab599c760dcc4c29599d" - dependencies: - JSONStream "^1.2.1" - async "^2.3.0" - bunyan "^1.8.10" - docproc "^1.0.0" - levelup "^1.3.8" - pumpify "^1.3.5" - optionalDependencies: - leveldown "^1.7.1" - -search-index-searcher@0.2.10: - version "0.2.10" - resolved "https://registry.yarnpkg.com/search-index-searcher/-/search-index-searcher-0.2.10.tgz#3b52b8bb643065883997dfce57c6c792ec551cb0" - dependencies: - bunyan "^1.8.1" - intersect-arrays-to-stream "^0.0.3" - levelup "^1.3.8" - lodash.difference "^4.5.0" - lodash.intersection "^4.4.0" - lodash.sortedindexof "^4.1.0" - lodash.spread "^4.2.1" - lodash.union "^4.6.0" - lodash.uniq "^4.5.0" - ngraminator "0.0.1" - optionalDependencies: - leveldown "^1.6.0" - select@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" @@ -7020,14 +6786,10 @@ semver@4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/semver/-/semver-4.3.2.tgz#c7a07158a80bedd052355b770d82d6640f803be7" -semver@5.4.1, semver@^5.4.1, semver@~5.4.1: +semver@5.4.1, semver@^5.4.1: version "5.4.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" -semver@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.1.1.tgz#a3292a373e6f3e0798da0b20641b9a9c5bc47e19" - send@0.13.1: version "0.13.1" resolved "https://registry.yarnpkg.com/send/-/send-0.13.1.tgz#a30d5f4c82c8a9bae9ad00a1d9b1bdbe6f199ed7" @@ -7214,14 +6976,6 @@ simple-breakpoints@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/simple-breakpoints/-/simple-breakpoints-1.1.2.tgz#2a690bb989228bc1f80acf802785f61f53ed6b92" -simple-get@^1.4.2: - version "1.4.3" - resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-1.4.3.tgz#e9755eda407e96da40c5e5158c9ea37b33becbeb" - dependencies: - once "^1.3.1" - unzip-response "^1.0.0" - xtend "^4.0.0" - simple-lru-cache@0.0.x: version "0.0.2" resolved "https://registry.yarnpkg.com/simple-lru-cache/-/simple-lru-cache-0.0.2.tgz#d59cc3a193c1a5d0320f84ee732f6e4713e511dd" @@ -7356,20 +7110,12 @@ stdout-stream@^1.4.0: dependencies: readable-stream "^2.0.1" -stopword@0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stopword/-/stopword-0.1.8.tgz#b583506b0218cb2966c77cc41cb92ffda8396eb9" - stream-combiner@~0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/stream-combiner/-/stream-combiner-0.0.4.tgz#4d5e433c185261dde623ca3f44c586bcf5c4ad14" dependencies: duplexer "~0.1.1" -stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - stream-to-array@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/stream-to-array/-/stream-to-array-2.3.0.tgz#bbf6b39f5f43ec30bc71babcb37557acecf34353" @@ -7525,15 +7271,6 @@ table@^4.0.1: slice-ansi "0.0.4" string-width "^2.0.0" -tar-fs@^1.13.0: - version "1.15.3" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-1.15.3.tgz#eccf935e941493d8151028e636e51ce4c3ca7f20" - dependencies: - chownr "^1.0.1" - mkdirp "^0.5.1" - pump "^1.0.0" - tar-stream "^1.1.2" - tar-pack@^3.4.0: version "3.4.0" resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" @@ -7547,15 +7284,6 @@ tar-pack@^3.4.0: tar "^2.2.1" uid-number "^0.0.6" -tar-stream@^1.1.2: - version "1.5.4" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016" - dependencies: - bl "^1.0.0" - end-of-stream "^1.0.0" - readable-stream "^2.0.0" - xtend "^4.0.0" - tar@4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/tar/-/tar-4.0.1.tgz#3f5b2e5289db30c2abe4c960f43d0d9fff96aaf0" @@ -7574,22 +7302,12 @@ tar@^2.0.0, tar@^2.2.1: fstream "^1.0.2" inherits "2" -term-frequency@^0.0.15: - version "0.0.15" - resolved "https://registry.yarnpkg.com/term-frequency/-/term-frequency-0.0.15.tgz#ff4aeaff2ac31ee1096b5c685852816a5da676e7" - term-size@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" dependencies: execa "^0.7.0" -term-vector@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/term-vector/-/term-vector-0.1.2.tgz#774e7e44aef2274b3b1d8a2441981f99d0f7e0aa" - dependencies: - lodash.isequal "^4.1.3" - terraformer-wkt-parser@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/terraformer-wkt-parser/-/terraformer-wkt-parser-1.1.2.tgz#336a0c8fc82094a5aff83288f69aedecd369bf0c" @@ -7638,7 +7356,7 @@ through2@2.0.3: readable-stream "^2.1.5" xtend "~4.0.1" -through@2, "through@>=2.2.7 <3", through@^2.3.6, through@~2.3, through@~2.3.1: +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" @@ -7839,10 +7557,6 @@ unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" -unzip-response@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" - unzip-response@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-2.0.1.tgz#d2f0f737d16b0615e72a6935ed04214572d56f97" @@ -8268,7 +7982,7 @@ xmlbuilder@^4.1.0: dependencies: lodash "^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, xtend@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af"